{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Subclassing Bijectors\n", "\n", "> In this post, we are going to make customized transformation with our own bijectors for fexibility. This is the summary of lecture \"Probabilistic Deep Learning with Tensorflow 2\" from Imperial College London.\n", "\n", "- toc: true \n", "- badges: true\n", "- comments: true\n", "- author: Chanseok Kang\n", "- categories: [Python, Coursera, Tensorflow_probability, ICL]\n", "- image: images/learned_dist.png" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Packages" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import tensorflow as tf\n", "import tensorflow_probability as tfp\n", "\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "tfd = tfp.distributions\n", "tfpl = tfp.layers\n", "tfb = tfp.bijectors\n", "\n", "plt.rcParams['figure.figsize'] = (10, 6)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tensorflow Version: 2.5.0\n", "Tensorflow Probability Version: 0.13.0\n" ] } ], "source": [ "print(\"Tensorflow Version: \", tf.__version__)\n", "print(\"Tensorflow Probability Version: \", tfp.__version__)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Overview\n", "\n", "We can create our bijector by using bijector subclassing." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Sample bijector" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "class MySigmoid(tfb.Bijector):\n", " def __init__(self, validate_args=False, name='sigmoid'):\n", " super(MySigmoid, self).__init__(validate_args=validate_args, forward_min_event_ndims=0, name=name)\n", " \n", " def _forward(self, x):\n", " return tf.math.sigmoid(x)\n", " \n", " def _inverse(self, y):\n", " return tf.math.log(y) - tf.math.log(1 - y)\n", " \n", " def _inverse_log_det_jacobian(self, y):\n", " return -tf.math.log(y) - tf.math.log(1 - y)\n", " \n", " def _forward_log_det_jacobian(self, x):\n", " return -self.inverse_log_det_jacobian(self._forward(x))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that, while implementing our bijector, the name of method should contain underscore in front of the name itself." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Same bijector (implementing forward log det jacobian)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "class MySigmoid(tfb.Bijector):\n", " def __init__(self, validate_args=False, name='sigmoid'):\n", " super(MySigmoid, self).__init__(validate_args=validate_args, forward_min_event_ndims=0, name=name)\n", " \n", " def _forward(self, x):\n", " return tf.math.sigmoid(x)\n", " \n", " def _inverse(self, y):\n", " return tf.math.log(y) - tf.math.log(1 - y)\n", " \n", " def _inverse_log_det_jacobian(self, y):\n", " return -_forward_log_det_jacobian(self._inverse(y))\n", " \n", " def _forward_log_det_jacobian(self, x):\n", " return -tf.math.softplus(-x) - tf.math.softplus(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Simple shift bijector" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "class MyShift(tfb.Bijector):\n", " def __init__(self, shift, validate_args=False, name='shift'):\n", " self.shift = shift\n", " super(MyShift, self).__init__(validate_args=validate_args, forward_min_event_ndims=0, name=name, is_constant_jacobian=True)\n", " \n", " def _forward(self, x):\n", " return x + self.shift\n", " \n", " def _inverse(self, y):\n", " return y - self.shift\n", " \n", " def _forward_log_det_jacobian(self, x):\n", " return tf.constant(0., x.dtype)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Simple Tanh bijector" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "class MyTanh(tfb.Bijector):\n", " \n", " def __init__(self, validate_args=False, name='cube'):\n", " super(MyTanh, self).__init__(validate_args=validate_args, forward_min_event_ndims=0, name=name)\n", "\n", " def _forward(self, x):\n", " return tf.math.tanh(x)\n", "\n", " def _inverse(self, y):\n", " return tf.math.atanh(y)\n", " \n", " def _forward_log_det_jacobian(self, x):\n", " return tf.math.log1p(-tf.square(tf.tanh(x)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Tutorial" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "# Define a new bijector: Cubic\n", "\n", "class Cubic(tfb.Bijector):\n", " def __init__(self, a, b, validate_args=False, name='Cubic'):\n", " self.a = tf.cast(a, tf.float32)\n", " self.b = tf.cast(b, tf.float32)\n", " \n", " if validate_args:\n", " assert tf.reduce_mean(tf.cast(tf.math.greater_equal(tf.abs(self.a), 1e-5), tf.float32)) == 1.0\n", " assert tf.reduce_mean(tf.cast(tf.math.greater_equal(tf.abs(self.b), 1e-5), tf.float32)) == 1.0\n", " \n", " super(Cubic, self).__init__(validate_args=validate_args, forward_min_event_ndims=0, name=name)\n", " \n", " def _forward(self, x):\n", " x = tf.cast(x, tf.float32)\n", " return tf.squeeze(tf.pow(self.a * x + self.b, 3))\n", " \n", " def _inverse(self, y):\n", " y = tf.cast(y, tf.float32)\n", " return (tf.math.sign(y) * tf.pow(tf.abs(y), 1/3) - self.b) / self.a\n", " \n", " def _forward_log_det_jacobian(self, x):\n", " x = tf.cast(x, tf.float32)\n", " return tf.math.log(3. * tf.abs(self.a)) + 2. * tf.math.log(tf.abs(self.a * x + self.b))" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "# Cubic bijector\n", "\n", "cubic = Cubic([1.0, -2.0], [-1.0, 0.4], validate_args=True)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Apply forward transformation\n", "\n", "x = tf.constant([[1, 2], [3, 4]])\n", "y = cubic.forward(x)\n", "y" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.0" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Check inverse\n", "\n", "np.linalg.norm(x - cubic.inverse(y))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Function plots" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmQAAAFlCAYAAABFpfSEAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAA+mklEQVR4nO3deZgU5bn+8e/T07NvzAzDIqAgiwouUUfEfYEgbkGNGswiLpEsakxM4pacmBNzzi+aHE1M1ATFqHFfIypKcE00QR1UFFFk2GRnYGD2vd/fH1UDDcwIOj1Tvdyf66qrqt+q7n6KnmbuqXrrLXPOISIiIiLBCQVdgIiIiEiqUyATERERCZgCmYiIiEjAFMhEREREAqZAJiIiIhIwBTIRERGRgIWDLqC7+vbt64YOHRp0GSIiIiK7NG/evI3OudId2xM+kA0dOpTy8vKgyxARERHZJTNb0Vm7TlmKiIiIBEyBTERERCRgCmQiIiIiAVMgExEREQmYApmIiIhIwBTIRERERAKmQCYiIiISMAUyERERkYApkImIiIgETIFMREREJGAKZCIiIiIBUyDblS0rYdm/gq5CREREkpgC2a78/XvwxLehuS7oSkRERCRJKZDtyvhfQN06+PetQVciIiIiSUqBbFeGjIUxZ8Ebt0L16qCrERERkSSkQLY7JvwSXAReviHoSkRERCQJKZDtjqK9YNz3YP5DsObdoKsRERGRJKNAtruOuRJySmD2z8G5oKsRERGRJBKTQGZmPzKzD81sgZk9ZGZZZjbMzN40swoze8TMMvxtM/3HFf76oVGvc63fvsjMTopFbTGTVQgnXAcrXoePnwu6GhEREUki3Q5kZjYI+AFQ5pzbH0gDpgA3Arc450YAm4GL/adcDGz222/xt8PMRvvPGwNMAm43s7Tu1hdTh1wAffeBOf8FbS1BVyMiIiJJIlanLMNAtpmFgRxgLXAi8Li//l7gDH95sv8Yf/14MzO//WHnXLNzbhlQAYyNUX2xkRaGk/4HqpbC23cFXY2IiIgkiW4HMufcauB3wKd4QawamAdscc61+ZutAgb5y4OAlf5z2/ztS6LbO3lO/BgxAYafCK/dCA1VQVcjIiIiSSAWpyyL8I5uDQP2AHLxTjn2GDObZmblZlZeWVnZk2/V2ZvDxF9Dcw28dlPvvreIiIgkpVicspwALHPOVTrnWoEngaOAPv4pTIDBQMeoqquBIQD++kJgU3R7J8/ZjnNuunOuzDlXVlpaGoNd+Jz6j4FDzoe374TKRb3//iIiIpJUYhHIPgXGmVmO3xdsPLAQeAU4299mKvC0vzzTf4y//mXnnPPbp/hXYQ4DRgJvxaC+nnHif0FGLjx/lYbBEBERkW6JRR+yN/E6578DfOC/5nTgauBKM6vA6yM2w3/KDKDEb78SuMZ/nQ+BR/HC3AvApc659u7W12Ny+8IJP4Olr8JHzwRdjYiIiCQwcwl+dKesrMyVl5cH8+btbfCXY6G5Fi59EzJygqlDREREEoKZzXPOle3YrpH6uyMtDKfcBNWfwht/CLoaERERSVAKZN019GgYcxa88XvYvCLoakRERCQBKZDFwsRfg4Vg9nVBVyIiIiIJSIEsFgoHwTE/ho+fhSUvB12NiIiIJBgFslg58nIoGgbPX637XIqIiMjnokAWK+FMmPQb2PgJvPWXoKsRERGRBKJAFkv7TIKRE+HVG6FmTdDViIiISIJQIIu1k2+E9hZ44dqgKxEREZEEoUAWa8V7w7E/hYV/h8Vzgq5GREREEoACWU846gfQdxQ892NoaQi6GhEREYlzCmQ9IZwJp94MW1bAP38bdDUiIiIS5xTIesqwY+Cgr8O/b4UNHwVdjYiIiMQxBbKeNPEGyMyHZ38EkUjQ1YiIiEicUiDrSbl94cu/gk//A+89EHQ1IiIiEqcUyHral74Jex4Bc/4L6jcFXY2IiIjEIQWynhYKwWm3QHOtF8pEREREdqBA1hv67efd6/K9B2Dpa0FXIyIiInFGgay3HHuVN2jszMuhpT7oakRERCSOKJD1lowc+MqfvLHJXv510NWIiIhIHFEg601Dj4Kyi2HuHbDyraCrERERkTihQNbbJvwSCgbB05dBW3PQ1YiIiEgcUCDrbVkFcPofYOMi3VZJREREAAWyYIycAAedB6/fAus+CLoaERERCZgCWVBO+l/ILoanL4X2tqCrERERkQApkAUlpxhO/R2sne/dgFxERERSlgJZkEZPhv2+Aq/+BioXBV2NiIiIBESBLGin/h9k5MJT34H21qCrERERkQAokAUtrx+c/ntY8y786/+CrkZEREQCEJNAZmZ9zOxxM/vYzD4ysyPMrNjM5pjZYn9e5G9rZnarmVWY2ftmdkjU60z1t19sZlNjUVtCGD0ZDvwavHYTrH4n6GpERESkl8XqCNkfgBecc/sCBwEfAdcALznnRgIv+Y8BTgZG+tM04A4AMysGrgcOB8YC13eEuJRw8k2Q1x+e+i60NgZdjYiIiPSibgcyMysEjgVmADjnWpxzW4DJwL3+ZvcCZ/jLk4H7nGcu0MfMBgInAXOcc1XOuc3AHGBSd+tLGNl94IzbvAFjX7oh6GpERESkF8XiCNkwoBL4q5m9a2Z3mVku0N85t9bfZh3Q318eBKyMev4qv62r9tQx/EQ47BKYexss+2fQ1YiIiEgviUUgCwOHAHc45w4G6tl2ehIA55wDXAzeCwAzm2Zm5WZWXllZGauXjQ9f/m8oHg5//z401QRdjYiIiPSCWASyVcAq59yb/uPH8QLaev9UJP58g79+NTAk6vmD/bau2nfinJvunCtzzpWVlpbGYBfiSEYunPkXqFkNL1wbdDUiIiLSC7odyJxz64CVZraP3zQeWAjMBDqulJwKPO0vzwTO96+2HAdU+6c2ZwMTzazI78w/0W9LPUMOg6OvhPfuh4+eCboaERER6WHhGL3O5cADZpYBLAUuxAt7j5rZxcAK4Fx/21nAKUAF0OBvi3OuysxuAN72t/uVc64qRvUlnuOuhooXYeblsMchUJha3elERERSiXnduxJXWVmZKy8vD7qMnrFpCfz5GNjjYJg6E0JpQVckIiIi3WBm85xzZTu2a6T+eFYy3LsB+YrX4V83B12NiIiI9BAFsnh30HlwwDnw6v+DT9/c9fYiIiKScBTI4p0ZnHozFA6GJ74NjVuCrkhERERiTIEsEWQVwNl3Q+0aePZHkOD9/kRERGR7CmSJYnAZnHAdfPgkvHt/0NWIiIhIDCmQJZKjfghDj4Hnr4LKT4KuRkRERGJEgSyRhNLgrOmQng2PTYWWhqArEhERkRhQIEs0BXvAWXfCho9g1k+CrkZERERiQIEsEY0YD8ddBe89AO/8LehqREREpJsUyBLVcVfD3sd7R8nWfRB0NSIiItINCmSJKpQGZ90F2UXw6FRoqgm6IhEREfmCFMgSWV4pnP1X2LwcZl6m8clEREQSlAJZotvrCJhwPSx8GubeEXQ1IiIi8gUokCWDI38A+54G//g5LPtn0NWIiIjI56RAlgzM4Iw7oGQ4PHYBbFkZdEUiIiLyOSiQJYusApjyILS3wiPfhNbGoCsSERGR3aRAlkz6jvRG8l/7nm5CLiIikkAUyJLNPifD8dfB/IfgrelBVyMiIiK7QYEsGR37U9jnFHjhWlj+etDViIiIyC4okCWjUAjO/IvXyf+Rb0HVsqArEhERkc+gQJassgrgvIfBReDBr0FTddAViYiISBcUyJJZyXD42v1QtQQeuxDa24KuSERERDqhQJbshh0Dp94MS16Cf/ws6GpERESkE+GgC5BecOhUqFwEc2+DvqPgsIuDrkhERESi6AhZqph4A4ycCLN+CktfDboaERERiaJAlipCafDVGVC6j3fl5fqFQVckIiIiPgWyVJJVAF9/FDJy4YGzoWZN0BWJiIgICmSpp88QL5Q1VcMD50BTTdAViYiIpLyYBTIzSzOzd83sWf/xMDN708wqzOwRM8vw2zP9xxX++qFRr3Gt377IzE6KVW2yg4EHwrn3QeXH8Oi3oK0l6IpERERSWiyPkF0BfBT1+EbgFufcCGAz0HFp38XAZr/9Fn87zGw0MAUYA0wCbjeztBjWJ9FGjIfTb/U6+D/zA92IXEREJEAxCWRmNhg4FbjLf2zAicDj/ib3Amf4y5P9x/jrx/vbTwYeds41O+eWARXA2FjUJ104+BvbbkT+8q+DrkZERCRlxWocst8DVwH5/uMSYItzrmNo+FXAIH95ELASwDnXZmbV/vaDgLlRrxn9HOkpx10FNavgX7+D3L4w7ntBVyQiIpJyun2EzMxOAzY45+bFoJ7dfc9pZlZuZuWVlZW99bbJyQxOvQX2PQ1euAbmPxx0RSIiIiknFqcsjwK+YmbLgYfxTlX+AehjZh1H4AYDq/3l1cAQAH99IbApur2T52zHOTfdOVfmnCsrLS2NwS6kuLSwN0bZsGPh79+HRc8HXZGIiEhK6XYgc85d65wb7Jwbitcp/2Xn3DeAV4Cz/c2mAk/7yzP9x/jrX3bOOb99in8V5jBgJPBWd+uT3ZSeBVMehIEHwWMXwPI3gq5IREQkZfTkOGRXA1eaWQVeH7EZfvsMoMRvvxK4BsA59yHwKLAQeAG41DnX3oP1yY4y8+Ebj0OfveChKbB2ftAViYiIpARzCT7cQVlZmSsvLw+6jORSvRruPglaG+CCWdBv36ArEhERSQpmNs85V7Zju0bql50VDoLzn4ZQOtx7OmxcHHRFIiIiSU2BTDpXMhymzgScF8o2LQm6IhERkaSlQCZdK90Hzp8Jbc1w71dg84qgKxIREUlKCmTy2fqP9k5fttR5R8qqVwVdkYiISNJRIJNdG3ggfOspaNwM95ymUCYiIhJjCmSyewYdAt98Ehqq4K8nw+blQVckIiKSNBTIZPcNOQymPg1NNfDXU9XRX0REJEYUyOTz2eNguOBZaGuEv54ClZ8EXZGIiEjCUyCTz2/AAXDBc+AicM8psH5h0BWJiIgkNAUy+WL67QcXzoJQGO45FVbPC7oiERGRhKVAJl9c35FeKMvMh3tOh6WvBl2RiIhIQlIgk+4p3hsumg1Fe8ED58DCp4OuSEREJOEokEn3FQz0jpTtcTA8dgHMuyfoikRERBKKApnERnaRN3js8PHwzBXwr5vBuaCrEhERSQgKZBI7Gblw3kNwwDnw0n/DrJ9CpD3oqkREROJeOOgCJMmkpcOZ0yF/IPz7Vu82S2fP8MKaiIiIdEpHyCT2QiGYeAOc8jtYPNsbFqN2fdBViYiIxC0FMuk5Yy+BKQ9B5SK4a4I3FxERkZ0okEnP2meSN6p/WxPM+DIseSXoikREROKOApn0vEGHwLdfhIJBcP9XYe6fdQWmiIhIFAUy6R1Fe8HF/4BRk+CFq+GZH0BbS9BViYiIxAUFMuk9mfnwtfvhmJ/AO/fBfZOhfmPQVYmIiAROgUx6VygE4/8LvjoD1rwD00+ANe8FXZWIiEigFMgkGAecDRc+D64dZkz0jpiJiIikKAUyCc6gQ+A7/4S9joCZl8PTl0JrY9BViYiI9DoFMglWbl/45pNw7E/h3fu9o2VVy4KuSkREpFcpkEnwQmlw4s/h64/ClhUw/Tj46NmgqxIREek1CmQSP0adBNNeg6Jh8Mg34NkrdQpTRERSQrcDmZkNMbNXzGyhmX1oZlf47cVmNsfMFvvzIr/dzOxWM6sws/fN7JCo15rqb7/YzKZ2tzZJQMXD4OI5cOTlUD7Duwpz/cKgqxIREelRsThC1gb82Dk3GhgHXGpmo4FrgJeccyOBl/zHACcDI/1pGnAHeAEOuB44HBgLXN8R4iTFhDNg4q/hm09Awya48wR4606N7i8iIkmr24HMObfWOfeOv1wLfAQMAiYD9/qb3Quc4S9PBu5znrlAHzMbCJwEzHHOVTnnNgNzgEndrU8S2IgJ8L03YOjRMOsn8PA3oH5T0FWJiIjEXEz7kJnZUOBg4E2gv3Nurb9qHdDfXx4ErIx62iq/rat2SWV5/eDrj8FJ/wuL/wG3H64O/yIiknRiFsjMLA94Avihc64mep1zzgExO99kZtPMrNzMyisrK2P1shKvQiE44lKY9irkD/A6/D9xCTRUBV2ZiIhITMQkkJlZOl4Ye8A596TfvN4/FYk/3+C3rwaGRD19sN/WVftOnHPTnXNlzrmy0tLSWOyCJIIB+8Mlr8Dx18KHT8Lt4+DjWUFXJSIi0m2xuMrSgBnAR865m6NWzQQ6rpScCjwd1X6+f7XlOKDaP7U5G5hoZkV+Z/6JfpvINmnpcPw1cMnLkNMXHj4PnvouNG4OujIREZEvLBZHyI4CvgWcaGbv+dMpwG+AL5vZYmCC/xhgFrAUqADuBL4P4JyrAm4A3vanX/ltIjsbeJB3CvPYn8L7j8KfDoP3H9OVmCIikpDMJfgvsLKyMldeXh50GRKktfPhmR/Cmndg7+Ph1JuhZHjQVYmIiOzEzOY558p2bNdI/ZL4Bh4E334RTvkdrH4Hbj8CXr0R2pqDrkxERGS3KJBJcgilwdhL4LK3Yd9T4dX/hTuOgqWvBl2ZiIjILimQSXLJHwDn/BW+8QREWuG+yfDQ12HTkqArExER6ZICmSSnkRPg+2/C+Oth2Wtw2+Ew+2fQuCXoykRERHaiQCbJKz0LjrkSLn8HDpoC/7kN/ngIvD0D2tuCrk5ERGQrBTJJfvn9YfKfvGEySveF566EO46EhTM1TIaIiMQFBTJJHXt8CS54Ds69D1wEHv0W3HkCLHlZwUxERAKlQCapxQxGT4bvz4XJt0H9RvjbmXDv6bDyraCrExGRFKVAJqkpLQwHfxMunwcn3wSVH8OML8MD5yqYiYhIr1Mgk9QWzoTDvwNXzIfxv4BVb3vB7J7TvDHMdCpTRER6gQKZCEBGLhzzY/jhBzDxf2DjYm8Ms7smwMezIBIJukIREUliCmQi0TLz4MjL4Ifvw2m3QH0lPHyed1XmvHuhtTHoCkVEJAkpkIl0JpwJZRd5Y5id+RcIheGZH8DNo+GlG6BmbdAViohIEjGX4H1kysrKXHl5edBlSLJzDla8AXPvgI+f8+6dOeZMOPy7MOhQ7+pNERGRXTCzec65sh3bw0EUI5JwzGDo0d5UtQzemg7v/A0+eAz6HwCHToUDzoHsPkFXKiIiCUhHyES+qKYaL5DNuwfWvQ/hbBhzBhx6AQw5XEfNRERkJ10dIVMgE4mFNe96nf4/eBxaaqHvPnDgud5Rs6K9gq5ORETihAKZSG9oroMPn4L3HoBP/+O17XmEF8zGnAk5xcHWJyIiALS1R1i+qYFF62pZtL6Wig21/GHKwaSn9ez1jupDJtIbMvPgkG950+YVsOBxeP9R74bmz18NIyZ4t27aZxJkFwVdrYhI0mtua2f5xgYWb6ilYkMdizfUUbG+jmUb62lp98aYDBkM7ZvLproWBhRmBVKnjpCJ9DTnYN0H8MGjsOBJqFntDaMx9GjY73TY9zTIHxB0lSIiCa2xpZ0llXUsqaxj8fo6Fm+oZfGGOlZsaqA94mUdM9izOIeR/fIY3i+Pkf3y2XdAPiP65ZGVntYrdeqUpUg8cA7WvAMfPeNNmyoAg8GHwaiJMOLLMOBACGmIQBGRHTW3tbOyqoGllfUs31TPso0NLNtYx/KNDayradq6XVrIGFqSwwg/dI3sn8eIfnkML+294NUVBTKReOMcVC7ygtnHz8Da+V57bj/v1OaI8TD8RPU7E5GU0tjSzqrNDazc3MDyjQ1+8PKmNVsaiUTFlqKcdIb2zWVY31yGleQyrDSXUf3zGVqSS0Y4Pv+wVSATiXd1G6DiJaiYA0tehsbNYCHviFnHGGh7HqGxzkQkobW2R1izpZGVVY2s3NzghS9/eWVVIxvrmrfbPj8zzLDSXIaW5PrhK4dhffMYVpJLYU56QHvxxSmQiSSSSDusfgcqXoTlr8Oqt6C9BTAYcAAMPQaGHgVDxkFuSdDViogA4JyjprGNtTWNrN3SxNrqJtZWN7JmSxOrNjewanMja6u3P8oVDhl79MlmcFE2Q4pyGFKczZDiHAYX5bBXSQ4luRlYEo3rqEAmkshaG2FVuXf7puWvw8q3oN3/K7JoqHf7pkFlMLjMC2zp2YGWKyLJxznHloZWNtQ2s6a6kXXVTazd0uiHrqatbQ0t7ds9L2TQLz/LC1zFOQwpymZwcc7W8DWgIItwDw81EU807IVIIkvPhmHHeBNAaxOsLvdC2upy+HQuLHjCWxcKQ//9YeBBXjjrPwb6jdapThHpVFNrOxvrmtlQ20ylP21bbtraVlnXTGv79gdxOsLWgMIs9h2Qz/Gj+rFHH+/xwMJs9uiTRWleZkoFri9KgUwkEaVnbetX1qFmLaye50/lsPBpeOfebesLh3jhrP8YKN0P+o6AkhGQmd/79YtIj2lsaaeqoYXN9S1sqvfmVfUtbG7Y/vGm+hYqa5upbmzd6TXMoCQ3g9L8LErzMxnRL59+BZmU5mVSmp/ph65s+uVn9vhAqqlCgUwkWRQMhILTYL/TvMfOQe1aWP8hrF/gzdctgMVzwEWdUsgb4AWzjoBWvLcX3voMgaw+uienSAAiEUddSxs1ja3UNLZR3dhKTVOrN29spabJW7elI2Q1tLC5vpVN9c00tUY6fc2QQXFuBkU5GRTlZjCyXx5HDS+hND+Tfn7w8pYzKc7N0FGtXhZ3gczMJgF/ANKAu5xzvwm4JJHEZAYFe3jTyC9va29rhqql3hhoGxfDpiWwabE3/EbDpu1fIyPfC2YdAa1wCBQOhrz+/tQPsgoV2kR87RFHQ0sb9c3t1DW3Ue9Pdc1t1Le0Udfcvn1bcxu1TdsCV0f4qm1q3a7j+47MvKsPC3PSKc71AtU+/Qsozk2nKDeDEj94Fedumwqy0gmF9F2NV3EVyMwsDbgN+DKwCnjbzGY65xYGW5lIEglnQr/9vGlHDVWweRlsWQnVK7efr5wLTdU7PyctY1s4y+sPuX2920JlF3lH2LL7+POibcuZBRr8VnpNJOJoaY/Q0h6htc2bt7RFaGxtp6k1QmNLO01t7TS3tu/U1tTSTlOb/zhqfVPrtsdeuPLmja3tuy4IL1DlZoTJyUijIDudwux0SvMyGVGat/VxQVY6BdnhqGW/PTudvMwwaQpXSSWuAhkwFqhwzi0FMLOHgcmAAplIb8gp9qZBh3a+vqnGu/VT3QZ/Wg/1UctbPvUuNGja4g/T0RWDjDzIyIH0nB2Wc72pYzmc6YW+tHR/7k2RUPrWyYW89S6UhiMEFsJhOAtte2yGo2Nu/jYhfxvb9hwMBzst40/ec8A5I2L+8xw48/bLOb/N34at7+etc9bx2iH/9bz38NZv+xfqWHbeWu89tq7z26K2o9Pttm2/UxvbNuxsndtp3bbXoLPtHLQ7R3ukk8k52iKO9vYI7Q7aIxHaIzvM/W0ikR3mztHW7i13BKnWdm9qaYvQ0u62hqzWHQKX1+a23jbni8pOTyMrPeTPO6YQ2RlpFGank5sZJjczTF5mmrecEfbb0sjbus4LXx2Ps9PTdLRKthNvgWwQsDLq8Srg8IBqEUk6zjma2yI0t0a8v/5b22lui2w/b43Q3BahLeL9UmuLuK2//Noijta2MK2RgbS296etfQyt7Y5WIrRmR2jNcLQWRmhtayfU1kR6azVZbbVkttWQE6kht72OnEgtOZE6siKNZDY3kdXURKZrIss1kuWqyKKZbNdEFs3k0EQ6rYTZuU9MyJ+SScR54ayNMM2EaSGdFsK0OH9O1NyFaSadRjKpd1k0kEUdWTS4LOrJor5jThb1Lptastni8thCHu0Ee+uYzqSFjLSQEQ4ZaWakpfnzjvY0IyMtRHpaiIxwaOtyTkZH27b16f76jHCI9DQjIy2NdH+91+atz87wglVHyMrebu61Z4ZDSTUGlsSveAtku8XMpgHTAPbcc8+AqxGJnUjE0dDaTkNzGw0t7dS3+PPmNhpb2qlvad/aP6XBXxf9uNEPVN7pl47QFaG51Tvt0tLWeWffLyI9zUhPCxEOGRnhEOFQiPSw15buL4dDRWSklRDO8H6phix6znZtaWaEts7ZbtuwRUi3dtJdGxnWRjr+5NoIWxth10bYtWAuQoiId/zJOcwimOs4HtXRHsHMe4zb1m7On7PtuJV/PIyOY1o4MHNbX9NbBvNfAwDntm4TfZxt+8f+dkS8Ngdsfd0IFmklLdJKqL2FUKSFrEgLORFvuaPNIq2E2htIa68ira2BtNZ6wm31u/XZtaXn05ZZRFtmoT/v482zimnN6UdrTn9as/vRltuPtqwSMC/AmXnHCb1lb8nY1oUwOlSFzAiHQoRCbDfvLGyFDIUeSXnxFshWA0OiHg/227bjnJsOTAdvYNjeKU3ks0UijtrmNmr9jrm1Ta3UNrVR27z945om7wqp2qaObf3tmna//wls64OSnZFGbkYa2X5/lMxwiILsdDLD2/7Cz0pPIzM9RGbY+8u/Y54V9tq3zv3to49ApKeFCPvhKzqE6RdoHIpEoK0RmuugpWOq96amaq+PYGMV4YYqwo1V3u25Gqq8U80Nm6G5kz6Club1Dcwf4F0g0mdPf9oLivby5pl5vb+vIkkm3gLZ28BIMxuGF8SmAF8PtiRJRU2t7WxpaPUuJW9o2bq8paGVzfUtbPEvN98c1b6loeUzr4oCyAyHyM9KpyArTH5WmILsdAYWZpGfmU5+1rZ+J9kZYXIz0sjJ8B7n+GErNyNMTqY3z0rXqRTZQSi0rQ8e/T//89uavb6Ateu9IVPq/HnH401LYMkr0LrDkbicEj+gDYW+I6HvKG8qGeH1DRSRXYqrQOacazOzy4DZeMNe3O2c+zDgsiQJOOeobmxlY10zlbUtbKxrZmNdM5vqti1X1rWwsbaZqvqWzzxSlZ2eRlFOOn1yMijKTWe/AQX0yUmnKCeDPjne1VAdYSs/K0x+Vsc8TGY4/vruiGwVztx2BKwrznnDo2xeAVuW+/MV3nzNu7Dw7+A6To2bN1xK31HQdx8YsL9394jSfb2LNERkq7gKZADOuVnArKDrkMQQiTg21jezvrqZdTVNrKtpYkNNE+uqm6j0g9bG2hY21e98yw/w+rwU52bQNy+TvnkZDO+bS0leBn38cFUUNe9YzkpXqJIUZuYNbZLbFwZ3cjVua5M3zt3GRd44d5WLYOMnsPwN73QqeFfKlu4LAw6EgQd6IW3gQf6RPZHUFHeBTKRDa3uEddVNrN7i3bB2nR+01vvBa311Extqm2nb4TxhyNg28nReJvsNKKBvfubW0FWal7n1cZ9sDZQoElPpWdB/tDdFi7R7QW3tfFj3Aax7Hz55Ad6731tvad5tvYYcDkPGwuDDvFOgOi0vKcKcS+w+8WVlZa68vDzoMuQLaGxpZ/WWRm/a3MjqLQ2s2tyx3Mj6mqad+mTlZYbpX5DJgMIs+hdkMaAga6flvnmZGjBRJBE4B7XrvJC2uhxWvuXdi7WlzlufWwqDx8JeR8Lex0G/MRpQWBKemc1zzpXt2K4jZNJjIhHHupomlm+qZ8WmBlZsauDTqvqtoWtT/fYDh6aFjIGFWQzqk80Rw0sY3CebQUXZDOqTw4BCL2zlZepHViRpmPn3YB0I+0zy2iLtsGGhF85WvQ0r34RFz3nrsoth2DEw7DhvKhmuI2iSNPTbTbqltT3C6s2NrKhqYMWmepZv9ELX8k0NfFrVsN24V+lpxuCiHAYXZTNmjwIGRQWuQUXZ9M/P1M1sRVJdKM3rUzbgADjsYq+tejUs/xcsfQ2WvQYLn/baCwbB3ifAqJNg+AmQmR9c3SLdpFOWsluq6luo2FDHkso6lmyoo6KyjmUbvaNd0bclyUoPMbQkl71KctjLnw8tyWXP4hz26JOtU4ki0j3OeX3Rlr3mBbSlr3hjrIXSYejRXjgbdRIU7x10pSKd6uqUpQKZbNUecaza3OCHrvptAayyjs0NrVu3y0oPsXffPIaV5jKsJJc9/dA1tCSH0vxMjY0lIr2nvdU7rfnJbG/auMhrL90XRk+G0WdAv/10alPihgKZbOWcY211E4vW1fLxuloWrath0XoveEWfYuybl8HepXmM6JfH8NI8hpfmMrw0j0F9snVloojEp6plXjD76BlY8QbgvHHQRp8BY86AfqMVziRQCmQpqrqxlU/WRwWvdbUsWldLTVPb1m32KMxinwH5jOyfz4jSPIb388JXn5yMACsXEemm2vXw0Uyvz9mKN7wBa/uOgoOmwIFfg8LBQVcoKUiBLMk551i9pZEP19Tw4epqFqyp4eO1Naypbtq6TX5WmH0H5LPPgHz2GVDAvgPyGdU/n8JsjZgtIkmuboMXzj54HD79D2Aw7Fj40tdhv9M1KK30GgWyJBKJOFZUNbBgdTUL1lTz4eoaFqypZovfzytkMKJfHqMHFmwNXvsMyGdgYZb6d4mIVC2F9x+F+Q/B5uWQnuudzjz0QhhcplOa0qMUyBJUJOJYtqme+Su3sMAPXgvX1FDX7J1yTE8z9hmQz/57FDJmUCH771HAvgMKyM7Q7X1ERD6Tc/DpXJj/ICx40huQdsABUHYxHHAOZOYFXaEkIQWyBLGprpn3Vm7ZOs1fuWVrf6+s9BCjBxaw/6BCxuxRwJg9ChnVP5+MsMbuEhHpluZa+OAxePtuWP8BZOTDQV+Dsou8WzqJxIgCWRxqam3nwzU1UQFsMyurvJvvhgxG9c/n4D378KUhfThoSB9GlOZp4FQRkZ7knHeHgPK7vaNm7c2w9/FwxOUwYrxOZ0q3KZDFgar6FsqXV1G+YjNvL69iwepqWtu9f/+BhVl8aci28HXAoEJydZsgEZHgNFTBvHvgzb9A3TpvyIwjLvVOZ4Yzg65OEpQCWS9zzvFpVQNvL99M+fIq3l5exZLKegAy0kIcOLiQQ4cWcfCQIg7esw/9C7ICrlhERDrV1gILnoB//xE2fAh5/WHsNDjs25DdJ+jqJMEokPWwSMSxcG0Nby6rYt6KKt5evpnK2mYACrPTKduriEOHFnHY0GIOGFRIVro63YuIJBTnvFs1/fuPsORlyCyEcd+Dcd+F7KKgq5MEoUAWY5GI45MNtfxnySb+s2QTby6rorrRG3ZicFE2hw0tpswPYCNK8zSyvYhIMlk7H167CT5+FjIL4PDvwLjvQ05x0JVJnFMg6ybnHEsq6/nP0k3MXbKJ/yzdRFV9CwBDirM5Yu8Sjhhewri9SxhYmN3j9YiISBxY94EXzD6aCRl53qnMIy9XMJMuKZB9Qc/MX8OcheuZu3QTG/xTkAMLszhi7xLGDS/hiL1LGFKc02PvLyIiCWD9Qvjnb+HDpyCrAI6+0jtqlq4/0GV7CmRf0BUPv8u/l2zaegTsiL1L2KskRyPei4jIztYtgJf+Gxb/AwoGwQnXwUHnQUj9hsWjQPYF1Te3kZORpgAmIiK7b9m/4MXrYfU8KN0PJlwPoyZpHDPpMpBplNFdyM0MK4yJiMjnM+wY+PZLcO590N4CD02B+ybDho+CrkzilAKZiIhITzCD0ZPh0jfh5N96V2becRQ8fw00bgm6OokzCmQiIiI9KS0dDp8Gl78Dh5wPb/4Z/ngovHMfRCJBVydxQoFMRESkN+SWwOm/h++8BiUjYOblcNeJXj8zSXkKZCIiIr1p4EFw0Qtw1p1QsxbumgAvXAvNdUFXJgFSIBMREeltZnDguXDZW3DoBTD3drj9CFj8YtCVSUAUyERERIKSVQin3QIXPg/pWfDAV+GJb0P9xqArk17WrUBmZr81s4/N7H0ze8rM+kStu9bMKsxskZmdFNU+yW+rMLNrotqHmdmbfvsjZpbRndpEREQSxl5Hwndfh+Ouhg//Dn8qg/cf9W5oLimhu0fI5gD7O+cOBD4BrgUws9HAFGAMMAm43czSzCwNuA04GRgNnOdvC3AjcItzbgSwGbi4m7WJiIgkjnCmN7L/d//ldfp/8hJ49HwdLUsR3Qpkzrl/OOfa/IdzgcH+8mTgYedcs3NuGVABjPWnCufcUudcC/AwMNm8kVdPBB73n38vcEZ3ahMREUlI/faDi2bD+Oth0fNw+zj4eFbQVUkPi2UfsouA5/3lQcDKqHWr/Lau2kuALVHhrqNdREQk9YTS4JgrYdqrkNcfHj4P/n4pNNUEXZn0kF0GMjN70cwWdDJNjtrmZ0Ab8EBPFhv1ftPMrNzMyisrK3vjLUVERHrfgP3hklfgmB/D/Afhz0fDqp67f7MEZ5eBzDk3wTm3fyfT0wBmdgFwGvANt+1O5auBIVEvM9hv66p9E9DHzMI7tHdV03TnXJlzrqy0tHS3dlRERCQhhTNg/C/gwhe8Tv53nwSv36JR/pNMd6+ynARcBXzFOdcQtWomMMXMMs1sGDASeAt4GxjpX1GZgdfxf6Yf5F4BzvafPxV4uju1iYiIJJU9D/c6/O97Grz4S7j/TKhdH3RVEiPd7UP2JyAfmGNm75nZnwGccx8CjwILgReAS51z7X4fscuA2cBHwKP+tgBXA1eaWQVen7IZ3axNREQkuWT3gXPugdP/AJ++CXccqcFkk4S5BB/jpKyszJWX63y6iIikmA0fw+MXwYaF3vhlx10NIY33Hu/MbJ5zrmzHdn1yIiIiiajfvvDtF+GgKfDab+DBc6ChKuiq5AtSIBMREUlUGTlwxh3e7ZeW/RP+chyseTfoquQLUCATERFJZGZQdhFc9ALgYMZEmHdv0FXJ56RAJiIikgwGHQrTXoOhR8MzP4BZP4X21qCrkt2kQCYiIpIsckvgG4/DEZfBW9Ph/rPUryxBKJCJiIgkk1AanPQ/Xt+yT+fCnSd6V2RKXFMgExERSUZf+jpc8By01MNdE+CT2UFXJJ9BgUxERCRZDRkL016Bkr3hoSnw1p1BVyRdUCATERFJZoWD4cLnYdQkmPUTmP0z3QczDimQiYiIJLuMXPja/TB2GvznT/D4BdDaGHRVEiUcdAEiIiLSC0JpcPJN0Gcv+MfPoXYdTHnIuzJTAqcjZCIiIqnCDI68DM69F9bOhxlfhs0rgq5KUCATERFJPaMnw/kzoWET3H0SrF8YdEUpT4FMREQkFe15uNfZ3zn468mw8q2gK0ppCmQiIiKpqv9ouHg25BTDfZOh4sWgK0pZCmQiIiKprGgoXDQbSobDg1Pgg8eDriglKZCJiIikurx+3qj+Q8bCE9+Gd/4WdEUpR4FMREREIKsQvvkEDD8RZl4Gb98VdEUpRYFMREREPOnZMOVBb1T/534Mc+8IuqKUoUAmIiIi26Rnwbl/g/1Ohxeugdd/H3RFKUGBTERERLYXzoCz/wr7fxVevB5euynoipKebp0kIiIiO0tLh7PuhFA6vPI/3ij/x/406KqSlgKZiIiIdC6UBmfc7i2//GtIy4Cjrgi2piSlQCYiIiJdC6XB5NugvQXm/MILZeO+F3RVSUeBTERERD5bWhjOmu6Fsheu8ULZYRcHXVVSUad+ERER2bW0dK+j/6hJ8NyVGjw2xhTIREREZPeEM+Dc+2D4eJh5uW6zFEMKZCIiIrL7wpkw5QHY60h46juwWDckj4WYBDIz+7GZOTPr6z82M7vVzCrM7H0zOyRq26lmttifpka1H2pmH/jPudXMLBa1iYiISIylZ8N5D0G/0fDIN+HTN4OuKOF1O5CZ2RBgIvBpVPPJwEh/mgbc4W9bDFwPHA6MBa43syL/OXcAl0Q9b1J3axMREZEeklUI33wSCvaAB8+BdQuCriihxeII2S3AVYCLapsM3Oc8c4E+ZjYQOAmY45yrcs5tBuYAk/x1Bc65uc45B9wHnBGD2kRERKSn5JXC+X+H9Fy4/yyoWhp0RQmrW4HMzCYDq51z83dYNQhYGfV4ld/2We2rOmkXERGReNZnT/jWU96QGH87E2rXB11RQtplIDOzF81sQSfTZOA64Bc9X+ZONU0zs3IzK6+srOzttxcREZFo/faFbzwBdZXe6cvmuqArSji7DGTOuQnOuf13nIClwDBgvpktBwYD75jZAGA1MCTqZQb7bZ/VPriT9q5qmu6cK3POlZWWlu7OfoqIiEhPGnwonHOP15fssQugvS3oihLKFz5l6Zz7wDnXzzk31Dk3FO804yHOuXXATOB8/2rLcUC1c24tMBuYaGZFfmf+icBsf12NmY3zr648H3i6m/smIiIivWnURDjtZqiYA8/9CJzb9XME6LlbJ80CTgEqgAbgQgDnXJWZ3QC87W/3K+dclb/8feAeIBt43p9EREQkkRx6AWxZCf/6HRQOgeOuCrqihBCzQOYfJetYdsClXWx3N3B3J+3lwP6xqkdEREQCcuLPoXoVvPI/UDgYvvT1oCuKe7q5uIiIiMSWGXzlj1C71rvFUv5AGH5C0FXFNd06SURERGIvnAFf+xv0HQWPTYWNi4OuKK4pkImIiEjPyCqE8x6GUDo8+DVoqNr1c1KUApmIiIj0nKK9vJuRV6+ER8+H9tagK4pLCmQiIiLSs/YcB6ffCsv/BbN+ouEwOqFO/SIiItLzvnQebFwEr98CpfvCuO8FXVFcUSATERGR3nHiL7zO/bOvg5KRMHJC0BXFDZ2yFBERkd4RCsFZ06HfGHjiIti0JOiK4oYCmYiIiPSejFyYcj9YCB75pm5E7lMgExERkd5VNBTOvhsqP4anv69O/iiQiYiISBCGnwgTfgkLn4Y3fh90NYFTIBMREZFgHPkDGHMWvPjfUPFi0NUESoFMREREgmEGk/8E/UbD4xdD1dKgKwqMApmIiIgEJyPXG8kfvJH8WxuDrScgCmQiIiISrOJh3nAY6z6A568OuppAKJCJiIhI8EadBEf/CN65F+Y/HHQ1vU6BTEREROLDCT+HvY6GZ38EGz4KuppepUAmIiIi8SEtDGfPgIw8rz9ZCg0aq0AmIiIi8SN/gBfKNlXAM1ekzKCxCmQiIiISX4YdCydcBwseh/IZQVfTKxTIREREJP4c/WMYMQFeuA7Wfxh0NT1OgUxERETiTygEZ/wZsvvA4xdBS0PQFfUoBTIRERGJT3mlcOZfoHIRzL4u6Gp6lAKZiIiIxK/hJ8BRV8C8v3o3Ik9SCmQiIiIS3078OQw6FGZeDls+DbqaHqFAJiIiIvEtLR2+OgMiEXjiEmhvC7qimFMgExERkfhXPAxO/z2snAv/vCnoamJOgUxEREQSwwFnw0Ffh3/+Fla+HXQ1MdXtQGZml5vZx2b2oZndFNV+rZlVmNkiMzspqn2S31ZhZtdEtQ8zszf99kfMLKO7tYmIiEiSOflGKBgMT16SVLdW6lYgM7MTgMnAQc65McDv/PbRwBRgDDAJuN3M0swsDbgNOBkYDZznbwtwI3CLc24EsBm4uDu1iYiISBLKKoAz/wybl8M/fhZ0NTHT3SNk3wN+45xrBnDObfDbJwMPO+eanXPLgApgrD9VOOeWOudagIeByWZmwInA4/7z7wXO6GZtIiIikoyGHgVH/QDm3QOLXgi6mpjobiAbBRzjn2p8zcwO89sHASujtlvlt3XVXgJscc617dAuIiIisrMTfgb994eZl0H9xqCr6bZdBjIze9HMFnQyTQbCQDEwDvgp8Kh/tKtHmdk0Mys3s/LKysqefjsRERGJN+FMOGs6NFXDM1eAc0FX1C27DGTOuQnOuf07mZ7GO5L1pPO8BUSAvsBqYEjUywz227pq3wT0MbPwDu1d1TTdOVfmnCsrLS3d/b0VERGR5NF/DIz/BXz8LLx7f9DVdEt3T1n+HTgBwMxGARnARmAmMMXMMs1sGDASeAt4GxjpX1GZgdfxf6ZzzgGvAGf7rzsVSN77I4iIiEhsjLsUhh4DL1wLW1buevs41d1Adjewt5ktwOugP9U/WvYh8CiwEHgBuNQ51+73EbsMmA18BDzqbwtwNXClmVXg9Smb0c3aREREJNmFQjD5T+Ai8MwPEvbUpbkELbxDWVmZKy8vD7oMERERCdJbd8Ksn8BX/gSHfCvoarpkZvOcc2U7tmukfhEREUl8ZRfDXkfD7Ougustu6HFLgUxEREQSXygEk/8IkbaEvOpSgUxERESSQ/HeMP56qJgD7z0YdDWfiwKZiIiIJI+x02DPI72rLmvWBF3NblMgExERkeTRcdVlews888OEOXWpQCYiIiLJpWQ4jP8vWDwb3n8k6Gp2iwKZiIiIJJ/DvwtDDofnr4a6DUFXs0sKZCIiIpJ8QmnwlT9CS73XnyzOKZCJiIhIcirdB475MSx4HBa/GHQ1n0mBTERERJLXMVdCyUh47kfe0bI4pUAmIiIiySucCaf/HrZ8Cq/+JuhquqRAJiIiIslt6NFw8LfgP7fB2veDrqZTCmQiIiKS/L78K8gp9m6rFGkPupqdKJCJiIhI8ssphpP+H6x5B966M+hqdqJAJiIiIqnhgLNh+Hh4+QaoXhV0NdtRIBMREZHUYAan3eydspx1VdDVbEeBTERERFJH0VA4/hpY9Bwsej7oarZSIBMREZHUcsSlULovPH8VtDQEXQ2gQCYiIiKpJi0dTvmdNzbZ67cEXQ2gQCYiIiKpaNgxcMA58MbvYdOSoKtRIBMREZEUNfHXEM6CWT8F5wItRYFMREREUlP+ADjhOljyEnz0TKClKJCJiIhI6jrsEui/P7xwbaA3H1cgExERkdSVFoZT/w+Kh0HjlsDKCAf2ziIiIiLxYM9xMPUZb+DYgOgImYiIiEiAYQwUyEREREQCp0AmIiIiErBuBTIz+5KZzTWz98ys3MzG+u1mZreaWYWZvW9mh0Q9Z6qZLfanqVHth5rZB/5zbjUL+NihiIiISC/p7hGym4D/ds59CfiF/xjgZGCkP00D7gAws2LgeuBwYCxwvZkV+c+5A7gk6nmTulmbiIiISELobiBzQIG/XAis8ZcnA/c5z1ygj5kNBE4C5jjnqpxzm4E5wCR/XYFzbq5zzgH3AWd0szYRERGRhNDdYS9+CMw2s9/hhbsj/fZBwMqo7Vb5bZ/VvqqTdhEREZGkt8tAZmYvAgM6WfUzYDzwI+fcE2Z2LjADmBDbEjutaRreqVD23HPPnn47ERERkR61y0DmnOsyYJnZfcAV/sPHgLv85dXAkKhNB/ttq4Hjd2h/1W8f3Mn2XdU0HZgOUFZWFuzdQEVERES6qbt9yNYAx/nLJwKL/eWZwPn+1ZbjgGrn3FpgNjDRzIr8zvwTgdn+uhozG+dfXXk+8HQ3axMRERFJCN3tQ3YJ8AczCwNN+KcRgVnAKUAF0ABcCOCcqzKzG4C3/e1+5Zyr8pe/D9wDZAPP+5OIiIhI0jPvosbEVVZW5srLy4MuQ0RERGSXzGyec65sx3aN1C8iIiISsIQ/QmZmlcCKHn6bvsDGHn6PeJXK+w6pvf+pvO+Q2vufyvsOqb3/2veet5dzrnTHxoQPZL3BzMo7O7yYClJ53yG19z+V9x1Se/9Ted8htfdf+x7cvuuUpYiIiEjAFMhEREREAqZAtnumB11AgFJ53yG19z+V9x1Se/9Ted8htfdf+x4Q9SETERERCZiOkImIiIgETIHMZ2bnmNmHZhYxs7Id1l1rZhVmtsjMTuri+cPM7E1/u0fMLKN3Ko8tv/b3/Gm5mb3XxXbLzewDf7ukGZnXzH5pZquj/g1O6WK7Sf7PQ4WZXdPbdfYEM/utmX1sZu+b2VNm1qeL7ZLms9/V52hmmf53osL/fg8NoMweYWZDzOwVM1vo/993RSfbHG9m1VHfh18EUWtP2NXPsX/rv1v9z/59MzskiDp7gpntE/WZvmdmNWb2wx22SZrP3szuNrMNZrYgqq3YzOaY2WJ/XtTFc6f62yw2s6k9WqhzTpN32nY/YB+8m52XRbWPBuYDmcAwYAmQ1snzHwWm+Mt/Br4X9D7F4N/k/4BfdLFuOdA36Bp7YJ9/CfxkF9uk+T8HewMZ/s/H6KBrj8G+TwTC/vKNwI3J/NnvzueId0u3P/vLU4BHgq47hvs/EDjEX84HPulk/48Hng261h7a/8/8Oca7/d/zgAHjgDeDrrmH/h3SgHV4Y2Ml5WcPHAscAiyIarsJuMZfvqaz/++AYmCpPy/yl4t6qk4dIfM55z5yzi3qZNVk4GHnXLNzbhne/TnHRm/g3xD9ROBxv+le4IweLLfH+ft0LvBQ0LXEobFAhXNuqXOuBXgY7+ckoTnn/uGca/MfzgUGB1lPL9idz3Ey3vcZvO/3eP+7kfCcc2udc+/4y7XAR8CgYKuKK5OB+5xnLtDHzAYGXVQPGA8scc719ADrgXHO/ROo2qE5+rvd1e/sk4A5zrkq59xmYA4wqafqVCDbtUHAyqjHq9j5P60SYEvUL7POtkk0xwDrnXOLu1jvgH+Y2Twzm9bFNonqMv8Uxd1dHMbenZ+JRHcR3tGBziTLZ787n+PWbfzvdzXe9z2p+KdiDwbe7GT1EWY238yeN7MxvVtZj9rVz3EqfM/BO/Lb1R/eyfrZA/R3zq31l9cB/TvZpld/BsI99cLxyMxeBAZ0supnzrmne7ueoOzmv8N5fPbRsaOdc6vNrB8wx8w+9v8KiXuftf/AHcANeP9Z34B32vai3quuZ+3OZ29mPwPagAe6eJmE/exlZ2aWBzwB/NA5V7PD6nfwTmXV+f0p/w6M7OUSe0rK/xz7fZ2/Alzbyepk/uy345xzZhb4kBMpFciccxO+wNNWA0OiHg/226JtwjucHfb/iu5sm7ixq38HMwsDZwGHfsZrrPbnG8zsKbzTPwnxn9nu/hyY2Z3As52s2p2fibi0G5/9BcBpwHjnd6Lo5DUS9rPfwe58jh3brPK/F4V43/ekYGbpeGHsAefckzuujw5ozrlZZna7mfV1ziX8vQ534+c4Yb/nn8PJwDvOufU7rkjmz9633swGOufW+qeiN3SyzWq8vnQdBuP1M+8ROmW5azOBKf7VVsPw/kJ4K3oD/xfXK8DZftNUIJGPuE0APnbOrepspZnlmll+xzJeZ/AFnW2baHboI3Imne/X28BI866szcA75D+zN+rrSWY2CbgK+IpzrqGLbZLps9+dz3Em3vcZvO/3y10F1UTj94WbAXzknLu5i20GdPSZM7OxeL8zEj6Q7ubP8UzgfP9qy3FAddQprmTR5ZmQZP3so0R/t7v6nT0bmGhmRX73lYl+W8/ozSsd4nnC++W7CmgG1gOzo9b9DO9qrEXAyVHts4A9/OW98YJaBfAYkBn0PnXj3+Ie4Ls7tO0BzIra1/n+9CHe6a7A647Rvv8N+AB4H+8LO3DH/fcfn4J3VdqSZNl//2d3JfCeP3VcXZi0n31nnyPwK7xQCpDlf58r/O/33kHXHMN9Pxrv1Pz7UZ/5KcB3O77/wGX+5zwf70KPI4OuO0b73unP8Q77bsBt/s/GB0RdfZ8ME5CLF7AKo9qS8rPHC51rgVb/9/zFeH1BXwIWAy8Cxf62ZcBdUc+9yP/+VwAX9mSdGqlfREREJGA6ZSkiIiISMAUyERERkYApkImIiIgETIFMREREJGAKZCIiIiIBUyATERERCZgCmYiIiEjAFMhEREREAvb/AQ6e1sc/P78gAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot the forward transformation\n", "\n", "x = np.linspace(-10, 10, 500).reshape(-1, 1)\n", "plt.plot(x, cubic.forward(x))\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "TensorShape([500, 2])" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Display shape\n", "cubic.forward(x).shape" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot the inverse\n", "\n", "plt.plot(x, cubic.inverse(x))\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot the forward log det jacobian determinant\n", "\n", "plt.plot(x, cubic.forward_log_det_jacobian(x, event_ndims=0))\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot the inverse log Jacobian determinant\n", "\n", "plt.plot(x, cubic.inverse_log_det_jacobian(x, event_ndims=0))\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### TransformedDistribution and plots" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "# Create a transformed distribution with cubic\n", "\n", "normal = tfd.Normal(loc=0., scale=1.)\n", "cubed_normal = tfd.TransformedDistribution(tfd.Sample(normal, sample_shape=[2]), cubic)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "TensorShape([1000, 2])" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Sample cubed_normal\n", "\n", "n = 1000\n", "g = cubed_normal.sample(n)\n", "g.shape" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot histogram\n", "\n", "plt.subplot(1, 2, 1)\n", "plt.hist(g[..., 0].numpy(), bins=50, density=True)\n", "plt.subplot(1, 2, 2)\n", "plt.hist(g[..., 1].numpy(), bins=50, density=True)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Make contour plot\n", "\n", "xx = np.linspace(-0.5, 0.5, 100)\n", "yy = np.linspace(-0.5, 0.5, 100)\n", "X, y = np.meshgrid(xx, yy)\n", "\n", "fig, ax = plt.subplots(1, 1)\n", "\n", "Z = cubed_normal.prob(np.dstack((X, y)))\n", "cp = ax.contourf(X, y, Z)\n", "\n", "fig.colorbar(cp)\n", "ax.set_title('Filled Contours Plot')\n", "ax.set_xlabel('X')\n", "ax.set_ylabel('y')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "# Create a transformed distribution with the inverse of Cube\n", "\n", "inverse_cubic = tfb.Invert(cubic)\n", "inv_cubed_normal = inverse_cubic(tfd.Sample(normal, sample_shape=[2]))" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "TensorShape([1000, 2])" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Sample inv_cubed_normal\n", "\n", "g = inv_cubed_normal.sample(n)\n", "g.shape" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkMAAAGDCAYAAAAoORSyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAvRUlEQVR4nO3de9hkZXnn++9N091MhLRogyDNSdPZSDSDhKDRjMFRFImBMdEEzDWCO0lv9wXRJJMDjo4aHDPkMM7WAYw9yFYTA2FjJD0bBoJBNnEMCjooctLm3C2oHASNhrbh3n/UerW6qLVq1eGtqree7+e63qurap2eWvXo/eNZp8hMJEmSSrXbrBsgSZI0S4YhSZJUNMOQJEkqmmFIkiQVzTAkSZKKZhiSJElFMwxJMxYR34mIZ1WvPxwR/7F6fUxEbBtxnSMvW4qIuDoifn3W7ZA0e4YhaUoi4q6I+F4Vfpb+npmZe2bmHVNuS0TEmyPiyxHxTxGxLSL+n4h43gTWPTcho2eff70Km3sOuY5DIiIjYvflaqek2TIMSdP1C1X4Wfr72oza8T7gLcCbgacBPw5cAvz8jNrTyoiB5Bcyc0/gSOAo4O2TbZWklc4wJM1YNerwYy3me2ZEfDwivhkRd0bEm7um/Ytq1OPhiLgZ+OmG9WwETgNOzsyrMvOxzPxuZn4sM8+q5lkXER+ttnV3RLw9Inarpp0aEZ+OiD+rtndnRLyqmvYe4F8BZ1ejMWdXn78oIq6LiEeqf1/U1Z67IuLlXe/fFRF/Wb1eGpX5tYi4B7gqIvaIiL+MiAcj4lvV+p4xaP9l5nbgfwDP7bNPdqu+490R8Y3qu6+rJl9T/fut6jv9zKBtSVpZDEPSClAFkf8OfBE4AHgZ8FsR8cpqlncCz67+Xgmc0rC6lwHbMvNzDfP8V2Ad8Czg54A3AG/smv4C4DZgPfAnwIciIjLzbcA/AKdXI1+nR8TTgEuB9wNPB94LXBoRT2/7/as2PKfru60DDqzW9ybge4NWEBEHAscD/6vP5FOrv5dW33lP4Oxq2kuqf59afad/HKLdklYAw5A0XZdUoxnfiohLhljup4F9MvPMzNxRnWP034CTqum/DLwnMx/KzHvpBI86Twfuq5sYEauq9b41M7+dmXcB/xn4t12z3Z2Z/y0zHwc+AuwP1I3O/Dzw1cz8i8zcmZkXALcCvzDgO3d7V2b+U2Z+D/h+9R1+LDMfz8zPZ+ajDcteEhHfAj4N/H/AH/WZ51eB92bmHZn5HeCtwEmeJySVwf+hS9P1bzLzkyMsdzDwzKqoL1lFZxQG4JnAvV3T7m5Y14N0wkud9cDqnnXcTWdEasn9Sy8y87sRAZ3RlH6e2ac9vesbpPu7/QWdUaELI+KpwF8Cb8vM79cs22af97bxbjr//zjw8Juklc+RIWlluBe4MzOf2vW3V2YeX02/j05AWHJQw7r+HtgQEUfVTH+AzujLwT3r296yrdnz/ms96+pd3z8BP9I1bb+mdWbm9zPzDzPzcOBFwKvpHMYbR28bDwJ2Al/nyd9H0oIxDEkrw+eAb0fEH1QnS6+KiOdGxNKJ0hcBb42IvSNiA/CbdSvKzK8C5wIXVPcjWlOdlHxSRJxRHfq6CHhPROwVEQcDv0NnBKaNr9M572bJZcCPR8TrI2L3iPgV4HDg/62m30DnkNTqKqC9tmnlEfHSiHhedTjvUTrB7YmWbatzAfDbEXFoden9HwF/nZk7gW9W639W0wokrVyGIWkFqALKq4EjgDvpjN6cR+dEYoA/pHNo507g7+gcSmryZjonCJ8DfAu4HXgNnZO0oROm/gm4g865Nn8FnN+yue8DXltdafb+zHywavu/o3OI7veBV2fmA9X8/4HOid8PV9/jrwasfz/gYjpB6BY65wEN+r6DnF+t4xo6+/CfqQJlZn4XeA/wP6tzvV445rYkzZnIdARYkiSVy5EhSZJUtJmFoYg4MCI+FRE3R8RNEfGWPvNERLw/IrZGxJci4shZtFWSJE1PRJxf3QD1yzXTf7XKBTdGxGci4l92TTsuIm6rssMZbbY3y5GhncC/q64IeSFwWkQc3jPPq4CN1d8m4APTbaIkSZqBDwPHNUy/E/i5zHwe8G5gM/zgPmnn0MkPhwMn98kWTzKzMJSZ92XmF6rX36ZzImTvfUdOBD6aHdcCT42IpvujSJKkFS4zrwEeapj+mcx8uHp7LbChen00sLW6geoO4EI6WaLRXJwzFBGHAM8HPtsz6QB2vdnaNoa7UZskSVpsv0bnuYMwYm6Y+R2oq3t6fBz4rQG31B+0nk10DqWxit1/6im77z2hFkqSNN8e3fnNBzJzn2lt718ds0c+/NDot/e66cbv30TnFhZLNmfm5mHXExEvpROGfnbkxjDjMBQRq+kEoY9l5t/0mWU7u95VdwM1d8GtduJmgHWr980XrX/dhFsrSdJ8uvz+c5sewTNxDz/0BB+/dP3Iyx920H3/nJl1d8FvJSJ+ks791l5V3c8MhsgN3WZ5NVkAHwJuycz31sy2BXhDdVXZC4FHMrP2AZOSJGnxRcRBwN8A/zYzv9I16TpgY3U3+TV0Hjq9ZdD6Zjky9GI6T8G+MSJuqD7791TPVMrMP6dzG//jga3Ad4E3Tr+ZkiRpmiLiAuAYYH1EbAPeSecB0kv54B3A04FzqwdF78zMozJzZ0ScDlxB52HW52fmTYO2N7MwlJmfBmLAPAmcNp0WSZKkeZCZJw+Y/uvAr9dMu4zOYEprc3E1mSRJ0qwYhiRJUtEMQ5IkqWiGIUmSVDTDkCRJKpphSJIkFc0wJEmSimYYkiRJRTMMSZKkohmGJElS0QxDkiSpaIYhSZJUNMOQJEkqmmFIkiQVzTAkSZKKZhiSJElFMwxJkqSiGYYkSVLRDEOSJKlohiFJklQ0w5AkSSqaYUiSJBXNMCRJkopmGJIkSUUzDEmSpKIZhiRJUtEMQ5IkqWiGIUmSVDTDkCRJKpphSJIkFc0wJEmSimYYkiRJRZtpGIqI8yPiGxHx5Zrpx0TEIxFxQ/X3jmm3UZIkTVeLfBAR8f6I2BoRX4qII7umPd6VG7a02d7uk2r4iD4MnA18tGGef8jMV0+nOZIkaQ58mOZ88CpgY/X3AuAD1b8A38vMI4bZ2ExHhjLzGuChWbZBkiTNlxb54ETgo9lxLfDUiNh/1O3NemSojZ+JiC8CXwN+NzNv6jdTRGwCNgHssdueU2yeJEllefjxH+HiR48cPGOtS9dHxPVdH2zOzM1DrOAA4N6u99uqz+4D9qjWvRM4KzMvGbSyeQ9DXwAOzszvRMTxwCV0hsSepNqJmwHWrd43p9ZCSZI0rAcy86hlWvfBmbk9Ip4FXBURN2bm7U0LzPXVZJn5aGZ+p3p9GbA6ItbPuFmSJGm2tgMHdr3fUH1GZi79ewdwNfD8QSub6zAUEftFRFSvj6bT3gdn2ypJkjRjW4A3VFeVvRB4JDPvi4i9I2ItQDV48mLg5kErm+lhsoi4ADgGWB8R24B3AqsBMvPPgdcC/2dE7AS+B5yUmR4CkyRpgbXIB5cBxwNbge8Cb6wWfQ7wwYh4gs4AylmZOd9hKDNPHjD9bDqX1kmSpEK0yAcJnNbn888Azxt2e3N9mEySJGm5GYYkSVLRDEOSJKlohiFJklQ0w5AkSSqaYUiSJBXNMCRJkopmGJIkSUUzDEmSpKIZhiRJUtEMQ5IkqWiGIUmSVDTDkCRJKpphSJIkFc0wJEmSimYYkiRJRTMMSZKkohmGJElS0QxDkiSpaIYhSZJUNMOQJEkqmmFIkiQVzTAkSZKKZhiSJElFMwxJkqSiGYYkSVLRDEOSJKlohiFJklQ0w5AkSSqaYUiSJBXNMCRJkopmGJIkSUWbaRiKiPMj4hsR8eWa6RER74+IrRHxpYg4ctptlCRJ0xcRx0XEbVUGOKPP9IMj4u+rfHB1RGzomnZKRHy1+jtl0LZmPTL0YeC4humvAjZWf5uAD0yhTZIkaYYiYhVwDp0ccDhwckQc3jPbnwEfzcyfBM4E/lO17NOAdwIvAI4G3hkRezdtb6ZhKDOvAR5qmOVEOl80M/Na4KkRsf90WidJkmbkaGBrZt6RmTuAC+lkgm6HA1dVrz/VNf2VwJWZ+VBmPgxcSfPAC7tPrNnL4wDg3q7326rP7uudMSI20Rk9Yo/d9pxK4yRJKtGjO/fgyvsPG2MNl66PiOu7PticmZu73ver/y/oWckXgV8E3ge8BtgrIp5es+wBTa2Z9zDUWrUTNwOsW71vzrg5kiSp3gOZedSY6/hd4OyIOBW4BtgOPD7KiuY9DG0HDux6v6H6TJIkLa6B9T8zv0ZnZIiI2BP4pcz8VkRsB47pWfbqpo3N+gTqQbYAb6iuKnsh8EhmPukQmSRJWijXARsj4tCIWAOcRCcT/EBErI+IpRzzVuD86vUVwCsiYu/qxOlXVJ/VmunIUERcQCe9rY+IbXTO/l4NkJl/DlwGHA9sBb4LvHE2LZUkSdOSmTsj4nQ6IWYVcH5m3hQRZwLXZ+YWOvnhP0VE0jlMdlq17EMR8W46gQrgzMxsulhrtmEoM08eMD2pvpwkSSpHZl5GZ1Ck+7N3dL2+GLi4Ztnz+eFI0UDzfphMkiRpWRmGJElS0QxDkiSpaIYhSZJUtHm/z5CkObLjsA2DZ5qgNbdum+r2NB77h1Yqw5CkvqZd2EZtgwVxeuahT3Sra499QsMyDEkCxit0jzx77UjLrbv9sZG3uaRfuy2G41mu0DOtftLdfvuC2jAMSYUbpvCNWsxGXd+oYcliOLxJBKBJ94826x3UR5a+l/1ATQxDUsEGFcBRitu3D47G6Xvd3f45ynXbHyYk9X5Hi+IPjRqAJhF6BvUTaNdXutvS1C8MRWpiGJIKNE4IalPEmkyiCPa2b5RwVGpRHCUADRt+xu0jbdbTr4+0CUY7DttQ7G+veoYhqTBNxbCu6LUtbo8dtKPVfGvvWdM4vd/2mgJS29GBbqUdShs2BLUNQKMEn7b9BOr7Svd2m4JRv/5gIFIvw5BUkLqCOGwIGqaYDbv8qMVvyajBaFGL43KEoDYBaNw+0rSe3j7S1DceefZaA5EGMgxJhRgmCI0agg7Z8M1Wbblr2z6103q30S8cDRuM2oSiRTx8NsmT4ycZgMbtJ93b6ReMDEQalmFIKljbINSvyLUtaP3ULduv+DUVPvhheweFotJGidoGoXFD0KQCcttle/vI0va7+4aBSMMyDEkF6FcY2wShUULQsfvd2jj9yvsPq53Wve6mYDRKKBp2lGilFshphKCmADRM+Bmlr9T1kccO2vGkQAS79odhQrHKYhiSBAwOQnVFblBBGzR/XTha2l5dKGo6t2hSo0SlGiUIjRuSBy1TF4yaAlFbKzn8ajJ8UKu04Ea5lLpNEDp2v1tHKnB166lbV12RfeygHbWFedChnTYnCc/boyfamMSo0KSD0KT7yaBt97ax9/ss140htbI5MiQVqLcgNBXAuiBU57U/+oXaaRc/emRju5bW2zsKMMoo0aARojYWccRglCA0aggaZJS+0q+PTGqESOVyZEjSLgadEDtqEFqaPmieJsOejNsU8hwhWD6DglCbfjBuX+k2qZtAanEZhiRNxDCFa1ChG/awyqTuabOStTlENsk7i496DtmwAadu/t7tDBOU++2HlXhYVJNjGJIKN8whsrpCN6n/gtf8mWTQHLWf2L+03AxDksYyTqEaZXRonPvWSFI/hiGpcOOeZDzopOhRl6275L7p7tVaTOP0MakNw5CkWr3Boy6gjFKsLHDzpS4UT/KqLPuJ5pVhSNJEDFO0Bs3bdJfqfryMut0z1SZ5s8m6EbpBv92kwk3vdoYZMey3HxbtFgoajmFI0i4GBYumYjeo0F386JFjFcNhD5E1HQL0LtTLp00gGtQXxu0r3cY9FKzF500XJTW6a9s+Tzpp+cr7D6s9wXmcAtZUROuCUF14m0QBXMTRgnW3P1Z7if1ed2ffqwvX3rOm71VlS79Jv5Pam/pIt2H7S78+0ts3HCnUsBwZkhZcv4LeOyrSGxx6i0m/IDLsoawmV95/2ESD0CCLOio0ifA2yrlDTYfMJt1PpOVgGJLUSl0gGqdAtVl+lCDkqFCzUcPgKIEIJhOK2l5d2NvG3r6wqEFY4/EwmVSo3sMlvYdI+h0a6XfIDHYtVE2HRoYpiE3FdZwgtOjFcM2t21rdTXnQ4TLof0POukNm0HzYDJ78+4/bV4YNQnUWOfiqHcOQVIC2BbJtIIL2BW9Yo4YgmFwQKqU4NgUiaD6HCOrvTj2ojywZta/06yNtDpkuehDW6DxMJhWsTXGoKzKTvPnhXdv2+cHfsO1YUvqIULdJhrmm/br2njUDD50tRz/p145ejgppGDMdGYqI44D3AauA8zLzrJ7ppwJ/CmyvPjo7M8+baiOlwvQbDRh0NdGSto/KGKZAjhuCYLggtCjFcZjDZdD8ENe6EaIlbUeKurXpK236SdsgVFIYXhQtMsJ/AV5avf0RYN/MfGo17XHgxmraPZl5QtO2ZhaGImIVcA5wLLANuC4itmTmzT2z/nVmnj71BkoLpq449jtUUheIoPnBnZMaBWhzyGPSIQgWJwgtaRuIoN0hM2h+sG+bPrJk3L4yzC0VDEIrT5uMkJm/3TX/bwLP71rF9zLziLbbm+VhsqOBrZl5R2buAC4ETpxhe6Ri9SsWTZdYL8d9XJbW22YkyCC0PNrsszb7v+1vOYqm9Q57FaG/+VwbNiOcDFww6sZmeZjsAODervfbgBf0me+XIuIlwFeA387Me/vMQ0RsAjYB7LHbnhNuqrQYhhkpgMFXFXVrMxrQtHzbtrRhEPqhpe82zAgRNB82g3YjRTC9flLXPxwVWh47duw+7uje+oi4vuv95szc3PW+bUYgIg4GDgWu6vp4j2r9O4GzMvOSpsbM+9Vk/x24IDMfi4j/A/gI8K/7zVjtxM0A61bv673XpRpNh8ugfxEcdM4ILN9df5czBMFiB6FuwwbhSYeiJZPuJ6M+cqWU332OPZCZR01oXScBF2fm412fHZyZ2yPiWcBVEXFjZt5et4JZhqHtwIFd7zfwwxOlAcjMB7vengf8yRTaJRWt7tyR7qLTtvCNatjDHYagdoYNRDD4XKIlvb/ZrPuIQWjFG5gRupwEnNb9QWZur/69IyKupnM+0VyGoeuAjRFxKJ0veBLw+u4ZImL/zLyvensCcMt0mygtpkFFse3JtDB+0RvnbtGjHgIpuRiOGoiWtAlGsDzhaBLnipX8268wAzMCQEQcBuwN/GPXZ3sD362OKq0HXsyAwZSZhaHM3BkRpwNX0Lls7vzMvCkizgSuz8wtwJsj4gQ6x/weAk6dVXulRTNuIFoy7SeCj3MOiIWwY9jziLq1PXzWaxr9xCC0OFpmBOiEpAszs7uDPQf4YEQ8QedCsbP6XKm+i9h1+cWwbvW++aL1r5t1M6QVoW1BHLb4TdIkToK1ENYbJRR1m2XfgHb9Y9F//8vvP/fzEzwHZ6C1h27I/d/1myMvf/epZ0y1vYPM+wnUkpbZJG/ON0mTugpo0YvgJIwzUgRP/q2m0Ue8SkyTZBiSNPTN+bpNovBNurAZgEYzbiha0u/3nFU/sS+oDcOQJGD0QjhP/4Vu4ZuM7v04bjBaMot+Yn9QW4YhSbsY5WqjWbLgLa9JjRZNk31CwzIMSXqSeS6AFrrZ6N3v9g0tEsOQpFrLcbhknDZofsxLOLJ/aBIMQ5Ja6Vd0JlkALWorW93vN+mQZD/RcjAMSRqZhUmD2Ee0Euw26wZIkiTNkmFIkiQVzTAkSZKKZhiSJElFMwxJkqSiGYYkSVLRDEOSJKlohiFJklQ0w5AkSSqaYUiSJBXNMCRJkopmGJIkSUUzDEmSpKIZhiRJUtEMQ5IkqWiGIUmSVDTDkCRJKpphSJIkFc0wJEmSimYYkiRJRTMMSZKkohmGJElS0XafdQMkrUw7DtuwLOtdc+u2ZVmvps8+opVipmEoIo4D3gesAs7LzLN6pq8FPgr8FPAg8CuZede02ylp+Qpbm+1Y/ObbtPpG3fbsH4tpUEao5vll4F1AAl/MzNdXn58CvL2a7T9m5keatjWzMBQRq4BzgGOBbcB1EbElM2/umu3XgIcz88ci4iTgj4FfmX5rpTJNu8jVsfjNl3npF0uW2mO/WBxtMkJEbATeCrw4Mx+OiH2rz58GvBM4ik5I+ny17MN12xsYhiLiN4G/bFrJiI4GtmbmHdV2LgROBLrD0Il0Eh/AxcDZERGZmRNui6Qu81bsehmOpm/e+wQYihZMm4zwG8A5S/kkM79Rff5K4MrMfKha9krgOOCCuo21GRl6Bp1E9gXgfOCKCYWRA4B7u95vA15QN09m7oyIR4CnAw9MYPuSeqyEgtePRXB52B80Q20ywo8DRMT/pHMo7V2ZeXnNsgc0bWxgGMrMt0fEfwBeAbyRzujMRcCHMvP2QctPS0RsAjYB7LHbnjNujbTyjFL4Hnn22oltf93tj429ju7vYCEc3aRD0KT6ybB9xFC0fGJHsPaeNeOsYn1EXN/1fnNmbh5yHbsDG4FjgA3ANRHxvFEa0+qcoczMiLgfuB/YCewNXBwRV2bm74+yYWA7cGDX+w3VZ/3m2RYRuwPr6JxI3a+Nm4HNAOtW7+thNGkIbYvfJMPPoHWPG44shMOZVACaxz6y47AN9oP580BmHtUwvU1G2AZ8NjO/D9wZEV+hE4620wlI3cte3dSYNucMvQV4A51DU+cBv5eZ34+I3YCvAqOGoeuAjRFxKJ2GnwS8vmeeLcApwD8CrwWu8nwhabLaFMHlLHBttzlqODIUNZtECJpF/+jebpu+YSBacdpkhEuAk4H/OyLW0zlsdgdwO/BHEbF3Nd8r6JxoXavNyNDTgF/MzLu7P8zMJyLi1S2W76s6B+h04Ao6x/rOz8ybIuJM4PrM3AJ8CPiLiNgKPERnZ0iakEGFcNQi9+2D40mf7XX3eP8d092WUYKRoejJxglCkwpA/foKDNdf2oYiA9HK0TIjXAG8IiJuBh6nM1jzIEBEvJtOoAI4c+lk6jqxiAMt61bvmy9a/7pZN0Oaa5MIQnWFbFijBqVRR4tKL4ijhqBJhuNRtO0nTf1iUX/7y+8/9/MDDjtN1B4HHJgHv+l3Rl7+K+/4nam2dxDvQC0VaJwgNKnC1rTOtkVvmMMk3UoeJZrGifLL0Ud619vURx559traPuHokPoxDEmFaSqG0w5BbbbVJhiNE4pKKozDBqFhQtA0+0f39ur6h4FIwzAMSQLqC1+bIvfYQTtG2mabS3OHCUajhKISCuO8hKDl6CdNochApLYMQ1JBhi2KTYVu1MLWtI5B4WjQaMCSpiLYzyIXxuUKQssZkpvWU9dHvn1wDB2IpCW7zboBkmavXwGsK3aPHbRjYkWubt2D1v/tg2NgMX7k2WuHGuFYqXdbbrIcQajNvp9VH6lrV933WsTfXKNxZEgqRN3/8bcNQoOK2yEbvjlUe+7atk/j9KXtDTpEMslRokUaIRqm0E/iysG24WeS/eSxg3Y8qX+06RNSL8OQVLBxg9Cwha1u2UEFD5oPj8DoVxf1WqRA1Ma4QahNCFrOftI2EHm4TE0MQ5J+oG0QGqe49dMmGLUJRZMKRCvdpB6vMs5o0KT7SPc6e/vIOCNEpYVf9WcYkgow6rkRvcWuTYE7dr9bG6dfef9hjdPrCl53m5Y7EK3kAjmNIDSJEDSon0B9X+nXR9oEopICsYZjGJIK1VsMe4tf2yDUpqg1zT9MwetumyNEy2e5gtA4faVfPzlkwzcHBqI2VnL41WR4NZmkkQ1b3OrW0bSeugLbVJQncQPARb7SaNSbazadO9YUhAb9xm3ULd+73d429n6fWT1UVvPNMCQtuH5FfRKjQpMIQm3XN+lAtKgFsU2AG/W7j3IS/SRC0HKuT1riYTJJjXqL3aBi9Nof/ULttIsfPbJx2aV1tzkksmTUQyNtlHb4pOneUv0MCkKDjNpXjt3v1l36yKQOl6lcjgxJ2sU4N8trKm5L0wfN02TYK5RKHB2aB20C83L3lW7Tfm6aVh7DkKTWmorcMIVrUKEb9lDIct3teCUZ9xDZsIFh1BPqhw04dfP3bmeYoNxvPyzyOWIazDAkFa6pCLYtMJP6L/hunhsyHyYZNEftJ8vRv6RuhiFJYxmnUFnkJM0Dw5BUuHGf4zTopOhRlx10c0aVY5w+JrVhGJJUq/fqrbqAMkqxssDNl7pQPMmrsuwnmleGIUkTMUzRGjTvsKNCXkZNq1sATPLO23WPSxn0200q3PRup+lhv7367YeSbqGgJ/M+Q5J2sfaeNbucNHvXtn12OZH6yvsPqz25eRKFrqmYDlPwoPkQYJtgYIHs6O0TS3r7xpKmPgLj95Nhw/K4h4K1+BwZkgrUGwR6i0XvSEu/w2WTPqenaZ13bdunbxBae8+a2lGhcYPQomr67k37rG4/N40QLcd5X/3W2dsGRwo1LEeGpAW35tZtE7mHSr9RgEEjAIO0KZZ1xbap4E1iJGAljgq1/a3X3f5Y7T2H9ro7a2+30DRCBP1vxdD9Gy9HXxkUhHr7QslBWPUMQ1KhegtibxHsV/jqAlGvfkVvmFGCQYfDxglCi14MJxWIoP89qJb2/bChCNr3lbp5+22rX9uWtA3FKzH4arIMQ1IB6gpkm0AEPOkcoiXDFL1BxglAMNkQtNKL4yQCEYwfipY03bxzEiG5X9/o1x88cVp1DEOSdtGvANYVvn7FqanwDXsCdJtzPwxB/Q0TiKD5UR1tQhHU36267ncft68Mc77Yoo8IajyGIakQbUeHlvQ7d2ScwtdG2xNf2x7+KDUILRnmfLFxQxE8+fcb9CiPUfvKsCfN1/WDRfzNNRrDkFSQpkAETy6E3cWlKRh1ayqAo17lM8wJ0cOOACx6QVz6fsOGIqgPRr2/R9tw1E9dfxmmrwwbgmDxf3cNxzAkFaZptKBpdKApGHUb97LmUa4EG+UQSGnFcNhQBO2CEfT/zZr6SLdR+su4h0ZL++01mGFIKtCgwjioCM7yJnbjnPthEdx1H4wajKA5HMFs+oghSKMyDEkFazNa0HZ0YDlM4qRXC2C9UYMR1P820+wjpZ8TpskxDElqfQilTfEZVAyX+6oei95oevfbqDfqbPv7tglN4/YV+4LamkkYioinAX8NHALcBfxyZj7cZ77HgRurt/dk5gnTaqNUonFGCpZM6xJmC93yqtu/k7ibOSxfP7FfLI6IOA54H7AKOC8zz6qZ75eAi4GfzszrI+IQ4BbgtmqWazPzTU3bmtXI0BnA32fmWRFxRvX+D/rM973MPGKqLZME9C8qkyqEo25fszfod7GPaBIiYhVwDnAssA24LiK2ZObNPfPtBbwF+GzPKm4fJj/MKgydCBxTvf4IcDX9w5CkOWLx0SD2EU3I0cDWzLwDICIupJMdbu6Z793AHwO/N87GZhWGnpGZ91Wv7weeUTPfHhFxPbATOCszL6lbYURsAjYB7LHbnhNsqiRJ6rZqx9hXDK6v6vuSzZm5uev9AcC9Xe+3AS/oXkFEHAkcmJmXRkRvGDo0Iv4X8Cjw9sz8h6bGLFsYiohPAvv1mfS27jeZmRFRt0cPzsztEfEs4KqIuDEzb+83Y7UTNwOsW73v7K77lSRJgzyQmUeNunBE7Aa8Fzi1z+T7gIMy88GI+Cngkoj4icx8tG59yxaGMvPlddMi4usRsX9m3hcR+wPfqFnH9urfOyLiauD5QN8wJEmSFsZ24MCu9xuqz5bsBTwXuDoioDP4siUiTsjM64HHADLz8xFxO/DjQPdI1C52m2zbW9sCnFK9PgX4294ZImLviFhbvV4PvJgnHyuUJEmL5zpgY0QcGhFrgJPoZAcAMvORzFyfmYdk5iHAtcAJ1dVk+1QnYFMdWdoI3NG0sVmFobOAYyPiq8DLq/dExFERcV41z3OA6yPii8Cn6JwzZBiSJGnBZeZO4HTgCjqXyV+UmTdFxJkRMeg2Oy8BvhQRN9C55P5NmflQ0wIzOYE6Mx8EXtbn8+uBX69efwZ43pSbJkmS5kBmXgZc1vPZO2rmPabr9ceBjw+zrVmNDEmSJM0Fw5AkSSqaYUiSJBXNMCRJkopmGJIkSUUzDEmSpKIZhiRJUtEMQ5IkqWiGIUmSVDTDkCRJKpphSJIkFc0wJEmSimYYkiRJRTMMSZKkohmGJElS0QxDkiSpaIYhSZJUNMOQJEkqmmFIkiQVzTAkSZKKZhiSJElFMwxJkqSiGYYkSVLRDEOSJKlohiFJklQ0w5AkSSqaYUiSJBXNMCRJkopmGJIkSUUzDEmSpKIZhiRJUtEMQ5IkqWgzCUMR8bqIuCkinoiIoxrmOy4ibouIrRFxxjTbKEmSZmdQBoiIN0XEjRFxQ0R8OiIO75r21mq52yLilYO2NauRoS8DvwhcUzdDRKwCzgFeBRwOnNz9RSVJ0mJqmQH+KjOfl5lHAH8CvLda9nDgJOAngOOAc6v11ZpJGMrMWzLztgGzHQ1szcw7MnMHcCFw4vK3TpIkzdjADJCZj3a9fQqQ1esTgQsz87HMvBPYWq2v1u4Ta/bkHQDc2/V+G/CCupkjYhOwCWCP3fZc3pZJklSwVf+crLv9sXFWsT4iru96vzkzN3e9b5UBIuI04HeANcC/7lr22p5lD2hqzLKFoYj4JLBfn0lvy8y/nfT2qp24GWDd6n1zwOySJGl2HsjM2nOG28rMc4BzIuL1wNuBU0ZZz7KFocx8+Zir2A4c2PV+Q/WZJElabMNmgAuBD4y47FxfWn8dsDEiDo2INXROhtoy4zZJkqTlNzADRMTGrrc/D3y1er0FOCki1kbEocBG4HNNG5vVpfWviYhtwM8Al0bEFdXnz4yIywAycydwOnAFcAtwUWbeNIv2SpKk6anLABFxZkScUM12enWbnhvonDd0SrXsTcBFwM3A5cBpmfl40/ZmcgJ1Zn4C+ESfz78GHN/1/jLgsik2TZIkzYF+GSAz39H1+i0Ny74HeE/bbc3zYTJJkqRlZxiSJElFMwxJkqSiGYYkSVLRDEOSJKlohiFJklQ0w5AkSSqaYUiSJBXNMCRJkopmGJIkSUUzDEmSpKIZhiRJUtEMQ5IkqWiGIUmSVDTDkCRJKpphSJIkFc0wJEmSimYYkiRJRTMMSZKkohmGJElS0QxDkiSpaIYhSZJUNMOQJEkqmmFIkiQVzTAkSZKKZhiSJElFMwxJkqSiGYYkSVLRDEOSJKlohiFJklQ0w5AkSSqaYUiSJBVtJmEoIl4XETdFxBMRcVTDfHdFxI0RcUNEXD/NNkqSpNmJiOMi4raI2BoRZ/SZ/pKI+EJE7IyI1/ZMe7zKDjdExJZB29p9kg0fwpeBXwQ+2GLel2bmA8vcHkmSNCciYhVwDnAssA24LiK2ZObNXbPdA5wK/G6fVXwvM49ou72ZhKHMvAUgImaxeUmSNN+OBrZm5h0AEXEhcCLwgzCUmXdV054Yd2OzGhlqK4G/i4gEPpiZm+tmjIhNwCaAPXbbc0rNkySpPPHPO1hz67ZxVrG+5/SXzT01/gDg3q7324AXDLH+Par17wTOysxLmmZetjAUEZ8E9usz6W2Z+bctV/Ozmbk9IvYFroyIWzPzmn4zVjtxM8C61fvmSI2WJEnT8EBm1p4zPAEHV/nhWcBVEXFjZt5eN/OyhaHMfPkE1rG9+vcbEfEJOsNmfcOQJElaGNuBA7veb6g+a6UrP9wREVcDzwdqw9DcXlofEU+JiL2WXgOvoHPitSRJWmzXARsj4tCIWAOcBAy8KgwgIvaOiLXV6/XAi+k616ifWV1a/5qI2Ab8DHBpRFxRff7MiLismu0ZwKcj4ovA54BLM/PyWbRXkiRNT2buBE4HrgBuAS7KzJsi4syIOAEgIn66yhKvAz4YETdViz8HuL7KD5+ic85QYxia1dVknwA+0efzrwHHV6/vAP7llJsmSZLmQGZeBlzW89k7ul5fR+fwWe9ynwGeN8y25vYwmSRJ0jQYhiRJUtEMQ5IkqWiGIUmSVDTDkCRJKpphSJIkFc0wJEmSimYYkiRJRTMMSZKkohmGJElS0QxDkiSpaIYhSZJUNMOQJEkqmmFIkiQVzTAkSZKKZhiSJElFMwxJkqSiGYYkSVLRDEOSJKlohiFJklQ0w5AkSSqaYUiSJBXNMCRJkopmGJIkSUUzDEmSpKIZhiRJUtEMQ5IkqWiGIUmSVDTDkCRJKpphSJIkFc0wJEmSijaTMBQRfxoRt0bElyLiExHx1Jr5jouI2yJia0ScMeVmSpKkGRmUASJibUT8dTX9sxFxSNe0t1af3xYRrxy0rVmNDF0JPDczfxL4CvDW3hkiYhVwDvAq4HDg5Ig4fKqtlCRJU9cyA/wa8HBm/hjwX4A/rpY9HDgJ+AngOODcan21ZhKGMvPvMnNn9fZaYEOf2Y4GtmbmHZm5A7gQOHFabZQkSTPTJgOcCHyken0x8LKIiOrzCzPzscy8E9hara/WPJwz9L8D/6PP5wcA93a931Z9JkmSFlubDPCDeaoBlkeAp7dcdhe7j9nYWhHxSWC/PpPelpl/W83zNmAn8LEJbG8TsKl6+9jl95/75XHXWYD1wAOzbsQK4H5qz33VjvupPfdVO//bNDf26M5vXnH5/eeuH2MVe0TE9V3vN2fm5nHbNaplC0OZ+fKm6RFxKvBq4GWZmX1m2Q4c2PV+Q/VZ3fY2A5urdV+fmUcN2+bSuJ/acT+1575qx/3UnvuqnZ5gsewy87hl3kSbDLA0z7aI2B1YBzzYctldzOpqsuOA3wdOyMzv1sx2HbAxIg6NiDV0TobaMq02SpKkmWmTAbYAp1SvXwtcVQ2ubAFOqq42OxTYCHyuaWPLNjI0wNnAWuDKzrlOXJuZb4qIZwLnZebxmbkzIk4HrgBWAedn5k0zaq8kSZqSugwQEWcC12fmFuBDwF9ExFbgITqBiWq+i4Cb6ZyKc1pmPt60veh/hGpli4hNszz2uFK4n9pxP7XnvmrH/dSe+6od99N4FjIMSZIktTUPl9ZLkiTNzEKGoYh4d/Wojxsi4u+qc5HUR9tHo5QuIl4XETdFxBMR4ZUtPXx0TjsRcX5EfCMivPVHg4g4MCI+FRE3V/+7e8us2zSvImKPiPhcRHyx2ld/OOs2rUQLeZgsIn40Mx+tXr8ZODwz3zTjZs2liHgFnTPwd0bEHwNk5h/MuFlzJyKeAzwBfBD43cyc6mWs86y6zf1XgGPp3NzsOuDkzLx5pg2bQxHxEuA7wEcz87mzbs+8ioj9gf0z8wsRsRfweeDf2KeerLrj8lMy8zsRsRr4NPCWzLx2xk1bURZyZGgpCFWeAixe4puQlo9GKV5m3pKZt826HXPKR+e0lJnX0LnqRQ0y877M/EL1+tvALfgEgr6y4zvV29XVnzVvSAsZhgAi4j0RcS/wq8A7Zt2eFaLu0ShSEx+do2VTPYn8+cBnZ9yUuRURqyLiBuAbwJWZ6b4a0ooNQxHxyYj4cp+/EwEy822ZeSCdR32cPtvWztagfVXNM7FHo6xUbfaTpOmJiD2BjwO/1TPiry6Z+XhmHkFnZP/oiPAQ7JBmddPFsQ163EeXjwGXAe9cxubMtQk8GqUIQ/Qp7WroW99Lg1Tnv3wc+Fhm/s2s27MSZOa3IuJTwHGAJ+kPYcWODDWJiI1db08Ebp1VW+Zdy0ejSE18dI4mqjop+EPALZn53lm3Z55FxD5LVwFHxL+gcyGDNW9Ii3o12cfpPMH3CeBu4E2Z6X+p9lHdxnwtnYfbQfVolBk2aS5FxGuA/wrsA3wLuCEzXznTRs2RiDge+L/44W3z3zPbFs2niLgAOIbOk9i/DrwzMz8000bNoYj4WeAfgBvp/P84wL/PzMtm16r5FBE/CXyEzv/2dgMuyswzZ9uqlWchw5AkSVJbC3mYTJIkqS3DkCRJKpphSJIkFc0wJEmSimYYkiRJRTMMSRpL9YTxOyPiadX7vav3h8y4aZLUimFI0lgy817gA8BZ1UdnAZsz866ZNUqShuB9hiSNrXp0wueB84HfAI7IzO/PtlWS1M6KfTaZpPmRmd+PiN8DLgdeYRCStJJ4mEzSpLwKuA/widmSVhTDkKSxRcQRdB4Q+ULgtyNi/9m2SJLaMwxJGkv1hPEPAL+VmfcAfwr82WxbJUntGYYkjes3gHsy88rq/bnAcyLi52bYJklqzavJJElS0RwZkiRJRTMMSZKkohmGJElS0QxDkiSpaIYhSZJUNMOQJEkqmmFIkiQVzTAkSZKK9v8DcR8eqOCYS5EAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Make contour plot\n", "\n", "xx = np.linspace(-3.0, 3.0, 100)\n", "yy = np.linspace(-2.0, 2.0, 100)\n", "X, y = np.meshgrid(xx, yy)\n", "\n", "fig, ax = plt.subplots(1, 1)\n", "\n", "Z = inv_cubed_normal.prob(np.dstack((X, y)))\n", "cp = ax.contourf(X, y, Z)\n", "\n", "fig.colorbar(cp)\n", "ax.set_title('Filled Contours Plot')\n", "ax.set_xlabel('X')\n", "ax.set_ylabel('y')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot histogram\n", "\n", "plt.subplot(1, 2, 1)\n", "plt.hist(g[..., 0].numpy(), bins=50, density=True)\n", "plt.subplot(1, 2, 2)\n", "plt.hist(g[..., 1].numpy(), bins=50, density=True)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Training the bijector" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "# Create a mixture of four Gaussians\n", "\n", "probs = [0.45, 0.55]\n", "\n", "mix_gauss = tfd.Mixture(\n", " cat=tfd.Categorical(probs=probs),\n", " components=[\n", " tfd.Normal(loc=2.3, scale=0.4),\n", " tfd.Normal(loc=-0.8, scale=0.4)\n", " ]\n", ")" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "# Create the dataset\n", "\n", "X_train = mix_gauss.sample(10000)\n", "X_train = tf.data.Dataset.from_tensor_slices(X_train).batch(128)\n", "\n", "X_valid = mix_gauss.sample(10000)\n", "X_valid = tf.data.Dataset.from_tensor_slices(X_valid).batch(128)" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "TensorSpec(shape=(None,), dtype=tf.float32, name=None)\n", "TensorSpec(shape=(None,), dtype=tf.float32, name=None)\n" ] } ], "source": [ "print(X_train.element_spec)\n", "print(X_valid.element_spec)" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlMAAAF1CAYAAADMXG9eAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAABEI0lEQVR4nO3deXib13km/PsBQAIEQBLcV4mLdtmWN1m2IztOYze1m8RJpnbjNJnGWep2Wk8zbbokTSdN036dNt2/ifs1mbZpmrXOdInSOnE2O4nlTfIi2dopLuJOgCRAEgCJ7Xx/AC9NMaQIEsu73b/r6mWRgIAnJSXeOuc5zxGlFIiIiIhoaxx6F0BERERkZgxTRERERAVgmCIiIiIqAMMUERERUQEYpoiIiIgKwDBFREREVACGKSIyDRH5poi8t0ivdbuInFvx8aCI3FWM18693ikReUOxXo+IjIthioi0IBEXkXkRCYvI0yLySyKS198RItItIkpEXAXUoEQkKiILIjItIt8TkXeufI5S6h6l1OfzfK2dV3qOUupHSqk9W6131fv9o4j84arXv0op9WQxXp+IjI1hiog0b1VKVQPoAvDHAH4bwN+XuYZrlVJ+AHsA/COAT4vI7xX7TQoJfUREqzFMEdFllFIRpdQRAO8E8F4RuRoAROTNIvKSiMyJyLCIfGLFb/th7r/h3MrSrSKyQ0S+n1tlConIl0QkkGcNIaXUFwD8NwAfFZGGXA1PisgHc7/eKSI/EJFI7vX/Ofd5rZYTuVreKSJvEJEREfltEZkA8Dntc6ve+iYROS0isyLyORHx5F7zQRF5auUTtdUvEXkIwLsB/Fbu/b6Re3x521BE3CLyVyIylvu/vxIRd+4xrbYPi8iUiIyLyPvy+f8TERkDwxQRrUkp9TyAEQC35z4VBfDzAAIA3gzgv4nI23OPvT7334BSyq+UegaAAPhfANoB7AOwDcAnNlnG1wG4ABxa47E/APBtAHUAOgH871zdWi3X5mr559zHrQDqkV15e2id93s3gJ8CsAPAbgC/u1GBSqnPAvgSgE/l3u+tazztYwBuAXAdgGtz/3tWvnYrgFoAHQA+AOAREanb6L2JyBgYpojoSsaQDSBQSj2plHpFKZVRSp0E8BUAd6z3G5VSfUqp7yillpRSQQB/caXnr/MaSQAhrYZVksgGo3al1KJS6qk1nrNSBsDv5eqJr/OcTyulhpVSMwD+HwDv2ky9V/BuAJ9USk3l/n/x+wD+64rHk7nHk0qpxwAsILvVSUQmwDBFRFfSAWAGAETkZhF5QkSCIhIB8EsAGtf7jSLSIiJfFZFREZkD8MUrPX+d16gA0KTVsMpvIbv69Xzu5Nz7N3i5oFJqcYPnDK/49RCyq2rF0J57vfVee1oplVrxcQyAv0jvTUQlxjBFRGsSkZuQDVPais+XARwBsE0pVQvgb5ENMwCg1niJP8p9/hqlVA2A96x4fr7eBiAF4PnVDyilJpRSv6CUagfwiwD+ZoMTfGvVuNq2Fb/ejuzKHJDd4vRqD4hI6yZfewzZVbS1XpuITI5hioguIyI1IvIWAF8F8EWl1Cu5h6oBzCilFkXkEICfW/Hbgshuo/Wu+Fw1sttVERHpAPCbm6ihXkTeDeARAH+ilJpe4zn3i0hn7sNZZANNJvfx5Kpa8vUrItIpIvXI9jlp/VYnAFwlItflmtI/ser3bfR+XwHwuyLSJCKNAD6O7EodEVkAwxQRab4hIvPIbnV9DNkep5Wnyn4ZwCdzz/k4gEe1B5RSMWR7jI7m5lTdgmxf0A0AIgD+E8C/5lHDCRFZANAH4IMAfk0p9fF1nnsTgOdyzz8C4ENKqf7cY58A8PlcLT+bx/tqvoxsU3s/gIsA/jD3v+88gE8C+C6AC3httU7z9wD2597v39d43T8EcBzASQCvAHhRe20iMj9RKp+VbyIiIiJaC1emiIiIiArAMEVERERUAIYpIiIiogIwTBEREREVgGGKiIiIqAC63Zze2Niouru79Xp7IiIiory98MILIaVU01qP6Ramuru7cfz4cb3enoiIiChvIjK03mPc5iMiIiIqAMMUERERUQEYpoiIiIgKwDBFREREVACGKSIiIqICMEwRERERFYBhioiIiKgADFNEREREBWCYIiIiIioAwxQRERFRARimiIiIiArAMEVEm7KYTOPl4TCS6YzepRARGYJuFx0TkXlMRBbxxLkpfP/sFJ66EEI8mcYn3rofDx7u0bs0IiLdMUwR0bpmowl88J+O44WhWQBAR6AK993YiR+cD+LxU5MMU0REYJgioiv41qkJvDA0i1+9cxfefE0bdrf4ISL41LfO4jM/7EcklkStt0LvMomIdMWeKSJa19G+EJqr3fi1u3ZhT2s1RAQAcNf+FqQzCk+en9K5QiIi/TFMEdGalFJ45uI0Du9sXA5Rmus6A2j0V+K7ZximiIgYpohoTecm5zEdTeB1Oxp+7DGHQ/DGvc148twUT/URke0xTBHRmo72TQMAXrezcc3H79rXgvnFFI4NzJSzLCIiw2GYIqI1Pd0XQneDFx2BqjUfv21XIypdDnznzGSZKyMiMhaGKSL6Mal0Bs8NzKy7KgUA3koXbtvZiO+emYRSqozVEREZC8MUEf2Yk6MRLCylcHjH+mEKAO7c14zhmTguTC2UqTIiIuNhmCKiH/N0XwgAcOsazecr3bm3BQDwndPc6iMi+2KYIqIfc7RvGvvbalDvq7zi81prPTjQWYvvsW+KiGyMYYqILrOYTOOFS7NrjkRYy517W/DScBjB+aUSV0ZEZEwMU0R0meODs0ikMjh8hebzle7a3wylgCfOcoAnEdkTwxQRXeboxRBcDsGhnvq8nr+/rQbttR58l1t9RGRTDFNEdJmnL07jum0B+Nz53YMuIrhzXwt+dCGExWS6xNURERkPwxQRLYvEk3hlJHzF+VJruWt/C+LJNJ6+GCpRZURExsUwRUTLnuufRkYBh/NsPtfc0lsPt8uBp3NX0BAR2QnDFBEte/riNDwVDly3PbCp3+d2OdHb5EdfkMM7ich+GKaIaNnRvhBu6q6H2+Xc9O/d0eRDHyehE5ENMUwREQBgam4RF6YW8h6JsNrOZj9Gw3HEE2xCJyJ7YZgiIgDA84MzAJD3sM7Vdjb7oRTQH+LqFBHZS15hSkTuFpFzItInIh9Z4/EHRSQoIi/n/u+DxS+ViEqpb2oBIsDuluot/f6dzf7l1yEispMNB8mIiBPAIwB+EsAIgGMickQpdXrVU/9ZKfVwCWokojLoD0bREaiCp2Lz/VIA0N3gg0OAiwxTRGQz+axMHQLQp5TqV0olAHwVwNtKWxYRldtAKIqeRt+Wf7+nwolt9V5cDEaLWBURkfHlE6Y6AAyv+Hgk97nVfkZETorI/xWRbWu9kIg8JCLHReR4MBjcQrlEVApKKQyEotjR5C/odXY2+bnNR0S2U6wG9G8A6FZKHQDwHQCfX+tJSqnPKqUOKqUONjU1FemtiahQwfklLCylClqZAoAdzX4MhKJIpTNFqoyIyPjyCVOjAFauNHXmPrdMKTWtlFrKffh3AG4sTnlEVA79oezWXG9TYWFqZ5MfiXQGI7PxYpRFRGQK+YSpYwB2iUiPiFQCeADAkZVPEJG2FR/eC+BM8UokolIbyIWpYqxMATzRR0T2smGYUkqlADwM4HFkQ9KjSqlTIvJJEbk397RfFZFTInICwK8CeLBUBRNR8fUHF+B2OdBeW1XQ6+zM9VzxWhkispMNRyMAgFLqMQCPrfrcx1f8+qMAPlrc0oioXLSTfA6HFPQ6td4KNPrdHI9ARLbCCehEhP4CxyKstLPZx5UpIrIVhikim0umM7g0HStimMqOR1BKFeX1iIiMjmGKyOZGZuNIZRR6C5wxpdnR5Mf8YgrB+aWNn0xEZAEMU0Q2N5C7mLiYK1MAm9CJyD4Ypohsrj93/UtvkcMUm9CJyC4Ypohsrj8URZ23AnW+yqK8XmuNB75KJ2dNEZFtMEwR2dxAsHgn+QBARLCj2c8Lj4nINhimiGyuP7SAnsbiNJ9reOExEdkJwxSRjUWXUpicWyr4Tr7VdjT7MTG3iPnFZFFfl4jIiBimiGxMu5OvWM3nmh25MQv93OojIhtgmCKysX7tguMir0zt5IXHRGQjDFNENjYQjEIE6G4obpjqavDC5RDOmiIiW2CYIrKxgdAC2mur4KlwFvV1K5wOdDV4uTJFRLbAMEVkY/2haNGbzzU7m/24yJUpIrIBhikim1JKYSAYLXrzuWZnsx9D0zEkUpmSvD4RkVEwTBHZVGghgfmlVFEHdq60o8mPdEZhaJon+ojI2himiGyqP7cF19tU3IGdmuU7+rjVR0QWxzBFZFPajKlSrkwBHI9ARNbHMEVkUwOhKCpdDrQHqkry+j63C221Ht7RR0SWxzBFZFMXg1H0NPjgdEjJ3mNbnRcjs7GSvT4RkREwTBHZ1EBooWRbfJrOuiqMzsZL+h5ERHpjmCKyoVQ6g0szsaJfI7NaR10VJuYWkUxzPAJtjlIKM9GE3mUQ5YVhisiGRmbjSKZVyWZMaToCVcgoYCKyWNL3Iev5yvPDuOEPvoM/+I/TWEym9S6H6IoYpohsSDvJV6rp55qOumxz+wi3+mgT0hmFz/zwIgLeCvz9UwN46/9+Cq+ORvQui2hdDFNENtS/PBahNDOmNJ11XgDAaJhhivL3/bNTGJqO4Q/ffjU+//5DiMSTePsjR/Hp719AilvGZEAMU0Q2NDwTg9/tQp23oqTv01brAQA2odOm/MNTA2iv9eDuq1pxx+4mfPvXXo+7r27Fn337PH72M89gYSmld4lEl2GYIrKhsXAcHYEqiJRuLAIAeCqcaKp2YzTM8QiUn1NjETzTP433vq4bLmf2R1TAW4lP/9wN+NTPHMCLl8L45ivjOldJdDmGKSIbGg3H0R7wlOW9OgJV3OajvH3u6CC8lU48cNP2H3vs/oOdaKp248nzQR0qI1ofwxSRDY2F48vN4aXWWVfFBnTKy9T8Io68PIb7buxE7Rpb0CKCO3Y34akLIfZOkaEwTBHZTCyRwmwsWbJrZFbrqKvCeHgRmYwqy/uReX3p2UtIpDN43+GedZ/zhj1NiMSTODESLl9hRBtgmCKymbHclltHmcJUZ6AKiXQGwYWlsrwfmdNiMo0vPjuEO/c2X3Ey/207G+EQ4AfnuNVHxsEwRWQz2pZbucIUZ01RPo6cGMN0NIEP3Lb+qhSQbUa/fnsdfsC+KTIQhikimxkLZ6eRl6tnqiPAWVN0ZUop/MNTA9jbWo1bdzRs+Pw7djfh5GgE01ztJINgmCKymdFwDC6HoLm6TKf5llemOB6B1vbMxWmcnZjH+2/ryWtcxxv2NEEp4EcXQmWojmhjDFNENjMWXkRrrQdOR2lnTGn8bhcC3goO7qR1ffPVCfjdLtx7bXtez7+6vRYNvko8eW6qxJUR5YdhishmRmfjZTvJp+GsKbqSkyNhXNNRC0+FM6/nOxyC1+9uwg8vhHhKlAyBYYrIZkbDcXTqEaa4MkVrSKQyODM+jwPbajf1++7Y3YSZaAKv8AJkMgCGKSIbSaUzmJhbLPvKVGedF6PhOJTiKgJd7uzEHBLpDK7tDGzq992+qxEi4Kk+MgSGKSIbmZpfQjqjynaST9NRV4VYIo3ZWLKs70vGd2Iku7J0oHNzK1MNfjcOdNSyb4oMgWGKyEa0viU9eqYAcKuPfszJ4TAafJVbmnt2x55mvDwcRjiWKEFlRPljmCKykXJPP9d05lbCRsMcj0CXOzkSwYHO2rxGIqx2x+4mZDgigQyAYYrIRrQp5O2B8syY0mjhjVPQaaVYIoULU/M4sMl+Kc112wKorapg3xTpjmGKyEbGwnHU+yrhrXSV9X0D3gr4Kp0cj0CXeXV0DhkFXLvJk3wap0Nw+65G/OB8kIcbSFcMU0Q2MhqOl31VCgBEBB11VVyZosucHAkDwJZXpgDgDXuaEZxfwunxueIURbQFDFNENjIWjpe9X0rDWVO02omRCDoCVWj0u7f8God3Zu/yOzYwU6yyiDYtrzAlIneLyDkR6RORj1zheT8jIkpEDhavRCIqBqWULtPPNR11nIJOlzs5Et70SITVWms8qK2qwLnJhSJVRbR5G4YpEXECeATAPQD2A3iXiOxf43nVAD4E4LliF0lEhZuLpxBNpHVbmeqs8yIST2JhKaXL+5OxhGMJDE3HCtriA7JbyHtaq3Fugtt8pJ98VqYOAehTSvUrpRIAvgrgbWs87w8A/AmAxSLWR0RFMpIbS6DnNh/AWVOUdTI3rPPaAlemAGBPSzXOTy6wCZ10k0+Y6gAwvOLjkdznlonIDQC2KaX+s4i1EVERjYWz/87Rc5sPAEZmOWuKgBPDYQDA1cUIU63VWFhKcRuZdFNwA7qIOAD8BYAP5/Hch0TkuIgcDwY5F4SonEZzIabcV8lotMuV+QOPgGzzeW+TDzWeioJfa29rNQDg3MR8wa9FtBX5hKlRANtWfNyZ+5ymGsDVAJ4UkUEAtwA4slYTulLqs0qpg0qpg01NTVuvmog2bSyyCLfLgQZfpS7v3+h3o9Ll4DYfAcg2n2/2cuP17GrJhalJhinSRz5h6hiAXSLSIyKVAB4AcER7UCkVUUo1KqW6lVLdAJ4FcK9S6nhJKiaiLRmdzY5F2Mq1HcXgcAg6AlUY4cqU7U1EFjE1v1TwST5NbVUF2ms9XJki3WwYppRSKQAPA3gcwBkAjyqlTonIJ0Xk3lIXSETFkR3Yqc8Wn4azpggAThRhWOdq2RN9DFOkj7zulFBKPQbgsVWf+/g6z31D4WURUbGNhuN4455mXWvoCFThe2endK2B9HdyJAyXQ3BVe03RXnN3azWe6gshmc6gwsl51FRe/I4jsoGlVBrB+SX9V6bqqhBaWMJiMq1rHaSvkyMR7G6phqfCWbTX3NtajWRaYSAULdprEuWLYYrIBsZzYxH0Osmn6cy9/xj7pmxLKYWTI5EtX268nj0t2VUubvWRHhimiGxACy96XHK8UgfHI9je0HQMkXiyqP1SALCj2QenQximSBcMU0Q2oJ2g6wx4da1DWxljE7p9vdZ8XtyVKbfLiZ5GH8cjkC4YpohsYCwchwjQWqvvylRrjQdOh2CEYcq2To5E4HY5sDs3G6qYeKKP9MIwRWQDo7NxNFdnh2bqyeV0oLXGw20+Gzs/OY/dLdUlOXG3p6Ual2ZiiPIybSozhikiGxiL6D9jStNRx1lTdtYfjGJHk68kr70nd63MhamFkrw+0XoYpohsQJt+bgTttR6MRRim7CieSGM0HEdvk78kr79Hu1ZmYq4kr0+0HoYpIovLZBTGIouGCVNtgSpMzi0ik1F6l0Jlps2A6i3RytT2ei+qKpw4N8GVKSovhikiiwtFl5BIZXSfMaVpr/UgmVYILSzpXQqVWX8oG3J6G0uzMuVwCHa3+HFukitTVF4MU0QWN5Yb2Nlea4ww1ZarYyyyqHMlVG79wezKVE9jaVamAGB3C0/0UfkxTBFZnNbsbZSVqbbc4NBxnuiznYvBBXQEqlBVWbxrZFbb01qN0EKCK59UVgxTRBb32vRzg4Sp3MrUOFembKc/GC1Zv5Rmb2v2WpnzXJ2iMmKYIrK40XAcfrcLtVUVepcCAKjzVsDtcmCcJ/psRSmF/uACdpToJJ9md2v29TkJncqJYYrI4sbCcd3v5FtJRNAeqGLPlM1MzS8hmkiXfGWqye9Gva+SfVNUVgxTRBY3Hllc3lozirZaD3umbOZisLQn+TQigj0t1TjLMEVlxDBFZHHjEWOtTAHZvin2TNmLdpKv1CtTQLYJ/cLkPGeZUdkwTBFZ2FIqjdBCwnArU+0BDybnFpFKZ/QuhcqkPxhFVYUTrTWlD/Z7WqsRzU1bJyoHhikiC5vIrf601RpvZSqjsn00ZA8XgwvoafTB4ZCSv9fu3LUy3OqjcmGYIrKw5YGdBhmLoNHCHU/02Ud/aAE7mkvbL6XRLjw+zxN9VCYMU0QWpoUVw61M5Xq4tLBH1raYTGNkNo7eEk4+X8nvdqGlxr18FyBRqTFMEVnY+PI2n9FWprL1TLAJ3RaGpmNQqjzN55quBh+GphmmqDwYpogsbDwSR8BbUdLrO7aixuOCr9KJMW7z2UJ/bixCqQd2rtTT4MNAKFa29yN7Y5gisrDxsPFmTAHZWUBtgSqMc5vPFvpDpb/geLWuRi9CC0uYX0yW7T3JvhimiCxsLLKIdoP1S2naaj1sQLeJi1MLaK3xwOd2le09exqywW1omqtTVHoMU0QWNh6JLzd7G017La+UsYuLodJfcLxad24VbJB9U1QGDFNEFhVPpBGOJQ25zQdkT/SFFpaQSHFwp5WV64Lj1boavAC4MkXlwTBFZFFac7fRrpLRtNV6oBQwOcfVKSsLLSQwv5gq+8qUt5LjEah8GKaILEpr7jbsylSurjFe+WFp2km+3jKvTAFAd4MPgwxTVAYMU0QWtbwyZdAwpa2Y8cJja9NO8pVrYOdK3Q0+DHKbj8qAYYrIorSVqZZat86VrE1bmWKYsrb+4ALcLgc6dLjSqLvRx/EIVBYMU0QWNR6Jo9HvhttlrIGdGp/bhRqPi+MRLO5iMFq2C45X62YTOpUJwxSRRY1HFg13J99q7YEq3s9ncf3BhbI3n2s4HoHKhWGKyKLGI3HDhykO7rS2RCqD4dl42cciaLTxCGxCp1JjmCKyqPHwItp16FPZjNbaKvZMWdilmSjSGaXbytRr4xG4zUelxTBFZEHzi0nML6UMvzLVXuvBTDSBxWRa71KoBC4GtZN8+qxMAdkTfUPc5qMSY5gisiBttafN4CtTWn1cnbKmfi1M6bQyBWQvV2bPFJUawxSRBWmDMI16ybFGq2+cgzstqT+4gKZqN6o9FbrV0NXgy01h53gEKh2GKSIL4soUGUF/KKrLsM6Veho5HoFKj2GKyILGw3E4BGipNubATo3W08UTfdY0NB1Dd4O+Yaor9/68o49KiWGKyILGIotorvbA5TT2H3FPhRP1vkqMcWXKchaWUggtLKErtzKkFy3MsQmdSsnYf9MS0ZaMR+JoCxi7X0rTWuNhz5QFXcptq3XV67syVVXpRGuNh+MRqKQYpogsyAzTzzXtAQ97pixIWwnSBmfqqavByxN9VFIMU0QWo5TCeHhx+SJho2urrVo+fUjWMTSTXQnaboAw1dPIWVNUWgxTRBYTiScRT6ZNszLVFvBgbjGF6FJK71KoiIamY6j3VaJGx7EImu5Gjkeg0sorTInI3SJyTkT6ROQjazz+SyLyioi8LCJPicj+4pdKRPnQLg42+lUymvZabTwCV6esZGg6iu31+q9KAUB3A8cjUGltGKZExAngEQD3ANgP4F1rhKUvK6WuUUpdB+BTAP6i2IUSUX60UGKalalcnVoIJGvIjkUwSJhq5HgEKq18VqYOAehTSvUrpRIAvgrgbSufoJSaW/GhD4AqXolEtBnamAHTrEzl6pxgE7plLKXSGI/EsV3nGVMa7UThIMMUlYgrj+d0ABhe8fEIgJtXP0lEfgXArwOoBPDGolRHRJs2Ho7D5RA0+o09sFPTUpNbmeI2n2WMzMaRUTDMypQ2HmGQ23xUIkVrQFdKPaKU2gHgtwH87lrPEZGHROS4iBwPBoPFemsiWmE8soiWGg+cDtG7lLxUuhxo9Lsxzm0+y1ieMWWQMAUA3Y0cj0Clk0+YGgWwbcXHnbnPreerAN6+1gNKqc8qpQ4qpQ42NTXlXSQR5W8sHEe7SQZ2atoDHq5MWYgWWrbrPLBzpe4GH7f5qGTyCVPHAOwSkR4RqQTwAIAjK58gIrtWfPhmABeKVyIRbUZ2YKc5+qU0bbUc3GklQ9Mx+CqdaPRX6l3Ksu5GH6ajCcxxPAKVwIZhSimVAvAwgMcBnAHwqFLqlIh8UkTuzT3tYRE5JSIvI9s39d5SFUxE61NKYcJE08817YEqjIfjUIpnV6zg0kwM2xt8EDHOVvPyHX28VoZKIJ8GdCilHgPw2KrPfXzFrz9U5LqIaAumowkk0hnThamOQBWiiTQi8SQCXuOsZtDWDE5HsaelWu8yLtOdu3B5cDqKazprda6GrIYT0IksRGvibjPJWARNR67eUV4rY3rpjMLITNwQ18isxPEIVEoMU0QWojVxt5usZ0qbNTU6yzBlduOROBLpzHJ4MQptPMIAT/RRCTBMEVnIeG5lp81kp/k66rJhihcem582FsEoM6ZW6mrwLtdHVEwMU0QWMh5ZRKXLgQafufqOGnyVcLsc3OazgKGZbFgx2jYfkA1TWn1ExcQwRWQhY7mTfEY6RZUPEUFHoIr381nA4HQUlU6HIcdzdDX4EJxfQnQppXcpZDEMU0QWMhaOm+4kn6Y9UIURrkyZ3qXpGDrrqww5gV+byH6Jq1NUZAxTRBYyOhtHR8B42yv5aA942DNlAUPTMXTVG/N7cHnWFJvQqcgYpogsIpHKYHJ+cbmZ22w6Al4E55ewlErrXQptkVIKQ9NRdDUY6ySfRuvjGmITOhUZwxSRRUxEFqEU0GmyGVMa7T5BXnhsXtPRBKKJtKEuOF6pxlOBel8lBhmmqMgYpogsYiSc/QFh2pUpjkcwPW37rNugK1MAsL3ei0sz3Oaj4mKYIrIIbeBlh0lXprS62YRuXtr2mRHHImi6Grzc5qOiY5gisohRkw7s1LTWeiDClSkzG5qOQQToNPDqaFeDD2PhOBKpjN6lkIUwTBFZxOhsHM3VbrhdTr1L2RK3y4kmv5tXypjY0HQU7bVVhv4e7Kr3IqOAkVmuTlHxMEwRWcRoOG7afilNR13V8v2CZD5DMzHDNp9ruht5oo+Kj2GKyCJGw3HT9ktp2gNVXJkysaHpmGHHImi213PWFBUfwxSRBWQyCuNh886Y0nQGqjAWWUQmo/QuhTZpfjGJmWjC8CtTjf5K+CqdHI9ARcUwRWQBwYUlJNIZdNYZ+wfZRtoDVUikMpiOJvQuhTZJ2zYz6vRzjYhge4OPV8pQUTFMEVnASG5rzKwDOzXtufpHeaLPdJbDlMG3+QCgu8GLQW7zURExTBFZgBY+zL7Np/V8cTyC+QzlBmEaecaUZnuDFyMzcaS5nUxFwjBFZAFmH9ip0epnE7r5DIViaPRXwu926V3KhrrqfUikM5iY49VFVBwMU0QWMBqOIeCtgM8EP8iupKbKBb/bxW0+ExqaMe4Fx6t1axceh7jVR8XBMEVkAaOz5h+LAGSbg9sDHoYpE7o0HTN887lG24ocYhM6FQnDFJEFWGHGlKYjUMWeKZNZTKYxFllEd6M5VqbaaqtQ6XSwCZ2KhmGKyOSUUtmVKZM3n2vaA1VcmTKZ107ymWNlyukQdNZX4RJnTVGRMEwRmVwknkQ0kbbOylRdFcKxJKJLKb1LoTxpKzw9JlmZAoDuBh8Hd1LRMEwRmdzyjCmLrExpoXCcd/SZxmCukdssDegAsL3ei0vTUSjF8QhUOIYpIpMbWR6LYI4tlo1oYWqE4xFMY3A6inpfJWqrKvQuJW/dDV5EE2mEFjhtnwrHMEVkclYZ2KlpXx7cyRlAZjEYii2PGzALbRXt0gyb0KlwDFNEJjc6G0dVhRN1XvOsClxJc7UbTodgNMx+FrMYnI6a5iSfRhuPMBji9xkVjmGKyORGwzF01FVBRPQupShcTgdaazxcmTKJeCKN8cgiuk3ULwVkewwdwllTVBwMU0QmZ6UZU5qOQBWvlDGJS7kwYraVKbfLibbaKlzirCkqAoYpIpOz0owpTUcdZ02ZxUDuJF+PyVamAKC70cvxCFQUDFNEJhZLpDAbS1puZao94MHE3CJS6YzepdAGtBlTXY3makAHgO31vuWVNaJCMEwRmdioxWZMaToCXqQzClPzS3qXQhsYmo6iwVeJGo/5DkB0N3gxE01gbjGpdylkcgxTRCY2oo1FsODKFADe0WcCAyHzneTTaNff8FoZKhTDFJGJaStTVuuZ0lba2DdlfIOhmGnu5FtNmzXFC4+pUAxTRCY2Go7D5RA0V3v0LqWotMGdDFPGFk+kMTG3aMrmcyB7pQzw2kXNRFvFMEVkYqOzcbQFPHA6rDFjSuOtdKHOW8HxCAY3lJsebtZtPp/bhUa/G0NcmaICMUwRmZgVZ0xp2gNV7JkyOO2CY7MN7Fypu4HjEahwDFNEJjY6G7fMBcertQc4a8rotBDSbcKxCJqeRt/yrCyirWKYIjKpRCqDyflFyzWfa7Qp6EopvUuhdQyGomj0V6LahGMRNL1NfgTnlzDP8QhUAIYpIpOaiCxCKaDTott8nXVViCbSmI3xh5xRDYSiyyfizKq3KVt/f5CrU7R1DFNEJjUSzm6xWHVlSuvDYXOwcQ1Nx0zdLwUAvbnmeW71USEYpohMannGlEVXppYHKvK6D0NaHotg4n4pANje4IVDgP7ggt6lkIkxTBGZlNac3Raw1owpzbZ6L0SyQyHJeLSxCGbf5nO7nNhW78VFrkxRARimiExqdDaO5mo33C6n3qWUhKfCibYaD7f5DEobi9Bj0hlTK/U0+jDAnikqQF5hSkTuFpFzItInIh9Z4/FfF5HTInJSRL4nIl3FL5WIVhoNxy3bL6XpavDxqg+DGsitGJr1KpmVehv9GAhFkcnw5ChtzYZhSkScAB4BcA+A/QDeJSL7Vz3tJQAHlVIHAPxfAJ8qdqFEdLmR2Tg668z/g+xKuhq87JkyqKFp849F0PQ2+RBPZnvAiLYin5WpQwD6lFL9SqkEgK8CeNvKJyilnlBKaX/jPQugs7hlEtFKiVQGI7MxdFtgVeBKuhp8CC0kOAPIgAZCUdOf5NNoJ/o4HoG2Kp8w1QFgeMXHI7nPrecDAL651gMi8pCIHBeR48FgMP8qiegyw7MxZJS5r/HIhxYWeRGt8QxOR017J99qvU1+AMBAiCf6aGuK2oAuIu8BcBDAn671uFLqs0qpg0qpg01NTcV8ayJbWb4TzSI/zNazneMRDCmWSGFybskyK6MtNW74Kp24yJUp2iJXHs8ZBbBtxceduc9dRkTuAvAxAHcopZaKUx4RrWXAQieprkQ7ds8mdGMZWr6TzxrffyKCniYf+jkegbYon5WpYwB2iUiPiFQCeADAkZVPEJHrAXwGwL1Kqanil0lEKw1OR1HjcaHOa/7m3yvxu11o9LsxxFlThrK8MmqhbeaeRj+3+WjLNgxTSqkUgIcBPA7gDIBHlVKnROSTInJv7ml/CsAP4Gsi8rKIHFnn5YioCAZDMfQ0+iAiepdScl0N3uUBkWQMgxZbmQKyTegjs3EsJtN6l0ImlM82H5RSjwF4bNXnPr7i13cVuS4iuoKBUBQHu+v0LqMsuhq8eObitN5l0AqDoSga/W743Xn9CDGF3iYflMpuYe5prda7HDIZTkAnMpmlVBpjkbiltliupLvBh/HIIlcMDGRgOmr6O/lW623kiT7aOoYpIpMZnolBKes3n2t44bHxDE1HTX8n32o9Tdn/PTzRR1vBMEVkMla6xiMf2g9tzpoyhoWl7FgEq4V5v9uFlho3B3fSljBMEZmMlS6Yzcdrgzv5Q84I+qay22C7mv06V1J8PY0+bvPRljBMEZnMwHQUAW8FAt5KvUspi4C3ErVVFZw1ZRAXJucBALtarNek3dvk56wp2hKGKSKTGbTQnWj56mrwcpvPIPqmFlDpcmB7vfW2mXsbfQjHkpiJJvQuhUyGYYrIZAZDUdts8Wm6GnwMUwZxfnIeO5r8cDqsN+OsN9eEzq0+2iyGKSITWUymMRZZtN3KVHeDF6PhOJLpjN6l2N6FqQVL9ksBr41H4Ik+2iyGKSITee1ONOttsVxJV4MP6YzC6Gxc71JsLbqUwshs3LJhqrOuChVO4Yk+2jSGKSITscsFx6tpYyDYhK6vi8HcST4LNp8DgMuZ7QXrD3KbjzaHYYrIRLQwYaU70fLRtTwegX1TerowqYUpa65MAdkTfQM80UebxDBFZCKDoSgafJWo8VToXUpZNfnd8FY6uTKls/NT86hwCroseJJP09uUPeyQzii9SyETYZgiMpHB6ajtVqUAQESwvd6LS1yZ0lXf5AJ6G/1wOa37o6O30YdEOoORWX6vUf6s+yeCyIIGQzHbneTTdDf4uDKlswtTC5be4gOy23wAOLyTNoVhisgk4ok0JuYW0WOzk3yarkYvhmfi3H7RSTyRxvBsDLuardl8runNrfzyRB9tBsMUkUnYtflc092Q3X6ZmFvUuxRbuhhcgFLWbj4HgHpfJWo8Lp7oo01hmCIyCe2CY7tu82lNz0PcftHFhansnXy7LR6mRIQn+mjTGKaITGLA5itTXbn/3YNsQtfF+ckFuByCLhuE+R1NflyY4soU5Y9hisgkBkNRNFW74Xe79C5FF201HlS6HBia4YqBHi5MLqCn0YcKC5/k0+xrq0ZwfgnTC0t6l0ImYf0/FUQWMRiKoccGqwLrcTgE2+qqMBTiypQe+qbmsduik89X29dWAwA4Mz6vcyVkFgxTRCYxMB213Z18q3E8gj4Wk2kMzcSw06J38q22tzUbGs+Mz+lcCZkFwxSRCSwspRCcX7Jtv5Smq8GHSzMxKMXxCOVkl5N8mga/G83VbpyZYJii/DBMEZmA3U/yaboavIgl0gjOs5elnPpyzdh22eYDslt93OajfDFMEZnA8owpm4epXbltpvOTPGlVTucn5+F0iK2+//a2VaNvah6JVEbvUsgEGKaITGB5ZcrmPVN7cr0sZ7n9UlYXJhfQ3eBFpcs+PzL2t9UgmVboDzG408bs8yeDyMQGp2NoqXHDW2nPsQiaBr8bTdVunJ3g9ks59U0t2GqLD1h5oo/BnTbGMEVkAoOhqK22WK5kb2s1V6bKaDGZxuB0dHmL1S56G32odDrYN0V5YZgiMoHB6Sh6bH6ST7OvrQbnJxeQSrOXpRwGQlFkFLDTZitTLqcDu1r8XJmivDBMERlcaGEJoYWEbWb8bGRvazUSqQznTZXJheWTfPb7/uOJPsoXwxSRwWn/Mt7fXqNzJcawt5XTqcvpwuQ8HAJbrozua6tBaGGJozhoQwxTRAZ3eiwXptoYpgBgR7MPLoewb6pMsif5fHC7nHqXUnb7OAmd8sQwRWRwp8fn0BGoQsBbqXcphuB2ObGjyY+zXJkqi/NT87aZfL6adqKPwZ02wjBFZHCnxuaW/1KnrL1t1RyPUAZLqTSGpmPY1Wyv5nNNna8SrTUebinThhimiAwsnkijP7jAfqlV9rbWYDQcRySe1LsUS+ubWkA6o2y7MgUA+9qquc1HG2KYIjKwc5PzyCjgKoapy+xty66UnJ/kikEpnRiOAACu7QzoW4iO9rbVoG9qgdfK0BUxTBEZGJvP17Yvd6LvLFcMSurkSBi1VRXoarDvNUb72mqQyqjly56J1sIwRWRgp8cjqPa40FlXpXcphtJS40ZtVQXOsG+qpF4eDuPabQGIiN6l6GZ/G0/00cYYpogM7PTYHPa31dj6h9laRCR7rQx/wJVMLJHC+cl5XNdZq3cpuupu8KHS5WCYoitimCIyqHRG4cz4PJvP17GvrQbnJuaRySi9S7GkU2NzyCjggI37pYDstTJ7Wnh6lK6MYYrIoAano4gn0+yXWsfe1mpEE2mMzMb1LsWSTgyHAQAHttl7ZQp47USfUgzutDaGKSKDWm4+58rUmvbmQuYZDlQsiZeHw+gIVKG52qN3Kbrb21qD6WiC18rQuhimiAzq9PgcKpxi24GJG9nd4ocIOAm9RE6ORHDA5v1Smn3LwZ3fa7Q2hikigzo9NoddzdWodPGP6Vq8lS50N/h41UcJzEQTuDQTw7XbAnqXYgjaVjub0Gk9/FuayKBOj89xi28De1urcY6rBUV3YiQMwN7DOleq9VagvdbDMEXrYpgiMqCp+UUE55fYfL6Bva01GJiOIp5I612KpZwcjkAEuIbbfMv2ttUwTNG68gpTInK3iJwTkT4R+cgaj79eRF4UkZSI3Ff8Monshc3n+dnbVg2leK1MsZ0YCWNnkx9+t0vvUgxjf1sNLgajiC6l9C6FDGjDMCUiTgCPALgHwH4A7xKR/auedgnAgwC+XOwCiezodO5fwPu4MnVFe1uzzfnsmyoepRRO5Caf02sOdtchnVF46VJY71LIgPJZmToEoE8p1a+USgD4KoC3rXyCUmpQKXUSAG+CJCqC02Nz6KyrQm1Vhd6lGNq2Oi+8lU6c4Ym+ohmZjWM6mmCYWuXGrjo4BHh+cEbvUsiA8glTHQCGV3w8kvscEZXI6fE59kvlweEQ7Gmt5spUEZ0ciQAArmW/1GWqPRXY316D5wem9S6FDKisDegi8pCIHBeR48FgsJxvTWQasUQKA6Eo+6XytLe1Bmcn5jmdukhOjIRR6XRgbyu//1Y71N2Aly6FsZTigQe6XD5hahTAthUfd+Y+t2lKqc8qpQ4qpQ42NTVt5SWILC8bDICr2rkykI99bdUIx5KYnON06mJ4eTiM/e01nG+2hkM99VhKZfDqaETvUshg8vnTcgzALhHpEZFKAA8AOFLasojs6xRP8m2K1qT/Cn/AFSydUXh1NMItvnXc1F0HAHhugH1TdLkNw5RSKgXgYQCPAzgD4FGl1CkR+aSI3AsAInKTiIwAuB/AZ0TkVCmLJrKy02NzqK3KDgmkjV3TUYtKlwPP9bOXpVB9UwuIJdJsPl9Hg9+Nnc1+PM8wRavkNUREKfUYgMdWfe7jK359DNntPyIqkNZ8LiJ6l2IKngonbtgewLNsDC7YieEwADBMXcGhnnp84+UxpDMKTgf/jFIWN8WJDCSVzuAsr5HZtFt7G3FqbA6ReFLvUkztxEgY1R4Xehp8epdiWDf31GN+KcVp6HQZhikiAzk7MY+lVAbXdLBnZTNu6a2HUuD2S4FOjIRxoLMWDq64rOum7noA/F6jyzFMERnIU30hAMDrdjToXIm5XLstALfLgWfZN7Vli8k0zo7P83LjDbQHqtBZV8UwRZdhmCIykKN9IexpqUZzDZvPNyPbN1XHMFWAV0cjSGUUDjBMbehQTz2ODc5wthktY5giMojFZBrPD8zg8M5GvUsxpVt6G3B6fA6RGPumtuKH54NwSHbLlK7sUHc9pqMJXAxG9S6FDIJhisggXhiaxVIqg9t2cYtvK27d0ZDtm+LdaVvyxLkgbtheh4C3Uu9SDO9QD/um6HIMU0QG8VRfCC6H4FAPw9RWXLutFm6XA89c5FbfZk3NL+KV0Qh+Ym+z3qWYQk+jD41+N+/po2UMU0QGcbQvhBu218Hvzmv8G63idjlxYxf7prbiB+eyd6W+YQ+v+cqHiOBQTx2ODc7qXQoZBMMUkQHMRhN4ZTTCfqkC3dLbgDMTcwjHEnqXYipPnJtCc7Ub+9s43yxfh7rrMRqOY2Q2pncpZAAMU0QG8Ez/NJQC+6UKdEtvA+dNbVIyncGPzofwE3uaOXV/E7TteH6vEcAwRWQIT/WF4He7eCy9QMt9U9zqy9sLQ7OYX0qxX2qT9rRWo8bjYpgiAAxTRIbw1IUQbultQIWTfyQL4XY5cbC7Ds/28wdcvp44N4UKp+DwTq6KbobTITjYXc/TowSAYYpId5emY7g0E8Nt/GFWFLf0NOAs+6by9sTZKdzUXY9qT4XepZjOoZ569AejmIgs6l0K6YxhikhnRy9mr5C5bRebz4vhlty8qee4/bKhkdkYzk8u4Cf2cItvK+7a1wIA+M9XxnWuhPTGMEWks6f6QmipcWNHk1/vUizhQGctPBW8py8fT+ZGIrBfamt2Nvuxv60G3zgxpncppDOGKSIdZTIKT/eFcNvOJp6kKhJt3hSHd27syXNT2FZfhR1NPr1LMa17r2vHy8NhDM9wRIKdMUwR6ej0+BxmY0mORCiybN/UPGaj7Jtaz2IyjaN90xyJUKC3HGgDABzh6pStMUwR6eipvmy/1OEd7Jcqplt3ZMMpRySs77mBGcSTafZLFaizzosbu+q41WdzDFNEOjraF8LuFj+aazx6l2Ip124LoNFfia+/PKp3KYb1xNkpuF0O3NLLVdFCvfVAG85OzOPC5LzepZBOGKaIdLKYTOP5gRnctpP3oRVbhdOBt1/Xge+dmcL0wpLe5RjSk+em8LodDaiqdOpdiun99IE2OARcnbIxhikinfzoQghLqQxu50iEkrj/4DakMgr//jJ/wK3WH1zA4HSMp/iKpLnag1t3NODIiTEopfQuh3TAMEWkky89N4TmajfnS5XIntZqXNtZi68dH+YPuFX+42R2LhL7pYrnrQfaMTgdw6ujc3qXQjpgmCLSwfBMDD84H8QDh7bzCpkSuu/gNpydmOcPuBUSqQy+8OwQXr+7CdvqvXqXYxl3X92KCqfgGye5EmpH/FucSAdffv4SBMC7Dm3TuxRLu/dAOypdDnzthWG9SzGMx14ZR3B+Ce873K13KZYS8Fbi9bua8I0TY8hkuBJqNwxTRGW2lErj0WPDuHNfC9pqq/Qux9JqvRX4qata8fWXx7CYTOtdju6UUvjc0QH0Nvpwxy4efCi2e69rx3hkES9cmtW7FCozhimiMnv81CSmowm855YuvUuxhftv7EQknsR3z0zqXYruXrwUxomRCB483A2Hg4M6i+2ufS3wVDhwhIcebIdhiqjMvvjsELbXe3H7Tjael8PhnY1oq/Xga8dH9C5Fd587OoBqjws/c0On3qVYks/twp17W/DYK+NIpTN6l0NlxDBFVEYXJufx/MAMfu7m7VwZKBOnQ3DfjZ344YUgxiNxvcvRzXgkjm++OoEHbtoGn9uldzmWde917ZiOJvCtUxN6l0JlxDBFVEZfeu4SKp0O3H8jVwbK6b4bO6EU8K8v2nci+heeGYJSCj9/a7fepVjaXftasKelGn/+7fNIcnXKNhimiMoklkjhX14YwT3XtKLB79a7HFvpavDhUE+9bWdOxRNpfPn5S/jJ/S0ch1BiTofgN39qDwZCUTx6nKdI7YJhiqhMvnFiDPNLKTae6+T+GzsxOB3D8SH7nbT695dHEY4l8b7DPXqXYgt37mvGwa46/NV3LyCWSOldDpUBwxRRmXzx2UvY3eLHwa46vUuxpZ++pg3VHhf+3+9dsNXqlDYOYV9bDW7uqde7HFsQEXzknr0Izi/hc0cH9S6HyoBhiqgMXhiaxSujEbznli6IsPFcDz63C7/xpj340YUQjtjoQtqnL07j/OQC3ne4m997ZXSwux537WvB3z55EbPRhN7lUIkxTBGV2FIqjY/92ytoqnbjHdd36F2Orb3nli4c6KzFH/zHGUTiSb3LKbnFZBq/d+QUWmrcuPfadr3LsZ3funsPookUHnmiT+9SqMQYpohK7K+/ewFnJ+bxJz9zDao9FXqXY2tOh+CP3nENZqJL+NS3zupdTsn98TfPom9qAX9637XwVDj1Lsd2drdU47/c0Il/emYIo2H7juWwA4YpohJ66dIs/vYHF3H/jZ14494WvcshAFd31OLB1/Xgy89fwosWvvbjB+eD+MenB/Hg67rx+t28OkYvv/aTuwEB/vI75/UuhUqIYYqoRBaTaXz4ayfQWuPB/3zrfr3LoRV+/U270Vrjwe/86yuWnAU0G03gN792Arua/fjIPXv1LsfWOgJVeO+tXfiXF0fwykhE73KoRBimiErkzx4/h/5gFH9y3wHUcHvPUPxuF37vrVfh7MQ8Pnd0QO9yikophd/5t1cwG0vgrx64jtt7BvDLb9iJlmoPPvhPxzAyG9O7HCoBhimiEnh+YAZ/f3QA77llO27fxS0WI/qpq1pw595m/OV3LljqB9y/vDiKb746gQ+/aQ+uaq/VuxwCUOerxOfffwjxRBrv/YfnebrPghimiIosupTCb3ztBLbVefHRe/bpXQ6tQ0Tw+2+7CgDwy196ETMW+AE3PBPDJ46cws099fiF23v1LodW2NNajf/z8wcxPBvHBz5/DPFEWu+SqIgYpoiKaDaawAc/fxzDszH86X0HeKGswXXWefHpn7se5ybmcd/fPm3qE1fnJ+fx7r97DgLgz3/2Wjh5kbbh3NzbgL9+53V4aTiM//6Vl5CyYL+eXTFMERVJ39Q83v43R/HC0Cz+/P5rcXNvg94lUR7u3NeCL3zgZgTnl3Df//c0LkzO613Spn371ATe8chRxJNpfP4Dh9BZx/v3jOqea9rw+/dehe+emcT//PqrtprGb2UMU0RF8OS5KbzjkacRXUrhKw/djP9yQ6feJdEmHOqpx6O/eCtSGYX7P/OMaUYmKKXw6e9fwENfeAE7mv34xsO34YbtvK7I6H7+1m78yk/swFeeH8avfvVlBOeX9C6JCsQwRVQApRT+4akBvP8fj6Gz3ot//5XDuLGL95+Z0b62GvzLL70OtVUVePf/eQ6PvTJu6FWDeCKN//6Vl/Bn3z6Pt1/Xjkd/8Va01nr0Lovy9Btv2oNfu2s3vvXqOO788yfxpeeGkMkY9/uNrkz0+svi4MGD6vjx47q8N1GhlFL40YUQ/u6pAfzwfBBv2t+Cv3zndeyRsoDg/BIe/NzzODU2h6s7avDwT+zEm/a3wmGQHqS5xSQePTaMzx0dxFgkjt++ey9+8fW9vHfPpPqmFvC7//4Knu2fwfXbA/ijd1yDfW01epdFaxCRF5RSB9d8jGGKKH/xRBr/+tIIPnd0EH1TC2j0u/ELt/fgF27vNcwPWypcMp3Bv700ir95og+D0zHsavbj4TfuxJuvaYPLqc+C/kAois8/PYivHR9GNJHGoe56fOiuXTi8s1GXeqh4lFL4t5dG8Yf/mb0z8i0H2nDP1a14/e4meCv5DzSjKDhMicjdAP4agBPA3yml/njV424A/wTgRgDTAN6plBq80msyTJEZpDMK5yfncWI4jJeHw/jmqxOIxJO4uqMG7z/cgzcfaIPbxaGIVpVKZ/Cfr4zjkSf6cH5yAU3VbhzqqcdNXXW4qacee1trSnZqbnphCS8Ph/HSpTCOD83guYEZuByCtx5ox/sO9+CaTs6QsppwLIG//M55fP3EGMKxJDwVDtyxuwl3X92Kwzsa0VTt5gqkjgoKUyLiBHAewE8CGAFwDMC7lFKnVzznlwEcUEr9kog8AOAdSql3Xul1GaZIT0opJNMK8UQasWQK0wsJBBeWEJxbwtT8Iqbml3B2Yh6vjkYQy82DqfG4cPuuJjx4uBsHu+r4l5qNZDIK3z49iW++Oo5jAzMYiywCyE5Sv6ajFm0BD1pqPGityf63qboSbpcTngoHKp1OuCscqHA6kEpnsJTKIJnOIJHOYCmZwUw0geD8Uvb7b34JE5FFnBqPYHgmO6bBIcDe1hrctb8F77l5O5pr2Bdldal0Bs8PzOBbpybw+KkJTM5lG9Sr3S70Nvmwo8mP3iYfOuu8CHgrEPBWIlBVgYC3AtWeCo7FKJFCw9StAD6hlPqp3McfBQCl1P9a8ZzHc895RkRcACYANKkrvHipw9Sz/dP4ExvcCm91a30HqRUPqBXPU1DIZLKfU0pBKSCVySCdUUhlFFJphVQmg8VkBvFkGukrNHvWeFzoafLj+m0BXLutFtdtq0N3g5cBigAAo+E4jg3M4NjgDE6Pz2Eykg3gqQIbiKs9LjRVu7GnpRrXbQvgum0BXNNZy60eG8tkFE6MhHFyJIKLwQX0B6O4GFzAeC7Qr8XpELhdDlS6HHC7skHe6RA4ReBY8V8BIAI4RCACCHKfyNF+ZYa/9n7+1i684/rSnqK+UpjK509oB4DhFR+PALh5vecopVIiEgHQACC0qpCHADwEANu3b8+r+K2qcAr8bAa2hLUCjPaXgPZr4LW/EACBQ7KPuxwOuJwCp0PgcgicDgeqKpyoqnTAW+mCp8IJb6UTdd5KNFW70VztRlO1m/eZ0RV1BKrQcX0H3n59x/LnMhmFmVgCE5FFhBaWsJTKIJHKLP83mc7A5RRUOB2odGZ/0FU4Haj3VfL7jtblcAiu316H61eNvIgupTAeWUQknkQknkA4lkQknsRcPIVEOn3Z914ilUFaKaQzCpncf7PzQlXuH6JAJvcPUM1r/1A1xwnDCp16GTVlTRtKqc8C+CyQXZkq5Xvd2FWPL3xgdeYjIioNh0PQ6Hej0e/WuxSyAZ/bhZ3Nfr3LoJx8otwogG0rPu7MfW7N5+S2+WqRbUQnIiIisrR8wtQxALtEpEdEKgE8AODIquccAfDe3K/vA/D9K/VLEREREVnFhtt8uR6ohwE8juxohH9QSp0SkU8COK6UOgLg7wF8QUT6AMwgG7iIiIiILC+vniml1GMAHlv1uY+v+PUigPuLWxoRERGR8fFuPiIiIqICMEwRERERFYBhioiIiKgADFNEREREBWCYIiIiIioAwxQRERFRARimiIiIiArAMEVERERUAIYpIiIiogKIXlfoiUgQwJAub25OjQBCehdBP4ZfF+Ph18SY+HUxHn5NNqdLKdW01gO6hSnaHBE5rpQ6qHcddDl+XYyHXxNj4tfFePg1KR5u8xEREREVgGGKiIiIqAAMU+bxWb0LoDXx62I8/JoYE78uxsOvSZGwZ4qIiIioAFyZIiIiIioAw5QJiciHRUSJSKPetdidiPypiJwVkZMi8m8iEtC7JjsTkbtF5JyI9InIR/Sux+5EZJuIPCEip0XklIh8SO+aKEtEnCLykoj8h961WAHDlMmIyDYAbwJwSe9aCADwHQBXK6UOADgP4KM612NbIuIE8AiAewDsB/AuEdmvb1W2lwLwYaXUfgC3APgVfk0M40MAzuhdhFUwTJnPXwL4LQBsdjMApdS3lVKp3IfPAujUsx6bOwSgTynVr5RKAPgqgLfpXJOtKaXGlVIv5n49j+wP7w59qyIR6QTwZgB/p3ctVsEwZSIi8jYAo0qpE3rXQmt6P4Bv6l2EjXUAGF7x8Qj4g9swRKQbwPUAntO5FAL+Ctl/lGd0rsMyXHoXQJcTke8CaF3joY8B+B1kt/iojK70NVFKfT33nI8hu6XxpXLWRmQGIuIH8C8A/odSak7veuxMRN4CYEop9YKIvEHnciyDYcpglFJ3rfV5EbkGQA+AEyICZLeTXhSRQ0qpiTKWaDvrfU00IvIggLcAuFNx1oieRgFsW/FxZ+5zpCMRqUA2SH1JKfWvetdDOAzgXhH5aQAeADUi8kWl1Ht0rsvUOGfKpERkEMBBpRQvqdSRiNwN4C8A3KGUCupdj52JiAvZQwB3IhuijgH4OaXUKV0LszHJ/svv8wBmlFL/Q+dyaJXcytRvKKXeonMppseeKaLCfBpANYDviMjLIvK3ehdkV7mDAA8DeBzZRudHGaR0dxjAfwXwxtyfj5dzKyJElsKVKSIiIqICcGWKiIiIqAAMU0REREQFYJgiIiIiKgDDFBEREVEBGKaIiIiICsAwRURERFQAhikiIiKiAjBMERERERXg/wcM2zD0mJn1iwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot the data distribution\n", "\n", "x = np.linspace(-5.0, 5.0, 100)\n", "plt.plot(x, mix_gauss.prob(x))\n", "plt.title('Data Distribution')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(,\n", " )" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Make a trainable bijector\n", "\n", "trainable_inv_cubic = tfb.Invert(Cubic(tf.Variable(0.25), tf.Variable(-0.1)))\n", "trainable_inv_cubic.trainable_variables" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "# Make a trainable transformed distribution\n", "\n", "trainable_dist = tfd.TransformedDistribution(normal, trainable_inv_cubic)" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot the data and learned distributions\n", "\n", "x = np.linspace(-5.0, 5.0, 100)\n", "\n", "plt.plot(x, mix_gauss.prob(x), label='data')\n", "plt.plot(x, trainable_dist.prob(x), label='trainable')\n", "plt.title('Data and trainable distribution')\n", "plt.legend(loc='best')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 0...\n", "Epoch 1...\n", "Epoch 2...\n", "Epoch 3...\n", "Epoch 4...\n", "Epoch 5...\n", "Epoch 6...\n", "Epoch 7...\n", "Epoch 8...\n", "Epoch 9...\n" ] } ], "source": [ "# Train the bijector\n", "\n", "num_epochs = 10\n", "opt = tf.keras.optimizers.Adam()\n", "train_losses = []\n", "valid_losses = []\n", "\n", "for epoch in range(num_epochs):\n", " print(\"Epoch {}...\".format(epoch))\n", " train_loss = tf.keras.metrics.Mean()\n", " val_loss = tf.keras.metrics.Mean()\n", " for train_batch in X_train:\n", " with tf.GradientTape() as tape:\n", " tape.watch(trainable_inv_cubic.trainable_variables)\n", " loss = -trainable_dist.log_prob(train_batch)\n", " train_loss(loss)\n", " grads = tape.gradient(loss, trainable_inv_cubic.trainable_variables)\n", " opt.apply_gradients(zip(grads, trainable_inv_cubic.trainable_variables))\n", " train_losses.append(train_loss.result().numpy())\n", " \n", " # Validation\n", " for valid_batch in X_valid:\n", " loss = -trainable_dist.log_prob(valid_batch)\n", " val_loss(loss)\n", " valid_losses.append(val_loss.result().numpy())" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot the learning curves\n", "\n", "plt.plot(train_losses, label='train')\n", "plt.plot(valid_losses, label='valid')\n", "plt.legend()\n", "plt.xlabel(\"Epochs\")\n", "plt.ylabel(\"Negative log likelihood\")\n", "plt.title(\"Training and validation loss curves\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot the data and learned distributions\n", "\n", "x = np.linspace(-5.0, 5.0, 100)\n", "\n", "plt.plot(x, mix_gauss.prob(x), label='data')\n", "plt.plot(x, trainable_dist.prob(x), label='learned')\n", "plt.title('Data and learned distribution')\n", "plt.legend(loc='best')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(,\n", " )" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Display trainable variable\n", "trainable_inv_cubic.trainable_variables" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.10" } }, "nbformat": 4, "nbformat_minor": 4 }