{ "cells": [ { "cell_type": "markdown", "source": [ "# Basics\n", "\n", "*You are seeing the\n", "notebook output generated by\n", "[Literate.jl](https://github.com/fredrikekre/Literate.jl) from the\n", "[Julia source file](https://github.com/JuliaOptimalTransport/OptimalTransport.jl/blob/master/examples/basic/script.jl).\n", "The rendered HTML can be viewed [in the docs](https://juliaoptimaltransport.github.io/OptimalTransport.jl/dev/examples/basic/).*" ], "metadata": {} }, { "cell_type": "markdown", "source": [ "## Packages\n", "\n", "We load the following packages into our environment:" ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "PythonOT" }, "metadata": {}, "execution_count": 1 } ], "cell_type": "code", "source": [ "using OptimalTransport\n", "using Distances\n", "using Plots\n", "using PythonOT: PythonOT\n", "using Tulip\n", "\n", "using LinearAlgebra\n", "using Random\n", "\n", "Random.seed!(1234)\n", "\n", "const POT = PythonOT" ], "metadata": {}, "execution_count": 1 }, { "cell_type": "markdown", "source": [ "## Problem setup\n", "\n", "First, let us initialise two random probability measures $\\mu$ (source measure)\n", "and $\\nu$ (target measure) in 1D:" ], "metadata": {} }, { "outputs": [], "cell_type": "code", "source": [ "M = 200\n", "μ = fill(1 / M, M)\n", "μsupport = rand(M)\n", "\n", "N = 250\n", "ν = fill(1 / N, N)\n", "νsupport = rand(N);" ], "metadata": {}, "execution_count": 2 }, { "cell_type": "markdown", "source": [ "Now we compute the quadratic cost matrix $C_{ij} = \\| x_i - x_j \\|_2^2$:" ], "metadata": {} }, { "outputs": [], "cell_type": "code", "source": [ "C = pairwise(SqEuclidean(), μsupport', νsupport'; dims=2);" ], "metadata": {}, "execution_count": 3 }, { "cell_type": "markdown", "source": [ "## Exact optimal transport\n", "\n", "The **earth mover's distance** is defined as the optimal value of the\n", "Monge-Kantorovich problem\n", "$$\n", "\\inf_{\\gamma \\in \\Pi(\\mu, \\nu)} \\langle \\gamma, C \\rangle =\n", "\\inf_{\\gamma \\in \\Pi(\\mu, \\nu)} \\sum_{i, j} \\gamma_{ij} C_{ij},\n", "$$\n", "where $\\Pi(\\mu, \\nu)$ denotes the set of couplings of $\\mu$ and $\\nu$, i.e., the set of joint\n", "distributions whose marginals are $\\mu$ and $\\nu$.\n", "If $C$ is the quadratic cost matrix, the earth mover's distance is known as the square of\n", "the **2-Wasserstein distance**.\n", "\n", "The function `emd` returns the optimal transport *plan* $\\gamma$" ], "metadata": {} }, { "outputs": [], "cell_type": "code", "source": [ "γ = emd(μ, ν, C, Tulip.Optimizer());" ], "metadata": {}, "execution_count": 4 }, { "cell_type": "markdown", "source": [ "whilst using `emd2` returns the optimal transport *cost*:" ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "0.0014877814134910635" }, "metadata": {}, "execution_count": 5 } ], "cell_type": "code", "source": [ "emd2(μ, ν, C, Tulip.Optimizer())" ], "metadata": {}, "execution_count": 5 }, { "cell_type": "markdown", "source": [ "## Entropically regularised optimal transport\n", "\n", "We may add an entropy term to the Monge-Kantorovich problem to obtain the\n", "**entropically regularised** optimal transport problem\n", "$$\n", "\\inf_{\\gamma \\in \\Pi(\\mu, \\nu)} \\langle \\gamma, C \\rangle + \\varepsilon \\Omega(\\gamma),\n", "$$\n", "where $\\Omega(\\gamma) = \\sum_{i, j} \\gamma_{ij} \\log(\\gamma_{ij})$ is the negative\n", "entropy of the coupling $\\gamma$ and $\\varepsilon$ controls the strength of the regularisation.\n", "\n", "This problem is *strictly convex* and admits a very efficient iterative scaling scheme for\n", "its solution known as the [Sinkhorn algorithm](https://doi.org/10.1214/aoms/1177703591).\n", "\n", "We compute the optimal entropically regularised transport plan:" ], "metadata": {} }, { "outputs": [], "cell_type": "code", "source": [ "ε = 0.01\n", "γ = sinkhorn(μ, ν, C, ε);" ], "metadata": {}, "execution_count": 6 }, { "cell_type": "markdown", "source": [ "We can check that one obtains the same result with the Python Optimal Transport (POT) package:" ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "5.79577190277028e-12" }, "metadata": {}, "execution_count": 7 } ], "cell_type": "code", "source": [ "γpot = POT.sinkhorn(μ, ν, C, ε)\n", "norm(γ - γpot, Inf)" ], "metadata": {}, "execution_count": 7 }, { "cell_type": "markdown", "source": [ "We can compute the optimal cost (a scalar) of the entropically regularized optimal\n", "transport problem with `sinkhorn2`:" ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "0.00599172263125863" }, "metadata": {}, "execution_count": 8 } ], "cell_type": "code", "source": [ "sinkhorn2(μ, ν, C, ε)" ], "metadata": {}, "execution_count": 8 }, { "cell_type": "markdown", "source": [ "## Quadratically regularised optimal transport\n", "\n", "Instead of the common entropically regularised optimal transport problem, we can solve the\n", "[quadratically regularised optimal transport problem](https://doi.org/10.1007/s00245-019-09614-w)\n", "$$\n", "\\inf_{\\gamma \\in \\Pi(\\mu, \\nu)} \\langle \\gamma, C \\rangle + \\varepsilon \\frac{\\| \\gamma \\|_F^2}{2}.\n", "$$\n", "One property of the quadratically regularised optimal transport problem is that the\n", "resulting transport plan $\\gamma$ is *sparse*. We take advantage of this and represent it as\n", "a sparse matrix." ], "metadata": {} }, { "outputs": [], "cell_type": "code", "source": [ "quadreg(μ, ν, C, ε; maxiter=100);" ], "metadata": {}, "execution_count": 9 }, { "cell_type": "markdown", "source": [ "## Stabilized Sinkhorn algorithm\n", "\n", "When $\\varepsilon$ is very small, we can use a\n", "[log-stabilised version of the Sinkhorn algorithm](https://doi.org/10.1137/16M1106018)." ], "metadata": {} }, { "outputs": [], "cell_type": "code", "source": [ "ε = 0.005\n", "γ = sinkhorn_stabilized(μ, ν, C, ε; maxiter=5_000);" ], "metadata": {}, "execution_count": 10 }, { "cell_type": "markdown", "source": [ "Again we can check that the same result is obtained with the POT package:" ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "8.684136200941273e-12" }, "metadata": {}, "execution_count": 11 } ], "cell_type": "code", "source": [ "γ_pot = POT.sinkhorn(μ, ν, C, ε; method=\"sinkhorn_stabilized\", numItermax=5_000)\n", "norm(γ - γ_pot, Inf)" ], "metadata": {}, "execution_count": 11 }, { "cell_type": "markdown", "source": [ "## Stabilized Sinkhorn algorithm with $\\varepsilon$-scaling\n", "\n", "In addition to log-stabilisation, we can use [$\\varepsilon$-scaling](https://doi.org/10.1137/16M1106018):" ], "metadata": {} }, { "outputs": [], "cell_type": "code", "source": [ "γ = sinkhorn_stabilized_epsscaling(μ, ν, C, ε; maxiter=5_000);" ], "metadata": {}, "execution_count": 12 }, { "cell_type": "markdown", "source": [ "The POT package yields the same result:" ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "1.665707076935717e-11" }, "metadata": {}, "execution_count": 13 } ], "cell_type": "code", "source": [ "γpot = POT.sinkhorn(μ, ν, C, ε; method=\"sinkhorn_epsilon_scaling\", numItermax=5000)\n", "norm(γ - γpot, Inf)" ], "metadata": {}, "execution_count": 13 }, { "cell_type": "markdown", "source": [ "## Unbalanced optimal transport\n", "\n", "[Unbalanced optimal transport](https://doi.org/10.1090/mcom/3303) deals with general\n", "positive measures which do not necessarily have the same total mass. For unbalanced\n", "source and target marginals $\\mu$ and $\\nu$ and a cost matrix $C$, entropically\n", "regularised unbalanced optimal transport solves\n", "$$\n", "\\inf_{\\gamma \\geq 0} \\langle \\gamma, C \\rangle + \\varepsilon \\Omega(\\gamma) + \\lambda_1 \\mathrm{KL}(\\gamma 1 | \\mu) + \\lambda_2 \\mathrm{KL}(\\gamma^{\\mathsf{T}} 1 | \\nu),\n", "$$\n", "where $\\varepsilon$ controls the strength of the entropic regularisation, and $\\lambda_1$ and\n", "$\\lambda_2$ control how strongly we enforce the marginal constraints.\n", "\n", "We construct two random measures, now with different total masses:" ], "metadata": {} }, { "outputs": [], "cell_type": "code", "source": [ "M = 100\n", "μ = fill(1 / M, M)\n", "μsupport = rand(M)\n", "\n", "N = 200\n", "ν = fill(1 / M, N)\n", "νsupport = rand(N);" ], "metadata": {}, "execution_count": 14 }, { "cell_type": "markdown", "source": [ "We compute the quadratic cost matrix:" ], "metadata": {} }, { "outputs": [], "cell_type": "code", "source": [ "C = pairwise(SqEuclidean(), μsupport', νsupport'; dims=2);" ], "metadata": {}, "execution_count": 15 }, { "cell_type": "markdown", "source": [ "Now we solve the corresponding unbalanced, entropy-regularised transport problem with\n", "$\\varepsilon = 0.01$ and $\\lambda_1 = \\lambda_2 = 1$:" ], "metadata": {} }, { "outputs": [], "cell_type": "code", "source": [ "ε = 0.01\n", "λ = 1\n", "γ = sinkhorn_unbalanced(μ, ν, C, λ, λ, ε);" ], "metadata": {}, "execution_count": 16 }, { "cell_type": "markdown", "source": [ "We check that the result agrees with POT:" ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "1.2458106547243164e-9" }, "metadata": {}, "execution_count": 17 } ], "cell_type": "code", "source": [ "γpot = POT.sinkhorn_unbalanced(μ, ν, C, ε, λ)\n", "norm(γ - γpot, Inf)" ], "metadata": {}, "execution_count": 17 }, { "cell_type": "markdown", "source": [ "## Plots\n", "\n", "### Entropically regularised transport\n", "\n", "Let us construct source and target measures again:" ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "Plot{Plots.GRBackend() n=2}", "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQCAIAAAD9V4nPAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOzdd3xb5b0/8Oc5R0fLe0reM04cO86O4zgDsqAQIOyRltICpVAolLa09PZCL7S33F7KpeQWflBWN+WWMMJKQnYcO3t6xntK3lPSmc/vDwU3OI4j29JzjqTv+4++Evf4fE+MpI+fjQkhCAAAAAhWjNoPAAAAAKgJghAAAEBQgyAEAAAQ1CAIAQAABDUIQgAAAEENghAAAEBQgyAEAAAQ1CAIAQAABDUIQgAAAEENghAAAEBQ01AQVlZWOhwODy8mhMDmcCqSZVntRwhq8PNXl6Ioaj9C8FIUxesf/hoKwk2bNlVXV3t4sSiKgiD49HnABDz/lQX4Avz8VaQoisvlUvspgpfL5fL6LyIaCkIAAACAPghCAAAAQQ2CEAAAQFCDIAQAABDUIAgBAAAENQhCAAAAQQ2CEAAAQFCDIAQAABDUdGo/AADAUx82KaWdBCEkCDq9XkYIfS2ZWZWA1X4uAPwbtAgB8AMEoV8clx8vUyL1OEqPIzkUpcdhHL5zt/RaFWz3BcC0QIsQAK3jZXTffrl2kBy8XmcxIYTQ0JAUFmZCCN2ZhTdsk8v7yP8sZRloGYKLfPrpp2+//bbaT+Ed11xzzT333OOLO0MQAqBpvTy6cYcUb8K7rtGZLnq/Zobhkut0t+yUbv5C/uuVrBne0OCrSktLWZa96aab1H6Q6dq/f//OnTshCAEIOrWDZMM2+apkPEGDL8qAtl2te6RUXvaRtPUqNiUEGobgK/Ly8m699Va1n2K6eJ7ftm2bj24OY4QAaNSQiFZ/Iv90LvO7ost0e+oY9Eoxe3MGc8N2WYbTyQCYJAhCADTqmePymiR8T46nb9J/n89EGdD/q4S5MwBMDgQhAFpU2U/eqlH+cxE7qe/avIx95oTc6fTRQwEQmCAIAdCiH5TJTy9gE8yT+67Zkfjr2cyTR+D8egAmAYIQAM15t15pG0EP5k7l7fmLBez2NuJedw8A8AQEIQDa4pDQE4eV/13G6qb07gzj0HOLmYcPwqwZADwFQQiAtjxzQl5pxdPZOG1TNhPOoT/AjjMAeAaCEAANOTdA3qhWnlsy3Tfm/y5jnz4ud7m88lAABDgIQgA05JFS+Wfz2ETzdBfF50XhO7OYnx+FWTNAi/r7+0tKStx/PnHihLoPgyAIAdCOEz2kqh89Mts778pfLGD/2aDYYCkF0J4tW7YcP34cIdTX1/fjH/9Y7ceBLdYA0IyXK5QHcpmpzZG5WKQe3ZrBvFGt/Ns8+H0X/ItM0NWfS3RqsRh9fvU4KbNnzx53/u3bt2/58uV0HmYCEIQAaMKAgN5rVCpv4bx4z4dmMxu2yT+dy7Cw/yj4EoPRTwomt1HDlOFLvPDOnDmTn5+PENqzZ8/GjRvpPMwEIAgB0IQ/nlOuTmbcpyx5S0E0Tg5BnzQr16dBoxCchxFam6Tmb0YNDQ0mkwljrCjK7t27f/WrX+3atWv16tUqPhIEIQCa8FqV8kqx939Pf3A280olBCHQkD179hBCPvnkE5fLde21127duvWqq65S95EgCAFQ354OQghabvX+7+m3ZTA/PiSfGyAzIqB7FGjC3r17X3/99by8PITQzTffrPbjIASzRgHQglcqle/N9skJ8wYW3T2Deb0aFtcDraiqqpo9e7baT/EVEIQAqMzmRF+0KV+f4as343dzmbdqFBcsKQTa8Pzzz+NLzaJRCQQhACp7vUq5LZMJ9+Z00a/IDMMLY/E/G6BRCDRBC+slxoAgBEBNMkGvVyvfmeXbd+KDucwrcGAvAJcAQQiAmj5uVpJD0PwY3/YUXZvKtDvQ8W44kAKAcUAQAqCmVyqVqZ07OCksRvfNZF6D8ygAGA8EIQCqaRomx7vJzRk03ob3zmTebVAclLbWAsCfQBACoJr3GsjGdMZIZbsrqwktisWft0KjEKjMZrOdOHGCEIIQIoR0dHSo/USwoB4A9bzXqDw1n9KujwihmzOY9xrITenUCgJNUpTO/3mUUi3MxD/+uzFfq6ur+8Y3vlFfX48Q+vDDD48dO/bss89Sep5LgCAEQB02J6rqJ1cm0ltQtTGN+elh0SWzdNqgQKMwjrzt+7RKjfPyjoyMLC4udv/5zTfffOmll+g8zAQgCAFQx3sNyrUpjJ7i6ITFhOZE453t5NoUbS1nBlRhrE+ZoWL9vXv3rlq1CiH03nvvrVmzJj09XcWHcYMxQgDUsaVRuTmDdiDdnM5sgZX1QFXuINy5c2dLS8ujj9LqpJ0QBCEAKujh0bFusi6J9hvw5gz8UbMiQRQC9Zw5c6a6ujokJOSxxx5T+1nOg65RAFTwQaNyVTJjpv7+Sw7BmWF4r42soTg2CcCFTp48qdfr1X6Kr4AWIQAq2NKo3JSuThTdlM5saYQmIVCN1lIQQRACQN+QiErs5Gsp6rz7bs7AWxoUBXZbA+BLEIQA0PZRk7IqwYfHTUwsOxzHm3BpJyQhAOdNIgjtdvsHH3xQVlbm3hHgYjzP79ix47PPPnM4HGP+L0mSjh07Zrfbp/6kAASKLY1ErX5RN+gdBeBCngbhvn378vLy/va3v33rW9+66667Lr6gv79/0aJFv/zlL1988cU5c+aM2TXnhRdeWLJkyZ/+9CcvPDIA/swhoV3tynWpanbG3JyBtzRe4vdZAIKPp+/Gn/3sZ08//fS777576NChvXv3lpSUjLng1VdftVqte/bs2bZtW2Fh4Ysvvjj6f9XU1Pz973+/8sorvfbUAPitz1qUJXE42qDmM+RHYQMDpzIBcJ5HQdjZ2VlSUnLnnXcihMLDw6+55poPPvhgzDUffvjhnXfe6d5Q584773z//ffdX1cU5f7779+8ebPRaPTqkwPgl7Y0kpuoHDcxsRvTMfSOAuDm0TqmtrY2o9EYGxvr/mtKSkp1dfWYa1pbW5OTk0cvaG1tdf958+bN+fn5y5cvv2wVQRD++c9/Hjp0yP3X4uLi2bNnX+piWZYJIbIse/L8wOtkWYYf/hTwMvqsVfmvRcw0f3rT//nfmIa+sZc8Mx/+I06aoih+9PqfNWvWE088cXHTxe/09vauXLlS/pLn38gwzLhbnl7IoyAUBIHj/jXFjeM4l8t18TU6nW70AlEUFUVpbm5++eWXR7NtYpIklZeX22w2918zMjKysrImeKRLzdkBFAiCwPO82k/hf3Z0MLMjmGh2uj+86f/880KRU+JOd4kzw+F9NDmKovA8z7L+sXP5xo0btbCZp1dkZWXxPO9+5Xv+8zcajd4JwoSEhOHhYZfL5e7e7OrqSkxMvPia7u5u9587OzutVivDML/97W+tVutzzz2HEKqqqnI4HBaL5e677x63itlsfvrpp+fPn+/JI+l0OkKIwaDqSEsQk2XZbDar/RT+Z2+XfG0aNpunu6DYKz//a1Lkfd2G+Vb1+2n9i6IoDMP40et/9KiHgGEwGLz7i4hH74Hk5OTU1NRdu3YhhAghu3btGu3qHG2iFhcXuy9ACI1ecOutt27atCkzMzMzM9NsNkdHR1ssFi8+PQD+ZVsrWZ+klb3N1iXh7W0wTAiAZy1ChmGeeOKJhx566Oc//3lpaanL5brpppsQQgcPHiwuLnZ3UT7yyCNLlixJTk42m80vvfTSF198gRBauXLlypUr3Tf56KOPCgsLr7rqKp/9WwDQtLYR0uki82O0EoRrkphv75N5GRn8o5MPAF/xtFfkoYceevHFF0+cOJGWlnbgwAH3ZnHp6enPP/+8+4KZM2cePHhwYGCgtbV1586dixcvHnOHe+65x30GFQDBaVsbWZfEMFrJQRSpR3lRuMQOY4Qg2GHtTDlZsGDBG2+84eEYoXuyDIwRqmVoaCgsLEztp/Azd+6W1yfhb+V4YUzOWz//XxyXeRn9ejE0CSdBURSXy+VHY4QBxuFwqDNGCACYJoWgnW3KWs0MELqtT2K2t2nlV2EA1AJBCAANx3uIxYRTQrQVhIXxuGmIdDrVfg4AVAVBCAAN21vJ+mRtpSBCiMVoVQLzRTvMHQVBDYIQABq2tynrkrT4dluXhLe3Qu8oCGpafGcCEGBGJHS8m6ywaq5FiBC6Ohlva4VjekFQgyAEwOd2tSuF8TjEo1W7tKWH4VAOn+2FKATBC4IQAJ/b0Ua02S/qtj4Zw9xREMy0++YEIGBsbyVXaW+mzKj1SXgH7LUGghgEIQC+1TRM+gVSEK3dIFydyJTaiVNS+zkAUAkEIQC+tb2VrE/SzsZq4wjj0NwYfAD2WgPBCoIQAN/a3kbWabhf1G1dErO9FXpHQZCCIATAh2SCdrcraxO1/kZbnwTzZUDw0vr7EwC/dqSLJIfgBM3vz7woDreNkA6H2s8BgBogCAHwoZ3tZJ3GNtoeF4vR6kRmJ+y1BoISBCEAPrSnQ1mV4B/vspUJeG8H9I6CYOQfb1EA/JGkoCNdZLkmd1a72Cor3meDIATBCIIQAF852k0yw3CkXu3n8Ex+NO7lSbsDshAEHQhCAHxlbwdZleAfzUGEEEZouYXZD41CEHwgCAHwlb02xY+CECG0CoYJQVCCIATAJ2SCyjrJcos/vcUgCEFw8qd3KQB+5EQPSQ7BsUa1n2My5kbjDifpdKr9HADQBUEIgE/s7SAr/WS+6CgGo2XxeL8NVhOC4AJBCIBP7LP500yZUasSGFhEAYINBCEA3qcQVGJT/GuA0A2GCUEQ8r83KgDad6aPxJn8YIvRiy2IwY3DpIdX+zkAoAiCEADv29tBVvnbAKGbjkFL43EJDBOCYAJBCID37bORlX44QOi20grDhCC4QBAC4GUEof02ZYV/tggRDBOC4ANBCICXVfaTMA6nhPhrEC6Ow9UDZEBQ+zkAoAWCEAAv898BQjc9gxbH4YN2aBSCYAFBCICX7e3w4wFCt5VWZi/MlwFBA4IQAC/bb/PvFiFCaFUC3gfDhCBoQBAC4E3nBgiLUXqYfwfh0nh8po8Mi2o/BwBUQBAC4E17beQKP+8XRQgZWTQ/Bpd1QqMQBAUIQgC8aV8H8d+FExdalYBhmBAECQhCALzpgJ0sD4ggXBbPlMCyehAcIAgB8Bq7E/ULZGZEIARhkQUf7SYStAlBEIAgBMBrDtiUYgtmAiEHUaQepYXiU73QKASBD4IQAK852EmW+eHRS5dSbMElsKweBIHAedMCoLoSOym2BER7ECGE0DIL7C8DggIEIQDe4ZTQ2V6yKDaggvAABCEIAhCEIOgQ3klE728pfaSb5EVhs87rN1ZNdjiWFdI87P0s9NF/AgCmJoDetQB4QGio6PnTc0gWQ1duDF1xPTaYvHXng4HVL+pWZGEO2klqqNf+Xcpw/9Ce90cOfsKGR0d/6+ecJdVbdwZgyqBFCILIyMFPu1//ReTG78R9/wWp197xH3cPbH1TcQx55eYH7WRZwAXhMgs+6KX9ZZTh/oGtb9r+8z55oDv+8c1ha27r2vyE4/ger9wcgOmAFiEICoprpO9vL8j9XfE/3KyLtiCEom77ftjqW4e+eMf2q3sjrr8vpHD9dO5PECrrVF4pDrQ3VLEF/73OC2sJh3a8M7T7vZAl6yw/fY0Nj0YI6WITuMTMnrd/JdSdjbjxAazjpl8FgKmBFiEIfGJbfefzj7Dh0XHf/607Bd10sQlRd/wg7vvPD3z0ujzUN50S1f0klMNJfnsY76UsiMHV/WRoertvix2Nw/s+tPz0tYiN33GnoBuXlBn/w83ycH/X734o9dqn+6wATBUEIQhwRBS6X/9F+NVfj7zle+M2OzhLakjh+sHP/jydKiWB2C+KEDKwaF4MPtw1rd7RgY9eD1t3BxsedfH/xRjNMff8m6lgWe/bv0IEZqgCdUAQggA3vP8jfcoM86LVE1wTtu4O15lSsaNxylUCcqaMW/H0VhPy505K3R0hxdde8gqMw9bejjDjPH1gylUAmA4IQhDIFNfI0K5/hl/zzYkvY0yhYWtvG9j65pQLBWqLECG0zIJL7FMdJiSk/8M/RFx/L2YnHD3FOOK6bw98/DaRpSkWAmAaIAhBIBv64l1T/lLOevk5+iHLr5O62lzVx6dQpYdHNifJjwrMICy2MGWdRJ5Sm3Dk0HbGYDbNWXbZKw3ZBWxUvOPQ9qmUAWB6IAhBwJIHe0dKPwu/epMnF2NWF7HhnoGPXp/CSNVBu1IYh9nAzEEUa0QWE67om/SPhYjC4Od/ibju2x5eH3nD/YPb/koEfrKFAJgmCEIQsAY//0vI0qvYyDgPrzfNXcEYTI4jX0y20EF7QO21fbFlU9p9e2jnu4asfH16rofXc0mZ+sy84X0fTLYQANMUyO9eEMykrjbnqQNha26b1HdF3HD/wKd/nGyjJMD22r7YFObLKMP9w/s/Cv/a3ZP6rogN3xras0UZGZzUdwEwTRCEIDANfPJ22JU3M+awSX2XPm2WPmP28N73Pf8WUUEnesiS+EAOwim0CAc+/VNI4XpdbMKkvksXk2Ceu2Jo57uT+i4ApgmCEAQgoaVGaKwMXblxCt8bfvXXhw9s9Xyk8Fg3yQ7H4QG9L0puJO4XSIfD0+sVl8N5fG/Y2jumUCvsqrtGDm2X+7um8L0ATA0EIQhAgx+/HX7VJqw3TOF7OUsqYw4TGis9vD6AVxCOwggVxePSTk8XUbgqDusz8xhz6BRqseHRocuuHfz8r1P4XgCmBoIQBBqpp0NsbzAvWTflO5jmLneeLvHw4tJOUhTQ/aJuyyyM572jzlMlprnLp1wr9IobnacOEN455TsAMCkQhCDQOI7uMi1YdZkV3BMyFRQ7Tx3wsHe0tDNgl9JfaJkFl3l2DAURBb76uCl/6ZRrMSHhhuw5nv8uAsA0QRCCQOM4ttu8cKIN1S6LS8xArE5sq7/slc3DRFJIRljgB+HiOHyqh/Dy5a90VR7lUnOYkPDplDMvXO04tns6dwDAcxCEIKAIzdWIEH1qzjTvYypY5snWl6WdAb6CcFSIDuVE4JM9l28UOk8fMM0tnmY5Y16h0FwjD/RM8z4AeCIo3sMgeDiO7jIvWjP9+5gKij3pmivrJEuDYIDQbWn85XtHiSy5Ko+a8oumWQtzelPBMseJvdO8DwCegCAEAUSRnSf3mRddOf076VNnKrxLtDdPfFlpkAVh6eWCkK85qYtPYSNipl/OvHC14+iu6d8HgMuCIASBw1V1nI1J1MVMbhH3+DA2zSmauFHIy+hsL1kYGyxBWORBi9B5umT6/aJuhuwC4hiaztlYAHgIghAEDsfRnSETnjs4KaaC5c5TEwXh8R4yKxKHTH12qp/JjsAjEmkbuXQWKorzTKlpznT7Rc/D2LTgCpgyAyiYRBBu3br1uuuu27Bhw5YtW8a9oLa29u677167du2zzz4rCIL7i3/729/uuOOOtWvXbtq0ac+ePdN/YgDGRQSXq+qoad4Kb93QkJWvDPZIPR2XuqDUHkT9ogghjFBhHD506dPq+fqzuqg477TIEUIImRetcRzbDSfXA1/zNAgPHjx4991333PPPd/5znfuv//+3bvH/prG8/zq1avT0tJ+8Ytf7Nix46c//an760NDQzfffPNTTz1VVFR07bXXHjlyxJuPD8CXnCf3G7IKpjlr/yswNuYtdZ4pvdT/H1QzZdyWxjMT9I46T5eYCrzTL+rGWVMZcxhfd9aL9wTgYp4G4ebNm7/3ve/dfPPN119//eOPP/7SSy+NuWDLli0RERHPPvvs8uXLf//737/++usjIyMIoQceeODWW29duXLlww8/XFxcfODA5aekAzAFjmO7vTJN5kKmguIJekfLgmNPmQsVTbCsnhDn6YPeDUKEkHnhlY5jMGUG+JanQXj8+PGiovNd/0VFRcePjz3I+8SJE6MXzJkzByF07tw591+dTmd3d/cXX3xRXl6+Zo0XprYDMIY82Cu01BhnF3r3toaceVJny7ir2dodxCmTzPDgCsIlcfhEDxHG23NUaK5mjCadJcW7Fc0Lr3SeOkBEwbu3BeBCng702+32qKgo95+jo6PtdvvFF1it1tG/RkdH22w2959fe+21//7v/7bZbE8++aQ7I8c1NDR05513ms1m918ff/zxjRsveXqAIAiEEFEUPXx+4F0jIyMYaygDXAc/1+UWjvAC4r38ianLmd9/dI+h8KoxX9/VwiyOZkeGh71bzkNq/fwxQmkh+rLWkQXRY9uFzqO72dwlw17/gbAGJiGj//g+Lm/qe7Z5l6IoLpdLUTzdghx4l8PhEEWRZVkPrzebzQxzmSafp0EYGhrqdDpHnyMsbOwxb6GhoS6Xa/SvIyMjo9c8+uijjz76aFtb2/r16xMTEx988MFLPe5PfvKTmTNnuv+ampoaGnrJ3evdQWgwTOV4ATB9hJAJ/uvQN3KmJPLG7xp88EjsglXD+z8KXXPzmK+fHJRXJOHQUHVegSr+/Iut8ulh3crUsZ8sw1VHY+75GeeDp2IK1znPHAwtXOv1O0+Noig6nW70V3ZAGcMwBoPB8yD06J4eXpeWllZff37rxfr6+tTU1DEXpKamjl7Q39/f19c35pqkpKQbbrhhgjFClmVzc3MXfikuLs7TfwQIblJ3uzLcb8jK98XNjTMXCo1VF59ZH4QzZdzG3V9G6u4ggotLyvJFRdPc5fy5k3AYBfAdT4Pw9ttvf+utt0RRlGX5jTfeuOOO80duvvzyy01NTQih2267bffu3bW1tQih119/fenSpSkpKQihysrz57r19fV99tlnc+fO9f4/AgQ3V8URY+5i5JuuQqw3cInpQnPNhV8UFXS6lywOmqX0FyqKx6UXncck1J/10S8iCCFsMHGpM13nTvno/gB4GoT3339/RETEjBkzcnJyWJZ96KGH3F9/8sknq6qqEEIZGRlPPfVUYWHhggULXnrppc2bN7svWLt2bVpaWkFBgft/H3vsMV/8M0Awc1UeMc5e7Lv7GzLz+YavzOA/0UOywnFoQJ9KfykzI3G/QGxfbZ7xDRX6jDzfFTXOXuyqhJVXwFc8HSM0mUyfffZZY2MjISQjI2P0611dXRx3/vPgiSeeuP/++9vb23Nycka/2NbW1traOjAwkJaWpqlRJRAYiCgIDRXR33zSdyX0GbNHDn524VeCbSn9hTBCS+LwoU7lhrR//RrN15eHLt/gu6Km3MVde95Ht/quAghqk9tiLT09/cIURAjp9foLZ69FRUXl5eWNpqBbcnJyXl4epCDwBb7mBJeSwxhDfFfCkJkvNFSgC2YJlnUFbxCii5bVKyODykAPl5AxwbdMk86SgnU62HcU+AjsNQr8m6vyiDF3kU9LMCHhTHiUaGsa/UoQLqW/0Jhl9XxDhT59FrrcDPVpMuYudlVA7yjwCQhC4N9clceMs5f4uoohI4+vL3f/2e5EQwKZERG8QVgYh491E+nLFrLQUO7TAUI3Yy4MEwJfgSAEfky0NxNZ4qxjF/N4nT5zttBwPggP2pXCeC3tJkBdhB6lhOAzfecbhXx9uSFztq+LGmbMFVtrFdeIrwuBIARBCPyYq+KIKc/L26qNy5CZP9oiLOskS+OD/Y0z2jtKJFFsq9enzvR1Rczp9Rl5fPUJXxcCQSjY38/Ar7kqjxhn+3aA0E0Xl4RkUe7vQkE/QOg2uqxeaK7mrKnYYKJQ1Ji7CHpHgS9AEAJ/RXin2FxjyKa0RYM+PZevL5cUdKKHLI4L9iAcPa1eqC/XZ/pqKf0YxrxCV8UROJ4QeB0EIfBXruoT+vRcOm0RhJA+I0+oLz/dS9JCcYSeTk3tyo3EnU7S7UJ8fbkhw+cDhG66GCs2msW2ejrlQPCAIAT+ylV5xJjrww1lxjBk5vENFWWdpMgS7M1BhBCD0eI4fLhTEZqq9LSCECFkzF3srDxMrRwIEhCEwF+5qo75dGe1MbjkbKm7/WT7cGHQ94u6LY3H1ecaGVMoGx5Nragxd5Gr4ii1ciBIQBACvyS2N2CG1cUlUauIWZ0+ZcZIQ1Uw7ylzocJ4xllXYcj0+QrCCxmyC6SORmVkkGZREPAgCIFfclUcNub5fB39GEpqXkZvRW4kBCFCCC2Nx5H2cs73S+kvhHWcIXuOq/o4zaIg4EEQAr/kqjxKc4DQrToy9wq+goEcRAghFGNAS0YqWmJzKdc15i52VULvKPAmCELgfxTXiNhWZ8guoFx3rz43a+gckSXKdbVJHugJU5wH5WTKdY15S1yVsIgCeBMEIfA/fM0pfcZszNFexLCvzyRFJYhtdZTrapPQUDFkzS3rol2XjYxjQyPgvwLwIghC4H/42lOGGfMoF1UIOtJFwrJmj+61FuT4+rOh2XkXHkNBjSG7AA6sB14EQQj8D19z0jCDdr9oRT+xmHB4dp4AQYgQQoivL0/Ly28aJgMC7dKGGXN5CELgPRCEwM8ow/3yQI8+KZty3bJOsjQeGzLzhIYKyqU1iPBOqbPVmDZjfgw+0kW7UWjInivUlyNFplwXBCoIQuBn+HOnDVn5vj4G9mKHOklhHGaj4hHDSD02ytW1Rmg5xyVlYh03uvs2TUxIOBtjEVrOUa4LAhUEIfAzrtpThhmUNtq+0OjmalxyNszUEFpr9cnZCKGl8fhQl3LZ673OkF0AvaPAWyAIgZ/ha05SO3Fi1KCImobJnCiMENInZ0EQim11XHIWQmhpPFNqV2EpgyF7Ll97mnpZEJggCIE/kQd7FccQl5hBue6hTrIgFusYhBDikrKE1mA/AEFsrdMnZSGEEswolMO1A9SHCWcU8A0VsKYTeAUEIfAn/LmThuwChGlv7uKeKeP+M5eUJbbVUn4ATSGSKHW36yyp7r8ujcdl1OfLMMYQLj5ZbK6mXBcEJAhC4E/4c+oMEB7qVEYPndBFW4jgUoYH6D+GRogdDbr45NENDQrj8SFVVhPOmOuqgWFC4AUQhMCf8OdO0R8gJAgd6iKFo4dOYMwlZgpBPEw42i/qpsrEUXR+mBCCEHgBBCHwG6fClpIAACAASURBVHJfp8K7OEsK5bq1AyREhxPN/+qP5ZKygvmcdLGtjrsgCBfE4Kp+MkJ9tM6QlS801xCR+np+EHAgCIHfcJ07ZcyZq8IAYdfYU+n1SZlia/AOEwqtXwlCA4vmROPj3bQbhdhg4hLShKYqynVB4IEgBH5DlX5RhFBZJxlzKj2XnC0EbYuQELGjcczE3aXxuFSt3lFYTQimDYIQ+A2+9rRaS+nHnErPWVPlvk4iuOg/jOqkrjY2NJIxh174xcI41ebL8OdO0q8LAgwEIfAPUnc7UmRdXBLlug4JVfeT+TFf7Y9lWM6SIrY3Un4YLRBaa91L6S+k2nyZjDyhrT44fyMBXgRBCPwDf+6UIYf20UsIoSNdZE40NrBjv84lZQbn/jJiW/2FA4Ru6WEYIdQ0TH2YUG/QJ2XxsA06mB4IQuAf1BogLO0kyyzjTM/hkrODcwWF2Fanv6hFiNzDhHa1ekdhmBBMCwQh8A983RlVBghLO0lR/DhBqE/KFFuDMwjHaREihIosKs2XgSAE0wZBCPyAaG/GOk4XbaFf+lCnsnS8IOQSM0VbY7AdiScP9BBFZiNiLv6/ilSaOKpPzxVtTYrLQb80CBgQhMAP8LWnDdm0j6RHCNUOEj2Dk0PGCUJsMLERsWJnK/2nUpHYVu8+feliC2NxRR9xUF9Wj3WcPm2mUF9OuzAIIBCEwA8IdWcNWXPo1y3tHLuU/kJcclaw9Y6OO2XUzciivCh8jPqyeoSQITOfrz9Lvy4IGBCEwA/w9eX6rHz6dUvt4w8QuumTgu5gwjGbq42xTK1hwqx8vg6CEEwdBCHQOqmnAxFFF5NAv/Slpoy6cUlZwTZxVGz7ynbbYxSpNHFUnz5bbK8nAk+/NAgMEIRA69TqFx2RUO0gmRdz6RZhSrbYWotUOJ5dHYrLIQ/1T7CnQZEFH+xUaD6SG+b0XEK60FxDvzQIDBCEQOv4+rOq9Ise6iRzo7H+0m8RJjQS6/RyfxfFh1KT2FbHJaQj5pI/kZQQrGdw/ZAqvaNz+Loz9OuCwABBCLSOV3GmzKUHCN245CwhaObLiK3jL6W/kGrL6rPyBZgvA6YKghBomjzYp4wMcpZU+qVL7coEU0bduGCaLzPxTBk31VYTZuYJTVVEpr56AwQECEKgaULdGUNWPv0zCN2n0o+7lP5C+uQgCkKhre5SaydGqTVxlDGGsDHW4PlvAbwLghBoGl9/Vp+pwgBhzQAJ5b5yKv24gmfiKJElqauNs6ZPfNn8GFzdT4ZFKs/0VYasObCIAkwNBCHQNL5epQHCCVcQjtLFJBDHiDIySOGR1CV1NOliEjCnn/gyA4sKovFRlZbVwzAhmBoIQqBdinNY7rFddoKGL3gyUwYhhDDmEtPFjkZfP4/qxPZ6LjHTkyvV6h3VZ+bz9eXBs5oFeBEEIdAuob5cn56LmIsOA/S9iZfSX0iXkC7amnz9PKoTbU1cYronV6q1rJ4Nj2LMYcHw3wJ4HQQh0C61BgiHRNQwRAqiPQpCzpomdQT+h6/Y0cRZ0zy5ssiCSzsVVdplhizYdBRMBQQh0C6+7qxBjSAs6yQLYjDn2ZuDs6YFQytEtDXpPAvCRDM263DtgErDhDBfBkweBCHQKCLwYkejPjWHfumJD50Yg0vMCPgxQsI7FceQ5+dBqraaMGsOX3uafl3g7yAIgUYJTZX6pEysN9AvXWpXPJopgxBCiAkJRwwjD/b59JHUJXY0cZYUz1dzqhWEuhgrYlipp4N+aeDXIAiBRvF16gwQEoQOd5Gl8ZN4a3DWNCmge0dFm6cDhG7LLOrMl0EIGTLzYDUhmCwIQqBRfN1Zgxp7bVf1k0g9tpgm8S0BP0zo+QCh29wYXDdEhtRYVq/PgmFCMGkQhECLiCwJzdX6jNn0S5fYPV04MUqXEOBBKNmauIRJBKGeQfNjcJk6h/TOgYmjYLIgCIEWiS21urgkxhhCv/QBG1lunVwQctY0MaBXUIgdjZPqGkUILbfgErsKZxNyllTFOSwP9NAvDfwXBCHQIt6917YaSuxk+SRbhIE9Rqg4hwnvZCPjJvVdxVamRJVhQowNGXnQKASTAkEItIivO6PKCkK7E/XwJDdyckHIhIRjjgvUVohka9JZUyd7AEixBR/qJJIKbUKkz8yDYUIwKRCEQHsIERorVRkgPGBTii2YmfyhTzprWqCuJvR8T5kLRepRWig+1avOIb3QIgSTAkEINEfsaGRCwtnwaPqlS+yk2DKVN0UA945Odu3EqOVWfMCmxrL65Gy51644huiXBn4KghBoDl+vzsIJhNCByQ8QugXwCorJrp0YVWzB6gwTMiyXmiM0VqpQGvgnCEKgOYJKW4yOSKiijyyKm1IQBu4KCsnWxCWkT+Ebiy14v02NQUKEDJn5sKweeA6CEGgO31CuV6NFeKiTzI3Bxikd+qRLSBc7mgLvMDzFMUwEYWrd1BlhWMfg+iEYJgRaB0EItEXq6UCKootJoF96yv2iCCHGGMIYzXJ/l3cfSXViR4MuIW2yU0ZHLbOoNEyYliu21ROBp18a+CMIQqAtQt1ZQ9YcVUqX2JTiqQYhQogLxBN6xan2i7qpNUyI9QYuIV1orqFfGvijyQVhV1dXeXm5LMuXusDhcJSXlw8ODl74RafTWVlZ2dnZOcVnBMGErz+rSr+oTNDhLlI0pSmjbrpA3F9GmtLaiVHL1ZovA72jYDIm8bZ/8sknc3NzN23alJOTU11dffEF27dvT09P/+Y3v5mRkfHnP//Z/cUf/ehHVqv1lltumTVr1nXXXedwOLzz4CBAqXUY7+lekmDGccap3yEgV1BMee2E29wY3DJMetToodRn5gsQhMAzngbhiRMnXn311VOnTp08efK222574oknxlygKMoDDzzw0ksvHT169OOPP3744YeHhoYQQqtXr25ubi4vL29ubm5paXnppZe8/C8AAUQZHlCGB6bzyTtlJfZJbzE6RkCuoJjy2gk3FqPCeHWOZDJk5gmNlUi5ZPcVAKM8DcJ33nlnw4YNSUlJCKEHHnjgk08+GdP/WVZWNjg4eOuttyKEioqKMjIyPv74Y4TQNddcExERgRAKDQ0tLCxsaWnx8r8ABBC+7ow+YzZiVBi6LrGT6QwQIvcKCntLIE0cVUYGkSKz4VHTuUmxhVFl923GHMZGxglt9fRLA7/j6SdOU1NTVlaW+89paWkY47a2tjEXZGRksOz5ueeZmZlNTV/57bi7u3vr1q0bNmy4VAlZlisrK499qasr0CbggctScSl9iW26QYgNJsYUKvUFzli42NHIWdOneZNiCz6g0jChPgt6R4FHdB5eNzIyYjSeHz/BGBuNRnfP57gXIITMZvOFF7hcrjvuuGPDhg1f+9rXLlXC4XA888wzJtP5E1Eff/zxjRs3XupiQRAIIYIgePj8wLuGh4d9cVtHzSnzhnvHvLQoaHFgXtZbsHOalXFc8lB9pY4ze+m5LslHP/8xhMZqFJs0zf8cc0LwiW59V//Q1BZoTgdJzB4pLyML1nr3toqi8Dw/wZxB4FNOp1MQhNFG12WZzebLXuxpEFoslr6+PvefeZ4fHh62Wq1jLujt7R39a29vb2FhofvPgiDcdtttMTExr7zyygQlwsLC3njjjfnz53vyPO4gNBgMHj4/8LqwsDDv3lBxOQZ7OiJmzsU6zrt3vqwTdmVFApn+v0hJyWIGOr3+kxkXhSp9fTZDanbo9AqFITQrUqrhQ6fZ4J4COW+x/bO3w0JDp7wOclyKonAcZzb7/NcdMC6WZQ0Gg+dB6AlPu0bnz59fWlrq/nNZWZnVak1MTLzwgrlz59bV1fX09CCEJEk6fPjwggULEEKyLN99990sy/7lL3/x7qODACM0VupTZ9BPQeSNAUI3XWDNl5nm2olRy63qLKJgI2Ox3iB1tV3+UhDcPA3CTZs2lZeX/+Y3v9m3b98PfvCDhx56SKfTIYTuu+++F154ASGUmpq6YcOG++677+DBgw8//HBGRkZxcTFC6IEHHtixY8eaNWveeuut1157bdu2bb77xwC/ptYWo2hKh/GOK8COqhftzV4JQtV233ZvOgrDhOByPA3CyMjIPXv2nDp16le/+tWmTZt+9rOfub8+b9680Uk0b7/99owZM5566imMsXvKKEIoMzPzlltuOXPmjHsKTF1dndf/DSAw8PVn9WoE4YCA6ofIvBivBGGq1NmCFHV2mvYuebAPIcSERkz/ViuszAGboqgRhbD7NvCEp2OECKH8/Py//vWvY7748MMPj/45LCzsN7/5zZgLRiMTgAkQSRRaaw1qHMZb2kkWx2LOG0s2sN7IhkZKvXZdrAp7pXrXlA+duJjVhCL1uHqA5EbSHibUZ+UP7XyXclHgd2CvUaAJYksNF5+MDSb6pffblBXTW0p/oYA5ql7saPTizgYrrHi/Grtvc/EpCu8KvM3QgXdBEAJN4OvU6RdFCO3pIFckeu2NwCWkSfZmb91NRaK9eTp7yoyxKgHv7VCjbxRjQ+Zsvr5chdLAf0AQAk1Qaym9Q0Kne0nhlA7jHZfOkioGRBBK9hbOkuKtu61KwLs7VDukV4BhQjAhCEKgAYoiNFYaMvPoVy6xk/kx2DyJsfLL4Cwpki0Q9hEUbU06a6q37pYZhjkGnxtQY9PR7AK+7gz9usCPQBAC9QltdWxELBMaSb/03g7ligRvzuDQWVLFTr/fcVQZGUSKwoZNa5fRMVZZ8V5VhgkTM+XBHmW4n35p4C8gCIH6+Lozah3Gu9dGViV4813AGM2M0SwPdHvxnvSJ9mYvNgfdVBsmZBh9OgwTgolAEAL1CbWnDdkF9Os6JXSyhyyN9/Kcfp0lVbT59zChZGvmLN4Pwj2qBKG7d7T2tCqlgV+AIARqI4RvqNCrMUB4sJPMjcYh3hsgdOOsqZLdv4cJRXuL11uE2eEYI1Q3qMow4RwYJgQTgCAEKhPbG5jQCDY8mn5prw8QuuksKf4+cVSyN3txyuiolQnqDBPqk7PlHrsyMnj5S0FQgiAEKlNzgLDDywOEbpwlIFqE3u4aRe75MuoME7L69Fl8Q4UKpYE/gCAEKuNrT6sShC4Zneghy3xwNpC/twiJ4FJGBnVR8V6/86oEvLtdpWHCrDkCDBOCS4AgBKoihK8vV2UpfWknyY/y/gAhQogNi0KE+G9HnGhv1sUnefcMP7ecCCwT1DAEw4RAWyAIgZpEezNjNLGRcfRL+2iA0E0Xn+y/jULJ1uL1KaOj1FpEwaXOFDtbFecw/dJA+yAIgZr42jOGLBUWTiCfDRC6cZYUyW9XUIj2Zl8MELqtUmm+DGZ1+tSZQkMl/dJA+yAIgZqEujOGbBUGCHkZHe32yQChm86SKvrtfBnv7jI6xhVqriaE3lEwPghCoCa+/qwqLcKyTpIfhcM4X92fs6T67xkUPm0RzozAgoyahtUYJswq4OtgvgwYBwQhUI3U1YYww0Z7f3biZe3pIKt8NkCIENJZ/bVFSGRJ7u/SxSX6rsQKqzqNQn36LLGjifBO+qWBxkEQAtXwtacNM+aqUnpvh7LK6sMXvy4qXnEM+eNnrtTVzkbFY9YHs2m/pNZ8Gazj9MnZfCMME4KxIAiBavhadQYIBQUd6ybF3juVfhwY6+ISxc5WH5bwDR/tKXOhK9TafRshQ/YcoRaGCcFYEIRANWoNEB7qJLMicbjPBgjd/HR/GR/tKXOhWZF4RCLNMEwINAOCEKhD6ulAsqSLTaBfeq+PBwjd/PSoesnu/XMnxsAIrUpg1Nl0ND1XaKsnAk+/NNAyCEKgDr72jFoDhDvalNWJPn/l++lSQtHWrPNx1yhC6MoE/EWbGsOEegOXmCE0VdEvDbQMghCoQ629tkckdKKHrPDpACFCyE9bhIRIXW1cfLKv66xLwl+0EVXGCQ1ZsJoQjAVBCNQhqLTX9p4OsijWJ1uMjqGLS5T7Ooks+byS90i9diYkHBtMvi6UFY6NLKroU2XT0QK+9hT9ukDLIAiBCqTuDiJLFLrgLrajTVmXTONlj1kdG22Rutop1PIWyd7Cefs83ktZm4R3qNE7asjMF1pqieCiXxpoFgQhUAFfc8KQM1+V0jtaybokn/eLunGWFP/aX8ane8qMsS4J72hT6NS6ENYb9MnZfH05/dJAsyAIgQpcNSeMOfPo1213kA4nmR9DKQj9bsdRCosIR61JZA7YCC/TqfYVhpx5fM0JFQoDrYIgBNQRwteeNsxQIQh3tJG1iQxLKQf9b8dRCosIR0UZ0MxIXNapQu+oMWeeq+Yk/bpAsyAIAW1iez1jDmMjY+mX3tFGr18U+eFR9T49d+JiavWO6tNmyd0d/ntyMvA6CEJAm6vmpCr9ogShXe3KWopByFlSpM42pM4ygUmTB/sQwzAh4dQqrktiVJkvgxhWnzmbr4UtZsB5EISANr7mpCozZc70khAdzgijF4RYb2RCwqVeO7WK00FhT5kxlllwVT/pVWObF0POfB56R8GXIAgBVUSWhIZyQ7YKW4xS7hd14ywp/rLjqGhvobygRc+gYive3a5C76gxZ74L5suAL0EQAqqEpipdXDJjDqNfekebQj8IddY0fxkmpN8iROr1jnIJ6cTlkHs76ZcGGgRBCKjia04a1BggFBRUaidXJNB+wfvRjqOincYuo2OsS8LbVBkmxNgwo8AFW8wAhBAEIaCMrzmhShAesJHZUTjKQLuuH+04KtmaOWsa5aJ5UZiXSf2QGlvMzIDVhOA8CEJADxFcQlu9IWM2/dKq9IsihDhrmmRr1v7EUcU5TAQXGxFDuS5GaG2iOr2jhpkL+JqT2v9PAyiAIAT08HVn9Kk5WG+kX3pHG1mXpMKrnTGHYr1eHuylX3pSJFuTzpqKsAq/K6xLVmfTUV20BXN6sdM/pjIBn4IgBPSoNUDYw6PaQbI0XoVPeYSQzpIm2ppUKe050dbMWWj3i7qtS2J2tSuyGg0zw4x5fDX0jgIIQkCRq+aEcYYKKwh3tikrrJhT6cXOWVO1P1+G/tqJUVYTSjLjY91q9I7mzOPPwWpCAEEIaFFGBuUeO5eSTb+0Wv2ibn4xX0ayNdGfKTNqfTLe3qrOpqN87RmkqLCQEWgKBCGghK85qc+ag1nfH4n7VQShz1vJVcnq9Isif2kR2pp1tE4ivNhVycxnrSqkERMayUbGCq3n6JcGmgJBCChxnVNni9ET3cTIopkRagahxluEhHcqjiFdVLxaD3BFAi7vI3anCqXPzx0FwQ2CEFDC15wwzFRhgHBrM7khTbUURAgxoZEIIXmoT8VnmJhoa+Is6kwZddMzaG0S87kajUJjzjzYaw1AEAIapO4OIgr0d/BCCH3SolybqvLr/PxqQq0S7S06qzozZUZdm4I/aVZjvkzWHLG5hggu+qWBdkAQAhpcFYeNuYvotzk6HOjcAFluUbNFiBDSabt3VHK3CFV1bQqzo00RqLcJscHEpebA3NEgB0EIaHBVHjXmLqZf95MW5eoURq2FE6M4i6bny4i2Zp16U0bd4k1oViTe16HG3NHcxa6Ko/TrAu1Q+xMCBAEiCkJDuSoDhB83kw0pKjcHkebny0j2Zk69KaOjNqQyH7eoMUw4e7Gz/BD9ukA7IAiBz/HnTnIpMxhjCO26MtrToVydov6LXKfhFiEReHmoTxdtVftB0IZUvLVJjSOZLKlYp9P+7j/Ad9T/jAABz1VxRJV+0V3tpCAax1A/ceJibEQMkUVlZFDtBxmHaG/WxSUjRv2PgrnRWCaosl+N3tFZC10VR+jXBRqh/qsfBDxX1VFj7iL6dT9uUTaoPV90lGb3l5FsmugXdbsmBW9VY+6oMXexqxKCMHhp5WMCBCrJ3kIkiUtIp1/60xayIVX9AUI3zc6XEe3NOrWnjI7akMp80qzCMKEhZ77Yck5xjdAvDbQAghD4lrPyiDFvCf26p3sJg9DsSK0EoWZXUGhkpozbmkR8qpf08LTrYk6vz5gNW8wELQhC4FtqDRBubSbXqbqhzBjabRHamlVfRDjKwKIrEpjPVZk7mrsYhgmDFgQh8CEiuMTmauOMufRLf9ysbNDAfNFRnDVVg/MSiSjI/V1sbILaD/IvG1Lxxy1qDBPmLXFVHIYD64OThj4pQOBxVR/Xp83CBhPlul0uVNlPVlg11CJkI+MI71Scw2o/yFdIna262ET6R4JM4NoU5vMWRaTeJtTFJGCDSWyvp10YaAAEIfAhV6U680U/aVbWJTEGln7lS8NYF58i2VvUfo6vEO1qnr40rgQzyg7HJXY1GoWzF7sqYYuZYARBCHzIVXXUOFuFmTIfa2m+6CjOmipqbJhQsmtogHDUhlTmYzXmjsIwYdCCIAS+InY0Yszo4pMp13XJaFe7cq2WBgjddJZUSWMTRzU1U2bUDWn4QzW2mDFkF4jtDYpjiH5poC7NfViAgOGqOGzMK6Rf99MWZWEsjjXSr3wZGmwRqnsw/aXMi8EYo+PdtLMQ6zh91hxX9XHKdYHqIAiBr7gqj6gyQPh/DeS2DC2+sHXWVNGuoYmjRJbkXpsuLkntBxnHbRn4/xpU2YB7EQwTBiEtfl6AAKC4RsTWOkM27YUTDgl93qJsTNfiC1sXbVWGBwnvVPtBzpO62tmoeKzj1H6QcdyayfyjXoWlDKbcJXzlUVhEEWy0+HkBAoCr/LAhuwBzesp1P2lRCuNxnPb6RRFyTxxNFjUzcVSyN2lnT5kx5kZjI4uOdtEOJDY6ngmP4hsqKNcF6oIgBD7hPLXfVFBMv+7/1ZNbNdkv6sZZUyXNLKsXO5o4tc/jncAtKvWOmuYsc54uoV8XqEi7HxnAfxGB52tOGfOXUq7rkNCONo32i7pxllQttQhbtLPd9sVuy2TeqVOjd3TeCufJfdA7GlQmsaNEY2Pja6+9NjQ0tHHjxjVr1lx8gcvlevXVVysqKubPn3/ffffpdDqE0MjIyPHjx0+ePBkZGfmNb3zDaw8ONMxVcVifPosxh1Guu7VZWWbRxAGEl6Kzpo2Ufa72U5wn2prC1tym9lNcUn4UDuPQ4U5SGE91SShnTcMGk9BSo0+dSbMuUJGnvzv39PQsXbqU5/m8vLw77rjjww8/vPiau+66a+vWrUVFRX/+85+/+93vur/4hz/84Xvf+96f//znl19+2WtPDbTNcWq/ad4K+nXf1Xa/KEKIS0gXOxrUfgqEECKyJPV06Cwpaj/IRG7NxO+q0TtqLljuPHWAfl2gFk8/Nd5666358+f/9re//e53v/vrX//6v/7rv8ZcUF1d/fnnn7/33nv33HPPe++995e//KW9vR0h9Nhjj50+ffrBBx/08oMDrSKiwFcfN1HvFx0W0c525fo0TQehLsZKHMOKQ/0dRyVbsy7aSn8206Tckcm8q8rc0bnLnSf3Uy8LVOPpp8aBAwdWr17t/vPq1asPHTokiuKFF5SUlCxYsCAiIgIhZLVac3JyDh065N1nBX7BVXWUS8pmQiMp1/2oWVlhxdEa7hdFCCGMddY0LTQKxfZ6LjFD7ae4jFmROFKPSqnvO8olZyGMxbY6ynWBWjwdI+zo6IiNjXX/OT4+XlEUu92enPyv3bNsNltcXNzoX+Pi4twtQs+NjIz86Ec/iow8/wF6zz33jDsS6SYIAiFEluVJlQDe4nQ6WXb8Pa2Hj+3R5S5xOByUH+mdc7qNqYrDIVCuO1nYkjrSWC0nZE3nJhP8/D3kaD7HxCXT/880WTemsH8/J88Lo/1O1+UuGTy62xQ1zgFViqK4XC7KzwNGORwOWZY9f/0bjUaGuUyTz9Mg1Ov1kiS5/ywIgvvul7rAfc2YCzwpsX79+vT0dPdfZ86caTBc8td7jDEhZIILgE8JgjDuD5/IknTuZOT197F0/9MMiWh/p/L2Ks6g6a4+hBCSkrKkjoZpvnQv9fP33Ehni3HFDdp/B92ZTdZ8Tl5YqmPobqLOLFjV//cXIjd86+L/S1EU+PBRkSzLBoPB8yDE+PIvHU+DMCkpqbW11f3n1tZWo9EYExMz5oKWln/NC29tbU1KmtzWTRzHrV+/fv78+Z5czLIsIWSavxSDKWNZdtwfvqv6OGdJ0UfHU36erQ3KqgQm2uQHrwdDcpbr2K5pvnQv9fP3nNTeYEjO0v47KDcaxRulsm6G8umSbHouEQWlq+3iPQcwxtP/+YMpY7/kxXt6Oka4cePGLVu2uNuC77zzzvXXX++O2ZKSkqamJoTQVVddde7cuYqKCoRQWVnZwMDAqlWrvPigwC84Tx0wzV1Ov+7/1ZNbMzR37tK4uMQM0dak7jI1ZXiAyBIbGaviM3ju1kxGhZX1GJsKlsHc0SDhaRDedNNNcXFxRUVFN95445tvvvn000+7v/7oo49+9NFHCKHo6Oinn3567dq1d9111w033PDcc8+ZTCaE0MGDBxctWvTMM8+cOXNm0aJFP/zhD330LwHqU2Rn+SHTHNobyvTxaJ9NuU7b80VHMUYzGxohdU9uBN27hLY6LilTxQeYlNsy8D8bFIl6FJrmLneehiAMCpMYI9yxY0dJScng4ODbb7/tnh2KEPrHP/4xOr3liSeeuP766ysrK5999tmsrPNzAfLy8l599dXR+4xeDAIPX3taF21hqfeL/rVOuTaFCdfi3tHj4xIzxPYGFY99ENsbtD9ldNSMCJwRhj9vpX3YsiEjTxnqlzpb6Z+pCSibxM4yLMuuXLlyzBdHA89t1qxZs2bNuvArERERCxcunPLzAT/iUKlf9M1q5flCfxqwcQehKj8rN7G9wZA1R63qU3DvTObNGmVDKt3/yu7e0dMlYWtvp1oXUOcfvUnADxDiOlNK/8P9dC/pF9AVCf4xQOjmDkIVH0Bsb+CS/KZFiBC6PZPZ26HYqB9gZZq73HkKNuAOfBCEwDv4+rNMWKQudpx1Vz71WpXy7RyG8tz6aeISM9UMQkWWyMhdFgAAH1pJREFUulo5i3bPnbhYiA7dmM78pZb2OKEha47UZ5d67ZTrAsogCIF3OI7sNC9cTbmoS0b/qFfunuFXMYiQLjZRHu5XXOosZhftLWxUPNb72TK4e2cyr1cptOfaMqx53grH0V2UywLKIAiBFxBRcJ45aF5EOwi3NCqL43BqqJ8FIcKYs6RKHY2qFPevmTKjiuIxi1XYbs28ZL3j0DY4lSmwQRACL3Ce3K9Pm8WGR1Ou+0a1cm+OX76GucQMob1eldJ+GoQIoW/PZN6opt07qk/NwQYT31BOuS6gyS8/RIDWjBzeEVK4jnLRhiFyppdsSPXL1zCXmCG1N6pSWmxv0PtnEH5zBvNBkzIkXv5K7zIvWuM4tIN2VUCRX36IAE2RezvF9npjHu1zl96sUb4xgzH407qJf+ESMwWV5suI7fVcgt+spr9QrBFdkcC8W0+7UWhevMZ5uoTw1CetAlogCMF0jRzZYV54JdZRXdCuEPSnc+SbM/z1BcwlZUgdDfRHnpSRQcK72Ki4y1+qSar0jrJhUfrMfOdpWEcRsPz1cwRoBSGOI1+ELKHdL7qtlSSYUUG0v02T+RJjCsXGEKnXRrnu+WMIPdiPX5uuTsatI6iin/YvECGF60YObadcFFADQQimha87gzkDl5xNue4bNf46TWYUl6TCakKxvcGPdhm9GIvRN2bgN6k3Co15haKtWeruoFwX0OHfHyVAdSOHd4QUrqdctMuFdrUrt2f596tXlf1lxPZGLiGdclHv+nYO85daRaAbhZjVmReschzdSbUqoMW/P0qAuojgcp0tNS24knLdVyqVWzL8aZftcXEJ6WoEYT2X6MctQoRQVjieG43/Xke7URiyZP3I4e2woDAgQRCCqXOc2GfImsOGR9Esysvo/1XKP8j3+5euCl2jiiLaW7gEf9pcbVw/LGCfP017lxkuOYsxhfG1p+mWBTT4/acJUJHj8A4z9WkyfzynLIplciP9dbrHKC4uWR7ooTkpX+xqZSNisMFEraKPrE/COgbtaKM+ZWbJ2pHDsKAwAEEQgimSemyivdk4ewnNogShF88qP5wTEK9bhuEsKaKtiVpB/91T5mKP5TO/PS1TLmpetMZVXqbWJrHAdwLiAwWoYaT0M/OiNZidxJGW0/dxs2LWoVV+dejSBCjPl5H8f6bMqLuymMp+dLKHaqOQCQk3ZM91ndhLsyigAIIQTIkojJRtC11+HeWyvz0TKM1BhBD1+TKC/8+UGcUx6MHZzItnaU+ZCV15w/De92HKTIAJnM8UQBN/fLchM4/y6YPHukndILolI3BetJTny/jdebwT++4s5qNmpXWEaiYZsgsYo1msOU6zKPC1wPlMAfQQIpR+EnrFTZTLPn9G+UE+wwXQa5ZLzBTb6uk0L5SRQeIc0UVbKdSiI8qAvpHN/L6C+jqKlTc4D3xEuSjwqQD6UAG0OM+WYYPZkJlHs2jrCNnRqtw7M6BesUxIOBMWSWe+jNBYqU+f5b+bq43rB/nM69XKMN3zKIxzVyg9NrG1jmpV4EsB9bEC6Bjeu0VPfXTwhTPKt2cyEXrKZX1On54rNFVRKCQ0VenTZlEoRFN6GL4ygfY23JjVGZdePbT3fZpFgU9BEILJEVrOSd0d3OxCmkUHRfSnc8rDswPw5apPmyU00ghCvjEAgxAh9OMC5sVyRaLbP2pYst5VXib3d1OtCnwmAD9ZgE8N79kSuupGyqsmNpcrX0thUkMDqlvPzZA+i0aLkBCxuUafNtPnhahbHIdTQtA7dA8pxMYQ86I1wwe20iwKfAeCEEyCPNDjqjoWUnQ1zaJ9PHqpXH56QWC+VrnEDKnXrrhGfFpFtDUxYZFMSLhPq6jlPxex/35M4ekurw9ddeNI6WdwWm9gCMwPF+Ajw/s+CFm8ljGG0Cz6y5PyrRlMdngANgcRQohh9cnZYnONT4sITVX69FyfllDRcivOi0SvVlFtFOpirIasOSNHvqBZFPgIBCHwFBFcI4e2h6ygOk2mbYT86Zzy8/kszaKU6dNn8T4eJhQCdIBw1K8Xs/95Uh6kO3007MqbhndvQQrt9RvA6yAIgadGyrYZsgt0MVQX0f/bUeXBXMbq99tET0Sf5vOJo0JTVUAOEI6aE43XJzEvnKHaParPyGNCI5zlZTSLAl+AIAQeIQI/tPPdsDW30ixa1U+2tSo/Kgjk5iBCSJ82U2is9N2yesXlkHrtAbPd9qU8u4j533LFTnfMLmzNbYOf/xV2XPN3EITAI0N7txgy8/UpOTSLPnFY+clc1t8P4L0sNiIG641ST4eP7i82V+uTsylP9KUvLRR/fQbzq5NUG4WmgmVYb3Ac202zKPA6CEJwecrI4PCe98OvuZtm0UOd5HQveTA3KF6i+nQfribkG6v06YE8QDjq5/PYv9cpdYNU22cR13178NM/Eonu+CTwqqD4lAHTNLj97+YFV+jikmgW/ekR+ZmFjCHAu0XP06f5cDVhQO4pM65YI3okj336ONXZK4bMfF1CxgisKfRnEITgMqReu+PozrB1d9IsurVZ6XahTdnB8vo0+G5/GUKCJwgRQo/nM7vaFcrnFEZef+/gF/9QHMM0iwIvCpYPGjBlg5/+MXTF9Wx4FLWKIxJ6rFR5vpBlA3Tp4MW4lBliZwsReK/fWerpwJyBjYjx+p21KZRD/7GAfbBEVihGoc6SYsorHN79Hr2SwKsgCMFExPYGvuZE2JU30yz686Pyciu+KjloYhAhrOM4a5rQWuv1OwuNVYbAXUo/rvtmMSE6tLmcagdp+DXfHD74Cew+6qcgCMFEBj56PWz9XdhAbx3f4S7y9zrl+cLgGBu8gD59ltBY6fXbBvwKwothhF4pZp89IdcP0WsVshExIUuvGtz+N2oVgRdBEIJL4mvPSF3tIUVfo1ZRUNC9++TfFbFxRmo1tUKfNktoqvb6bYXGQN5c7VJmROAfF7D375dpDhWGrb3defqgaGumWBN4BwQhuARF7v/g1fAN99Bcf/brk0paKLo9Mxhflvq0WUJjhXfvSURBtDdzSVneva1f+OEcZkBAfzpHr4OUMYWGrb5lYOsb1CoCbwnGTxzgicGd7zLmMPO8ldQqVvWTlyvl/7c86DpF3XQxVkQUub/Li/cUWmq4hHTMBdxxxh7QMejNlexPDss095oJu+JGZbDXcXQXvZLAGyAIwThEe/Pw3g+j73ocYUozVhSC7tsvP7OQTQ4JojkyY3j9kF4haJbSj6sgGn8rh/l+KcW9Zhg26o4f9H/wKsya8S8QhOAiitz31+cjrvs2GxlHrebmcoXF6DuzgvoF6fVl9UG1gnBcTy9gT/aQD5rodZBySZmhy6/r+7/N1CqC6Qvqzx0wrsEv3mVMoSFL1lGreLiL/PqU/MbK4Fk3OD59mpfPYxIaK4M8CI0sensV++ABuYHiDNLw9XdCB6l/gSAEXyF2NA7v+zDqTnqdoj08umOX/HIxG7BH73pMn5ojttd7a9dKub+LyLIuxuqVu/mvonj88/nsxh2yQ6JVkmGj7nhs4MM/yIO9tEqCaYEgBBdQ5L6/vRBx/b1sZCydgpKCbvlCunsGvikdXooIG0z6pEy+9rRX7uaqOGKctcArt/J335vNLIrF9++nN1jIJWWFFF/b94/fUasIpgM+fcC/DH7xLmMODVm8llrFJw7Legb9e0AfQD8pxvwi15lSr9zKeabUlF/klVsFgN8XszUD5CWK282c7yA9spNaRTBlEITgPL729MiBj2h2ir5Tp3zQRP62WhfsY4MXMM0pcpaXTf+gV8I7hYZyw6yFXnmqAGBk0Xtr2edOyXs7aA0WMmzUHY/1f/gHWGKvfRCEACGEpB5b75+ei/76T6h1ip7pJY+Uyu+tZWMMdAr6B11cEjaYpr/pqKvqmD5jNmM0e+WpAkNqKP7zFbq7dsutI5SykEvKirr5oZ4/PKUM99OpCKYGghAgxeXo+cPT4VdtMuTMo1OxZYTcsEPeXMTOj4HG4Fim/KWus2XTvInzbJkxf6lXnieQrEnEj+YzG3fI/QKliqb5K80Lrux+41k4uVfLIAiDniL3vPmsMXdRSPG1dAranWj9Z/IDs5g7suDlNw5TfpHz7PSGCRXFVXnElAdBOI4nCpi1SXjNp1Kf98+8Gl/4NXfrouJg4oyWwSdRsOt/7xXM6iKuu5dOObsTrf5EunsG85O58Nobnz49Vxnqk3psU74DX1+ui7JQ6+X2O79ezBZb8LXbpCE6jTSMo+58XOpsHfriH1TqgUmDD6OgNrz3fb7udPQ3f4oYGq+ETida86l0VzbzJKTgBDA25i5xlR+a8g1cZ0uhX3QCGKHfFbELYvHVn1PKQszpY+59arjkE8eJvTTqgUmCz6PgNXJ4x9Cuf8Z+55eMMYRCuS4XWvOpdHsm82/z4FV3GcY50+oddZ4tM0EQTggjtHkZOzcaf+1zaZhKFrLh0bH3Pt3/3iuuyqM06oHJgI+kIDW878Ohz/8S973/YqPjKZRrGSFrPpVuSsf/Ph9ecpdnnLlAbD6nOIan8L2irYkoEpeU6fWnCjAYof9dxuZE4Ou2S71Uxgu55KzY7zzT9/cXHMf30KgHPAafSsFoaOe7wyUfx33/eV18MoVy+2yk8EPpnhnMfyyEhfMewZzekD3HVXlkCt/rgnX0HmMwen0FuzAWL/lQOttHY02FPjUn9qHnBj56Y3jv+xTKAQ9BEAYZQvrff9V5cn/8I8/TOVzitSrl9p3SH1fpHp8DL7ZJMM4pmtoiCufZMtMcCEJPMRg9X8j+ciGz5lPpnw009p3hrKlx339++MDHA1vfpFAOeAI+m4IIkaXePz0ntjfEPfwbJjTC1+V4Gd23X/59hVJyvW5dEqwXnBxTXqGr+hiRJ7dRtDzYJ3W16TPzffRUgeqOLGb713Q/Oaz89Iis+L5lqIu2xD3yvKvqaP8Hr01/FyEwfRCEwUK0N3f+z2MIodgHnsUGk6/L1Q2SVZ9IQyI6eL0uMwxScNKY0EidJZU/d2pS3+UqLzPOWohZnY+eKoDNjcZlN+gOdZLrtks23x9qz4ZHxT38G7GtruuVJ/9/e/ce3VSVLgD82ycnOXmnbdIHbcOj0JaWZykVARG0IiijF8qICljhKlZcoizBJwxr8HEdZG5HL3hxWMPSxYx3CuoIY7Uqs0AdQJDWUlGpbcpIH4E+0jyapElOztn3j2Cn8mqRPGjP91v80Z3unP1xmuTL3mefvQWnLeLtocvCRCgJ3mP/aP+ftZqCWxLuf5aw8oi2xYvwX8fFqX8PLh7JlN0s0+Bn8i+lGnvFo6PdJ75UjZsWoXgGvUQl7LuNnWQiE/7Gb6+NeM+QUWkTH/mdasz1rZsf8VYdiHBr6HIwEQ5yottp+9Nv3f/8e9LqP2hnzo90c4db6aT3g4dbxWPz2cfGMNgTvBqqsdd3nzjc/6EzGvAFTn3L4dZLV4Fl4IV82T9/xe46Jd7wQeRn0BCinTnfVPKC65O3O9/eTP2R74qii8FEOHhR6v36s9bNj8iHjEh8vJRNTItoax0+ePigcPd+4beTmPI57DAtJsGrxSabiVLjb/i2n/W7aw4qRuQyKm1Eo5KCLAPZdxtbnMkUfhRcVylE+kZDhTkree1WIudaNz/iq62KbGPoYjARDk6+k5Wt//2o+/M9xmXr9PPuj+hFI6uXrjkqZL/DczL47tfswhH4ogob/dwljj1vgNj3bEbq73Z++JZ+zpIoRCUFDIGS0UxNkbzJDRm7+OerxYiuTUoUyvhFj8UVrXS8/8f2rU8FfqyNYGPoAngBZ7AJNP7g/OBNwWUz3FasmnBDRDcXPO2mpSfE/2sQF49kaorYdA32AsNMnTfTc/gjz5cVfS6J7vr0r1xWnmJ4TnQCk4gUFeycJftXF/Pqt2LWO/zikczTE5gUZaSaU+Zel5JT0F1zsPPPv5MZh8T9xwpcGCE6MBEOElQI+r476vmygj/bqJ+7RFMwO3LLh/IifGyVvdMsHDgjloxmvv+1PDFiHw0ormhlx/8+q5o4g9HoL1Un2N7iOfpJ8lNvRDMw6RihI69Nla0Zx2z+Rhz3XvDOoeTuYcytwyAi18AJUU2coRwzxX2ovOONdYqRYzXXz1VmT4radtnSROg1cxfLpEmTduzYkZeX15/KgUCAUspxuKkrBNtbPEc+9h77B5uUrrn+NtXEGZGbF3qsnf7FIpadEkdqxWXZ8rszGIMiQk2hf3P8bRsVgvF3rep5pKurS6fT9RQ7/vgbLjtPN6soFtFJS1s3/MUi7KwTOgPM0lFkaSaTGxepFEX93d7K/Z4jH4sel3rKHM2UW3FHEQDwer0cx8lk4Vym6sp6hDzPy+V9fMhetE5/noiuAKV8yylfbWX3d18JNqu64JbEVb+P0HQYRwD2W8V9LfTTZipjYOko5sidrAncOh1+C4kS/W33tb78ED/1dnn6yAt/6/vuiGBv1c64M/qBSVCSClaPIQ+PDP7Lr9pZL86pEPRyuDWdzE5jZg4h4b1ZiHAqzfR5munz+OYGz5GK1ldWKsyZypzJypwCNtkczpYkr789Qrfbff/99+/bt08mkz399NPPPPPMhXVeeeWVl19+WRCEwsLCnTt3hr6xNjc3L168+Pjx40ql8tVXX128ePGlmsAeYZ+CtjOB0z/4a6t8tZVEqVHmFChzJnOZE8I+F6bZQ6s66LF2ut9Kv7XTacnk1jRmdhoZl3Duy+95PRIUaZ4jn3iOfpr02O9DQ2Q955/ygdZNJfGLHuOy+vXGQVdPFEWfz6dWqwFApFDVQfe10E9bxKoOWmAiN6Uyk00k30SSwr1qBeUDvtpK38lKX20lAcLlTFZm5yuGZkmtmxiJHmF/E+Fzzz1XVVX1wQcfWK3WKVOmvP/++9Om/ey+3aNHj86bN+/o0aNms3nBggVjx47dtGkTACxcuDA5OXnLli2VlZWFhYV1dXWpqakXbQIT4XkoHwh2WINtzYGmer7ZEmisI5xKYc7ksvOUoyezxpRwNWTzQ72T1rvoDw5abaNVHZQC5JvIZBOZOYSZnkyUF7zkMBFGG6Vtf1itnXGnuqAQep1/16d/5VsajMvXxzo+CemdCHtz8/D5WfrFGbGqg35to1qW5JvIRCPJNkCmgYzSkzBeR+DPNvpOHvPX1/DN9QAgN2cpzJny9FHypHSZMWVwLy0Uy0SYlpb21ltvzZ49GwBWr17t9Xq3b9/eu8LKlStlMtnWrVsB4MCBA/fcc09ra6vdbk9KSrJYLMOGDQOA22+//eabb167du1Fm5BmIqRCUPS4RFen4OoUXHbB2SE4OoId1mC7VfQ4ZQnJ8iSzPH2UwpypGJrJaON+WSs+ATr91OaDDj80e+gZL7R4aIsXmtzU4qIiPfdGzTaQCUbINxFzX/M/MRFGX6DxB9uO543/+RtgZF6vV61WU5/X9tZLyWu2RmcvLRRyqUR4ngYXreqgNZ203gn1LmpxUTULmXqSriFD1GDWkBQ1mDUkgQOjkiRwoPilk9sER0egqY5vrA+0WIJtLYKzQ6ZPYE2prCmViTPKDCaZLk5mMDG6OJnGEJ0tuCMqZtcIvV6v1WrNzc0NFXNzc8vKys6rY7FYFixY0FOhra3N5XL9+OOPHMeFsmDocYvFcqlWKKUul8tut4eKarX68nnO7nArFOG+01XgKe/ro06Qp4Gf31LE+4gQBABKKXR7AICKAvi9AEC7PQCU+jzAB4IBv9DtIbwf/B7odp/7FwwQjUHUxoPOCLp4qjdS00h3xgw+IVXUJ4XGwQIieHgAJ4CTigDOAAUAXoTQfb5uHngRXDwVKDgD4BPAw4M9QD08uIPg8IPNTwUKCRwYOWJSQuh9mKEjM1IgTcOM0hOc8zkgKIZmqwtucbz7OgAIghCQyQBAP2cJZsFr00g9Gakni3rd/mD10gYXtHjomW5octPKDmj2iDYf2Py00w+cDIwciVOAVg4aFgwKopODkgWdHOQMaFnCyUDNAgDo5SBjAADiFaEvrEZImKpLnspOAQAgosA4W2WdVl2XlXTZifUbcDuIq514nOBxgEJFVVpQ6ahKC5wGWAWrUss4JZFzwKmAMESpBgBQaghhgAD5aX0GyiqA/VmXluFUtK9sRDgVkDB3T/28PyncXaB+hRhKTlrtuTOi1+s7OzsvrNNTIdRXsNvtDodDo/n37uc6na6xsfFSrbhcrjvuuKMnz7/00kvFxcWXqhwIBNo3r5RBmLdN4QnbTfpICwFG7mN+9mfoZpQBIgMAIMQl0wAAJUwXowGALpmaAvHI1H5Gy8s4v1wTYBQepaZLo+litV1yrZf5+ZUELzDdYHACNAHAuZ0H5IRqfpppxADo5QAAcgY0LAUArRxYQnVyoiQwREM5GWhYapCDhg39QI1KopZdut8fBPeV7//q8XgIzueOOtmsu9Sz7gIAt9ut/unt5v4Ffz90FUI9QrEfqxycRw+Qp4W8S6z80xUkdj84AuAJEk8QuoLQxRO/AO4gCQSh1UcDIvEGz9UURAAAR6+OQBcPAu15SyYCJNr9EwAAFAAJAAnnfqERPLqgRx906wS3JuhV8AHW5eWCPo4G1IJTBqJGaAYAneAmQAkFnXDu1aUUeY4GegesErvlonD5/7JK7JZDH3WuVJsySf3ky/3vEarVaqavfnC/EqHJZCKEOJ1Og8EAAHa7PTk5+bw6iYmJTqcz9LPD4Qg94nK5eh681BN7GAyGd999t/9Do1kv/XkQDI0OUJTSnu89KPrw/MeQKIosy/Y5NHqltABDwnvEi1MAxEejnYgZHoGh0X6NF3Mcl5GRUV1dHSoeP3589OjR59XJycnpXWH48OFqtXr48OEMw5w8efIyT0QIIYRiqL8XTlesWPHiiy82NTV98cUXu3fvfvDBBwHAZrPNmTOnvb0dAB544IH33nvvwIEDzc3NL7zwwooVKwBAp9Pde++969evb21tLSsrO378+GVun0AIIYSir7+XMdesWdPR0TFjxoy4uLht27aNGzcOACilfr8/NO90zJgx27dvf+KJJ+x2+8KFC5988snQE0tLSx9//PGCgoLU1NS9e/fGxw/sXjlCCKFBZqAusdbW1iYIwpAhURlURxeoq6sbOnSoUonzTWNAFMWTJ0+OGTMm1oFIVGhye89keBRlp0+fjouLC01YCZeBek/Jtm3btmzZEusopKu4uPjrr7+OdRQS1dXVdd5yFiiaysvLn3rqqVhHIV3PPvvsnj17wnvMgZoIEUIIobDARIgQQkjSMBEihBCStGtosszy5cv379/Psv2ayOrxeACg97I1KJpCawbh1loxQSm12Wwmk7T2HLh2+P1+v9+v119yn2QUUS6Xi+O4/q+mUl5enpOTc/k611Ai9Hq9Z8+ejXUUCCGEBo/09HSFoo+NP66hRIgQQghFH14jRAghJGmYCBFCCEkaJkKEEEKShokQIYSQpIV57+Dos1gsH374YWNjo9lsvu+++4xGY6wjkpb29vbKysqmpqaZM2dmZ2fHOpzBz+/379ixw2Kx5OXlLVmypM8dR1EY8Tx/4sSJb775RqfTLVy4MNbhSE5jY2N5eXlDQ0NKSsrSpUvDuNb0gJ81mpube+ONN+bk5Bw6dOjgwYPV1dWX2fsXhd348eM1Gk19ff3mzZuXL18e63AGvwULFjidzkWLFm3fvn3WrFmlpaWxjkhCtm7dWlpaGh8fL4piz/arKGqmTZs2evTo8ePH19TU7Nmzp6qqKiMjIyxHHvCJ0OfzhfZAoJTm5+eXlJSUlJTEOigJEUWRYZhp06atWLECE2Gkff/999ddd92ZM2d0Ot2pU6fGjh3b3NyckJAQ67ikIvRqLysr27RpEybC6Ov5tAeA2bNnz5o1a926dWE58oAfV+k5L4QQn8+n1WpjG4/U4NBcNH3++edTpkzR6XQAkJGRkZaW9tVXX8U6KAnBV3ts9d73Lbyf9oPn7/r6668Hg8GioqJYB4JQpJw9ezYxMbGnmJSUZLVaYxgPQjGxa9euhoaG4uLicB1wACTC559/nr1ASkpK7zp79+7duHHj7t27VSpVrOIcrCZMmHDh+V+1alWs45IilmUFQegp8jzf59pRCA0yhw4dWrVq1e7du+Pj48N1zAEwa3TDhg0bNmy4TIWKioqSkpKKioqJEydGLSrpqKmpiXUI6Jy0tLSKioqeYktLS2pqagzjQSjKDh06VFRUtGvXrhtuuCGMhx0APcLL27dv37Jly/bu3Zufnx/rWBCKrLlz51ZXV58+fRoADh8+7Pf7cat6JB1HjhyZP3/+m2++edNNN4X3yAN+1mhCQoJcLjebzaHismXLHn300diGJClr16797LPPamtrExMTjUbja6+9Nn369FgHNZitW7fu7bffLiws/OijjzZu3PjQQw/FOiIJqaysfPjhhzs7O1tbW3NycqZOnbply5ZYByUhWVlZNpttxIgRoeL8+fPXr18fliMP+ERYXV0timJPMSUlJS0tLYbxSE1DQ4PD4egpjho1ymAwxDAeKaisrKyvr584cWKfu6yh8Orq6qqrq+sp6vX6zMzMGMYjNSdOnAgEAj1Fk8k0bNiwsBx5wCdChBBC6GoM+GuECCGE0NXARIgQQkjSMBEihBCSNEyECCGEJA0TIUIIIUnDRIgQQkjSMBEihBCSNEyECCGEJA0TIUIIIUnDRIgQQkjSMBEihBCStP8HcJgMVmBT5dkAAAAASUVORK5CYII=", "text/html": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ] }, "metadata": {}, "execution_count": 18 } ], "cell_type": "code", "source": [ "μsupport = νsupport = range(-2, 2; length=100)\n", "C = pairwise(SqEuclidean(), μsupport', νsupport'; dims=2)\n", "μ = normalize!(exp.(-μsupport .^ 2 ./ 0.5^2), 1)\n", "ν = normalize!(νsupport .^ 2 .* exp.(-νsupport .^ 2 ./ 0.5^2), 1)\n", "\n", "plot(μsupport, μ; label=raw\"$\\mu$\", size=(600, 400))\n", "plot!(νsupport, ν; label=raw\"$\\nu$\")" ], "metadata": {}, "execution_count": 18 }, { "cell_type": "markdown", "source": [ "Now we compute the entropically regularised transport plan:" ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "Plot{Plots.GRBackend() n=1}", "image/png": "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", "text/html": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n" ], "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n" ] }, "metadata": {}, "execution_count": 19 } ], "cell_type": "code", "source": [ "γ = sinkhorn(μ, ν, C, 0.01)\n", "heatmap(\n", " μsupport,\n", " νsupport,\n", " γ;\n", " title=\"Entropically regularised optimal transport\",\n", " size=(600, 600),\n", ")" ], "metadata": {}, "execution_count": 19 }, { "cell_type": "markdown", "source": [ "### Quadratically regularised transport\n", "\n", "Notice how the \"edges\" of the transport plan are sharper if we use quadratic regularisation\n", "instead of entropic regularisation:" ], "metadata": {} }, { "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "┌ Warning: Semi-smooth Newton algorithm (100/100): not converged\n", "└ @ OptimalTransport ~/work/OptimalTransport.jl/OptimalTransport.jl/src/quadratic_newton.jl:216\n" ] }, { "output_type": "execute_result", "data": { "text/plain": "Plot{Plots.GRBackend() n=1}", "image/png": "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", "text/html": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n" ], "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n" ] }, "metadata": {}, "execution_count": 20 } ], "cell_type": "code", "source": [ "γquad = quadreg(μ, ν, C, 5; maxiter=100);\n", "heatmap(\n", " μsupport,\n", " νsupport,\n", " γquad;\n", " title=\"Quadratically regularised optimal transport\",\n", " size=(600, 600),\n", ")" ], "metadata": {}, "execution_count": 20 }, { "cell_type": "markdown", "source": [ "### Sinkhorn barycenters\n", "\n", "For a collection of discrete probability measures $\\{\\mu_i\\}_{i=1}^N \\subset \\mathcal{P}$,\n", "cost matrices $\\{C_i\\}_{i=1}^N$, and positive weights $\\{\\lambda_i\\}_{i=1}^N$ summing to $1$,\n", "the entropically regularised **barycenter** in $\\mathcal{P}$ is the discrete probability\n", "measure $\\mu$ that solves\n", "$$\n", "\\inf_{\\mu \\in \\mathcal{P}} \\sum_{i = 1}^N \\lambda_i \\operatorname{OT}_{\\varepsilon}(\\mu, \\mu_i)\n", "$$\n", "where $\\operatorname{OT}_\\varepsilon(\\mu, \\mu_i)$ denotes the entropically regularised\n", "optimal transport cost with marginals $\\mu$ and $\\mu_i$, cost matrix $C$, and entropic\n", "regularisation parameter $\\varepsilon$.\n", "\n", "We set up two measures and compute the weighted barycenters. We choose weights\n", "$\\lambda_1 \\in \\{0.25, 0.5, 0.75\\}$." ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "Plot{Plots.GRBackend() n=5}", "image/png": "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", "text/html": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ] }, "metadata": {}, "execution_count": 21 } ], "cell_type": "code", "source": [ "support = range(-1, 1; length=250)\n", "mu1 = normalize!(exp.(-(support .+ 0.5) .^ 2 ./ 0.1^2), 1)\n", "mu2 = normalize!(exp.(-(support .- 0.5) .^ 2 ./ 0.1^2), 1)\n", "\n", "plt = plot(; size=(800, 400), legend=:outertopright)\n", "plot!(plt, support, mu1; label=raw\"$\\mu_1$\")\n", "plot!(plt, support, mu2; label=raw\"$\\mu_2$\")\n", "\n", "mu = hcat(mu1, mu2)\n", "C = pairwise(SqEuclidean(), support'; dims=2)\n", "for λ1 in (0.25, 0.5, 0.75)\n", " λ2 = 1 - λ1\n", " a = sinkhorn_barycenter(mu, C, 0.01, [λ1, λ2], SinkhornGibbs())\n", " plot!(plt, support, a; label=\"\\$\\\\mu \\\\quad (\\\\lambda_1 = $λ1)\\$\")\n", "end\n", "plt" ], "metadata": {}, "execution_count": 21 }, { "cell_type": "markdown", "source": [ "---\n", "\n", "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*" ], "metadata": {} } ], "nbformat_minor": 3, "metadata": { "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", "version": "1.7.1" }, "kernelspec": { "name": "julia-1.7", "display_name": "Julia 1.7.1", "language": "julia" } }, "nbformat": 4 }