From ffd7c004f8bb8792ea898bdf9d3c90c587c77094 Mon Sep 17 00:00:00 2001 From: John Foster Date: Wed, 27 May 2015 07:31:40 -0500 Subject: [PATCH] First commit --- .gitignore | 1 + .noserc | 3 + README.md | 3 + bspline.py | 132 ++++++ .../1DIGA.test-checkpoint.ipynb | 300 +++++++++++++ .../1DIGA.test.py-checkpoint.ipynb | 412 ++++++++++++++++++ .../bspline.test-checkpoint.ipynb | 167 +++++++ test/bspline.test.ipynb | 167 +++++++ 8 files changed, 1185 insertions(+) create mode 100644 .gitignore create mode 100644 .noserc create mode 100644 README.md create mode 100644 bspline.py create mode 100644 test/.ipynb_checkpoints/1DIGA.test-checkpoint.ipynb create mode 100644 test/.ipynb_checkpoints/1DIGA.test.py-checkpoint.ipynb create mode 100644 test/.ipynb_checkpoints/bspline.test-checkpoint.ipynb create mode 100644 test/bspline.test.ipynb diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0d20b64 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.pyc diff --git a/.noserc b/.noserc new file mode 100644 index 0000000..a93dfa3 --- /dev/null +++ b/.noserc @@ -0,0 +1,3 @@ +[nosetests] +with-nosebook +verbosity=1 diff --git a/README.md b/README.md new file mode 100644 index 0000000..1366303 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +#Bspline.py + +Python/Numpy implementation of Bspline basis functions via Cox - de Boor algorithm diff --git a/bspline.py b/bspline.py new file mode 100644 index 0000000..3f0588d --- /dev/null +++ b/bspline.py @@ -0,0 +1,132 @@ +from functools import partial +import numpy as np +import matplotlib.pyplot as plt +np.seterr(divide='ignore', invalid='ignore') + +class memoize(object): + """cache the return value of a method + + This class is meant to be used as a decorator of methods. The return value + from a given method invocation will be cached on the instance whose method + was invoked. All arguments passed to a method decorated with memoize must + be hashable. + + If a memoized method is invoked directly on its class the result will not + be cached. Instead the method will be invoked like a static method: + class Obj(object): + @memoize + def add_to(self, arg): + return self + arg + Obj.add_to(1) # not enough arguments + Obj.add_to(1, 2) # returns 3, result is not cached + + Script borrowed from here: + MIT Licensed, attributed to Daniel Miller, Wed, 3 Nov 2010 + http://code.activestate.com/recipes/577452-a-memoize-decorator-for-instance-methods/ + """ + def __init__(self, func): + self.func = func + def __get__(self, obj, objtype=None): + if obj is None: + return self.func + return partial(self, obj) + def __call__(self, *args, **kw): + obj = args[0] + try: + cache = obj.__cache + except AttributeError: + cache = obj.__cache = {} + key = (self.func, args[1:], frozenset(kw.items())) + try: + res = cache[key] + except KeyError: + res = cache[key] = self.func(*args, **kw) + return res + + + +class Bspline(): + + def __init__(self, knot_vector, order): + + self.knot_vector = np.array(knot_vector) + self.p = order + + + def __basis0(self, xi): + + return np.where(np.all([self.knot_vector[:-1] <= xi, + xi < self.knot_vector[1:]],axis=0), 1.0, 0.0) + + def __basis(self, xi, p, compute_derivatives=False): + + if p == 0: + return self.__basis0(xi) + else: + basis_p_minus_1 = self.__basis(xi, p - 1) + + first_term_numerator = xi - self.knot_vector[:-p] + first_term_denominator = self.knot_vector[p:] - self.knot_vector[:-p] + + second_term_numerator = self.knot_vector[(p + 1):] - xi + second_term_denominator = (self.knot_vector[(p + 1):] - + self.knot_vector[1:-p]) + + + first_term = np.where(first_term_denominator != 0.0, + (first_term_numerator / + first_term_denominator), 0.0) + second_term = np.where(second_term_denominator != 0.0, + (second_term_numerator / + second_term_denominator), 0.0) + + if compute_derivatives and p == self.p: + + first_term = np.where(first_term_denominator != 0.0, + p / first_term_denominator, 0.0) + second_term = np.where(second_term_denominator != 0.0, + -p / second_term_denominator, 0.0) + + return (first_term[:-1] * basis_p_minus_1[:-1] + + second_term * basis_p_minus_1[1:]) + + + @memoize + def __call__(self, xi): + + return self.__basis(xi, self.p, compute_derivatives=False) + + @memoize + def d(self, xi): + + return self.__basis(xi, self.p, compute_derivatives=True) + + def plot(self): + + x_min = np.min(self.knot_vector) + x_max = np.max(self.knot_vector) + + x = np.linspace(x_min, x_max, num=1000) + + N = np.array([self(i) for i in x]).T; + + for n in N: + + plt.plot(x,n) + + return plt.show() + + def dplot(self): + + x_min = np.min(self.knot_vector) + x_max = np.max(self.knot_vector) + + x = np.linspace(x_min, x_max, num=1000) + + N = np.array([self.d(i) for i in x]).T; + + for n in N: + + plt.plot(x,n) + + return plt.show() diff --git a/test/.ipynb_checkpoints/1DIGA.test-checkpoint.ipynb b/test/.ipynb_checkpoints/1DIGA.test-checkpoint.ipynb new file mode 100644 index 0000000..2a0cb3d --- /dev/null +++ b/test/.ipynb_checkpoints/1DIGA.test-checkpoint.ipynb @@ -0,0 +1,300 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 79, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "from functools import partial\n", + "\n", + "class memoize(object):\n", + " \"\"\"cache the return value of a method\n", + " \n", + " This class is meant to be used as a decorator of methods. The return value\n", + " from a given method invocation will be cached on the instance whose method\n", + " was invoked. All arguments passed to a method decorated with memoize must\n", + " be hashable.\n", + " \n", + " If a memoized method is invoked directly on its class the result will not\n", + " be cached. Instead the method will be invoked like a static method:\n", + " class Obj(object):\n", + " @memoize\n", + " def add_to(self, arg):\n", + " return self + arg\n", + " Obj.add_to(1) # not enough arguments\n", + " Obj.add_to(1, 2) # returns 3, result is not cached\n", + " \n", + " Script borrowed from here:\n", + " MIT Licensed, attributed to Daniel Miller, Wed, 3 Nov 2010\n", + " http://code.activestate.com/recipes/577452-a-memoize-decorator-for-instance-methods/\n", + " \"\"\"\n", + " def __init__(self, func):\n", + " self.func = func\n", + " def __get__(self, obj, objtype=None):\n", + " if obj is None:\n", + " return self.func\n", + " return partial(self, obj)\n", + " def __call__(self, *args, **kw):\n", + " obj = args[0]\n", + " try:\n", + " cache = obj.__cache\n", + " except AttributeError:\n", + " cache = obj.__cache = {}\n", + " key = (self.func, args[1:], frozenset(kw.items()))\n", + " try:\n", + " res = cache[key]\n", + " except KeyError:\n", + " res = cache[key] = self.func(*args, **kw)\n", + " return res" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "#Turn off divide by zero warning because we explicitly check for it\n", + "np.seterr(divide='ignore', invalid='ignore')\n", + "\n", + "class Bspline():\n", + " \n", + " def __init__(self, knot_vector, order):\n", + " \n", + " self.knot_vector = np.array(knot_vector)\n", + " self.p = order\n", + " \n", + " \n", + " def __basis0(self, xi):\n", + " \n", + " return np.where(np.all([self.knot_vector[:-1] <= xi, \n", + " xi < self.knot_vector[1:]],axis=0), 1.0, 0.0)\n", + " \n", + " def __basis(self, xi, p, compute_derivatives=False):\n", + " \n", + " if p == 0:\n", + " return self.__basis0(xi)\n", + " else:\n", + " basis_p_minus_1 = self.__basis(xi, p - 1)\n", + " \n", + " first_term_numerator = xi - self.knot_vector[:-p] \n", + " first_term_denominator = self.knot_vector[p:] - self.knot_vector[:-p]\n", + " \n", + " second_term_numerator = self.knot_vector[(p + 1):] - xi\n", + " second_term_denominator = self.knot_vector[(p + 1):] - self.knot_vector[1:-p]\n", + " \n", + " first_term = np.where(first_term_denominator != 0.0, \n", + " first_term_numerator / first_term_denominator, 0.0)\n", + " second_term = np.where(second_term_denominator != 0.0,\n", + " second_term_numerator / second_term_denominator, 0.0)\n", + " \n", + " if compute_derivatives and p == self.p:\n", + " \n", + " first_term = np.where(first_term_denominator != 0.0, \n", + " p / first_term_denominator, 0.0)\n", + " second_term = np.where(second_term_denominator != 0.0,\n", + " -p / second_term_denominator, 0.0)\n", + " \n", + " return first_term[:-1] * basis_p_minus_1[:-1] + second_term * basis_p_minus_1[1:]\n", + " \n", + " \n", + " @memoize\n", + " def __call__(self, xi):\n", + " \n", + " return self.__basis(xi, self.p, compute_derivatives=False)\n", + " \n", + " @memoize\n", + " def d(self, xi):\n", + " \n", + " return self.__basis(xi, self.p, compute_derivatives=True)\n", + " \n", + " def plot(self):\n", + " \n", + " x_min = np.min(knot_vector)\n", + " x_max = np.max(knot_vector)\n", + " \n", + " x = np.linspace(x_min, x_max, num=1000)\n", + " \n", + " N = np.array([self(i) for i in x]).T;\n", + " \n", + " for n in N:\n", + " \n", + " plt.plot(x,n)\n", + " \n", + " return plt.show()\n", + " \n", + " def dplot(self):\n", + " \n", + " x_min = np.min(knot_vector)\n", + " x_max = np.max(knot_vector)\n", + " \n", + " x = np.linspace(x_min, x_max, num=1000)\n", + " \n", + " N = np.array([self.d(i) for i in x]).T;\n", + " \n", + " for n in N:\n", + " \n", + " plt.plot(x,n)\n", + " \n", + " return plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "knot_vector = [0,0,0,0,0,1,2,2,3,3,3,4,4,4,4,5,5,5,5,5]\n", + "basis = Bspline(knot_vector,4)\n", + "\n", + "%matplotlib inline\n", + "basis.plot()" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXIAAAEACAYAAACuzv3DAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnX+wZGV55z8PjBYSRVjJagKTkC2QYBQFFX9FconRjMCA\nSbaWzK5JRbMyVSvZ1G5l48ba3YEyxqUqu0kMWR2NsUI2cdxNTMIMP4NwS6MWu2P45TLjDqtUYFCI\niBIV44w8+8fpe8+5ffvpPt19znl/PZ+qKW/fe+bOy+Pb3z7v0++nX1FVHMdxnHQ5JvQAHMdxnOXw\nIHccx0kcD3LHcZzE8SB3HMdJHA9yx3GcxPEgdxzHSZyZQS4ifyAij4jIvVOuea+IHBKRu0XknG6H\n6DiO40yjzR35h4Ft1g9F5ELgdFU9A7gceF9HY3Mcx3FaMDPIVfWTwONTLrkE+MPRtXcAJ4rIc7sZ\nnuM4jjOLLnrkpwAPNh4/BJzawe91HMdxWtDVm50y9ti9f8dxnIHY0sHvOAxsbTw+dfS9DYiIh7vj\nOM4CqOr4zfIGugjy64ArgD0i8krga6r6yCKDyR0RXgzcBv/hmfDrJ6nyrdBjCoVcJa8CruPjPJPX\n8Wzdpd8JPaZgiPwE8MfvhGf+BpyA6ndDDykUsrp6CfABPvCB47j88pN0ZaX4G8A2N8Ftth9+BPg0\ncKaIPCgibxWRnSKyE0BVbwC+ICL3A7uBf7XkuHNmO/BH8PWHgdeFHkxgtgMf5AhfBV4bejCB2Q78\n7nfgm8B5oQcTmO3A1VQfy/qi0INJhZl35Kq6o8U1V3QznOzZDrwT/vas0dd7A48nJNuBy/k6rxx9\n/fHA4wmDiFD99//UYfjJ0defCTuoMMjq6jHAxcDVPPbYZVS1uCfsqNLAzc6BEOF5wPOBT4JeC1ws\nUmb95So5DfjHwP/iafwJsF2uklLbbmdR3VDd82zYQxVepXIu8DVdWbmfZz/7f1J2LeaiyCAJxIXA\nX6nyHdXr/hh4AijVgt0O3KC79Lv8NB8Cngb8cOAxhaJamanq++H9wHMROS3skIKxHdgHwNvf/rvA\nD8vqqjspLfAgH47xVso+yr3juJjRE1Z3qVJ2Lep5Ub3JeQNVfUpkvRa6svId4K+oboCcGXiQD4AI\nxwE/TvUkXWMvBYaXXCXPAl4F3NL4dplBLnIy1Rt6q43vFlkLWV09FfhBqo0VaxT5HFkED/JhuAC4\nR5XHGt/7FHCaCKcEGlMo3gB8Rnfp3ze+dxvwYrlKnhNoTKG4ELgN1W83vncL8GpEnhVoTKG4GLhR\nV1aONr53A/A6WV09LtCYksGDfBg27VBR5ShwE+UtozfXYpd+myrM3xhkROG4mPGdS6pPUO1aeUOI\nAQVkUy10ZeUrwL3ASogBpYQHec+IIDR6wmPspaAgl6vkWKq7UKsW5SyjRZ4OvB64fsJPi6qFrK4e\nD5wP3Dzhx/so6DmyKB7k/XM2cAQ4MOFnNwM/JsLxww4pGOcBj+gufWDCz64H3iBXydOHHVIwzgc+\nz2QLeh9wISLHDjymUPwEsF9XVr424Wd7ge2yulrq9tRWeJD3z3Zgr+rmDxJT5XHgs5RjeZoSlO7S\nLwOHKMfyrLfajaP6ReBRyrE8p8lx9wHfxS3PqXiQ988sg7OkZbTXApo2Z/G1aNick1/gq89aKaIW\ny+BB3iMbbU6TvRRgeW6wOW2qZXT+lue6zTnlmlLCq7Y5bUqpxcJkHR4RsG5zWheocogyLM/a5rS5\nmzIsz3Wbc8o1d1CG5Wm3mGo+gVueU/Eg75e2H4xVggRi7dxZpyDLc/a8KMfynFkLtzxn40HeE4bN\naZH10tGwOS3yDvLJNqdF1rUwbE6LrJ8jy+JB3h+TbE6L3C3PSTanRe6W5ySb0yJ3y3OSzWnhlucU\nPMj7o/XnjRdgebavRf6Wp7lDYxP5W56ta+GW53Q8yHtghs1pkaXlOcPmtMhzGT3d5rTIshYzbE4L\ntzwNPMj7YZrNaZGr5TnN5rTI1fKcZnNa5Gp5TrM5LdzyNPAg7wfT5rTI2PKc+0i7jC3PNlvtNpKv\n5bnIUYdueRp4kPfDoudx5riM9lpAW5vTIqtazLI5LdzytPEg75iWNqdFVpZnS5vTIjfLs43NaZFb\neLWxOS1yq0UnZBEYkTHT5rTI0PJsY3Na5GZ5trE5LXKzPOdvMdW45TkBD/LuWXT5vEZOEsi8O3fW\nydDyXHxe5Gd5LlwLtzwn40HeIXPanBZZLB3ntDktsqjFnDanRRYvanPanBZ5zIsO8SDvlnlsTotc\nLM95bE6L28nD8pzH5rTIxfKcx+a0cMtzDA/yblm2rZKT5bl8LfKxPOfeobGJfCzPpWvhludmPMg7\nYkGb0yJpy3NBm9Mi7WX0YjanRdK1WNDmtHDLs4EHeXcsYnNapG55LmJzWqRueS5ic1qkbnkuYnNa\nuOXZwIO8O+a2OS0ysDyXbqusMbI8/y/pWp7LbLXbSPqWZ2fzArc8N+BB3h1dTlJIexnddS3S3LGx\nnM1pkeS8WNTmtHDLcyMe5B2wpM1pkaTluaTNaZGq5bmMzWmRangtY3NapFqLzkkqJCJmYZvTImHL\ncxmb0yJVy3MZm9MiVcuzuxZTjVueIzzIu6Hr5fMaKbYUutq5s07Clmf38yJdy7PzWrjlWeNBviQd\n2ZwWSS0dO7I5LZKqRUc2p0VSL2od2ZwWac2LnvAgX54ubE6L1CzPLmxOi9Qszy5sTovULM8ubE4L\ntzzxIO+CvtoqKVqe/dUiPcuzsx0am0jP8uytFm55VswMchHZJiIHReSQiLxjws9PFpGbROQuEfmc\niPxCLyONkI5tToskLM+ObU6LNJbR3dqcFknUomOb06J4y3NqkEtlkF0DbANeAOwQkbPGLrsCuFNV\nX0L1qvhfRGRLD2ONkS5tTotULM8ubU6LVCzPLm1Oi1Qszy5tToviLc9Zd+TnAfer6gOqegTYA1w6\nds2XgBNGX58APKaqffTCYqQzm9MiIcuzt7bKGglZnn1stdtIOpZn7/MCtzxnBvkpwIONxw+Nvtfk\ng8CPiMjDVPt9f7m74UXPEJMU0lhGD1WLuHds9GNzWkQ9L7q2OS3c8pwd5G3uNN8J3KWq3w+8BPg9\nMd5NF5ErG39W5htqXPRkc1pEbXn2ZHNaxG559mFzWsQeXn3YnBax16I1IrLSzMo2f2dWL/swsLXx\neCvVXXmTVwPvBlDV/yciXwTOBPaP/zJVbTWoROjc5rRQ5ZDIuuX52b7/vQXow+a0aFqefb43sSh9\n2JwWteWpvb43sSj9t5hq1i1PXVnp872J3lHVVRr+gYjsmvV3Zt3h7QfOEJHTpHon/jLgurFrDlK9\noYGIPJcqxL/QetTpMtTyeY2YWwp979xZJwHLc7h5Eb/lOVgtSrc8pwb56E3LK6h2TtwHfFRVD4jI\nThHZObrsN4CXicjdwK3Ar6rqV/scdGh6tjktolw69mxzWkRZi55tTosoX9R6tjkt4pwXAzCz56qq\nN6rqmap6uqq+Z/S93aq6e/T1V1R1u6q+WFVfpKp/0vegI6BPm9MiVsuzT5vTIlbLs0+b0yJWy7NP\nm9OiWMszyjfPEmDotkrMlufwtYjX8ux9h8Ym4rU8B69FyZanB/mcDGRzWkRleQ5kc1rEtYwexua0\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "knot_vector = [0,1,2,3,4,5]\n", + "basis = Bspline(knot_vector,1)\n", + "basis.plot()" + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "basis.dplot()" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n8/9UZC3CyyqQDAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "knot_vector = [0,1,2,3,4,5]\n", + "basis = Bspline(knot_vector,2)\n", + "\n", + "basis.plot()" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "basis.dplot()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/test/.ipynb_checkpoints/1DIGA.test.py-checkpoint.ipynb b/test/.ipynb_checkpoints/1DIGA.test.py-checkpoint.ipynb new file mode 100644 index 0000000..89440ad --- /dev/null +++ b/test/.ipynb_checkpoints/1DIGA.test.py-checkpoint.ipynb @@ -0,0 +1,412 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "class Bspline(object):\n", + "\n", + " def __init__(self, knot_vector, order=None):\n", + " \"\"\"\n", + " construct Bspline object with Cox-DeBoor\n", + " \"\"\"\n", + " if not order: order = len(knot_vector) - 1\n", + " self.k, self.t = k, t\n", + " self._deboor() # evaluate\n", + "\n", + " def __call__(self, t_):\n", + " \"\"\"\n", + " S(t) = sum(b[i][k](t) * P[i] for i in xrange(0, n))\n", + " domain: t in [t[k - 1], t[n + 1]]\n", + "\n", + " returns point on Bspline at t_\n", + " \"\"\"\n", + " k, t = self.k, self.t\n", + " m = len(t) - 1\n", + " n = m - k - 1\n", + " assert t[k - 1] <= t_ <= t[n + 1] # t in [t[k - 1], t[n + 1]]\n", + " X, Y, b = self.X, self.Y, self.b\n", + " x, y, _n = 0, 0, xrange(n + 1) # initial return values, iterator over P\n", + " for i in _n:\n", + " b_i = b[i][k](t_)\n", + " x += X[i] * b_i\n", + " y += Y[i] * b_i\n", + " return x, y\n", + "\n", + " def _deboor(self):\n", + " # de Boor recursive algorithm\n", + " # S(t) = sum(b[i][k](t) * P[i] for i in xrange(0, n))\n", + " #\n", + " # b[i][k] = {\n", + " # if k == 0:\n", + " # t[i] <= t_ < t[i+1]\n", + " # else:\n", + " # a[i][k](t)*b[i][k-1](t)+(1-a[i+1][k](t))*b[i+1][k-1](t)\n", + " # }\n", + " #\n", + " # a[i][k] = {\n", + " # if t[i] == t[i+k]:\n", + " # 0\n", + " # else:\n", + " # (t_-t[i])/(t[i+k]-t[i])\n", + " # }\n", + " #\n", + " # NOTE: for b[i][k](t), must iterate to t[:-1];\n", + " # the number of [i, i + 1) spans in t\n", + " k, t = self.k, self.t\n", + " m = len(t) - 1 # iterate to t[:-1]\n", + " a, b, _k_, _m_ = [], [], xrange(k + 1), xrange(m)\n", + " for i in _m_:\n", + " a.append([]); b.append([]) # a[i]; b[i]\n", + " for k in _k_:\n", + " a[i].append(None) # a[i][k]\n", + " # if k == 0: b[i][k](t) is a step function in [t[i], t[i + 1])\n", + " if k == 0: b[i].append(lambda t_, i=i: t[i] <= t_ < t[i + 1])\n", + " # if m < i + k: b[i][k](t) undefined\n", + " elif m < i + k: b[i].append(lambda t_: False)\n", + " # else: calculate b[i][k](t)\n", + " else:\n", + " # if t[i] == t[i + k]: a[i][k] undefined\n", + " if t[i] == t[i + k]: a[i][k] = lambda t_: False\n", + " # else: calculate a[i][k](t)\n", + " else:\n", + " # a[i][k](t) = (t_ - t[i]) / (t[i + k] - t[i])\n", + " a[i][k] = lambda t_, i=i, k=k: ((t_ - t[i]) /\n", + " (t[i + k] - t[i]))\n", + " # b[i][k](t) = a[i][k](t) * b[i][k - 1](t) +\n", + " # (1 - a[i + 1][k](t)) * b[i + 1][k - 1](t)\n", + " b[i].append(lambda t_, i=i, k=k:\n", + " a[i][k](t_) * b[i][k - 1](t_) +\n", + " (1 - a[i + 1][k](t_)) * b[i + 1][k - 1](t_))\n", + " self.b = b\n", + "\n", + " def insert(self, t_):\n", + " \"\"\"\n", + " Q[i] = (1 - a[i][k]) * P[i] + a[i][k] * P[i]\n", + " domain: t in (t[0], t[m])\n", + "\n", + " insert new control point at t_\n", + " \"\"\"\n", + " t = self.t\n", + " assert t[0] < t_ < t[-1] # t_ in (t[0], t[m])\n", + " X, Y, k = self.X, self.Y, self.k\n", + " m = len(t) - 1\n", + " _t_ = xrange(m + 1)\n", + " # find the span containing t_\n", + " for i in _t_:\n", + " if t[i] <= t_ < t[i + 1]: break\n", + " assert not i < k + 1 and not i > m - k + 1 # i not in clamp\n", + " Q_x, Q_y = [], [] # new control points\n", + " # iterate over replaced control points\n", + " # set new control points\n", + " for j in xrange(i - k + 1, i + 1):\n", + " a_j = (t_ - t[j]) / (t[j + k] - t[j])\n", + " Q_x.append((1 - a_j) * X[j - 1] + a_j * X[j])\n", + " Q_y.append((1 - a_j) * Y[j - 1] + a_j * Y[j])\n", + " Q_x, Q_y = tuple(Q_x), tuple(Q_y)\n", + " self.t = t[:i + 1] + [t_] + t[i + 1:]\n", + " self.X = X[:i - k + 1] + Q_x + X[i:]\n", + " self.Y = Y[:i - k + 1] + Q_y + Y[i:]\n", + " self._deboor() # re-evaluate" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "ename": "TypeError", + "evalue": "__init__() takes at least 2 arguments (1 given)", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mtest\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mBspline\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m: __init__() takes at least 2 arguments (1 given)" + ] + } + ], + "source": [ + "test = Bspline()" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Traceback (most recent call last):\r\n", + " File \"/usr/local/bin/pip\", line 5, in \r\n", + " from pkg_resources import load_entry_point\r\n", + " File \"/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/setuptools-7.0-py2.7.egg/pkg_resources.py\", line 2880, in \r\n", + " File \"/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/setuptools-7.0-py2.7.egg/pkg_resources.py\", line 434, in _build_master\r\n", + " File \"/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/setuptools-7.0-py2.7.egg/pkg_resources.py\", line 447, in _build_from_requirements\r\n", + " File \"/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/setuptools-7.0-py2.7.egg/pkg_resources.py\", line 626, in resolve\r\n", + "pkg_resources.DistributionNotFound: pip==1.5.6\r\n" + ] + } + ], + "source": [ + "!pip install functools32" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "ename": "AttributeError", + "evalue": "'module' object has no attribute 'lru_cache'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mseterr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdivide\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'ignore'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m \u001b[0;32mclass\u001b[0m \u001b[0mBspline\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 8\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__init__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mknot_vector\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m\u001b[0m in \u001b[0;36mBspline\u001b[0;34m()\u001b[0m\n\u001b[1;32m 39\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 40\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 41\u001b[0;31m \u001b[0;34m@\u001b[0m\u001b[0mfunctools\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlru_cache\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmaxsize\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m256\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 42\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__call__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mxi\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 43\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mAttributeError\u001b[0m: 'module' object has no attribute 'lru_cache'" + ] + } + ], + "source": [ + "import numpy as np\n", + "import functools\n", + "\n", + "#Turn off divide by zero warning because we explicitly check for it\n", + "np.seterr(divide='ignore')\n", + "\n", + "class Bspline():\n", + " \n", + " def __init__(self, knot_vector, order):\n", + " \n", + " self.knot_vector = knot_vector\n", + " self.p = order\n", + " \n", + " \n", + " def __basis0(self, xi):\n", + " \n", + " return np.where(np.all([self.knot_vector[:-1] <= xi, \n", + " xi < self.knot_vector[1:]],axis=0), 1.0, 0.0)\n", + " \n", + " def __basis(self, xi, p):\n", + " \n", + " if p == 0:\n", + " return self.__basis0(xi)\n", + " else:\n", + " basis_p_minus_1 = self.__basis(xi, p - 1)\n", + " \n", + " first_term_numerator = xi - self.knot_vector[:-p] \n", + " first_term_denominator = self.knot_vector[p:] - self.knot_vector[:-p]\n", + " \n", + " second_term_numerator = self.knot_vector[(p + 1):] - xi\n", + " second_term_denominator = self.knot_vector[(p + 1):] - self.knot_vector[1:-p]\n", + " \n", + " first_term = np.where(first_term_denominator > 1.0e-12, \n", + " first_term_numerator / first_term_denominator, 0)\n", + " second_term = np.where(second_term_denominator > 1.0e-12,\n", + " second_term_numerator / second_term_denominator, 0)\n", + " \n", + " return first_term[:-1] * basis_p_minus_1[:-1] + second_term * basis_p_minus_1[1:]\n", + " \n", + " \n", + " @functools.lru_cache(maxsize=256)\n", + " def __call__(self, xi):\n", + " \n", + " return self.__basis(xi, self.p)" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/usr/local/lib/python2.7/site-packages/IPython/kernel/__main__.py:35: RuntimeWarning: invalid value encountered in divide\n", + "/usr/local/lib/python2.7/site-packages/IPython/kernel/__main__.py:37: RuntimeWarning: invalid value encountered in divide\n" + ] + } + ], + "source": [ + "x=np.linspace(0,5,num=1000)\n", + "knot_vector = np.array([0,0,0,0,0,1,2,2,3,3,3,4,4,4,4,5,5,5,5,5])\n", + "b = Bspline(knot_vector,2)\n", + "N = np.array([b._Bspline__basis(i,4) for i in x]).T;" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 0.00000000e+00, 5.12000000e-02, 2.56000000e-01,\n", + " 5.20800000e-01, 1.71600000e-01, 4.00000000e-04,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00])" + ] + }, + "execution_count": 54, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "knot_vector = np.array([0,0,0,0,0,1,2,2,3,3,3,4,4,4,4,5,5,5,5,5])\n", + "basis = Bspline(knot_vector,4)\n", + "basis(1.2)" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10 loops, best of 3: 150 ms per loop\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/usr/local/lib/python2.7/site-packages/IPython/kernel/__main__.py:35: RuntimeWarning: invalid value encountered in divide\n", + "/usr/local/lib/python2.7/site-packages/IPython/kernel/__main__.py:37: RuntimeWarning: invalid value encountered in divide\n" + ] + } + ], + "source": [ + "%%timeit\n", + "N = np.array([bb(i) for i in x]).T;" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10 loops, best of 3: 149 ms per loop\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/usr/local/lib/python2.7/site-packages/IPython/kernel/__main__.py:32: RuntimeWarning: invalid value encountered in divide\n", + "/usr/local/lib/python2.7/site-packages/IPython/kernel/__main__.py:34: RuntimeWarning: invalid value encountered in divide\n" + ] + } + ], + "source": [ + "%%timeit\n", + "N = np.array([b._Bspline__basis(i,4) for i in x]).T;" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "\n", + "plt.plot(x,N[0],x,N[1],x,N[2],x,N[3],x,N[4],x,N[5],x,N[6],x,N[7],x,N[8],x,N[9],x,N[10],x,N[11],x,N[12],x,N[13],x,N[14]);" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/test/.ipynb_checkpoints/bspline.test-checkpoint.ipynb b/test/.ipynb_checkpoints/bspline.test-checkpoint.ipynb new file mode 100644 index 0000000..c4c03ca --- /dev/null +++ b/test/.ipynb_checkpoints/bspline.test-checkpoint.ipynb @@ -0,0 +1,167 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import sys\n", + "sys.path.append(\"./..\")" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from bspline import Bspline" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXIAAAEACAYAAACuzv3DAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXe4XGW1h9+V0Ak1hUAIPZTQWyhSvgDSAypNerGAgIWL\ngt575eSoVxQbKgqIIiBKE5BQQs9HCQHpQuglkBAIvSRASFn3j/VNMmfOzJ69Z/acmTnne5+H5zFz\n9uy93TOz9tq/b63fElUlEolEIu1Lv2afQCQSiUTqIwbySCQSaXNiII9EIpE2JwbySCQSaXNiII9E\nIpE2JwbySCQSaXOqBnIRuVBEZojIEwnb/E5EnheRx0Vk83xPMRKJRCJJpMnI/wrsWemPIrI3sI6q\njgC+Dpyb07lFIpFIJAVVA7mq3gO8l7DJfsDFYdsHgOVFZKV8Ti8SiUQi1chDIx8GTC369zRg1Rz2\nG4lEIpEU5LXYKSX/jn3/kUgk0kMsksM+XgOGF/171fBaF0QkBvdIJBKpAVUtTZa7kEcgHwecDFwu\nItsC76vqjFpOpq8gImNVdWyzz6MViNdiIfFaGOK9MnbsXeq9a/a5tAJpkuCqgVxELgN2BgaJyFSg\nA1gUQFXPV9WbRGRvEXkBmAUcW99pRyKRPs8iiyzW7FNoJ6oGclU9NMU2J+dzOpFIpC8j3ltMioEc\nEfqRUPpdTOzsbA6+2SfQQvhmn0AL4Zt9Ai3AigBsu+1HTT6PVmA14KI0G8ZA3gRU1Tf7HFqFeC0W\nEq8FAIMAcK65Z9EaDEq7YY8GchH69+TxIpFI2zEI+IAMQawXM5jupd1l6emMfPkePl4kEmkvBgFP\nY0Gsr9OaGTnxLhuJRJIZDDwDDBTv+3q5cuqbWU8H8niXjUQiSQwCXsdKmfv6E/wgWlRaiRl5JBJJ\nYjDwVvivr8eLKK1EIpG2ZBDwdvivrz/Bt+xiZwzkkUgkiZiRL6RlM/K+foeNRCLJxIx8IS272NnX\n77CRSCSZmJEvJC52RiKRtiRm5Cxonlwx7fYxkEcikZZAvF8aQJ2bRczIVwTmEzPySCTSZhSycejj\nGTl2Ld5Ju3Fc7IxEIq1CQR8HC+R9OfErvhZV6elAvoQIi/fwMSORSHtQnJG/Rd9O/AZh16AlpZV3\ngIE9fMxIJNIeDKartBIz8pT0dCDv6x9OJBKpTCELBfgQWEK876tP8IWnk5bMyPv6AkYkEqnMAmlF\nnVP6duJXfFOrSk8H8r5eUhSJRCpTKif0ZZ08SiuRSKQtKV7shL4dL1peWumrH0wkEkkmZuQLiRl5\nJBJpS2JGvpCWLj/sy3fYSCSSTMzIF9LSi519+Q4biUQqIN73x0a7vVv0cp+MFyIshcXmWWnfEzPy\nSCTSCqwIvK/OzSt6ra/Gi0JjlNKi0sqbwJAePmYkEml9irs6C/TJjByLkTOwQJ6KptSRi/T4cSOR\nSGuzEha8iumrGflKWNILrZiRqzIHa72NfiuRSKSYQhZaTF/tBG/5jBzsBKO8EolEiinOQgu8BawY\nFkL7EkPofi0SaUYgfxP70CKRSKRAt4xcnZsLvE/fe4JvbWklEDPySCRSSrmMHPpm4tcW0kpf/GAi\nkUgy5TRywmt9LV60TUbe1z6YSCSSTKWMvC/Gi7bIyKO0EolESokZ+ULiYmckEmlLYkYOiNAfW9wt\nNEflI62IyJ4i8oyIPC8ip5f5+yARuVlEHhORJ0XkmCq7jBl5JBJZgHi/NBawZpb5c1+LFysCH4Se\nm3ykFRHpD5wD7AmMBA4VkQ1KNjsZeFRVNwMc8CsRWSRhtzEjj0QixQwB3gzj3UrpUxk53Z9McsnI\nRwEvqOoUVZ0DXA7sX7LN68Cy4X8vC7yjqnMT9jkDGCKS7gQjkUivp5KsAn0vkBevFeS22DkMmFr0\n72nhtWIuADYUkenA48C3k3aoyixgPjAg7UlGIpFeTaWFTuh7T/CZFzqheiBPc0f4b+AxVV0F2Az4\ng4gsU25DERkrImPh9Dmw737ZTjUSifRSkjLyN4Eh4n1feYJfCS5Z1OLk4v8LZyTJ1AuoFshfA4YX\n/Xs4lpUXsz1wFYCqvgi8DKxXbmeqOlZVx8LPn4EbXk5zgpFIpNdTMSNX5z4FPgZW6NEzah5D4KhH\nLE7O/jH8aF7Vd1A9kD8EjBCRNURkMeAQYFzJNs8AuwGIyEpYEH+pyn772uNSJBKpTFJGDn2rciX/\nxc6waHkycAvwFHCFqj4tIseLyPFhs58CW4nI48DtwGmq+m75PS6gL30wkUgkmSSNHPrWgmdNi51V\n9RdVHQ+ML3nt/KL//TYwJu0BAzEjj0QiBdJk5H0lXjRksbNR9KUPJhKJJBMz8oU0pI68UURpJRKJ\nFIgZ+UIaUkfeKKK0EolEEO8XAZYD3knYrE/ECxEGYBn4rKzvjRl5JBJpJoOBd9W5pDK7vhIvVgJm\nqHbJxFtaWukTd9hIJFKVoSTr49B3pJWhmOVJgZaXVt4DlhZh8SYdPxKJtAalwascfSWQrwy8UfJa\n62bkqszHJmT3hcelSCRSmZVJGcj7QJt+6bVo+Ywc7M4ztInHj0QizadqIFfn+orRXpqnk7I0M5C/\njn2IkUik75I2ePUFeaW9pJVADOSRSKRc8CpHXwnkbSetxEAeiUTSaOTQN6TYtpRWpgOrNPH4kUik\n+aQNXn0hXnR5OimpJ08kZuSRSKQphCqUtNJKr44XIvQHBlKDYRbEQB6JRJrHssA8dW5mim17e7wY\nAryjStK844o0W1rpzR9MJBJJJq0+Dr1fWkn7ZFKWZgbyGcCQ8EgRiUT6HlkW93p7Rl7zQic0MZCr\nMgdr1R/crHOIRCJNJUsW+jp9MyNPteDZzIwcev9dNhKJVCaLtPI2sKx431v9mbJci240O5BHnTwS\n6buklhPUufmYHNtba8nbU1oJ9PbHpUgkUpmsWWhvfoKP0kokEmlLslZq9OYn+LbPyHvrBxOJRJKp\nJSPvrU/wla5FW2TkvfkOG4lEksmahfbKxE+ELB2uZWl2IO/Nd9hIJFKBUH0yAHg3w9t6a1PQssAc\n1exDlwu0QiDvdXfYSCRSlaHAm6EaJS29NV6sQuUnk7aQVl4HVgqPFpFIpO+wCvBaxvf0Vil2GDCt\nnh00NZCrMhuYibl+RSKRvsOqZA/kvVWKreVadKHZGTn03g8nEolUppYs9C1gBfF+0QacTzMZRuVA\n3hbSCvRe3SsSiVQmKXiVRZ2bh/l197buzvaWVgK9VfeKRCKVqVVO6I1P8L0mI+9tH0wkEkmm1iz0\nNXpfvOgVGvk07EONRCJ9h8zSSmAaFvh6E7VeiwW0SiDvbR9MJAKAiAwXkVEiUvcCnQiDRdhOhKXz\nOLdmEWZ1xkAOiLAosCLm7FiOtpFWetUHE4kAiMgiInIe8CjwJ+B5Edmq9v1xCvAc8HtgiggH5XOm\nTWEgMEud+6SG9/a2eLEyMEOVefXsZJGcTqYepgHDm30SkUheiIgAF2EBay1V/VBEDgCuF5FtVPXV\nbPvjGOAEYBNVpoqwOXCTCHNVuTbn0+8J6pESelsgr6aP55ORi8ieIvKMiDwvIqdX2MaJyKMi8qSI\n+DQHLuJNYDkRlsj4vkikVfkqMBL4oqp+CKCqVwN/AP6YZUciDAXOAg5SZarti0eBMcD5Im2ZBNWz\nuNfbAnnd+jhUCeQi0h84B9gT+2IeKiIblGyzPPYFHaOqGwEHZjkBVebTe81wIn0MERkCnAkcqaqf\nlvz5LGBjEdkmwy7/B7hUlf8Uv6jKQ8DvMKml3ainbvo1YFjQ2XsDjQ/kwCjgBVWdoqpzgMuB/Uu2\nOQy4WlWnAajq2zWcR2+7y0b6Lj8E/q6qk0v/oKqfYcH8f9LsSIQVgMOBX1bY5JfA5iJ8rsZzbRY1\nZ+Tq3MfALGBQrmfUPKrd1HKRVoaBPc4FypUKjgBWFJEJIvKQiByZ5sAlxEAeaXtEZGXgCOAnCZv9\nFdhRRNI8gR4L3KjK9HJ/VOVTYGz4r52oNwvtTetqddeQQ/VAnuZusCiwBbA3sAfwQxEZkfE8etMH\nE+m7nAT8Q1XfqrSBqn4MXIM9yVbjMGzRNIm/AxuKsHHak2wB6m1Jn0rvSfyq3dRSZeTVqlZeo2uA\nHU73D2Aq8LaqfgJ8IiJ3A5sCz5fuTETGFv3Tq6oP/3sasE6aE460F178ithNfgNgDvAQcJtTN7up\nJ5YzIrIUcDywfYrN/wacTWXJBBHWwYKVT9qRKp+J8AfgFOC4tOfbZOrNQnvTE3y3QC4iDnD2r/9N\n1X9QLSN/CBghImuIyGLAIcC4km2uA3YQkf7hy7wN8FS5nanq2KL/fNGfetMdNgJ48Ut48f+H3dAP\nAD7Fvm+nA8948fs28/wawEHAA6raLYEpwz3AqiKS9BR6IHB1yvri84EvBU29HchDWmn7eBHmMHTz\nZVdVX4iT8OM5afaVmJGr6lwRORm4BegP/EVVnxaR48Pfz1fVZ0TkZuA/wHzgAlUtG8gT6BUfTMTw\n4tcGrgWeBTZ36l4t+fto4GIvfkOn7ufNOMcGcBQpSwtVdZ6I3ALshTULlWMPEjL2rvvjbRFuwRKt\n89K8p1mI90sDS5BtxFsp04Bd8jmjpjIQ+ESVjxO2yaeOXFXHq+p6qrqOqp4ZXjtfVc8v2uaXqrqh\nqm6sqr9Lc+ASYiDvJXjxGwN3Y1niwaVBHMCpm4A9uR3nxX+zh08xd0RkNWAz4IYMb7sJ2Kf8/hgA\nbEUVWaWEi4FjMmzfLIYBr6lzqQJUBXpLvFiVOu1rC7RCiz6Yz8BAERZr9olEaseLXx24GfiuU/cH\np5V/rE7d61jW+b9efLuVz5VyBHClqmbR/W8FXOjVKMUBD2YcxnsrsLoIG1TdsrkMBzJ1tpahtwTy\n1YBXqmzTNl4rBB3wDWJTUNvixS+HZZm/cOouS/Mep24K8BXgH178Mg08vYYR2vGPBC7J8r5Q2TId\nKwwoxQF3ZNsfc4EroOU9WFan/kD+GrBqL2gKyuNaAC0SyAOZFjylU1aVTjlbOuVh6ZR7pVNOl04Z\n0MDzi1TAixfgAuBup+7sLO916m4AJgCdjTi3HmAksBRwfw3vvRvYsczr2wKTatjf1djCciuzGnUG\nL3XuI+AzaJvF3UrUfS0KtFIgT/24JJ2yA1ZRMwc4EWuI2Bx4XDplk0adYKQiXwPWw0rgauG7wOFB\nX283vgj8S1Vr0XzvoSSQB3lxM+DBGvZ3H7BSKF1sVdLICWnoDfJKmkDePtJKIFVTkHTKSCzzOFo7\n9HvaoQ9oh96uHfpl4Azg1hjMew4vfk3gp8AhTl2pt0gqnLq3gZ+R3BHZqnwRanYgvJfudeebAi+q\n8lHWnQWJ8lpaOyvPS06YigXCdiavm1pLBfKqH4x0yqLApcAPtUNvKf27dujfge8A46RTBjbkLCML\nCJLKuZgu/kyduzsX2MKLz2Io1VREZA3sO3tvjbt4BVispF1/O2qTaQq0urySl5zwKnZTaGd6pbQy\nheofzMnA25geWxbt0MuBq4BLpFPafTGk1TkUM8b/db07Ctn8j8gxK/deVvVeOr2X672Xy7yXw70v\nWyVSK18Axqnq3FreHOSYh4Eti17elvoC+V3AiGB/21KI9/3Ip2oF0sWLliVIaIOwmcVJtJ208goJ\nH4x0yjLA94FTtKOqHvnfwFCsSaPXI94PFu/HiPcniPdfEe93E9/YKhAvflngV8DXnLpU3WcpuAhY\nz4vfstqG1fBejgYeA5YH/oKV530DuN/7xI7KLOwDXF/nPkoD+ZbUpo8DoMoc4HbMerrVGAJ8WONk\noFIS40UbsCrwer2TgQq0TSDHfoR3aEd3e9BStEPnYAtwZ0mnDM7p/FoK8V5C8J4AvIAZNm0BfA5b\nK3hNvL9SvN+iQadwOnCzU/fvvHYYbgi/BU6tZz/ey7eADmAn5/Tbzum/nNO/YguLVwH3eC91LZSJ\nyNJY9nxnPfuhKJCLsDj2G3iuzn3ehPnbtBq5SQm0fyBPey3aLiN/D+gvwvKlf5BO6YeNuvpN2p1p\nhz4CXIkFtV6FeL8W1nhzJtaSPVid21Od+7o6d5w6txMLtdsbxfsL8szQvfjh2Ofxw7z2WcQFwB6h\nuSgz3su+wGmAc66rVYRzqs7pWVgr/fXey+J1nOfOwMOFCUB18Ah2AwZYF3hZlc/q3OfNwG4iLTHK\nsZjcFvfoHYE8r2vROoFcFaXyh7M7FugfyrjbHwOHSaesVefptQzi/Z5YjfEdwObq3BXqXLcfvjr3\nvjr3O6wssB/wsHif1V64Ej8B/ujU5dJeXIxT9yHm2Z25dd97WQn4M3CIc4lzMX8BvIjdCGtlD8yD\nqF5eAZYNk7ZGUsFwLguqvB72u229+8qZ3BpgMG15RfG+XUdE5nktWieQB6ZQPpAfD5yXQhvvgnbo\nm9g4rB/Xf2rNR7w/DrgQOFCdO0tddW1anftQnfsKFrzuFu+3ruccvPjNsBvrWfXspwrnAkd5yfwj\nPRe40DmdmLSRc6rYd+oI72suVc0lkKvqfOBpYENyCuSB8ZgpVyuRm7Sizs3DOjzbtQSx10orUCYj\nl05ZFtgVk0lq4dfA56VT1qvz3JqKeP9VrPtxtDp3T9b3q3MXYMHrBvF1Nd50AD936jLXOafFqXsR\neByr0U6F97IL1kjzo1THcPoOJrud43226qZQdrgCtpiaB5OxQL4BMZBnYQrtK6/kei1aMZCvUfLa\nvsDd2qEf1LJD7dCPME30u/WdWvMQ78dgAWq0OvdsrftR58ZhdfbjxWfXoL34TbHH9fOrbZsD52M3\nnqp4L/2wCprTnes28DiJC4AVyV7hsQdwa8im82Aylo3nmZFPAtYSoZUW+1cnR12Y9tbJ+1ZGjjU3\nXF3nfs8BDpBOWbnO/fQ44v1mWPncF9S5F+rdnzp3GbZofI14v2TGt5+BNf/kUT5WjXHA+l58miep\nLwBzgX9mOYBzOg+T3c7ImJXvST76eIHJsNhGwNrUX7ECLDDRugcYncf+ciLvjLwtA3kYKNGrM/Ip\nFH0w0ilLAbvRfSpRJrRD38Y6Qr9Tz356GvF+WSw4fVNdfmV+mNz0AvCHtG8IPijb00ODC5y6z7C6\n8q8lbRcC8A+AnwbtOyv/xGrNUw0qCLazo4HbajhWJSbDiE2A11TJ8yZ5Jy0ygCEMlFgaqDjPtAba\nMpBjAyVm12LDUIlWC+SlH8zOwGPaoe/ksO9fA18NjUUtT7DoPA+4XZ27Is99B1P/rwCfE+8PTPm2\nHwK/cuqSppnkzcXAYV58UjfmrsAAbORgZkJW/mvgWynfsgnwuqrOqOV4FZgKGwyAT9OMictCywRy\nLAOdWudAiVLaNZCvQfpsvC2llTeBZURYOvx7N3LKfLRDp2C2oWmml7cCRwMbUbujYCLq3MxwjHPE\n+yFJ23rx62Ie2T06Rsypexrz7E4KRt8DznKuLr36H8AO3ssaKbbdEZMscsNa9Ue9Ay/kkbAU8wSw\nokh1M7oeYE3gpZz32a6BfE2s/DU3WiqQqzKfruZZu2HtxnlxLvCNVvdgEe9Xxsr7jsipnbks6tz9\nmHxxXhWT/lOA85y6mY06lwQuxSbwdMN7WQezL/5HPQdwTmdhgyFOSLH5DtRukpXAVnNgYpYJQ1UJ\nv6cJtIZOvhbwcs77nAqsIt63WuNTNbJci7bMyCHcZaVTVsLutlmbgJK4HXsMb7VGiVLOAf6kzv2n\nB47VgVVLlJ1q78UPBr5MBj09Zy4D9vfily7zt68BlziXacRaJf4EHJVkqhWmAeWekRvrLQ63NGLU\n4R20hrySe0YeGuHexOaAthO5X4tWDORTsAC+K+C1ozZnuXJoh87H5IFv5LXPvBHvv4jVFPeIN7c6\nNxvTh8+u0CV3IvBPpy5PTTg14biTgP2LX/deFsOGDVeaQp/tOE4LMs6uCZutDczDvqO5IUJ/GDII\nJgzKc7+BO4FdQqVEM1mL/KUVaE95Jfenk1YN5GsCO5Ftinha/grs14p+5SGQ/ho4UV1tQxpqQZ27\nFWvA6VJr78UviQXyum1q6+Rv2FzMYr4APOWc5lKul3CcYnYA7q1xGlASa8D8t+D9vCwUinke+52v\n3YB9Z6FRgfxlLF60E1ky8raVVl7CPvTtsNFVuRIqYK4n+QfbLP4LeFSdq9dRr9ZjnyLeFw85OAr4\nd1h0bCbXAdt78cU33yOwm3KeXAaM8b7i7NcGySqMhP5PAKuKSK7eIcHDaAK2WN0UwvrLmuSvkYMt\nGjb7JpUae/piOPk2RrVkIH+RJd4dgX04ebVAl/JXrGKjZQgLnKdiVRg9jjo3BfNx+SGAF98PC+6/\nbMb5FOPUzcL8xL8A4L0MxEpT/5XrcZy+CUwsHKcMjQzkk7FA14isvNts0B5mIDBXnXu/Aft+iTYK\n5Jie/7YqaZ+42zgjH/bgCJRHtUPrtfOshAdWlE7ZtEH7r4X/A/6szuValpSRnwEHifdrY1rxp1jJ\nZivwT6BQ834AcItzdVvIluMq4EulL4rISsBgrJ0+b0ZixlnPAOs3YP/3YFJls2iUrAKWkbeTu2lD\nrkUrBvJ3GH7fIsxe7pFGHSAsel5Ci2Tl4n2hauT/mnke6tw72GCHTmxB+FynuTZw1MONmLyyItYL\nUFfJYQLXA7t6L0uVvL4DcJ+q5jLRpYSCWVajAvkzwACRpk2db0TpYYG2klZo0LVouUCuirLGhNm8\nPDp3r+sSLgEODwOdm81Y4JfqXCMyzKycPfhNdp/Xj12Bvzf7ZAqEGvY72OzRY7DuyvENOY65Ij6E\nGWMV0xBZJVSTbIBl5E/TgEAedPJ7aZ680ohmoAJvAEs3erRhjmS9Fu0prUinCEMfX4L7v93Q5hPt\n0OexFf2mzjYMplg70rw67S6ocx998/c8Omk73mykVW2NXMXWD34VuDan2vFKXEN3C90GNQIxHPhI\nlfexzHmDBhwDmquTN0xaCS3/L9M+WXnfyMiBYcj8uby644o9cKyLsVrkZtIJ/Eydm9Xk8wDAi1/k\ncxPZ6JKjGJjjRKG8uIGNn1iX6Svf3ODj/AvYx3t7WhORZbBMueahyAlsyELd/VlgPRFpxO+yVwby\nQDvp5H0jIwc2Z9aQl9H+PXGHvRLYTTqlJ24a3RDvR2HzGnvC3zst+/ZTXnl+XX6Pzb5sHSaMXpJ1\nXlBO/OOyjTyMc/oa1s+wXXhpO+AR1YY8BSwI5Kr6AfABNETLfhRYXYRmfNcbVXpYoJ108j6z2Lk5\ns5f9Dz3wwYRhFbdiVRDN4H+xbLzHmn9ScALmSfM74ADxvpXan8fw1uCH+WD5SuWBeVI8YadRsgqY\nMVpxJUxDFjyDP/kDwOfy3ncS4v2iWMldnj7kpbRFCaIISwHLYbp+rrRiIN8C7TeRnvtgLgMOzfQO\nEUHqM94S7zcCRmG12y2BF782sCVwVahguRirJW8VvsDSs/4E7Oyl4Ytb41m4ftKo+nHoKq2ALXj2\nJp18OPBGuQHhOdIuGflawJRgZpaWNpZWVnjpdmCQCFkn2NTCTcDm0imrVNzCAvfOiFyIyItYffUs\nRCYj8jukpnr004DfNtLdsAa+DlzsdMETwq+BY8OAi6YSui13ZuC7V2PeK6VVJXnzALD6n/4kqwFb\n04AuYxH60X1O59NYXXkjaEYgXwcbYtJI2kUjH4EVWOROSwXyoFWvwJLvP489ijXcQ0E79FOsBfzg\n8iclG2ANRH8C/oPVey+HNYccBbwN3IjItYikMu8J8zL3wSSMlsCLXxw4liK9Xp2bijlGHtOk0ypm\nD2CSc/oB9nntX2X7unBO5wK3P/kkXwNeCPp13qwOvB8qVgo8CdQzHDuJB4CNwyN+T7EuOY2vS2AK\nsGqQcVqZhl2LlgrkmF74ZGjY6cm77GWUGzghcijW2XgVMBLVs1F9GtVPUZ2F6sOo/gh7rHsEeBCR\n/VIc71Ssi7MRLcu1cgDwuFNXmjGcDXxLvG/2d+ULLGzJHwfs7aXhP9ybp09nDD0nq4ANg9hI6pTu\nyqHKx1gy0pM2ziNocCAPss0bLJxj0KrUkpG3pbQykoVf7J7Uve7APNDXWfCKyH8DZwK7onoOSR19\nqrNR/TGwH/AHRL5baVPxfjBm+HR2TueeF9+g/BPCJOA97AmiKQSP8L2AGwCcumnYAlejZYKbp01j\n5KKLMrFB++8WyFX1HWAmjQtKjZFXTH78CiKTEHkIkW9h803XpUFyQgkvAmt78at78Zd48ZO9+Ku8\n+I164NhdEJF+InKSiPw7/HdCuDE3LyMXkT1F5BkReV5ETk/YbmsRmSsi3XwqMjCShXrhCzTGQKgb\nwfP8KmyAAoj8F9a+vy2q6Yc7qN6PZTtfDzeCcpwE/FOde72ec86T8GVfC2tP70JouPgt8O2ePq8i\nNgdmOKdTi15ruLwyejRvPPkk/U47jUbIKlA+IwfLyhslr+QfyEUWwSwTjscqsf4LOAS4ENWekFYA\nntviYbbDEo8XsSfse4EJXnyj11MWICKLYQ1lhwGnh/+OA84FbU5GHiaGn4Ot3o8EDhXTjMtt93Pg\nZqjLwL5gHgShOaKOfWXlMuDQ+SanfAvYDdXsZUKqr2HOfEcj0mWAhXi/GLag+Nv6TzdXTgD+7NTN\nqfD3K4GRodKmGeyBlYkWcx02OaiRAxM2WGQRZu62G5s0aP/NCOT3AaNEyHM82m8wh8OdUL0D1buB\n3T5ddNEN+8+fvxqNrSEHYMmPefG0szgZ+JlT1+nUPe7U/Ra72V/qxW/W6HMInIvFVaeqE1R1ArAr\nLL8jzF0BG16SO9Uy8lHYQs8UVZ0DXE75LOibmDvdW3WeT3FG3tOBfNIW01lhXj/+AOyHdsn+sqH6\nOrA3cAYixRYAXwSeVeca4aBXE178ACx7+HOlbYIGeT7Nm6y0B3BLyWtPAvOhYUEWYMflluMRGjDz\nMlSsrE/XipUCDQvkqryLFRLk4/wpMgYrADgI1YX9EKqf/Ojoo8euPmOG6OjRDa966uhk7XcGIsDv\ni1936u4DvgNcEQalNAwRORir0z80xEsAVPUj+MGZ8Gx/kOUacexqgXwYNuC0wDRK5uOJyDAsuBf0\n1Zrc8qTlPe4nAAAgAElEQVRTlgeWKTreK8BgEcrNaswdHctS4y9liZ/twMRMckrFHeqLmO3qJYis\nEV49iRbxVCniUOBup67ajesvwJfFl52d2TC8l2UxaaWLnW5wZWy0vLLDzJn8C9i+0K6fI2sC76hS\nziitkZUrYJLDDnXvRWRJ7In9OMpU9Zx5+OH9lps5cxoN7hD24pfe6iEO+O23mV3OrdOp+zv25HNq\no85BRJbFnrSPVtUydhunzYX3XiPdgO9iclnsTLOTs4Hvh/FXQu3SygbA09phY7RUmYdpXT3l9/Hz\nuf2454xd2Fg6c6oYUJ2ISU6XDbn22s0xHfq6XPadA0GW+AY2xzQRdW4aFgC+3OjzKmE0Vnb4cZm/\n/YvKQyDyYMd33+UW7Hu4dc773hQbr1eOp4B1gt7aCPLSyU8FHsTkg3KMeGPFFe8EvoJ0swXOky+L\ncv9z6zFQfMWs+1TgFC9+eIPO4TTgFlV9oMLfR8AqtwLfzHsKFFQP5K9hnVkFhmNZeTFbApeLyMtY\nCdsfpUIJnoiMLfrPlfy5WFYp0DPyisguwH5Lz+Fo4BNgmxz3/hvgnU1eeulC4E/qKurQzWBrYHm6\n68+VOB9b0OpJyunjBSYCq3nxuVd4iMhqwJLYQt0E8pdXKgZyVf0Ekz/WzfmYBe4FdqhrILPICsAp\nJGfb674+aNBDWP16IxOAb/RT/ohVMpVN/Jy6l4ELgEpFCDUjIitjCdEPEzZbF9a+D4txY6rszxXi\nJHw/VQdztUD+EDBCRNYI2cEhWA3vAlR1LVVdU1XXxHTyb6jquDL7QlXHFv3nS/7cnEAusjgWoE5Y\n7lN9H1sHyO9Lpzr/1wce+M2H1ltv0yvHjn04t/3mwzeA8526tC3DtwArifebN/CcSimnjwPg1M3F\nBk6kqd3PSvGg5TuBXXLef1JGDo1d8HwVmEN95b0nAtejmmQAVahYuZByfRo54MWPBFbCbvbPkRwv\nfg0c4sVX7uKujW8Df9fkdbVCGealwOFJO1NVX4iT8LNUMwoSA7mqzgVOxn5ITwFXqOrTInK8iOSd\nmRVXrBR4lsZlJQW+DTyD6o3h31cAB0un9M/rAKeedNKYld57b9JBd911VrhxNB0vfgVs8TW114s6\nNw/LanokK/de1say4icTNmuUTl7sr3IPMMr7XD+7pgXyokETtenkpo1/EzirypaFQD4e2AqRwTUd\nL5kDgKudunlUiRdO3ZvYQJnctPJgcfxV7Mm7wjYU15BfA4wWyddxtWoduaqOV9X1VHUdVT0zvHa+\nqnazXlXVY1X1mhrPZX3M+a2Yxmbk9kh0GvaICIB26DPADHKqtQ0TxE98cZVVvo/dkf8nj/3mwNHA\njU5d1kqjC4FDemgiyx7Arc5p0lrNLcA2XvzyOR97QSAPtgBPk1NHpAjLA4Mw7b0SjczIob4Fz6OB\nf6NaruIGAPF+ALACMA3Vj7HS5Hp6TCpxABYcIV28+A1wjJfcFu2PA+5U1aQSy4HY2uHbqvohZvmR\ndqBN+3R2SqcsBqyCeSYUE4z266pNT+L/gD+jWmrqk6e8sivw2bz+/e/FHkdPRKSpAxvCIucJpFjk\nLEWdm459EXti0bOirFLAqZuFVbTkNukpZEurAY8Vveyx/oA82AR4MizoV+IJGlta2SWQS6csKZ2y\np3TKkYlDya1D8SQSMtDACOBFdQtku3EstAXOhbBwOQwWdN5WDeRO3Sth+4rfX+9lae9lb+/lCO9l\nw0rbhQEg38YkmyTWA54NT0JgTyh7V3lPJloikANrANO0Q7ssBKryHuY0ODT3I4qsj9W/nlnmr1cA\nB+Q0z/Mk4I/qnKI6HatiqfbBNxoHzKV2j+2/YAZbDSOU++0M3JZi83HkK698DnggSIsF7iU/L+9q\nsgpYtr5C3o/gRTwJDBVhsHTKgdhC4X9jwfY66ZQ7pbOsCdzWwBLYjS2JUlfH2wGH5FrGuQtwZ5BV\noJD4+apNYucCJ5ZrJvNejsCu/XexYHuz9zLeeyk37GM08CG2mJtEsfUIWCDfI+UkqPbJyLFFl0pW\nl42SV8YCvy5X/6odOiWcz671HEC8Xw0LRpcWvfxbYD1Ecr0jZ+QE4LxyNbcpuRlYU7xvxMT3AtsB\nzzunb6fY9npgTy8+r3K9cv7j9wHbei95dERWDeSqOh97ImjIwnJ4GpjEEXucBfwC2F87dCft0MOw\n3+PNwCTp7NbJ/VXgL2ii3AWlxQuqb2IdnqNy+r8AFsgXlD6qc28D8zBn0iRuwWSfLiWl3ssZWFzY\nyzndxTk9DCsZngRM9L7bk/RxwF8047VQ1Vew5sktqrwvNa0SyNehsl6YfyAX2QTLSs9J2CoPeeV4\n4FJ1buEgadXPsE6zs5ux8OnFDwV2B/5W6z7Uubnh/cfkdFrlSCo77IJT9zq2kJSXh8gOlATycEN5\njXx0603pKttU4mGsvLcxjP7h+6zy0JeAHbVD/114WTt0nnboWcAPgJulUwYBIDIAOAgbOFKNDele\nhXYbsFsepx6y6dFYRVEx1SpXCFVaf6Ho++u9HIvZUm/vnD66YFunc5zTH2FP7jd6LysAiJVf7oN5\nzFSjXEXeXeToedMqgTwpI2/E6KsO4CxUZyZscxWwv3TWVrwv3i+OZS9/7PZH1ZuwG9fXa9l3nRwH\n/NOpq9cI6iLgKPE+T8+OYqrq4yXkUr0iVpGxKeUflydSZ0dk8DjZENPAq/EIOWZtXc6jU1Znh5/v\nyeX/elU7tLQ3BADt0IsxmfGvoUnuEOCuYEFRjXLB6x5g+3rOu4i1sfhVakL1FOkGc/wdONiLXyxk\n2r8Axjinb5bb2Dk9D0ssCsnfocDNwa2yGpWuRZpA3lbSSlJGPhn74ueDyLrYBUwceKwdOh3Lmmpd\nRDsQeEKdK63EKfB94H+w8qUewYvvjz0lZF7kLEWdewqzU/h8vfsqxXsZjC2WTcrwtnHAfjmYaG0D\nPKFatpM0D518PeA1VZKSiAINCeQhKP+Z+Yv8kld3XKuKDcb/YvLCAcCR2A08ef+WxKxG9yA7Cdg2\n2NvWiwN8GXkwVbxw6qYAT7HInL2xSqyfOKel5c+lnIbJa/tgCVHV0l0RlsVknNKZpfcAO+TlO98q\ngTwpI38SGziRF6cC51LWD6Eb9cgryb4qqo9jPug9ORNzT2CGU5dXY9Jfacyi526Ad06zdMFOJh8T\nrW6yShH3Ajt6X9ePb0us0S4NzwKrBB+PPNkHWJVFPzkL0+or6tbaoZ8B3xj+Ab9Tu7bjU+x/XeDl\nbnM6Vd/GBkDkkZhtDdxf5vUs8eJv7H/d6Vivwu+qbRxsIo6fMoVzsWqZO1IcYwPgmdI5naF56BOq\ny8btkZGHxps1sVXzckwDlhZhYP0Hk6GYxpekjRdzNbCXdMqATIexzsdVKePvXcIPgW81qFGiHJWG\nR9TK5cDu4n3elRVZZZViE616uzx3pHI1z0vYbybVSL8KbEXKQB6qZv5Djgue0imLAL8ETg1VYlXr\nybVD7z75AWY8sCovojo7xWHKSQkF7iOf6p+tgQfLvJ4+kG/x8HV86ZpRvDq80zlN1d3snN5+/fV8\nuvHGPKNJw2YWknQtHsC+D3XT9ECO3dne0Q4tO4Q41F7mJa98E7gM1VRNMNqhb2O6aKI3QhlOAs4P\ni4IJB9CXsMWShjcJefGrYw0tV+S1zzCqbjw5tl+HbHd3MgbyQF1liGIDEralQiAPjUn16uSpA3kg\nb3nlS8A7LMysUzUGnfgg/X6yE+ukTGrKLXQW+Dd1LuB68Utg62blXEpfBxYV74dU3dGvvrs/Hy77\nFkdfUn3bIm68ETn2WDbyXtLY4iYF8tw+21YI5GmmbNcvr4gsjenDWWu4M8kr4v0KmJ5Y0d+7hJ8A\nR6Yd3FwHXwcuderKab/1kLe8shHwsXOa1PVYiXuBNb34cjW/adgEmFZlAatmnTwsdG4KPFpt2yJy\n+7EHbfx04OcFl1FCWWXioAmRNQfMYeXb1+JW0tmwJgWvx4B6hzxsCjzr1HVL/sJEqyepkvh5L/2A\n/+L+bc/Hfq+pEJGRs2ezxCabMAlbM6hGvYG8PaQVTB+v9qPNQye30U+aOUBcBzjptLKjFBwL3KTO\nzUi1teoM4E9YqVdDCPXVx5HDImcZ7gCGiPd5dSGmLjssJUw4Go81etVCkqxSoJ7W9pHAqxU8yCvx\nMPll5LtgevANhRdUSVNWeQhw9exF+CVwcgofotIGmGKeAEbW2RhU7akmTbzYC/iEa770S+BzwXso\nDYcAV/Xvz2+AU8INIYlqgXzzlI1BibRTIK9dWlnYVty9FLAK2qEfYMGqqu91mDR/ItmHR/wKOBiz\nTm0EXwSecVqxgqZmgpHWJeRXU55ZHy+hnjLEco1ApTwGrFGoJ87I1mSTVcCCwBpiT5T18l/AL7Wj\nmx5c7eb0ZeBy7dAHMemiotQYxhmuSaU5nVby+yr1lRRX0scLpJFiTwV+5T7c7yOsFr2qfBoqTA7B\n5EmPdZ1XrGoTYQDmzFjWh0Vt8fd9rCqoLlohkK+OTQNKYjKwUR2eK9sBS2FtwrWQVl7ZHfiIbGVz\nhdX8C7DH3kZQy80lCxcDh4n3dbVfey9LYRp1pUEFabgF2MFLNlOv8CNNqlgBwDmdiwXjWjoUtyI5\nAHUjjAx7ijrlCOmU4di1vbzMn++lUk2zyJrAyix8UvkdttZUiRHAVHUuaVG0XnllM5LlqcSM3HtZ\nH6smuTK8dDVWLlyNjTF7gn+H9ZJzSO4F2QB4roqnTjV5pW2kldWoHsjfxErLavVcOQkrOUzru13K\njcA20inVFkVOBP4QdLqs/Ao4FCnr6VAzXvxG2DpEwyYTqXPPYRUd9U4r3wl41DnNIj10wan7ENN9\ns57LOphHd2m9bznupzYnxKwLnQUeoP5hJ8diWXWl+vhKgyb2A25gYYXGNcCm0ilrVDjOJlT3kak5\nkIdeiHXpbnldjCV+lT1XjgH+VlTeej3gvPhqZZ77A9cUteRfCTjvpVJcStPBm8saSCsE8qoZeahc\nqU0nFxmCmd9cVMO52fE7dBZwEwmLIuL9GljXWpqW3TIH0TexBoO8s/JvABcE/biRXEz98kq9skqB\nWsoQdwTuSeGbATUEchEWxx7307Tm1328LsfulH4EX5AKm7yMZX5rlvnb/hQlAdqhs7Gs/qgK+9qM\nBgZyTIqd4dRVbKhS594CZmOOql0IXjlHY4v0AIQu57ux+vok9qdosI5z+hFwLXBEhe3TXIvJJHei\ntn5GHtwFhwDTU2xe64LnV4CrUX2vhvcWU01eOQG4RF1dVSG/AA5HJJcJJkFeOBSTbRrNFcDn66wp\nzyuQXw/s7SWTfUBVWaWIB4BtUix0FbMJ8IIqtXw/7qe+jHwX4D3t0EfK/bHioAnzE9mK7pLkRcDR\nFWbbpslC67HoTVpILabSAOs9gSllujgT5RWxJ+U16b4Y/hfguApNYmlcLp8mnaVAIs3OyFcFXtcO\nTa63Np7ALkx6bDX4a+RTrXELsLF0dpc+xPslsIynvmYbq2C5iPyy8sOBCU7dazntryJFNeU1dcJ6\nL8Oxm3qW0ryyOHVTsae8LGWCaSpWbP9O3wA+INv0qu3IunaykBeBpaX2G/xh2IJ0EuUWPPcCJtDd\nruBhbKGvnK6eJgudDixObRa9G5IukD9O+XhxNOWfzq8Hdgs16uXYF7ipxNoYrK9gUUoae0ToR7pA\n/gKwar0DmZsdyFcnnSYJ9gPP2uG2M7b4WHdLenik/BfWGVrKwcAj6lypt0QtnIXVlWdqUigleI6c\nSA2VOnVQj7yyO3Cbc6m65dIwjpTyShieO5B0AaJAVrlje0y7z0yQe2rKysPQlv2xebpJlAvkXaSE\nBedjNeh/o+SmLd4PxYJaWROuhTtQxczwanE1TRvIu8UL72Vp7HvW7Vo4dW9jQbfSkO2y1yIsel5B\n97iwBvCBKommWmEx+yUqJwWtL62QbqGzwBPAukFrTMuxwF9TeCenpZK8kuyrkgXVN7Avxrfr3NPn\ngMXobvPZSG4DVhXvSz2s07An+cgqBcYB+6c00Sro41kWw3sskNd4vAKfB57WjsTBwGC/r2EiFCxr\nF8OC3g0Vtv8n8KWSmvJNgcdSLvbX6mqaJZCXLiLuA9zvXMWGr7KdwWEu5w5U/n5eCRxcIq+ktSqG\nHOSVZgfyNKWHAKjyKeamlk4nF1kOy8j+XuvJleFOYE3plAV1n+L9Vlit6E05HucXwPHUZ5Z0InBu\nHcMjMhMsCS7FHl9TExagdiPfQP4YdiNLc1PZCVvsykLqwCrCqlgjTrUO5lyOV8LBLCyzq4gqc8Mx\nCjazDng6yH3dt+/QF7Ca8mL5Ko2sUiBzIA9rHiNIrlgp3v+wktmyB2H21JUYB4zx4kvj4u7AfWHe\nZjmewKSm4pLULNfiaSp/T9smI08rrUD5u2wlDgbuSOurkoag5f8TawoocBJwbmiMyelA+hIW1L5R\ny9u9+JUwfTPNAIC8uRg4UrzPYlW6DbYAlcbnOhXhBpbWe6WWQP4oMML7VN4j2wH3Fc1srIUHgS2D\nH0wqgpf+flSXVQoU15PvRxkpoYR/0nWBMEsWWktGvjrwZhqbiZBUTA7nVCyr/KvSe5y65zAptjTG\n7EdC+W6RvHJw0ctp9PECT5Eu4ahIswN56ow8kEUnT+UXXAOXYZUgiPcDsa7JRhznZ8B3kFTGPKV8\nBRse8X7O51QVdW4ytpiVZRLMnthosbypWoYoIgMxPTPTIqtz+hn2Q03jXrc9tS90AqA2kvAVslV7\nfB74T/DWT4Pp5NYclRi8Av/EZtsW4kiWLPRZsgfydejucZ7EIyyMF3sDD6QYHdhlbSXcOPehupPp\nP4EDi+SVzYjSSkWKP5jKiGwQ9p3no3qBicCK0ikbYjeLcaFuNV9Un8CaR47J8jYvflEsk+/JRc5S\nLiabvLIXjQnkdwHrh/F2ldgBmFSmGiENaeWOevXxAll9XvbD6pzT8gCwyfOssy1Wh51o6aAd+izw\nLrCteL8kVp6XRvYAk5lWz+i5kjSAphzFid8BJMsqBUoXybcHXg3+4Uk8ic0L3ViE5bHF87Tn+jyw\ndgXPldaWVkINalZp5TFgExGqPbYfC1xCbT/ORIJPxeXIIkdgAbORre8/A75HhsdpzKb0Jaeu7jK+\nOrgM2Fu8X67aht7LEOwHmkeg64JT9xl2M08y0apFVilQNZCLsCS2rlNLR2cpd2PnW5WQJe9L5cXK\nboQa9yc+ZNmvA9elLBK4BvMh2hh4ttswicoHm41NmFo77fmRzim1mEeBzb2XRbEehWpZNdiT07Bg\n+wzpnkwK8krhJrA58J/SYRKVUPOf+RCzQqiJZmbkg4FZoWsyFcE1bjpJZUs2RuoIGqsPX8LAbb+K\n6ruYv3JjUJ2IlXIdXG3TImywcxNR597BjMbSnPfuwJ0ZpwFloVoZYt2BvMrEoK2ByTU2ApVyN7BT\nyvFgWwAfhEXJLNw7lDf2oLo+XuBGTHqoZmRVjhdobCB/Alj/A5Z1wAuh/j8Rp24edvMbE65z2bLD\nClyPmW9tTfa48CLlr0VrZ+RYNl7tcaUc1RY8HfAGWnX+Xs1oh/6HYQcuxjsTfY2+Klk4E/g+KX68\nXvw2mB9N2i9eI0krrzRKHy8wHvPR6OYeGMrKNiB7ACowFfMASvKSd5hTXt2Ex/tZpNOWx5AuA+3C\nXtz09ABmDiL9E9JDwCDmfDia7MHrZcrbAlQiUyBX5z4BXpzJgCOxG05aCovk62MmWWm17ruBdZdY\nYuZOZP9OVQrkqWhmIB9GtcaB8lQzmTmMfEsOuyHej2CZ9frxzJnDG3mcwM2Y9lbNBwKs9vx3Iato\nNuOBEeL9OpU2CC3utU4DSoVT9x72oyq3+Lo98JCqflrTvt2CRp0kecWRUyAPpJVXMskqBS7ga4Nu\nYF+EdL0XQWocD7oD2QP5S6S0cA1mWUkjISvx8DJ89HmyXYvbgG0GMOBgYFxK/x3CU+UtIrodtWXk\nNdvZNjOQr4IZ2melshOctbl+kfJWnXlyEjr3z8z7eE/plOUbeiT7Ev0M+EFSVh6m4uxJYypoMqPO\nzcEMxJKy8q2Bt53TLAvetVCpDLEeWaVAxUAuwhJYbXGq1v+UVA3k0inDsKA3MevOhzF9l5vZ802y\n+BotudoE+i0xiGydsZAhkGOJ39tZJ1yN4oGX+jF/OSwBTEUw5LpnURY9jIyuoU8+ud1dwDJkW5SF\nNpZWhpHOLKuUh4DNRFiszN/2AR5FtWHeIuL9AOBIFhlwNnbnzqJf18rVWNNRec9o40Tgb8HJrVW4\nGDgqDNwoRxdnvQYyDtg3ZHXFNDSQY0H8qYwTgapxN7BzFZ18X+DmlB5GC7Emuu3Gs9ftJH/XurLR\nT95j5vNw1+hyv8kkXiZ9IM+qjwNwHBcO+DejZqcdrlzgOZ6b8DEfr4lVPqXmzDMveX/kyPv7TZgg\nWa/FS7SxtJI54KryEfaBljPEOZxabWTTcyRwlzr3Cma+c0yDj0eovjmLCuPgvPilMHOw3zf8XDKg\nzj2GTUDZucImPRLInbqXgTcoCrhi9fmbU2d9N+bjs7H3ZU2PRpOvrAL23S/IDJXYhxpkFayy4953\nGOTJEsiXGr4hn0x9HXNZzMJLwJpp1n/IXnoIwAie3+xudloiTQVVMZ10zh/FKJ3AhEw3gOnT1xm5\n2mpPzyD7XNdK0krLZ+S1SitQLgsSWR7YFcteG0Iwqj+ZhQHzFmAt6ZR6xlal5WJgE0TK1dEfCUxy\n6uppAW8UF1HmZue9rAOsSCOrfrpyDV395EcBT6qmr5oqh3M6C2tuKfe5OHIO5EGv9VQwdwrW0Dtj\nT4tZKVRoeMBlmMg1is/eu4t06zgLsSanzyD4uySzBjAly+69lwH90G0fZstHMBkvNdOZvvMWbDGN\nLDc0Y+shQ6beTfbBJjOAJaVGW45mZ+S1SCtQ/nH2AOB2VBvZzbgLdof0ANqhczBvkWMaeEzD6m5/\nTUlWHuSC72L+LK3IP4D9gyRVzP7A9VkfeevgKuCgIh+NXcgvyE6i5PsY9PGtyVcfL3Ab1rVZjlHA\nS9qR0ZrCGnP2Aq5XZQpWHZN2Tu7WzJ15CbBXBY/yJNLKK1kM9grsCDwyk2XuI4NPjYgsBYwexajL\nyTCgJNz4Rq266nP/wBbxUxNu0DXLK80O5Pll5D0jq5wMnFNScnghcFTIhBrN+YBDujwBfAkbhdeI\ngFE36twMbGBD6XSl/Unwvcgbp24y5qNRWCjfFat1z4P7MT+VYrYjf328wG3AbhU6AXejttm0OwIv\nFq0v3YFdo0TE+2HA4vRb7DbMwjZrIDJ5pTpZLK8LFK5FVsOxXYGHV2GVK4D9Ujpogv1/n7nDDuPG\nYwO6V8p0tnajKh3A3rrSinTKUlh95rs17uJZYKAI5tktMgzzNshSK5oJ8X51bHHs0uLXtUOfwnTL\nWie3p8c6wH4PfB8WeI5/H/h5T7oc1sBFFD21eC+DsTWOnrTYhZCVi8iAcPzMVR0V6JaRY4/WDamP\nD/Xkb1Fezqk1kJd2MN5BOs17O+ABPeYiDcet9KRQibSVK1ntPKAkkCfM8CylIDE9AQjpK3g+B9wX\nBnTfScasHLtRlQbyVDQrI18FmB4M6jMTWl+LyxC/DFxLjfXAKTkRG+VWblbgudiot57gHGAMImtg\nmcMS1Law1ZPcAGwc5pqCVVXc5lxDP69yXAUc2J/+O2P143l0W4ItVC3pvQwrei1vf/VSuskr0inL\nYME929PZQpOs4kayCcDOIlSzh9iRhSPykiSfSrxCckNVwb52KBme4EM2vDrwoDr3GvAJKW4YYp3h\nY4Drihw008orO7Dw2t9Kdp28XCBv3Yyc+vTxAsWPs4fTwCYg8X4pzCCrkq/KNdgYuCyjv2rDZo9e\nAHwPy8bPcup6SmeuCXVuNmbzeWR46SDsmvU0k4FZK7Py4eQnq3RrDBJhKBZEHsjrGGUoFzR3Ah7M\nYnsR2BjLPJ8ovKDKDKxzdcsq7y0ekXc7MFo6M3kDTQOqNdYNw+xr0/m4GLsAd4XsGLp6rSexDfCm\nmpU0ZAvkxTe1W4DdM851nUojM3IR2VNEnhGR50Wk2zxJETlcRB4Xkf+IyEQRqWa1WU/FSoF7gJ2C\n0+FKZKz3zMjRwH3qyleFhDFwfwW+3sBzKOY3H7LBETBvfcygqh24CDh6vF9yEPaD6nEbgZBhXTWb\n2buRYyAPFCcWuwN3hGENjcIDo8LCXIFaZRUrA+3ewZiok4v3y2Ijyh4C0A59g3TBv5ip2OzeJGpZ\n6Cy9FndTuQy2mNKS2LuBEV584rzUIPMOxVwQcU6nAO+Rbc7wq1S/qZWlaiAPjxrnYI+KI4FDxYJn\nMS8BO6nqJsCPgT9V2W09C50FJgGbzWKpo4Er0NxmPXYhNLOcAvyqyqZ/wiaL1+Ifng3VGc9z8pur\ncMOzGbOUZvIQ8NnTbHAacLNzWk6iajgTmHD7TGYOWp3V83AjLKZYJ2+0fwyq+hHmO+SKXq4vkHen\nmk6+HfBweOIqkFUnn0r14JVpoTOYmH2ertfC0/VaVaLLtXDq5mCfZZKDJpg+PkmV4jh0C9nklYZK\nK6OAF1R1ShgUejklC3uqOikY34M9Tla7w9YtragyS5j/GPa43shqlTHYxPR7kjbSDn0JC1YHJm2X\nB178Rh+x3nJrc95mNU4i73FCpc/FK/DeETTeQqEiP+bHQzdgg48v4qK0k6bS8iCw2W9+M3pxLIg0\nUh8vcAMhwEinDMV+d9luUCLDsaqRct/vu4BtQillOYqlhAJZdfJ3gcWRxElLWRc618Gapor91CcD\ny4v3FWOTiKyHtdeXDmtPI6/kcS2mA0Mkm0c7kC6QD6OrS+G08FolvkL1+ZV5SCt8iWue/ZillqT7\nhc+TU4FfpXQ5PA8b/dZozoD+Z/Xn038B3+qB4+XCV7ng1sG8NfRMvp9XtUhmFN11KEMnkrO1gnP6\nEcRmhf4AACAASURBVPDixIn7fxl4S7UmZ8+sXM9Cu9VdgQnakfnJdD/gxnLe/aF0cjKVteVifbzA\n3cAW0plqBF7BS6haVp51bsFuwO1h7cIO49x8qssr+2MmWaVrTuOBnco5aBZR7lp4YJT3XeSvioTh\nJjOw+JiJNIE8dWWJiIzGFgW76ejh72NFZCzj2Y4bGZx2v5U4gx8tewWHzExpgJ8Z8X5rLBtIO/Pw\nBmCwdEppTXFuePEbY4ta52JmWidhdqwtz+H8Y+fJbPjqrexxUBNPY9fFWfxc4JAy3iv1cv/Uqetl\nNlqqg2ewST6bkb+sUqCsTh4mAm1Jid1tWGh9iHR6dIFpJD/FZ83IK10LT7K8UvZaBP+iB6hQThgm\nAq1PSZdyuLk/Rrbu0FeB/RbESk4dkuZNaQL5a3S9Ww6njP1sWOC8ANhPrbKiG6o6VlXHshdz2afO\nqfMi/Tbiye3P44SBIqS649XAqcBvwyDXqoRs6OzwvkZxBvBLp24Wqs9jX9ieKn2sl0PfYvAfgRMz\n1PTmhoisBSxzLdeOw5qosgSbNEyaMmXDbeihRqfQDTgOYQy1BHKztdiWZBnodspbAH8OeFydK9fw\ndFuF91SiWkae2vLae+mP2ReUW8z2VPjMRWQlrJN1QoVdJ81/3RnTx8uV02aVV14F3l0QK/nVjDRv\nShPIHwJGiMgaIrIYNkG+S8WBiKyGlZMdoZo8kSS08A7FTIzqYcd+6NuT2egxunfV1U1oAPo88OeM\nb/0r4KRTavYWroQXvwl2dz+36OWfAqfUOKS5x/BeRgLD1+W5X2P6ZVYPizzYC7g5PDpfik2Syo0L\nLvjpG3PmLD6A2gdV1ML1DOEg7Mk5y2BisOtxd2g0q8REYH2Rbk/QSTeOrMGrWiBfhfRralsArztX\nduD0k8DA0I1ayr7ArWpWGOW4HtinwlNcUhVULdeieMEzn8XOoNucjN21nwKuUNWnReR4ETk+bHYG\nsAJwrog8KiJJRkgDgHk11LqWcihWeuepYCBUJ98G/loh46iIduhMLPg3QrvuAH7h1C28djak+d+Y\n+2Ercxxw8dfdc3OxwdAnNuEc9sL0TrAF1y968bndAC+77LRNtttu3NwJE6Ru2TAD97IGa/EpE2to\nsKvqPqnKZ1iWWiorJAXyR4BVpFPSzqCsGMi9+CWwBch3Uu6r4nkV6eTl4kXitXDqXsFuJuWSxqRr\n8SCwWoZ2/TRVPN1IVUeuquNVdT1VXUdVzwyvna+q54f//VVVHaiqm4f/RiXsbigm6NeOreoegP0Y\nbyN7B1Xy7r0fhLWU1zr78hzMfyW3oRNe/LZYs8K5Zf48FhsH1yiJqS68l8Ww6qLC0ItLgD3EJ063\nzxWxoSM7YR13OHXTsR/ZmLyOodp//y22mPAE2Xw96jymzmFD3uGxso/1lbGn67QDiW8C9l7wVu8H\nYvXjZRuegsQ4gRReLYGkWvKVgdczNL1Vk5huwcpDFyAiS2PaeTW5t5u8IsIwYAgVxsGFhiRPeqlp\nOjUMYW5GZ+dK1C+r7Aa8gOoU7NFvhAhZDWqS+A5wlTpXyyg6tEOnYV+KXLTr4KlyFnBG2Qkpqo9h\ni07NyHLTsC/wjHP6PIA69wFwJXB84rvyZSfMtrbY3yc3eSV0c47cfvtxN9EAqa/icTtlEYaxIvel\nmuNZzGjgGbT6QGLsKWZ3EQqywmjgHnWJPQy3kz6QJ3V3ppZVQnXINiS7Wtr/l67DTnYHHqy0tlfE\nddhTXPH6jlULda0fLyWLvDKdrlUrLduiX39GvlBWQZU5mEFNLlm5eL88FoB/XueuzgROkU5JKllK\nyxjMu/vihG06gO+1aAXLcXQfQfdbbNGzp7T9YlmlwDVYWVkaP+xqHAjcuOSSsybSgxk5sCX9eJkP\nWU9EksqCSzmQlN79oZRyBrBVeGl3qi+s3g7sltLW9jUql9xl0cc/BzwWqkXKEgbCvE3X7tODSFeZ\n9ii2vlPcrbk71b3fbwM+HxqVqvE6bZSR1x7IbVFvDJbRFbgJ+6HmwUnATepc1iGvXdAOnYw1VNSV\nlQfDoJ8BpycOVVadjC24fLOe4+VNMJLanpIfijr3FCZtHNVDp9ItkIfZjDdiC/j1chjWmPYAsKX3\nmfxG6mE3hNuwAoR0zWgmTX4BMxFLy3hgr1BttA/VnUZfAOZjEkw13gOWrLBgnyWQp63cGU+IF2FS\n1N6k8P4JFg9XYoGfYCi2F+muxRygtCO+HK8DQ4ssils6I69HWtkbeLjkkfBmuj761YR4vzS2yHlm\nPfsp4ifAd4Ntb60ci9340pRrdmIVLJnGWjWYE4DLwiSdUn4BnCo+93ruLojImthifLkBvH+jzsEg\nIqwFjMAcHT/ASsg2rmefGSgErytIf0MaDbyEZhp6XdDJNwdmqXPPJW0cFl4rlS6WbKyKxYRymWhD\nAzn2JP+oqqZNLq8CDg7yyrbAq6rJpZGhMSmVvBKqZj4k3dSkBbSjtLJAVikQLuRrLLS1rZXjsXmc\nT9e5HwC0Q/+DeXDUZKblxS+LBefTUvmNqz6LZQen1HK8vAlzLL9O5Vmid2MzPVNPYamRfVhYdljK\nbcBKXnwWc6NSvgxcFWQ+KD9oIneCbLcVdh1vB9YNpcDVOIhs2TjYWtS6vLfoIaRbIIW0gdyoJCmk\nCuTeyyCsNT+N4+Q9wMiwaJv1WjzCQnllX9JbSGfRyTPLK+212Gnz7D5P+cegLivrmXdtWu2pWF12\nnvwIOK1GM62xwHinLktd8o+AkxEZWMPx8uYQ4FHn9Jlyfwy2B78ATmtwg9AXqNCkE+Sqv1Bj+WYY\n71U6narcoIlGsAPwiHbozOCDdHU4l8rUJqsUyhBvYb4cTPrgdSfWU5FGZqoUvFYmXUY+GrjXOZ1T\nbcNg8nUX778/hpSySoGCgyZ2A8gSyO8AdgwVXNUoXvBsaWml1oz8C8BdlF9dvg74Ys1nZRUf/1bn\nHq1jH93QDn0M+2Fn0q69+A2xkr3vZzugvoTp0T+otmkjCQs738YWNZO4Blie7AMJUiEiK2DGb7cm\nbHYhcKgXX4sEtgnWG1Hcqp51tFitlEoJFwLHSfJU+lpkFWOjD+5kyXmrknJwhXboDExmSmNrW1dG\njn1/sgycvpZ77vka8Jimq9wp5sqpLHkY6GBSNn85p+9gDVtpvhellStVaa+M3B5hK/lvPwAsJ5Jq\nQaELwVf5NOCHNZ5XNX4AfE8602XJQX87B+h06rIN0TXGAsdi2nCz2BELcIkugOrcPOx8f9ygrHwf\nYIJq5QY0p24qFnxr8YD5KnBRmFpV4ClgSHjcbySlgfzf2FT6HRLeU4usYvzkiSV5YEUY7bI8XaaV\nV+oN5FktCsbx6KNbs9RStfjiPOIZsuwgPptY8rlXI63Fb/G1aL2MPJQi1Va1IpI4kCBc0GvoPuQ3\nDd8BblXnnqzhvVXRDn0O+/H8T8q3HIItzp1X2wH1DSwTzlsmysIPgLOcK6tLl3IVsDR1SGMJfBG4\nNsV2F5BRXgkeP4dRUloZ/j9PIjmg1oV0ymDMfnZBRhi8Vy7Eyj3LvGmBrJLWBK4ry83dj4dWeJxs\nn9Md1BjIg9vg4tg6SkW8l7WAJTGnxnSMHv0x998v/PSnFUsVK+HU6U0MnX04r2QdVZhWJ2/5jHw5\nYLZ26Cc1vPfLwA0kZFbYFzSTH3hY8PgWlhU2kk5s8ERilhxqmn8DnOA0nVlXBX6FTVBK6rJtCN7L\nFljVxt/SbB9apzv4//bOPMyK6trivw1iR0FFgxqnJ9H4fA4RfE44HwwKGo0TOItDRFAGlYiiUZs2\nJPoUgygR44Q4AxoHHOIEBxUHNIo4K4nGWcApTsi03x/7NN6+XXXr1O1uupG7vo+Pr7vrVtWte2vX\nPnuvvRac35hZeaCWdSOujnkfsJEXv3mOQ/QEnlFNVOZ7DBtCaip0A6ZqdT352ZuAAyV5nqAH8GYY\npMuFMIW7NU+seQ35SpiPAdtFzFMkZeTrAB9GNPrrydZG4De0b/8WnTrlEfcCQISOc6haaV8+2qFo\nOCgL04AtvJfVM7Zr8YG8IfXx3mQHhmnAz0TYJMd+z8SmOP9Z5nlFIdQLRwIjMja9FLjVqXu6YQfU\nbwhKiZSumTYFzgJGOJcqQJSEO7HvY2Mac+yJUcvmZm0YnGCuJd907Imku2E1dSDfk4S6f6DRTSZ5\nYvVoTB6hHBwM3Mt/2vwN6F7CbKLu+Zj20PNkr06SAnme+nheCd/emAfv3mUMpfVahExYAZ1HnA8o\nAMFs/EmytaFadmmFcuvjIv+DaTGU9FkMY7ITyOrc1+7W+w0wI4zhuc+pPIwAOkmN9Ej6oxe/L0Zb\nO6eRjnc9VqLZP2O7RoP3shkm63l1nteFrPx3wEXifVSQiMCh1B0cy8IY4AgvPlMjR4QtMFf2tGGQ\n54D/8V5WzXH8KIQSZanm3uXAwDpNT5Os7U6+61GIQ4AJqswGZpJPpjamTl5WIA+ytXuQI5AHydqd\n+eijcVhfIS/99RCQidhDMe9AW0x55UebkZudW4KLSQLGAb0DLSwLFwBXqHMNdiuKgVbrPIy9Mlpq\npE6wCsFjDHBCop5KWQfURQSHI0QaKzhmYTiWjedWt1TnJmNB4pSGnkQQQvo1ORp7QUjrAezhnoXT\ngCsLuON192WrkWfJkbHlwKbY1GSabK3HJgkLA0Yv4OEUxldJiPcdMa3u2hXARPJNw8YE8jnA6tS1\nOVuH7MSvM/CJc5rnHj4MmKQm35srGIuwOaaP7oGbgV45FTRjAvknmOWb8KPJyG1U9Sjil4TPA9+R\nsZQT77tgS5yGaqrkglbrA1iwWuKiFOpsVwF3OXVpwvZlHlAfwpTZzmjU/SbAe9kOG8pKGwCKwenA\nEPG+oSJo+wFPq2pe1s8oYGCQRkhEEGg7mGQlykLEOrfnxV7Aw2mytaHpOQpr4tfiaCJ7Fgk4Fril\nwGR5PLCfCLE6Qs8CG4UGbTIs6ZgDdcTv1iI78SunrFJYYroT2CmHEudxwA2qLHTq3sdsJvMoaL4E\nrOJ9eq9MVecB87CeYhSWhYx8N+ALVGfGbKyKYln5MWnbhIbapcDZ6lxzuLmfCgyQGtky/Hw8ZhU1\npImOdxowCGl8s4siXADUOFdWMxsAde4t7PNrqExCvQngGDh107Glbanldn/gNlWyHhJNVSeP4Uzf\nAmwjIpsGGupm1BcNy0RQCTyOAmZOKK88RWTJTqt1AaY7tEfGpsXllbUwJ6dSyEU7FJHNwjEmA6hz\n32DDYkdkv5Y2WFI5tuDX48iR0QdGUwwNcTbEK7ou7UC+JtkfTDF6k79BcxNwkAhpSoBHYGO25WYo\nDYJW67vA2cC4O1a5Y0tMFOswpy4vnSnygPouVp/PGs4pG95LD8zZZGzWthEYBnQT78syDBGRNTB9\n6RjaYRIuBU5PYiQEymE/rHGdhaeBTrHmuzGQGmmDPRwy+kU6DzPwGIoF4ttQLSU7m4Y9gE/VuWK9\n7ZuI7EUFxJRXZkMdJ6KSgdx7WYls2dpinADcqFrHpPp64IQIxlQP4F+qvFHwuzuBnb3k0taPLq/Q\nQksrHTAJyTiYUcKB1B1/zoQqH5LSuRfvV8O0vU8NDbbmwjVt57X9FPtQz3XqXm3i4/0Z2ASRRtc1\nCWPHo4DTgpB+g6DOfYVlvVeVKXPbE3hEVXO5OxXgDuy76hL+diIwTZWSolEAoU8wk4ZrABWiCzBL\nq7OZOMBlbWC/hXbOfy3zeH2oL0EMNkm9swhR5sCELDRD1nY21NlfVka+CzDTubjPOZiL9KZ+I/4x\nLGC6jF30xZhNSxDcuiYS11epxcPAHqFRm4bia1ESzZGR56lZ9gSeQvWjMo41GhiQ0PS8ALhPnZtW\nxj4bDVOGTWH8n8d/N6PjjPbdzu32XJMf0LKxk4HRTaCOeCrwpnOaJecZDXVuEqb/fF4ZLz+B5OAT\nhaC/8ieK2EMitMMy3Oocu3uM7ACRB4m0wySo6uenw6Pm5qG5h90Cq2tPElbEqnyN8fMPi9zda8CK\nGNMnDXkDeXcir0XAwRgdtQ7VOGj+/AVLHhIRKM3bk1yuGwOcmOLnWQ+hMfsJ5i+ahhZdWsmXkVs2\nkIvGVoCpFD1lxfsdscm2M1NeszRxZtv5bdcd033M8YtaL5rQmLZwqVCdjNVJL26sXXov62ON1FOz\nti0Dg4DjxPto5oeIdMJqoH9v4LFvBjb2UufYAwGvSlS/JiCv+W4WupNDU6QaOlwEbaU8uYb+wA0l\nfGuvAU6MYYgVyNqWuhZ5A/k+ZGuBF6If6dPSNwJ7iPdplnMDgWtUqdf/cepewOr7eSZes74XLbq0\nEp+RW1NiY+LVxeogND1HEyRdxfs2GDNksDqXm4LVmAh88UHAgXNHzL0Ve4/XRbqpNBRDgO6INDi4\nBGGsK4HLnNNGH6hS5z7GlrM3h5JYDPoA1xXVQHMjDAhdSJBVEGE1YDD5J4CnAVt63/AHtdTI2hj1\nMEq0CpGNq2CrO63s9cdcx/J+ZaxcUIqBNBVYAXPmiUE9v8wiLAnkYTxfgEQaa2B9/JRkjfl6EJEt\nsHiSKMEbynk3kmCaLsKqWJn2ihKHGAOcFHMuAVmBvEVn5KthbiAxOAG4Hs2WpSyBccC2InTClsTv\nY9SpZkMwUR4LHBzoS2DBdX2M8920sLrxicDVQRa4IeiNcWoby4ijHtS5u7FVxJisZpRYT+VwGlBW\nKcJY4Jde/I6YoNokVRIledNQMM2XxdiIwd4Y7TC2aTkQuP5L+3x2E5E8Gum/BaaVmngOydJfiXfB\negDoWjxDUYDCjHwtYHaJ8fy9gQcitXzAZhOu0tLx5BLgt+L9GkW/Pxl4IMNAYgKwnRe/ceT5TAW2\n8z5VuqBFZ+SfB4ft0hCpwoLEtVmblkJYBl3C9p+OwL7UfUI9rFngxW+GUZ2Odeqeqv29Vuv3WD/g\nNKmRRnN1T4Xqg1hGMLrcXQQLt4uB42I0oBuI0zG52CyDjl7AdC1HojUBTt33QPUbtBsNegzlSwM/\nhHG/G4pfE7tCNfne3sCooPz4e2BkgYVY+kttsnYopm2fhXHAviLZjjZarZ8BL5I+oj6HH1grMWWV\nGNes2knOXlgdPP38nHsXY6EsycpDX2QwGdPfTt132EMtKhkLvqLPk05PbdEZeWx9/EDgRbQRluuH\nvXsDA2d1ZeZqF6pzpZ6oTQovfkOsbnuGU1evrhcoiQcC10qNdF4Kp3QqsC0iqXz7NAQ/yluBUc5p\nMS2t0aHOfYtdm/PF+12TtglTcIOByxrz2DNof8NoNvnv7fnsbtWydYIeArpHmu8mQmpkRWwpHssF\n7wdMQrX2O38jRrk9OuK1fYDn1LnMsoUqn2EMlmTFxfq4FzNkSEK9jDxpo0A73I34RucA4LbI4bAL\ngf4Fpbz+wGRVYlzDLsd07WPZJg+TTsmszcijsLQDeSxjZQDZU3Nx6PuvGr5pPZNTtm6KCbsohOXW\nVGCEU5fKiddqnY59cSZlqSQ2GJalHYqJam2a89XnY5NnTVZSKUYYFOoNTBDvk+zMumH12oY2Oevg\nNDr3+hdtPx3Oy7t48W2yX5GIVzA51thldxJ2BV7Xas2ew7AV7UAKBNqCzV1f4CIRSeU8B9/aoZha\nZyxGAqeIUBWx7b3Afin9oDnAWkHkrVRG7jDnqZLytrBEqqEfRr/NhDo3C3swnSVCeyw5+EPMa526\nT7DS7YCY7bFA3j3lb7UPtRZZWsnOyEW2w+rF5Qi+192V90cCezH7J3sDW4k0Kg0sCl78ptjAwgVO\nXeboulbrRCxAPio1ktZBbxyovoRR7CYEzn4mvJf9sIB6VI76ZKNAnXsQK+fcn1DH/B1wSRhPbxSI\nsC4wah6te7VB36FMDZggr/oQ6TdtDPLYih2DrWhfKvylqj6PMU2uKOEiNBTwMdn4D/tlBjZ6nqS4\nWIzXMB2Y+ubUqt8B3wOrUjqQH0C8b2gf4HFVTdOlScJ5QB/az78YuEc1h865PTxP8uLbRWz7LNDB\ne/lFwt++AFaGRVGruJaYkZ8CXB4pkJUK8X5LbELvID13y0+wL+ifRWhSx/ZCePE7AFOA85y66IEM\nrdYrsBXJI1IjuUxYy8BVWN1ybJbcrffSGWsk9nQuIjNsGozEaqP3i7ebRUT+F6uh39xYBwmUumuA\nKxepPItlWUO9JK4GYnAfZZpMh+x1f2KClw29nEM6u+YPmBxEvZH0II51EuXRcy8ChoiUjimBhngv\n6deiNhNNDORhiOYAbGirJESklvc/LGvbOufo3If8o/0tzG/Vm5xKpE7dLCzTzqTjOqeLsJ7ZQfXO\nwRKS2TA/xu+0hWXkIutiTYwGNTnF+9Uxt6DB6lwt53cC8CUJ9KKmgBffC/vC9nXqco+ta7VejA1i\nPCE1TaiRYl+YE4ENKfGlDc3Ne4D+zmnDtNIbgNCsPhN4Gbgr0OTOB/6kmkv/PAuDsGAyHJbcoKMo\nXxDsAWDHMmmI2wALIYq/3heYgWqim3wY3T8CuDTojgBL9IcuAy4ts5c0BcsiY1QR7yDdVq82kKdR\nlXcFPnBO3444TuD9x+k01UIE4YxOm3PYe18xxcf4jRbjPOBULz7G2vEO0l3NZsP8qHJeS8vIB2By\ntZm1rzSI91XYU+5edW6JlkqgSvUBfi9ScrqsQfDiW3vx52E1ub2cutglYD1otf4JKyU8LjXSqbHO\nsf6BdB7WTOyDSL0b0XtZG9P2uNw5LVfPutEQgnlf4EOeffZJRLai/MGxeggluLOAXkUytRcBm3jx\nmQJLxXBOv8ZKbGmNvlIwLfAUtcMlMDrpWWR4z6rqjLDd7aGGDFYW6UiZw2Lh/joLGC5CllP8E0AH\nqfnhQVKAWr2VtNLKwcRl4z/F6tt5pnBrcSKLZRUOev8IjPaaptmUiPDQv50443QPbOy9bJDwt9mw\noEUG8vSM3ISO+pLtoJO+C1NqG4d1fE8v/rsqs7D68zgRopYseeDFr401234F7BAmvhoErdYrsWXa\nI1IjjemeU3Qg/QgLMpchPxhfeC9rYhN5tzqnjTYR2lCoc4vw/lhGj+5Av37KlCmNMhkrwoYYI+do\nVepkfYGOeCRwqRffsYzd30k+m7TassohxBlCnAc8gOqLEdteixmW3yITJmyIcaiPKZCqzQ1VpmAa\n6SW9T7VaF5OuaW4Nz4RA7r20wsoQmYEcKyGNV9U3MrcsQEjyhgPH6q93fQgrk5TDhDofOM6LL+lW\nFqi7k0gorwBzW2pppVRGPgi4qxw/QViyNLwcG1DpXUIQayTwNTkn3bLgxe+NaRM/DfwqmBQ0CkID\ntDtwidTIH6WmpNhOAw6kM7H64w2I7BJMbadhASiGU7x0UVNzGO++O4cDDhgLTBfvS2lXZCLojD8M\nXKCaPAYfHs4jgBtLaZanYBLQLaca4nYYQ+ilkluJbI41OaPq26EG24+qqrbMnz8d1ZHqGp54EFYE\nEbzy8cChCeyVUjXy3YC5zmnJoazQMzmInDo9IqyEPST+oEqtiN2pQBfx/tg8+wr3/wXA6Ahfz9tI\nVpKcCwuXoYzcRJz6U6bre8jEr8BEaPZVly4Hq8pijEt7uEjD/SG9+A5e/I3YsEFvp+7cBpomJ0Kr\n9XlgW0z9zjdZ3Vz1KeDI/2zGPTKf6cClzul5OY1tmxxiZYSLgZN1r72GYcvoB8X73uUYOIuwBjZC\nfrNqZgY2AviWnKtH53QulgXnaXoeDYwvWVYRaY01x89HczShp0xZwN13v8PHH1fRrdvqJZgs0VDl\nBSxIZ63engZWAopLhrOVVmk18uMwydlUiDkMXQmco6qfRZ52bXP7SuBVCvogwa+gJ3CxeL9d7P4C\nLsMs27L6Bo8A63kvxcbfc2HBMpWRnw3cU84AUIGGylZAd3Xuy6zXqDIXu5muECnPwcWLX8GLPwlr\nus0BfunUTS5nX7HQap2DDYX8DZguNdJParIn9fLAexE/hY1eGEWrzf7ECq5rGR6rSwcjgAfUHjyo\nc3dgY/BnAreGhncURNgAUyl8kIiVh1O3GFP929uLL1lGSMD1WEDKPq8aWQlrTGZJDgwO/5fSAknC\nUKqquvD0051YvLgr8JeYyc8InAP8SiRdliA8mMZSvwwzdz5rrAN87dQtkSLwXlbBmDtZzKTfA5+R\nnzDxB2BL4MRQ7//hXJ17BZMMuVt89Ah+rV7PCcAoL6liXLXslRupb4bTYgN5/YzcXGt+SxmGw2H6\n6l7sqdejhEpbPQTu6+HARJFo0R+8+FZe/P4Yg+BgoIdTNzjoEjc5tFoXa7WOxJaZxwDPSE0uDY1U\neC9rYDdKf23DDmtNpSsme3tGFjVxaUJEemJBe3Dh79W5l7BVyyfAS+L9odn6LHTGykdjVTmz+CZO\ng1P3OWbxNTyIoMXiTkxjI6m5VYyewLNaXUJywMoIQ4De5BAKE+8HYUFmL7399n9jfZ3Ngb9JAzV4\nVPkKC9A3ZOiVXwscLjV19EY+/d4CeXHSdwgwtRTtVUR2wuiTx+eZJxBhKHate6gmi3QFzZ8a4JGc\nwfwZLDO/IUPmdhzQO2j716Jllla0WpNMhS8CLs2rOS7eb4UtU98CfhPUy/Kdj/IotnS9S6S0BGXI\nwI/EONfVmHTrnk7rOacsFWi1voqpzo0CJkqNjC+wjssF70W8lyOxCcS5QBfn9A1UX8A0mA/GhoZy\nde+bAiLyC6yMdUSScYQ69506dwqWMZ8FTBbv6zF+RBAR+mI18dNVuSTvuTh1b2LB/DovPkrCNNjg\njScuK+9HKTaOyDrYg6E/kfoyYh/2cIya102d9XLCtdwLk2OdLiL1B3ZyQJUHseB0c9rshlbr+xiD\n5fCCX89dQPs1KbCEDNIGp1FCG0hE/gtjihyvqlH9KRFaiXAJNuDWLcu6T537KzbCPzXpO1UCF2IT\nmhelbeCcvoat7gv13ee01Iy8LkQOwkoi0TeReN9avB+I0eGGq3MD1JVfkw5fuP2Ba0T4ffFAaB72\nngAAC7BJREFUgxf/X178MOBfGKvmdGAbp+7eEspsSwUhO78JG/D4B8Zs+ZvUyK6xkrjey+7YzTQE\nOMA5HeRcwQPXtDp2x5arMxHJsutqMojImhgf+1xVnV5qW3XuCYx/PRH4u3h/l3jjBIvwc6zxeDKw\ni2oUIyQRweNzf2CsFx9VMsEC0snep6oAIjWyC+ZxmzzhbA/Ve4CrUZ0Yc9BQbpqIled2VufqsHJU\ndb6qnoQ16SaLyHkikkUlLIVa6t+VJTTLRwFDChr4cxey6hrUbXR2BxaR4s0pJhA2CRihGmduIsJP\nseu3PfYdiOLOh2A+GMvMYyZZa41KegL7ePEDS2x6CTC4QJOn8TJyEekhIq+LyFsiktgRF5HLwt9f\nFJGtYw6MKZL9BTg2jOZmv8RuxKewZdZO6txNUcfKgCpPYuyAHsBje8tHu3nxfb34hzCXmg7Afk7d\nbk7dg80dwIuh1fq1VutFmPuKx3oGr0iNnCo19XU1vJcVvJcDvJfJWJ1yDLCNc8lDJKjOQ7UvFviu\nQ+Q6RNZroreTiKAPMhkTP7oq5jXq3CJ17grsukzmyzb3yAEf/Js2i2dStegZYLsi/8WyEJQsdwfO\n8eJHevGpARrAOX0FeI7SWfnZwMVanTDhLNIeG/l/jgj2VcjC98e+yx8Cu6lzqSUKVR0HbI3dE6+K\nyGHl1M5VWYjRLX8JjEyZ+pyMlVFqM9G5C1hlVUIgD0HtLOCSpIa7iHTAkrpHifBRDSuxnsAMrLG5\nRxD+in9fzk3ASnvnivcTxft1s14TSnH7YF6wg1M2exDTC9o7/Dw3lkcupUpJYt3wNzBBog8wbYDD\nVfW1gm32AQao6j4isgMmm9klYV+qqhJ+qMI+wEdQzSTsh2XMecBOBNPixvTbDDdel0XQ9VOqjlyZ\nhRv9k3azfsLikZvy1TinLqkkVDZExKmqb8x91tm/ZeO7YBOb+wIvC9w56Be8s/+6/K8IR2Of52jg\ndudymPIaw+hsrL56LTAK1Q/KPteIaxHoZLdjD53hefVURNgc6APam59/8zznvboiHb/dEhv1vwt4\nMLATGoQwyXcVsAlwktN0O0HvZVssi9y01nOy9lpIjeyFNS63CBLHhW9mC6ycMgk4nRLXIvQHdsLu\nnQ2AQepctON8OKc9sNLAqljiNS6vF6oIq2O9rA+B40MN/Ye/10g37P1upcP4/m2OnT+G9uMv0pFH\neS8HYLzuzsV+sCLSGWv834Kt0tKvha0IdseGpdYEBqjyWJ73UW+f5id7NlaXHwOMUudKTq978Rtg\nD+FHgCHFhuvey2+wFVGnrl0RmDofdmdJ7Ew7l4xAviNQrao9ws9DAVT1woJtrgSmqOr48PPrwO6q\n+knRviyQ21LtZsz94xA0WXgpiCLtjzVNNsQmJccESdOy4cWvDGyB0Z46F/x7Gctm/RC2euU51jgJ\nK6U8hjmG/z2tEZIXIjJMVYc1xr7SEDKZ9b5dyB6zv+ew1dqwy/zFrPT4XOY/+SlPvfAF92EN25mB\nDZMPlpEPxfivk7F66KNoYh+kxG7Sr0UwijgTWwn0V42bKg2ZX2dMv3s/LIiNBa5S5R0A8X49jLl0\nILAjlqE9jpWZZgAflaNdHzjDhwH/h2XMlwBPJq3ivJfrgHnO6cnh/Q5jGCPD636n1XpPwZtqh9WJ\nTwF+h2XNye/f+59hfY3emIvOn4Gr1bmydOMDLXEXbPJ6b+zzvhOYrKrvxe2Dn2BNv72w+vy9tY3l\nkHjcDryp1XrW6zLk65OYOr16yrO9MM3u3zqnj/ywL1kNK3H2AwapapKPZu1x18XkAI4G2mFsp+vD\naqFRIN5vhH1Pe2EP2JuAqepcYoLkxa+BaZdvhvHUH639foT79kFgmnNaIzJtAeyyQkMDeU+gu6r2\nCT8fBeygqgMLtpkEXKCqT4afHwHOVNV/FO1L1WyqrsXqrYeG0fBaIfsNseC6Nfbk3BL7wlwH3F+q\nDh66wStjDkQdsCduh/BvbeDnBf9WB17HmpYzwv/POq3fLA0WTwdj48s7YEvTJ7Al2WvAv4HPVMll\nK9YYgTxMubXFbtT1sUGo9TCp1C3Dv0VYcHoM08J4qetU1seubxesP7EV8B3wZng/74T/PwY+Lfj3\nRZjIK34zq2DX5xCsJv04xhF+NuzzvVIuT8XXItRkd8CC7LFY5nJGccAIGVY7rI5c+9n+IpzDNuH8\n7wv/Hisata97DjaC3QXT8dg5XJNW2MN9FvAu8F74fzbmcvU58E1asA8JwwlY0FqE1bofBV5w6uYA\neC+rhes0yjn9i7SRP3IOWwNva7X2DyvXHbCE5pjw+jNqG5uBertWeN+bYvfOrtj3YRLWVH1AnWuQ\n7V0hQj16X2xwbFfsu/M0dk+9jl2vT4A5mlAyFaE7xjFfhGkJ3Qv8k2GyZrgW57847MIRg9tc//w5\nD72uwPPO6RARWQn7jPbHgvL9wFANq8EgC7AWthoqvBbrYNf+NuChMEfSJBDv18Yat0dgQfpJ7NrU\nxov3gc/VOQ0P/F4Y7fEzLPg/ALzNlK7rYD2vU7p2fep62HGlhgbyg4EeEYH8QlWdFn6uvfGeL9qX\nrtYuSxM/juGmkdtR+r3XO64WnYHW+WvMcYtfUfCrAny/YBxVKx5Td38lc7987yMLTXX9io+imdvA\n/AXXsWKb4zO3C7uM267Opo177aK20xzXuGC7BQuvps0KabT0Mr57WceNWG/EvY+EbYpvpqLtUsOO\ngKiwcNEYWrfqBwthMaYYVgWs3Epo10poI4IifLt4Ff6zeA3m60qs2upT1lnhbdZb4S06tnmVLVZ8\nko5tXqG1LFW1ZQC+XrktL22+Jf/suBHvrrsB76+3Pp+1X53vq6pY9auvaPvtN7RZsICqeQvoPKOK\nbZ5blY1ntaPq+1Z8sfoCFm76Jj8b8Ef2P+oOvpu3W4NLK12AYQWllbOAxar6fwXbXIkpjN0Wfk4t\nrZR9VSqooIIKlmNkBfIsjuJzwCYi0hFrVBxKXc4nGIVnAHBbCPxfFAfxmBOpoIIKKqigPJQM5Kq6\nUEQGYMX31sC1qvqaiPQNf/+rqt4vIvuIyCzgGyLHjyuooIIKKmgclCytVFBBBRVU0PLR5JOdMQNF\nywtE5DoR+URESkuSLgcQkQ1EZIqIvCIiL4vIUnFuamkQkZ+IyDMiMkNEXhWRpWZo3VIhIq1F5IVA\npFhuISLviMjMcC1KTjI3aUYeM1C0PEFEdsW00G9Q1QZpWSzrCJOaP1PVGcFb8R/AAcvjd0NEVlbV\nb0VkBYzeerqqPtHc59VcEJHBGIV0FVUty+f0xwAReRvYJkaOt6kz8u2BWar6jhqX+DaMB7pcQlUf\nx/jHyz1U9eNgOYaqfo3xbDNHnX+M0B+GqFbEelG5RsZ/TBCR9bFR9muI51L+mBF1DZo6kK+HDVLU\n4v3wuwoqWILAitoaU7Nc7iAirURkBjZIM0VVX816zY8YIzEBt6VP/m55UOAREXlORErq3jd1IK90\nUisoiVBWuR04JWTmyx1UdbGqdsYmMncTEdfMp9QsEJF9gdlq8smVbBx2VtWtMVmE/qE0m4imDuQf\nYDoXtdgA4uQiK/jxI9hy3QHcpKp3Nff5NDdU9UtMUmDb5j6XZsJOwG9CbfhWYA8RuaGZz6nZoMGj\nQVXnYNo226dt29SBfMlAUdDQOBQbIKpgOUcQYroWeFVVL23u82kuiEgHMVlagp7Inpimz3IHVT1b\nVTdQ1Z9jwmOTVbV3c59Xc0BEVpZg5CIibTGxsVS2W5MGclVdiE19PogJx4xfHlkJtRCRWzEhnf8W\nkfdEZHkentoZE9vqGuhVL4hIj+Y+qWbAOpiJwwysRzBJVR9t5nNqKVieS7NrA48XfC/uVdWH0jau\nDARVUEEFFSzjaF6rtwoqqKCCChqMSiCvoIIKKljGUQnkFVRQQQXLOCqBvIIKKqhgGUclkFdQQQUV\nLOOoBPIKKqiggmUclUBeQQUVVLCMoxLIK6igggqWcfw/57XlLkPWSRIAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "knot_vector = [0,0,0,0,0,1,2,2,3,3,3,4,4,4,4,5,5,5,5,5]\n", + "basis = Bspline(knot_vector,4)\n", + "\n", + "%matplotlib inline\n", + "basis.plot()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nuOXZwIO8O+a2OS0ysDyXbqusMbI8/y/pWp7LbLXbSPqWZ2fzArc8N+BB3h1dTlJIexnddS3S3LGx\nnM1pkeS8WNTmtHDLcyMe5B2wpM1pkaTluaTNaZGq5bmMzWmRangtY3NapFqLzkkqJCJmYZvTImHL\ncxmb0yJVy3MZm9MiVcuzuxZTjVueIzzIu6Hr5fMaKbYUutq5s07Clmf38yJdy7PzWrjlWeNBviQd\n2ZwWSS0dO7I5LZKqRUc2p0VSL2od2ZwWac2LnvAgX54ubE6L1CzPLmxOi9Qszy5sTovULM8ubE4L\ntzzxIO+CvtoqKVqe/dUiPcuzsx0am0jP8uytFm55VswMchHZJiIHReSQiLxjws9PFpGbROQuEfmc\niPxCLyONkI5tToskLM+ObU6LNJbR3dqcFknUomOb06J4y3NqkEtlkF0DbANeAOwQkbPGLrsCuFNV\nX0L1qvhfRGRLD2ONkS5tTotULM8ubU6LVCzPLm1Oi1Qszy5tToviLc9Zd+TnAfer6gOqegTYA1w6\nds2XgBNGX58APKaqffTCYqQzm9MiIcuzt7bKGglZnn1stdtIOpZn7/MCtzxnBvkpwIONxw+Nvtfk\ng8CPiMjDVPt9f7m74UXPEJMU0lhGD1WLuHds9GNzWkQ9L7q2OS3c8pwd5G3uNN8J3KWq3w+8BPg9\nMd5NF5ErG39W5htqXPRkc1pEbXn2ZHNaxG559mFzWsQeXn3YnBax16I1IrLSzMo2f2dWL/swsLXx\neCvVXXmTVwPvBlDV/yciXwTOBPaP/zJVbTWoROjc5rRQ5ZDIuuX52b7/vQXow+a0aFqefb43sSh9\n2JwWteWpvb43sSj9t5hq1i1PXVnp872J3lHVVRr+gYjsmvV3Zt3h7QfOEJHTpHon/jLgurFrDlK9\noYGIPJcqxL/QetTpMtTyeY2YWwp979xZJwHLc7h5Eb/lOVgtSrc8pwb56E3LK6h2TtwHfFRVD4jI\nThHZObrsN4CXicjdwK3Ar6rqV/scdGh6tjktolw69mxzWkRZi55tTosoX9R6tjkt4pwXAzCz56qq\nN6rqmap6uqq+Z/S93aq6e/T1V1R1u6q+WFVfpKp/0vegI6BPm9MiVsuzT5vTIlbLs0+b0yJWy7NP\nm9OiWMszyjfPEmDotkrMlufwtYjX8ux9h8Ym4rU8B69FyZanB/mcDGRzWkRleQ5kc1rEtYwexua0\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "knot_vector = [0,1,2,3,4,5]\n", + "basis = Bspline(knot_vector,1)\n", + "basis.plot()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "basis.dplot()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n8/9UZC3CyyqQDAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "knot_vector = [0,1,2,3,4,5]\n", + "basis = Bspline(knot_vector,2)\n", + "\n", + "basis.plot()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAEACAYAAAC9Gb03AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XuwZXV9JfC16LZtFSxGhW4ebSDSRkgowQeizjhIQqZB\nRTOaGCpOrJkxtgVonGTE6OBcbmJGrHKMwXeisbQ0Yk0cnb40KE3i1XacAhlpRKAjjGBAoU2iokDx\nar7zxznd+9G/fc4++/V77PWpori377l3b7fN957zW3udH80MIiKSroN8n4CIiPRLg15EJHEa9CIi\nidOgFxFJnAa9iEjiNOhFRBLXetCT/CuSe0jeMOMxl5C8heT1JE9ue0wREamvi2f0nwCwpeqLJM8C\ncJyZbQbwegAf7uCYIiJSU+tBb2Y7AfxkxkPOBvDJ6WOvBnAoyQ1tjysiIvUMsUZ/FIA7cp/fCeDo\nAY4rIiIYLoxl6XO974KIyEDWDnCMHwDYlPv86OmfFZDU8BcRacDMyk+mC4YY9NsAnA/gUpKnAvip\nme1xPXDeyaaMxFEArgewDPz+W8z+/Km+z8kXLvNYAN8E8E5sxxvtGnua73PyhnwGgK8DuPgNwOs+\nYvYM36cUApIXmdlFvs8jBHWeJHdxe+VnAXwDwC+RvIPkfyC5leRWADCzywF8j+StAD4K4Ny2x0zU\nezC5Pn8JHHI4iaf4PiGP3gfgvQA+jsfhaC7zib5PyAuSAN4P4J0APvEU4FiQ6z2flUSo9TN6Mzun\nxmPOb3uclJF4MYAXAHidGR4g/+k2AGcB+JTfMxsel/kSAMcD+C1bsge5nXcA+HUAf+P3zLx4JYCN\nAD4As0d+Tt4N4HQAl/s9LYmNmrGekXgMgA8AeLMZ7pv86TH/C8BLPZ6WF1zmegCXAHiTLdmDAIAn\nYTuAl/k8Ly/IgwH8GYDzYPYIAGwGrsAYr4Xbqu8TiAlD2XiEpI1xjZ7EHwI4A8CZZpO7kUhsALAb\nwAYzPOTz/IbEZf5XAM+0JXtl7s9+AcC1ADbaku31dnJDIy8GcDTMXpP7s+MBXAngqQjlP1zxrs7s\n1DN6j6YB7NsAvHHfkAcAM+wB8PcAXuTr3IY2DWDfBOA/5f/cluz7AO4C8Dwf5+XFJIB9HYC3lL6y\nG8CDAJ45+DlJ1DTo/XoPgI+a4RbH11Ywrpfp7wPwXluyf3B87TKM5VrkA1izuwpfmzyLH9vfC+mA\nBr0nuQD2v1U8ZAXAy8gDymbJyQWw/73iIWMablkA6zaeX3rSGQ16D9wB7AFuALAGkwGYLGcAe6Br\nABw+Xd5JlyOAddgJYDPII4Y7MYmdBr0fb8Lk/X++WPWA6Zr9GJ7JXgBgly3Zl6oeMA1htyP9O5Eu\nBPBVmH2t8hFmD2ESyL5kqJOS+GnQD6wqgK2Q9Mv0qgC2Qtq/9KoDWJcVpP9LTzqkQT+8WQFs2SqA\nExNuyc4KYMt2AHh+ki3ZWQGs2xUATldLVurSoB9QjQC2wAwPAPhbTFqySakRwBbYkv0ck7fa+PU+\nz8uTeQFskdk/Y/K+SKf3eE6SEA36gdQMYF2Se5leM4B1SW/5pl4A65LetZDeaNAPZ24AW+FyAGeQ\nWNf9KXkzN4CtsALgLC5zTQ/n5Mv8ANZt8gRgsuwjMpMG/QAWDGALUmvJLhjAFiTXkl0sgC1TS1Zq\n06AfxiIBrEtKL9MXCWBd0rgTafEAtkgtWVmABn3PFg1gKyTRkl00gK2QynBbLIB1S+OXnvROg75H\nLQLYsuhbsi0C2LL4W7LNA9gytWSlFg36fjUNYAsSack2DWALEmnJNg1gi9SSlZo06HvSJoCtEO3L\n9DYBbIV4f+m1C2Bdkrv9VrqnQd+ftgFs2Sribcm2DWDL4mzJtg1g3dSSlbk06HvQUQBbEGtLtqMA\ntiDilmwXAWyRWrJSgwZ9xzoMYF2iepneYQDrEtfyTXcBrEtc10IGp0HfvU4C2AqxtWQ7CWArxNaS\n7SaAdVNLVmbSoO9QDwFsQUwt2R4C2IKoWrLdB7BlasnKTBr03eo6gHWJ5WV61wGsS/jXop8Atkgt\nWZlDg74jfQSwFYJvyfYRwFaI4ZbT7gNYtxiuhXiiQd+BngPYsqBbsj0HsGVht2T7DWDL1JKVShr0\n3egzgC2IoCXbZwBbEEFLts8AtkgtWZlBg76lvgPYCkG+TO87gK0Q5i+9/gNYl6huv5XhaNC3N0QA\nW7aKMFuyQwSwZeG1ZIcIYN3UkhUnDfoWBgxgC0JsyQ4YwBYE2pIdKoAtUktWKmjQNzRwAOsSzMv0\ngQNYl3CWb4YNYF3CuRYSDA365gYLYCuE1JIdLICtEFJLdrgA1k0tWTmABn0DngLYglBasp4C2IJg\nWrJ+AtgytWTlABr0zfgIYF1CeJnuI4B18Xst/AWwRWrJioMG/YJ8BbAVvLZkfQWwFXzfcvoq+Ahg\n3XxfCwmMBv0CAghgy7y1ZAMIYMv8tWQnAex74S+ALVNLVgo06BfjO4At8NyS9R3AFnhuyfoOYIvU\nkpUSDfqaQghgKwz+Mj2EALbC8L/0wghgXYK5/Vb806CvL5QAtmwVw7dkQwlgy4ZtyYYSwLqpJSv7\nadDXEFgAWzB0SzawALbAQ0s2pAC2SC1ZydGgnyPAANZlkJfpAQawLsMs34QXwLroNksBoEFfR1AB\nbIWhWrJBBbAVhmrJhhXAuqklKwA06GcKOIAtGKIlG3AAWzBISzbcALZMLVkBoEE/T6gBrEvfL9ND\nDWBd+rsWYQewRWrJypQGfYWQA9gKvbVkQw5gK/R5y2m4AaybWrKiQe8SSQBb1ktLNpIAtqyflmwc\nAWyZWrKiQV8hhgC2oMeWbAwBbEGPLdkYAtgitWQFHQx6kltI7iZ5C8m3Or5+Gsl7SF43/efCtsfs\nUywBbIVOX6bHEsBW6PaXXjwBrItasiPXatCTXIPJEscWACcAOIeka+ngq2Z28vSfd7Y55gBiCmDL\nVtFtSzamALasu5ZsTAGsm1qyI9f2Gf0pAG41s9vN7GEAlwJ4ueNxUdzHG2EAW9BlSzbCALag45Zs\nbAFskVqyo9d20B+FyVr2PndO/yzPALyA5PUkLyd5Qstj9iLSANal9cv0SANYl/bLN3EGsC66zXLE\n1rb8/jpr2N8CsMnM7id5JiYB59NdDyR5Ue7TVTNbbXl+i4gugK1wOYD3klhnhoca/ozoAtgKKwCW\nuMw104C2ifgCWLcVAFeCPHd6f71EiuRpAE5b5HvaDvofANiU+3wTJs/q9zOzn+c+voLkh0g+ycx+\nXP5hZnZRy/NpJBfAPj/CALbADHvI/S3Zqxb9/lwA+6yuz21otmTf5zL3tWS/sfAPyALYEzs+NR/y\nLdldns9FWpg+AV7d9znJpXnf03bp5loAm0keQ3IdgFcD2JZ/AMkNnL7XBslTANA15D2LOYB1afMy\nPeYA1qXZtYg/gC1SS3bUWg16m6xZng/gywBuAvA5M7uZ5FaSW6cPexWAG0juwmSI/HabY3Yt9gC2\nQqOWbOwBbIWmt5zGHcC6qSU7UgxluY6kmdmgd+dMA9hdAC40wxeGPHafpgP+dgBnmuGmWt8zCWBv\nBHBeAmvz+03fxfIuAM+zJbut3jfxYAA3A/idBNbmM5NX3XsAnJDEqxQBUG92jr0Zm0oAW9CwJZtK\nAFvQsCWbSgBbpJbsaI120EfegK2j9sv0yBuwddT/pRd3A7YOtWRHaLSDHukFsGWrqN+STS2ALavX\nkk0tgHVTS3aERjnoEw1gC+q2ZBMNYAsWaMmmGMAWqSU7SqMb9Ak1YOuY+TI9oQZsHbOXb9JpwNah\n2yxHZnSDHokGsBXm7SWbZABbYd5esmkGsG7aS3ZkRjXoRxDAFszaS3YEAWzBzL1k0w9gy7SX7MiM\natAj/QDWpepleuoBrMuB12IcAWyRWrKjM5pBP4YAtsIBLdkxBLAVXMMt/QDWTS3ZERnFoB9ZAFtW\n2Et2ZAFs2TeR30t2XAFsmfaSHZFRDHqMK4AtcLRkxxTAFjhasmMKYIvUkh2V5Af92ALYCpcBeNnY\nAtgKk1964wtgXdSSHYnkBz3GGcCWrQI4EQ+v/xDGF8CWXUnDqQ8dhA9hTAGsm1qyI5H0oB9xAFtg\nhgdw0iduxN7HnoTxBbAFtmT3br0W/+++dXgaxhfAFqklOxrJDvqRB7AFXOZ6bHnzcbjiz28ZYQBb\nRB787h04ZutLcfMIA1gX3WY5AskOeow4gHW4AAc9cg2uf+2JM1qyY3Hh3oOw+j9+Bc+e0ZIdE7Vk\nRyDJQa8ANrM/gF13/7moaMmOxjSA/RcP4FxUtWTHRy3ZEUhy0EMBbF6+ATvel+kHNmDHey3y1JId\nheQGvQLYjKMB22gv2USUG7Aabhm1ZBOX1KBXAJupaMAWWrKj4W7AFluy46aWbOKSGvRQAJt3QAO2\n4V6yKTigAdtwL9k0qSWbvGQGvQLYzJwG7Lheps9uwI7xl14VtWQTlsyghwLYvFlvQbyK+nvJxm3+\nWxBfCeDUuXvJjoNasglLYtArgM3MewviunvJJmLmWxDbkt2LenvJpk8t2aRFP+gVwGYWeAvi9F+m\n138L4nEtZc2mpaxERT/ooQA2r+5bEM/bSzYFdd+CeN5esmOilmyioh70CmAzi7wF8ay9ZJOwwFsQ\nz9xLdnzUkk1U1IMeCmDzFt0DNs2X6c32gE3zWixKLdlkRTvoFcBmGu4Bm2pLtskesBpuGWUWCYpy\n0CuAzbTYAza9lmzzPWDVks2oJZugKAc9FMDmNdoDNtGWbKM9YNWSzVFLNknRDXoFsJkO9oBN52V6\n+z1gU/ul10b6t9+OTHSDHgpg8xYNYMtWkUJLtlkAW6aWbEYt2cRENegVwGYaBrAFCbVkmwSwBWrJ\n5qglm5xoBr0C2EyLANYl7pfpzQNYl3SWstrTUlZCohn0UACb1yiArRB7S7ZRAFtBLdmMWrIJiWLQ\nK4DNdBDAFkTdkm0fwBaoJVuglmxCohj0UACb1zaAdYnvZXo3AaxLfNeiD2rJJiX4Qa8ANtNFAFsh\nxpZs6wC2goZbRplFIoIe9ApgMx0HsGVxtWS7DWDL1JLNqCWbiKAHPRTA5nUZwBZE2JLtMoAtUEs2\nRy3ZZAQ76BXAZroOYCvE8TK94wC2Qky/9PoW9+23AiDgQQ8FsHl9BLBlqwi9JdtfAFumlmxGLdkE\nBDnoFcBmegxgCyJpyfYVwBaoJZujlmwSghv0CmAzPQewLuG+TO83gHWJYylrGFrKilxwgx4KYPN6\nC2ArhNyS7S2AraCWbEYt2cgFNegVwGYGCmALgm3JDhPAFqglW6CWbORaD3qSW0juJnkLybdWPOaS\n6devJ3nyjB+nADYzRADrEtbL9OECWJewroUvaslGr9WgJ7kGk/X0LQBOAHAOyeNLjzkLwHFmthnA\n6wF8eMaPVACL4QLYCqG1ZAcJYCtouGWUWUSs7TP6UwDcama3m9nDAC4F8PLSY84G8EkAMLOrARxK\nckPFz1MAO3wAWxZOS3b4ALZMLdmMWrIRW9vy+4/CJDjd504cuKbpeszRAPaUf9iHns2TP/xczFra\nSd55h+O5D6zF3R/bhsfgIg7+DMoAvBGX3PBE/OwC8MLPD338kn+LYQPYAluyvVzmvpbs+32cwz4k\nfhnAL/o7A8OteNp3rscz3/ZKYoe/8wDwrL/chCO+tdHrOQTiDd+/8Zg6j2s76OsGpuVlAOf3/Z/v\n4g/2ffys9XjouevxUNMTi9VJd2PviXtwEybLXF68Fe9+yq047vkAnuzrHKZ+CmR/JzxZAfAGeBz0\nJJ4J4CuY3Nvv7SaFD+K8J7wCX/xNAP5e4Rx3xaH4N3/4POw58SfweC28+sFP1+Gue9Yde++Da9b/\nw48fW+dbOMlZmiF5KoCLzGzL9PO3AXjUzN6de8xHAKya2aXTz3cD+Ndmtqf0s8zMQlkXHjUS6zF5\nxfU0M/yT7/Pxics8GMAPARxtS/azwY9PHATgawA+ZYa/GPr4pZN5MoDbABwOswcGP/zkVtdrMLlJ\n4TNDHz8o5GMA7AJwIYH/OW92tl2jvxbAZpLHkFwH4NUAtpUesw3A707OjacC+Gl5yEtYImnJDiKA\nluy/A7AOwMc9HT/jvyX7egD3AvhrT8cPyUJ9o1aD3iYB2fkAvgzgJgCfM7ObSW4luXX6mMsBfI/k\nrQA+CuDcNseUwYTbkh2el7tvSBwK4GIA55lh79DHr+DnWizzMADLAM6zpRbLECkgj8S0b4SaSzKt\nlm66pKWbsJA4HJPy1Aaz8WUleVzmL2Dy6nXj9G2MhzkucQmAx5ph61DHnGty+/SVAJ5ad8h0cthl\nfgzAz2zJfGc2/pF/DeB7MLtw8un82RlUM1bCYYYfYdKIDKsl64GPliyJkzBZCn37UMesafCWLJd5\nKoAzAVw01DGDRb4YwAuxYN9Ig15mUUkmM9iSxTSA/QCAd5jhn4c4Zm2TZ/GD/b2YBrAfBHCBjzA8\nKJMA9gMA3gyz+xf5Vg16mSW0lqxPQ65NhxPAug15LRTAZhq/4aPW6KXSdMDfDuBMM9zk+XS84jIP\nwmT55lRbstt6O84kgL0ZwNlm+GZfx2llcofdHgAn9Pn+Q9MA9kYAp9uSfaev40RhEsB+G8DzYXZL\n8Utao5cWItxLtje2ZI9i8jbOfd+J9McAtgU75IEh95J9F4BPj37IT7wHwEfKQ74uDXqZR4M+0+u1\nCDiAden19lsFsDkNA9g8DXqZ56sIfS/Z4fS2l2zQAaxbb3vJKoDNaRHA5mnQy0xqyWZ6bsmGHsAW\n9duSVQCb6WTHPQ16qUMt2UznyzeBNmDr6P5aqAGbadCAraJBL3VsR7h7yQ7tMnS/l2z4AaxbH3vJ\nKoDNtApg8zToZS61ZDNdt2QjC2DLOm3JKoDN6SCAzdOgl7rUks10smQRYQBb1GFLVgFsTkcBbJ4G\nvdSllmymq7XpuAJYt66uhQLYTCcBbJ6asVKLWrKZLlqyUTRg6+igJasGbM6MBmz1t6gZKx1RSzbT\nUUs21gC2qJuWrALYTGcBbJ4GvSxCgz7T+FpEHsC6NL79VgFsTscBbJ4GvSxCLdlMo5Zs9AGsW6OW\nrALYnB4C2DwNeqlNLdlMi5ZsCgFsUfOWrALYTOcBbJ4GvSxKLdnMQss3ETdg61jsWmQN2PPVgO2u\nAVtFg14WpZZsZtGWbBoBrNuiLdl9AewNPZ5TLHoJYPM06GUhaslmFmnJJhjAltVuySqAzekxgM3T\noJcm1JLNzF2ySDSALarZklUAm9NzAJunQS9NqCWbqbM2nV4A61bnWiiAzfQawOapGSsLU0s2M68l\nm0wDto45LdlcA/ZXR78236ABW/2j1IyVHqglm6nRkk05gC2a35JVAJvpPYDN06CXpjToM85rMYIA\n1sV5+60C2JyBAtg8DXppSi3ZzAEt2VEEsG4HtGQVwOYMGMDmadBLI2rJZipasmMJYIvcLVkFsJnB\nAtg8DXppQy3ZzP7lm8QbsHVk10IN2MwADdgqGvTShlqymXxLdjwBrFu+JasANjNoAJunQS+NqSWb\n2d+S/dZ/fA3GF8CW7Qbw4J+8CK+BAtgJDwFsnga9tKWW7D7GFexd+06ML4AtMrO9xPb1j+BiKID1\nFsDmadBLW2rJ7vOl9+3FL171ZIwtgHV4+6/CzroFh0ABLOApgM1TM1ZaUUt2gsSh4N6bceHj1mHN\nw89pupdsCrjMw9Y9ghvv+1M8dq3hGU33kk1Chw3Y6kOoGSs9U0t2vz+GrdmGNQ9vg+5EetdDa/Hp\ntYYvQbffegtg8zTopQujHvSlBuy4r0WxATvqa+E7gM3ToJcujLYl62jANtpLNgWOBmyjvWSTEEAA\nm6dBL62NvCVbaMC22Es2BcUGbPO9ZFPgPYDN06CXroyuJTujATu6JYsZDdjRXQufDdgqGvTSlTG2\nZKsasIvuJZuCqgbsonvJpiCIADZPg146MbaW7Ky3IF5kL9kUzHkL4tp7ySYhoAA2T4NeujSKlmzN\ntyAexZLF3LcgrrmXbBICC2DzNOilS2NpydZ5C+JRDHrUewvisVyLoALYPDVjpTNjaMnW3QN23l6y\nKai9B+ycvWSTMEADtvrQasbKgEbSkq31FsTTvWS3I+07kd4F4DNz34I420s25dtvgwtg8zTopWvJ\nDvoGe8AmuzY9DWDPQv23IE7270WoAWyeBr10LcmWbMM9YJNsyeYC2LfYkt1T89vSbMkGHMDmNR70\nJJ9EcgfJ75K8kuShFY+7neS3SV5H8prmpyoxSLglu/AesAm3ZBffAzbdlmywAWxem2f0fwRgh5k9\nHZP/sP+o4nEG4DQzO9nMTmlxPIlHUi3ZlnvAJrVk0XIP2KSuRYgN2CptBv3ZAD45/fiTAF4x47G6\nm2ZcUmvJttkDNrWWbL0A1i21lmzQAWxem0G/wcz2TD/eA2BDxeMMwFUkryX5ey2OJ5FIqSXbIIAt\nSKkl2yCALUunJRtBAJu3dtYXSe4AsNHxpf+S/8TMjGTVS5cXmtldJA8DsIPkbjPbWXG8i3KfrprZ\n6qzzk6Dtu+PkKt8n0lTDANZl35LFNzo5MQ8aBrBFZgZy39+LXR2e3rA8B7AkTwNw2iLfM3PQm9kZ\nMw62h+RGM7ub5BEAflTxM+6a/vsfSX4BwCkAnIPezC6qe+ISvBUAXyTx5un99TFaOICtsALgY5is\n58Zq8QDWbQWT5Z8/aX1G/ngNYKdPgFf3fU5yad73tFm62QbgtdOPXwvH/2iSjyd5yPTjJ2By90GT\ntT2Jzw0A1gA43veJNNEygC27BsBhXOax7c9seC0D2LKdADZj8uQwPhEFsHltBv3FAM4g+V1Mbpm6\nGABIHkly+/QxGwHsJLkLwNUALjOzK9ucsMQhgZZsmwC2IIGWbJsAtij+lux7AHw0hgA2b+bSzSxm\n9mMAv+b48x8CeMn04+8BOKnx2UnsVgC8A8C7fZ/IInIB7Akd/tjLALwBwPs7/Jm9ywWwXb4yWwHw\nKrRfEhtWFsBGd1OJmrHSp+hash0GsGXRtWQ7CWDd4mvJFgPY+3yfzqI06KU3kbZkuwpgCyJtyXYV\nwBbF2ZKNogFbRYNe+hZNS7bjANYlmsyi4wDWJZprEWsAm6dBL32LqSXbWQBbIaaWbHcBrFtMLdko\nA9g8DXrpVSwt2bYN2Dpiacl20ICtI46WbGQN2Coa9DKEoN+XvccA1iXoJYseA9iiGPaSjTyAzdOg\nlyGEvpdsLwFshaAHPfoKYN1CvxZRB7B52jNWehfyXrJ194Dt7HgB7yVbew/Yzg4Y8F6yHveAXZT2\njJUgBN6S7TuALQi8Jdt3AFsUdks2+gA2T4NehhLcoB8igK0Q3Nr0QAGsS3B/L1IJYPM06GUoQbVk\nBw5gy4JqyeYC2At6DWDdwmrJJhTA5mnQyyACbMkOGcAWBNiSfT2A+wB8ZvAjh9eSTSaAzdOglyEF\n0ZIdoAFbRxBLFrkG7Hk9NWDrCOJapNCAraJBL0MKpSU7aABbIZSW7LABrFsoLdmkAtg8DXoZTAgt\nWY8BbEEILVmPAWyZ/5ZsggFsnga9DM3bHSeeA1gXb0sWngPYIt8t2UQD2DwNehmaz5astwC2gs+1\naX8BrJvPa5FkAJunZqwMyldLdugGbB2+WrKDN2Dr8NWSjagBW0XNWAmOx5ZsCAFsgceWbAgBbJG/\nlmyyAWyeBr34MOigDyWArTDo2nRAAazLsE8AEg9g8zToxYfBWrIBBrBlg7Vkgwpg3YZryY4ggM3T\noJfBDdySDS2ALRi4JRtaAFs0bEs2+QA2T4NefOm9JRtIA7aO3pcsAmnA1tH/8k3CDdgqGvTiyxAt\n2eAC2ApDtGTDC2DdhmjJjiKAzdOgFy/6bskGHsAW9N2SDTyALeu3JTuiADZPg1586uWOkwgCWJde\nliwiCGCL+mzJjiyAzdOgF5/6askGHcBW6GttOuwA1q2vazGqADZPzVjxpo+WbIgN2Dr6aMkG2YCt\no4+WbAIN2CpqxkrQemrJxhLAFvTUko0lgC3qpyU7ugA2T4NefOts0McUwFbo7lrEFcC6dPcEYKQB\nbJ4GvfjWSUs20gC2bAc6aMlGF8C6ddOSHXEAm6dBL1512JKNMYAt6LAlG2MAW9RdS3a0AWyeBr2E\noFVLNqIGbB2tliwiasDW0W75ZoQN2Coa9BKCti3ZKAPYCm1bsnEGsG5tW7KjDmDzNOjFuzYt2QQC\n2IJpS/aHaNCSTSCALWveklUAW6BBL6FYuA2ZSADrsvi1SCOALWraklUAewANeglFk5Zs9AFshSZr\n0/EHsG5NroUC2BI1YyUIi7ZkY23A1rFoSzbaBmwdi7ZkE27AVlEzVqLRoCWbUgBb0KAlm1IAW7R4\nS1YBrIMGvYSk1qBPLYCtUO9apBfAutR7AqAAtpIGvYRkbks24QC2bG5LNskA1m1+S1YB7Ewa9BKM\nmi3ZVAPYgpot2VQD2KJ6LVkFsDNo0EtoKluyiTVg66hcskisAVtH9fKNGrBzadBLaGa1ZJMNYCvM\nasmmG8C6zWrJKoCdQ4NeglLVkh1JAFtQ1ZIdSQBb5m7JKoCtRYNeQlRoQ44ogHUpXovxBLBFrpas\nAtjaGg96kr9J8kaSe0k+a8bjtpDcTfIWkm9tejwZlXJLdhQBbIXy2vQ4Ali38rVQAFtTm2f0NwD4\nDQBfq3oAyTWY/MbdAuAEAOeQPL7FMUeB5Gm+z8GzGwCsAXA8efxLMa4AtuwaAIdxmcfySL4c4wpg\ny3YC2AzyiH9JvhIKYGtrPOjNbLeZfXfOw04BcKuZ3W5mDwO4FMDLmx5zRE7zfQI+FVuyz3kHxhXA\nFhRashuwhHEFsEW5luzxk3xCAWxNa3v++Udh8tJqnzvR4O1XZZRWAHwe2AR0u0l0jFYAfBoH41EA\nL/Z9Mp6tAPjgkwGDAtjaZg56kjsAbHR86e1mtlLj5+sllTS1CuAJwK7tIwxgy3YAuAd34n+PKoB1\nuwLAE3cCn1UAW9/MQW9mZ7T8+T/A9CnZ1CZMntU7kdQvhimSS77PIRAv0d+L/V6la7HfOSTP8X0S\nsehq6aapff+BAAACs0lEQVTqLTKvBbCZ5DGY3A/8agDO/3P0FsUiIv1oc3vlb5C8A8CpALaTvGL6\n50eS3A4AZvYIgPMBfBnATQA+Z2Y3tz9tERGpK5iNR0REpB/em7EqVGVI/hXJPSTHefvcFMlNJL8y\nLeR9h+SbfJ+TLyTXk7ya5C6SN5F8l+9z8o3kGpLXkaxzQ0iySN5O8tvTa3HNzMf6fEY/LVT9PYBf\nwyS4/SaAc8a6vEPyXwG4F8CnzOxE3+fjC8mNADaa2S6SBwP4vwBeMeK/F483s/tJrgXwdQD/2cy+\n7vu8fCH5BwCeDeAQMzvb9/n4QvI2AM82sx/Pe6zvZ/QqVOWY2U4AP/F9Hr6Z2d1mtmv68b2Y7A17\npN+z8sfM7p9+uA6TxvDc/7BTRfJoTHoVH0P1TSBjUusa+B70rkLVUZ7ORQI0vWPrZABX+z0Tf0ge\nRHIXJptkf8XM5m6enrA/A/AWAI/6PpEAGICrSF5L8vdmPdD3oFcSLJWmyzZ/A+D3p8/sR8nMHjWz\nkwAcDeBFY30vJJIvBfAjM7sOejYPAC80s5MBnAngvOnSr5PvQb9QoUrGg5O3oP08gE+bmd6dEICZ\n3YPJ+948x/e5ePICAGdP16Y/C+B0kp/yfE7emNld03//I4AvYLIU7uR70O8vVJFch0mhapvncxLP\nONlF6OMAbjKz9/k+H59IPoXkodOPHwfgDADX+T0rP8zs7Wa2ycyOBfDbAP7OzH7X93n5QPLxJA+Z\nfvwETPYWrrxbz+ugV6GqiORnMdkQ+ukk7yD5732fkycvBPAaAC+e3jp2Hcktvk/KkyMA/N10jf5q\nACtm9reezykUY1763QBgZ+7vxWVmdmXVg1WYEhFJnO+lGxER6ZkGvYhI4jToRUQSp0EvIpI4DXoR\nkcRp0IuIJE6DXkQkcRr0IiKJ+//obfWVm5AjygAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "basis.dplot()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/test/bspline.test.ipynb b/test/bspline.test.ipynb new file mode 100644 index 0000000..c4c03ca --- /dev/null +++ b/test/bspline.test.ipynb @@ -0,0 +1,167 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import sys\n", + "sys.path.append(\"./..\")" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from bspline import Bspline" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXIAAAEACAYAAACuzv3DAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXe4XGW1h9+V0Ak1hUAIPZTQWyhSvgDSAypNerGAgIWL\ngt575eSoVxQbKgqIIiBKE5BQQs9HCQHpQuglkBAIvSRASFn3j/VNMmfOzJ69Z/acmTnne5+H5zFz\n9uy93TOz9tq/b63fElUlEolEIu1Lv2afQCQSiUTqIwbySCQSaXNiII9EIpE2JwbySCQSaXNiII9E\nIpE2JwbySCQSaXOqBnIRuVBEZojIEwnb/E5EnheRx0Vk83xPMRKJRCJJpMnI/wrsWemPIrI3sI6q\njgC+Dpyb07lFIpFIJAVVA7mq3gO8l7DJfsDFYdsHgOVFZKV8Ti8SiUQi1chDIx8GTC369zRg1Rz2\nG4lEIpEU5LXYKSX/jn3/kUgk0kMsksM+XgOGF/171fBaF0QkBvdIJBKpAVUtTZa7kEcgHwecDFwu\nItsC76vqjFpOpq8gImNVdWyzz6MViNdiIfFaGOK9MnbsXeq9a/a5tAJpkuCqgVxELgN2BgaJyFSg\nA1gUQFXPV9WbRGRvEXkBmAUcW99pRyKRPs8iiyzW7FNoJ6oGclU9NMU2J+dzOpFIpC8j3ltMioEc\nEfqRUPpdTOzsbA6+2SfQQvhmn0AL4Zt9Ai3AigBsu+1HTT6PVmA14KI0G8ZA3gRU1Tf7HFqFeC0W\nEq8FAIMAcK65Z9EaDEq7YY8GchH69+TxIpFI2zEI+IAMQawXM5jupd1l6emMfPkePl4kEmkvBgFP\nY0Gsr9OaGTnxLhuJRJIZDDwDDBTv+3q5cuqbWU8H8niXjUQiSQwCXsdKmfv6E/wgWlRaiRl5JBJJ\nYjDwVvivr8eLKK1EIpG2ZBDwdvivrz/Bt+xiZwzkkUgkiZiRL6RlM/K+foeNRCLJxIx8IS272NnX\n77CRSCSZmJEvJC52RiKRtiRm5Cxonlwx7fYxkEcikZZAvF8aQJ2bRczIVwTmEzPySCTSZhSycejj\nGTl2Ld5Ju3Fc7IxEIq1CQR8HC+R9OfErvhZV6elAvoQIi/fwMSORSHtQnJG/Rd9O/AZh16AlpZV3\ngIE9fMxIJNIeDKartBIz8pT0dCDv6x9OJBKpTCELBfgQWEK876tP8IWnk5bMyPv6AkYkEqnMAmlF\nnVP6duJXfFOrSk8H8r5eUhSJRCpTKif0ZZ08SiuRSKQtKV7shL4dL1peWumrH0wkEkkmZuQLiRl5\nJBJpS2JGvpCWLj/sy3fYSCSSTMzIF9LSi519+Q4biUQqIN73x0a7vVv0cp+MFyIshcXmWWnfEzPy\nSCTSCqwIvK/OzSt6ra/Gi0JjlNKi0sqbwJAePmYkEml9irs6C/TJjByLkTOwQJ6KptSRi/T4cSOR\nSGuzEha8iumrGflKWNILrZiRqzIHa72NfiuRSKSYQhZaTF/tBG/5jBzsBKO8EolEiinOQgu8BawY\nFkL7EkPofi0SaUYgfxP70CKRSKRAt4xcnZsLvE/fe4JvbWklEDPySCRSSrmMHPpm4tcW0kpf/GAi\nkUgy5TRywmt9LV60TUbe1z6YSCSSTKWMvC/Gi7bIyKO0EolESokZ+ULiYmckEmlLYkYOiNAfW9wt\nNEflI62IyJ4i8oyIPC8ip5f5+yARuVlEHhORJ0XkmCq7jBl5JBJZgHi/NBawZpb5c1+LFysCH4Se\nm3ykFRHpD5wD7AmMBA4VkQ1KNjsZeFRVNwMc8CsRWSRhtzEjj0QixQwB3gzj3UrpUxk53Z9McsnI\nRwEvqOoUVZ0DXA7sX7LN68Cy4X8vC7yjqnMT9jkDGCKS7gQjkUivp5KsAn0vkBevFeS22DkMmFr0\n72nhtWIuADYUkenA48C3k3aoyixgPjAg7UlGIpFeTaWFTuh7T/CZFzqheiBPc0f4b+AxVV0F2Az4\ng4gsU25DERkrImPh9Dmw737ZTjUSifRSkjLyN4Eh4n1feYJfCS5Z1OLk4v8LZyTJ1AuoFshfA4YX\n/Xs4lpUXsz1wFYCqvgi8DKxXbmeqOlZVx8LPn4EbXk5zgpFIpNdTMSNX5z4FPgZW6NEzah5D4KhH\nLE7O/jH8aF7Vd1A9kD8EjBCRNURkMeAQYFzJNs8AuwGIyEpYEH+pyn772uNSJBKpTFJGDn2rciX/\nxc6waHkycAvwFHCFqj4tIseLyPFhs58CW4nI48DtwGmq+m75PS6gL30wkUgkmSSNHPrWgmdNi51V\n9RdVHQ+ML3nt/KL//TYwJu0BAzEjj0QiBdJk5H0lXjRksbNR9KUPJhKJJBMz8oU0pI68UURpJRKJ\nFIgZ+UIaUkfeKKK0EolEEO8XAZYD3knYrE/ECxEGYBn4rKzvjRl5JBJpJoOBd9W5pDK7vhIvVgJm\nqHbJxFtaWukTd9hIJFKVoSTr49B3pJWhmOVJgZaXVt4DlhZh8SYdPxKJtAalwascfSWQrwy8UfJa\n62bkqszHJmT3hcelSCRSmZVJGcj7QJt+6bVo+Ywc7M4ztInHj0QizadqIFfn+orRXpqnk7I0M5C/\njn2IkUik75I2ePUFeaW9pJVADOSRSKRc8CpHXwnkbSetxEAeiUTSaOTQN6TYtpRWpgOrNPH4kUik\n+aQNXn0hXnR5OimpJ08kZuSRSKQphCqUtNJKr44XIvQHBlKDYRbEQB6JRJrHssA8dW5mim17e7wY\nAryjStK844o0W1rpzR9MJBJJJq0+Dr1fWkn7ZFKWZgbyGcCQ8EgRiUT6HlkW93p7Rl7zQic0MZCr\nMgdr1R/crHOIRCJNJUsW+jp9MyNPteDZzIwcev9dNhKJVCaLtPI2sKx431v9mbJci240O5BHnTwS\n6buklhPUufmYHNtba8nbU1oJ9PbHpUgkUpmsWWhvfoKP0kokEmlLslZq9OYn+LbPyHvrBxOJRJKp\nJSPvrU/wla5FW2TkvfkOG4lEksmahfbKxE+ELB2uZWl2IO/Nd9hIJFKBUH0yAHg3w9t6a1PQssAc\n1exDlwu0QiDvdXfYSCRSlaHAm6EaJS29NV6sQuUnk7aQVl4HVgqPFpFIpO+wCvBaxvf0Vil2GDCt\nnh00NZCrMhuYibl+RSKRvsOqZA/kvVWKreVadKHZGTn03g8nEolUppYs9C1gBfF+0QacTzMZRuVA\n3hbSCvRe3SsSiVQmKXiVRZ2bh/l197buzvaWVgK9VfeKRCKVqVVO6I1P8L0mI+9tH0wkEkmm1iz0\nNXpfvOgVGvk07EONRCJ9h8zSSmAaFvh6E7VeiwW0SiDvbR9MJAKAiAwXkVEiUvcCnQiDRdhOhKXz\nOLdmEWZ1xkAOiLAosCLm7FiOtpFWetUHE4kAiMgiInIe8CjwJ+B5Edmq9v1xCvAc8HtgiggH5XOm\nTWEgMEud+6SG9/a2eLEyMEOVefXsZJGcTqYepgHDm30SkUheiIgAF2EBay1V/VBEDgCuF5FtVPXV\nbPvjGOAEYBNVpoqwOXCTCHNVuTbn0+8J6pESelsgr6aP55ORi8ieIvKMiDwvIqdX2MaJyKMi8qSI\n+DQHLuJNYDkRlsj4vkikVfkqMBL4oqp+CKCqVwN/AP6YZUciDAXOAg5SZarti0eBMcD5Im2ZBNWz\nuNfbAnnd+jhUCeQi0h84B9gT+2IeKiIblGyzPPYFHaOqGwEHZjkBVebTe81wIn0MERkCnAkcqaqf\nlvz5LGBjEdkmwy7/B7hUlf8Uv6jKQ8DvMKml3ainbvo1YFjQ2XsDjQ/kwCjgBVWdoqpzgMuB/Uu2\nOQy4WlWnAajq2zWcR2+7y0b6Lj8E/q6qk0v/oKqfYcH8f9LsSIQVgMOBX1bY5JfA5iJ8rsZzbRY1\nZ+Tq3MfALGBQrmfUPKrd1HKRVoaBPc4FypUKjgBWFJEJIvKQiByZ5sAlxEAeaXtEZGXgCOAnCZv9\nFdhRRNI8gR4L3KjK9HJ/VOVTYGz4r52oNwvtTetqddeQQ/VAnuZusCiwBbA3sAfwQxEZkfE8etMH\nE+m7nAT8Q1XfqrSBqn4MXIM9yVbjMGzRNIm/AxuKsHHak2wB6m1Jn0rvSfyq3dRSZeTVqlZeo2uA\nHU73D2Aq8LaqfgJ8IiJ3A5sCz5fuTETGFv3Tq6oP/3sasE6aE460F178ithNfgNgDvAQcJtTN7up\nJ5YzIrIUcDywfYrN/wacTWXJBBHWwYKVT9qRKp+J8AfgFOC4tOfbZOrNQnvTE3y3QC4iDnD2r/9N\n1X9QLSN/CBghImuIyGLAIcC4km2uA3YQkf7hy7wN8FS5nanq2KL/fNGfetMdNgJ48Ut48f+H3dAP\nAD7Fvm+nA8948fs28/wawEHAA6raLYEpwz3AqiKS9BR6IHB1yvri84EvBU29HchDWmn7eBHmMHTz\nZVdVX4iT8OM5afaVmJGr6lwRORm4BegP/EVVnxaR48Pfz1fVZ0TkZuA/wHzgAlUtG8gT6BUfTMTw\n4tcGrgWeBTZ36l4t+fto4GIvfkOn7ufNOMcGcBQpSwtVdZ6I3ALshTULlWMPEjL2rvvjbRFuwRKt\n89K8p1mI90sDS5BtxFsp04Bd8jmjpjIQ+ESVjxO2yaeOXFXHq+p6qrqOqp4ZXjtfVc8v2uaXqrqh\nqm6sqr9Lc+ASYiDvJXjxGwN3Y1niwaVBHMCpm4A9uR3nxX+zh08xd0RkNWAz4IYMb7sJ2Kf8/hgA\nbEUVWaWEi4FjMmzfLIYBr6lzqQJUBXpLvFiVOu1rC7RCiz6Yz8BAERZr9olEaseLXx24GfiuU/cH\np5V/rE7d61jW+b9efLuVz5VyBHClqmbR/W8FXOjVKMUBD2YcxnsrsLoIG1TdsrkMBzJ1tpahtwTy\n1YBXqmzTNl4rBB3wDWJTUNvixS+HZZm/cOouS/Mep24K8BXgH178Mg08vYYR2vGPBC7J8r5Q2TId\nKwwoxQF3ZNsfc4EroOU9WFan/kD+GrBqL2gKyuNaAC0SyAOZFjylU1aVTjlbOuVh6ZR7pVNOl04Z\n0MDzi1TAixfgAuBup+7sLO916m4AJgCdjTi3HmAksBRwfw3vvRvYsczr2wKTatjf1djCciuzGnUG\nL3XuI+AzaJvF3UrUfS0KtFIgT/24JJ2yA1ZRMwc4EWuI2Bx4XDplk0adYKQiXwPWw0rgauG7wOFB\nX283vgj8S1Vr0XzvoSSQB3lxM+DBGvZ3H7BSKF1sVdLICWnoDfJKmkDePtJKIFVTkHTKSCzzOFo7\n9HvaoQ9oh96uHfpl4Azg1hjMew4vfk3gp8AhTl2pt0gqnLq3gZ+R3BHZqnwRanYgvJfudeebAi+q\n8lHWnQWJ8lpaOyvPS06YigXCdiavm1pLBfKqH4x0yqLApcAPtUNvKf27dujfge8A46RTBjbkLCML\nCJLKuZgu/kyduzsX2MKLz2Io1VREZA3sO3tvjbt4BVispF1/O2qTaQq0urySl5zwKnZTaGd6pbQy\nheofzMnA25geWxbt0MuBq4BLpFPafTGk1TkUM8b/db07Ctn8j8gxK/deVvVeOr2X672Xy7yXw70v\nWyVSK18Axqnq3FreHOSYh4Eti17elvoC+V3AiGB/21KI9/3Ip2oF0sWLliVIaIOwmcVJtJ208goJ\nH4x0yjLA94FTtKOqHvnfwFCsSaPXI94PFu/HiPcniPdfEe93E9/YKhAvflngV8DXnLpU3WcpuAhY\nz4vfstqG1fBejgYeA5YH/oKV530DuN/7xI7KLOwDXF/nPkoD+ZbUpo8DoMoc4HbMerrVGAJ8WONk\noFIS40UbsCrwer2TgQq0TSDHfoR3aEd3e9BStEPnYAtwZ0mnDM7p/FoK8V5C8J4AvIAZNm0BfA5b\nK3hNvL9SvN+iQadwOnCzU/fvvHYYbgi/BU6tZz/ey7eADmAn5/Tbzum/nNO/YguLVwH3eC91LZSJ\nyNJY9nxnPfuhKJCLsDj2G3iuzn3ehPnbtBq5SQm0fyBPey3aLiN/D+gvwvKlf5BO6YeNuvpN2p1p\nhz4CXIkFtV6FeL8W1nhzJtaSPVid21Od+7o6d5w6txMLtdsbxfsL8szQvfjh2Ofxw7z2WcQFwB6h\nuSgz3su+wGmAc66rVYRzqs7pWVgr/fXey+J1nOfOwMOFCUB18Ah2AwZYF3hZlc/q3OfNwG4iLTHK\nsZjcFvfoHYE8r2vROoFcFaXyh7M7FugfyrjbHwOHSaesVefptQzi/Z5YjfEdwObq3BXqXLcfvjr3\nvjr3O6wssB/wsHif1V64Ej8B/ujU5dJeXIxT9yHm2Z25dd97WQn4M3CIc4lzMX8BvIjdCGtlD8yD\nqF5eAZYNk7ZGUsFwLguqvB72u229+8qZ3BpgMG15RfG+XUdE5nktWieQB6ZQPpAfD5yXQhvvgnbo\nm9g4rB/Xf2rNR7w/DrgQOFCdO0tddW1anftQnfsKFrzuFu+3ruccvPjNsBvrWfXspwrnAkd5yfwj\nPRe40DmdmLSRc6rYd+oI72suVc0lkKvqfOBpYENyCuSB8ZgpVyuRm7Sizs3DOjzbtQSx10orUCYj\nl05ZFtgVk0lq4dfA56VT1qvz3JqKeP9VrPtxtDp3T9b3q3MXYMHrBvF1Nd50AD936jLXOafFqXsR\neByr0U6F97IL1kjzo1THcPoOJrud43226qZQdrgCtpiaB5OxQL4BMZBnYQrtK6/kei1aMZCvUfLa\nvsDd2qEf1LJD7dCPME30u/WdWvMQ78dgAWq0OvdsrftR58ZhdfbjxWfXoL34TbHH9fOrbZsD52M3\nnqp4L/2wCprTnes28DiJC4AVyV7hsQdwa8im82Aylo3nmZFPAtYSoZUW+1cnR12Y9tbJ+1ZGjjU3\nXF3nfs8BDpBOWbnO/fQ44v1mWPncF9S5F+rdnzp3GbZofI14v2TGt5+BNf/kUT5WjXHA+l58miep\nLwBzgX9mOYBzOg+T3c7ImJXvST76eIHJsNhGwNrUX7ECLDDRugcYncf+ciLvjLwtA3kYKNGrM/Ip\nFH0w0ilLAbvRfSpRJrRD38Y6Qr9Tz356GvF+WSw4fVNdfmV+mNz0AvCHtG8IPijb00ODC5y6z7C6\n8q8lbRcC8A+AnwbtOyv/xGrNUw0qCLazo4HbajhWJSbDiE2A11TJ8yZ5Jy0ygCEMlFgaqDjPtAba\nMpBjAyVm12LDUIlWC+SlH8zOwGPaoe/ksO9fA18NjUUtT7DoPA+4XZ27Is99B1P/rwCfE+8PTPm2\nHwK/cuqSppnkzcXAYV58UjfmrsAAbORgZkJW/mvgWynfsgnwuqrOqOV4FZgKGwyAT9OMictCywRy\nLAOdWudAiVLaNZCvQfpsvC2llTeBZURYOvx7N3LKfLRDp2C2oWmml7cCRwMbUbujYCLq3MxwjHPE\n+yFJ23rx62Ie2T06Rsypexrz7E4KRt8DznKuLr36H8AO3ssaKbbdEZMscsNa9Ue9Ay/kkbAU8wSw\nokh1M7oeYE3gpZz32a6BfE2s/DU3WiqQqzKfruZZu2HtxnlxLvCNVvdgEe9Xxsr7jsipnbks6tz9\nmHxxXhWT/lOA85y6mY06lwQuxSbwdMN7WQezL/5HPQdwTmdhgyFOSLH5DtRukpXAVnNgYpYJQ1UJ\nv6cJtIZOvhbwcs77nAqsIt63WuNTNbJci7bMyCHcZaVTVsLutlmbgJK4HXsMb7VGiVLOAf6kzv2n\nB47VgVVLlJ1q78UPBr5MBj09Zy4D9vfily7zt68BlziXacRaJf4EHJVkqhWmAeWekRvrLQ63NGLU\n4R20hrySe0YeGuHexOaAthO5X4tWDORTsAC+K+C1ozZnuXJoh87H5IFv5LXPvBHvv4jVFPeIN7c6\nNxvTh8+u0CV3IvBPpy5PTTg14biTgP2LX/deFsOGDVeaQp/tOE4LMs6uCZutDczDvqO5IUJ/GDII\nJgzKc7+BO4FdQqVEM1mL/KUVaE95Jfenk1YN5GsCO5Ftinha/grs14p+5SGQ/ho4UV1tQxpqQZ27\nFWvA6VJr78UviQXyum1q6+Rv2FzMYr4APOWc5lKul3CcYnYA7q1xGlASa8D8t+D9vCwUinke+52v\n3YB9Z6FRgfxlLF60E1ky8raVVl7CPvTtsNFVuRIqYK4n+QfbLP4LeFSdq9dRr9ZjnyLeFw85OAr4\nd1h0bCbXAdt78cU33yOwm3KeXAaM8b7i7NcGySqMhP5PAKuKSK7eIcHDaAK2WN0UwvrLmuSvkYMt\nGjb7JpUae/piOPk2RrVkIH+RJd4dgX04ebVAl/JXrGKjZQgLnKdiVRg9jjo3BfNx+SGAF98PC+6/\nbMb5FOPUzcL8xL8A4L0MxEpT/5XrcZy+CUwsHKcMjQzkk7FA14isvNts0B5mIDBXnXu/Aft+iTYK\n5Jie/7YqaZ+42zgjH/bgCJRHtUPrtfOshAdWlE7ZtEH7r4X/A/6szuValpSRnwEHifdrY1rxp1jJ\nZivwT6BQ834AcItzdVvIluMq4EulL4rISsBgrJ0+b0ZixlnPAOs3YP/3YFJls2iUrAKWkbeTu2lD\nrkUrBvJ3GH7fIsxe7pFGHSAsel5Ci2Tl4n2hauT/mnke6tw72GCHTmxB+FynuTZw1MONmLyyItYL\nUFfJYQLXA7t6L0uVvL4DcJ+q5jLRpYSCWVajAvkzwACRpk2db0TpYYG2klZo0LVouUCuirLGhNm8\nPDp3r+sSLgEODwOdm81Y4JfqXCMyzKycPfhNdp/Xj12Bvzf7ZAqEGvY72OzRY7DuyvENOY65Ij6E\nGWMV0xBZJVSTbIBl5E/TgEAedPJ7aZ680ohmoAJvAEs3erRhjmS9Fu0prUinCEMfX4L7v93Q5hPt\n0OexFf2mzjYMplg70rw67S6ocx998/c8Omk73mykVW2NXMXWD34VuDan2vFKXEN3C90GNQIxHPhI\nlfexzHmDBhwDmquTN0xaCS3/L9M+WXnfyMiBYcj8uby644o9cKyLsVrkZtIJ/Eydm9Xk8wDAi1/k\ncxPZ6JKjGJjjRKG8uIGNn1iX6Svf3ODj/AvYx3t7WhORZbBMueahyAlsyELd/VlgPRFpxO+yVwby\nQDvp5H0jIwc2Z9aQl9H+PXGHvRLYTTqlJ24a3RDvR2HzGnvC3zst+/ZTXnl+XX6Pzb5sHSaMXpJ1\nXlBO/OOyjTyMc/oa1s+wXXhpO+AR1YY8BSwI5Kr6AfABNETLfhRYXYRmfNcbVXpYoJ108j6z2Lk5\ns5f9Dz3wwYRhFbdiVRDN4H+xbLzHmn9ScALmSfM74ADxvpXan8fw1uCH+WD5SuWBeVI8YadRsgqY\nMVpxJUxDFjyDP/kDwOfy3ncS4v2iWMldnj7kpbRFCaIISwHLYbp+rrRiIN8C7TeRnvtgLgMOzfQO\nEUHqM94S7zcCRmG12y2BF782sCVwVahguRirJW8VvsDSs/4E7Oyl4Ytb41m4ftKo+nHoKq2ALXj2\nJp18OPBGuQHhOdIuGflawJRgZpaWNpZWVnjpdmCQCFkn2NTCTcDm0imrVNzCAvfOiFyIyItYffUs\nRCYj8jukpnr004DfNtLdsAa+DlzsdMETwq+BY8OAi6YSui13ZuC7V2PeK6VVJXnzALD6n/4kqwFb\n04AuYxH60X1O59NYXXkjaEYgXwcbYtJI2kUjH4EVWOROSwXyoFWvwJLvP489ijXcQ0E79FOsBfzg\n8iclG2ANRH8C/oPVey+HNYccBbwN3IjItYikMu8J8zL3wSSMlsCLXxw4liK9Xp2bijlGHtOk0ypm\nD2CSc/oB9nntX2X7unBO5wK3P/kkXwNeCPp13qwOvB8qVgo8CdQzHDuJB4CNwyN+T7EuOY2vS2AK\nsGqQcVqZhl2LlgrkmF74ZGjY6cm77GWUGzghcijW2XgVMBLVs1F9GtVPUZ2F6sOo/gh7rHsEeBCR\n/VIc71Ssi7MRLcu1cgDwuFNXmjGcDXxLvG/2d+ULLGzJHwfs7aXhP9ybp09nDD0nq4ANg9hI6pTu\nyqHKx1gy0pM2ziNocCAPss0bLJxj0KrUkpG3pbQykoVf7J7Uve7APNDXWfCKyH8DZwK7onoOSR19\nqrNR/TGwH/AHRL5baVPxfjBm+HR2TueeF9+g/BPCJOA97AmiKQSP8L2AGwCcumnYAlejZYKbp01j\n5KKLMrFB++8WyFX1HWAmjQtKjZFXTH78CiKTEHkIkW9h803XpUFyQgkvAmt78at78Zd48ZO9+Ku8\n+I164NhdEJF+InKSiPw7/HdCuDE3LyMXkT1F5BkReV5ETk/YbmsRmSsi3XwqMjCShXrhCzTGQKgb\nwfP8KmyAAoj8F9a+vy2q6Yc7qN6PZTtfDzeCcpwE/FOde72ec86T8GVfC2tP70JouPgt8O2ePq8i\nNgdmOKdTi15ruLwyejRvPPkk/U47jUbIKlA+IwfLyhslr+QfyEUWwSwTjscqsf4LOAS4ENWekFYA\nntviYbbDEo8XsSfse4EJXnyj11MWICKLYQ1lhwGnh/+OA84FbU5GHiaGn4Ot3o8EDhXTjMtt93Pg\nZqjLwL5gHgShOaKOfWXlMuDQ+SanfAvYDdXsZUKqr2HOfEcj0mWAhXi/GLag+Nv6TzdXTgD+7NTN\nqfD3K4GRodKmGeyBlYkWcx02OaiRAxM2WGQRZu62G5s0aP/NCOT3AaNEyHM82m8wh8OdUL0D1buB\n3T5ddNEN+8+fvxqNrSEHYMmPefG0szgZ+JlT1+nUPe7U/Ra72V/qxW/W6HMInIvFVaeqE1R1ArAr\nLL8jzF0BG16SO9Uy8lHYQs8UVZ0DXE75LOibmDvdW3WeT3FG3tOBfNIW01lhXj/+AOyHdsn+sqH6\nOrA3cAYixRYAXwSeVeca4aBXE178ACx7+HOlbYIGeT7Nm6y0B3BLyWtPAvOhYUEWYMflluMRGjDz\nMlSsrE/XipUCDQvkqryLFRLk4/wpMgYrADgI1YX9EKqf/Ojoo8euPmOG6OjRDa966uhk7XcGIsDv\ni1936u4DvgNcEQalNAwRORir0z80xEsAVPUj+MGZ8Gx/kOUacexqgXwYNuC0wDRK5uOJyDAsuBf0\n1Zrc8qTlPe4nAAAgAElEQVRTlgeWKTreK8BgEcrNaswdHctS4y9liZ/twMRMckrFHeqLmO3qJYis\nEV49iRbxVCniUOBup67ajesvwJfFl52d2TC8l2UxaaWLnW5wZWy0vLLDzJn8C9i+0K6fI2sC76hS\nziitkZUrYJLDDnXvRWRJ7In9OMpU9Zx5+OH9lps5cxoN7hD24pfe6iEO+O23mV3OrdOp+zv25HNq\no85BRJbFnrSPVtUydhunzYX3XiPdgO9iclnsTLOTs4Hvh/FXQu3SygbA09phY7RUmYdpXT3l9/Hz\nuf2454xd2Fg6c6oYUJ2ISU6XDbn22s0xHfq6XPadA0GW+AY2xzQRdW4aFgC+3OjzKmE0Vnb4cZm/\n/YvKQyDyYMd33+UW7Hu4dc773hQbr1eOp4B1gt7aCPLSyU8FHsTkg3KMeGPFFe8EvoJ0swXOky+L\ncv9z6zFQfMWs+1TgFC9+eIPO4TTgFlV9oMLfR8AqtwLfzHsKFFQP5K9hnVkFhmNZeTFbApeLyMtY\nCdsfpUIJnoiMLfrPlfy5WFYp0DPyisguwH5Lz+Fo4BNgmxz3/hvgnU1eeulC4E/qKurQzWBrYHm6\n68+VOB9b0OpJyunjBSYCq3nxuVd4iMhqwJLYQt0E8pdXKgZyVf0Ekz/WzfmYBe4FdqhrILPICsAp\nJGfb674+aNBDWP16IxOAb/RT/ohVMpVN/Jy6l4ELgEpFCDUjIitjCdEPEzZbF9a+D4txY6rszxXi\nJHw/VQdztUD+EDBCRNYI2cEhWA3vAlR1LVVdU1XXxHTyb6jquDL7QlXHFv3nS/7cnEAusjgWoE5Y\n7lN9H1sHyO9Lpzr/1wce+M2H1ltv0yvHjn04t/3mwzeA8526tC3DtwArifebN/CcSimnjwPg1M3F\nBk6kqd3PSvGg5TuBXXLef1JGDo1d8HwVmEN95b0nAtejmmQAVahYuZByfRo54MWPBFbCbvbPkRwv\nfg0c4sVX7uKujW8Df9fkdbVCGealwOFJO1NVX4iT8LNUMwoSA7mqzgVOxn5ITwFXqOrTInK8iOSd\nmRVXrBR4lsZlJQW+DTyD6o3h31cAB0un9M/rAKeedNKYld57b9JBd911VrhxNB0vfgVs8TW114s6\nNw/LanokK/de1say4icTNmuUTl7sr3IPMMr7XD+7pgXyokETtenkpo1/EzirypaFQD4e2AqRwTUd\nL5kDgKudunlUiRdO3ZvYQJnctPJgcfxV7Mm7wjYU15BfA4wWyddxtWoduaqOV9X1VHUdVT0zvHa+\nqnazXlXVY1X1mhrPZX3M+a2Yxmbk9kh0GvaICIB26DPADHKqtQ0TxE98cZVVvo/dkf8nj/3mwNHA\njU5d1kqjC4FDemgiyx7Arc5p0lrNLcA2XvzyOR97QSAPtgBPk1NHpAjLA4Mw7b0SjczIob4Fz6OB\nf6NaruIGAPF+ALACMA3Vj7HS5Hp6TCpxABYcIV28+A1wjJfcFu2PA+5U1aQSy4HY2uHbqvohZvmR\ndqBN+3R2SqcsBqyCeSYUE4z266pNT+L/gD+jWmrqk6e8sivw2bz+/e/FHkdPRKSpAxvCIucJpFjk\nLEWdm459EXti0bOirFLAqZuFVbTkNukpZEurAY8Vveyx/oA82AR4MizoV+IJGlta2SWQS6csKZ2y\np3TKkYlDya1D8SQSMtDACOBFdQtku3EstAXOhbBwOQwWdN5WDeRO3Sth+4rfX+9lae9lb+/lCO9l\nw0rbhQEg38YkmyTWA54NT0JgTyh7V3lPJloikANrANO0Q7ssBKryHuY0ODT3I4qsj9W/nlnmr1cA\nB+Q0z/Mk4I/qnKI6HatiqfbBNxoHzKV2j+2/YAZbDSOU++0M3JZi83HkK698DnggSIsF7iU/L+9q\nsgpYtr5C3o/gRTwJDBVhsHTKgdhC4X9jwfY66ZQ7pbOsCdzWwBLYjS2JUlfH2wGH5FrGuQtwZ5BV\noJD4+apNYucCJ5ZrJvNejsCu/XexYHuz9zLeeyk37GM08CG2mJtEsfUIWCDfI+UkqPbJyLFFl0pW\nl42SV8YCvy5X/6odOiWcz671HEC8Xw0LRpcWvfxbYD1Ecr0jZ+QE4LxyNbcpuRlYU7xvxMT3AtsB\nzzunb6fY9npgTy8+r3K9cv7j9wHbei95dERWDeSqOh97ImjIwnJ4GpjEEXucBfwC2F87dCft0MOw\n3+PNwCTp7NbJ/VXgL2ii3AWlxQuqb2IdnqNy+r8AFsgXlD6qc28D8zBn0iRuwWSfLiWl3ssZWFzY\nyzndxTk9DCsZngRM9L7bk/RxwF8047VQ1Vew5sktqrwvNa0SyNehsl6YfyAX2QTLSs9J2CoPeeV4\n4FJ1buEgadXPsE6zs5ux8OnFDwV2B/5W6z7Uubnh/cfkdFrlSCo77IJT9zq2kJSXh8gOlATycEN5\njXx0603pKttU4mGsvLcxjP7h+6zy0JeAHbVD/114WTt0nnboWcAPgJulUwYBIDIAOAgbOFKNDele\nhXYbsFsepx6y6dFYRVEx1SpXCFVaf6Ho++u9HIvZUm/vnD66YFunc5zTH2FP7jd6LysAiJVf7oN5\nzFSjXEXeXeToedMqgTwpI2/E6KsO4CxUZyZscxWwv3TWVrwv3i+OZS9/7PZH1ZuwG9fXa9l3nRwH\n/NOpq9cI6iLgKPE+T8+OYqrq4yXkUr0iVpGxKeUflydSZ0dk8DjZENPAq/EIOWZtXc6jU1Znh5/v\nyeX/elU7tLQ3BADt0IsxmfGvoUnuEOCuYEFRjXLB6x5g+3rOu4i1sfhVakL1FOkGc/wdONiLXyxk\n2r8Axjinb5bb2Dk9D0ssCsnfocDNwa2yGpWuRZpA3lbSSlJGPhn74ueDyLrYBUwceKwdOh3Lmmpd\nRDsQeEKdK63EKfB94H+w8qUewYvvjz0lZF7kLEWdewqzU/h8vfsqxXsZjC2WTcrwtnHAfjmYaG0D\nPKFatpM0D518PeA1VZKSiAINCeQhKP+Z+Yv8kld3XKuKDcb/YvLCAcCR2A08ef+WxKxG9yA7Cdg2\n2NvWiwN8GXkwVbxw6qYAT7HInL2xSqyfOKel5c+lnIbJa/tgCVHV0l0RlsVknNKZpfcAO+TlO98q\ngTwpI38SGziRF6cC51LWD6Eb9cgryb4qqo9jPug9ORNzT2CGU5dXY9Jfacyi526Ad06zdMFOJh8T\nrW6yShH3Ajt6X9ePb0us0S4NzwKrBB+PPNkHWJVFPzkL0+or6tbaoZ8B3xj+Ab9Tu7bjU+x/XeDl\nbnM6Vd/GBkDkkZhtDdxf5vUs8eJv7H/d6Vivwu+qbRxsIo6fMoVzsWqZO1IcYwPgmdI5naF56BOq\ny8btkZGHxps1sVXzckwDlhZhYP0Hk6GYxpekjRdzNbCXdMqATIexzsdVKePvXcIPgW81qFGiHJWG\nR9TK5cDu4n3elRVZZZViE616uzx3pHI1z0vYbybVSL8KbEXKQB6qZv5Djgue0imLAL8ETg1VYlXr\nybVD7z75AWY8sCovojo7xWHKSQkF7iOf6p+tgQfLvJ4+kG/x8HV86ZpRvDq80zlN1d3snN5+/fV8\nuvHGPKNJw2YWknQtHsC+D3XT9ECO3dne0Q4tO4Q41F7mJa98E7gM1VRNMNqhb2O6aKI3QhlOAs4P\ni4IJB9CXsMWShjcJefGrYw0tV+S1zzCqbjw5tl+HbHd3MgbyQF1liGIDEralQiAPjUn16uSpA3kg\nb3nlS8A7LMysUzUGnfgg/X6yE+ukTGrKLXQW+Dd1LuB68Utg62blXEpfBxYV74dU3dGvvrs/Hy77\nFkdfUn3bIm68ETn2WDbyXtLY4iYF8tw+21YI5GmmbNcvr4gsjenDWWu4M8kr4v0KmJ5Y0d+7hJ8A\nR6Yd3FwHXwcuderKab/1kLe8shHwsXOa1PVYiXuBNb34cjW/adgEmFZlAatmnTwsdG4KPFpt2yJy\n+7EHbfx04OcFl1FCWWXioAmRNQfMYeXb1+JW0tmwJgWvx4B6hzxsCjzr1HVL/sJEqyepkvh5L/2A\n/+L+bc/Hfq+pEJGRs2ezxCabMAlbM6hGvYG8PaQVTB+v9qPNQye30U+aOUBcBzjptLKjFBwL3KTO\nzUi1teoM4E9YqVdDCPXVx5HDImcZ7gCGiPd5dSGmLjssJUw4Go81etVCkqxSoJ7W9pHAqxU8yCvx\nMPll5LtgevANhRdUSVNWeQhw9exF+CVwcgofotIGmGKeAEbW2RhU7akmTbzYC/iEa770S+BzwXso\nDYcAV/Xvz2+AU8INIYlqgXzzlI1BibRTIK9dWlnYVty9FLAK2qEfYMGqqu91mDR/ItmHR/wKOBiz\nTm0EXwSecVqxgqZmgpHWJeRXU55ZHy+hnjLEco1ApTwGrFGoJ87I1mSTVcCCwBpiT5T18l/AL7Wj\nmx5c7eb0ZeBy7dAHMemiotQYxhmuSaU5nVby+yr1lRRX0scLpJFiTwV+5T7c7yOsFr2qfBoqTA7B\n5EmPdZ1XrGoTYQDmzFjWh0Vt8fd9rCqoLlohkK+OTQNKYjKwUR2eK9sBS2FtwrWQVl7ZHfiIbGVz\nhdX8C7DH3kZQy80lCxcDh4n3dbVfey9LYRp1pUEFabgF2MFLNlOv8CNNqlgBwDmdiwXjWjoUtyI5\nAHUjjAx7ijrlCOmU4di1vbzMn++lUk2zyJrAyix8UvkdttZUiRHAVHUuaVG0XnllM5LlqcSM3HtZ\nH6smuTK8dDVWLlyNjTF7gn+H9ZJzSO4F2QB4roqnTjV5pW2kldWoHsjfxErLavVcOQkrOUzru13K\njcA20inVFkVOBP4QdLqs/Ao4FCnr6VAzXvxG2DpEwyYTqXPPYRUd9U4r3wl41DnNIj10wan7ENN9\ns57LOphHd2m9bznupzYnxKwLnQUeoP5hJ8diWXWl+vhKgyb2A25gYYXGNcCm0ilrVDjOJlT3kak5\nkIdeiHXpbnldjCV+lT1XjgH+VlTeej3gvPhqZZ77A9cUteRfCTjvpVJcStPBm8saSCsE8qoZeahc\nqU0nFxmCmd9cVMO52fE7dBZwEwmLIuL9GljXWpqW3TIH0TexBoO8s/JvABcE/biRXEz98kq9skqB\nWsoQdwTuSeGbATUEchEWxx7307Tm1328LsfulH4EX5AKm7yMZX5rlvnb/hQlAdqhs7Gs/qgK+9qM\nBgZyTIqd4dRVbKhS594CZmOOql0IXjlHY4v0AIQu57ux+vok9qdosI5z+hFwLXBEhe3TXIvJJHei\ntn5GHtwFhwDTU2xe64LnV4CrUX2vhvcWU01eOQG4RF1dVSG/AA5HJJcJJkFeOBSTbRrNFcDn66wp\nzyuQXw/s7SWTfUBVWaWIB4BtUix0FbMJ8IIqtXw/7qe+jHwX4D3t0EfK/bHioAnzE9mK7pLkRcDR\nFWbbpslC67HoTVpILabSAOs9gSllujgT5RWxJ+U16b4Y/hfguApNYmlcLp8mnaVAIs3OyFcFXtcO\nTa63Np7ALkx6bDX4a+RTrXELsLF0dpc+xPslsIynvmYbq2C5iPyy8sOBCU7dazntryJFNeU1dcJ6\nL8Oxm3qW0ryyOHVTsae8LGWCaSpWbP9O3wA+INv0qu3IunaykBeBpaX2G/xh2IJ0EuUWPPcCJtDd\nruBhbKGvnK6eJgudDixObRa9G5IukD9O+XhxNOWfzq8Hdgs16uXYF7ipxNoYrK9gUUoae0ToR7pA\n/gKwar0DmZsdyFcnnSYJ9gPP2uG2M7b4WHdLenik/BfWGVrKwcAj6lypt0QtnIXVlWdqUigleI6c\nSA2VOnVQj7yyO3Cbc6m65dIwjpTyShieO5B0AaJAVrlje0y7z0yQe2rKysPQlv2xebpJlAvkXaSE\nBedjNeh/o+SmLd4PxYJaWROuhTtQxczwanE1TRvIu8UL72Vp7HvW7Vo4dW9jQbfSkO2y1yIsel5B\n97iwBvCBKommWmEx+yUqJwWtL62QbqGzwBPAukFrTMuxwF9TeCenpZK8kuyrkgXVN7Avxrfr3NPn\ngMXobvPZSG4DVhXvSz2s07An+cgqBcYB+6c00Sro41kWw3sskNd4vAKfB57WjsTBwGC/r2EiFCxr\nF8OC3g0Vtv8n8KWSmvJNgcdSLvbX6mqaJZCXLiLuA9zvXMWGr7KdwWEu5w5U/n5eCRxcIq+ktSqG\nHOSVZgfyNKWHAKjyKeamlk4nF1kOy8j+XuvJleFOYE3plAV1n+L9Vlit6E05HucXwPHUZ5Z0InBu\nHcMjMhMsCS7FHl9TExagdiPfQP4YdiNLc1PZCVvsykLqwCrCqlgjTrUO5lyOV8LBLCyzq4gqc8Mx\nCjazDng6yH3dt+/QF7Ca8mL5Ko2sUiBzIA9rHiNIrlgp3v+wktmyB2H21JUYB4zx4kvj4u7AfWHe\nZjmewKSm4pLULNfiaSp/T9smI08rrUD5u2wlDgbuSOurkoag5f8TawoocBJwbmiMyelA+hIW1L5R\ny9u9+JUwfTPNAIC8uRg4UrzPYlW6DbYAlcbnOhXhBpbWe6WWQP4oMML7VN4j2wH3Fc1srIUHgS2D\nH0wqgpf+flSXVQoU15PvRxkpoYR/0nWBMEsWWktGvjrwZhqbiZBUTA7nVCyr/KvSe5y65zAptjTG\n7EdC+W6RvHJw0ctp9PECT5Eu4ahIswN56ow8kEUnT+UXXAOXYZUgiPcDsa7JRhznZ8B3kFTGPKV8\nBRse8X7O51QVdW4ytpiVZRLMnthosbypWoYoIgMxPTPTIqtz+hn2Q03jXrc9tS90AqA2kvAVslV7\nfB74T/DWT4Pp5NYclRi8Av/EZtsW4kiWLPRZsgfydejucZ7EIyyMF3sDD6QYHdhlbSXcOPehupPp\nP4EDi+SVzYjSSkWKP5jKiGwQ9p3no3qBicCK0ikbYjeLcaFuNV9Un8CaR47J8jYvflEsk+/JRc5S\nLiabvLIXjQnkdwHrh/F2ldgBmFSmGiENaeWOevXxAll9XvbD6pzT8gCwyfOssy1Wh51o6aAd+izw\nLrCteL8kVp6XRvYAk5lWz+i5kjSAphzFid8BJMsqBUoXybcHXg3+4Uk8ic0L3ViE5bHF87Tn+jyw\ndgXPldaWVkINalZp5TFgExGqPbYfC1xCbT/ORIJPxeXIIkdgAbORre8/A75HhsdpzKb0Jaeu7jK+\nOrgM2Fu8X67aht7LEOwHmkeg64JT9xl2M08y0apFVilQNZCLsCS2rlNLR2cpd2PnW5WQJe9L5cXK\nboQa9yc+ZNmvA9elLBK4BvMh2hh4ttswicoHm41NmFo77fmRzim1mEeBzb2XRbEehWpZNdiT07Bg\n+wzpnkwK8krhJrA58J/SYRKVUPOf+RCzQqiJZmbkg4FZoWsyFcE1bjpJZUs2RuoIGqsPX8LAbb+K\n6ruYv3JjUJ2IlXIdXG3TImywcxNR597BjMbSnPfuwJ0ZpwFloVoZYt2BvMrEoK2ByTU2ApVyN7BT\nyvFgWwAfhEXJLNw7lDf2oLo+XuBGTHqoZmRVjhdobCB/Alj/A5Z1wAuh/j8Rp24edvMbE65z2bLD\nClyPmW9tTfa48CLlr0VrZ+RYNl7tcaUc1RY8HfAGWnX+Xs1oh/6HYQcuxjsTfY2+Klk4E/g+KX68\nXvw2mB9N2i9eI0krrzRKHy8wHvPR6OYeGMrKNiB7ACowFfMASvKSd5hTXt2Ex/tZpNOWx5AuA+3C\nXtz09ABmDiL9E9JDwCDmfDia7MHrZcrbAlQiUyBX5z4BXpzJgCOxG05aCovk62MmWWm17ruBdZdY\nYuZOZP9OVQrkqWhmIB9GtcaB8lQzmTmMfEsOuyHej2CZ9frxzJnDG3mcwM2Y9lbNBwKs9vx3Iato\nNuOBEeL9OpU2CC3utU4DSoVT9x72oyq3+Lo98JCqflrTvt2CRp0kecWRUyAPpJVXMskqBS7ga4Nu\nYF+EdL0XQWocD7oD2QP5S6S0cA1mWUkjISvx8DJ89HmyXYvbgG0GMOBgYFxK/x3CU+UtIrodtWXk\nNdvZNjOQr4IZ2melshOctbl+kfJWnXlyEjr3z8z7eE/plOUbeiT7Ev0M+EFSVh6m4uxJYypoMqPO\nzcEMxJKy8q2Bt53TLAvetVCpDLEeWaVAxUAuwhJYbXGq1v+UVA3k0inDsKA3MevOhzF9l5vZ802y\n+BotudoE+i0xiGydsZAhkGOJ39tZJ1yN4oGX+jF/OSwBTEUw5LpnURY9jIyuoU8+ud1dwDJkW5SF\nNpZWhpHOLKuUh4DNRFiszN/2AR5FtWHeIuL9AOBIFhlwNnbnzqJf18rVWNNRec9o40Tgb8HJrVW4\nGDgqDNwoRxdnvQYyDtg3ZHXFNDSQY0H8qYwTgapxN7BzFZ18X+DmlB5GC7Emuu3Gs9ftJH/XurLR\nT95j5vNw1+hyv8kkXiZ9IM+qjwNwHBcO+DejZqcdrlzgOZ6b8DEfr4lVPqXmzDMveX/kyPv7TZgg\nWa/FS7SxtJI54KryEfaBljPEOZxabWTTcyRwlzr3Cma+c0yDj0eovjmLCuPgvPilMHOw3zf8XDKg\nzj2GTUDZucImPRLInbqXgTcoCrhi9fmbU2d9N+bjs7H3ZU2PRpOvrAL23S/IDJXYhxpkFayy4953\nGOTJEsiXGr4hn0x9HXNZzMJLwJpp1n/IXnoIwAie3+xudloiTQVVMZ10zh/FKJ3AhEw3gOnT1xm5\n2mpPzyD7XNdK0krLZ+S1SitQLgsSWR7YFcteG0Iwqj+ZhQHzFmAt6ZR6xlal5WJgE0TK1dEfCUxy\n6uppAW8UF1HmZue9rAOsSCOrfrpyDV395EcBT6qmr5oqh3M6C2tuKfe5OHIO5EGv9VQwdwrW0Dtj\nT4tZKVRoeMBlmMg1is/eu4t06zgLsSanzyD4uySzBjAly+69lwH90G0fZstHMBkvNdOZvvMWbDGN\nLDc0Y+shQ6beTfbBJjOAJaVGW45mZ+S1SCtQ/nH2AOB2VBvZzbgLdof0ANqhczBvkWMaeEzD6m5/\nTUlWHuSC72L+LK3IP4D9gyRVzP7A9VkfeevgKuCgIh+NXcgvyE6i5PsY9PGtyVcfL3Ab1rVZjlHA\nS9qR0ZrCGnP2Aq5XZQpWHZN2Tu7WzJ15CbBXBY/yJNLKK1kM9grsCDwyk2XuI4NPjYgsBYwexajL\nyTCgJNz4Rq266nP/wBbxUxNu0DXLK80O5Pll5D0jq5wMnFNScnghcFTIhBrN+YBDujwBfAkbhdeI\ngFE36twMbGBD6XSl/Unwvcgbp24y5qNRWCjfFat1z4P7MT+VYrYjf328wG3AbhU6AXejttm0OwIv\nFq0v3YFdo0TE+2HA4vRb7DbMwjZrIDJ5pTpZLK8LFK5FVsOxXYGHV2GVK4D9Ujpogv1/n7nDDuPG\nYwO6V8p0tnajKh3A3rrSinTKUlh95rs17uJZYKAI5tktMgzzNshSK5oJ8X51bHHs0uLXtUOfwnTL\nWie3p8c6wH4PfB8WeI5/H/h5T7oc1sBFFD21eC+DsTWOnrTYhZCVi8iAcPzMVR0V6JaRY4/WDamP\nD/Xkb1Fezqk1kJd2MN5BOs17O+ABPeYiDcet9KRQibSVK1ntPKAkkCfM8CylIDE9AQjpK3g+B9wX\nBnTfScasHLtRlQbyVDQrI18FmB4M6jMTWl+LyxC/DFxLjfXAKTkRG+VWblbgudiot57gHGAMImtg\nmcMS1Law1ZPcAGwc5pqCVVXc5lxDP69yXAUc2J/+O2P143l0W4ItVC3pvQwrei1vf/VSuskr0inL\nYME929PZQpOs4kayCcDOIlSzh9iRhSPykiSfSrxCckNVwb52KBme4EM2vDrwoDr3GvAJKW4YYp3h\nY4Drihw008orO7Dw2t9Kdp28XCBv3Yyc+vTxAsWPs4fTwCYg8X4pzCCrkq/KNdgYuCyjv2rDZo9e\nAHwPy8bPcup6SmeuCXVuNmbzeWR46SDsmvU0k4FZK7Py4eQnq3RrDBJhKBZEHsjrGGUoFzR3Ah7M\nYnsR2BjLPJ8ovKDKDKxzdcsq7y0ekXc7MFo6M3kDTQOqNdYNw+xr0/m4GLsAd4XsGLp6rSexDfCm\nmpU0ZAvkxTe1W4DdM851nUojM3IR2VNEnhGR50Wk2zxJETlcRB4Xkf+IyEQRqWa1WU/FSoF7gJ2C\n0+FKZKz3zMjRwH3qyleFhDFwfwW+3sBzKOY3H7LBETBvfcygqh24CDh6vF9yEPaD6nEbgZBhXTWb\n2buRYyAPFCcWuwN3hGENjcIDo8LCXIFaZRUrA+3ewZiok4v3y2Ijyh4C0A59g3TBv5ip2OzeJGpZ\n6Cy9FndTuQy2mNKS2LuBEV584rzUIPMOxVwQcU6nAO+Rbc7wq1S/qZWlaiAPjxrnYI+KI4FDxYJn\nMS8BO6nqJsCPgT9V2W09C50FJgGbzWKpo4Er0NxmPXYhNLOcAvyqyqZ/wiaL1+Ifng3VGc9z8pur\ncMOzGbOUZvIQ8NnTbHAacLNzWk6iajgTmHD7TGYOWp3V83AjLKZYJ2+0fwyq+hHmO+SKXq4vkHen\nmk6+HfBweOIqkFUnn0r14JVpoTOYmH2ertfC0/VaVaLLtXDq5mCfZZKDJpg+PkmV4jh0C9nklYZK\nK6OAF1R1ShgUejklC3uqOikY34M9Tla7w9YtragyS5j/GPa43shqlTHYxPR7kjbSDn0JC1YHJm2X\nB178Rh+x3nJrc95mNU4i73FCpc/FK/DeETTeQqEiP+bHQzdgg48v4qK0k6bS8iCw2W9+M3pxLIg0\nUh8vcAMhwEinDMV+d9luUCLDsaqRct/vu4BtQillOYqlhAJZdfJ3gcWRxElLWRc618Gapor91CcD\ny4v3FWOTiKyHtdeXDmtPI6/kcS2mA0Mkm0c7kC6QD6OrS+G08FolvkL1+ZV5SCt8iWue/ZillqT7\nhc+TU4FfpXQ5PA8b/dZozoD+Z/Xn038B3+qB4+XCV7ng1sG8NfRMvp9XtUhmFN11KEMnkrO1gnP6\nEcRmhf4AACAASURBVPDixIn7fxl4S7UmZ8+sXM9Cu9VdgQnakfnJdD/gxnLe/aF0cjKVteVifbzA\n3cAW0plqBF7BS6haVp51bsFuwO1h7cIO49x8qssr+2MmWaVrTuOBnco5aBZR7lp4YJT3XeSvioTh\nJjOw+JiJNIE8dWWJiIzGFgW76ejh72NFZCzj2Y4bGZx2v5U4gx8tewWHzExpgJ8Z8X5rLBtIO/Pw\nBmCwdEppTXFuePEbY4ta52JmWidhdqwtz+H8Y+fJbPjqrexxUBNPY9fFWfxc4JAy3iv1cv/Uqetl\nNlqqg2ewST6bkb+sUqCsTh4mAm1Jid1tWGh9iHR6dIFpJD/FZ83IK10LT7K8UvZaBP+iB6hQThgm\nAq1PSZdyuLk/Rrbu0FeB/RbESk4dkuZNaQL5a3S9Ww6njP1sWOC8ANhPrbKiG6o6VlXHshdz2afO\nqfMi/Tbiye3P44SBIqS649XAqcBvwyDXqoRs6OzwvkZxBvBLp24Wqs9jX9ieKn2sl0PfYvAfgRMz\n1PTmhoisBSxzLdeOw5qosgSbNEyaMmXDbeihRqfQDTgOYQy1BHKztdiWZBnodspbAH8OeFydK9fw\ndFuF91SiWkae2vLae+mP2ReUW8z2VPjMRWQlrJN1QoVdJ81/3RnTx8uV02aVV14F3l0QK/nVjDRv\nShPIHwJGiMgaIrIYNkG+S8WBiKyGlZMdoZo8kSS08A7FTIzqYcd+6NuT2egxunfV1U1oAPo88OeM\nb/0r4KRTavYWroQXvwl2dz+36OWfAqfUOKS5x/BeRgLD1+W5X2P6ZVYPizzYC7g5PDpfik2Syo0L\nLvjpG3PmLD6A2gdV1ML1DOEg7Mk5y2BisOtxd2g0q8REYH2Rbk/QSTeOrMGrWiBfhfRralsArztX\nduD0k8DA0I1ayr7ArWpWGOW4HtinwlNcUhVULdeieMEzn8XOoNucjN21nwKuUNWnReR4ETk+bHYG\nsAJwrog8KiJJRkgDgHk11LqWcihWeuepYCBUJ98G/loh46iIduhMLPg3QrvuAH7h1C28djak+d+Y\n+2Ercxxw8dfdc3OxwdAnNuEc9sL0TrAF1y968bndAC+77LRNtttu3NwJE6Ru2TAD97IGa/EpE2to\nsKvqPqnKZ1iWWiorJAXyR4BVpFPSzqCsGMi9+CWwBch3Uu6r4nkV6eTl4kXitXDqXsFuJuWSxqRr\n8SCwWoZ2/TRVPN1IVUeuquNVdT1VXUdVzwyvna+q54f//VVVHaiqm4f/RiXsbigm6NeOreoegP0Y\nbyN7B1Xy7r0fhLWU1zr78hzMfyW3oRNe/LZYs8K5Zf48FhsH1yiJqS68l8Ww6qLC0ItLgD3EJ063\nzxWxoSM7YR13OHXTsR/ZmLyOodp//y22mPAE2Xw96jymzmFD3uGxso/1lbGn67QDiW8C9l7wVu8H\nYvXjZRuegsQ4gRReLYGkWvKVgdczNL1Vk5huwcpDFyAiS2PaeTW5t5u8IsIwYAgVxsGFhiRPeqlp\nOjUMYW5GZ+dK1C+r7Aa8gOoU7NFvhAhZDWqS+A5wlTpXyyg6tEOnYV+KXLTr4KlyFnBG2Qkpqo9h\ni07NyHLTsC/wjHP6PIA69wFwJXB84rvyZSfMtrbY3yc3eSV0c47cfvtxN9EAqa/icTtlEYaxIvel\nmuNZzGjgGbT6QGLsKWZ3EQqywmjgHnWJPQy3kz6QJ3V3ppZVQnXINiS7Wtr/l67DTnYHHqy0tlfE\nddhTXPH6jlULda0fLyWLvDKdrlUrLduiX39GvlBWQZU5mEFNLlm5eL88FoB/XueuzgROkU5JKllK\nyxjMu/vihG06gO+1aAXLcXQfQfdbbNGzp7T9YlmlwDVYWVkaP+xqHAjcuOSSsybSgxk5sCX9eJkP\nWU9EksqCSzmQlN79oZRyBrBVeGl3qi+s3g7sltLW9jUql9xl0cc/BzwWqkXKEgbCvE3X7tODSFeZ\n9ii2vlPcrbk71b3fbwM+HxqVqvE6bZSR1x7IbVFvDJbRFbgJ+6HmwUnATepc1iGvXdAOnYw1VNSV\nlQfDoJ8BpycOVVadjC24fLOe4+VNMJLanpIfijr3FCZtHNVDp9ItkIfZjDdiC/j1chjWmPYAsKX3\nmfxG6mE3hNuwAoR0zWgmTX4BMxFLy3hgr1BttA/VnUZfAOZjEkw13gOWrLBgnyWQp63cGU+IF2FS\n1N6k8P4JFg9XYoGfYCi2F+muxRygtCO+HK8DQ4ssils6I69HWtkbeLjkkfBmuj761YR4vzS2yHlm\nPfsp4ifAd4Ntb60ci9340pRrdmIVLJnGWjWYE4DLwiSdUn4BnCo+93ruLojImthifLkBvH+jzsEg\nIqwFjMAcHT/ASsg2rmefGSgErytIf0MaDbyEZhp6XdDJNwdmqXPPJW0cFl4rlS6WbKyKxYRymWhD\nAzn2JP+oqqZNLq8CDg7yyrbAq6rJpZGhMSmVvBKqZj4k3dSkBbSjtLJAVikQLuRrLLS1rZXjsXmc\nT9e5HwC0Q/+DeXDUZKblxS+LBefTUvmNqz6LZQen1HK8vAlzLL9O5Vmid2MzPVNPYamRfVhYdljK\nbcBKXnwWc6NSvgxcFWQ+KD9oIneCbLcVdh1vB9YNpcDVOIhs2TjYWtS6vLfoIaRbIIW0gdyoJCmk\nCuTeyyCsNT+N4+Q9wMiwaJv1WjzCQnllX9JbSGfRyTPLK+212Gnz7D5P+cegLivrmXdtWu2pWF12\nnvwIOK1GM62xwHinLktd8o+AkxEZWMPx8uYQ4FHn9Jlyfwy2B78ATmtwg9AXqNCkE+Sqv1Bj+WYY\n71U6narcoIlGsAPwiHbozOCDdHU4l8rUJqsUyhBvYb4cTPrgdSfWU5FGZqoUvFYmXUY+GrjXOZ1T\nbcNg8nUX778/hpSySoGCgyZ2A8gSyO8AdgwVXNUoXvBsaWml1oz8C8BdlF9dvg74Ys1nZRUf/1bn\nHq1jH93QDn0M+2Fn0q69+A2xkr3vZzugvoTp0T+otmkjCQs738YWNZO4Blie7AMJUiEiK2DGb7cm\nbHYhcKgXX4sEtgnWG1Hcqp51tFitlEoJFwLHSfJU+lpkFWOjD+5kyXmrknJwhXboDExmSmNrW1dG\njn1/sgycvpZ77vka8Jimq9wp5sqpLHkY6GBSNn85p+9gDVtpvhellStVaa+M3B5hK/lvPwAsJ5Jq\nQaELwVf5NOCHNZ5XNX4AfE8602XJQX87B+h06rIN0TXGAsdi2nCz2BELcIkugOrcPOx8f9ygrHwf\nYIJq5QY0p24qFnxr8YD5KnBRmFpV4ClgSHjcbySlgfzf2FT6HRLeU4usYvzkiSV5YEUY7bI8XaaV\nV+oN5FktCsbx6KNbs9RStfjiPOIZsuwgPptY8rlXI63Fb/G1aL2MPJQi1Va1IpI4kCBc0GvoPuQ3\nDd8BblXnnqzhvVXRDn0O+/H8T8q3HIItzp1X2wH1DSwTzlsmysIPgLOcK6tLl3IVsDR1SGMJfBG4\nNsV2F5BRXgkeP4dRUloZ/j9PIjmg1oV0ymDMfnZBRhi8Vy7Eyj3LvGmBrJLWBK4ry83dj4dWeJxs\nn9Md1BjIg9vg4tg6SkW8l7WAJTGnxnSMHv0x998v/PSnFUsVK+HU6U0MnX04r2QdVZhWJ2/5jHw5\nYLZ26Cc1vPfLwA0kZFbYFzSTH3hY8PgWlhU2kk5s8ERilhxqmn8DnOA0nVlXBX6FTVBK6rJtCN7L\nFljVxt/SbB9apzv4//bOPMyK6trivw1iR0FFgxqnJ9H4fA4RfE44HwwKGo0TOItDRFAGlYiiUZs2\nJPoUgygR44Q4AxoHHOIEBxUHNIo4K4nGWcApTsi03x/7NN6+XXXr1O1uupG7vo+Pr7vrVtWte2vX\nPnuvvRac35hZeaCWdSOujnkfsJEXv3mOQ/QEnlFNVOZ7DBtCaip0A6ZqdT352ZuAAyV5nqAH8GYY\npMuFMIW7NU+seQ35SpiPAdtFzFMkZeTrAB9GNPrrydZG4De0b/8WnTrlEfcCQISOc6haaV8+2qFo\nOCgL04AtvJfVM7Zr8YG8IfXx3mQHhmnAz0TYJMd+z8SmOP9Z5nlFIdQLRwIjMja9FLjVqXu6YQfU\nbwhKiZSumTYFzgJGOJcqQJSEO7HvY2Mac+yJUcvmZm0YnGCuJd907Imku2E1dSDfk4S6f6DRTSZ5\nYvVoTB6hHBwM3Mt/2vwN6F7CbKLu+Zj20PNkr06SAnme+nheCd/emAfv3mUMpfVahExYAZ1HnA8o\nAMFs/EmytaFadmmFcuvjIv+DaTGU9FkMY7ITyOrc1+7W+w0wI4zhuc+pPIwAOkmN9Ej6oxe/L0Zb\nO6eRjnc9VqLZP2O7RoP3shkm63l1nteFrPx3wEXifVSQiMCh1B0cy8IY4AgvPlMjR4QtMFf2tGGQ\n54D/8V5WzXH8KIQSZanm3uXAwDpNT5Os7U6+61GIQ4AJqswGZpJPpjamTl5WIA+ytXuQI5AHydqd\n+eijcVhfIS/99RCQidhDMe9AW0x55UebkZudW4KLSQLGAb0DLSwLFwBXqHMNdiuKgVbrPIy9Mlpq\npE6wCsFjDHBCop5KWQfURQSHI0QaKzhmYTiWjedWt1TnJmNB4pSGnkQQQvo1ORp7QUjrAezhnoXT\ngCsLuON192WrkWfJkbHlwKbY1GSabK3HJgkLA0Yv4OEUxldJiPcdMa3u2hXARPJNw8YE8jnA6tS1\nOVuH7MSvM/CJc5rnHj4MmKQm35srGIuwOaaP7oGbgV45FTRjAvknmOWb8KPJyG1U9Sjil4TPA9+R\nsZQT77tgS5yGaqrkglbrA1iwWuKiFOpsVwF3OXVpwvZlHlAfwpTZzmjU/SbAe9kOG8pKGwCKwenA\nEPG+oSJo+wFPq2pe1s8oYGCQRkhEEGg7mGQlykLEOrfnxV7Aw2mytaHpOQpr4tfiaCJ7Fgk4Fril\nwGR5PLCfCLE6Qs8CG4UGbTIs6ZgDdcTv1iI78SunrFJYYroT2CmHEudxwA2qLHTq3sdsJvMoaL4E\nrOJ9eq9MVecB87CeYhSWhYx8N+ALVGfGbKyKYln5MWnbhIbapcDZ6lxzuLmfCgyQGtky/Hw8ZhU1\npImOdxowCGl8s4siXADUOFdWMxsAde4t7PNrqExCvQngGDh107Glbanldn/gNlWyHhJNVSeP4Uzf\nAmwjIpsGGupm1BcNy0RQCTyOAmZOKK88RWTJTqt1AaY7tEfGpsXllbUwJ6dSyEU7FJHNwjEmA6hz\n32DDYkdkv5Y2WFI5tuDX48iR0QdGUwwNcTbEK7ou7UC+JtkfTDF6k79BcxNwkAhpSoBHYGO25WYo\nDYJW67vA2cC4O1a5Y0tMFOswpy4vnSnygPouVp/PGs4pG95LD8zZZGzWthEYBnQT78syDBGRNTB9\n6RjaYRIuBU5PYiQEymE/rHGdhaeBTrHmuzGQGmmDPRwy+kU6DzPwGIoF4ttQLSU7m4Y9gE/VuWK9\n7ZuI7EUFxJRXZkMdJ6KSgdx7WYls2dpinADcqFrHpPp64IQIxlQP4F+qvFHwuzuBnb3k0taPLq/Q\nQksrHTAJyTiYUcKB1B1/zoQqH5LSuRfvV8O0vU8NDbbmwjVt57X9FPtQz3XqXm3i4/0Z2ASRRtc1\nCWPHo4DTgpB+g6DOfYVlvVeVKXPbE3hEVXO5OxXgDuy76hL+diIwTZWSolEAoU8wk4ZrABWiCzBL\nq7OZOMBlbWC/hXbOfy3zeH2oL0EMNkm9swhR5sCELDRD1nY21NlfVka+CzDTubjPOZiL9KZ+I/4x\nLGC6jF30xZhNSxDcuiYS11epxcPAHqFRm4bia1ESzZGR56lZ9gSeQvWjMo41GhiQ0PS8ALhPnZtW\nxj4bDVOGTWH8n8d/N6PjjPbdzu32XJMf0LKxk4HRTaCOeCrwpnOaJecZDXVuEqb/fF4ZLz+B5OAT\nhaC/8ieK2EMitMMy3Oocu3uM7ACRB4m0wySo6uenw6Pm5qG5h90Cq2tPElbEqnyN8fMPi9zda8CK\nGNMnDXkDeXcir0XAwRgdtQ7VOGj+/AVLHhIRKM3bk1yuGwOcmOLnWQ+hMfsJ5i+ahhZdWsmXkVs2\nkIvGVoCpFD1lxfsdscm2M1NeszRxZtv5bdcd033M8YtaL5rQmLZwqVCdjNVJL26sXXov62ON1FOz\nti0Dg4DjxPto5oeIdMJqoH9v4LFvBjb2UufYAwGvSlS/JiCv+W4WupNDU6QaOlwEbaU8uYb+wA0l\nfGuvAU6MYYgVyNqWuhZ5A/k+ZGuBF6If6dPSNwJ7iPdplnMDgWtUqdf/cepewOr7eSZes74XLbq0\nEp+RW1NiY+LVxeogND1HEyRdxfs2GDNksDqXm4LVmAh88UHAgXNHzL0Ve4/XRbqpNBRDgO6INDi4\nBGGsK4HLnNNGH6hS5z7GlrM3h5JYDPoA1xXVQHMjDAhdSJBVEGE1YDD5J4CnAVt63/AHtdTI2hj1\nMEq0CpGNq2CrO63s9cdcx/J+ZaxcUIqBNBVYAXPmiUE9v8wiLAnkYTxfgEQaa2B9/JRkjfl6EJEt\nsHiSKMEbynk3kmCaLsKqWJn2ihKHGAOcFHMuAVmBvEVn5KthbiAxOAG4Hs2WpSyBccC2InTClsTv\nY9SpZkMwUR4LHBzoS2DBdX2M8920sLrxicDVQRa4IeiNcWoby4ijHtS5u7FVxJisZpRYT+VwGlBW\nKcJY4Jde/I6YoNokVRIledNQMM2XxdiIwd4Y7TC2aTkQuP5L+3x2E5E8Gum/BaaVmngOydJfiXfB\negDoWjxDUYDCjHwtYHaJ8fy9gQcitXzAZhOu0tLx5BLgt+L9GkW/Pxl4IMNAYgKwnRe/ceT5TAW2\n8z5VuqBFZ+SfB4ft0hCpwoLEtVmblkJYBl3C9p+OwL7UfUI9rFngxW+GUZ2Odeqeqv29Vuv3WD/g\nNKmRRnN1T4Xqg1hGMLrcXQQLt4uB42I0oBuI0zG52CyDjl7AdC1HojUBTt33QPUbtBsNegzlSwM/\nhHG/G4pfE7tCNfne3sCooPz4e2BkgYVY+kttsnYopm2fhXHAviLZjjZarZ8BL5I+oj6HH1grMWWV\nGNes2knOXlgdPP38nHsXY6EsycpDX2QwGdPfTt132EMtKhkLvqLPk05PbdEZeWx9/EDgRbQRluuH\nvXsDA2d1ZeZqF6pzpZ6oTQovfkOsbnuGU1evrhcoiQcC10qNdF4Kp3QqsC0iqXz7NAQ/yluBUc5p\nMS2t0aHOfYtdm/PF+12TtglTcIOByxrz2DNof8NoNvnv7fnsbtWydYIeArpHmu8mQmpkRWwpHssF\n7wdMQrX2O38jRrk9OuK1fYDn1LnMsoUqn2EMlmTFxfq4FzNkSEK9jDxpo0A73I34RucA4LbI4bAL\ngf4Fpbz+wGRVYlzDLsd07WPZJg+TTsmszcijsLQDeSxjZQDZU3Nx6PuvGr5pPZNTtm6KCbsohOXW\nVGCEU5fKiddqnY59cSZlqSQ2GJalHYqJam2a89XnY5NnTVZSKUYYFOoNTBDvk+zMumH12oY2Oevg\nNDr3+hdtPx3Oy7t48W2yX5GIVzA51thldxJ2BV7Xas2ew7AV7UAKBNqCzV1f4CIRSeU8B9/aoZha\nZyxGAqeIUBWx7b3Afin9oDnAWkHkrVRG7jDnqZLytrBEqqEfRr/NhDo3C3swnSVCeyw5+EPMa526\nT7DS7YCY7bFA3j3lb7UPtRZZWsnOyEW2w+rF5Qi+192V90cCezH7J3sDW4k0Kg0sCl78ptjAwgVO\nXeboulbrRCxAPio1ktZBbxyovoRR7CYEzn4mvJf9sIB6VI76ZKNAnXsQK+fcn1DH/B1wSRhPbxSI\nsC4wah6te7VB36FMDZggr/oQ6TdtDPLYih2DrWhfKvylqj6PMU2uKOEiNBTwMdn4D/tlBjZ6nqS4\nWIzXMB2Y+ubUqt8B3wOrUjqQH0C8b2gf4HFVTdOlScJ5QB/az78YuEc1h865PTxP8uLbRWz7LNDB\ne/lFwt++AFaGRVGruJaYkZ8CXB4pkJUK8X5LbELvID13y0+wL+ifRWhSx/ZCePE7AFOA85y66IEM\nrdYrsBXJI1IjuUxYy8BVWN1ybJbcrffSGWsk9nQuIjNsGozEaqP3i7ebRUT+F6uh39xYBwmUumuA\nKxepPItlWUO9JK4GYnAfZZpMh+x1f2KClw29nEM6u+YPmBxEvZH0II51EuXRcy8ChoiUjimBhngv\n6deiNhNNDORhiOYAbGirJESklvc/LGvbOufo3If8o/0tzG/Vm5xKpE7dLCzTzqTjOqeLsJ7ZQfXO\nwRKS2TA/xu+0hWXkIutiTYwGNTnF+9Uxt6DB6lwt53cC8CUJ9KKmgBffC/vC9nXqco+ta7VejA1i\nPCE1TaiRYl+YE4ENKfGlDc3Ne4D+zmnDtNIbgNCsPhN4Gbgr0OTOB/6kmkv/PAuDsGAyHJbcoKMo\nXxDsAWDHMmmI2wALIYq/3heYgWqim3wY3T8CuDTojgBL9IcuAy4ts5c0BcsiY1QR7yDdVq82kKdR\nlXcFPnBO3444TuD9x+k01UIE4YxOm3PYe18xxcf4jRbjPOBULz7G2vEO0l3NZsP8qHJeS8vIB2By\ntZm1rzSI91XYU+5edW6JlkqgSvUBfi9ScrqsQfDiW3vx52E1ub2cutglYD1otf4JKyU8LjXSqbHO\nsf6BdB7WTOyDSL0b0XtZG9P2uNw5LVfPutEQgnlf4EOeffZJRLai/MGxeggluLOAXkUytRcBm3jx\nmQJLxXBOv8ZKbGmNvlIwLfAUtcMlMDrpWWR4z6rqjLDd7aGGDFYW6UiZw2Lh/joLGC5CllP8E0AH\nqfnhQVKAWr2VtNLKwcRl4z/F6tt5pnBrcSKLZRUOev8IjPaaptmUiPDQv50443QPbOy9bJDwt9mw\noEUG8vSM3ISO+pLtoJO+C1NqG4d1fE8v/rsqs7D68zgRopYseeDFr401234F7BAmvhoErdYrsWXa\nI1IjjemeU3Qg/QgLMpchPxhfeC9rYhN5tzqnjTYR2lCoc4vw/lhGj+5Av37KlCmNMhkrwoYYI+do\nVepkfYGOeCRwqRffsYzd30k+m7TassohxBlCnAc8gOqLEdteixmW3yITJmyIcaiPKZCqzQ1VpmAa\n6SW9T7VaF5OuaW4Nz4RA7r20wsoQmYEcKyGNV9U3MrcsQEjyhgPH6q93fQgrk5TDhDofOM6LL+lW\nFqi7k0gorwBzW2pppVRGPgi4qxw/QViyNLwcG1DpXUIQayTwNTkn3bLgxe+NaRM/DfwqmBQ0CkID\ntDtwidTIH6WmpNhOAw6kM7H64w2I7BJMbadhASiGU7x0UVNzGO++O4cDDhgLTBfvS2lXZCLojD8M\nXKCaPAYfHs4jgBtLaZanYBLQLaca4nYYQ+ilkluJbI41OaPq26EG24+qqrbMnz8d1ZHqGp54EFYE\nEbzy8cChCeyVUjXy3YC5zmnJoazQMzmInDo9IqyEPST+oEqtiN2pQBfx/tg8+wr3/wXA6Ahfz9tI\nVpKcCwuXoYzcRJz6U6bre8jEr8BEaPZVly4Hq8pijEt7uEjD/SG9+A5e/I3YsEFvp+7cBpomJ0Kr\n9XlgW0z9zjdZ3Vz1KeDI/2zGPTKf6cClzul5OY1tmxxiZYSLgZN1r72GYcvoB8X73uUYOIuwBjZC\nfrNqZgY2AviWnKtH53QulgXnaXoeDYwvWVYRaY01x89HczShp0xZwN13v8PHH1fRrdvqJZgs0VDl\nBSxIZ63engZWAopLhrOVVmk18uMwydlUiDkMXQmco6qfRZ52bXP7SuBVCvogwa+gJ3CxeL9d7P4C\nLsMs27L6Bo8A63kvxcbfc2HBMpWRnw3cU84AUIGGylZAd3Xuy6zXqDIXu5muECnPwcWLX8GLPwlr\nus0BfunUTS5nX7HQap2DDYX8DZguNdJParIn9fLAexE/hY1eGEWrzf7ECq5rGR6rSwcjgAfUHjyo\nc3dgY/BnAreGhncURNgAUyl8kIiVh1O3GFP929uLL1lGSMD1WEDKPq8aWQlrTGZJDgwO/5fSAknC\nUKqquvD0051YvLgr8JeYyc8InAP8SiRdliA8mMZSvwwzdz5rrAN87dQtkSLwXlbBmDtZzKTfA5+R\nnzDxB2BL4MRQ7//hXJ17BZMMuVt89Ah+rV7PCcAoL6liXLXslRupb4bTYgN5/YzcXGt+SxmGw2H6\n6l7sqdejhEpbPQTu6+HARJFo0R+8+FZe/P4Yg+BgoIdTNzjoEjc5tFoXa7WOxJaZxwDPSE0uDY1U\neC9rYDdKf23DDmtNpSsme3tGFjVxaUJEemJBe3Dh79W5l7BVyyfAS+L9odn6LHTGykdjVTmz+CZO\ng1P3OWbxNTyIoMXiTkxjI6m5VYyewLNaXUJywMoIQ4De5BAKE+8HYUFmL7399n9jfZ3Ngb9JAzV4\nVPkKC9A3ZOiVXwscLjV19EY+/d4CeXHSdwgwtRTtVUR2wuiTx+eZJxBhKHate6gmi3QFzZ8a4JGc\nwfwZLDO/IUPmdhzQO2j716Jllla0WpNMhS8CLs2rOS7eb4UtU98CfhPUy/Kdj/IotnS9S6S0BGXI\nwI/EONfVmHTrnk7rOacsFWi1voqpzo0CJkqNjC+wjssF70W8lyOxCcS5QBfn9A1UX8A0mA/GhoZy\nde+bAiLyC6yMdUSScYQ69506dwqWMZ8FTBbv6zF+RBAR+mI18dNVuSTvuTh1b2LB/DovPkrCNNjg\njScuK+9HKTaOyDrYg6E/kfoyYh/2cIya102d9XLCtdwLk2OdLiL1B3ZyQJUHseB0c9rshlbr+xiD\n5fCCX89dQPs1KbCEDNIGp1FCG0hE/gtjihyvqlH9KRFaiXAJNuDWLcu6T537KzbCPzXpO1UCF2IT\nmhelbeCcvoat7gv13ee01Iy8LkQOwkoi0TeReN9avB+I0eGGq3MD1JVfkw5fuP2Ba0T4ffFAaB72\nngAAC7BJREFUgxf/X178MOBfGKvmdGAbp+7eEspsSwUhO78JG/D4B8Zs+ZvUyK6xkrjey+7YzTQE\nOMA5HeRcwQPXtDp2x5arMxHJsutqMojImhgf+1xVnV5qW3XuCYx/PRH4u3h/l3jjBIvwc6zxeDKw\ni2oUIyQRweNzf2CsFx9VMsEC0snep6oAIjWyC+ZxmzzhbA/Ve4CrUZ0Yc9BQbpqIled2VufqsHJU\ndb6qnoQ16SaLyHkikkUlLIVa6t+VJTTLRwFDChr4cxey6hrUbXR2BxaR4s0pJhA2CRihGmduIsJP\nseu3PfYdiOLOh2A+GMvMYyZZa41KegL7ePEDS2x6CTC4QJOn8TJyEekhIq+LyFsiktgRF5HLwt9f\nFJGtYw6MKZL9BTg2jOZmv8RuxKewZdZO6txNUcfKgCpPYuyAHsBje8tHu3nxfb34hzCXmg7Afk7d\nbk7dg80dwIuh1fq1VutFmPuKx3oGr0iNnCo19XU1vJcVvJcDvJfJWJ1yDLCNc8lDJKjOQ7UvFviu\nQ+Q6RNZroreTiKAPMhkTP7oq5jXq3CJ17grsukzmyzb3yAEf/Js2i2dStegZYLsi/8WyEJQsdwfO\n8eJHevGpARrAOX0FeI7SWfnZwMVanTDhLNIeG/l/jgj2VcjC98e+yx8Cu6lzqSUKVR0HbI3dE6+K\nyGHl1M5VWYjRLX8JjEyZ+pyMlVFqM9G5C1hlVUIgD0HtLOCSpIa7iHTAkrpHifBRDSuxnsAMrLG5\nRxD+in9fzk3ASnvnivcTxft1s14TSnH7YF6wg1M2exDTC9o7/Dw3lkcupUpJYt3wNzBBog8wbYDD\nVfW1gm32AQao6j4isgMmm9klYV+qqhJ+qMI+wEdQzSTsh2XMecBOBNPixvTbDDdel0XQ9VOqjlyZ\nhRv9k3azfsLikZvy1TinLqkkVDZExKmqb8x91tm/ZeO7YBOb+wIvC9w56Be8s/+6/K8IR2Of52jg\ndudymPIaw+hsrL56LTAK1Q/KPteIaxHoZLdjD53hefVURNgc6APam59/8zznvboiHb/dEhv1vwt4\nMLATGoQwyXcVsAlwktN0O0HvZVssi9y01nOy9lpIjeyFNS63CBLHhW9mC6ycMgk4nRLXIvQHdsLu\nnQ2AQepctON8OKc9sNLAqljiNS6vF6oIq2O9rA+B40MN/Ye/10g37P1upcP4/m2OnT+G9uMv0pFH\neS8HYLzuzsV+sCLSGWv834Kt0tKvha0IdseGpdYEBqjyWJ73UW+f5id7NlaXHwOMUudKTq978Rtg\nD+FHgCHFhuvey2+wFVGnrl0RmDofdmdJ7Ew7l4xAviNQrao9ws9DAVT1woJtrgSmqOr48PPrwO6q\n+knRviyQ21LtZsz94xA0WXgpiCLtjzVNNsQmJccESdOy4cWvDGyB0Z46F/x7Gctm/RC2euU51jgJ\nK6U8hjmG/z2tEZIXIjJMVYc1xr7SEDKZ9b5dyB6zv+ew1dqwy/zFrPT4XOY/+SlPvfAF92EN25mB\nDZMPlpEPxfivk7F66KNoYh+kxG7Sr0UwijgTWwn0V42bKg2ZX2dMv3s/LIiNBa5S5R0A8X49jLl0\nILAjlqE9jpWZZgAflaNdHzjDhwH/h2XMlwBPJq3ivJfrgHnO6cnh/Q5jGCPD636n1XpPwZtqh9WJ\nTwF+h2XNye/f+59hfY3emIvOn4Gr1bmydOMDLXEXbPJ6b+zzvhOYrKrvxe2Dn2BNv72w+vy9tY3l\nkHjcDryp1XrW6zLk65OYOr16yrO9MM3u3zqnj/ywL1kNK3H2AwapapKPZu1x18XkAI4G2mFsp+vD\naqFRIN5vhH1Pe2EP2JuAqepcYoLkxa+BaZdvhvHUH639foT79kFgmnNaIzJtAeyyQkMDeU+gu6r2\nCT8fBeygqgMLtpkEXKCqT4afHwHOVNV/FO1L1WyqrsXqrYeG0fBaIfsNseC6Nfbk3BL7wlwH3F+q\nDh66wStjDkQdsCduh/BvbeDnBf9WB17HmpYzwv/POq3fLA0WTwdj48s7YEvTJ7Al2WvAv4HPVMll\nK9YYgTxMubXFbtT1sUGo9TCp1C3Dv0VYcHoM08J4qetU1seubxesP7EV8B3wZng/74T/PwY+Lfj3\nRZjIK34zq2DX5xCsJv04xhF+NuzzvVIuT8XXItRkd8CC7LFY5nJGccAIGVY7rI5c+9n+IpzDNuH8\n7wv/Hisata97DjaC3QXT8dg5XJNW2MN9FvAu8F74fzbmcvU58E1asA8JwwlY0FqE1bofBV5w6uYA\neC+rhes0yjn9i7SRP3IOWwNva7X2DyvXHbCE5pjw+jNqG5uBertWeN+bYvfOrtj3YRLWVH1AnWuQ\n7V0hQj16X2xwbFfsu/M0dk+9jl2vT4A5mlAyFaE7xjFfhGkJ3Qv8k2GyZrgW57847MIRg9tc//w5\nD72uwPPO6RARWQn7jPbHgvL9wFANq8EgC7AWthoqvBbrYNf+NuChMEfSJBDv18Yat0dgQfpJ7NrU\nxov3gc/VOQ0P/F4Y7fEzLPg/ALzNlK7rYD2vU7p2fep62HGlhgbyg4EeEYH8QlWdFn6uvfGeL9qX\nrtYuSxM/juGmkdtR+r3XO64WnYHW+WvMcYtfUfCrAny/YBxVKx5Td38lc7987yMLTXX9io+imdvA\n/AXXsWKb4zO3C7uM267Opo177aK20xzXuGC7BQuvps0KabT0Mr57WceNWG/EvY+EbYpvpqLtUsOO\ngKiwcNEYWrfqBwthMaYYVgWs3Epo10poI4IifLt4Ff6zeA3m60qs2upT1lnhbdZb4S06tnmVLVZ8\nko5tXqG1LFW1ZQC+XrktL22+Jf/suBHvrrsB76+3Pp+1X53vq6pY9auvaPvtN7RZsICqeQvoPKOK\nbZ5blY1ntaPq+1Z8sfoCFm76Jj8b8Ef2P+oOvpu3W4NLK12AYQWllbOAxar6fwXbXIkpjN0Wfk4t\nrZR9VSqooIIKlmNkBfIsjuJzwCYi0hFrVBxKXc4nGIVnAHBbCPxfFAfxmBOpoIIKKqigPJQM5Kq6\nUEQGYMX31sC1qvqaiPQNf/+rqt4vIvuIyCzgGyLHjyuooIIKKmgclCytVFBBBRVU0PLR5JOdMQNF\nywtE5DoR+URESkuSLgcQkQ1EZIqIvCIiL4vIUnFuamkQkZ+IyDMiMkNEXhWRpWZo3VIhIq1F5IVA\npFhuISLviMjMcC1KTjI3aUYeM1C0PEFEdsW00G9Q1QZpWSzrCJOaP1PVGcFb8R/AAcvjd0NEVlbV\nb0VkBYzeerqqPtHc59VcEJHBGIV0FVUty+f0xwAReRvYJkaOt6kz8u2BWar6jhqX+DaMB7pcQlUf\nx/jHyz1U9eNgOYaqfo3xbDNHnX+M0B+GqFbEelG5RsZ/TBCR9bFR9muI51L+mBF1DZo6kK+HDVLU\n4v3wuwoqWILAitoaU7Nc7iAirURkBjZIM0VVX816zY8YIzEBt6VP/m55UOAREXlORErq3jd1IK90\nUisoiVBWuR04JWTmyx1UdbGqdsYmMncTEdfMp9QsEJF9gdlq8smVbBx2VtWtMVmE/qE0m4imDuQf\nYDoXtdgA4uQiK/jxI9hy3QHcpKp3Nff5NDdU9UtMUmDb5j6XZsJOwG9CbfhWYA8RuaGZz6nZoMGj\nQVXnYNo226dt29SBfMlAUdDQOBQbIKpgOUcQYroWeFVVL23u82kuiEgHMVlagp7Inpimz3IHVT1b\nVTdQ1Z9jwmOTVbV3c59Xc0BEVpZg5CIibTGxsVS2W5MGclVdiE19PogJx4xfHlkJtRCRWzEhnf8W\nkfdEZHkentoZE9vqGuhVL4hIj+Y+qWbAOpiJwwysRzBJVR9t5nNqKVieS7NrA48XfC/uVdWH0jau\nDARVUEEFFSzjaF6rtwoqqKCCChqMSiCvoIIKKljGUQnkFVRQQQXLOCqBvIIKKqhgGUclkFdQQQUV\nLOOoBPIKKqiggmUclUBeQQUVVLCMoxLIK6igggqWcfw/57XlLkPWSRIAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "knot_vector = [0,0,0,0,0,1,2,2,3,3,3,4,4,4,4,5,5,5,5,5]\n", + "basis = Bspline(knot_vector,4)\n", + "\n", + "%matplotlib inline\n", + "basis.plot()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nuOXZwIO8O+a2OS0ysDyXbqusMbI8/y/pWp7LbLXbSPqWZ2fzArc8N+BB3h1dTlJIexnddS3S3LGx\nnM1pkeS8WNTmtHDLcyMe5B2wpM1pkaTluaTNaZGq5bmMzWmRangtY3NapFqLzkkqJCJmYZvTImHL\ncxmb0yJVy3MZm9MiVcuzuxZTjVueIzzIu6Hr5fMaKbYUutq5s07Clmf38yJdy7PzWrjlWeNBviQd\n2ZwWSS0dO7I5LZKqRUc2p0VSL2od2ZwWac2LnvAgX54ubE6L1CzPLmxOi9Qszy5sTovULM8ubE4L\ntzzxIO+CvtoqKVqe/dUiPcuzsx0am0jP8uytFm55VswMchHZJiIHReSQiLxjws9PFpGbROQuEfmc\niPxCLyONkI5tToskLM+ObU6LNJbR3dqcFknUomOb06J4y3NqkEtlkF0DbANeAOwQkbPGLrsCuFNV\nX0L1qvhfRGRLD2ONkS5tTotULM8ubU6LVCzPLm1Oi1Qszy5tToviLc9Zd+TnAfer6gOqegTYA1w6\nds2XgBNGX58APKaqffTCYqQzm9MiIcuzt7bKGglZnn1stdtIOpZn7/MCtzxnBvkpwIONxw+Nvtfk\ng8CPiMjDVPt9f7m74UXPEJMU0lhGD1WLuHds9GNzWkQ9L7q2OS3c8pwd5G3uNN8J3KWq3w+8BPg9\nMd5NF5ErG39W5htqXPRkc1pEbXn2ZHNaxG559mFzWsQeXn3YnBax16I1IrLSzMo2f2dWL/swsLXx\neCvVXXmTVwPvBlDV/yciXwTOBPaP/zJVbTWoROjc5rRQ5ZDIuuX52b7/vQXow+a0aFqefb43sSh9\n2JwWteWpvb43sSj9t5hq1i1PXVnp872J3lHVVRr+gYjsmvV3Zt3h7QfOEJHTpHon/jLgurFrDlK9\noYGIPJcqxL/QetTpMtTyeY2YWwp979xZJwHLc7h5Eb/lOVgtSrc8pwb56E3LK6h2TtwHfFRVD4jI\nThHZObrsN4CXicjdwK3Ar6rqV/scdGh6tjktolw69mxzWkRZi55tTosoX9R6tjkt4pwXAzCz56qq\nN6rqmap6uqq+Z/S93aq6e/T1V1R1u6q+WFVfpKp/0vegI6BPm9MiVsuzT5vTIlbLs0+b0yJWy7NP\nm9OiWMszyjfPEmDotkrMlufwtYjX8ux9h8Ym4rU8B69FyZanB/mcDGRzWkRleQ5kc1rEtYwexua0\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "knot_vector = [0,1,2,3,4,5]\n", + "basis = Bspline(knot_vector,1)\n", + "basis.plot()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "basis.dplot()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n8/9UZC3CyyqQDAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "knot_vector = [0,1,2,3,4,5]\n", + "basis = Bspline(knot_vector,2)\n", + "\n", + "basis.plot()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "basis.dplot()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +}