Skip to content

Instantly share code, notes, and snippets.

@abridgland
Last active October 10, 2023 07:49
Show Gist options
  • Save abridgland/429594942ff51037ecc703905e40c562 to your computer and use it in GitHub Desktop.
Save abridgland/429594942ff51037ecc703905e40c562 to your computer and use it in GitHub Desktop.
A Jupyter notebook to accompany Intro to Gaussian Processes - Part I at http://bridg.land/posts/gaussian-processes-1
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
" <div class=\"bk-root\">\n",
" <a href=\"https://bokeh.pydata.org\" target=\"_blank\" class=\"bk-logo bk-logo-small bk-logo-notebook\"></a>\n",
" <span id=\"b17ebc51-6fb2-421d-96c2-b9d4b6decb6c\">Loading BokehJS ...</span>\n",
" </div>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/javascript": [
"\n",
"(function(root) {\n",
" function now() {\n",
" return new Date();\n",
" }\n",
"\n",
" var force = true;\n",
"\n",
" if (typeof (root._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n",
" root._bokeh_onload_callbacks = [];\n",
" root._bokeh_is_loading = undefined;\n",
" }\n",
"\n",
" var JS_MIME_TYPE = 'application/javascript';\n",
" var HTML_MIME_TYPE = 'text/html';\n",
" var EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n",
" var CLASS_NAME = 'output_bokeh rendered_html';\n",
"\n",
" /**\n",
" * Render data to the DOM node\n",
" */\n",
" function render(props, node) {\n",
" var script = document.createElement(\"script\");\n",
" node.appendChild(script);\n",
" }\n",
"\n",
" /**\n",
" * Handle when an output is cleared or removed\n",
" */\n",
" function handleClearOutput(event, handle) {\n",
" var cell = handle.cell;\n",
"\n",
" var id = cell.output_area._bokeh_element_id;\n",
" var server_id = cell.output_area._bokeh_server_id;\n",
" // Clean up Bokeh references\n",
" if (id !== undefined) {\n",
" Bokeh.index[id].model.document.clear();\n",
" delete Bokeh.index[id];\n",
" }\n",
"\n",
" if (server_id !== undefined) {\n",
" // Clean up Bokeh references\n",
" var cmd = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n",
" cell.notebook.kernel.execute(cmd, {\n",
" iopub: {\n",
" output: function(msg) {\n",
" var element_id = msg.content.text.trim();\n",
" Bokeh.index[element_id].model.document.clear();\n",
" delete Bokeh.index[element_id];\n",
" }\n",
" }\n",
" });\n",
" // Destroy server and session\n",
" var cmd = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n",
" cell.notebook.kernel.execute(cmd);\n",
" }\n",
" }\n",
"\n",
" /**\n",
" * Handle when a new output is added\n",
" */\n",
" function handleAddOutput(event, handle) {\n",
" var output_area = handle.output_area;\n",
" var output = handle.output;\n",
"\n",
" // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n",
" if ((output.output_type != \"display_data\") || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n",
" return\n",
" }\n",
"\n",
" var toinsert = output_area.element.find(`.${CLASS_NAME.split(' ')[0]}`);\n",
"\n",
" if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n",
" toinsert[0].firstChild.textContent = output.data[JS_MIME_TYPE];\n",
" // store reference to embed id on output_area\n",
" output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n",
" }\n",
" if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n",
" var bk_div = document.createElement(\"div\");\n",
" bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n",
" var script_attrs = bk_div.children[0].attributes;\n",
" for (var i = 0; i < script_attrs.length; i++) {\n",
" toinsert[0].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n",
" }\n",
" // store reference to server id on output_area\n",
" output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n",
" }\n",
" }\n",
"\n",
" function register_renderer(events, OutputArea) {\n",
"\n",
" function append_mime(data, metadata, element) {\n",
" // create a DOM node to render to\n",
" var toinsert = this.create_output_subarea(\n",
" metadata,\n",
" CLASS_NAME,\n",
" EXEC_MIME_TYPE\n",
" );\n",
" this.keyboard_manager.register_events(toinsert);\n",
" // Render to node\n",
" var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n",
" render(props, toinsert[0]);\n",
" element.append(toinsert);\n",
" return toinsert\n",
" }\n",
"\n",
" /* Handle when an output is cleared or removed */\n",
" events.on('clear_output.CodeCell', handleClearOutput);\n",
" events.on('delete.Cell', handleClearOutput);\n",
"\n",
" /* Handle when a new output is added */\n",
" events.on('output_added.OutputArea', handleAddOutput);\n",
"\n",
" /**\n",
" * Register the mime type and append_mime function with output_area\n",
" */\n",
" OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n",
" /* Is output safe? */\n",
" safe: true,\n",
" /* Index of renderer in `output_area.display_order` */\n",
" index: 0\n",
" });\n",
" }\n",
"\n",
" // register the mime type if in Jupyter Notebook environment and previously unregistered\n",
" if (root.Jupyter !== undefined) {\n",
" var events = require('base/js/events');\n",
" var OutputArea = require('notebook/js/outputarea').OutputArea;\n",
"\n",
" if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n",
" register_renderer(events, OutputArea);\n",
" }\n",
" }\n",
"\n",
" \n",
" if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n",
" root._bokeh_timeout = Date.now() + 5000;\n",
" root._bokeh_failed_load = false;\n",
" }\n",
"\n",
" var NB_LOAD_WARNING = {'data': {'text/html':\n",
" \"<div style='background-color: #fdd'>\\n\"+\n",
" \"<p>\\n\"+\n",
" \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
" \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
" \"</p>\\n\"+\n",
" \"<ul>\\n\"+\n",
" \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n",
" \"<li>use INLINE resources instead, as so:</li>\\n\"+\n",
" \"</ul>\\n\"+\n",
" \"<code>\\n\"+\n",
" \"from bokeh.resources import INLINE\\n\"+\n",
" \"output_notebook(resources=INLINE)\\n\"+\n",
" \"</code>\\n\"+\n",
" \"</div>\"}};\n",
"\n",
" function display_loaded() {\n",
" var el = document.getElementById(\"b17ebc51-6fb2-421d-96c2-b9d4b6decb6c\");\n",
" if (el != null) {\n",
" el.textContent = \"BokehJS is loading...\";\n",
" }\n",
" if (root.Bokeh !== undefined) {\n",
" if (el != null) {\n",
" el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n",
" }\n",
" } else if (Date.now() < root._bokeh_timeout) {\n",
" setTimeout(display_loaded, 100)\n",
" }\n",
" }\n",
"\n",
"\n",
" function run_callbacks() {\n",
" try {\n",
" root._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n",
" }\n",
" finally {\n",
" delete root._bokeh_onload_callbacks\n",
" }\n",
" console.info(\"Bokeh: all callbacks have finished\");\n",
" }\n",
"\n",
" function load_libs(js_urls, callback) {\n",
" root._bokeh_onload_callbacks.push(callback);\n",
" if (root._bokeh_is_loading > 0) {\n",
" console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
" return null;\n",
" }\n",
" if (js_urls == null || js_urls.length === 0) {\n",
" run_callbacks();\n",
" return null;\n",
" }\n",
" console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
" root._bokeh_is_loading = js_urls.length;\n",
" for (var i = 0; i < js_urls.length; i++) {\n",
" var url = js_urls[i];\n",
" var s = document.createElement('script');\n",
" s.src = url;\n",
" s.async = false;\n",
" s.onreadystatechange = s.onload = function() {\n",
" root._bokeh_is_loading--;\n",
" if (root._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: all BokehJS libraries loaded\");\n",
" run_callbacks()\n",
" }\n",
" };\n",
" s.onerror = function() {\n",
" console.warn(\"failed to load library \" + url);\n",
" };\n",
" console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
" document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
" }\n",
" };var element = document.getElementById(\"b17ebc51-6fb2-421d-96c2-b9d4b6decb6c\");\n",
" if (element == null) {\n",
" console.log(\"Bokeh: ERROR: autoload.js configured with elementid 'b17ebc51-6fb2-421d-96c2-b9d4b6decb6c' but no matching script tag was found. \")\n",
" return false;\n",
" }\n",
"\n",
" var js_urls = [\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.10.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.10.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.10.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-gl-0.12.10.min.js\"];\n",
"\n",
" var inline_js = [\n",
" function(Bokeh) {\n",
" Bokeh.set_log_level(\"info\");\n",
" },\n",
" \n",
" function(Bokeh) {\n",
" \n",
" },\n",
" function(Bokeh) {\n",
" console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-0.12.10.min.css\");\n",
" Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.10.min.css\");\n",
" console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.10.min.css\");\n",
" Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.10.min.css\");\n",
" console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.10.min.css\");\n",
" Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.10.min.css\");\n",
" }\n",
" ];\n",
"\n",
" function run_inline_js() {\n",
" \n",
" if ((root.Bokeh !== undefined) || (force === true)) {\n",
" for (var i = 0; i < inline_js.length; i++) {\n",
" inline_js[i].call(root, root.Bokeh);\n",
" }if (force === true) {\n",
" display_loaded();\n",
" }} else if (Date.now() < root._bokeh_timeout) {\n",
" setTimeout(run_inline_js, 100);\n",
" } else if (!root._bokeh_failed_load) {\n",
" console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
" root._bokeh_failed_load = true;\n",
" } else if (force !== true) {\n",
" var cell = $(document.getElementById(\"b17ebc51-6fb2-421d-96c2-b9d4b6decb6c\")).parents('.cell').data().cell;\n",
" cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
" }\n",
"\n",
" }\n",
"\n",
" if (root._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
" run_inline_js();\n",
" } else {\n",
" load_libs(js_urls, function() {\n",
" console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n",
" run_inline_js();\n",
" });\n",
" }\n",
"}(window));"
],
"application/vnd.bokehjs_load.v0+json": "\n(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n\n if (typeof (root._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\n \n\n \n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n var NB_LOAD_WARNING = {'data': {'text/html':\n \"<div style='background-color: #fdd'>\\n\"+\n \"<p>\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"</p>\\n\"+\n \"<ul>\\n\"+\n \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n \"<li>use INLINE resources instead, as so:</li>\\n\"+\n \"</ul>\\n\"+\n \"<code>\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"</code>\\n\"+\n \"</div>\"}};\n\n function display_loaded() {\n var el = document.getElementById(\"b17ebc51-6fb2-421d-96c2-b9d4b6decb6c\");\n if (el != null) {\n el.textContent = \"BokehJS is loading...\";\n }\n if (root.Bokeh !== undefined) {\n if (el != null) {\n el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(display_loaded, 100)\n }\n }\n\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n }\n finally {\n delete root._bokeh_onload_callbacks\n }\n console.info(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(js_urls, callback) {\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = js_urls.length;\n for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n var s = document.createElement('script');\n s.src = url;\n s.async = false;\n s.onreadystatechange = s.onload = function() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.log(\"Bokeh: all BokehJS libraries loaded\");\n run_callbacks()\n }\n };\n s.onerror = function() {\n console.warn(\"failed to load library \" + url);\n };\n console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.getElementsByTagName(\"head\")[0].appendChild(s);\n }\n };var element = document.getElementById(\"b17ebc51-6fb2-421d-96c2-b9d4b6decb6c\");\n if (element == null) {\n console.log(\"Bokeh: ERROR: autoload.js configured with elementid 'b17ebc51-6fb2-421d-96c2-b9d4b6decb6c' but no matching script tag was found. \")\n return false;\n }\n\n var js_urls = [\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.10.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.10.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.10.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-gl-0.12.10.min.js\"];\n\n var inline_js = [\n function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\n \n function(Bokeh) {\n \n },\n function(Bokeh) {\n console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-0.12.10.min.css\");\n Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.10.min.css\");\n console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.10.min.css\");\n Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.10.min.css\");\n console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.10.min.css\");\n Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.10.min.css\");\n }\n ];\n\n function run_inline_js() {\n \n if ((root.Bokeh !== undefined) || (force === true)) {\n for (var i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }if (force === true) {\n display_loaded();\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n var cell = $(document.getElementById(\"b17ebc51-6fb2-421d-96c2-b9d4b6decb6c\")).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n\n }\n\n if (root._bokeh_is_loading === 0) {\n console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(js_urls, function() {\n console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));"
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"from bokeh.plotting import figure, show\n",
"from bokeh.io import output_notebook\n",
"from bokeh.models import LinearColorMapper, BasicTicker, ColorBar\n",
"from bokeh.palettes import Category10\n",
"output_notebook()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Introduction to Gaussian Processes - Part I\n",
"Author: [@alex_bridgland](https://twitter.com/alex_bridgland) | [@bridgo](https://github.com/Bridgo)\n",
"\n",
"Blog post: http://bridg.land/posts/gaussian-processes-1\n",
"***\n",
"Gaussian processes may not be at the center of current machine learning hype but are still used at the forefront of research -- they were recently seen automatically tuning the MCTS hyperparameters for AlphaGo Zero for instance. They manage to be very easy to use while providing rich modeling capacity and uncertainty estimates.\n",
"\n",
"However they can be pretty hard to grasp, especially if you're used to the type of models we see a lot of in deep learning. So hopefully this guide can fix that! It assumes a fairly minimal ML background and I aimed for a more visual & intuitive introduction without totally abandoning the theory. To get the most out of it I recommend downloading the notebook and experimenting with all the code!\n",
"\n",
"## What is a Gaussian Process and why would I use one?\n",
"***\n",
"A Gaussian process (GP) is a powerful model that can be used to represent a distribution over functions. Most modern techniques in machine learning tend to avoid this by parameterising functions and then modeling these parameters (e.g. the weights in linear regression). However GPs are nonparametric models that model the function directly. This comes with one hugely important benefit: not only can we model any black-box function, __we can also model our uncertainty__. Quantifying uncertainty can be extremely valuable - for example if we are allowed to explore (request more data) we can chose to explore the areas we are least certain about to be as efficient as possible. This is the main idea behind Bayesian optimisation. For more information on the importance of uncertainty modeling see [this article](http://mlg.eng.cam.ac.uk/yarin/blog_3d801aa532c1ce.html) by Yarin Gal.\n",
"\n",
"> If you give me several pictures of cats and dogs – and then you ask me to classify a new cat photo – I should return a prediction with rather high confidence. But if you give me a photo of an ostrich and force my hand to decide if it's a cat or a dog – I better return a prediction with very low confidence.\n",
">\n",
"> Yarin Gal\n",
"\n",
"For this introduction we will consider a simple regression setup without noise (but GPs can be extended to multiple dimensions and noisy data):\n",
"- We assume there is some hidden function $f:\\mathbb{R}\\rightarrow\\mathbb{R}$ that we want to model.\n",
"- We have data $\\mathbf{x}=[x_ 1, \\ldots, x_N]^T, \\mathbf{y}=[y_ 1, \\ldots, y_N]^T$ where $y_i = f(x_i)$.\n",
"- We want to predict the value of $f$ at some new, unobserved points $\\mathbf{x}_*$.\n",
"\n",
"## Modeling Functions using Gaussians\n",
"***\n",
"The key idea behind GPs is that a function can be modeled using an infinite dimensional multivariate Gaussian distribution. In other words, every point in the input space is associated with a random variable and the joint distribution of these is modeled as a multivariate Gaussian.\n",
"\n",
"Ok, so what does that mean and what does it actually look like? Well lets start with a simpler case: a unit 2D Gaussian. How can we start to view this as a distribution over functions? Here's what we have:\n",
"\n",
"$$ \\begin{pmatrix} y_0 \\\\ y_1 \\end{pmatrix} \\sim\\mathcal{N}\\left(\\begin{pmatrix} 0\\\\ 0 \\end{pmatrix}, \\begin{pmatrix} 1 & 0 \\\\ 0 & 1 \\end{pmatrix}\\right) $$\n",
"\n",
"Normally this is visualised as a 3D bell curve with the probability density represented as height. But what if, instead of visualising the whole distribution, we just sample from the distribution. Then we will have two values which we can plot on an graph. Let's do this 10 times, putting the first value at $x=0$ and the second at $x=1$ and then drawing a line between them."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"def plot_unit_gaussian_samples(D):\n",
" p = figure(plot_width=800, plot_height=500, title='Samples from a unit {}D Gaussian'.format(D))\n",
"\n",
" xs = np.linspace(0, 1, D)\n",
" for color in Category10[10]:\n",
" ys = np.random.multivariate_normal(np.zeros(D), np.eye(D))\n",
" p.line(xs, ys, line_width=1, color=color)\n",
" return p"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"<div class=\"bk-root\">\n",
" <div class=\"bk-plotdiv\" id=\"b88cb083-f496-44b0-ae0e-137ba1efc2f7\"></div>\n",
"</div>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/javascript": [
"(function(root) {\n",
" function embed_document(root) {\n",
" var docs_json = {\"45d6c48a-becd-4032-8015-6276bfcc9c30\":{\"roots\":{\"references\":[{\"attributes\":{},\"id\":\"9b55cb13-ef42-4069-9222-831ded5c051b\",\"type\":\"PanTool\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"e28b5879-233c-41a8-8be0-98faa8d44bb6\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[2]},\"y\":{\"__ndarray__\":\"i4JOtetY/T+74UrruN8BwA==\",\"dtype\":\"float64\",\"shape\":[2]}}},\"id\":\"ec93521a-69b2-45f1-9e26-7fdd82174bd9\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data_source\":{\"id\":\"1a12dacb-3e67-427a-9838-7ad8b639428d\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"279476e4-69ee-4fae-8e98-e7c459015ba3\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"4818b05a-b79b-4334-9e4c-4cdb9a5b3e1e\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"d3b1e2ea-7a18-4b90-bc31-6fc0ea8171fb\",\"type\":\"CDSView\"}},\"id\":\"6f306bce-64d4-4f2f-80c1-a149069eab5a\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_color\":{\"value\":\"#e377c2\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"5bfac3ce-7d8d-4241-be26-cf64c071cc07\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"ed402132-6892-4730-808f-da136bd03dd8\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"e0b4a63b-7274-435b-ad58-6a70111f682a\",\"type\":\"ColumnDataSource\"}},\"id\":\"657fa1f4-2d69-45f8-925b-eca8578cb2cc\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2c13b6e8-08b8-4c3e-a126-149dc3d06c19\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"9ac6abdb-4548-4ae0-a377-76852ad4b299\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"line_color\":{\"value\":\"#2ca02c\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"7524cdcd-391e-4ca9-9710-6453e47611a2\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"c1311818-8912-45c4-af3e-1db4c54eecd0\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"438a9b8b-b9e3-497a-b9ce-0dc543019ca0\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"f3d66356-939a-4020-b46a-b4d45a32596c\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"5b1bb3e1-c38e-498c-9812-48fd1461e2eb\",\"type\":\"CDSView\"}},\"id\":\"1c22be92-6b86-46e9-82fb-9f722f31f8a8\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_color\":{\"value\":\"#ff7f0e\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"438a9b8b-b9e3-497a-b9ce-0dc543019ca0\",\"type\":\"Line\"},{\"attributes\":{\"overlay\":{\"id\":\"95b9f82c-0f6b-4469-a88a-244ca1650279\",\"type\":\"BoxAnnotation\"}},\"id\":\"3bb76ba1-fc75-4251-9e1d-8670c321ed60\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"38a7246a-ab11-420d-a8de-798127a93410\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"a1f90dde-1ca3-4e5b-b4cb-13f94a3e3044\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"948d6bce-fe40-45ca-a4cd-a315881971f1\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"93c9c790-4014-4151-bfaf-d66e2aba5a16\",\"type\":\"SaveTool\"},{\"attributes\":{\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"279476e4-69ee-4fae-8e98-e7c459015ba3\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"f3d66356-939a-4020-b46a-b4d45a32596c\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"1a12dacb-3e67-427a-9838-7ad8b639428d\",\"type\":\"ColumnDataSource\"}},\"id\":\"d3b1e2ea-7a18-4b90-bc31-6fc0ea8171fb\",\"type\":\"CDSView\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[2]},\"y\":{\"__ndarray__\":\"tjLTJYhawz9mwEnAqUH+Pw==\",\"dtype\":\"float64\",\"shape\":[2]}}},\"id\":\"a54b5667-a343-4bc2-8828-ede3d2432f36\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_color\":{\"value\":\"#d62728\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"c64c4aff-44aa-4f82-b6cd-426f4f5d5eb3\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"e0b4a63b-7274-435b-ad58-6a70111f682a\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"c64c4aff-44aa-4f82-b6cd-426f4f5d5eb3\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"ed402132-6892-4730-808f-da136bd03dd8\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"657fa1f4-2d69-45f8-925b-eca8578cb2cc\",\"type\":\"CDSView\"}},\"id\":\"9cf0a791-f9aa-4285-a4fc-52deb13229ef\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"data_source\":{\"id\":\"a54b5667-a343-4bc2-8828-ede3d2432f36\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"7524cdcd-391e-4ca9-9710-6453e47611a2\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2c13b6e8-08b8-4c3e-a126-149dc3d06c19\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"7a052c2a-fc1b-4f65-97de-d1ed0b42acd7\",\"type\":\"CDSView\"}},\"id\":\"a5f35d9b-ff74-4ef6-8c1f-f070a8537cd9\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"0663fdd9-ad37-4fac-98d1-7bbcae0e7ea9\",\"type\":\"BasicTicker\"},{\"attributes\":{\"plot\":{\"id\":\"f9408108-dcc9-4305-843c-f338d2bf8b32\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"07f728a8-3a2d-4e54-839f-7c5caeafd571\",\"type\":\"BasicTicker\"}},\"id\":\"075b218f-a362-4914-b7c5-14cd7359ef1b\",\"type\":\"Grid\"},{\"attributes\":{\"source\":{\"id\":\"a54b5667-a343-4bc2-8828-ede3d2432f36\",\"type\":\"ColumnDataSource\"}},\"id\":\"7a052c2a-fc1b-4f65-97de-d1ed0b42acd7\",\"type\":\"CDSView\"},{\"attributes\":{\"source\":{\"id\":\"c1311818-8912-45c4-af3e-1db4c54eecd0\",\"type\":\"ColumnDataSource\"}},\"id\":\"5b1bb3e1-c38e-498c-9812-48fd1461e2eb\",\"type\":\"CDSView\"},{\"attributes\":{\"line_color\":{\"value\":\"#9467bd\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"a0814605-344f-4c58-8646-4c165d7037ec\",\"type\":\"Line\"},{\"attributes\":{\"formatter\":{\"id\":\"a1f90dde-1ca3-4e5b-b4cb-13f94a3e3044\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"f9408108-dcc9-4305-843c-f338d2bf8b32\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"0663fdd9-ad37-4fac-98d1-7bbcae0e7ea9\",\"type\":\"BasicTicker\"}},\"id\":\"eebc16d8-7423-49bf-aef9-c0e62e5c141c\",\"type\":\"LinearAxis\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[2]},\"y\":{\"__ndarray__\":\"JYc7sdX87r8aZmzLSKv8vw==\",\"dtype\":\"float64\",\"shape\":[2]}}},\"id\":\"e0b4a63b-7274-435b-ad58-6a70111f682a\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[2]},\"y\":{\"__ndarray__\":\"bpg5vapU67+4GvYYnqe3Pw==\",\"dtype\":\"float64\",\"shape\":[2]}}},\"id\":\"f9168edc-7719-43e4-b973-1c99f88461d1\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data_source\":{\"id\":\"ec93521a-69b2-45f1-9e26-7fdd82174bd9\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"a0814605-344f-4c58-8646-4c165d7037ec\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"e28b5879-233c-41a8-8be0-98faa8d44bb6\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"21d82141-ef94-4bb6-8c09-c09dbabd82e8\",\"type\":\"CDSView\"}},\"id\":\"8f4031d2-72ab-4087-8477-9cdf3924459a\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"f9408108-dcc9-4305-843c-f338d2bf8b32\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"0663fdd9-ad37-4fac-98d1-7bbcae0e7ea9\",\"type\":\"BasicTicker\"}},\"id\":\"590e6dc3-ab18-464e-b321-a3a0852c76df\",\"type\":\"Grid\"},{\"attributes\":{\"data_source\":{\"id\":\"f9168edc-7719-43e4-b973-1c99f88461d1\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"7a5cde78-90f6-4d8a-9ad1-59ca283abee4\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"5a8dc146-49d1-4ca4-acce-21e35e526402\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"0b230929-e161-469f-ac15-f9ca978f0eeb\",\"type\":\"CDSView\"}},\"id\":\"26c0e326-2ed1-44a5-b288-700dc3b52560\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"ec93521a-69b2-45f1-9e26-7fdd82174bd9\",\"type\":\"ColumnDataSource\"}},\"id\":\"21d82141-ef94-4bb6-8c09-c09dbabd82e8\",\"type\":\"CDSView\"},{\"attributes\":{\"callback\":null},\"id\":\"2ed83fe7-9b84-4f46-9107-1cd9ade3e6b4\",\"type\":\"DataRange1d\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"95b9f82c-0f6b-4469-a88a-244ca1650279\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"line_color\":{\"value\":\"#8c564b\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"7a5cde78-90f6-4d8a-9ad1-59ca283abee4\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"ca424cf3-8444-4209-ad05-95786d4b530d\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"5a8dc146-49d1-4ca4-acce-21e35e526402\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"d34dced1-993f-4c0d-9d02-804498077cf2\",\"type\":\"LinearScale\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[2]},\"y\":{\"__ndarray__\":\"rXVoQMX70T8Uvm1ai7v1Pw==\",\"dtype\":\"float64\",\"shape\":[2]}}},\"id\":\"9949550c-e4db-46ec-815e-5146132f00be\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"source\":{\"id\":\"f9168edc-7719-43e4-b973-1c99f88461d1\",\"type\":\"ColumnDataSource\"}},\"id\":\"0b230929-e161-469f-ac15-f9ca978f0eeb\",\"type\":\"CDSView\"},{\"attributes\":{\"line_color\":{\"value\":\"#bcbd22\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"e7bbc765-3c83-4dd4-9677-c017d2e6f57e\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[2]},\"y\":{\"__ndarray__\":\"eFjaKlA79b+ZxgE1zBXcPw==\",\"dtype\":\"float64\",\"shape\":[2]}}},\"id\":\"08a941d0-273a-44f0-ae2c-197c2499cadb\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[2]},\"y\":{\"__ndarray__\":\"WSXMfQDG0z/owLOqAJXsPw==\",\"dtype\":\"float64\",\"shape\":[2]}}},\"id\":\"f601da4d-ad61-4675-b8e2-19c1444a72cf\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data_source\":{\"id\":\"9949550c-e4db-46ec-815e-5146132f00be\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"5bfac3ce-7d8d-4241-be26-cf64c071cc07\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"ca424cf3-8444-4209-ad05-95786d4b530d\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"7ca29172-f76a-4f23-9d79-2a410bc112b9\",\"type\":\"CDSView\"}},\"id\":\"5699d908-8988-4f7c-863c-b96a84856ceb\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"9949550c-e4db-46ec-815e-5146132f00be\",\"type\":\"ColumnDataSource\"}},\"id\":\"7ca29172-f76a-4f23-9d79-2a410bc112b9\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"07f728a8-3a2d-4e54-839f-7c5caeafd571\",\"type\":\"BasicTicker\"},{\"attributes\":{\"line_color\":{\"value\":\"#7f7f7f\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2c201a8f-761c-47fd-86e2-92ecf1d58506\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"08a941d0-273a-44f0-ae2c-197c2499cadb\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"2c201a8f-761c-47fd-86e2-92ecf1d58506\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"020d3860-ba1a-4396-bbbb-d5bcf6f1bab8\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"1fdecaeb-f8d0-4a25-b253-009cac81d461\",\"type\":\"CDSView\"}},\"id\":\"9bddf5f6-66b3-4831-839b-6c8d97fdfee2\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[2]},\"y\":{\"__ndarray__\":\"j2HKEQjl1D9wrg51JxnRvw==\",\"dtype\":\"float64\",\"shape\":[2]}}},\"id\":\"1a12dacb-3e67-427a-9838-7ad8b639428d\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[2]},\"y\":{\"__ndarray__\":\"UXOeBLf04D+mWEJDFnICQA==\",\"dtype\":\"float64\",\"shape\":[2]}}},\"id\":\"c1311818-8912-45c4-af3e-1db4c54eecd0\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[2]},\"y\":{\"__ndarray__\":\"kdJ1BFKn5T82Dm/bO5zqPw==\",\"dtype\":\"float64\",\"shape\":[2]}}},\"id\":\"94eedcf8-ade9-4b03-8152-7c10ef788cbd\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"020d3860-ba1a-4396-bbbb-d5bcf6f1bab8\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"08a941d0-273a-44f0-ae2c-197c2499cadb\",\"type\":\"ColumnDataSource\"}},\"id\":\"1fdecaeb-f8d0-4a25-b253-009cac81d461\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"74f55e50-9335-45db-9486-7c353fc2932d\",\"type\":\"Line\"},{\"attributes\":{\"plot\":null,\"text\":\"Samples from a unit 2D Gaussian\"},\"id\":\"ab6017f5-dcfc-46d2-a87e-3d027510fc4e\",\"type\":\"Title\"},{\"attributes\":{\"data_source\":{\"id\":\"94eedcf8-ade9-4b03-8152-7c10ef788cbd\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"e7bbc765-3c83-4dd4-9677-c017d2e6f57e\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"74f55e50-9335-45db-9486-7c353fc2932d\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"16823bd2-bc4e-4378-8cd7-5399e18deb3f\",\"type\":\"CDSView\"}},\"id\":\"0e04a091-ad8c-4c62-a492-591e7aff00ee\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"23fea3ce-ccf1-49cc-b070-b7d168710940\",\"type\":\"LinearScale\"},{\"attributes\":{\"data_source\":{\"id\":\"f601da4d-ad61-4675-b8e2-19c1444a72cf\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"191b5735-3313-4ac6-89e7-72c9b358e5a6\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"b049aa3a-b70e-44b0-b363-bb8c38464632\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"fa3b3e80-3501-4155-9d85-90a36fe0f3e8\",\"type\":\"CDSView\"}},\"id\":\"30cb5f1c-bf26-4cce-9d83-aed366204f8c\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"94eedcf8-ade9-4b03-8152-7c10ef788cbd\",\"type\":\"ColumnDataSource\"}},\"id\":\"16823bd2-bc4e-4378-8cd7-5399e18deb3f\",\"type\":\"CDSView\"},{\"attributes\":{\"line_color\":{\"value\":\"#17becf\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"191b5735-3313-4ac6-89e7-72c9b358e5a6\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null},\"id\":\"50eab691-16c4-476f-826c-043c5b76fc7c\",\"type\":\"DataRange1d\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"b049aa3a-b70e-44b0-b363-bb8c38464632\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"3cf02621-8f87-46d1-bfad-cc95cc343bdb\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"4818b05a-b79b-4334-9e4c-4cdb9a5b3e1e\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"f601da4d-ad61-4675-b8e2-19c1444a72cf\",\"type\":\"ColumnDataSource\"}},\"id\":\"fa3b3e80-3501-4155-9d85-90a36fe0f3e8\",\"type\":\"CDSView\"},{\"attributes\":{\"below\":[{\"id\":\"3cb1ba4a-7712-45c1-bb80-a02d88af96e7\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"eebc16d8-7423-49bf-aef9-c0e62e5c141c\",\"type\":\"LinearAxis\"}],\"plot_height\":500,\"plot_width\":800,\"renderers\":[{\"id\":\"3cb1ba4a-7712-45c1-bb80-a02d88af96e7\",\"type\":\"LinearAxis\"},{\"id\":\"075b218f-a362-4914-b7c5-14cd7359ef1b\",\"type\":\"Grid\"},{\"id\":\"eebc16d8-7423-49bf-aef9-c0e62e5c141c\",\"type\":\"LinearAxis\"},{\"id\":\"590e6dc3-ab18-464e-b321-a3a0852c76df\",\"type\":\"Grid\"},{\"id\":\"95b9f82c-0f6b-4469-a88a-244ca1650279\",\"type\":\"BoxAnnotation\"},{\"id\":\"6f306bce-64d4-4f2f-80c1-a149069eab5a\",\"type\":\"GlyphRenderer\"},{\"id\":\"1c22be92-6b86-46e9-82fb-9f722f31f8a8\",\"type\":\"GlyphRenderer\"},{\"id\":\"a5f35d9b-ff74-4ef6-8c1f-f070a8537cd9\",\"type\":\"GlyphRenderer\"},{\"id\":\"9cf0a791-f9aa-4285-a4fc-52deb13229ef\",\"type\":\"GlyphRenderer\"},{\"id\":\"8f4031d2-72ab-4087-8477-9cdf3924459a\",\"type\":\"GlyphRenderer\"},{\"id\":\"26c0e326-2ed1-44a5-b288-700dc3b52560\",\"type\":\"GlyphRenderer\"},{\"id\":\"5699d908-8988-4f7c-863c-b96a84856ceb\",\"type\":\"GlyphRenderer\"},{\"id\":\"9bddf5f6-66b3-4831-839b-6c8d97fdfee2\",\"type\":\"GlyphRenderer\"},{\"id\":\"0e04a091-ad8c-4c62-a492-591e7aff00ee\",\"type\":\"GlyphRenderer\"},{\"id\":\"30cb5f1c-bf26-4cce-9d83-aed366204f8c\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"ab6017f5-dcfc-46d2-a87e-3d027510fc4e\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"4108fd64-8ace-4edd-949b-a0e6fdbafe84\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"50eab691-16c4-476f-826c-043c5b76fc7c\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"23fea3ce-ccf1-49cc-b070-b7d168710940\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"2ed83fe7-9b84-4f46-9107-1cd9ade3e6b4\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"d34dced1-993f-4c0d-9d02-804498077cf2\",\"type\":\"LinearScale\"}},\"id\":\"f9408108-dcc9-4305-843c-f338d2bf8b32\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"formatter\":{\"id\":\"3cf02621-8f87-46d1-bfad-cc95cc343bdb\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"f9408108-dcc9-4305-843c-f338d2bf8b32\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"07f728a8-3a2d-4e54-839f-7c5caeafd571\",\"type\":\"BasicTicker\"}},\"id\":\"3cb1ba4a-7712-45c1-bb80-a02d88af96e7\",\"type\":\"LinearAxis\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"9b55cb13-ef42-4069-9222-831ded5c051b\",\"type\":\"PanTool\"},{\"id\":\"9ac6abdb-4548-4ae0-a377-76852ad4b299\",\"type\":\"WheelZoomTool\"},{\"id\":\"3bb76ba1-fc75-4251-9e1d-8670c321ed60\",\"type\":\"BoxZoomTool\"},{\"id\":\"93c9c790-4014-4151-bfaf-d66e2aba5a16\",\"type\":\"SaveTool\"},{\"id\":\"38a7246a-ab11-420d-a8de-798127a93410\",\"type\":\"ResetTool\"},{\"id\":\"948d6bce-fe40-45ca-a4cd-a315881971f1\",\"type\":\"HelpTool\"}]},\"id\":\"4108fd64-8ace-4edd-949b-a0e6fdbafe84\",\"type\":\"Toolbar\"}],\"root_ids\":[\"f9408108-dcc9-4305-843c-f338d2bf8b32\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.10\"}};\n",
" var render_items = [{\"docid\":\"45d6c48a-becd-4032-8015-6276bfcc9c30\",\"elementid\":\"b88cb083-f496-44b0-ae0e-137ba1efc2f7\",\"modelid\":\"f9408108-dcc9-4305-843c-f338d2bf8b32\"}];\n",
"\n",
" root.Bokeh.embed.embed_items(docs_json, render_items);\n",
" }\n",
"\n",
" if (root.Bokeh !== undefined) {\n",
" embed_document(root);\n",
" } else {\n",
" var attempts = 0;\n",
" var timer = setInterval(function(root) {\n",
" if (root.Bokeh !== undefined) {\n",
" embed_document(root);\n",
" clearInterval(timer);\n",
" }\n",
" attempts++;\n",
" if (attempts > 100) {\n",
" console.log(\"Bokeh: ERROR: Unable to embed document because BokehJS library is missing\")\n",
" clearInterval(timer);\n",
" }\n",
" }, 10, root)\n",
" }\n",
"})(window);"
],
"application/vnd.bokehjs_exec.v0+json": ""
},
"metadata": {
"application/vnd.bokehjs_exec.v0+json": {
"id": "f9408108-dcc9-4305-843c-f338d2bf8b32"
}
},
"output_type": "display_data"
}
],
"source": [
"show(plot_unit_gaussian_samples(2))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Looking at all these lines on a graph, it starts to look like we've just sampled 10 linear functions... What if we now use a 20-dimensional Gaussian, joining each of the sampled points in order?"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"<div class=\"bk-root\">\n",
" <div class=\"bk-plotdiv\" id=\"12974af4-6b63-4921-bfdd-6c398c524490\"></div>\n",
"</div>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/javascript": [
"(function(root) {\n",
" function embed_document(root) {\n",
" var docs_json = {\"5b8fbcb4-bc74-490e-be54-b5e964708f1c\":{\"roots\":{\"references\":[{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"3bc58773-391a-4121-a65f-a7fc23f0ddb7\",\"type\":\"PanTool\"},{\"id\":\"a25b1dfa-b176-4152-9a08-0ae84e94fcaf\",\"type\":\"WheelZoomTool\"},{\"id\":\"7aa67053-b75c-4d53-ab74-628d0c7ac3a6\",\"type\":\"BoxZoomTool\"},{\"id\":\"0ce72c55-7504-496c-91a9-40967c13f1eb\",\"type\":\"SaveTool\"},{\"id\":\"0fa74778-839f-4b58-8180-2303222a9388\",\"type\":\"ResetTool\"},{\"id\":\"70e21d55-88e2-48d5-8bda-36960f182f45\",\"type\":\"HelpTool\"}]},\"id\":\"56e3bc13-25cc-4af1-ac43-8f38a97157f3\",\"type\":\"Toolbar\"},{\"attributes\":{\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"c40ad384-bb19-487d-8a87-805a3bbabb1f\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAor6G8hvKqPyivobyG8ro/XkN5DeU1xD8or6G8hvLKP3kN5TWU19A/XkN5DeU11D9DeQ3lNZTXPyivobyG8to/DeU1lNdQ3j95DeU1lNfgP2wor6G8huI/XkN5DeU15D9QXkN5DeXlP0N5DeU1lOc/NpTXUF5D6T8or6G8hvLqPxrKayivoew/DeU1lNdQ7j8AAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[20]},\"y\":{\"__ndarray__\":\"URyYI/sWrr/cA3XtVun2v5PR2IakIO+/ZVi4sooG1b96RQlc5AD5P+QiakWCJPY/9nBIzTYe1L+DpWAzYKXZP0Hobl46MtO/a3y8rJjnwL98zE7+7d/yv4/WZANDqvg/LkuIc4CB8r8YMKxdVvHTP2pgIjxyVPC/pzhbVh5557/9JlN/ZUL4v0hBYSSoKue/4tZwVivO5D9hp/Eraj7pPw==\",\"dtype\":\"float64\",\"shape\":[20]}}},\"id\":\"2f064686-0b90-4f83-9d5d-35b11c7d4c4d\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"source\":{\"id\":\"6d50c89b-a80b-49ae-990f-1ad5ab3de193\",\"type\":\"ColumnDataSource\"}},\"id\":\"bd3852ea-a9f5-4a12-ac3f-b6165bdc7f06\",\"type\":\"CDSView\"},{\"attributes\":{\"plot\":null,\"text\":\"Samples from a unit 20D Gaussian\"},\"id\":\"3f098a62-8ee2-432f-a91c-741d279ff7db\",\"type\":\"Title\"},{\"attributes\":{\"callback\":null},\"id\":\"0e9f189e-4711-4f1e-8451-2d5b116a1bfc\",\"type\":\"DataRange1d\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"20dcc492-6fd1-40d9-9ca1-d1460dfa2e42\",\"type\":\"Line\"},{\"attributes\":{\"line_color\":{\"value\":\"#ff7f0e\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"433e20dc-e913-4cd5-bb4b-e5f875208849\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"62f50406-d454-4209-9364-b10f9633063a\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"5acc6613-37df-4c7c-973c-191ca69b3666\",\"type\":\"LinearScale\"},{\"attributes\":{\"data_source\":{\"id\":\"25193649-769c-4423-b2d9-2d055ca43733\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"d46a6d39-ef22-4a20-919b-4c1531af1b6d\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"7b9be359-8cef-445f-b9cf-0af962beff98\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"7f7e93fc-bed7-4a2f-a13d-7cdafc03b148\",\"type\":\"CDSView\"}},\"id\":\"4f55efae-a91b-47e9-9c1c-7967c682f8e1\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"callback\":null},\"id\":\"885f1af3-b047-4dff-a00b-cbb2b62a793e\",\"type\":\"DataRange1d\"},{\"attributes\":{\"source\":{\"id\":\"ef9f96cb-19ac-4878-9951-7612361cf794\",\"type\":\"ColumnDataSource\"}},\"id\":\"28cb46bd-e13c-48ba-a3df-1f3234c93a16\",\"type\":\"CDSView\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAor6G8hvKqPyivobyG8ro/XkN5DeU1xD8or6G8hvLKP3kN5TWU19A/XkN5DeU11D9DeQ3lNZTXPyivobyG8to/DeU1lNdQ3j95DeU1lNfgP2wor6G8huI/XkN5DeU15D9QXkN5DeXlP0N5DeU1lOc/NpTXUF5D6T8or6G8hvLqPxrKayivoew/DeU1lNdQ7j8AAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[20]},\"y\":{\"__ndarray__\":\"CsPOpgmQtj8aB9K/gp/3P+sKwoxXueo/KMGB3MZm0L9JUMSVUCztP/DZnhTqqq2/ido68jpF3b+PFNWIzpPfP/j9TIFt0eS/L8CudM646T8nTN9ZQDztvzVFM4Ty7NY/PkLSHMKw0z84p3ruezL8P9I95DCogOA/i6jM/KwxtL8nR6F04+n7v7/HeCtp1+E/yKnV70MHxT9myh11zYTcPw==\",\"dtype\":\"float64\",\"shape\":[20]}}},\"id\":\"d05d220f-83e8-41a7-a2ad-547556fa0e34\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"formatter\":{\"id\":\"7708b607-ca1a-4531-9b1c-34918e84cbd1\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"2bf90162-251c-4d55-964b-376648ee461c\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"3cece5a0-1547-4931-939c-3ccc4e3aad6a\",\"type\":\"BasicTicker\"}},\"id\":\"6114b7f0-b92c-48ea-864f-fa12f07ec831\",\"type\":\"LinearAxis\"},{\"attributes\":{\"plot\":{\"id\":\"2bf90162-251c-4d55-964b-376648ee461c\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"3cece5a0-1547-4931-939c-3ccc4e3aad6a\",\"type\":\"BasicTicker\"}},\"id\":\"9e728558-40e5-4e66-b9f6-a95ff704cb5d\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"a25b1dfa-b176-4152-9a08-0ae84e94fcaf\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"0bd9f631-305b-405f-bdd1-bca174547939\",\"type\":\"BasicTicker\"},{\"attributes\":{\"formatter\":{\"id\":\"21bf44e7-42db-4ce5-bf84-a14d82dc4468\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"2bf90162-251c-4d55-964b-376648ee461c\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"0bd9f631-305b-405f-bdd1-bca174547939\",\"type\":\"BasicTicker\"}},\"id\":\"6fc0cc78-2aca-4e33-b681-1a5ddd5da243\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"3cece5a0-1547-4931-939c-3ccc4e3aad6a\",\"type\":\"BasicTicker\"},{\"attributes\":{\"line_color\":{\"value\":\"#2ca02c\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"5e81bade-b39a-42df-9493-5e207b40b6d5\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"7708b607-ca1a-4531-9b1c-34918e84cbd1\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1e68531f-857e-45f3-80eb-f8fe131739f5\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"21bf44e7-42db-4ce5-bf84-a14d82dc4468\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"0ce72c55-7504-496c-91a9-40967c13f1eb\",\"type\":\"SaveTool\"},{\"attributes\":{\"data_source\":{\"id\":\"2f064686-0b90-4f83-9d5d-35b11c7d4c4d\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"433e20dc-e913-4cd5-bb4b-e5f875208849\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"b698753f-0bf5-4aa5-bf14-f17bd2e3a5ab\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"355b5a7e-cf28-4507-828d-d1bdbaee18e6\",\"type\":\"CDSView\"}},\"id\":\"99192237-d517-45f4-adad-1df64d5a4284\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"3bc58773-391a-4121-a65f-a7fc23f0ddb7\",\"type\":\"PanTool\"},{\"attributes\":{\"data_source\":{\"id\":\"d05d220f-83e8-41a7-a2ad-547556fa0e34\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"0534db1d-a401-42ec-9862-31077f17b9bd\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"9462e478-b6b4-4353-bf33-ce0eb7722fe6\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"e9233658-6d1b-4227-8ff2-7beb470183e1\",\"type\":\"CDSView\"}},\"id\":\"9537a1e2-7449-4d41-b170-cacaf13c78aa\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"overlay\":{\"id\":\"1e68531f-857e-45f3-80eb-f8fe131739f5\",\"type\":\"BoxAnnotation\"}},\"id\":\"7aa67053-b75c-4d53-ab74-628d0c7ac3a6\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"line_color\":{\"value\":\"#d62728\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"41045db2-0605-4d02-ab50-6281c11fd409\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"70e21d55-88e2-48d5-8bda-36960f182f45\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"0fa74778-839f-4b58-8180-2303222a9388\",\"type\":\"ResetTool\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"2bf90162-251c-4d55-964b-376648ee461c\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"0bd9f631-305b-405f-bdd1-bca174547939\",\"type\":\"BasicTicker\"}},\"id\":\"dfcab440-54b5-45b3-b59a-a65855808aec\",\"type\":\"Grid\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAor6G8hvKqPyivobyG8ro/XkN5DeU1xD8or6G8hvLKP3kN5TWU19A/XkN5DeU11D9DeQ3lNZTXPyivobyG8to/DeU1lNdQ3j95DeU1lNfgP2wor6G8huI/XkN5DeU15D9QXkN5DeXlP0N5DeU1lOc/NpTXUF5D6T8or6G8hvLqPxrKayivoew/DeU1lNdQ7j8AAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[20]},\"y\":{\"__ndarray__\":\"4letJ1P64r8NQr7mXJDgP+HwFfJ2k9Y/8+89k01Q6b9fbb7tQWqPv8sF6xhrXuO/Icehqovd+r/fmeT8SATpP7+hsx7cFc6/odHQpME56L+DI0CB0lrIP5q0WKi37Oc/MmSAzgAh8b/GCOfMWdj4P0l3FpWwNd0/BrzuG/1kob8oLDGiWPn9v9XmvF6aPf0/5JlQUaxL7j9fht2IaqrwPw==\",\"dtype\":\"float64\",\"shape\":[20]}}},\"id\":\"26c42f31-eb2f-4670-8c4e-0c08fe326350\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAor6G8hvKqPyivobyG8ro/XkN5DeU1xD8or6G8hvLKP3kN5TWU19A/XkN5DeU11D9DeQ3lNZTXPyivobyG8to/DeU1lNdQ3j95DeU1lNfgP2wor6G8huI/XkN5DeU15D9QXkN5DeXlP0N5DeU1lOc/NpTXUF5D6T8or6G8hvLqPxrKayivoew/DeU1lNdQ7j8AAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[20]},\"y\":{\"__ndarray__\":\"uZOddbzi4D+JZb9rCHfevyPF7ffj9d2/tYHJ5n5Awz+A0WK3E67Vvxv1/1sOP6E/hL1B96xR8b9AHZRNr2njv+TpnpNZpuc/VKd5MNnj6j/WicX3+rfrv79gXkFJXPm/Hdxl0Vpf6L/RzboALx3VP2sh3hj8idu/+CbrjCxi5D85Pb7b5oW8P5fbq2Lz/PU/sqoJdy5W6D8lt3hiH4Tevw==\",\"dtype\":\"float64\",\"shape\":[20]}}},\"id\":\"9bf38468-25d4-4b09-9b19-4129517f6309\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"b698753f-0bf5-4aa5-bf14-f17bd2e3a5ab\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"26c42f31-eb2f-4670-8c4e-0c08fe326350\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"5e81bade-b39a-42df-9493-5e207b40b6d5\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"9b17f19c-5952-45f0-b167-00ca78a9cf7f\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"c50b2b0e-65c0-46a8-bc39-3cb991abaebb\",\"type\":\"CDSView\"}},\"id\":\"d2009d47-257e-4429-b7d6-12795100a1c7\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"9b17f19c-5952-45f0-b167-00ca78a9cf7f\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAor6G8hvKqPyivobyG8ro/XkN5DeU1xD8or6G8hvLKP3kN5TWU19A/XkN5DeU11D9DeQ3lNZTXPyivobyG8to/DeU1lNdQ3j95DeU1lNfgP2wor6G8huI/XkN5DeU15D9QXkN5DeXlP0N5DeU1lOc/NpTXUF5D6T8or6G8hvLqPxrKayivoew/DeU1lNdQ7j8AAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[20]},\"y\":{\"__ndarray__\":\"mEkhHr22AcA9BFXs47Hevxctn6Yd0PK/Ep+xY2Pe4L/sSbqoCoi3v8bitcq+Vtg/qHvwWyMk6T/zjU90w1bsv19KFz9HMOc/mTogK/9+xD82oGpAF6b1P3C30RsBjPM/ID0oxrBb/7+jHKecssHiP0XRxVsV8/w/0AEr5UEx6j9bCVH8HvH0P6kCRDz15PO/zn9139mmxz87jGSNIlfzvw==\",\"dtype\":\"float64\",\"shape\":[20]}}},\"id\":\"6d50c89b-a80b-49ae-990f-1ad5ab3de193\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"source\":{\"id\":\"26c42f31-eb2f-4670-8c4e-0c08fe326350\",\"type\":\"ColumnDataSource\"}},\"id\":\"c50b2b0e-65c0-46a8-bc39-3cb991abaebb\",\"type\":\"CDSView\"},{\"attributes\":{\"source\":{\"id\":\"2f064686-0b90-4f83-9d5d-35b11c7d4c4d\",\"type\":\"ColumnDataSource\"}},\"id\":\"355b5a7e-cf28-4507-828d-d1bdbaee18e6\",\"type\":\"CDSView\"},{\"attributes\":{\"source\":{\"id\":\"9bf38468-25d4-4b09-9b19-4129517f6309\",\"type\":\"ColumnDataSource\"}},\"id\":\"64268aaf-c82c-40df-bc24-b21102142d47\",\"type\":\"CDSView\"},{\"attributes\":{\"line_color\":{\"value\":\"#9467bd\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"b675a023-7228-4427-8e86-813fb9784735\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAor6G8hvKqPyivobyG8ro/XkN5DeU1xD8or6G8hvLKP3kN5TWU19A/XkN5DeU11D9DeQ3lNZTXPyivobyG8to/DeU1lNdQ3j95DeU1lNfgP2wor6G8huI/XkN5DeU15D9QXkN5DeXlP0N5DeU1lOc/NpTXUF5D6T8or6G8hvLqPxrKayivoew/DeU1lNdQ7j8AAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[20]},\"y\":{\"__ndarray__\":\"2jZ042Om/L/frhKotwXxv/yNeqtpaeA/RHkk8RfY4L+fFTVOIpT4vxnLX9U3DvK/bZRFTDj26L/qjkR+IOSiP5auohz/Bbm/sGCzqu1R6r9luE3wf8z7P3hZFBmnvOW/SU+H8Hdiyb8Y0EQNbNDZvx8HbP3Z//C/5NDGUIZ64b+VMoFIiHj1PztM2Bx/F30/Aojsn4pE7z8IXof/AP3mvw==\",\"dtype\":\"float64\",\"shape\":[20]}}},\"id\":\"cf651457-5e5d-46ec-bf30-22bdddfbd9d1\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data_source\":{\"id\":\"cf651457-5e5d-46ec-bf30-22bdddfbd9d1\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"41045db2-0605-4d02-ab50-6281c11fd409\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"57d5768a-b65a-46db-8a82-44c47cbc6f15\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"9f6ea46e-c368-4eaf-9b33-f94aaeb0a465\",\"type\":\"CDSView\"}},\"id\":\"0be3fac1-a903-41bb-b6d4-89c520f9c886\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"data_source\":{\"id\":\"6d50c89b-a80b-49ae-990f-1ad5ab3de193\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"c40ad384-bb19-487d-8a87-805a3bbabb1f\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"20dcc492-6fd1-40d9-9ca1-d1460dfa2e42\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"bd3852ea-a9f5-4a12-ac3f-b6165bdc7f06\",\"type\":\"CDSView\"}},\"id\":\"713740ab-e010-4671-b18e-1feb9c6c51eb\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_color\":{\"value\":\"#bcbd22\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"d46a6d39-ef22-4a20-919b-4c1531af1b6d\",\"type\":\"Line\"},{\"attributes\":{\"line_color\":{\"value\":\"#e377c2\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"bf911e13-2188-45d3-9151-badacf6bc63f\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"5f469844-e6b0-4755-bf0a-df447a47485b\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"b675a023-7228-4427-8e86-813fb9784735\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"28fd7ef8-2356-4e42-b0f0-e61bc5f27520\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"81622270-e99b-4d91-a774-8b4771687b19\",\"type\":\"CDSView\"}},\"id\":\"0011e192-d4c1-4d10-bd69-1f3f7b6a7c52\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"28fd7ef8-2356-4e42-b0f0-e61bc5f27520\",\"type\":\"Line\"},{\"attributes\":{\"line_color\":{\"value\":\"#8c564b\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"b9c68a84-e108-4c69-b49d-ef606d8f658f\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"cf651457-5e5d-46ec-bf30-22bdddfbd9d1\",\"type\":\"ColumnDataSource\"}},\"id\":\"9f6ea46e-c368-4eaf-9b33-f94aaeb0a465\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"57d5768a-b65a-46db-8a82-44c47cbc6f15\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAor6G8hvKqPyivobyG8ro/XkN5DeU1xD8or6G8hvLKP3kN5TWU19A/XkN5DeU11D9DeQ3lNZTXPyivobyG8to/DeU1lNdQ3j95DeU1lNfgP2wor6G8huI/XkN5DeU15D9QXkN5DeXlP0N5DeU1lOc/NpTXUF5D6T8or6G8hvLqPxrKayivoew/DeU1lNdQ7j8AAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[20]},\"y\":{\"__ndarray__\":\"0n836ji/1T/00gjXj9HdP+aLLLKf1Oy/Wn664KzS4z8OilMSL97APwt5QlJDw+O/FyGquB1f4b+y6MdJrNbaPz7mrzi9Qvi/2ywlmkhf8D+y6cBNpT/zvx/+b7R/F8c/V9VV2sgT3D8KG9QXVebcv00yLgtBeNo/jDkRiF3Z5z/yTBONVJr+P2NQ6TqOXtO/uULSIuG0zT/w7/j41YWxPw==\",\"dtype\":\"float64\",\"shape\":[20]}}},\"id\":\"5f469844-e6b0-4755-bf0a-df447a47485b\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data_source\":{\"id\":\"9bf38468-25d4-4b09-9b19-4129517f6309\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"b9c68a84-e108-4c69-b49d-ef606d8f658f\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"93ffc22d-5cd4-4b07-b27f-890ccad9e95d\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"64268aaf-c82c-40df-bc24-b21102142d47\",\"type\":\"CDSView\"}},\"id\":\"79c619fb-4a98-43c0-8727-5d405ba7d592\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"5f469844-e6b0-4755-bf0a-df447a47485b\",\"type\":\"ColumnDataSource\"}},\"id\":\"81622270-e99b-4d91-a774-8b4771687b19\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"0225d2c4-303d-426a-9700-93201435e214\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"ef9f96cb-19ac-4878-9951-7612361cf794\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"be10753d-7c77-4baf-bb7b-e8ba6de7b1c5\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"5ed076e1-7cc4-41ed-b05f-60543dfe8eb1\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"28cb46bd-e13c-48ba-a3df-1f3234c93a16\",\"type\":\"CDSView\"}},\"id\":\"5380651e-fe8f-4f42-b982-f6edde71cff5\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAor6G8hvKqPyivobyG8ro/XkN5DeU1xD8or6G8hvLKP3kN5TWU19A/XkN5DeU11D9DeQ3lNZTXPyivobyG8to/DeU1lNdQ3j95DeU1lNfgP2wor6G8huI/XkN5DeU15D9QXkN5DeXlP0N5DeU1lOc/NpTXUF5D6T8or6G8hvLqPxrKayivoew/DeU1lNdQ7j8AAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[20]},\"y\":{\"__ndarray__\":\"bzbYxuA94D9OgDb1daPhv/HhG2Ap4+0/2JHSiAf/8j9AVzQynGzqP+df3LZ8U+U/1sgZ+f6w8j8JeGnXXHj3v59PRFTB+/Q/gvcHV5Qf0b8MzY7bnHXkv/U6U2ABoei/0ZX8nrsI8T/EXCAE12nkP7y9l+XXoPI/km+No1y48D9GAx8dkUzvP/lkaYxQqvA/YGrr7/Yo2b9Y4XafqyP2Pw==\",\"dtype\":\"float64\",\"shape\":[20]}}},\"id\":\"89918659-05a5-4de9-852a-a86aaa0b001e\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"93ffc22d-5cd4-4b07-b27f-890ccad9e95d\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAor6G8hvKqPyivobyG8ro/XkN5DeU1xD8or6G8hvLKP3kN5TWU19A/XkN5DeU11D9DeQ3lNZTXPyivobyG8to/DeU1lNdQ3j95DeU1lNfgP2wor6G8huI/XkN5DeU15D9QXkN5DeXlP0N5DeU1lOc/NpTXUF5D6T8or6G8hvLqPxrKayivoew/DeU1lNdQ7j8AAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[20]},\"y\":{\"__ndarray__\":\"p0Z181Ur4b89kVSlirriv6HOaltda8s/Q+rRq0bThz9ZJGOfX7viP7ywmKYQg7o/ns0IvYhg7j/ezUyyP6JsP+/fh8mirum/awAqZVAz4z82y4nq5aXEv++ScU43KvK/IPWAOLdHw7+QmRiF8dPkvxCOgPv+beW/EWD8p1vl7T/0EYXKkC7gv39pavUWr/c/Wv+HNTkJ5z8gqZTm0IX3vw==\",\"dtype\":\"float64\",\"shape\":[20]}}},\"id\":\"ef9f96cb-19ac-4878-9951-7612361cf794\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"source\":{\"id\":\"25193649-769c-4423-b2d9-2d055ca43733\",\"type\":\"ColumnDataSource\"}},\"id\":\"7f7e93fc-bed7-4a2f-a13d-7cdafc03b148\",\"type\":\"CDSView\"},{\"attributes\":{\"data_source\":{\"id\":\"89918659-05a5-4de9-852a-a86aaa0b001e\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"bf911e13-2188-45d3-9151-badacf6bc63f\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"0225d2c4-303d-426a-9700-93201435e214\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"81743810-faa3-4e59-933b-4240cd892607\",\"type\":\"CDSView\"}},\"id\":\"24068d23-4e52-44a7-95ec-d701149e9c1d\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"d05d220f-83e8-41a7-a2ad-547556fa0e34\",\"type\":\"ColumnDataSource\"}},\"id\":\"e9233658-6d1b-4227-8ff2-7beb470183e1\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"9462e478-b6b4-4353-bf33-ce0eb7722fe6\",\"type\":\"Line\"},{\"attributes\":{\"line_color\":{\"value\":\"#7f7f7f\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"be10753d-7c77-4baf-bb7b-e8ba6de7b1c5\",\"type\":\"Line\"},{\"attributes\":{\"below\":[{\"id\":\"6114b7f0-b92c-48ea-864f-fa12f07ec831\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"6fc0cc78-2aca-4e33-b681-1a5ddd5da243\",\"type\":\"LinearAxis\"}],\"plot_height\":500,\"plot_width\":800,\"renderers\":[{\"id\":\"6114b7f0-b92c-48ea-864f-fa12f07ec831\",\"type\":\"LinearAxis\"},{\"id\":\"9e728558-40e5-4e66-b9f6-a95ff704cb5d\",\"type\":\"Grid\"},{\"id\":\"6fc0cc78-2aca-4e33-b681-1a5ddd5da243\",\"type\":\"LinearAxis\"},{\"id\":\"dfcab440-54b5-45b3-b59a-a65855808aec\",\"type\":\"Grid\"},{\"id\":\"1e68531f-857e-45f3-80eb-f8fe131739f5\",\"type\":\"BoxAnnotation\"},{\"id\":\"713740ab-e010-4671-b18e-1feb9c6c51eb\",\"type\":\"GlyphRenderer\"},{\"id\":\"99192237-d517-45f4-adad-1df64d5a4284\",\"type\":\"GlyphRenderer\"},{\"id\":\"d2009d47-257e-4429-b7d6-12795100a1c7\",\"type\":\"GlyphRenderer\"},{\"id\":\"0be3fac1-a903-41bb-b6d4-89c520f9c886\",\"type\":\"GlyphRenderer\"},{\"id\":\"0011e192-d4c1-4d10-bd69-1f3f7b6a7c52\",\"type\":\"GlyphRenderer\"},{\"id\":\"79c619fb-4a98-43c0-8727-5d405ba7d592\",\"type\":\"GlyphRenderer\"},{\"id\":\"24068d23-4e52-44a7-95ec-d701149e9c1d\",\"type\":\"GlyphRenderer\"},{\"id\":\"5380651e-fe8f-4f42-b982-f6edde71cff5\",\"type\":\"GlyphRenderer\"},{\"id\":\"4f55efae-a91b-47e9-9c1c-7967c682f8e1\",\"type\":\"GlyphRenderer\"},{\"id\":\"9537a1e2-7449-4d41-b170-cacaf13c78aa\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"3f098a62-8ee2-432f-a91c-741d279ff7db\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"56e3bc13-25cc-4af1-ac43-8f38a97157f3\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"0e9f189e-4711-4f1e-8451-2d5b116a1bfc\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"62f50406-d454-4209-9364-b10f9633063a\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"885f1af3-b047-4dff-a00b-cbb2b62a793e\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"5acc6613-37df-4c7c-973c-191ca69b3666\",\"type\":\"LinearScale\"}},\"id\":\"2bf90162-251c-4d55-964b-376648ee461c\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"source\":{\"id\":\"89918659-05a5-4de9-852a-a86aaa0b001e\",\"type\":\"ColumnDataSource\"}},\"id\":\"81743810-faa3-4e59-933b-4240cd892607\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"7b9be359-8cef-445f-b9cf-0af962beff98\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"5ed076e1-7cc4-41ed-b05f-60543dfe8eb1\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAor6G8hvKqPyivobyG8ro/XkN5DeU1xD8or6G8hvLKP3kN5TWU19A/XkN5DeU11D9DeQ3lNZTXPyivobyG8to/DeU1lNdQ3j95DeU1lNfgP2wor6G8huI/XkN5DeU15D9QXkN5DeXlP0N5DeU1lOc/NpTXUF5D6T8or6G8hvLqPxrKayivoew/DeU1lNdQ7j8AAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[20]},\"y\":{\"__ndarray__\":\"ff10yKv7hL9TLMffUq/IvwV2k65l/7S/ET0+H0eh8D/aWdMbHAD4Py6XeamhNNc/Gk5L3cKT7b9X3uRR2wnsv+xFOEOGUs+/ySoNZbvX6r+GqM1VUjL1P0WgwQr8Q8e/xYzstfcv9b+utB+sAyCdP4xA2+aqbOA/iWqRO0C49b9ggonRzavVvwC/5EbU+ea/1xYL7zCL2z/gAjdAD+UAQA==\",\"dtype\":\"float64\",\"shape\":[20]}}},\"id\":\"25193649-769c-4423-b2d9-2d055ca43733\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_color\":{\"value\":\"#17becf\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"0534db1d-a401-42ec-9862-31077f17b9bd\",\"type\":\"Line\"}],\"root_ids\":[\"2bf90162-251c-4d55-964b-376648ee461c\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.10\"}};\n",
" var render_items = [{\"docid\":\"5b8fbcb4-bc74-490e-be54-b5e964708f1c\",\"elementid\":\"12974af4-6b63-4921-bfdd-6c398c524490\",\"modelid\":\"2bf90162-251c-4d55-964b-376648ee461c\"}];\n",
"\n",
" root.Bokeh.embed.embed_items(docs_json, render_items);\n",
" }\n",
"\n",
" if (root.Bokeh !== undefined) {\n",
" embed_document(root);\n",
" } else {\n",
" var attempts = 0;\n",
" var timer = setInterval(function(root) {\n",
" if (root.Bokeh !== undefined) {\n",
" embed_document(root);\n",
" clearInterval(timer);\n",
" }\n",
" attempts++;\n",
" if (attempts > 100) {\n",
" console.log(\"Bokeh: ERROR: Unable to embed document because BokehJS library is missing\")\n",
" clearInterval(timer);\n",
" }\n",
" }, 10, root)\n",
" }\n",
"})(window);"
],
"application/vnd.bokehjs_exec.v0+json": ""
},
"metadata": {
"application/vnd.bokehjs_exec.v0+json": {
"id": "2bf90162-251c-4d55-964b-376648ee461c"
}
},
"output_type": "display_data"
}
],
"source": [
"show(plot_unit_gaussian_samples(20))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"These definitely look like functions of sorts but they look far too noisy to be useful for our purposes. Let's think a bit more about what we want from these samples and how we might change the distribution to get better looking samples...\n",
"\n",
"The multivariate Gaussian has two parameters, its mean and covariance matrix. If we changed the mean then we would only change the overall trend (i.e. if the mean was ascending integers, e.g. `np.arange(D)` then the samples would have an overall positive linear trend) but there would still be that jagged noisy shape. For this reason we tend to leave the GP mean as zero - they actually turn out to be powerful enough to model many functions without changing this.\n",
"\n",
"Instead we want some notion of _smoothness_: i.e. if two input points are close to each other then we expect the value of the function at those points to be similar. In terms of our model: random variables corresponding to nearby points should have similar values when sampled under their joint distribution (i.e. high _covariance_).\n",
"\n",
"The covariance of these points is defined in the covariance matrix of the Gaussian. Suppose we have an $N$ dimensional Gaussian modeling $y_0,\\ldots, y_N$, then the covariance matrix $\\Sigma$ is $N\\times N$ and its $(i, j)$-th element is $\\Sigma_{ij}=\\text{cov}(y_i, y_j)$. In other words $\\Sigma$ is symmetric and stores the pairwise covariances of all the jointly modeled random variables.\n",
"\n",
"## Smoothing with Kernels\n",
"***\n",
"\n",
"So how should we define our covariance function? This is where the vast literature on kernels comes in handy. For our purposes we will choose a __squared exponential kernel__ which (in its simplest form) is defined by:\n",
"\n",
"$$ \\kappa(x, x')=\\exp\\left(-~\\frac{(x-x')^2}{2}\\right)$$\n",
"\n",
"This function (which we plot in a moment) is 1 when $x=x'$ and tends to zero as its arguments drift apart."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"def k(xs, ys, sigma=1, l=1):\n",
" \"\"\"Sqared Exponential kernel as above but designed to return the whole\n",
" covariance matrix - i.e. the pairwise covariance of the vectors xs & ys.\n",
" Also with two parameters which are discussed at the end.\"\"\"\n",
"\n",
" # Pairwise difference matrix.\n",
" dx = np.expand_dims(xs, 1) - np.expand_dims(ys, 0)\n",
" return (sigma ** 2) * np.exp(-((dx / l) ** 2) / 2)\n",
"\n",
"def m(x):\n",
" \"\"\"The mean function. As discussed, we can let the mean always be zero.\"\"\"\n",
" return np.zeros_like(x)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can plot this kernel to show how it's maximised when $x=x'$ and then smoothly falls off as the two inputs start to differ."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"<div class=\"bk-root\">\n",
" <div class=\"bk-plotdiv\" id=\"ccf76f2a-1a2e-44ba-9fd9-e2ea50768319\"></div>\n",
"</div>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/javascript": [
"(function(root) {\n",
" function embed_document(root) {\n",
" var docs_json = {\"e198638c-da5c-4283-a0bc-fb94dfe36f52\":{\"roots\":{\"references\":[{\"attributes\":{},\"id\":\"c5b6dbd8-684a-4727-b933-07172cabce53\",\"type\":\"ResetTool\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2a666a5b-3d3f-4706-b6f2-d4a80f40c2e8\",\"type\":\"PanTool\"},{\"id\":\"5f1bd936-8ccf-4f44-9636-71eba5569400\",\"type\":\"WheelZoomTool\"},{\"id\":\"4e4efdd5-6019-4570-af85-9588484b4784\",\"type\":\"BoxZoomTool\"},{\"id\":\"3638c229-5244-4273-a2d6-c57472abfda3\",\"type\":\"SaveTool\"},{\"id\":\"c5b6dbd8-684a-4727-b933-07172cabce53\",\"type\":\"ResetTool\"},{\"id\":\"cd6af19b-318e-4e09-9de9-3580e087b540\",\"type\":\"HelpTool\"}]},\"id\":\"04827647-9127-4352-b82b-178de66f5519\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"cd6af19b-318e-4e09-9de9-3580e087b540\",\"type\":\"HelpTool\"},{\"attributes\":{\"color_mapper\":{\"id\":\"13704119-82c4-4601-909a-47d2253c3988\",\"type\":\"LinearColorMapper\"},\"dh\":{\"units\":\"data\",\"value\":4},\"dw\":{\"units\":\"data\",\"value\":4},\"image\":{\"field\":\"image\"},\"x\":{\"value\":-2},\"y\":{\"value\":-2}},\"id\":\"bbc91adf-0ce1-41fe-9414-98d954b60a8a\",\"type\":\"Image\"},{\"attributes\":{},\"id\":\"be253119-8e7b-4ff2-be94-796f783ff7a0\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"98e62b6d-ec46-424b-af0c-a4a92693c430\",\"type\":\"LinearScale\"},{\"attributes\":{\"callback\":null,\"end\":2,\"start\":-2},\"id\":\"9a5f495c-607f-46a5-abd8-ffd9caa1e6ca\",\"type\":\"Range1d\"},{\"attributes\":{},\"id\":\"439c5d77-4f5f-4fcd-8e4e-17c565313d30\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"cdec8bf1-4a6d-4a22-a689-048f5903b225\",\"type\":\"LinearScale\"},{\"attributes\":{\"plot\":{\"id\":\"835ba89d-d996-4f44-a312-2424d966cf08\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"3e2e32f0-20d0-4e84-9c2f-80f5c2b5fdbf\",\"type\":\"BasicTicker\"}},\"id\":\"4f078062-3077-4588-84d6-befc10b66892\",\"type\":\"Grid\"},{\"attributes\":{\"axis_label\":\"x'\",\"formatter\":{\"id\":\"be253119-8e7b-4ff2-be94-796f783ff7a0\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"835ba89d-d996-4f44-a312-2424d966cf08\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"0c89c1da-aa98-4c3b-8609-d75f4660721e\",\"type\":\"BasicTicker\"}},\"id\":\"cedcb2c2-24d3-4421-95f6-473b49055d24\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"0c89c1da-aa98-4c3b-8609-d75f4660721e\",\"type\":\"BasicTicker\"},{\"attributes\":{\"color_mapper\":{\"id\":\"13704119-82c4-4601-909a-47d2253c3988\",\"type\":\"LinearColorMapper\"},\"formatter\":{\"id\":\"0689bd6a-acbb-4ae7-bfdb-1c3e814d1061\",\"type\":\"BasicTickFormatter\"},\"label_standoff\":12,\"location\":[0,0],\"plot\":{\"id\":\"835ba89d-d996-4f44-a312-2424d966cf08\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"55382bdc-4fd4-454d-a213-74005bf2733f\",\"type\":\"BasicTicker\"}},\"id\":\"00209bba-9d21-4ffb-aace-501961aab55f\",\"type\":\"ColorBar\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"835ba89d-d996-4f44-a312-2424d966cf08\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"0c89c1da-aa98-4c3b-8609-d75f4660721e\",\"type\":\"BasicTicker\"}},\"id\":\"a239954b-3c99-414e-84cc-70a7d5d347f1\",\"type\":\"Grid\"},{\"attributes\":{\"color_mapper\":{\"id\":\"13704119-82c4-4601-909a-47d2253c3988\",\"type\":\"LinearColorMapper\"},\"dh\":{\"units\":\"data\",\"value\":4},\"dw\":{\"units\":\"data\",\"value\":4},\"image\":{\"field\":\"image\"},\"x\":{\"value\":-2},\"y\":{\"value\":-2}},\"id\":\"622f2ccf-755a-49a3-874d-82c251683d3f\",\"type\":\"Image\"},{\"attributes\":{},\"id\":\"0689bd6a-acbb-4ae7-bfdb-1c3e814d1061\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3e2e32f0-20d0-4e84-9c2f-80f5c2b5fdbf\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"55382bdc-4fd4-454d-a213-74005bf2733f\",\"type\":\"BasicTicker\"},{\"attributes\":{\"data_source\":{\"id\":\"30b409ea-f723-4f06-ba18-b610d58c0027\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"bbc91adf-0ce1-41fe-9414-98d954b60a8a\",\"type\":\"Image\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"622f2ccf-755a-49a3-874d-82c251683d3f\",\"type\":\"Image\"},\"selection_glyph\":null,\"view\":{\"id\":\"1b24ecd8-cfa7-4cd7-97c9-462a2b2c903c\",\"type\":\"CDSView\"}},\"id\":\"854a365d-f3b8-4cdd-9f10-6e38d755ac8e\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"ea24ed28-aa30-43a9-a8fb-c025b502fe0a\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"high\":1,\"low\":0,\"palette\":[\"#0C0786\",\"#100787\",\"#130689\",\"#15068A\",\"#18068B\",\"#1B068C\",\"#1D068D\",\"#1F058E\",\"#21058F\",\"#230590\",\"#250591\",\"#270592\",\"#290593\",\"#2B0594\",\"#2D0494\",\"#2F0495\",\"#310496\",\"#330497\",\"#340498\",\"#360498\",\"#380499\",\"#3A049A\",\"#3B039A\",\"#3D039B\",\"#3F039C\",\"#40039C\",\"#42039D\",\"#44039E\",\"#45039E\",\"#47029F\",\"#49029F\",\"#4A02A0\",\"#4C02A1\",\"#4E02A1\",\"#4F02A2\",\"#5101A2\",\"#5201A3\",\"#5401A3\",\"#5601A3\",\"#5701A4\",\"#5901A4\",\"#5A00A5\",\"#5C00A5\",\"#5E00A5\",\"#5F00A6\",\"#6100A6\",\"#6200A6\",\"#6400A7\",\"#6500A7\",\"#6700A7\",\"#6800A7\",\"#6A00A7\",\"#6C00A8\",\"#6D00A8\",\"#6F00A8\",\"#7000A8\",\"#7200A8\",\"#7300A8\",\"#7500A8\",\"#7601A8\",\"#7801A8\",\"#7901A8\",\"#7B02A8\",\"#7C02A7\",\"#7E03A7\",\"#7F03A7\",\"#8104A7\",\"#8204A7\",\"#8405A6\",\"#8506A6\",\"#8607A6\",\"#8807A5\",\"#8908A5\",\"#8B09A4\",\"#8C0AA4\",\"#8E0CA4\",\"#8F0DA3\",\"#900EA3\",\"#920FA2\",\"#9310A1\",\"#9511A1\",\"#9612A0\",\"#9713A0\",\"#99149F\",\"#9A159E\",\"#9B179E\",\"#9D189D\",\"#9E199C\",\"#9F1A9B\",\"#A01B9B\",\"#A21C9A\",\"#A31D99\",\"#A41E98\",\"#A51F97\",\"#A72197\",\"#A82296\",\"#A92395\",\"#AA2494\",\"#AC2593\",\"#AD2692\",\"#AE2791\",\"#AF2890\",\"#B02A8F\",\"#B12B8F\",\"#B22C8E\",\"#B42D8D\",\"#B52E8C\",\"#B62F8B\",\"#B7308A\",\"#B83289\",\"#B93388\",\"#BA3487\",\"#BB3586\",\"#BC3685\",\"#BD3784\",\"#BE3883\",\"#BF3982\",\"#C03B81\",\"#C13C80\",\"#C23D80\",\"#C33E7F\",\"#C43F7E\",\"#C5407D\",\"#C6417C\",\"#C7427B\",\"#C8447A\",\"#C94579\",\"#CA4678\",\"#CB4777\",\"#CC4876\",\"#CD4975\",\"#CE4A75\",\"#CF4B74\",\"#D04D73\",\"#D14E72\",\"#D14F71\",\"#D25070\",\"#D3516F\",\"#D4526E\",\"#D5536D\",\"#D6556D\",\"#D7566C\",\"#D7576B\",\"#D8586A\",\"#D95969\",\"#DA5A68\",\"#DB5B67\",\"#DC5D66\",\"#DC5E66\",\"#DD5F65\",\"#DE6064\",\"#DF6163\",\"#DF6262\",\"#E06461\",\"#E16560\",\"#E26660\",\"#E3675F\",\"#E3685E\",\"#E46A5D\",\"#E56B5C\",\"#E56C5B\",\"#E66D5A\",\"#E76E5A\",\"#E87059\",\"#E87158\",\"#E97257\",\"#EA7356\",\"#EA7455\",\"#EB7654\",\"#EC7754\",\"#EC7853\",\"#ED7952\",\"#ED7B51\",\"#EE7C50\",\"#EF7D4F\",\"#EF7E4E\",\"#F0804D\",\"#F0814D\",\"#F1824C\",\"#F2844B\",\"#F2854A\",\"#F38649\",\"#F38748\",\"#F48947\",\"#F48A47\",\"#F58B46\",\"#F58D45\",\"#F68E44\",\"#F68F43\",\"#F69142\",\"#F79241\",\"#F79341\",\"#F89540\",\"#F8963F\",\"#F8983E\",\"#F9993D\",\"#F99A3C\",\"#FA9C3B\",\"#FA9D3A\",\"#FA9F3A\",\"#FAA039\",\"#FBA238\",\"#FBA337\",\"#FBA436\",\"#FCA635\",\"#FCA735\",\"#FCA934\",\"#FCAA33\",\"#FCAC32\",\"#FCAD31\",\"#FDAF31\",\"#FDB030\",\"#FDB22F\",\"#FDB32E\",\"#FDB52D\",\"#FDB62D\",\"#FDB82C\",\"#FDB92B\",\"#FDBB2B\",\"#FDBC2A\",\"#FDBE29\",\"#FDC029\",\"#FDC128\",\"#FDC328\",\"#FDC427\",\"#FDC626\",\"#FCC726\",\"#FCC926\",\"#FCCB25\",\"#FCCC25\",\"#FCCE25\",\"#FBD024\",\"#FBD124\",\"#FBD324\",\"#FAD524\",\"#FAD624\",\"#FAD824\",\"#F9D924\",\"#F9DB24\",\"#F8DD24\",\"#F8DF24\",\"#F7E024\",\"#F7E225\",\"#F6E425\",\"#F6E525\",\"#F5E726\",\"#F5E926\",\"#F4EA26\",\"#F3EC26\",\"#F3EE26\",\"#F2F026\",\"#F2F126\",\"#F1F326\",\"#F0F525\",\"#F0F623\",\"#EFF821\"]},\"id\":\"13704119-82c4-4601-909a-47d2253c3988\",\"type\":\"LinearColorMapper\"},{\"attributes\":{},\"id\":\"2a666a5b-3d3f-4706-b6f2-d4a80f40c2e8\",\"type\":\"PanTool\"},{\"attributes\":{\"axis_label\":\"x\",\"formatter\":{\"id\":\"439c5d77-4f5f-4fcd-8e4e-17c565313d30\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"835ba89d-d996-4f44-a312-2424d966cf08\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"3e2e32f0-20d0-4e84-9c2f-80f5c2b5fdbf\",\"type\":\"BasicTicker\"}},\"id\":\"92eb953a-3958-48dd-91f0-d1bc64569afc\",\"type\":\"LinearAxis\"},{\"attributes\":{\"source\":{\"id\":\"30b409ea-f723-4f06-ba18-b610d58c0027\",\"type\":\"ColumnDataSource\"}},\"id\":\"1b24ecd8-cfa7-4cd7-97c9-462a2b2c903c\",\"type\":\"CDSView\"},{\"attributes\":{\"below\":[{\"id\":\"92eb953a-3958-48dd-91f0-d1bc64569afc\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"cedcb2c2-24d3-4421-95f6-473b49055d24\",\"type\":\"LinearAxis\"}],\"plot_height\":400,\"plot_width\":400,\"renderers\":[{\"id\":\"92eb953a-3958-48dd-91f0-d1bc64569afc\",\"type\":\"LinearAxis\"},{\"id\":\"4f078062-3077-4588-84d6-befc10b66892\",\"type\":\"Grid\"},{\"id\":\"cedcb2c2-24d3-4421-95f6-473b49055d24\",\"type\":\"LinearAxis\"},{\"id\":\"a239954b-3c99-414e-84cc-70a7d5d347f1\",\"type\":\"Grid\"},{\"id\":\"ea24ed28-aa30-43a9-a8fb-c025b502fe0a\",\"type\":\"BoxAnnotation\"},{\"id\":\"854a365d-f3b8-4cdd-9f10-6e38d755ac8e\",\"type\":\"GlyphRenderer\"},{\"id\":\"00209bba-9d21-4ffb-aace-501961aab55f\",\"type\":\"ColorBar\"}],\"right\":[{\"id\":\"00209bba-9d21-4ffb-aace-501961aab55f\",\"type\":\"ColorBar\"}],\"title\":{\"id\":\"98d2636d-0b8b-4b52-b879-a33f8f3e48bc\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"04827647-9127-4352-b82b-178de66f5519\",\"type\":\"Toolbar\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"8762d319-fa3a-40bd-8d60-4a52d485029e\",\"type\":\"Range1d\"},\"x_scale\":{\"id\":\"98e62b6d-ec46-424b-af0c-a4a92693c430\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"9a5f495c-607f-46a5-abd8-ffd9caa1e6ca\",\"type\":\"Range1d\"},\"y_scale\":{\"id\":\"cdec8bf1-4a6d-4a22-a689-048f5903b225\",\"type\":\"LinearScale\"}},\"id\":\"835ba89d-d996-4f44-a312-2424d966cf08\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"5f1bd936-8ccf-4f44-9636-71eba5569400\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"plot\":null,\"text\":\"Visualisation of k(x, x')\"},\"id\":\"98d2636d-0b8b-4b52-b879-a33f8f3e48bc\",\"type\":\"Title\"},{\"attributes\":{\"overlay\":{\"id\":\"ea24ed28-aa30-43a9-a8fb-c025b502fe0a\",\"type\":\"BoxAnnotation\"}},\"id\":\"4e4efdd5-6019-4570-af85-9588484b4784\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"image\"],\"data\":{\"image\":[{\"__ndarray__\":\"AAAAAAAA8D+aWovpUPnvP6BXaQVM5e8/bPnVXwrE7z+9Btl9tZXvP6Fs7QaHWu8/hpV/TcgS7z/jUJ230b7uPwA0jAkKX+4/kVRPlOXz7T8rtHFK5X3tP+Sdrr2V/ew/lLBLCI5z7D/6nSilbuDrP1Q7rjngROs/h/vgVJKh6j9QHeomOvfpP47BbjSRRuk/QOsECVSQ6D/teATsQNXnP/H41ZoWFuc/CH27C5NT5j/oEuE7co7lP/s0TAttx+Q/H2UEKTj/4z+sTIwRgzbjPwlaeyH3beI/uRK9vTam4T8lZq6S3N/gP3loA+t6G+A//UskPjaz3j82pqU5ejXdPysINxGuvts/wJGt7KlP2j8vv2N1MenYP6vcAqfzi9c/iPzGzIo41j9Zl+aofO/UP32eb8M6sdM/buOh3SJ+0j8KmJKGf1bRPzBnts2IOtA/vCSeH8pUzj+8iUy1U0zMP7u08ce5W8o/Zu32H+qCyD+JReQHt8HGP31n34LZF8U/zPXrjfOEwz+h77dlkgjCPzSnJMswosA/wkxcgnKivj+96pl+ECq8Pwtr3afc2bk/0zRNZmSwtz+YmXpcJay1P71FnCKRy7M/c+9HyRANsj9gKxEgCG+wP6yD1Hqx360/lLYbjMkbqz93eibmIo+oP17AMa2SNqY/lyVSv/wOpD9Eg0I9VxWiP1aW65etRqA/JW6nTkZAnT++F/Og6j2aPyqSlID6gJc/bIzZhGIElT+CjgB2S8OSPyj8ZJUbuZA/bbPZku7CjT/vnMB4gnCKP+cHa/ozc4c/A+QjYr7DhD8VeaTHVFuCP6GXsgqfM4A/+pHvgmyNfD8xjXRmQR55PwMT/OyaD3Y/ylq1jx9Ycz9i8hVaNO9wPyuRstflmW0/autlrT7UaT8eaPLnO4BmP3XfMZbSkWM/nz+lPBD+YD9EW1jADnZdP5XQZUF5f1k/2tcC+igIVj8lX2yngwFTP9vijGFqXlA/DRV9yjMmTD8FydM4GSpIP4vmvde8tUQ/qTy/kWS4QT/hoeVMZkY+P1Z71bH00Tk/rScQBCH8NT+aWovpUPnvPwAAAAAAAPA/mlqL6VD57z+gV2kFTOXvP2z51V8KxO8/vQbZfbWV7z+hbO0Gh1rvP4aVf03IEu8/41Cdt9G+7j8ANIwJCl/uP5JUT5Tl8+0/K7RxSuV97T/kna69lf3sP5SwSwiOc+w/+p0opW7g6z9WO6454ETrP4b74FSSoeo/UR3qJjr36T+OwW40kUbpP0DrBAlUkOg/7XgE7EDV5z/x+NWaFhbnPwl9uwuTU+Y/5xLhO3KO5T/9NEwLbcfkPx9lBCk4/+M/rEyMEYM24z8JWnsh923iP7kSvb02puE/Jmauktzf4D95aAPrehvgP/1LJD42s94/NqalOXo13T8rCDcRrr7bP8CRreypT9o/L79jdTHp2D+u3AKn84vXP4j8xsyKONY/WZfmqHzv1D99nm/DOrHTP27jod0iftI/CpiShn9W0T8yZ7bNiDrQP7wknh/KVM4/vIlMtVNMzD+7tPHHuVvKP2bt9h/qgsg/iUXkB7fBxj9/Z9+C2RfFP8z1643zhMM/oe+3ZZIIwj8wpyTLMKLAP8pMXIJyor4/veqZfhAqvD8Ca92n3Nm5P9k0TWZksLc/mJl6XCWstT+9RZwikcuzP3jvR8kQDbI/YCsRIAhvsD+sg9R6sd+tP422G4zJG6s/fXom5iKPqD9ewDGtkjamP5clUr/8DqQ/SYNCPVcVoj9WluuXrUagPyVup05GQJ0/txfzoOo9mj8zkpSA+oCXP2yM2YRiBJU/go4AdkvDkj8t/GSVG7mQP22z2ZLuwo0/75zAeIJwij/iB2v6M3OHPw3kI2K+w4Q/FXmkx1Rbgj+Yl7IKnzOAPwGS74JsjXw/MY10ZkEeeT8DE/zsmg92P8VatY8fWHM/a/IVWjTvcD8rkbLX5ZltP2TrZa0+1Gk/KWjy5zuAZj913zGW0pFjP58/pTwQ/mA/NVtYwA52XT+i0GVBeX9ZP9rXAvooCFY/HF9sp4MBUz/j4oxhal5QPw0VfcozJkw/BcnTOBkqSD+V5r3XvLVEP6k8v5FkuEE/4aHlTGZGPj9je9Wx9NE5P6BXaQVM5e8/mlqL6VD57z8AAAAAAADwP5pai+lQ+e8/oFdpBUzl7z9s+dVfCsTvP70G2X21le8/oWztBoda7z+GlX9NyBLvP+NQnbfRvu4/ATSMCQpf7j+SVE+U5fPtPyu0cUrlfe0/5J2uvZX97D+UsEsIjnPsP/udKKVu4Os/VDuuOeBE6z+H++BUkqHqP1Ed6iY69+k/jsFuNJFG6T9A6wQJVJDoP+14BOxA1ec/8/jVmhYW5z8IfbsLk1PmP+gS4TtyjuU//TRMC23H5D8fZQQpOP/jP6xMjBGDNuM/CVp7Ifdt4j+6Er29NqbhPyZmrpLc3+A/eWgD63ob4D/9SyQ+NrPePzampTl6Nd0/Kwg3Ea6+2z/Aka3sqU/aPzK/Y3Ux6dg/rtwCp/OL1z+I/MbMijjWP1mX5qh879Q/fZ5vwzqx0z9u46HdIn7SPwyYkoZ/VtE/Mme2zYg60D+8JJ4fylTOP7yJTLVTTMw/u7Txx7lbyj9m7fYf6oLIP4tF5Ae3wcY/f2ffgtkXxT/M9euN84TDP5/vt2WSCMI/NKckyzCiwD/KTFyCcqK+P73qmX4QKrw/C2vdp9zZuT/TNE1mZLC3P5iZelwlrLU/xUWcIpHLsz9z70fJEA2yP2ArESAIb7A/rIPUerHfrT+UthuMyRurP3d6JuYij6g/XsAxrZI2pj+eJVK//A6kP0SDQj1XFaI/Vpbrl61GoD8lbqdORkCdP74X86DqPZo/KpKUgPqAlz9sjNmEYgSVP4mOAHZLw5I/KPxklRu5kD9ts9mS7sKNP++cwHiCcIo/5wdr+jNzhz8N5CNivsOEPxV5pMdUW4I/oZeyCp8zgD/6ke+CbI18PzGNdGZBHnk/AxP87JoPdj/KWrWPH1hzP2vyFVo073A/K5Gy1+WZbT9q62WtPtRpPx5o8uc7gGY/dd8xltKRYz+fP6U8EP5gP0RbWMAOdl0/otBlQXl/WT/a1wL6KAhWPyVfbKeDAVM/2+KMYWpeUD8NFX3KMyZMPxHJ0zgZKkg/i+a917y1RD+pPL+RZLhBP/Gh5UxmRj4/bPnVXwrE7z+gV2kFTOXvP5pai+lQ+e8/AAAAAAAA8D+aWovpUPnvP6BXaQVM5e8/bPnVXwrE7z+8Btl9tZXvP6Bs7QaHWu8/hpV/TcgS7z/jUJ230b7uPwA0jAkKX+4/kVRPlOXz7T8qtHFK5X3tP+Odrr2V/ew/lLBLCI5z7D/5nSilbuDrP1Q7rjngROs/hvvgVJKh6j9QHeomOvfpP43BbjSRRuk/P+sECVSQ6D/teATsQNXnP/D41ZoWFuc/CH27C5NT5j/nEuE7co7lP/s0TAttx+Q/HmUEKTj/4z+rTIwRgzbjPwlaeyH3beI/uRK9vTam4T8lZq6S3N/gP3doA+t6G+A/+0skPjaz3j80pqU5ejXdPygINxGuvts/wJGt7KlP2j8vv2N1MenYP6vcAqfzi9c/hfzGzIo41j9Xl+aofO/UP3yeb8M6sdM/buOh3SJ+0j8KmJKGf1bRPzBnts2IOtA/uiSeH8pUzj+6iUy1U0zMP7i08ce5W8o/Zu32H+qCyD+JReQHt8HGP31n34LZF8U/yPXrjfOEwz+f77dlkgjCPzSnJMswosA/wkxcgnKivj+96pl+ECq8PwJr3afc2bk/0zRNZmSwtz+YmXpcJay1P71FnCKRy7M/c+9HyRANsj9aKxEgCG+wP6yD1Hqx360/jbYbjMkbqz93eibmIo+oP17AMa2SNqY/lyVSv/wOpD9Eg0I9VxWiP1CW65etRqA/JW6nTkZAnT+3F/Og6j2aPyqSlID6gJc/bIzZhGIElT+CjgB2S8OSPyj8ZJUbuZA/XrPZku7CjT/vnMB4gnCKP+cHa/ozc4c/A+QjYr7DhD8VeaTHVFuCP5iXsgqfM4A/+pHvgmyNfD8kjXRmQR55PwMT/OyaD3Y/ylq1jx9Ycz9i8hVaNO9wPyuRstflmW0/ZOtlrT7UaT8eaPLnO4BmP3DfMZbSkWM/nz+lPBD+YD9EW1jADnZdP5XQZUF5f1k/2tcC+igIVj8cX2yngwFTP9vijGFqXlA/DRV9yjMmTD8FydM4GSpIP4vmvde8tUQ/qTy/kWS4QT+9Btl9tZXvP2z51V8KxO8/oFdpBUzl7z+aWovpUPnvPwAAAAAAAPA/mlqL6VD57z+gV2kFTOXvP2z51V8KxO8/vAbZfbWV7z+gbO0Gh1rvP4aVf03IEu8/41Cdt9G+7j8ANIwJCl/uP5FUT5Tl8+0/KrRxSuV97T/kna69lf3sP5SwSwiOc+w/+p0opW7g6z9UO6454ETrP4b74FSSoeo/UB3qJjr36T+NwW40kUbpP0DrBAlUkOg/7HgE7EDV5z/x+NWaFhbnPwh9uwuTU+Y/5xLhO3KO5T/7NEwLbcfkPx5lBCk4/+M/rEyMEYM24z8JWnsh923iP7kSvb02puE/JWauktzf4D93aAPrehvgP/tLJD42s94/NKalOXo13T8rCDcRrr7bP8CRreypT9o/L79jdTHp2D+r3AKn84vXP4X8xsyKONY/V5fmqHzv1D99nm/DOrHTP27jod0iftI/CpiShn9W0T8wZ7bNiDrQP7oknh/KVM4/uolMtVNMzD+7tPHHuVvKP2bt9h/qgsg/iUXkB7fBxj96Z9+C2RfFP8r1643zhMM/oe+3ZZIIwj8wpyTLMKLAP8pMXIJyor4/veqZfhAqvD8Ca92n3Nm5P9k0TWZksLc/mJl6XCWstT+9RZwikcuzP2/vR8kQDbI/YCsRIAhvsD+sg9R6sd+tP422G4zJG6s/fXom5iKPqD9ewDGtkjamP5clUr/8DqQ/PYNCPVcVoj9WluuXrUagPyVup05GQJ0/txfzoOo9mj8zkpSA+oCXP2yM2YRiBJU/go4AdkvDkj8g/GSVG7mQP22z2ZLuwo0/75zAeIJwij/iB2v6M3OHPw3kI2K+w4Q/FXmkx1Rbgj+Yl7IKnzOAP+uR74JsjXw/MY10ZkEeeT8DE/zsmg92P8VatY8fWHM/a/IVWjTvcD8rkbLX5ZltP2TrZa0+1Gk/Emjy5zuAZj913zGW0pFjP58/pTwQ/mA/NVtYwA52XT+i0GVBeX9ZP9rXAvooCFY/HF9sp4MBUz/j4oxhal5QPw0VfcozJkw/BcnTOBkqSD+V5r3XvLVEP6Fs7QaHWu8/vQbZfbWV7z9s+dVfCsTvP6BXaQVM5e8/mlqL6VD57z8AAAAAAADwP5pai+lQ+e8/oFdpBUzl7z9s+dVfCsTvP7wG2X21le8/oWztBoda7z+GlX9NyBLvP+NQnbfRvu4/ADSMCQpf7j+RVE+U5fPtPyu0cUrlfe0/452uvZX97D+UsEsIjnPsP/qdKKVu4Os/VDuuOeBE6z+G++BUkqHqP1Ad6iY69+k/jsFuNJFG6T8/6wQJVJDoP+14BOxA1ec/8fjVmhYW5z8IfbsLk1PmP+cS4TtyjuU/+zRMC23H5D8fZQQpOP/jP6xMjBGDNuM/CVp7Ifdt4j+5Er29NqbhPyVmrpLc3+A/d2gD63ob4D/7SyQ+NrPePzampTl6Nd0/Kwg3Ea6+2z/Aka3sqU/aPy+/Y3Ux6dg/q9wCp/OL1z+F/MbMijjWP1mX5qh879Q/fZ5vwzqx0z9u46HdIn7SPwqYkoZ/VtE/MGe2zYg60D+6JJ4fylTOP7yJTLVTTMw/u7Txx7lbyj9m7fYf6oLIP4ZF5Ae3wcY/fWffgtkXxT/M9euN84TDP5/vt2WSCMI/NKckyzCiwD/CTFyCcqK+P73qmX4QKrw/C2vdp9zZuT/TNE1mZLC3P5iZelwlrLU/vUWcIpHLsz9z70fJEA2yP1orESAIb7A/rIPUerHfrT+UthuMyRurP3d6JuYij6g/XsAxrZI2pj+XJVK//A6kP0SDQj1XFaI/UJbrl61GoD8lbqdORkCdP74X86DqPZo/KpKUgPqAlz9sjNmEYgSVP4KOAHZLw5I/KPxklRu5kD9ts9mS7sKNP++cwHiCcIo/5wdr+jNzhz8D5CNivsOEPxV5pMdUW4I/mJeyCp8zgD/6ke+CbI18PzGNdGZBHnk/AxP87JoPdj/KWrWPH1hzP2LyFVo073A/K5Gy1+WZbT9k62WtPtRpPx5o8uc7gGY/dd8xltKRYz+fP6U8EP5gP0RbWMAOdl0/ldBlQXl/WT/a1wL6KAhWPyVfbKeDAVM/2+KMYWpeUD8NFX3KMyZMPxHJ0zgZKkg/hpV/TcgS7z+hbO0Gh1rvP70G2X21le8/bPnVXwrE7z+gV2kFTOXvP5pai+lQ+e8/AAAAAAAA8D+aWovpUPnvP6BXaQVM5e8/bPnVXwrE7z+9Btl9tZXvP6Fs7QaHWu8/hpV/TcgS7z/jUJ230b7uPwA0jAkKX+4/klRPlOXz7T8qtHFK5X3tP+Sdrr2V/ew/lLBLCI5z7D/6nSilbuDrP1Q7rjngROs/hvvgVJKh6j9RHeomOvfpP43BbjSRRuk/QOsECVSQ6D/teATsQNXnP/H41ZoWFuc/CH27C5NT5j/nEuE7co7lP/00TAttx+Q/H2UEKTj/4z+sTIwRgzbjPwlaeyH3beI/uRK9vTam4T8lZq6S3N/gP3doA+t6G+A//UskPjaz3j82pqU5ejXdPysINxGuvts/wJGt7KlP2j8vv2N1MenYP6vcAqfzi9c/iPzGzIo41j9Zl+aofO/UP32eb8M6sdM/buOh3SJ+0j8KmJKGf1bRPzBnts2IOtA/vCSeH8pUzj+8iUy1U0zMP7u08ce5W8o/Y+32H+qCyD+JReQHt8HGP39n34LZF8U/yvXrjfOEwz+h77dlkgjCPzCnJMswosA/ykxcgnKivj+96pl+ECq8PwJr3afc2bk/2TRNZmSwtz+YmXpcJay1P71FnCKRy7M/b+9HyRANsj9gKxEgCG+wP6yD1Hqx360/jbYbjMkbqz99eibmIo+oP17AMa2SNqY/lyVSv/wOpD89g0I9VxWiP1aW65etRqA/JW6nTkZAnT+3F/Og6j2aPzOSlID6gJc/bIzZhGIElT+CjgB2S8OSPy38ZJUbuZA/bbPZku7CjT/vnMB4gnCKP+IHa/ozc4c/DeQjYr7DhD8VeaTHVFuCP5iXsgqfM4A/AZLvgmyNfD8xjXRmQR55PwMT/OyaD3Y/xVq1jx9Ycz9r8hVaNO9wPyuRstflmW0/ZOtlrT7UaT8paPLnO4BmP3XfMZbSkWM/nz+lPBD+YD81W1jADnZdP6LQZUF5f1k/2tcC+igIVj8cX2yngwFTP+PijGFqXlA/DRV9yjMmTD/jUJ230b7uP4aVf03IEu8/oWztBoda7z+8Btl9tZXvP2z51V8KxO8/oFdpBUzl7z+aWovpUPnvPwAAAAAAAPA/mlqL6VD57z+gV2kFTOXvP2z51V8KxO8/vQbZfbWV7z+hbO0Gh1rvP4aVf03IEu8/41Cdt9G+7j8BNIwJCl/uP5FUT5Tl8+0/K7RxSuV97T/kna69lf3sP5SwSwiOc+w/+p0opW7g6z9UO6454ETrP4f74FSSoeo/UB3qJjr36T+OwW40kUbpP0DrBAlUkOg/7XgE7EDV5z/x+NWaFhbnPwh9uwuTU+Y/6BLhO3KO5T/9NEwLbcfkPx9lBCk4/+M/rEyMEYM24z8JWnsh923iP7kSvb02puE/JWauktzf4D95aAPrehvgP/1LJD42s94/NqalOXo13T8rCDcRrr7bP8CRreypT9o/L79jdTHp2D+u3AKn84vXP4j8xsyKONY/WZfmqHzv1D99nm/DOrHTP27jod0iftI/CpiShn9W0T8yZ7bNiDrQP7wknh/KVM4/vIlMtVNMzD+4tPHHuVvKP2bt9h/qgsg/i0XkB7fBxj99Z9+C2RfFP8z1643zhMM/n++3ZZIIwj80pyTLMKLAP8pMXIJyor4/veqZfhAqvD8La92n3Nm5P9M0TWZksLc/mJl6XCWstT+9RZwikcuzP3PvR8kQDbI/YCsRIAhvsD+sg9R6sd+tP5S2G4zJG6s/d3om5iKPqD9ewDGtkjamP5clUr/8DqQ/RINCPVcVoj9WluuXrUagPyVup05GQJ0/vhfzoOo9mj8qkpSA+oCXP2yM2YRiBJU/iY4AdkvDkj8o/GSVG7mQP22z2ZLuwo0/75zAeIJwij/nB2v6M3OHPwPkI2K+w4Q/FXmkx1Rbgj+hl7IKnzOAP/qR74JsjXw/MY10ZkEeeT8DE/zsmg92P8patY8fWHM/YvIVWjTvcD8rkbLX5ZltP2rrZa0+1Gk/Hmjy5zuAZj913zGW0pFjP58/pTwQ/mA/RFtYwA52XT+i0GVBeX9ZP9rXAvooCFY/JV9sp4MBUz/j4oxhal5QPwA0jAkKX+4/41Cdt9G+7j+GlX9NyBLvP6Bs7QaHWu8/vAbZfbWV7z9s+dVfCsTvP6BXaQVM5e8/mlqL6VD57z8AAAAAAADwP5pai+lQ+e8/oFdpBUzl7z9s+dVfCsTvP70G2X21le8/oWztBoda7z+GlX9NyBLvP+NQnbfRvu4/ADSMCQpf7j+SVE+U5fPtPyu0cUrlfe0/5J2uvZX97D+UsEsIjnPsP/qdKKVu4Os/VjuuOeBE6z+G++BUkqHqP1Ed6iY69+k/jsFuNJFG6T9A6wQJVJDoP+14BOxA1ec/8fjVmhYW5z8JfbsLk1PmP+gS4TtyjuU//TRMC23H5D8fZQQpOP/jP6xMjBGDNuM/CVp7Ifdt4j+5Er29NqbhPyZmrpLc3+A/eWgD63ob4D/9SyQ+NrPePzampTl6Nd0/Kwg3Ea6+2z/Aka3sqU/aPzK/Y3Ux6dg/rtwCp/OL1z+I/MbMijjWP1mX5qh879Q/fZ5vwzqx0z9u46HdIn7SPwyYkoZ/VtE/Mme2zYg60D+8JJ4fylTOP7qJTLVTTMw/u7Txx7lbyj9p7fYf6oLIP4lF5Ae3wcY/f2ffgtkXxT/K9euN84TDP6Hvt2WSCMI/OKckyzCiwD/KTFyCcqK+P73qmX4QKrw/Amvdp9zZuT/ZNE1mZLC3P5iZelwlrLU/vUWcIpHLsz9470fJEA2yP2ArESAIb7A/rIPUerHfrT+NthuMyRurP316JuYij6g/XsAxrZI2pj+XJVK//A6kP0mDQj1XFaI/Vpbrl61GoD8lbqdORkCdP7cX86DqPZo/M5KUgPqAlz9sjNmEYgSVP4KOAHZLw5I/LfxklRu5kD9ts9mS7sKNP++cwHiCcIo/4gdr+jNzhz8N5CNivsOEPxV5pMdUW4I/mJeyCp8zgD8Bku+CbI18PzGNdGZBHnk/AxP87JoPdj/FWrWPH1hzP2vyFVo073A/K5Gy1+WZbT9k62WtPtRpPylo8uc7gGY/dd8xltKRYz+fP6U8EP5gP0xbWMAOdl0/otBlQXl/WT/a1wL6KAhWPy9fbKeDAVM/kVRPlOXz7T8ANIwJCl/uP+NQnbfRvu4/hpV/TcgS7z+gbO0Gh1rvP7wG2X21le8/bPnVXwrE7z+gV2kFTOXvP5pai+lQ+e8/AAAAAAAA8D+aWovpUPnvP6BXaQVM5e8/bPnVXwrE7z+9Btl9tZXvP6Fs7QaHWu8/h5V/TcgS7z/jUJ230b7uPwE0jAkKX+4/klRPlOXz7T8rtHFK5X3tP+Sdrr2V/ew/lLBLCI5z7D/7nSilbuDrP1Q7rjngROs/h/vgVJKh6j9RHeomOvfpP47BbjSRRuk/QOsECVSQ6D/teATsQNXnP/P41ZoWFuc/CX27C5NT5j/oEuE7co7lP/00TAttx+Q/H2UEKTj/4z+sTIwRgzbjPwlaeyH3beI/uhK9vTam4T8mZq6S3N/gP3loA+t6G+A//UskPjaz3j82pqU5ejXdPysINxGuvts/wpGt7KlP2j8yv2N1MenYP67cAqfzi9c/iPzGzIo41j9Zl+aofO/UP32eb8M6sdM/b+Oh3SJ+0j8MmJKGf1bRPzJnts2IOtA/uiSeH8pUzj+8iUy1U0zMP7208ce5W8o/Zu32H+qCyD+LReQHt8HGP31n34LZF8U/zPXrjfOEwz+j77dlkgjCPzSnJMswosA/ykxcgnKivj+96pl+ECq8Pwtr3afc2bk/0zRNZmSwtz+YmXpcJay1P8VFnCKRy7M/c+9HyRANsj9gKxEgCG+wP6yD1Hqx360/lLYbjMkbqz93eibmIo+oP17AMa2SNqY/niVSv/wOpD9Eg0I9VxWiP1aW65etRqA/JW6nTkZAnT++F/Og6j2aPzOSlID6gJc/bIzZhGIElT+JjgB2S8OSPyj8ZJUbuZA/bbPZku7CjT/vnMB4gnCKP+cHa/ozc4c/DeQjYr7DhD8VeaTHVFuCP6GXsgqfM4A/+pHvgmyNfD8xjXRmQR55PwMT/OyaD3Y/ylq1jx9Ycz9r8hVaNO9wPyuRstflmW0/autlrT7UaT8eaPLnO4BmP3XfMZbSkWM/pz+lPBD+YD9EW1jADnZdP6LQZUF5f1k/5dcC+igIVj8rtHFK5X3tP5JUT5Tl8+0/ATSMCQpf7j/jUJ230b7uP4aVf03IEu8/oWztBoda7z+9Btl9tZXvP2z51V8KxO8/oFdpBUzl7z+aWovpUPnvPwAAAAAAAPA/mlqL6VD57z+gV2kFTOXvP2z51V8KxO8/vAbZfbWV7z+hbO0Gh1rvP4aVf03IEu8/41Cdt9G+7j8ANIwJCl/uP5FUT5Tl8+0/KrRxSuV97T/jna69lf3sP5SwSwiOc+w/+Z0opW7g6z9UO6454ETrP4b74FSSoeo/UB3qJjr36T+NwW40kUbpPz/rBAlUkOg/7XgE7EDV5z/x+NWaFhbnPwh9uwuTU+Y/5xLhO3KO5T/7NEwLbcfkPx5lBCk4/+M/q0yMEYM24z8JWnsh923iP7kSvb02puE/JWauktzf4D93aAPrehvgP/tLJD42s94/NKalOXo13T8rCDcRrr7bP8CRreypT9o/L79jdTHp2D+r3AKn84vXP4X8xsyKONY/V5fmqHzv1D99nm/DOrHTP27jod0iftI/CpiShn9W0T8uZ7bNiDrQP7oknh/KVM4/vIlMtVNMzD+4tPHHuVvKP2bt9h/qgsg/hkXkB7fBxj99Z9+C2RfFP8z1643zhMM/n++3ZZIIwj80pyTLMKLAP8JMXIJyor4/veqZfhAqvD8Ca92n3Nm5P9M0TWZksLc/mJl6XCWstT+9RZwikcuzP3PvR8kQDbI/WisRIAhvsD+sg9R6sd+tP422G4zJG6s/d3om5iKPqD9ewDGtkjamP5clUr/8DqQ/RINCPVcVoj9QluuXrUagPyVup05GQJ0/vhfzoOo9mj8qkpSA+oCXP2yM2YRiBJU/go4AdkvDkj8o/GSVG7mQP16z2ZLuwo0/75zAeIJwij/nB2v6M3OHPwPkI2K+w4Q/FXmkx1Rbgj+Yl7IKnzOAP/qR74JsjXw/JI10ZkEeeT8DE/zsmg92P8patY8fWHM/YvIVWjTvcD8rkbLX5ZltP2TrZa0+1Gk/Hmjy5zuAZj913zGW0pFjP58/pTwQ/mA/RFtYwA52XT+i0GVBeX9ZP+Sdrr2V/ew/K7RxSuV97T+SVE+U5fPtPwA0jAkKX+4/41Cdt9G+7j+GlX9NyBLvP6Fs7QaHWu8/vQbZfbWV7z9s+dVfCsTvP6BXaQVM5e8/mlqL6VD57z8AAAAAAADwP5pai+lQ+e8/oFdpBUzl7z9s+dVfCsTvP70G2X21le8/oGztBoda7z+GlX9NyBLvP+NQnbfRvu4/ADSMCQpf7j+RVE+U5fPtPyq0cUrlfe0/5J2uvZX97D+UsEsIjnPsP/qdKKVu4Os/VDuuOeBE6z+G++BUkqHqP1Ad6iY69+k/jcFuNJFG6T9A6wQJVJDoP+14BOxA1ec/8fjVmhYW5z8IfbsLk1PmP+cS4TtyjuU/+zRMC23H5D8eZQQpOP/jP6xMjBGDNuM/CVp7Ifdt4j+5Er29NqbhPyVmrpLc3+A/d2gD63ob4D/7SyQ+NrPePzampTl6Nd0/Kwg3Ea6+2z/Aka3sqU/aPy+/Y3Ux6dg/q9wCp/OL1z+F/MbMijjWP1mX5qh879Q/fZ5vwzqx0z9u46HdIn7SPwmYkoZ/VtE/MGe2zYg60D+8JJ4fylTOP7qJTLVTTMw/u7Txx7lbyj9j7fYf6oLIP4lF5Ae3wcY/f2ffgtkXxT/K9euN84TDP6Hvt2WSCMI/MKckyzCiwD/KTFyCcqK+P73qmX4QKrw/Amvdp9zZuT/ZNE1mZLC3P5iZelwlrLU/vUWcIpHLsz9v70fJEA2yP2ArESAIb7A/rIPUerHfrT+NthuMyRurP316JuYij6g/XsAxrZI2pj+XJVK//A6kPz2DQj1XFaI/Vpbrl61GoD8lbqdORkCdP7cX86DqPZo/M5KUgPqAlz9sjNmEYgSVP4KOAHZLw5I/IPxklRu5kD9ts9mS7sKNP++cwHiCcIo/4gdr+jNzhz8N5CNivsOEPxV5pMdUW4I/mJeyCp8zgD/rke+CbI18PzGNdGZBHnk/AxP87JoPdj/FWrWPH1hzP2vyFVo073A/K5Gy1+WZbT9k62WtPtRpPylo8uc7gGY/dd8xltKRYz+fP6U8EP5gP0xbWMAOdl0/lLBLCI5z7D/kna69lf3sPyu0cUrlfe0/kVRPlOXz7T8ANIwJCl/uP+NQnbfRvu4/hpV/TcgS7z+hbO0Gh1rvP70G2X21le8/bPnVXwrE7z+gV2kFTOXvP5pai+lQ+e8/AAAAAAAA8D+aWovpUPnvP6BXaQVM5e8/bPnVXwrE7z+8Btl9tZXvP6Fs7QaHWu8/hpV/TcgS7z/jUJ230b7uPwA0jAkKX+4/kVRPlOXz7T8rtHFK5X3tP+Odrr2V/ew/lLBLCI5z7D/6nSilbuDrP1Q7rjngROs/hvvgVJKh6j9QHeomOvfpP47BbjSRRuk/QOsECVSQ6D/teATsQNXnP/H41ZoWFuc/CH27C5NT5j/nEuE7co7lP/s0TAttx+Q/H2UEKTj/4z+sTIwRgzbjPwlaeyH3beI/uRK9vTam4T8lZq6S3N/gP3doA+t6G+A//UskPjaz3j82pqU5ejXdPysINxGuvts/wJGt7KlP2j8vv2N1MenYP6vcAqfzi9c/iPzGzIo41j9Zl+aofO/UP32eb8M6sdM/bOOh3SJ+0j8KmJKGf1bRPzJnts2IOtA/uiSeH8pUzj+8iUy1U0zMP7i08ce5W8o/Zu32H+qCyD+LReQHt8HGP31n34LZF8U/zPXrjfOEwz+f77dlkgjCPzSnJMswosA/wkxcgnKivj+96pl+ECq8Pwtr3afc2bk/0zRNZmSwtz+YmXpcJay1P71FnCKRy7M/c+9HyRANsj9aKxEgCG+wP6yD1Hqx360/lLYbjMkbqz93eibmIo+oP17AMa2SNqY/lyVSv/wOpD9Eg0I9VxWiP1aW65etRqA/JW6nTkZAnT++F/Og6j2aPyqSlID6gJc/bIzZhGIElT+CjgB2S8OSPyj8ZJUbuZA/bbPZku7CjT/vnMB4gnCKP+cHa/ozc4c/A+QjYr7DhD8VeaTHVFuCP5iXsgqfM4A/+pHvgmyNfD8xjXRmQR55PwMT/OyaD3Y/ylq1jx9Ycz9i8hVaNO9wPyuRstflmW0/autlrT7UaT8eaPLnO4BmP3XfMZbSkWM/pz+lPBD+YD/6nSilbuDrP5SwSwiOc+w/5J2uvZX97D8qtHFK5X3tP5FUT5Tl8+0/ADSMCQpf7j/jUJ230b7uP4aVf03IEu8/oWztBoda7z+9Btl9tZXvP2z51V8KxO8/oFdpBUzl7z+aWovpUPnvPwAAAAAAAPA/mlqL6VD57z+gV2kFTOXvP2z51V8KxO8/vQbZfbWV7z+hbO0Gh1rvP4aVf03IEu8/41Cdt9G+7j8ANIwJCl/uP5JUT5Tl8+0/KrRxSuV97T/kna69lf3sP5SwSwiOc+w/+p0opW7g6z9UO6454ETrP4b74FSSoeo/UR3qJjr36T+OwW40kUbpP0DrBAlUkOg/7XgE7EDV5z/x+NWaFhbnPwh9uwuTU+Y/5xLhO3KO5T/9NEwLbcfkPx9lBCk4/+M/rEyMEYM24z8JWnsh923iP7kSvb02puE/JWauktzf4D95aAPrehvgP/1LJD42s94/NqalOXo13T8rCDcRrr7bP8CRreypT9o/L79jdTHp2D+u3AKn84vXP4j8xsyKONY/WZfmqHzv1D98nm/DOrHTP27jod0iftI/DJiShn9W0T8wZ7bNiDrQP7wknh/KVM4/uolMtVNMzD+7tPHHuVvKP2nt9h/qgsg/iUXkB7fBxj9/Z9+C2RfFP8r1643zhMM/oe+3ZZIIwj8wpyTLMKLAP8pMXIJyor4/veqZfhAqvD8Ca92n3Nm5P9k0TWZksLc/mJl6XCWstT+9RZwikcuzP2/vR8kQDbI/YCsRIAhvsD+sg9R6sd+tP422G4zJG6s/fXom5iKPqD9ewDGtkjamP5clUr/8DqQ/SYNCPVcVoj9WluuXrUagPyVup05GQJ0/txfzoOo9mj8zkpSA+oCXP2yM2YRiBJU/go4AdkvDkj8t/GSVG7mQP22z2ZLuwo0/75zAeIJwij/iB2v6M3OHPw3kI2K+w4Q/FXmkx1Rbgj+Yl7IKnzOAPwGS74JsjXw/MY10ZkEeeT8DE/zsmg92P8VatY8fWHM/a/IVWjTvcD8rkbLX5ZltP2TrZa0+1Gk/KWjy5zuAZj913zGW0pFjP1Q7rjngROs/+p0opW7g6z+UsEsIjnPsP+Odrr2V/ew/KrRxSuV97T+RVE+U5fPtPwA0jAkKX+4/41Cdt9G+7j+GlX9NyBLvP6Fs7QaHWu8/vAbZfbWV7z9s+dVfCsTvP6BXaQVM5e8/mlqL6VD57z8AAAAAAADwP5pai+lQ+e8/oFdpBUzl7z9s+dVfCsTvP70G2X21le8/oWztBoda7z+GlX9NyBLvP+NQnbfRvu4/ATSMCQpf7j+RVE+U5fPtPyu0cUrlfe0/5J2uvZX97D+UsEsIjnPsP/qdKKVu4Os/VDuuOeBE6z+H++BUkqHqP1Ed6iY69+k/jsFuNJFG6T9A6wQJVJDoP+14BOxA1ec/8fjVmhYW5z8IfbsLk1PmP+gS4TtyjuU//TRMC23H5D8fZQQpOP/jP6xMjBGDNuM/CVp7Ifdt4j+5Er29NqbhPyZmrpLc3+A/eWgD63ob4D/9SyQ+NrPePzampTl6Nd0/Kwg3Ea6+2z/Aka3sqU/aPzK/Y3Ux6dg/rtwCp/OL1z+I/MbMijjWP1eX5qh879Q/fZ5vwzqx0z9v46HdIn7SPwqYkoZ/VtE/Mme2zYg60D+6JJ4fylTOP7yJTLVTTMw/vbTxx7lbyj9m7fYf6oLIP4tF5Ae3wcY/fWffgtkXxT/M9euN84TDP5/vt2WSCMI/NKckyzCiwD/KTFyCcqK+P73qmX4QKrw/C2vdp9zZuT/TNE1mZLC3P5iZelwlrLU/vUWcIpHLsz9z70fJEA2yP2ArESAIb7A/rIPUerHfrT+UthuMyRurP3d6JuYij6g/XsAxrZI2pj+eJVK//A6kP0SDQj1XFaI/Vpbrl61GoD8lbqdORkCdP74X86DqPZo/KpKUgPqAlz9sjNmEYgSVP4mOAHZLw5I/KPxklRu5kD9ts9mS7sKNP++cwHiCcIo/5wdr+jNzhz8D5CNivsOEPxV5pMdUW4I/oZeyCp8zgD/6ke+CbI18PzGNdGZBHnk/AxP87JoPdj/KWrWPH1hzP2vyFVo073A/K5Gy1+WZbT9q62WtPtRpPylo8uc7gGY/h/vgVJKh6j9WO6454ETrP/udKKVu4Os/lLBLCI5z7D/kna69lf3sPyu0cUrlfe0/klRPlOXz7T8BNIwJCl/uP+NQnbfRvu4/h5V/TcgS7z+hbO0Gh1rvP70G2X21le8/bPnVXwrE7z+gV2kFTOXvP5pai+lQ+e8/AAAAAAAA8D+aWovpUPnvP6BXaQVM5e8/bPnVXwrE7z+8Btl9tZXvP6Bs7QaHWu8/hpV/TcgS7z/jUJ230b7uPwA0jAkKX+4/kVRPlOXz7T8qtHFK5X3tP+Odrr2V/ew/lLBLCI5z7D/5nSilbuDrP1Q7rjngROs/hvvgVJKh6j9QHeomOvfpP43BbjSRRuk/P+sECVSQ6D/seATsQNXnP/D41ZoWFuc/CH27C5NT5j/nEuE7co7lP/s0TAttx+Q/HmUEKTj/4z+rTIwRgzbjPwhaeyH3beI/uRK9vTam4T8lZq6S3N/gP3doA+t6G+A/+0skPjaz3j80pqU5ejXdPygINxGuvts/wJGt7KlP2j8vv2N1MenYP6vcAqfzi9c/hPzGzIo41j9Xl+aofO/UP32eb8M6sdM/bOOh3SJ+0j8KmJKGf1bRPy5nts2IOtA/uiSeH8pUzj+8iUy1U0zMP7i08ce5W8o/Zu32H+qCyD+GReQHt8HGP31n34LZF8U/yPXrjfOEwz+f77dlkgjCPzSnJMswosA/wkxcgnKivj+96pl+ECq8PwJr3afc2bk/0zRNZmSwtz+TmXpcJay1P71FnCKRy7M/c+9HyRANsj9aKxEgCG+wP6yD1Hqx360/jbYbjMkbqz93eibmIo+oP17AMa2SNqY/lyVSv/wOpD9Eg0I9VxWiP1CW65etRqA/JW6nTkZAnT+3F/Og6j2aPyqSlID6gJc/bIzZhGIElT+CjgB2S8OSPyj8ZJUbuZA/XrPZku7CjT/vnMB4gnCKP+IHa/ozc4c/A+QjYr7DhD8VeaTHVFuCP5iXsgqfM4A/+pHvgmyNfD8kjXRmQR55PwMT/OyaD3Y/ylq1jx9Ycz9i8hVaNO9wPyuRstflmW0/autlrT7UaT9QHeomOvfpP4b74FSSoeo/VDuuOeBE6z/5nSilbuDrP5SwSwiOc+w/452uvZX97D8qtHFK5X3tP5FUT5Tl8+0/ADSMCQpf7j/jUJ230b7uP4aVf03IEu8/oGztBoda7z+8Btl9tZXvP2z51V8KxO8/oFdpBUzl7z+aWovpUPnvPwAAAAAAAPA/mlqL6VD57z+gV2kFTOXvP2z51V8KxO8/vQbZfbWV7z+hbO0Gh1rvP4eVf03IEu8/41Cdt9G+7j8BNIwJCl/uP5JUT5Tl8+0/K7RxSuV97T/kna69lf3sP5SwSwiOc+w/+50opW7g6z9WO6454ETrP4f74FSSoeo/UR3qJjr36T+OwW40kUbpP0DrBAlUkOg/7XgE7EDV5z/z+NWaFhbnPwl9uwuTU+Y/6BLhO3KO5T/9NEwLbcfkPx9lBCk4/+M/rEyMEYM24z8LWnsh923iP7oSvb02puE/Jmauktzf4D95aAPrehvgP/1LJD42s94/NqalOXo13T8sCDcRrr7bP8KRreypT9o/Mr9jdTHp2D+r3AKn84vXP4j8xsyKONY/W5fmqHzv1D99nm/DOrHTP2/jod0iftI/CpiShn9W0T8yZ7bNiDrQP78knh/KVM4/vIlMtVNMzD+9tPHHuVvKP2bt9h/qgsg/i0XkB7fBxj99Z9+C2RfFP8z1643zhMM/o++3ZZIIwj80pyTLMKLAP8pMXIJyor4/veqZfhAqvD8La92n3Nm5P9M0TWZksLc/mJl6XCWstT/FRZwikcuzP3PvR8kQDbI/YCsRIAhvsD+sg9R6sd+tP5S2G4zJG6s/fXom5iKPqD9ewDGtkjamP54lUr/8DqQ/RINCPVcVoj9WluuXrUagPyVup05GQJ0/vhfzoOo9mj8zkpSA+oCXP2yM2YRiBJU/iY4AdkvDkj8o/GSVG7mQP22z2ZLuwo0/75zAeIJwij/nB2v6M3OHPw3kI2K+w4Q/FXmkx1Rbgj+hl7IKnzOAP/qR74JsjXw/MY10ZkEeeT8OE/zsmg92P8patY8fWHM/a/IVWjTvcD86kbLX5ZltP47BbjSRRuk/UR3qJjr36T+H++BUkqHqP1Q7rjngROs/+p0opW7g6z+UsEsIjnPsP+Sdrr2V/ew/K7RxSuV97T+SVE+U5fPtPwE0jAkKX+4/41Cdt9G+7j+GlX9NyBLvP6Fs7QaHWu8/vQbZfbWV7z9s+dVfCsTvP6BXaQVM5e8/mlqL6VD57z8AAAAAAADwP5pai+lQ+e8/oFdpBUzl7z9s+dVfCsTvP7wG2X21le8/oWztBoda7z+GlX9NyBLvP+NQnbfRvu4/ADSMCQpf7j+RVE+U5fPtPyq0cUrlfe0/452uvZX97D+UsEsIjnPsP/qdKKVu4Os/VDuuOeBE6z+G++BUkqHqP1Ad6iY69+k/jcFuNJFG6T8/6wQJVJDoP+14BOxA1ec/8fjVmhYW5z8IfbsLk1PmP+cS4TtyjuU/+zRMC23H5D8eZQQpOP/jP6xMjBGDNuM/CVp7Ifdt4j+5Er29NqbhPyVmrpLc3+A/d2gD63ob4D/7SyQ+NrPePzampTl6Nd0/Kwg3Ea6+2z/Aka3sqU/aPy2/Y3Ux6dg/q9wCp/OL1z+I/MbMijjWP1eX5qh879Q/fZ5vwzqx0z9s46HdIn7SPwqYkoZ/VtE/Mme2zYg60D+6JJ4fylTOP7yJTLVTTMw/uLTxx7lbyj9m7fYf6oLIP4ZF5Ae3wcY/fWffgtkXxT/M9euN84TDP5/vt2WSCMI/NKckyzCiwD/CTFyCcqK+P73qmX4QKrw/Amvdp9zZuT/TNE1mZLC3P5iZelwlrLU/vUWcIpHLsz9z70fJEA2yP1orESAIb7A/rIPUerHfrT+UthuMyRurP3d6JuYij6g/XsAxrZI2pj+XJVK//A6kP0SDQj1XFaI/UJbrl61GoD8lbqdORkCdP74X86DqPZo/KpKUgPqAlz9sjNmEYgSVP4KOAHZLw5I/KPxklRu5kD9es9mS7sKNP++cwHiCcIo/5wdr+jNzhz8D5CNivsOEPxV5pMdUW4I/mJeyCp8zgD/6ke+CbI18PzGNdGZBHnk/AxP87JoPdj/KWrWPH1hzP2vyFVo073A/QOsECVSQ6D+OwW40kUbpP1Ed6iY69+k/hvvgVJKh6j9UO6454ETrP/qdKKVu4Os/lLBLCI5z7D/kna69lf3sPyu0cUrlfe0/klRPlOXz7T8ANIwJCl/uP+NQnbfRvu4/hpV/TcgS7z+hbO0Gh1rvP70G2X21le8/bPnVXwrE7z+gV2kFTOXvP5pai+lQ+e8/AAAAAAAA8D+aWovpUPnvP6BXaQVM5e8/bPnVXwrE7z+9Btl9tZXvP6Bs7QaHWu8/hpV/TcgS7z/jUJ230b7uPwA0jAkKX+4/kVRPlOXz7T8qtHFK5X3tP+Sdrr2V/ew/lLBLCI5z7D/6nSilbuDrP1Q7rjngROs/hvvgVJKh6j9QHeomOvfpP43BbjSRRuk/QOsECVSQ6D/teATsQNXnP/H41ZoWFuc/CH27C5NT5j/nEuE7co7lP/s0TAttx+Q/H2UEKTj/4z+sTIwRgzbjPwlaeyH3beI/uRK9vTam4T8lZq6S3N/gP3doA+t6G+A//UskPjaz3j82pqU5ejXdPysINxGuvts/vpGt7KlP2j8vv2N1MenYP67cAqfzi9c/hfzGzIo41j9Zl+aofO/UP3yeb8M6sdM/buOh3SJ+0j8MmJKGf1bRPzBnts2IOtA/vCSeH8pUzj+6iUy1U0zMP7u08ce5W8o/Y+32H+qCyD+JReQHt8HGP39n34LZF8U/yvXrjfOEwz+h77dlkgjCPzCnJMswosA/ykxcgnKivj+96pl+ECq8PwJr3afc2bk/2TRNZmSwtz+YmXpcJay1P71FnCKRy7M/b+9HyRANsj9gKxEgCG+wP6yD1Hqx360/jbYbjMkbqz99eibmIo+oP17AMa2SNqY/lyVSv/wOpD89g0I9VxWiP1aW65etRqA/JW6nTkZAnT+3F/Og6j2aPzOSlID6gJc/bIzZhGIElT+CjgB2S8OSPyD8ZJUbuZA/bbPZku7CjT/vnMB4gnCKP+IHa/ozc4c/DeQjYr7DhD8VeaTHVFuCP5iXsgqfM4A/AZLvgmyNfD8xjXRmQR55PwMT/OyaD3Y/1Fq1jx9Ycz/teATsQNXnP0DrBAlUkOg/jsFuNJFG6T9QHeomOvfpP4b74FSSoeo/VDuuOeBE6z/6nSilbuDrP5SwSwiOc+w/5J2uvZX97D8rtHFK5X3tP5FUT5Tl8+0/ADSMCQpf7j/jUJ230b7uP4aVf03IEu8/oWztBoda7z+8Btl9tZXvP2z51V8KxO8/oFdpBUzl7z+aWovpUPnvPwAAAAAAAPA/mlqL6VD57z+gV2kFTOXvP2z51V8KxO8/vAbZfbWV7z+hbO0Gh1rvP4aVf03IEu8/41Cdt9G+7j8ANIwJCl/uP5FUT5Tl8+0/K7RxSuV97T/kna69lf3sP5SwSwiOc+w/+p0opW7g6z9UO6454ETrP4b74FSSoeo/UB3qJjr36T+OwW40kUbpP0DrBAlUkOg/7XgE7EDV5z/x+NWaFhbnPwh9uwuTU+Y/5xLhO3KO5T/9NEwLbcfkPx9lBCk4/+M/rEyMEYM24z8JWnsh923iP7kSvb02puE/JWauktzf4D95aAPrehvgP/1LJD42s94/NqalOXo13T8oCDcRrr7bP8CRreypT9o/Mr9jdTHp2D+r3AKn84vXP4j8xsyKONY/V5fmqHzv1D99nm/DOrHTP2/jod0iftI/CpiShn9W0T8yZ7bNiDrQP7oknh/KVM4/vIlMtVNMzD+4tPHHuVvKP2bt9h/qgsg/i0XkB7fBxj99Z9+C2RfFP8z1643zhMM/n++3ZZIIwj80pyTLMKLAP8JMXIJyor4/veqZfhAqvD8La92n3Nm5P9M0TWZksLc/mJl6XCWstT+9RZwikcuzP3PvR8kQDbI/YCsRIAhvsD+sg9R6sd+tP5S2G4zJG6s/d3om5iKPqD9ewDGtkjamP5clUr/8DqQ/RINCPVcVoj9WluuXrUagPyVup05GQJ0/vhfzoOo9mj8qkpSA+oCXP2yM2YRiBJU/go4AdkvDkj8o/GSVG7mQP22z2ZLuwo0/75zAeIJwij/nB2v6M3OHPwPkI2K+w4Q/FXmkx1Rbgj+hl7IKnzOAP/qR74JsjXw/MY10ZkEeeT8OE/zsmg92P/H41ZoWFuc/7XgE7EDV5z9A6wQJVJDoP43BbjSRRuk/UB3qJjr36T+G++BUkqHqP1Q7rjngROs/+p0opW7g6z+UsEsIjnPsP+Sdrr2V/ew/KrRxSuV97T+RVE+U5fPtPwA0jAkKX+4/41Cdt9G+7j+GlX9NyBLvP6Bs7QaHWu8/vQbZfbWV7z9s+dVfCsTvP6BXaQVM5e8/mlqL6VD57z8AAAAAAADwP5pai+lQ+e8/oFdpBUzl7z9s+dVfCsTvP70G2X21le8/oWztBoda7z+GlX9NyBLvP+NQnbfRvu4/ADSMCQpf7j+SVE+U5fPtPyu0cUrlfe0/5J2uvZX97D+UsEsIjnPsP/qdKKVu4Os/VDuuOeBE6z+G++BUkqHqP1Ed6iY69+k/jsFuNJFG6T9A6wQJVJDoP+14BOxA1ec/8fjVmhYW5z8IfbsLk1PmP+gS4TtyjuU//TRMC23H5D8fZQQpOP/jP6xMjBGDNuM/CVp7Ifdt4j+5Er29NqbhPyZmrpLc3+A/eWgD63ob4D/9SyQ+NrPePzSmpTl6Nd0/Kwg3Ea6+2z/Cka3sqU/aPy+/Y3Ux6dg/rtwCp/OL1z+F/MbMijjWP1mX5qh879Q/gJ5vwzqx0z9u46HdIn7SPwyYkoZ/VtE/MGe2zYg60D+8JJ4fylTOP7qJTLVTTMw/u7Txx7lbyj9p7fYf6oLIP4lF5Ae3wcY/f2ffgtkXxT/K9euN84TDP6Hvt2WSCMI/MKckyzCiwD/KTFyCcqK+P73qmX4QKrw/Amvdp9zZuT/ZNE1mZLC3P5iZelwlrLU/vUWcIpHLsz9470fJEA2yP2ArESAIb7A/rIPUerHfrT+NthuMyRurP316JuYij6g/XsAxrZI2pj+XJVK//A6kP0mDQj1XFaI/Vpbrl61GoD8lbqdORkCdP7cX86DqPZo/M5KUgPqAlz9sjNmEYgSVP4KOAHZLw5I/LfxklRu5kD9ts9mS7sKNP++cwHiCcIo/4gdr+jNzhz8N5CNivsOEPxV5pMdUW4I/mJeyCp8zgD8Bku+CbI18PzGNdGZBHnk/CH27C5NT5j/x+NWaFhbnP+14BOxA1ec/P+sECVSQ6D+NwW40kUbpP1Ad6iY69+k/hvvgVJKh6j9UO6454ETrP/qdKKVu4Os/lLBLCI5z7D/jna69lf3sPyq0cUrlfe0/kVRPlOXz7T8ANIwJCl/uP+NQnbfRvu4/hpV/TcgS7z+hbO0Gh1rvP7wG2X21le8/bPnVXwrE7z+gV2kFTOXvP5pai+lQ+e8/AAAAAAAA8D+aWovpUPnvP6BXaQVM5e8/bPnVXwrE7z+9Btl9tZXvP6Fs7QaHWu8/hpV/TcgS7z/jUJ230b7uPwE0jAkKX+4/klRPlOXz7T8rtHFK5X3tP+Sdrr2V/ew/lLBLCI5z7D/6nSilbuDrP1Q7rjngROs/h/vgVJKh6j9RHeomOvfpP47BbjSRRuk/QOsECVSQ6D/teATsQNXnP/H41ZoWFuc/CX27C5NT5j/oEuE7co7lP/00TAttx+Q/H2UEKTj/4z+sTIwRgzbjPwlaeyH3beI/uhK9vTam4T8mZq6S3N/gP3loA+t6G+A/+0skPjaz3j82pqU5ejXdPywINxGuvts/wJGt7KlP2j8yv2N1MenYP6vcAqfzi9c/iPzGzIo41j9bl+aofO/UP32eb8M6sdM/b+Oh3SJ+0j8KmJKGf1bRPzJnts2IOtA/uiSeH8pUzj+8iUy1U0zMP7208ce5W8o/Zu32H+qCyD+LReQHt8HGP31n34LZF8U/zPXrjfOEwz+f77dlkgjCPzSnJMswosA/ykxcgnKivj+96pl+ECq8Pwtr3afc2bk/0zRNZmSwtz+YmXpcJay1P8VFnCKRy7M/c+9HyRANsj9gKxEgCG+wP6yD1Hqx360/lLYbjMkbqz93eibmIo+oP17AMa2SNqY/niVSv/wOpD9Eg0I9VxWiP1aW65etRqA/JW6nTkZAnT++F/Og6j2aPyqSlID6gJc/bIzZhGIElT+JjgB2S8OSPyj8ZJUbuZA/bbPZku7CjT/vnMB4gnCKP+cHa/ozc4c/DeQjYr7DhD8VeaTHVFuCP6GXsgqfM4A/AZLvgmyNfD/oEuE7co7lPwl9uwuTU+Y/8/jVmhYW5z/teATsQNXnP0DrBAlUkOg/jsFuNJFG6T9RHeomOvfpP4f74FSSoeo/VjuuOeBE6z/7nSilbuDrP5SwSwiOc+w/5J2uvZX97D8rtHFK5X3tP5JUT5Tl8+0/ATSMCQpf7j/jUJ230b7uP4eVf03IEu8/oWztBoda7z+9Btl9tZXvP2z51V8KxO8/oFdpBUzl7z+aWovpUPnvPwAAAAAAAPA/mlqL6VD57z+gV2kFTOXvP2z51V8KxO8/vAbZfbWV7z+gbO0Gh1rvP4aVf03IEu8/41Cdt9G+7j8ANIwJCl/uP5FUT5Tl8+0/KrRxSuV97T/jna69lf3sP5SwSwiOc+w/+Z0opW7g6z9UO6454ETrP4b74FSSoeo/UB3qJjr36T+NwW40kUbpPz/rBAlUkOg/7HgE7EDV5z/x+NWaFhbnPwh9uwuTU+Y/5xLhO3KO5T/7NEwLbcfkPx5lBCk4/+M/q0yMEYM24z8JWnsh923iP7kSvb02puE/JWauktzf4D92aAPrehvgP/tLJD42s94/NqalOXo13T8oCDcRrr7bP8CRreypT9o/Lb9jdTHp2D+r3AKn84vXP4j8xsyKONY/V5fmqHzv1D99nm/DOrHTP2zjod0iftI/CpiShn9W0T8uZ7bNiDrQP7oknh/KVM4/vIlMtVNMzD+4tPHHuVvKP2bt9h/qgsg/hkXkB7fBxj99Z9+C2RfFP8j1643zhMM/n++3ZZIIwj80pyTLMKLAP8JMXIJyor4/veqZfhAqvD8Ca92n3Nm5P9M0TWZksLc/mJl6XCWstT+9RZwikcuzP3PvR8kQDbI/WisRIAhvsD+sg9R6sd+tP422G4zJG6s/d3om5iKPqD9ewDGtkjamP5clUr/8DqQ/RINCPVcVoj9QluuXrUagPyVup05GQJ0/txfzoOo9mj8qkpSA+oCXP2yM2YRiBJU/go4AdkvDkj8o/GSVG7mQP16z2ZLuwo0/75zAeIJwij/nB2v6M3OHPwPkI2K+w4Q/FXmkx1Rbgj+hl7IKnzOAP/s0TAttx+Q/5xLhO3KO5T8IfbsLk1PmP/D41ZoWFuc/7HgE7EDV5z8/6wQJVJDoP43BbjSRRuk/UB3qJjr36T+G++BUkqHqP1Q7rjngROs/+Z0opW7g6z+UsEsIjnPsP+Odrr2V/ew/KrRxSuV97T+RVE+U5fPtPwA0jAkKX+4/41Cdt9G+7j+GlX9NyBLvP6Bs7QaHWu8/vAbZfbWV7z9s+dVfCsTvP6BXaQVM5e8/mlqL6VD57z8AAAAAAADwP5pai+lQ+e8/oFdpBUzl7z9s+dVfCsTvP70G2X21le8/oWztBoda7z+HlX9NyBLvP+NQnbfRvu4/ATSMCQpf7j+SVE+U5fPtPyu0cUrlfe0/5J2uvZX97D+UsEsIjnPsP/udKKVu4Os/VjuuOeBE6z+H++BUkqHqP1Ed6iY69+k/jsFuNJFG6T9A6wQJVJDoP+54BOxA1ec/8/jVmhYW5z8JfbsLk1PmP+gS4TtyjuU//TRMC23H5D8fZQQpOP/jP61MjBGDNuM/C1p7Ifdt4j+6Er29NqbhPyVmrpLc3+A/eWgD63ob4D8ATCQ+NrPePzampTl6Nd0/LAg3Ea6+2z/Aka3sqU/aPzK/Y3Ux6dg/sNwCp/OL1z+I/MbMijjWP1uX5qh879Q/fZ5vwzqx0z9v46HdIn7SPwqYkoZ/VtE/Mme2zYg60D+/JJ4fylTOP7yJTLVTTMw/vbTxx7lbyj9m7fYf6oLIP4tF5Ae3wcY/fWffgtkXxT/M9euN84TDP6Pvt2WSCMI/NKckyzCiwD/KTFyCcqK+P73qmX4QKrw/C2vdp9zZuT/ZNE1mZLC3P5iZelwlrLU/xUWcIpHLsz9z70fJEA2yP2ArESAIb7A/rIPUerHfrT+UthuMyRurP316JuYij6g/XsAxrZI2pj+eJVK//A6kP0SDQj1XFaI/Vpbrl61GoD8lbqdORkCdP74X86DqPZo/M5KUgPqAlz9sjNmEYgSVP4mOAHZLw5I/KPxklRu5kD9ts9mS7sKNP/WcwHiCcIo/5wdr+jNzhz8N5CNivsOEPx55pMdUW4I/H2UEKTj/4z/9NEwLbcfkP+gS4TtyjuU/CH27C5NT5j/x+NWaFhbnP+14BOxA1ec/QOsECVSQ6D+OwW40kUbpP1Ed6iY69+k/h/vgVJKh6j9UO6454ETrP/qdKKVu4Os/lLBLCI5z7D/kna69lf3sPyu0cUrlfe0/kVRPlOXz7T8BNIwJCl/uP+NQnbfRvu4/hpV/TcgS7z+hbO0Gh1rvP70G2X21le8/bPnVXwrE7z+gV2kFTOXvP5pai+lQ+e8/AAAAAAAA8D+aWovpUPnvP6BXaQVM5e8/bPnVXwrE7z+8Btl9tZXvP6Fs7QaHWu8/hpV/TcgS7z/jUJ230b7uPwA0jAkKX+4/kVRPlOXz7T8qtHFK5X3tP+Odrr2V/ew/lLBLCI5z7D/6nSilbuDrP1Q7rjngROs/hvvgVJKh6j9QHeomOvfpP43BbjSRRuk/QOsECVSQ6D/teATsQNXnP/H41ZoWFuc/CH27C5NT5j/nEuE7co7lP/s0TAttx+Q/H2UEKTj/4z+sTIwRgzbjPwlaeyH3beI/txK9vTam4T8lZq6S3N/gP3loA+t6G+A/+0skPjaz3j82pqU5ejXdPygINxGuvts/wJGt7KlP2j8yv2N1MenYP6vcAqfzi9c/iPzGzIo41j9Xl+aofO/UP32eb8M6sdM/bOOh3SJ+0j8KmJKGf1bRPzJnts2IOtA/uiSeH8pUzj+8iUy1U0zMP7i08ce5W8o/Zu32H+qCyD+GReQHt8HGP31n34LZF8U/zPXrjfOEwz+f77dlkgjCPzSnJMswosA/wkxcgnKivj+96pl+ECq8Pwtr3afc2bk/0zRNZmSwtz+YmXpcJay1P71FnCKRy7M/c+9HyRANsj9aKxEgCG+wP6yD1Hqx360/lLYbjMkbqz93eibmIo+oP17AMa2SNqY/lyVSv/wOpD9Eg0I9VxWiP1CW65etRqA/JW6nTkZAnT++F/Og6j2aPyqSlID6gJc/bIzZhGIElT+CjgB2S8OSPyj8ZJUbuZA/bbPZku7CjT/vnMB4gnCKP+cHa/ozc4c/DeQjYr7DhD+sTIwRgzbjPx9lBCk4/+M//TRMC23H5D/nEuE7co7lPwh9uwuTU+Y/8fjVmhYW5z/teATsQNXnP0DrBAlUkOg/jsFuNJFG6T9RHeomOvfpP4b74FSSoeo/VDuuOeBE6z/6nSilbuDrP5SwSwiOc+w/5J2uvZX97D8qtHFK5X3tP5JUT5Tl8+0/ADSMCQpf7j/jUJ230b7uP4aVf03IEu8/oWztBoda7z+9Btl9tZXvP2z51V8KxO8/oFdpBUzl7z+aWovpUPnvPwAAAAAAAPA/mlqL6VD57z+gV2kFTOXvP2z51V8KxO8/vQbZfbWV7z+hbO0Gh1rvP4aVf03IEu8/41Cdt9G+7j8ANIwJCl/uP5FUT5Tl8+0/KrRxSuV97T/kna69lf3sP5SwSwiOc+w/+p0opW7g6z9UO6454ETrP4b74FSSoeo/UB3qJjr36T+OwW40kUbpP0DrBAlUkOg/7XgE7EDV5z/x+NWaFhbnPwh9uwuTU+Y/5xLhO3KO5T/9NEwLbcfkPx9lBCk4/+M/rEyMEYM24z8IWnsh923iP7kSvb02puE/Jmauktzf4D93aAPrehvgP/1LJD42s94/NKalOXo13T8rCDcRrr7bP8KRreypT9o/L79jdTHp2D+u3AKn84vXP4X8xsyKONY/WZfmqHzv1D98nm/DOrHTP27jod0iftI/DJiShn9W0T8wZ7bNiDrQP7wknh/KVM4/uolMtVNMzD+7tPHHuVvKP2Pt9h/qgsg/iUXkB7fBxj9/Z9+C2RfFP8r1643zhMM/oe+3ZZIIwj8wpyTLMKLAP8pMXIJyor4/veqZfhAqvD8Ca92n3Nm5P9k0TWZksLc/mJl6XCWstT+9RZwikcuzP2/vR8kQDbI/YCsRIAhvsD+sg9R6sd+tP422G4zJG6s/fXom5iKPqD9ewDGtkjamP5clUr/8DqQ/PYNCPVcVoj9WluuXrUagPyVup05GQJ0/txfzoOo9mj8zkpSA+oCXP2yM2YRiBJU/go4AdkvDkj8t/GSVG7mQP22z2ZLuwo0/75zAeIJwij/zB2v6M3OHPwlaeyH3beI/rEyMEYM24z8fZQQpOP/jP/s0TAttx+Q/5xLhO3KO5T8IfbsLk1PmP/H41ZoWFuc/7XgE7EDV5z9A6wQJVJDoP47BbjSRRuk/UB3qJjr36T+G++BUkqHqP1Q7rjngROs/+p0opW7g6z+UsEsIjnPsP+Odrr2V/ew/K7RxSuV97T+RVE+U5fPtPwA0jAkKX+4/41Cdt9G+7j+GlX9NyBLvP6Fs7QaHWu8/vAbZfbWV7z9s+dVfCsTvP6BXaQVM5e8/mlqL6VD57z8AAAAAAADwP5pai+lQ+e8/oFdpBUzl7z9s+dVfCsTvP70G2X21le8/oWztBoda7z+GlX9NyBLvP+NQnbfRvu4/ADSMCQpf7j+RVE+U5fPtPyu0cUrlfe0/5J2uvZX97D+UsEsIjnPsP/qdKKVu4Os/VDuuOeBE6z+G++BUkqHqP1Ed6iY69+k/jsFuNJFG6T9A6wQJVJDoP+14BOxA1ec/8fjVmhYW5z8IfbsLk1PmP+gS4TtyjuU//TRMC23H5D8fZQQpOP/jP6tMjBGDNuM/CVp7Ifdt4j+6Er29NqbhPyVmrpLc3+A/eWgD63ob4D/7SyQ+NrPePzampTl6Nd0/LAg3Ea6+2z/Aka3sqU/aPzK/Y3Ux6dg/q9wCp/OL1z+I/MbMijjWP1eX5qh879Q/fZ5vwzqx0z9v46HdIn7SPwqYkoZ/VtE/Mme2zYg60D+6JJ4fylTOP7yJTLVTTMw/uLTxx7lbyj9m7fYf6oLIP4tF5Ae3wcY/fWffgtkXxT/M9euN84TDP5/vt2WSCMI/NKckyzCiwD/KTFyCcqK+P73qmX4QKrw/C2vdp9zZuT/TNE1mZLC3P5iZelwlrLU/vUWcIpHLsz9z70fJEA2yP2ArESAIb7A/rIPUerHfrT+UthuMyRurP3d6JuYij6g/XsAxrZI2pj+XJVK//A6kP0SDQj1XFaI/Vpbrl61GoD8lbqdORkCdP74X86DqPZo/KpKUgPqAlz9sjNmEYgSVP4mOAHZLw5I/KPxklRu5kD9ts9mS7sKNP/WcwHiCcIo/uRK9vTam4T8JWnsh923iP6xMjBGDNuM/HmUEKTj/4z/7NEwLbcfkP+cS4TtyjuU/CH27C5NT5j/x+NWaFhbnP+14BOxA1ec/QOsECVSQ6D+NwW40kUbpP1Ad6iY69+k/hvvgVJKh6j9UO6454ETrP/qdKKVu4Os/lLBLCI5z7D/kna69lf3sPyq0cUrlfe0/kVRPlOXz7T8ANIwJCl/uP+NQnbfRvu4/hpV/TcgS7z+gbO0Gh1rvP70G2X21le8/bPnVXwrE7z+gV2kFTOXvP5pai+lQ+e8/AAAAAAAA8D+aWovpUPnvP6BXaQVM5e8/bPnVXwrE7z+9Btl9tZXvP6Fs7QaHWu8/hpV/TcgS7z/jUJ230b7uPwA0jAkKX+4/klRPlOXz7T8rtHFK5X3tP+Sdrr2V/ew/lLBLCI5z7D/6nSilbuDrP1Q7rjngROs/h/vgVJKh6j9RHeomOvfpP47BbjSRRuk/QOsECVSQ6D/teATsQNXnP/H41ZoWFuc/CX27C5NT5j/oEuE7co7lP/00TAttx+Q/HmUEKTj/4z+sTIwRgzbjPwtaeyH3beI/uRK9vTam4T8mZq6S3N/gP3doA+t6G+A//UskPjaz3j84pqU5ejXdPysINxGuvts/wpGt7KlP2j8vv2N1MenYP67cAqfzi9c/hfzGzIo41j9Zl+aofO/UP4Ceb8M6sdM/buOh3SJ+0j8MmJKGf1bRPzBnts2IOtA/vCSeH8pUzj+6iUy1U0zMP7u08ce5W8o/ae32H+qCyD+JReQHt8HGP39n34LZF8U/yvXrjfOEwz+h77dlkgjCPzinJMswosA/ykxcgnKivj+96pl+ECq8PwJr3afc2bk/2TRNZmSwtz+YmXpcJay1P71FnCKRy7M/eO9HyRANsj9gKxEgCG+wP6yD1Hqx360/jbYbjMkbqz99eibmIo+oP17AMa2SNqY/lyVSv/wOpD9Jg0I9VxWiP1aW65etRqA/JW6nTkZAnT+3F/Og6j2aPzOSlID6gJc/bIzZhGIElT+CjgB2S8OSPy38ZJUbuZA/bbPZku7CjT8lZq6S3N/gP7kSvb02puE/CVp7Ifdt4j+rTIwRgzbjPx5lBCk4/+M/+zRMC23H5D/nEuE7co7lPwh9uwuTU+Y/8fjVmhYW5z/teATsQNXnPz/rBAlUkOg/jcFuNJFG6T9QHeomOvfpP4b74FSSoeo/VDuuOeBE6z/5nSilbuDrP5SwSwiOc+w/452uvZX97D8qtHFK5X3tP5FUT5Tl8+0/ADSMCQpf7j/jUJ230b7uP4aVf03IEu8/oWztBoda7z+8Btl9tZXvP2z51V8KxO8/oFdpBUzl7z+aWovpUPnvPwAAAAAAAPA/mlqL6VD57z+gV2kFTOXvP2z51V8KxO8/vQbZfbWV7z+hbO0Gh1rvP4aVf03IEu8/41Cdt9G+7j8BNIwJCl/uP5JUT5Tl8+0/K7RxSuV97T/kna69lf3sP5SwSwiOc+w/+p0opW7g6z9WO6454ETrP4f74FSSoeo/UR3qJjr36T+OwW40kUbpP0DrBAlUkOg/7XgE7EDV5z/z+NWaFhbnPwl9uwuTU+Y/6BLhO3KO5T/7NEwLbcfkPx9lBCk4/+M/rUyMEYM24z8JWnsh923iP7oSvb02puE/JWauktzf4D95aAPrehvgPwBMJD42s94/NqalOXo13T8sCDcRrr7bP8CRreypT9o/Mr9jdTHp2D+r3AKn84vXP4j8xsyKONY/W5fmqHzv1D99nm/DOrHTP2/jod0iftI/CpiShn9W0T8yZ7bNiDrQP7oknh/KVM4/vIlMtVNMzD+9tPHHuVvKP2bt9h/qgsg/i0XkB7fBxj99Z9+C2RfFP8z1643zhMM/o++3ZZIIwj80pyTLMKLAP8pMXIJyor4/veqZfhAqvD8La92n3Nm5P9M0TWZksLc/mJl6XCWstT/FRZwikcuzP3PvR8kQDbI/YCsRIAhvsD+sg9R6sd+tP5S2G4zJG6s/d3om5iKPqD9ewDGtkjamP54lUr/8DqQ/RINCPVcVoj9WluuXrUagPyVup05GQJ0/vhfzoOo9mj8zkpSA+oCXP2yM2YRiBJU/iY4AdkvDkj8t/GSVG7mQP3loA+t6G+A/Jmauktzf4D+6Er29NqbhPwlaeyH3beI/rEyMEYM24z8fZQQpOP/jP/00TAttx+Q/6BLhO3KO5T8JfbsLk1PmP/P41ZoWFuc/7XgE7EDV5z9A6wQJVJDoP47BbjSRRuk/UR3qJjr36T+H++BUkqHqP1Q7rjngROs/+50opW7g6z+UsEsIjnPsP+Sdrr2V/ew/K7RxSuV97T+SVE+U5fPtPwE0jAkKX+4/41Cdt9G+7j+HlX9NyBLvP6Fs7QaHWu8/vQbZfbWV7z9s+dVfCsTvP6BXaQVM5e8/mlqL6VD57z8AAAAAAADwP5pai+lQ+e8/oFdpBUzl7z9s+dVfCsTvP7wG2X21le8/oGztBoda7z+GlX9NyBLvP+NQnbfRvu4/ADSMCQpf7j+RVE+U5fPtPyq0cUrlfe0/452uvZX97D+UsEsIjnPsP/qdKKVu4Os/VDuuOeBE6z+G++BUkqHqP1Ad6iY69+k/jcFuNJFG6T8/6wQJVJDoP+14BOxA1ec/8fjVmhYW5z8IfbsLk1PmP+US4TtyjuU/+zRMC23H5D8fZQQpOP/jP6tMjBGDNuM/CVp7Ifdt4j+3Er29NqbhPyVmrpLc3+A/eWgD63ob4D/7SyQ+NrPePzampTl6Nd0/KAg3Ea6+2z/Aka3sqU/aPy2/Y3Ux6dg/q9wCp/OL1z+I/MbMijjWP1eX5qh879Q/fZ5vwzqx0z9s46HdIn7SPwqYkoZ/VtE/Lme2zYg60D+6JJ4fylTOP7yJTLVTTMw/uLTxx7lbyj9m7fYf6oLIP4ZF5Ae3wcY/fWffgtkXxT/M9euN84TDP5/vt2WSCMI/NKckyzCiwD/CTFyCcqK+P73qmX4QKrw/Amvdp9zZuT/TNE1mZLC3P5iZelwlrLU/vUWcIpHLsz9z70fJEA2yP1orESAIb7A/rIPUerHfrT+NthuMyRurP3d6JuYij6g/XsAxrZI2pj+XJVK//A6kP0SDQj1XFaI/UJbrl61GoD8lbqdORkCdP74X86DqPZo/KpKUgPqAlz9sjNmEYgSVP4mOAHZLw5I//UskPjaz3j95aAPrehvgPyZmrpLc3+A/uRK9vTam4T8JWnsh923iP6xMjBGDNuM/H2UEKTj/4z/9NEwLbcfkP+gS4TtyjuU/CX27C5NT5j/x+NWaFhbnP+14BOxA1ec/QOsECVSQ6D+OwW40kUbpP1Ed6iY69+k/hvvgVJKh6j9WO6454ETrP/qdKKVu4Os/lLBLCI5z7D/kna69lf3sPyu0cUrlfe0/klRPlOXz7T8ANIwJCl/uP+NQnbfRvu4/hpV/TcgS7z+hbO0Gh1rvP70G2X21le8/bPnVXwrE7z+gV2kFTOXvP5pai+lQ+e8/AAAAAAAA8D+aWovpUPnvP6BXaQVM5e8/bPnVXwrE7z+8Btl9tZXvP6Bs7QaHWu8/hpV/TcgS7z/jUJ230b7uPwA0jAkKX+4/kVRPlOXz7T8qtHFK5X3tP+Odrr2V/ew/lLBLCI5z7D/6nSilbuDrP1Q7rjngROs/hvvgVJKh6j9QHeomOvfpP43BbjSRRuk/QOsECVSQ6D/teATsQNXnP/H41ZoWFuc/B327C5NT5j/nEuE7co7lP/00TAttx+Q/HmUEKTj/4z+sTIwRgzbjPwhaeyH3beI/uRK9vTam4T8mZq6S3N/gP3doA+t6G+A//UskPjaz3j80pqU5ejXdPysINxGuvts/vpGt7KlP2j8vv2N1MenYP67cAqfzi9c/hfzGzIo41j9Zl+aofO/UP3yeb8M6sdM/buOh3SJ+0j8JmJKGf1bRPzBnts2IOtA/vCSeH8pUzj+6iUy1U0zMP7u08ce5W8o/Y+32H+qCyD+JReQHt8HGP39n34LZF8U/yvXrjfOEwz+h77dlkgjCPzCnJMswosA/ykxcgnKivj+96pl+ECq8PwJr3afc2bk/2TRNZmSwtz+YmXpcJay1P71FnCKRy7M/b+9HyRANsj9gKxEgCG+wP6yD1Hqx360/jbYbjMkbqz99eibmIo+oP17AMa2SNqY/lyVSv/wOpD89g0I9VxWiP1aW65etRqA/JW6nTkZAnT+3F/Og6j2aPzOSlID6gJc/bIzZhGIElT82pqU5ejXdP/1LJD42s94/eWgD63ob4D8lZq6S3N/gP7kSvb02puE/CVp7Ifdt4j+sTIwRgzbjPx9lBCk4/+M//TRMC23H5D/oEuE7co7lPwh9uwuTU+Y/8fjVmhYW5z/teATsQNXnP0DrBAlUkOg/jsFuNJFG6T9QHeomOvfpP4f74FSSoeo/VDuuOeBE6z/6nSilbuDrP5SwSwiOc+w/5J2uvZX97D8rtHFK5X3tP5FUT5Tl8+0/ATSMCQpf7j/jUJ230b7uP4aVf03IEu8/oWztBoda7z+9Btl9tZXvP2z51V8KxO8/oFdpBUzl7z+aWovpUPnvPwAAAAAAAPA/mlqL6VD57z+gV2kFTOXvP2z51V8KxO8/vAbZfbWV7z+hbO0Gh1rvP4aVf03IEu8/41Cdt9G+7j8ANIwJCl/uP5FUT5Tl8+0/KrRxSuV97T/kna69lf3sP5SwSwiOc+w/+p0opW7g6z9UO6454ETrP4b74FSSoeo/UB3qJjr36T+OwW40kUbpP0DrBAlUkOg/7XgE7EDV5z/w+NWaFhbnPwh9uwuTU+Y/6BLhO3KO5T/7NEwLbcfkPx9lBCk4/+M/q0yMEYM24z8JWnsh923iP7oSvb02puE/JWauktzf4D95aAPrehvgP/tLJD42s94/NqalOXo13T8oCDcRrr7bP8CRreypT9o/Mr9jdTHp2D+r3AKn84vXP4j8xsyKONY/V5fmqHzv1D99nm/DOrHTP2zjod0iftI/CpiShn9W0T8yZ7bNiDrQP7oknh/KVM4/vIlMtVNMzD+4tPHHuVvKP2bt9h/qgsg/i0XkB7fBxj99Z9+C2RfFP8z1643zhMM/n++3ZZIIwj80pyTLMKLAP8JMXIJyor4/veqZfhAqvD8La92n3Nm5P9M0TWZksLc/mJl6XCWstT+9RZwikcuzP3PvR8kQDbI/WisRIAhvsD+sg9R6sd+tP5S2G4zJG6s/d3om5iKPqD9ewDGtkjamP5clUr/8DqQ/RINCPVcVoj9WluuXrUagPyVup05GQJ0/vhfzoOo9mj8zkpSA+oCXPysINxGuvts/NqalOXo13T/9SyQ+NrPeP3doA+t6G+A/JWauktzf4D+5Er29NqbhPwlaeyH3beI/rEyMEYM24z8fZQQpOP/jP/00TAttx+Q/5xLhO3KO5T8IfbsLk1PmP/H41ZoWFuc/7XgE7EDV5z9A6wQJVJDoP43BbjSRRuk/UR3qJjr36T+G++BUkqHqP1Q7rjngROs/+p0opW7g6z+UsEsIjnPsP+Sdrr2V/ew/KrRxSuV97T+SVE+U5fPtPwA0jAkKX+4/41Cdt9G+7j+GlX9NyBLvP6Fs7QaHWu8/vQbZfbWV7z9s+dVfCsTvP6BXaQVM5e8/mlqL6VD57z8AAAAAAADwP5pai+lQ+e8/oFdpBUzl7z9s+dVfCsTvP70G2X21le8/oWztBoda7z+GlX9NyBLvP+NQnbfRvu4/ADSMCQpf7j+RVE+U5fPtPyu0cUrlfe0/5J2uvZX97D+UsEsIjnPsP/qdKKVu4Os/VDuuOeBE6z+G++BUkqHqP1Ed6iY69+k/jsFuNJFG6T9A6wQJVJDoP+x4BOxA1ec/8fjVmhYW5z8JfbsLk1PmP+cS4TtyjuU//TRMC23H5D8eZQQpOP/jP6xMjBGDNuM/C1p7Ifdt4j+5Er29NqbhPyZmrpLc3+A/d2gD63ob4D/9SyQ+NrPePzSmpTl6Nd0/Kwg3Ea6+2z/Cka3sqU/aPy+/Y3Ux6dg/rtwCp/OL1z+F/MbMijjWP1mX5qh879Q/fJ5vwzqx0z9u46HdIn7SPwyYkoZ/VtE/MGe2zYg60D+8JJ4fylTOP7qJTLVTTMw/u7Txx7lbyj9p7fYf6oLIP4lF5Ae3wcY/f2ffgtkXxT/K9euN84TDP6Hvt2WSCMI/MKckyzCiwD/KTFyCcqK+P73qmX4QKrw/Amvdp9zZuT/ZNE1mZLC3P5iZelwlrLU/vUWcIpHLsz9v70fJEA2yP2ArESAIb7A/rIPUerHfrT+NthuMyRurP316JuYij6g/XsAxrZI2pj+XJVK//A6kP0mDQj1XFaI/Vpbrl61GoD8lbqdORkCdP8gX86DqPZo/wJGt7KlP2j8rCDcRrr7bPzampTl6Nd0/+0skPjaz3j93aAPrehvgPyVmrpLc3+A/uRK9vTam4T8JWnsh923iP6xMjBGDNuM/H2UEKTj/4z/7NEwLbcfkP+cS4TtyjuU/CH27C5NT5j/x+NWaFhbnP+14BOxA1ec/P+sECVSQ6D+OwW40kUbpP1Ad6iY69+k/hvvgVJKh6j9UO6454ETrP/qdKKVu4Os/lLBLCI5z7D/jna69lf3sPyu0cUrlfe0/kVRPlOXz7T8ANIwJCl/uP+NQnbfRvu4/hpV/TcgS7z+hbO0Gh1rvP7wG2X21le8/bPnVXwrE7z+gV2kFTOXvP5pai+lQ+e8/AAAAAAAA8D+aWovpUPnvP6BXaQVM5e8/bPnVXwrE7z+9Btl9tZXvP6Fs7QaHWu8/hpV/TcgS7z/jUJ230b7uPwA0jAkKX+4/klRPlOXz7T8rtHFK5X3tP+Sdrr2V/ew/lLBLCI5z7D/6nSilbuDrP1Q7rjngROs/h/vgVJKh6j9RHeomOvfpP47BbjSRRuk/P+sECVSQ6D/teATsQNXnP/P41ZoWFuc/CH27C5NT5j/oEuE7co7lP/s0TAttx+Q/H2UEKTj/4z+tTIwRgzbjPwlaeyH3beI/uhK9vTam4T8lZq6S3N/gP3loA+t6G+A/+0skPjaz3j82pqU5ejXdPywINxGuvts/wJGt7KlP2j8yv2N1MenYP6vcAqfzi9c/iPzGzIo41j9Xl+aofO/UP32eb8M6sdM/b+Oh3SJ+0j8KmJKGf1bRPzJnts2IOtA/uiSeH8pUzj+8iUy1U0zMP7208ce5W8o/Zu32H+qCyD+LReQHt8HGP31n34LZF8U/zPXrjfOEwz+f77dlkgjCPzSnJMswosA/ykxcgnKivj+96pl+ECq8Pwtr3afc2bk/0zRNZmSwtz+YmXpcJay1P71FnCKRy7M/c+9HyRANsj9gKxEgCG+wP6yD1Hqx360/lLYbjMkbqz93eibmIo+oP17AMa2SNqY/niVSv/wOpD9Eg0I9VxWiP1aW65etRqA/LG6nTkZAnT8vv2N1MenYP8CRreypT9o/Kwg3Ea6+2z80pqU5ejXdP/tLJD42s94/d2gD63ob4D8lZq6S3N/gP7kSvb02puE/CVp7Ifdt4j+sTIwRgzbjPx5lBCk4/+M/+zRMC23H5D/nEuE7co7lPwh9uwuTU+Y/8fjVmhYW5z/seATsQNXnP0DrBAlUkOg/jcFuNJFG6T9QHeomOvfpP4b74FSSoeo/VDuuOeBE6z/6nSilbuDrP5SwSwiOc+w/5J2uvZX97D8qtHFK5X3tP5FUT5Tl8+0/ADSMCQpf7j/jUJ230b7uP4aVf03IEu8/oGztBoda7z+8Btl9tZXvP2z51V8KxO8/oFdpBUzl7z+aWovpUPnvPwAAAAAAAPA/mlqL6VD57z+gV2kFTOXvP2z51V8KxO8/vQbZfbWV7z+hbO0Gh1rvP4aVf03IEu8/41Cdt9G+7j8BNIwJCl/uP5JUT5Tl8+0/K7RxSuV97T/kna69lf3sP5SwSwiOc+w/+p0opW7g6z9WO6454ETrP4f74FSSoeo/UR3qJjr36T+NwW40kUbpP0DrBAlUkOg/7ngE7EDV5z/x+NWaFhbnPwl9uwuTU+Y/5xLhO3KO5T/9NEwLbcfkPyBlBCk4/+M/rEyMEYM24z8LWnsh923iP7kSvb02puE/Jmauktzf4D93aAPrehvgP/1LJD42s94/OKalOXo13T8rCDcRrr7bP8KRreypT9o/L79jdTHp2D+u3AKn84vXP4X8xsyKONY/WZfmqHzv1D+Anm/DOrHTP27jod0iftI/DJiShn9W0T8wZ7bNiDrQP7wknh/KVM4/v4lMtVNMzD+7tPHHuVvKP2nt9h/qgsg/iUXkB7fBxj9/Z9+C2RfFP8r1643zhMM/oe+3ZZIIwj84pyTLMKLAP8pMXIJyor4/veqZfhAqvD8Ca92n3Nm5P9k0TWZksLc/mJl6XCWstT+9RZwikcuzP3jvR8kQDbI/YCsRIAhvsD+sg9R6sd+tP422G4zJG6s/fXom5iKPqD9ewDGtkjamP5clUr/8DqQ/SYNCPVcVoj9WluuXrUagP6vcAqfzi9c/L79jdTHp2D/Aka3sqU/aPygINxGuvts/NKalOXo13T/7SyQ+NrPeP3doA+t6G+A/JWauktzf4D+5Er29NqbhPwlaeyH3beI/q0yMEYM24z8eZQQpOP/jP/s0TAttx+Q/5xLhO3KO5T8IfbsLk1PmP/D41ZoWFuc/7XgE7EDV5z8/6wQJVJDoP43BbjSRRuk/UB3qJjr36T+G++BUkqHqP1Q7rjngROs/+Z0opW7g6z+UsEsIjnPsP+Odrr2V/ew/KrRxSuV97T+RVE+U5fPtPwA0jAkKX+4/41Cdt9G+7j+GlX9NyBLvP6Bs7QaHWu8/vAbZfbWV7z9s+dVfCsTvP6BXaQVM5e8/mlqL6VD57z8AAAAAAADwP5pai+lQ+e8/oFdpBUzl7z9s+dVfCsTvP70G2X21le8/oWztBoda7z+GlX9NyBLvP+NQnbfRvu4/ATSMCQpf7j+SVE+U5fPtPyu0cUrlfe0/5J2uvZX97D+UsEsIjnPsP/udKKVu4Os/VjuuOeBE6z+H++BUkqHqP1Ad6iY69+k/jsFuNJFG6T9B6wQJVJDoP+14BOxA1ec/8/jVmhYW5z8IfbsLk1PmP+gS4TtyjuU//jRMC23H5D8fZQQpOP/jP61MjBGDNuM/CVp7Ifdt4j+6Er29NqbhPyVmrpLc3+A/eWgD63ob4D8ATCQ+NrPePzampTl6Nd0/LAg3Ea6+2z/Aka3sqU/aPzK/Y3Ux6dg/q9wCp/OL1z+I/MbMijjWP1uX5qh879Q/fZ5vwzqx0z9v46HdIn7SPwqYkoZ/VtE/Mme2zYg60D+/JJ4fylTOP7yJTLVTTMw/vbTxx7lbyj9m7fYf6oLIP4tF5Ae3wcY/fWffgtkXxT/M9euN84TDP6Pvt2WSCMI/NKckyzCiwD/KTFyCcqK+P73qmX4QKrw/C2vdp9zZuT/TNE1mZLC3P5iZelwlrLU/xUWcIpHLsz9z70fJEA2yP2ArESAIb7A/rIPUerHfrT+UthuMyRurP316JuYij6g/XsAxrZI2pj+eJVK//A6kP0mDQj1XFaI/iPzGzIo41j+u3AKn84vXPzK/Y3Ux6dg/wJGt7KlP2j8rCDcRrr7bPzampTl6Nd0//UskPjaz3j95aAPrehvgPyZmrpLc3+A/uhK9vTam4T8JWnsh923iP6xMjBGDNuM/H2UEKTj/4z/9NEwLbcfkP+gS4TtyjuU/CH27C5NT5j/z+NWaFhbnP+14BOxA1ec/QOsECVSQ6D+OwW40kUbpP1Ed6iY69+k/h/vgVJKh6j9UO6454ETrP/udKKVu4Os/lLBLCI5z7D/kna69lf3sPyu0cUrlfe0/klRPlOXz7T8BNIwJCl/uP+NQnbfRvu4/hpV/TcgS7z+hbO0Gh1rvP70G2X21le8/bPnVXwrE7z+gV2kFTOXvP5pai+lQ+e8/AAAAAAAA8D+aWovpUPnvP6BXaQVM5e8/bPnVXwrE7z+8Btl9tZXvP6Bs7QaHWu8/hpV/TcgS7z/jUJ230b7uPwA0jAkKX+4/kVRPlOXz7T8qtHFK5X3tP+Odrr2V/ew/lLBLCI5z7D/6nSilbuDrP1Q7rjngROs/hfvgVJKh6j9QHeomOvfpP47BbjSRRuk/P+sECVSQ6D/teATsQNXnP/D41ZoWFuc/CH27C5NT5j/oEuE7co7lP/s0TAttx+Q/H2UEKTj/4z+rTIwRgzbjPwlaeyH3beI/txK9vTam4T8lZq6S3N/gP3loA+t6G+A/+0skPjaz3j82pqU5ejXdPygINxGuvts/wJGt7KlP2j8tv2N1MenYP6vcAqfzi9c/iPzGzIo41j9Xl+aofO/UP32eb8M6sdM/bOOh3SJ+0j8KmJKGf1bRPzJnts2IOtA/uiSeH8pUzj+8iUy1U0zMP7i08ce5W8o/Zu32H+qCyD+GReQHt8HGP31n34LZF8U/zPXrjfOEwz+f77dlkgjCPzSnJMswosA/wkxcgnKivj+96pl+ECq8PwJr3afc2bk/0zRNZmSwtz+YmXpcJay1P71FnCKRy7M/c+9HyRANsj9aKxEgCG+wP6yD1Hqx360/lLYbjMkbqz93eibmIo+oP17AMa2SNqY/niVSv/wOpD9Zl+aofO/UP4j8xsyKONY/rtwCp/OL1z8vv2N1MenYP8CRreypT9o/Kwg3Ea6+2z82pqU5ejXdP/1LJD42s94/eWgD63ob4D8mZq6S3N/gP7kSvb02puE/CVp7Ifdt4j+sTIwRgzbjPx9lBCk4/+M//TRMC23H5D/nEuE7co7lPwl9uwuTU+Y/8fjVmhYW5z/teATsQNXnP0DrBAlUkOg/jsFuNJFG6T9RHeomOvfpP4b74FSSoeo/VjuuOeBE6z/6nSilbuDrP5SwSwiOc+w/5J2uvZX97D8rtHFK5X3tP5JUT5Tl8+0/ADSMCQpf7j/jUJ230b7uP4aVf03IEu8/oWztBoda7z+9Btl9tZXvP2z51V8KxO8/oFdpBUzl7z+aWovpUPnvPwAAAAAAAPA/mlqL6VD57z+gV2kFTOXvP2z51V8KxO8/vAbZfbWV7z+hbO0Gh1rvP4aVf03IEu8/41Cdt9G+7j8ANIwJCl/uP5FUT5Tl8+0/KrRxSuV97T/kna69lf3sP5SwSwiOc+w/+p0opW7g6z9UO6454ETrP4b74FSSoeo/UR3qJjr36T+NwW40kUbpP0DrBAlUkOg/7HgE7EDV5z/x+NWaFhbnPwl9uwuTU+Y/5xLhO3KO5T/9NEwLbcfkPx5lBCk4/+M/rEyMEYM24z8IWnsh923iP7kSvb02puE/Jmauktzf4D93aAPrehvgP/1LJD42s94/NKalOXo13T8rCDcRrr7bP76RreypT9o/L79jdTHp2D+u3AKn84vXP4X8xsyKONY/WZfmqHzv1D98nm/DOrHTP27jod0iftI/DJiShn9W0T8wZ7bNiDrQP7wknh/KVM4/uolMtVNMzD+7tPHHuVvKP2Pt9h/qgsg/iUXkB7fBxj9/Z9+C2RfFP8r1643zhMM/oe+3ZZIIwj8wpyTLMKLAP8pMXIJyor4/veqZfhAqvD8Ca92n3Nm5P9k0TWZksLc/mJl6XCWstT+9RZwikcuzP2/vR8kQDbI/YCsRIAhvsD+sg9R6sd+tP422G4zJG6s/fXom5iKPqD9ewDGtkjamP32eb8M6sdM/WZfmqHzv1D+I/MbMijjWP6vcAqfzi9c/L79jdTHp2D/Aka3sqU/aPysINxGuvts/NqalOXo13T/9SyQ+NrPeP3loA+t6G+A/JWauktzf4D+5Er29NqbhPwlaeyH3beI/rEyMEYM24z8fZQQpOP/jP/s0TAttx+Q/6BLhO3KO5T8IfbsLk1PmP/H41ZoWFuc/7XgE7EDV5z9A6wQJVJDoP47BbjSRRuk/UB3qJjr36T+H++BUkqHqP1Q7rjngROs/+p0opW7g6z+UsEsIjnPsP+Sdrr2V/ew/K7RxSuV97T+RVE+U5fPtPwA0jAkKX+4/41Cdt9G+7j+GlX9NyBLvP6Fs7QaHWu8/vQbZfbWV7z9s+dVfCsTvP6BXaQVM5e8/mlqL6VD57z8AAAAAAADwP5pai+lQ+e8/oFdpBUzl7z9s+dVfCsTvP70G2X21le8/oWztBoda7z+GlX9NyBLvP+NQnbfRvu4/ADSMCQpf7j+RVE+U5fPtPyu0cUrlfe0/5J2uvZX97D+UsEsIjnPsP/mdKKVu4Os/VDuuOeBE6z+H++BUkqHqP1Ad6iY69+k/jsFuNJFG6T8/6wQJVJDoP+14BOxA1ec/8/jVmhYW5z8IfbsLk1PmP+gS4TtyjuU/+zRMC23H5D8fZQQpOP/jP6tMjBGDNuM/CVp7Ifdt4j+6Er29NqbhPyVmrpLc3+A/eWgD63ob4D/7SyQ+NrPePzampTl6Nd0/KAg3Ea6+2z/Aka3sqU/aPzK/Y3Ux6dg/q9wCp/OL1z+I/MbMijjWP1eX5qh879Q/fZ5vwzqx0z9v46HdIn7SPwqYkoZ/VtE/Mme2zYg60D+6JJ4fylTOP7yJTLVTTMw/uLTxx7lbyj9m7fYf6oLIP4tF5Ae3wcY/fWffgtkXxT/M9euN84TDP5/vt2WSCMI/NKckyzCiwD/CTFyCcqK+P73qmX4QKrw/C2vdp9zZuT/TNE1mZLC3P5iZelwlrLU/vUWcIpHLsz9z70fJEA2yP2ArESAIb7A/rIPUerHfrT+UthuMyRurP316JuYij6g/buOh3SJ+0j99nm/DOrHTP1mX5qh879Q/hfzGzIo41j+r3AKn84vXPy+/Y3Ux6dg/wJGt7KlP2j8rCDcRrr7bPzampTl6Nd0//UskPjaz3j93aAPrehvgPyVmrpLc3+A/uRK9vTam4T8JWnsh923iP6xMjBGDNuM/HmUEKTj/4z/9NEwLbcfkP+cS4TtyjuU/CH27C5NT5j/x+NWaFhbnP+14BOxA1ec/QOsECVSQ6D+NwW40kUbpP1Ed6iY69+k/hvvgVJKh6j9UO6454ETrP/qdKKVu4Os/lLBLCI5z7D/kna69lf3sPyq0cUrlfe0/kVRPlOXz7T8ANIwJCl/uP+NQnbfRvu4/hpV/TcgS7z+hbO0Gh1rvP70G2X21le8/bPnVXwrE7z+gV2kFTOXvP5pai+lQ+e8/AAAAAAAA8D+aWovpUPnvP6BXaQVM5e8/bPnVXwrE7z+9Btl9tZXvP6Fs7QaHWu8/hpV/TcgS7z/jUJ230b7uPwA0jAkKX+4/klRPlOXz7T8rtHFK5X3tP+Sdrr2V/ew/lLBLCI5z7D/6nSilbuDrP1Y7rjngROs/hvvgVJKh6j9RHeomOvfpP43BbjSRRuk/QOsECVSQ6D/ueATsQNXnP/H41ZoWFuc/CX27C5NT5j/nEuE7co7lP/00TAttx+Q/HmUEKTj/4z+sTIwRgzbjPwtaeyH3beI/uRK9vTam4T8mZq6S3N/gP3doA+t6G+A//UskPjaz3j80pqU5ejXdPysINxGuvts/wpGt7KlP2j8vv2N1MenYP67cAqfzi9c/hfzGzIo41j9Zl+aofO/UP4Ceb8M6sdM/buOh3SJ+0j8MmJKGf1bRPzBnts2IOtA/vCSeH8pUzj+6iUy1U0zMP7u08ce5W8o/ae32H+qCyD+JReQHt8HGP39n34LZF8U/yvXrjfOEwz+h77dlkgjCPzCnJMswosA/ykxcgnKivj+96pl+ECq8PwJr3afc2bk/2TRNZmSwtz+YmXpcJay1P71FnCKRy7M/eO9HyRANsj9gKxEgCG+wP6yD1Hqx360/nrYbjMkbqz8KmJKGf1bRP27jod0iftI/fZ5vwzqx0z9Xl+aofO/UP4X8xsyKONY/q9wCp/OL1z8vv2N1MenYP8CRreypT9o/Kwg3Ea6+2z82pqU5ejXdP/tLJD42s94/d2gD63ob4D8lZq6S3N/gP7kSvb02puE/CVp7Ifdt4j+rTIwRgzbjPx9lBCk4/+M/+zRMC23H5D/nEuE7co7lPwh9uwuTU+Y/8fjVmhYW5z/teATsQNXnPz/rBAlUkOg/jsFuNJFG6T9QHeomOvfpP4b74FSSoeo/VDuuOeBE6z/6nSilbuDrP5SwSwiOc+w/452uvZX97D8qtHFK5X3tP5FUT5Tl8+0/ADSMCQpf7j/jUJ230b7uP4aVf03IEu8/oWztBoda7z+8Btl9tZXvP2z51V8KxO8/oFdpBUzl7z+aWovpUPnvPwAAAAAAAPA/mlqL6VD57z+gV2kFTOXvP2z51V8KxO8/vQbZfbWV7z+hbO0Gh1rvP4aVf03IEu8/41Cdt9G+7j8BNIwJCl/uP5JUT5Tl8+0/K7RxSuV97T/jna69lf3sP5SwSwiOc+w/+50opW7g6z9UO6454ETrP4f74FSSoeo/UB3qJjr36T+OwW40kUbpP0HrBAlUkOg/7XgE7EDV5z/z+NWaFhbnPwh9uwuTU+Y/6BLhO3KO5T/7NEwLbcfkPx9lBCk4/+M/rUyMEYM24z8JWnsh923iP7oSvb02puE/JWauktzf4D95aAPrehvgP/tLJD42s94/NqalOXo13T8sCDcRrr7bP8CRreypT9o/Mr9jdTHp2D+r3AKn84vXP4j8xsyKONY/W5fmqHzv1D99nm/DOrHTP2/jod0iftI/CpiShn9W0T8yZ7bNiDrQP7oknh/KVM4/vIlMtVNMzD+9tPHHuVvKP2bt9h/qgsg/i0XkB7fBxj99Z9+C2RfFP8z1643zhMM/n++3ZZIIwj80pyTLMKLAP8pMXIJyor4/veqZfhAqvD8La92n3Nm5P9M0TWZksLc/mJl6XCWstT/FRZwikcuzP3PvR8kQDbI/YCsRIAhvsD+3g9R6sd+tPzBnts2IOtA/CpiShn9W0T9u46HdIn7SP3yeb8M6sdM/V5fmqHzv1D+F/MbMijjWP6vcAqfzi9c/L79jdTHp2D/Aka3sqU/aPysINxGuvts/NKalOXo13T/7SyQ+NrPeP3doA+t6G+A/JWauktzf4D+5Er29NqbhPwhaeyH3beI/rEyMEYM24z8eZQQpOP/jP/s0TAttx+Q/5xLhO3KO5T8IfbsLk1PmP/H41ZoWFuc/7HgE7EDV5z9A6wQJVJDoP43BbjSRRuk/UB3qJjr36T+G++BUkqHqP1Q7rjngROs/+p0opW7g6z+UsEsIjnPsP+Odrr2V/ew/KrRxSuV97T+RVE+U5fPtPwA0jAkKX+4/41Cdt9G+7j+GlX9NyBLvP6Bs7QaHWu8/vAbZfbWV7z9s+dVfCsTvP6BXaQVM5e8/mlqL6VD57z8AAAAAAADwP5pai+lQ+e8/oFdpBUzl7z9s+dVfCsTvP70G2X21le8/oWztBoda7z+GlX9NyBLvP+NQnbfRvu4/ATSMCQpf7j+SVE+U5fPtPyq0cUrlfe0/5J2uvZX97D+VsEsIjnPsP/qdKKVu4Os/VjuuOeBE6z+G++BUkqHqP1Ed6iY69+k/j8FuNJFG6T9A6wQJVJDoP+54BOxA1ec/8fjVmhYW5z8JfbsLk1PmP+cS4TtyjuU//TRMC23H5D8gZQQpOP/jP6xMjBGDNuM/C1p7Ifdt4j+5Er29NqbhPyZmrpLc3+A/d2gD63ob4D/9SyQ+NrPePzimpTl6Nd0/Kwg3Ea6+2z/Cka3sqU/aPy+/Y3Ux6dg/rtwCp/OL1z+J/MbMijjWP1mX5qh879Q/gJ5vwzqx0z9u46HdIn7SPwyYkoZ/VtE/MGe2zYg60D+8JJ4fylTOP7+JTLVTTMw/u7Txx7lbyj9p7fYf6oLIP4lF5Ae3wcY/f2ffgtkXxT/K9euN84TDP6Hvt2WSCMI/OKckyzCiwD/KTFyCcqK+P73qmX4QKrw/Amvdp9zZuT/ZNE1mZLC3P5iZelwlrLU/vUWcIpHLsz9470fJEA2yP2ArESAIb7A/vCSeH8pUzj8yZ7bNiDrQPwyYkoZ/VtE/buOh3SJ+0j99nm/DOrHTP1mX5qh879Q/iPzGzIo41j+u3AKn84vXPzK/Y3Ux6dg/wpGt7KlP2j8rCDcRrr7bPzampTl6Nd0//UskPjaz3j95aAPrehvgPyZmrpLc3+A/uRK9vTam4T8LWnsh923iP6xMjBGDNuM/H2UEKTj/4z/9NEwLbcfkP+gS4TtyjuU/CX27C5NT5j/x+NWaFhbnP+54BOxA1ec/QOsECVSQ6D+OwW40kUbpP1Ed6iY69+k/h/vgVJKh6j9WO6454ETrP/qdKKVu4Os/lLBLCI5z7D/kna69lf3sPyu0cUrlfe0/klRPlOXz7T8BNIwJCl/uP+NQnbfRvu4/hpV/TcgS7z+hbO0Gh1rvP70G2X21le8/bPnVXwrE7z+gV2kFTOXvP5pai+lQ+e8/AAAAAAAA8D+aWovpUPnvP6BXaQVM5e8/bPnVXwrE7z+8Btl9tZXvP6Bs7QaHWu8/hpV/TcgS7z/jUJ230b7uPwA0jAkKX+4/kFRPlOXz7T8qtHFK5X3tP+Sdrr2V/ew/lLBLCI5z7D/6nSilbuDrP1Q7rjngROs/hvvgVJKh6j9RHeomOvfpP43BbjSRRuk/QOsECVSQ6D/seATsQNXnP/H41ZoWFuc/B327C5NT5j/nEuE7co7lP/00TAttx+Q/HmUEKTj/4z+sTIwRgzbjPwhaeyH3beI/uRK9vTam4T8kZq6S3N/gP3doA+t6G+A//UskPjaz3j80pqU5ejXdPysINxGuvts/vpGt7KlP2j8vv2N1MenYP67cAqfzi9c/hfzGzIo41j9Zl+aofO/UP3yeb8M6sdM/buOh3SJ+0j8JmJKGf1bRPzBnts2IOtA/vCSeH8pUzj+6iUy1U0zMP7u08ce5W8o/Y+32H+qCyD+JReQHt8HGP3pn34LZF8U/yvXrjfOEwz+h77dlkgjCPzCnJMswosA/ykxcgnKivj+96pl+ECq8PwJr3afc2bk/2TRNZmSwtz+YmXpcJay1P71FnCKRy7M/eO9HyRANsj+8iUy1U0zMP7wknh/KVM4/Mme2zYg60D8KmJKGf1bRP27jod0iftI/fZ5vwzqx0z9Zl+aofO/UP4j8xsyKONY/rtwCp/OL1z8yv2N1MenYP8CRreypT9o/Kwg3Ea6+2z82pqU5ejXdP/1LJD42s94/eWgD63ob4D8lZq6S3N/gP7oSvb02puE/CVp7Ifdt4j+sTIwRgzbjPx9lBCk4/+M//TRMC23H5D/oEuE7co7lPwh9uwuTU+Y/8/jVmhYW5z/teATsQNXnP0DrBAlUkOg/jsFuNJFG6T9RHeomOvfpP4f74FSSoeo/VDuuOeBE6z/6nSilbuDrP5SwSwiOc+w/5J2uvZX97D8rtHFK5X3tP5JUT5Tl8+0/ATSMCQpf7j/jUJ230b7uP4aVf03IEu8/oWztBoda7z+9Btl9tZXvP2z51V8KxO8/oFdpBUzl7z+aWovpUPnvPwAAAAAAAPA/mlqL6VD57z+gV2kFTOXvP2z51V8KxO8/vAbZfbWV7z+hbO0Gh1rvP4aVf03IEu8/41Cdt9G+7j8ANIwJCl/uP5FUT5Tl8+0/K7RxSuV97T/jna69lf3sP5SwSwiOc+w/+Z0opW7g6z9UO6454ETrP4f74FSSoeo/UB3qJjr36T+OwW40kUbpPz/rBAlUkOg/7XgE7EDV5z/w+NWaFhbnPwh9uwuTU+Y/6BLhO3KO5T/7NEwLbcfkPx9lBCk4/+M/q0yMEYM24z8JWnsh923iP7cSvb02puE/JWauktzf4D95aAPrehvgP/tLJD42s94/NqalOXo13T8oCDcRrr7bP8CRreypT9o/Mr9jdTHp2D+r3AKn84vXP4j8xsyKONY/V5fmqHzv1D99nm/DOrHTP2zjod0iftI/CpiShn9W0T8yZ7bNiDrQP7oknh/KVM4/vIlMtVNMzD+4tPHHuVvKP2bt9h/qgsg/hkXkB7fBxj99Z9+C2RfFP8z1643zhMM/n++3ZZIIwj80pyTLMKLAP8JMXIJyor4/veqZfhAqvD8La92n3Nm5P9M0TWZksLc/mJl6XCWstT/FRZwikcuzP7u08ce5W8o/vIlMtVNMzD+8JJ4fylTOPzBnts2IOtA/CpiShn9W0T9u46HdIn7SP32eb8M6sdM/WZfmqHzv1D+I/MbMijjWP67cAqfzi9c/L79jdTHp2D/Aka3sqU/aPysINxGuvts/NqalOXo13T/9SyQ+NrPeP3doA+t6G+A/Jmauktzf4D+5Er29NqbhPwlaeyH3beI/rEyMEYM24z8fZQQpOP/jP/00TAttx+Q/5xLhO3KO5T8JfbsLk1PmP/H41ZoWFuc/7XgE7EDV5z9A6wQJVJDoP47BbjSRRuk/UR3qJjr36T+G++BUkqHqP1Q7rjngROs/+p0opW7g6z+UsEsIjnPsP+Sdrr2V/ew/K7RxSuV97T+SVE+U5fPtPwA0jAkKX+4/41Cdt9G+7j+GlX9NyBLvP6Fs7QaHWu8/vQbZfbWV7z9s+dVfCsTvP6BXaQVM5e8/mlqL6VD57z8AAAAAAADwP5pai+lQ+e8/oFdpBUzl7z9s+dVfCsTvP70G2X21le8/oWztBoda7z+GlX9NyBLvP+JQnbfRvu4/ADSMCQpf7j+SVE+U5fPtPyq0cUrlfe0/5J2uvZX97D+UsEsIjnPsP/qdKKVu4Os/VjuuOeBE6z+G++BUkqHqP1Ed6iY69+k/jcFuNJFG6T9A6wQJVJDoP+x4BOxA1ec/8fjVmhYW5z8JfbsLk1PmP+cS4TtyjuU//TRMC23H5D8eZQQpOP/jP6xMjBGDNuM/CFp7Ifdt4j+5Er29NqbhPyZmrpLc3+A/d2gD63ob4D/9SyQ+NrPePzSmpTl6Nd0/Kwg3Ea6+2z/Cka3sqU/aPy+/Y3Ux6dg/rtwCp/OL1z+F/MbMijjWP1mX5qh879Q/fJ5vwzqx0z9u46HdIn7SPwyYkoZ/VtE/MGe2zYg60D+8JJ4fylTOP7qJTLVTTMw/u7Txx7lbyj9j7fYf6oLIP4lF5Ae3wcY/f2ffgtkXxT/K9euN84TDP6Hvt2WSCMI/MKckyzCiwD/KTFyCcqK+P73qmX4QKrw/Amvdp9zZuT/ZNE1mZLC3P5iZelwlrLU/Zu32H+qCyD+7tPHHuVvKP7yJTLVTTMw/uiSeH8pUzj8wZ7bNiDrQPwqYkoZ/VtE/buOh3SJ+0j99nm/DOrHTP1mX5qh879Q/iPzGzIo41j+r3AKn84vXPy+/Y3Ux6dg/wJGt7KlP2j8rCDcRrr7bPzampTl6Nd0/+0skPjaz3j95aAPrehvgPyVmrpLc3+A/uRK9vTam4T8JWnsh923iP6xMjBGDNuM/H2UEKTj/4z/7NEwLbcfkP+gS4TtyjuU/CH27C5NT5j/x+NWaFhbnP+14BOxA1ec/QOsECVSQ6D+OwW40kUbpP1Ad6iY69+k/hvvgVJKh6j9UO6454ETrP/qdKKVu4Os/lLBLCI5z7D/kna69lf3sPyu0cUrlfe0/kVRPlOXz7T8ANIwJCl/uP+NQnbfRvu4/hpV/TcgS7z+hbO0Gh1rvP70G2X21le8/bPnVXwrE7z+gV2kFTOXvP5pai+lQ+e8/AAAAAAAA8D+aWovpUPnvP6BXaQVM5e8/bPnVXwrE7z+9Btl9tZXvP6Fs7QaHWu8/hpV/TcgS7z/jUJ230b7uPwE0jAkKX+4/kVRPlOXz7T8rtHFK5X3tP+Odrr2V/ew/lLBLCI5z7D/7nSilbuDrP1Q7rjngROs/h/vgVJKh6j9QHeomOvfpP47BbjSRRuk/P+sECVSQ6D/teATsQNXnP/P41ZoWFuc/CH27C5NT5j/oEuE7co7lP/s0TAttx+Q/H2UEKTj/4z+rTIwRgzbjPwlaeyH3beI/uhK9vTam4T8lZq6S3N/gP3loA+t6G+A/+0skPjaz3j82pqU5ejXdPywINxGuvts/wJGt7KlP2j8yv2N1MenYP6vcAqfzi9c/iPzGzIo41j9Xl+aofO/UP32eb8M6sdM/b+Oh3SJ+0j8KmJKGf1bRPzJnts2IOtA/uiSeH8pUzj+8iUy1U0zMP7i08ce5W8o/Zu32H+qCyD+LReQHt8HGP31n34LZF8U/zPXrjfOEwz+f77dlkgjCPzSnJMswosA/ykxcgnKivj+96pl+ECq8Pwtr3afc2bk/2TRNZmSwtz+JReQHt8HGP2bt9h/qgsg/u7Txx7lbyj+6iUy1U0zMP7oknh/KVM4/MGe2zYg60D8KmJKGf1bRP27jod0iftI/fZ5vwzqx0z9Zl+aofO/UP4X8xsyKONY/q9wCp/OL1z8vv2N1MenYP8CRreypT9o/Kwg3Ea6+2z80pqU5ejXdP/1LJD42s94/d2gD63ob4D8lZq6S3N/gP7kSvb02puE/CVp7Ifdt4j+sTIwRgzbjPx5lBCk4/+M//TRMC23H5D/nEuE7co7lPwh9uwuTU+Y/8fjVmhYW5z/teATsQNXnP0DrBAlUkOg/jcFuNJFG6T9QHeomOvfpP4b74FSSoeo/VDuuOeBE6z/6nSilbuDrP5SwSwiOc+w/5J2uvZX97D8qtHFK5X3tP5FUT5Tl8+0/ADSMCQpf7j/jUJ230b7uP4aVf03IEu8/oWztBoda7z+8Btl9tZXvP2z51V8KxO8/oFdpBUzl7z+aWovpUPnvPwAAAAAAAPA/mlqL6VD57z+gV2kFTOXvP2z51V8KxO8/vQbZfbWV7z+gbO0Gh1rvP4aVf03IEu8/41Cdt9G+7j8ANIwJCl/uP5JUT5Tl8+0/KrRxSuV97T/kna69lf3sP5WwSwiOc+w/+p0opW7g6z9WO6454ETrP4b74FSSoeo/UR3qJjr36T+NwW40kUbpP0DrBAlUkOg/7ngE7EDV5z/x+NWaFhbnPwl9uwuTU+Y/5xLhO3KO5T/9NEwLbcfkPx5lBCk4/+M/rEyMEYM24z8LWnsh923iP7kSvb02puE/Jmauktzf4D93aAPrehvgP/1LJD42s94/OKalOXo13T8rCDcRrr7bP8KRreypT9o/L79jdTHp2D+u3AKn84vXP4X8xsyKONY/WZfmqHzv1D+Anm/DOrHTP27jod0iftI/DJiShn9W0T8wZ7bNiDrQP7wknh/KVM4/uolMtVNMzD+7tPHHuVvKP2nt9h/qgsg/iUXkB7fBxj9/Z9+C2RfFP8r1643zhMM/oe+3ZZIIwj84pyTLMKLAP8pMXIJyor4/veqZfhAqvD8Sa92n3Nm5P31n34LZF8U/iUXkB7fBxj9m7fYf6oLIP7i08ce5W8o/uolMtVNMzD+6JJ4fylTOPzBnts2IOtA/CpiShn9W0T9u46HdIn7SP32eb8M6sdM/V5fmqHzv1D+F/MbMijjWP6vcAqfzi9c/L79jdTHp2D/Aka3sqU/aPygINxGuvts/NqalOXo13T/7SyQ+NrPeP3doA+t6G+A/JWauktzf4D+5Er29NqbhPwlaeyH3beI/q0yMEYM24z8fZQQpOP/jP/s0TAttx+Q/5xLhO3KO5T8IfbsLk1PmP/H41ZoWFuc/7XgE7EDV5z8/6wQJVJDoP43BbjSRRuk/UB3qJjr36T+G++BUkqHqP1Q7rjngROs/+p0opW7g6z+UsEsIjnPsP+Odrr2V/ew/KrRxSuV97T+RVE+U5fPtPwA0jAkKX+4/41Cdt9G+7j+GlX9NyBLvP6Bs7QaHWu8/vAbZfbWV7z9s+dVfCsTvP6BXaQVM5e8/mlqL6VD57z8AAAAAAADwP5pai+lQ+e8/oFdpBUzl7z9s+dVfCsTvP7wG2X21le8/oWztBoda7z+HlX9NyBLvP+NQnbfRvu4/ATSMCQpf7j+RVE+U5fPtPyu0cUrlfe0/5Z2uvZX97D+UsEsIjnPsP/udKKVu4Os/VDuuOeBE6z+H++BUkqHqP1Ad6iY69+k/jsFuNJFG6T9B6wQJVJDoP+14BOxA1ec/8/jVmhYW5z8IfbsLk1PmP+gS4TtyjuU/+zRMC23H5D8fZQQpOP/jP61MjBGDNuM/CVp7Ifdt4j+6Er29NqbhPyVmrpLc3+A/eWgD63ob4D8ATCQ+NrPePzampTl6Nd0/LAg3Ea6+2z/Aka3sqU/aPzK/Y3Ux6dg/q9wCp/OL1z+I/MbMijjWP1uX5qh879Q/fZ5vwzqx0z9v46HdIn7SPwqYkoZ/VtE/Mme2zYg60D+6JJ4fylTOP7yJTLVTTMw/vbTxx7lbyj9m7fYf6oLIP4tF5Ae3wcY/fWffgtkXxT/M9euN84TDP6Pvt2WSCMI/NKckyzCiwD/KTFyCcqK+P8TqmX4QKrw/zPXrjfOEwz9/Z9+C2RfFP4tF5Ae3wcY/Zu32H+qCyD+7tPHHuVvKP7yJTLVTTMw/vCSeH8pUzj8yZ7bNiDrQPwyYkoZ/VtE/b+Oh3SJ+0j99nm/DOrHTP1mX5qh879Q/iPzGzIo41j+u3AKn84vXPzK/Y3Ux6dg/wJGt7KlP2j8sCDcRrr7bPzampTl6Nd0//UskPjaz3j95aAPrehvgPyZmrpLc3+A/uhK9vTam4T8JWnsh923iP61MjBGDNuM/H2UEKTj/4z/9NEwLbcfkP+gS4TtyjuU/CX27C5NT5j/z+NWaFhbnP+14BOxA1ec/QOsECVSQ6D+OwW40kUbpP1Ed6iY69+k/h/vgVJKh6j9WO6454ETrP/udKKVu4Os/lLBLCI5z7D/kna69lf3sPyu0cUrlfe0/klRPlOXz7T8BNIwJCl/uP+NQnbfRvu4/hpV/TcgS7z+hbO0Gh1rvP70G2X21le8/bPnVXwrE7z+gV2kFTOXvP5pai+lQ+e8/AAAAAAAA8D+aWovpUPnvP6BXaQVM5e8/a/nVXwrE7z+8Btl9tZXvP6Fs7QaHWu8/hpV/TcgS7z/jUJ230b7uPwA0jAkKX+4/kVRPlOXz7T8rtHFK5X3tP+Odrr2V/ew/lLBLCI5z7D/5nSilbuDrP1Q7rjngROs/hfvgVJKh6j9QHeomOvfpP47BbjSRRuk/P+sECVSQ6D/teATsQNXnP/D41ZoWFuc/CH27C5NT5j/lEuE7co7lP/s0TAttx+Q/H2UEKTj/4z+rTIwRgzbjPwlaeyH3beI/txK9vTam4T8lZq6S3N/gP3loA+t6G+A/+0skPjaz3j82pqU5ejXdPygINxGuvts/wJGt7KlP2j8tv2N1MenYP6vcAqfzi9c/iPzGzIo41j9Xl+aofO/UP32eb8M6sdM/bOOh3SJ+0j8KmJKGf1bRPy5nts2IOtA/uiSeH8pUzj+8iUy1U0zMP7i08ce5W8o/Zu32H+qCyD+GReQHt8HGP31n34LZF8U/zPXrjfOEwz+f77dlkgjCPzSnJMswosA/ykxcgnKivj+h77dlkgjCP8z1643zhMM/f2ffgtkXxT+JReQHt8HGP2bt9h/qgsg/u7Txx7lbyj+8iUy1U0zMP7wknh/KVM4/Mme2zYg60D8MmJKGf1bRP27jod0iftI/fZ5vwzqx0z9Zl+aofO/UP4j8xsyKONY/rtwCp/OL1z8vv2N1MenYP8KRreypT9o/Kwg3Ea6+2z82pqU5ejXdP/1LJD42s94/eWgD63ob4D8mZq6S3N/gP7kSvb02puE/C1p7Ifdt4j+sTIwRgzbjPx9lBCk4/+M//TRMC23H5D/oEuE7co7lPwl9uwuTU+Y/8fjVmhYW5z/teATsQNXnP0DrBAlUkOg/jsFuNJFG6T9RHeomOvfpP4f74FSSoeo/VjuuOeBE6z/6nSilbuDrP5SwSwiOc+w/5J2uvZX97D8rtHFK5X3tP5JUT5Tl8+0/ATSMCQpf7j/jUJ230b7uP4aVf03IEu8/oWztBoda7z+9Btl9tZXvP2z51V8KxO8/oFdpBUzl7z+aWovpUPnvPwAAAAAAAPA/mlqL6VD57z+gV2kFTOXvP2z51V8KxO8/vQbZfbWV7z+gbO0Gh1rvP4aVf03IEu8/4lCdt9G+7j8ANIwJCl/uP5JUT5Tl8+0/KrRxSuV97T/kna69lf3sP5SwSwiOc+w/+p0opW7g6z9UO6454ETrP4b74FSSoeo/UR3qJjr36T+NwW40kUbpP0DrBAlUkOg/7HgE7EDV5z/x+NWaFhbnPwd9uwuTU+Y/5xLhO3KO5T/9NEwLbcfkPx5lBCk4/+M/rEyMEYM24z8IWnsh923iP7kSvb02puE/Jmauktzf4D93aAPrehvgP/1LJD42s94/NKalOXo13T8rCDcRrr7bP76RreypT9o/L79jdTHp2D+u3AKn84vXP4X8xsyKONY/WZfmqHzv1D98nm/DOrHTP27jod0iftI/CZiShn9W0T8wZ7bNiDrQP7wknh/KVM4/uolMtVNMzD+7tPHHuVvKP2Pt9h/qgsg/iUXkB7fBxj9/Z9+C2RfFP8r1643zhMM/oe+3ZZIIwj84pyTLMKLAPzSnJMswosA/oe+3ZZIIwj/M9euN84TDP31n34LZF8U/iUXkB7fBxj9m7fYf6oLIP7u08ce5W8o/vIlMtVNMzD+8JJ4fylTOPzJnts2IOtA/CpiShn9W0T9u46HdIn7SP32eb8M6sdM/WZfmqHzv1D+I/MbMijjWP6vcAqfzi9c/Mr9jdTHp2D/Aka3sqU/aPysINxGuvts/NqalOXo13T/9SyQ+NrPeP3loA+t6G+A/JWauktzf4D+6Er29NqbhPwlaeyH3beI/rEyMEYM24z8fZQQpOP/jP/00TAttx+Q/6BLhO3KO5T8IfbsLk1PmP/H41ZoWFuc/7XgE7EDV5z9A6wQJVJDoP47BbjSRRuk/UR3qJjr36T+H++BUkqHqP1Q7rjngROs/+p0opW7g6z+UsEsIjnPsP+Sdrr2V/ew/K7RxSuV97T+SVE+U5fPtPwA0jAkKX+4/41Cdt9G+7j+GlX9NyBLvP6Fs7QaHWu8/vQbZfbWV7z9s+dVfCsTvP6BXaQVM5e8/mlqL6VD57z8AAAAAAADwP5pai+lQ+e8/oFdpBUzl7z9s+dVfCsTvP7wG2X21le8/oWztBoda7z+GlX9NyBLvP+NQnbfRvu4/ATSMCQpf7j+RVE+U5fPtPyu0cUrlfe0/452uvZX97D+UsEsIjnPsP/mdKKVu4Os/VDuuOeBE6z+H++BUkqHqP1Ad6iY69+k/jsFuNJFG6T8/6wQJVJDoP+14BOxA1ec/8PjVmhYW5z8IfbsLk1PmP+gS4TtyjuU/+zRMC23H5D8fZQQpOP/jP6tMjBGDNuM/CVp7Ifdt4j+6Er29NqbhPyVmrpLc3+A/eWgD63ob4D/7SyQ+NrPePzampTl6Nd0/KAg3Ea6+2z/Aka3sqU/aPzK/Y3Ux6dg/q9wCp/OL1z+I/MbMijjWP1eX5qh879Q/fZ5vwzqx0z9s46HdIn7SPwqYkoZ/VtE/Mme2zYg60D+6JJ4fylTOP7yJTLVTTMw/uLTxx7lbyj9m7fYf6oLIP4tF5Ae3wcY/fWffgtkXxT/M9euN84TDP6Pvt2WSCMI/wkxcgnKivj8wpyTLMKLAP5/vt2WSCMI/yPXrjfOEwz96Z9+C2RfFP4ZF5Ae3wcY/Y+32H+qCyD+4tPHHuVvKP7qJTLVTTMw/uiSeH8pUzj8uZ7bNiDrQPwmYkoZ/VtE/bOOh3SJ+0j98nm/DOrHTP1eX5qh879Q/hPzGzIo41j+r3AKn84vXPy2/Y3Ux6dg/vpGt7KlP2j8oCDcRrr7bPzSmpTl6Nd0/+0skPjaz3j92aAPrehvgPyVmrpLc3+A/txK9vTam4T8IWnsh923iP6tMjBGDNuM/HmUEKTj/4z/7NEwLbcfkP+US4TtyjuU/B327C5NT5j/w+NWaFhbnP+x4BOxA1ec/P+sECVSQ6D+NwW40kUbpP1Ad6iY69+k/hfvgVJKh6j9UO6454ETrP/mdKKVu4Os/lLBLCI5z7D/jna69lf3sPyq0cUrlfe0/kFRPlOXz7T8ANIwJCl/uP+JQnbfRvu4/hpV/TcgS7z+gbO0Gh1rvP7wG2X21le8/a/nVXwrE7z+gV2kFTOXvP5pai+lQ+e8/AAAAAAAA8D+aWovpUPnvP6FXaQVM5e8/bPnVXwrE7z+9Btl9tZXvP6Fs7QaHWu8/h5V/TcgS7z/kUJ230b7uPwE0jAkKX+4/klRPlOXz7T8rtHFK5X3tP+Wdrr2V/ew/lLBLCI5z7D/7nSilbuDrP1c7rjngROs/h/vgVJKh6j9SHeomOvfpP47BbjSRRuk/QesECVSQ6D/teATsQNXnP/P41ZoWFuc/Cn27C5NT5j/oEuE7co7lP/40TAttx+Q/H2UEKTj/4z+tTIwRgzbjPwxaeyH3beI/uhK9vTam4T8nZq6S3N/gP3loA+t6G+A/AEwkPjaz3j82pqU5ejXdPywINxGuvts/xZGt7KlP2j8yv2N1MenYP7DcAqfzi9c/iPzGzIo41j9bl+aofO/UP32eb8M6sdM/b+Oh3SJ+0j8OmJKGf1bRPzJnts2IOtA/vySeH8pUzj+8iUy1U0zMP7208ce5W8o/bO32H+qCyD+LReQHt8HGP4Jn34LZF8U/0fXrjfOEwz+96pl+ECq8P8pMXIJyor4/NKckyzCiwD+f77dlkgjCP8r1643zhMM/fWffgtkXxT+JReQHt8HGP2bt9h/qgsg/u7Txx7lbyj+8iUy1U0zMP7oknh/KVM4/MGe2zYg60D8KmJKGf1bRP27jod0iftI/fZ5vwzqx0z9Xl+aofO/UP4j8xsyKONY/q9wCp/OL1z8vv2N1MenYP8CRreypT9o/Kwg3Ea6+2z82pqU5ejXdP/tLJD42s94/eWgD63ob4D8lZq6S3N/gP7kSvb02puE/CVp7Ifdt4j+sTIwRgzbjPx9lBCk4/+M/+zRMC23H5D/nEuE7co7lPwh9uwuTU+Y/8fjVmhYW5z/teATsQNXnP0DrBAlUkOg/jsFuNJFG6T9QHeomOvfpP4b74FSSoeo/VDuuOeBE6z/6nSilbuDrP5SwSwiOc+w/5J2uvZX97D8qtHFK5X3tP5FUT5Tl8+0/ADSMCQpf7j/jUJ230b7uP4aVf03IEu8/oWztBoda7z+8Btl9tZXvP2z51V8KxO8/oFdpBUzl7z+aWovpUPnvPwAAAAAAAPA/mlqL6VD57z+gV2kFTOXvP2z51V8KxO8/vAbZfbWV7z+hbO0Gh1rvP4eVf03IEu8/41Cdt9G+7j8BNIwJCl/uP5FUT5Tl8+0/K7RxSuV97T/jna69lf3sP5SwSwiOc+w/+50opW7g6z9UO6454ETrP4f74FSSoeo/UB3qJjr36T+OwW40kUbpPz/rBAlUkOg/7XgE7EDV5z/z+NWaFhbnPwh9uwuTU+Y/6BLhO3KO5T/7NEwLbcfkPx9lBCk4/+M/rUyMEYM24z8JWnsh923iP7oSvb02puE/JWauktzf4D95aAPrehvgP/tLJD42s94/NqalOXo13T8sCDcRrr7bP8CRreypT9o/Mr9jdTHp2D+r3AKn84vXP4j8xsyKONY/V5fmqHzv1D99nm/DOrHTP2/jod0iftI/CpiShn9W0T8yZ7bNiDrQP7oknh/KVM4/vIlMtVNMzD+9tPHHuVvKP2bt9h/qgsg/i0XkB7fBxj+CZ9+C2RfFPwtr3afc2bk/veqZfhAqvD/KTFyCcqK+PzSnJMswosA/oe+3ZZIIwj/M9euN84TDP39n34LZF8U/i0XkB7fBxj9p7fYf6oLIP7208ce5W8o/vIlMtVNMzD+8JJ4fylTOPzJnts2IOtA/DJiShn9W0T9v46HdIn7SP32eb8M6sdM/W5fmqHzv1D+I/MbMijjWP67cAqfzi9c/Mr9jdTHp2D/Cka3sqU/aPywINxGuvts/NqalOXo13T8ATCQ+NrPeP3loA+t6G+A/Jmauktzf4D+6Er29NqbhPwtaeyH3beI/rUyMEYM24z8fZQQpOP/jP/00TAttx+Q/6BLhO3KO5T8JfbsLk1PmP/P41ZoWFuc/7ngE7EDV5z9B6wQJVJDoP47BbjSRRuk/UR3qJjr36T+H++BUkqHqP1Y7rjngROs/+50opW7g6z+VsEsIjnPsP+Sdrr2V/ew/K7RxSuV97T+SVE+U5fPtPwE0jAkKX+4/41Cdt9G+7j+HlX9NyBLvP6Fs7QaHWu8/vQbZfbWV7z9s+dVfCsTvP6FXaQVM5e8/mlqL6VD57z8AAAAAAADwP5pai+lQ+e8/oFdpBUzl7z9r+dVfCsTvP7wG2X21le8/oWztBoda7z+GlX9NyBLvP+NQnbfRvu4/ADSMCQpf7j+RVE+U5fPtPym0cUrlfe0/452uvZX97D+UsEsIjnPsP/mdKKVu4Os/VDuuOeBE6z+F++BUkqHqP1Ad6iY69+k/jMFuNJFG6T8/6wQJVJDoP+14BOxA1ec/8PjVmhYW5z8IfbsLk1PmP+US4TtyjuU/+zRMC23H5D8fZQQpOP/jP6tMjBGDNuM/CVp7Ifdt4j+3Er29NqbhPyVmrpLc3+A/dmgD63ob4D/7SyQ+NrPePzampTl6Nd0/KAg3Ea6+2z/Aka3sqU/aPy2/Y3Ux6dg/q9wCp/OL1z+E/MbMijjWP1eX5qh879Q/fZ5vwzqx0z9s46HdIn7SPwqYkoZ/VtE/Lme2zYg60D+6JJ4fylTOP7yJTLVTTMw/uLTxx7lbyj9m7fYf6oLIP4tF5Ae3wcY/0zRNZmSwtz8Ca92n3Nm5P73qmX4QKrw/wkxcgnKivj8wpyTLMKLAP5/vt2WSCMI/yvXrjfOEwz99Z9+C2RfFP4lF5Ae3wcY/Zu32H+qCyD+4tPHHuVvKP7qJTLVTTMw/uiSeH8pUzj8wZ7bNiDrQPwqYkoZ/VtE/bOOh3SJ+0j99nm/DOrHTP1eX5qh879Q/hfzGzIo41j+r3AKn84vXPy+/Y3Ux6dg/wJGt7KlP2j8oCDcRrr7bPzampTl6Nd0/+0skPjaz3j93aAPrehvgPyVmrpLc3+A/uRK9vTam4T8JWnsh923iP6tMjBGDNuM/HmUEKTj/4z/7NEwLbcfkP+cS4TtyjuU/CH27C5NT5j/x+NWaFhbnP+14BOxA1ec/P+sECVSQ6D+NwW40kUbpP1Ad6iY69+k/hvvgVJKh6j9UO6454ETrP/qdKKVu4Os/lLBLCI5z7D/jna69lf3sPyq0cUrlfe0/kVRPlOXz7T8ANIwJCl/uP+NQnbfRvu4/hpV/TcgS7z+gbO0Gh1rvP7wG2X21le8/bPnVXwrE7z+gV2kFTOXvP5pai+lQ+e8/AAAAAAAA8D+aWovpUPnvP6BXaQVM5e8/bPnVXwrE7z+9Btl9tZXvP6Fs7QaHWu8/h5V/TcgS7z/jUJ230b7uPwE0jAkKX+4/kVRPlOXz7T8rtHFK5X3tP+Wdrr2V/ew/lLBLCI5z7D/7nSilbuDrP1Q7rjngROs/h/vgVJKh6j9QHeomOvfpP47BbjSRRuk/QesECVSQ6D/teATsQNXnP/P41ZoWFuc/CH27C5NT5j/oEuE7co7lP/40TAttx+Q/H2UEKTj/4z+tTIwRgzbjPwlaeyH3beI/uhK9vTam4T8lZq6S3N/gP3loA+t6G+A/AEwkPjaz3j82pqU5ejXdPywINxGuvts/wJGt7KlP2j8yv2N1MenYP6vcAqfzi9c/iPzGzIo41j9bl+aofO/UP32eb8M6sdM/b+Oh3SJ+0j8KmJKGf1bRPzJnts2IOtA/vySeH8pUzj+8iUy1U0zMP7208ce5W8o/bO32H+qCyD+YmXpcJay1P9k0TWZksLc/C2vdp9zZuT+96pl+ECq8P8pMXIJyor4/NKckyzCiwD+h77dlkgjCP8z1643zhMM/f2ffgtkXxT+LReQHt8HGP2bt9h/qgsg/u7Txx7lbyj+8iUy1U0zMP7wknh/KVM4/Mme2zYg60D8KmJKGf1bRP2/jod0iftI/fZ5vwzqx0z9Zl+aofO/UP4j8xsyKONY/rtwCp/OL1z8yv2N1MenYP8CRreypT9o/LAg3Ea6+2z82pqU5ejXdP/1LJD42s94/eWgD63ob4D8mZq6S3N/gP7oSvb02puE/CVp7Ifdt4j+sTIwRgzbjPx9lBCk4/+M//TRMC23H5D/oEuE7co7lPwl9uwuTU+Y/8/jVmhYW5z/teATsQNXnP0DrBAlUkOg/jsFuNJFG6T9RHeomOvfpP4f74FSSoeo/VjuuOeBE6z/6nSilbuDrP5SwSwiOc+w/5J2uvZX97D8rtHFK5X3tP5JUT5Tl8+0/ATSMCQpf7j/jUJ230b7uP4aVf03IEu8/oWztBoda7z+9Btl9tZXvP2z51V8KxO8/oFdpBUzl7z+aWovpUPnvPwAAAAAAAPA/mlqL6VD57z+gV2kFTOXvP2z51V8KxO8/vAbZfbWV7z+hbO0Gh1rvP4aVf03IEu8/41Cdt9G+7j8ANIwJCl/uP5FUT5Tl8+0/K7RxSuV97T/jna69lf3sP5SwSwiOc+w/+Z0opW7g6z9UO6454ETrP4X74FSSoeo/UB3qJjr36T+OwW40kUbpPz/rBAlUkOg/7XgE7EDV5z/w+NWaFhbnPwh9uwuTU+Y/6BLhO3KO5T/7NEwLbcfkPx9lBCk4/+M/q0yMEYM24z8JWnsh923iP7cSvb02puE/JWauktzf4D95aAPrehvgP/tLJD42s94/NqalOXo13T8oCDcRrr7bP8CRreypT9o/Lb9jdTHp2D+r3AKn84vXP4j8xsyKONY/V5fmqHzv1D99nm/DOrHTP2zjod0iftI/CpiShn9W0T8yZ7bNiDrQP7oknh/KVM4/vIlMtVNMzD+9tPHHuVvKP71FnCKRy7M/mJl6XCWstT/TNE1mZLC3PwJr3afc2bk/veqZfhAqvD/CTFyCcqK+PzCnJMswosA/n++3ZZIIwj/K9euN84TDP31n34LZF8U/hkXkB7fBxj9j7fYf6oLIP7i08ce5W8o/uolMtVNMzD+6JJ4fylTOPy5nts2IOtA/CpiShn9W0T9s46HdIn7SP3yeb8M6sdM/V5fmqHzv1D+F/MbMijjWP6vcAqfzi9c/Lb9jdTHp2D/Aka3sqU/aPygINxGuvts/NKalOXo13T/7SyQ+NrPeP3doA+t6G+A/JWauktzf4D+3Er29NqbhPwhaeyH3beI/q0yMEYM24z8eZQQpOP/jP/s0TAttx+Q/5xLhO3KO5T8IfbsLk1PmP/D41ZoWFuc/7HgE7EDV5z8/6wQJVJDoP43BbjSRRuk/UB3qJjr36T+G++BUkqHqP1Q7rjngROs/+Z0opW7g6z+UsEsIjnPsP+Odrr2V/ew/KrRxSuV97T+RVE+U5fPtPwA0jAkKX+4/4lCdt9G+7j+GlX9NyBLvP6Fs7QaHWu8/vAbZfbWV7z9r+dVfCsTvP6BXaQVM5e8/mlqL6VD57z8AAAAAAADwP5pai+lQ+e8/oVdpBUzl7z9s+dVfCsTvP70G2X21le8/oWztBoda7z+HlX9NyBLvP+NQnbfRvu4/ATSMCQpf7j+SVE+U5fPtPyu0cUrlfe0/5Z2uvZX97D+UsEsIjnPsP/udKKVu4Os/VDuuOeBE6z+H++BUkqHqP1Id6iY69+k/jsFuNJFG6T9B6wQJVJDoP+14BOxA1ec/8/jVmhYW5z8KfbsLk1PmP+gS4TtyjuU//jRMC23H5D8fZQQpOP/jP61MjBGDNuM/CVp7Ifdt4j+6Er29NqbhPydmrpLc3+A/eWgD63ob4D8ATCQ+NrPePzampTl6Nd0/LAg3Ea6+2z/Aka3sqU/aPzK/Y3Ux6dg/sNwCp/OL1z+I/MbMijjWP1uX5qh879Q/fZ5vwzqx0z9v46HdIn7SPw6YkoZ/VtE/Mme2zYg60D+/JJ4fylTOP8OJTLVTTMw/c+9HyRANsj+9RZwikcuzP5iZelwlrLU/0zRNZmSwtz8Ca92n3Nm5P73qmX4QKrw/ykxcgnKivj80pyTLMKLAP6Hvt2WSCMI/zPXrjfOEwz99Z9+C2RfFP4lF5Ae3wcY/Zu32H+qCyD+7tPHHuVvKP7yJTLVTTMw/uiSeH8pUzj8yZ7bNiDrQPwqYkoZ/VtE/buOh3SJ+0j99nm/DOrHTP1mX5qh879Q/iPzGzIo41j+r3AKn84vXPzK/Y3Ux6dg/wJGt7KlP2j8rCDcRrr7bPzampTl6Nd0//UskPjaz3j95aAPrehvgPyVmrpLc3+A/uRK9vTam4T8JWnsh923iP6xMjBGDNuM/H2UEKTj/4z/9NEwLbcfkP+gS4TtyjuU/CH27C5NT5j/x+NWaFhbnP+14BOxA1ec/QOsECVSQ6D+OwW40kUbpP1Ed6iY69+k/hvvgVJKh6j9UO6454ETrP/qdKKVu4Os/lLBLCI5z7D/kna69lf3sPyu0cUrlfe0/kVRPlOXz7T8ANIwJCl/uP+NQnbfRvu4/h5V/TcgS7z+hbO0Gh1rvP7wG2X21le8/bPnVXwrE7z+gV2kFTOXvP5pai+lQ+e8/AAAAAAAA8D+aWovpUPnvP6BXaQVM5e8/bPnVXwrE7z+8Btl9tZXvP6Fs7QaHWu8/hpV/TcgS7z/jUJ230b7uPwE0jAkKX+4/kVRPlOXz7T8rtHFK5X3tP+Odrr2V/ew/lLBLCI5z7D/5nSilbuDrP1Q7rjngROs/h/vgVJKh6j9QHeomOvfpP47BbjSRRuk/P+sECVSQ6D/teATsQNXnP/P41ZoWFuc/CH27C5NT5j/oEuE7co7lP/s0TAttx+Q/H2UEKTj/4z+rTIwRgzbjPwlaeyH3beI/uhK9vTam4T8lZq6S3N/gP3loA+t6G+A/+0skPjaz3j82pqU5ejXdPygINxGuvts/wJGt7KlP2j8yv2N1MenYP6vcAqfzi9c/iPzGzIo41j9Xl+aofO/UP32eb8M6sdM/b+Oh3SJ+0j8KmJKGf1bRPzJnts2IOtA/vySeH8pUzj9gKxEgCG+wP3jvR8kQDbI/xUWcIpHLsz+YmXpcJay1P9k0TWZksLc/C2vdp9zZuT+96pl+ECq8P8pMXIJyor4/OKckyzCiwD+j77dlkgjCP8z1643zhMM/f2ffgtkXxT+LReQHt8HGP2nt9h/qgsg/vbTxx7lbyj+8iUy1U0zMP78knh/KVM4/Mme2zYg60D8MmJKGf1bRP2/jod0iftI/gJ5vwzqx0z9bl+aofO/UP4j8xsyKONY/sNwCp/OL1z8yv2N1MenYP8KRreypT9o/LAg3Ea6+2z84pqU5ejXdPwBMJD42s94/eWgD63ob4D8mZq6S3N/gP7oSvb02puE/C1p7Ifdt4j+tTIwRgzbjPyBlBCk4/+M//jRMC23H5D/oEuE7co7lPwl9uwuTU+Y/8/jVmhYW5z/ueATsQNXnP0HrBAlUkOg/j8FuNJFG6T9RHeomOvfpP4f74FSSoeo/VjuuOeBE6z/7nSilbuDrP5WwSwiOc+w/5Z2uvZX97D8rtHFK5X3tP5JUT5Tl8+0/ATSMCQpf7j/kUJ230b7uP4eVf03IEu8/oWztBoda7z+9Btl9tZXvP2z51V8KxO8/oVdpBUzl7z+aWovpUPnvPwAAAAAAAPA/mlqL6VD57z+gV2kFTOXvP2v51V8KxO8/vAbZfbWV7z+gbO0Gh1rvP4aVf03IEu8/41Cdt9G+7j8ANIwJCl/uP5FUT5Tl8+0/KbRxSuV97T/jna69lf3sP5OwSwiOc+w/+Z0opW7g6z9UO6454ETrP4X74FSSoeo/UB3qJjr36T+MwW40kUbpPz/rBAlUkOg/7XgE7EDV5z/w+NWaFhbnPwh9uwuTU+Y/5RLhO3KO5T/7NEwLbcfkPx1lBCk4/+M/q0yMEYM24z8JWnsh923iP7cSvb02puE/JWauktzf4D92aAPrehvgP/tLJD42s94/MqalOXo13T8oCDcRrr7bP8CRreypT9o/Lb9jdTHp2D+r3AKn84vXP4T8xsyKONY/V5fmqHzv1D99nm/DOrHTP2zjod0iftI/CpiShn9W0T8yZ7bNiDrQP6yD1Hqx360/YCsRIAhvsD9z70fJEA2yP71FnCKRy7M/mJl6XCWstT/TNE1mZLC3PwJr3afc2bk/veqZfhAqvD/KTFyCcqK+PzSnJMswosA/n++3ZZIIwj/K9euN84TDP31n34LZF8U/iUXkB7fBxj9m7fYf6oLIP7i08ce5W8o/vIlMtVNMzD+6JJ4fylTOPzBnts2IOtA/CpiShn9W0T9u46HdIn7SP32eb8M6sdM/V5fmqHzv1D+I/MbMijjWP6vcAqfzi9c/L79jdTHp2D/Aka3sqU/aPysINxGuvts/NqalOXo13T/7SyQ+NrPeP3doA+t6G+A/JWauktzf4D+5Er29NqbhPwlaeyH3beI/rEyMEYM24z8fZQQpOP/jP/s0TAttx+Q/5xLhO3KO5T8IfbsLk1PmP/H41ZoWFuc/7XgE7EDV5z9A6wQJVJDoP43BbjSRRuk/UB3qJjr36T+G++BUkqHqP1Q7rjngROs/+p0opW7g6z+UsEsIjnPsP+Odrr2V/ew/KrRxSuV97T+RVE+U5fPtPwE0jAkKX+4/41Cdt9G+7j+GlX9NyBLvP6Fs7QaHWu8/vAbZfbWV7z9s+dVfCsTvP6BXaQVM5e8/mlqL6VD57z8AAAAAAADwP5pai+lQ+e8/oFdpBUzl7z9s+dVfCsTvP7wG2X21le8/oWztBoda7z+HlX9NyBLvP+NQnbfRvu4/ATSMCQpf7j+RVE+U5fPtPyu0cUrlfe0/452uvZX97D+UsEsIjnPsP/udKKVu4Os/VDuuOeBE6z+H++BUkqHqP1Ad6iY69+k/jsFuNJFG6T9B6wQJVJDoP+14BOxA1ec/8/jVmhYW5z8IfbsLk1PmP+gS4TtyjuU/+zRMC23H5D8fZQQpOP/jP61MjBGDNuM/CVp7Ifdt4j+6Er29NqbhPyVmrpLc3+A/eWgD63ob4D/7SyQ+NrPePzampTl6Nd0/LAg3Ea6+2z/Aka3sqU/aPzK/Y3Ux6dg/q9wCp/OL1z+I/MbMijjWP1uX5qh879Q/fZ5vwzqx0z9v46HdIn7SPw6YkoZ/VtE/lLYbjMkbqz+sg9R6sd+tP2ArESAIb7A/c+9HyRANsj+9RZwikcuzP5iZelwlrLU/2TRNZmSwtz8La92n3Nm5P73qmX4QKrw/ykxcgnKivj80pyTLMKLAP6Hvt2WSCMI/zPXrjfOEwz9/Z9+C2RfFP4tF5Ae3wcY/Zu32H+qCyD+9tPHHuVvKP7yJTLVTTMw/vCSeH8pUzj8yZ7bNiDrQPwyYkoZ/VtE/b+Oh3SJ+0j99nm/DOrHTP1uX5qh879Q/iPzGzIo41j+u3AKn84vXPzK/Y3Ux6dg/wpGt7KlP2j8sCDcRrr7bPzampTl6Nd0//UskPjaz3j95aAPrehvgPyZmrpLc3+A/uhK9vTam4T8LWnsh923iP61MjBGDNuM/H2UEKTj/4z/9NEwLbcfkP+gS4TtyjuU/CX27C5NT5j/z+NWaFhbnP+54BOxA1ec/QOsECVSQ6D+OwW40kUbpP1Ed6iY69+k/h/vgVJKh6j9WO6454ETrP/udKKVu4Os/lLBLCI5z7D/kna69lf3sPyu0cUrlfe0/klRPlOXz7T8BNIwJCl/uP+NQnbfRvu4/h5V/TcgS7z+hbO0Gh1rvP70G2X21le8/bPnVXwrE7z+gV2kFTOXvP5pai+lQ+e8/AAAAAAAA8D+aWovpUPnvP6BXaQVM5e8/a/nVXwrE7z+8Btl9tZXvP6Fs7QaHWu8/hpV/TcgS7z/jUJ230b7uPwA0jAkKX+4/kVRPlOXz7T8ptHFK5X3tP+Odrr2V/ew/lLBLCI5z7D/5nSilbuDrP1Q7rjngROs/hfvgVJKh6j9QHeomOvfpP47BbjSRRuk/P+sECVSQ6D/teATsQNXnP/D41ZoWFuc/CH27C5NT5j/lEuE7co7lP/s0TAttx+Q/H2UEKTj/4z+rTIwRgzbjPwlaeyH3beI/txK9vTam4T8lZq6S3N/gP3ZoA+t6G+A/+0skPjaz3j82pqU5ejXdPygINxGuvts/wJGt7KlP2j8tv2N1MenYP6vcAqfzi9c/iPzGzIo41j9Xl+aofO/UP32eb8M6sdM/b+Oh3SJ+0j93eibmIo+oP422G4zJG6s/rIPUerHfrT9aKxEgCG+wP2/vR8kQDbI/vUWcIpHLsz+YmXpcJay1P9M0TWZksLc/Amvdp9zZuT+96pl+ECq8P8JMXIJyor4/MKckyzCiwD+f77dlkgjCP8r1643zhMM/fWffgtkXxT+GReQHt8HGP2bt9h/qgsg/uLTxx7lbyj+6iUy1U0zMP7oknh/KVM4/MGe2zYg60D8KmJKGf1bRP2zjod0iftI/fZ5vwzqx0z9Xl+aofO/UP4X8xsyKONY/q9wCp/OL1z8vv2N1MenYP8CRreypT9o/KAg3Ea6+2z80pqU5ejXdP/tLJD42s94/d2gD63ob4D8lZq6S3N/gP7kSvb02puE/CVp7Ifdt4j+rTIwRgzbjPx5lBCk4/+M/+zRMC23H5D/nEuE7co7lPwh9uwuTU+Y/8fjVmhYW5z/seATsQNXnPz/rBAlUkOg/jcFuNJFG6T9QHeomOvfpP4b74FSSoeo/VDuuOeBE6z/5nSilbuDrP5SwSwiOc+w/452uvZX97D8rtHFK5X3tP5FUT5Tl8+0/ADSMCQpf7j/jUJ230b7uP4aVf03IEu8/oWztBoda7z+8Btl9tZXvP2v51V8KxO8/oFdpBUzl7z+aWovpUPnvPwAAAAAAAPA/mlqL6VD57z+gV2kFTOXvP2z51V8KxO8/vQbZfbWV7z+hbO0Gh1rvP4eVf03IEu8/41Cdt9G+7j8BNIwJCl/uP5FUT5Tl8+0/K7RxSuV97T/lna69lf3sP5SwSwiOc+w/+50opW7g6z9UO6454ETrP4f74FSSoeo/Uh3qJjr36T+OwW40kUbpP0HrBAlUkOg/7XgE7EDV5z/z+NWaFhbnPwh9uwuTU+Y/6BLhO3KO5T/+NEwLbcfkPx9lBCk4/+M/rUyMEYM24z8JWnsh923iP7oSvb02puE/JWauktzf4D95aAPrehvgPwBMJD42s94/NqalOXo13T8sCDcRrr7bP8CRreypT9o/Mr9jdTHp2D+w3AKn84vXP4j8xsyKONY/W5fmqHzv1D+Bnm/DOrHTP17AMa2SNqY/fXom5iKPqD+UthuMyRurP6yD1Hqx360/YCsRIAhvsD9z70fJEA2yP71FnCKRy7M/mJl6XCWstT/ZNE1mZLC3Pwtr3afc2bk/veqZfhAqvD/KTFyCcqK+PzSnJMswosA/oe+3ZZIIwj/M9euN84TDP31n34LZF8U/i0XkB7fBxj9m7fYf6oLIP7u08ce5W8o/vIlMtVNMzD+8JJ4fylTOPzJnts2IOtA/CpiShn9W0T9v46HdIn7SP32eb8M6sdM/WZfmqHzv1D+I/MbMijjWP67cAqfzi9c/Mr9jdTHp2D/Aka3sqU/aPysINxGuvts/NqalOXo13T/9SyQ+NrPeP3loA+t6G+A/Jmauktzf4D+6Er29NqbhPwlaeyH3beI/rEyMEYM24z8fZQQpOP/jP/00TAttx+Q/6BLhO3KO5T8JfbsLk1PmP/H41ZoWFuc/7XgE7EDV5z9A6wQJVJDoP47BbjSRRuk/UR3qJjr36T+H++BUkqHqP1Q7rjngROs/+p0opW7g6z+UsEsIjnPsP+Wdrr2V/ew/K7RxSuV97T+RVE+U5fPtPwE0jAkKX+4/41Cdt9G+7j+HlX9NyBLvP6Fs7QaHWu8/vAbZfbWV7z9s+dVfCsTvP6BXaQVM5e8/mlqL6VD57z8AAAAAAADwP5pai+lQ+e8/oFdpBUzl7z9s+dVfCsTvP7wG2X21le8/oWztBoda7z+GlX9NyBLvP+NQnbfRvu4/ADSMCQpf7j+RVE+U5fPtPyu0cUrlfe0/452uvZX97D+UsEsIjnPsP/mdKKVu4Os/VDuuOeBE6z+H++BUkqHqP1Ad6iY69+k/jsFuNJFG6T8/6wQJVJDoP+14BOxA1ec/8PjVmhYW5z8IfbsLk1PmP+gS4TtyjuU/+zRMC23H5D8fZQQpOP/jP6tMjBGDNuM/CVp7Ifdt4j+3Er29NqbhPyVmrpLc3+A/eWgD63ob4D/7SyQ+NrPePzampTl6Nd0/KAg3Ea6+2z/Aka3sqU/aPzK/Y3Ux6dg/q9wCp/OL1z+I/MbMijjWP1uX5qh879Q/lyVSv/wOpD9ewDGtkjamP3d6JuYij6g/jbYbjMkbqz+sg9R6sd+tP1orESAIb7A/b+9HyRANsj+9RZwikcuzP5iZelwlrLU/0zRNZmSwtz8Ca92n3Nm5P73qmX4QKrw/wkxcgnKivj8wpyTLMKLAP5/vt2WSCMI/yPXrjfOEwz99Z9+C2RfFP4ZF5Ae3wcY/Y+32H+qCyD+4tPHHuVvKP7qJTLVTTMw/uiSeH8pUzj8uZ7bNiDrQPwqYkoZ/VtE/bOOh3SJ+0j98nm/DOrHTP1eX5qh879Q/hfzGzIo41j+r3AKn84vXPy2/Y3Ux6dg/vpGt7KlP2j8oCDcRrr7bPzSmpTl6Nd0/+0skPjaz3j93aAPrehvgPyVmrpLc3+A/txK9vTam4T8IWnsh923iP6tMjBGDNuM/HmUEKTj/4z/7NEwLbcfkP+cS4TtyjuU/B327C5NT5j/w+NWaFhbnP+x4BOxA1ec/P+sECVSQ6D+NwW40kUbpP1Ad6iY69+k/hfvgVJKh6j9UO6454ETrP/mdKKVu4Os/lLBLCI5z7D/jna69lf3sPym0cUrlfe0/kVRPlOXz7T8ANIwJCl/uP+NQnbfRvu4/hpV/TcgS7z+gbO0Gh1rvP7wG2X21le8/a/nVXwrE7z+gV2kFTOXvP5pai+lQ+e8/AAAAAAAA8D+aWovpUPnvP6FXaQVM5e8/bPnVXwrE7z+9Btl9tZXvP6Fs7QaHWu8/h5V/TcgS7z/jUJ230b7uPwE0jAkKX+4/klRPlOXz7T8rtHFK5X3tP+Wdrr2V/ew/lLBLCI5z7D/7nSilbuDrP1c7rjngROs/h/vgVJKh6j9SHeomOvfpP47BbjSRRuk/QesECVSQ6D/teATsQNXnP/P41ZoWFuc/Cn27C5NT5j/oEuE7co7lP/40TAttx+Q/H2UEKTj/4z+tTIwRgzbjPwlaeyH3beI/uhK9vTam4T8nZq6S3N/gP3loA+t6G+A/AEwkPjaz3j82pqU5ejXdPywINxGuvts/xZGt7KlP2j8yv2N1MenYP7DcAqfzi9c/jPzGzIo41j9Eg0I9VxWiP5clUr/8DqQ/XsAxrZI2pj93eibmIo+oP422G4zJG6s/rIPUerHfrT9gKxEgCG+wP3PvR8kQDbI/vUWcIpHLsz+YmXpcJay1P9M0TWZksLc/Amvdp9zZuT+96pl+ECq8P8pMXIJyor4/NKckyzCiwD+f77dlkgjCP8z1643zhMM/fWffgtkXxT+JReQHt8HGP2bt9h/qgsg/u7Txx7lbyj+8iUy1U0zMP7oknh/KVM4/Mme2zYg60D8KmJKGf1bRP27jod0iftI/fZ5vwzqx0z9Zl+aofO/UP4j8xsyKONY/q9wCp/OL1z8vv2N1MenYP8CRreypT9o/Kwg3Ea6+2z82pqU5ejXdP/1LJD42s94/eWgD63ob4D8lZq6S3N/gP7kSvb02puE/CVp7Ifdt4j+sTIwRgzbjPx9lBCk4/+M//TRMC23H5D/nEuE7co7lPwh9uwuTU+Y/8fjVmhYW5z/teATsQNXnP0DrBAlUkOg/jsFuNJFG6T9QHeomOvfpP4b74FSSoeo/VDuuOeBE6z/7nSilbuDrP5SwSwiOc+w/452uvZX97D8rtHFK5X3tP5FUT5Tl8+0/ATSMCQpf7j/jUJ230b7uP4aVf03IEu8/oWztBoda7z+8Btl9tZXvP2z51V8KxO8/oFdpBUzl7z+aWovpUPnvPwAAAAAAAPA/mlqL6VD57z+gV2kFTOXvP2z51V8KxO8/vAbZfbWV7z+hbO0Gh1rvP4aVf03IEu8/41Cdt9G+7j8BNIwJCl/uP5FUT5Tl8+0/K7RxSuV97T/jna69lf3sP5SwSwiOc+w/+50opW7g6z9UO6454ETrP4f74FSSoeo/UB3qJjr36T+OwW40kUbpPz/rBAlUkOg/7XgE7EDV5z/z+NWaFhbnPwh9uwuTU+Y/6BLhO3KO5T/7NEwLbcfkPx9lBCk4/+M/q0yMEYM24z8JWnsh923iP7oSvb02puE/JWauktzf4D95aAPrehvgP/tLJD42s94/NqalOXo13T8sCDcRrr7bP8CRreypT9o/Mr9jdTHp2D+w3AKn84vXP1aW65etRqA/SYNCPVcVoj+eJVK//A6kP17AMa2SNqY/fXom5iKPqD+UthuMyRurP6yD1Hqx360/YCsRIAhvsD9470fJEA2yP8VFnCKRy7M/mJl6XCWstT/ZNE1mZLC3Pwtr3afc2bk/veqZfhAqvD/KTFyCcqK+PzSnJMswosA/o++3ZZIIwj/M9euN84TDP39n34LZF8U/i0XkB7fBxj9p7fYf6oLIP7208ce5W8o/vIlMtVNMzD+/JJ4fylTOPzJnts2IOtA/DJiShn9W0T9v46HdIn7SP4Ceb8M6sdM/W5fmqHzv1D+I/MbMijjWP67cAqfzi9c/Mr9jdTHp2D/Cka3sqU/aPywINxGuvts/OKalOXo13T8ATCQ+NrPeP3loA+t6G+A/Jmauktzf4D+6Er29NqbhPwtaeyH3beI/rUyMEYM24z8gZQQpOP/jP/00TAttx+Q/6BLhO3KO5T8JfbsLk1PmP/P41ZoWFuc/7ngE7EDV5z9B6wQJVJDoP47BbjSRRuk/UR3qJjr36T+H++BUkqHqP1c7rjngROs/+50opW7g6z+UsEsIjnPsP+Wdrr2V/ew/K7RxSuV97T+SVE+U5fPtPwE0jAkKX+4/41Cdt9G+7j+HlX9NyBLvP6Fs7QaHWu8/vQbZfbWV7z9s+dVfCsTvP6FXaQVM5e8/mlqL6VD57z8AAAAAAADwP5pai+lQ+e8/oFdpBUzl7z9r+dVfCsTvP7wG2X21le8/oGztBoda7z+GlX9NyBLvP+NQnbfRvu4/ADSMCQpf7j+RVE+U5fPtPym0cUrlfe0/452uvZX97D+UsEsIjnPsP/mdKKVu4Os/VDuuOeBE6z+F++BUkqHqP1Ad6iY69+k/jMFuNJFG6T8/6wQJVJDoP+14BOxA1ec/8PjVmhYW5z8IfbsLk1PmP+US4TtyjuU/+zRMC23H5D8dZQQpOP/jP6tMjBGDNuM/CVp7Ifdt4j+3Er29NqbhPyVmrpLc3+A/dmgD63ob4D/7SyQ+NrPePzampTl6Nd0/KAg3Ea6+2z/Aka3sqU/aPzK/Y3Ux6dg/JW6nTkZAnT9WluuXrUagP0SDQj1XFaI/lyVSv/wOpD9ewDGtkjamP3d6JuYij6g/jbYbjMkbqz+sg9R6sd+tP2ArESAIb7A/c+9HyRANsj+9RZwikcuzP5iZelwlrLU/0zRNZmSwtz8Ca92n3Nm5P73qmX4QKrw/wkxcgnKivj80pyTLMKLAP5/vt2WSCMI/yvXrjfOEwz99Z9+C2RfFP4lF5Ae3wcY/Zu32H+qCyD+4tPHHuVvKP7yJTLVTTMw/uiSeH8pUzj8wZ7bNiDrQPwqYkoZ/VtE/buOh3SJ+0j99nm/DOrHTP1eX5qh879Q/hfzGzIo41j+r3AKn84vXPy+/Y3Ux6dg/wJGt7KlP2j8rCDcRrr7bPzampTl6Nd0/+0skPjaz3j93aAPrehvgPyVmrpLc3+A/uRK9vTam4T8JWnsh923iP6xMjBGDNuM/HmUEKTj/4z/7NEwLbcfkP+cS4TtyjuU/CH27C5NT5j/x+NWaFhbnP+14BOxA1ec/P+sECVSQ6D+NwW40kUbpP1Ad6iY69+k/h/vgVJKh6j9UO6454ETrP/mdKKVu4Os/lLBLCI5z7D/jna69lf3sPyu0cUrlfe0/kVRPlOXz7T8ANIwJCl/uP+NQnbfRvu4/hpV/TcgS7z+hbO0Gh1rvP7wG2X21le8/bPnVXwrE7z+gV2kFTOXvP5pai+lQ+e8/AAAAAAAA8D+aWovpUPnvP6BXaQVM5e8/bPnVXwrE7z+8Btl9tZXvP6Fs7QaHWu8/h5V/TcgS7z/jUJ230b7uPwE0jAkKX+4/kVRPlOXz7T8rtHFK5X3tP+Wdrr2V/ew/lLBLCI5z7D/7nSilbuDrP1Q7rjngROs/h/vgVJKh6j9QHeomOvfpP47BbjSRRuk/QesECVSQ6D/teATsQNXnP/P41ZoWFuc/CH27C5NT5j/oEuE7co7lP/s0TAttx+Q/H2UEKTj/4z+tTIwRgzbjPwlaeyH3beI/uhK9vTam4T8lZq6S3N/gP3loA+t6G+A/AEwkPjaz3j82pqU5ejXdPywINxGuvts/xZGt7KlP2j++F/Og6j2aPyVup05GQJ0/Vpbrl61GoD9Eg0I9VxWiP5clUr/8DqQ/XsAxrZI2pj99eibmIo+oP5S2G4zJG6s/rIPUerHfrT9gKxEgCG+wP3PvR8kQDbI/vUWcIpHLsz+YmXpcJay1P9k0TWZksLc/C2vdp9zZuT+96pl+ECq8P8pMXIJyor4/NKckyzCiwD+h77dlkgjCP8z1643zhMM/f2ffgtkXxT+LReQHt8HGP2bt9h/qgsg/vbTxx7lbyj+8iUy1U0zMP7wknh/KVM4/Mme2zYg60D8MmJKGf1bRP2/jod0iftI/fZ5vwzqx0z9Zl+aofO/UP4j8xsyKONY/rtwCp/OL1z8yv2N1MenYP8KRreypT9o/LAg3Ea6+2z82pqU5ejXdP/1LJD42s94/eWgD63ob4D8mZq6S3N/gP7oSvb02puE/C1p7Ifdt4j+sTIwRgzbjPx9lBCk4/+M//TRMC23H5D/oEuE7co7lPwl9uwuTU+Y/8/jVmhYW5z/teATsQNXnP0DrBAlUkOg/jsFuNJFG6T9SHeomOvfpP4f74FSSoeo/VDuuOeBE6z/7nSilbuDrP5SwSwiOc+w/5Z2uvZX97D8rtHFK5X3tP5FUT5Tl8+0/ATSMCQpf7j/jUJ230b7uP4eVf03IEu8/oWztBoda7z+9Btl9tZXvP2z51V8KxO8/oFdpBUzl7z+aWovpUPnvPwAAAAAAAPA/mlqL6VD57z+gV2kFTOXvP2v51V8KxO8/vAbZfbWV7z+hbO0Gh1rvP4aVf03IEu8/41Cdt9G+7j8ANIwJCl/uP5FUT5Tl8+0/K7RxSuV97T/jna69lf3sP5SwSwiOc+w/+Z0opW7g6z9UO6454ETrP4X74FSSoeo/UB3qJjr36T+OwW40kUbpPz/rBAlUkOg/7XgE7EDV5z/w+NWaFhbnPwh9uwuTU+Y/5RLhO3KO5T/7NEwLbcfkPx9lBCk4/+M/q0yMEYM24z8JWnsh923iP7cSvb02puE/JWauktzf4D95aAPrehvgP/tLJD42s94/NqalOXo13T8sCDcRrr7bPyqSlID6gJc/txfzoOo9mj8lbqdORkCdP1CW65etRqA/PYNCPVcVoj+XJVK//A6kP17AMa2SNqY/d3om5iKPqD+NthuMyRurP6yD1Hqx360/WisRIAhvsD9v70fJEA2yP71FnCKRy7M/mJl6XCWstT/TNE1mZLC3PwJr3afc2bk/veqZfhAqvD/CTFyCcqK+PzCnJMswosA/n++3ZZIIwj/K9euN84TDP31n34LZF8U/hkXkB7fBxj9m7fYf6oLIP7i08ce5W8o/uolMtVNMzD+6JJ4fylTOPzBnts2IOtA/CpiShn9W0T9s46HdIn7SP3yeb8M6sdM/V5fmqHzv1D+F/MbMijjWP6vcAqfzi9c/L79jdTHp2D/Aka3sqU/aPygINxGuvts/NKalOXo13T/7SyQ+NrPeP3doA+t6G+A/JWauktzf4D+5Er29NqbhPwhaeyH3beI/q0yMEYM24z8eZQQpOP/jP/s0TAttx+Q/5xLhO3KO5T8IfbsLk1PmP/D41ZoWFuc/7HgE7EDV5z8/6wQJVJDoP47BbjSRRuk/UB3qJjr36T+F++BUkqHqP1Q7rjngROs/+Z0opW7g6z+UsEsIjnPsP+Odrr2V/ew/KbRxSuV97T+RVE+U5fPtPwA0jAkKX+4/41Cdt9G+7j+GlX9NyBLvP6Fs7QaHWu8/vAbZfbWV7z9r+dVfCsTvP6BXaQVM5e8/mlqL6VD57z8AAAAAAADwP5pai+lQ+e8/oFdpBUzl7z9s+dVfCsTvP70G2X21le8/oWztBoda7z+HlX9NyBLvP+NQnbfRvu4/ATSMCQpf7j+SVE+U5fPtPyu0cUrlfe0/5Z2uvZX97D+UsEsIjnPsP/udKKVu4Os/VDuuOeBE6z+H++BUkqHqP1Id6iY69+k/jsFuNJFG6T9B6wQJVJDoP+14BOxA1ec/8/jVmhYW5z8IfbsLk1PmP+gS4TtyjuU//jRMC23H5D8fZQQpOP/jP61MjBGDNuM/CVp7Ifdt4j+6Er29NqbhPydmrpLc3+A/eWgD63ob4D8ATCQ+NrPePzumpTl6Nd0/bIzZhGIElT8zkpSA+oCXP74X86DqPZo/JW6nTkZAnT9WluuXrUagP0SDQj1XFaI/lyVSv/wOpD9ewDGtkjamP316JuYij6g/lLYbjMkbqz+sg9R6sd+tP2ArESAIb7A/c+9HyRANsj+9RZwikcuzP5iZelwlrLU/0zRNZmSwtz8La92n3Nm5P73qmX4QKrw/ykxcgnKivj80pyTLMKLAP6Hvt2WSCMI/zPXrjfOEwz99Z9+C2RfFP4tF5Ae3wcY/Zu32H+qCyD+7tPHHuVvKP7yJTLVTTMw/vCSeH8pUzj8yZ7bNiDrQPwqYkoZ/VtE/buOh3SJ+0j99nm/DOrHTP1mX5qh879Q/iPzGzIo41j+u3AKn84vXPzK/Y3Ux6dg/wJGt7KlP2j8rCDcRrr7bPzampTl6Nd0//UskPjaz3j95aAPrehvgPyZmrpLc3+A/uRK9vTam4T8JWnsh923iP6xMjBGDNuM/H2UEKTj/4z/9NEwLbcfkP+gS4TtyjuU/CH27C5NT5j/x+NWaFhbnP+14BOxA1ec/QesECVSQ6D+OwW40kUbpP1Ad6iY69+k/h/vgVJKh6j9UO6454ETrP/udKKVu4Os/lLBLCI5z7D/jna69lf3sPyu0cUrlfe0/kVRPlOXz7T8BNIwJCl/uP+NQnbfRvu4/h5V/TcgS7z+hbO0Gh1rvP7wG2X21le8/bPnVXwrE7z+gV2kFTOXvP5pai+lQ+e8/AAAAAAAA8D+aWovpUPnvP6BXaQVM5e8/bPnVXwrE7z+8Btl9tZXvP6Fs7QaHWu8/hpV/TcgS7z/jUJ230b7uPwE0jAkKX+4/kVRPlOXz7T8rtHFK5X3tP+Odrr2V/ew/lLBLCI5z7D/5nSilbuDrP1Q7rjngROs/h/vgVJKh6j9QHeomOvfpP47BbjSRRuk/P+sECVSQ6D/teATsQNXnP/D41ZoWFuc/CH27C5NT5j/oEuE7co7lP/s0TAttx+Q/H2UEKTj/4z+rTIwRgzbjPwlaeyH3beI/uhK9vTam4T8lZq6S3N/gP3loA+t6G+A/AEwkPjaz3j+CjgB2S8OSP2yM2YRiBJU/KpKUgPqAlz+3F/Og6j2aPyVup05GQJ0/UJbrl61GoD89g0I9VxWiP5clUr/8DqQ/XsAxrZI2pj93eibmIo+oP422G4zJG6s/rIPUerHfrT9aKxEgCG+wP2/vR8kQDbI/vUWcIpHLsz+TmXpcJay1P9M0TWZksLc/Amvdp9zZuT+96pl+ECq8P8JMXIJyor4/MKckyzCiwD+f77dlkgjCP8j1643zhMM/fWffgtkXxT+GReQHt8HGP2Pt9h/qgsg/uLTxx7lbyj+6iUy1U0zMP7oknh/KVM4/Lme2zYg60D8JmJKGf1bRP2zjod0iftI/fJ5vwzqx0z9Xl+aofO/UP4X8xsyKONY/q9wCp/OL1z8tv2N1MenYP76RreypT9o/KAg3Ea6+2z80pqU5ejXdP/tLJD42s94/d2gD63ob4D8kZq6S3N/gP7cSvb02puE/CFp7Ifdt4j+rTIwRgzbjPx5lBCk4/+M/+zRMC23H5D/lEuE7co7lPwd9uwuTU+Y/8PjVmhYW5z/teATsQNXnPz/rBAlUkOg/jMFuNJFG6T9QHeomOvfpP4X74FSSoeo/VDuuOeBE6z/5nSilbuDrP5OwSwiOc+w/452uvZX97D8ptHFK5X3tP5FUT5Tl8+0/ADSMCQpf7j/jUJ230b7uP4aVf03IEu8/oGztBoda7z+8Btl9tZXvP2v51V8KxO8/oFdpBUzl7z+aWovpUPnvPwAAAAAAAPA/mlqL6VD57z+hV2kFTOXvP2z51V8KxO8/vQbZfbWV7z+hbO0Gh1rvP4eVf03IEu8/5FCdt9G+7j8BNIwJCl/uP5JUT5Tl8+0/K7RxSuV97T/lna69lf3sP5SwSwiOc+w/+50opW7g6z9XO6454ETrP4f74FSSoeo/Uh3qJjr36T+OwW40kUbpP0HrBAlUkOg/7XgE7EDV5z/z+NWaFhbnPwp9uwuTU+Y/6BLhO3KO5T/+NEwLbcfkPx9lBCk4/+M/rUyMEYM24z8MWnsh923iP7oSvb02puE/J2auktzf4D97aAPrehvgPyj8ZJUbuZA/go4AdkvDkj9sjNmEYgSVPyqSlID6gJc/txfzoOo9mj8lbqdORkCdP1aW65etRqA/RINCPVcVoj+XJVK//A6kP17AMa2SNqY/d3om5iKPqD+NthuMyRurP6yD1Hqx360/YCsRIAhvsD9z70fJEA2yP71FnCKRy7M/mJl6XCWstT/TNE1mZLC3PwJr3afc2bk/veqZfhAqvD/KTFyCcqK+PzSnJMswosA/n++3ZZIIwj/M9euN84TDP31n34LZF8U/iUXkB7fBxj9m7fYf6oLIP7u08ce5W8o/vIlMtVNMzD+6JJ4fylTOPzBnts2IOtA/CpiShn9W0T9u46HdIn7SP32eb8M6sdM/WZfmqHzv1D+I/MbMijjWP6vcAqfzi9c/L79jdTHp2D/Aka3sqU/aPysINxGuvts/NqalOXo13T/9SyQ+NrPeP3doA+t6G+A/JWauktzf4D+5Er29NqbhPwlaeyH3beI/rEyMEYM24z8fZQQpOP/jP/s0TAttx+Q/5xLhO3KO5T8IfbsLk1PmP/P41ZoWFuc/7XgE7EDV5z8/6wQJVJDoP47BbjSRRuk/UB3qJjr36T+H++BUkqHqP1Q7rjngROs/+Z0opW7g6z+UsEsIjnPsP+Odrr2V/ew/K7RxSuV97T+RVE+U5fPtPwE0jAkKX+4/41Cdt9G+7j+GlX9NyBLvP6Fs7QaHWu8/vAbZfbWV7z9s+dVfCsTvP6BXaQVM5e8/mlqL6VD57z8AAAAAAADwP5pai+lQ+e8/oFdpBUzl7z9s+dVfCsTvP7wG2X21le8/oWztBoda7z+HlX9NyBLvP+NQnbfRvu4/ATSMCQpf7j+RVE+U5fPtPyu0cUrlfe0/452uvZX97D+UsEsIjnPsP/udKKVu4Os/VDuuOeBE6z+H++BUkqHqP1Ad6iY69+k/jsFuNJFG6T8/6wQJVJDoP+14BOxA1ec/8/jVmhYW5z8IfbsLk1PmP+gS4TtyjuU/+zRMC23H5D8fZQQpOP/jP61MjBGDNuM/CVp7Ifdt4j+6Er29NqbhPydmrpLc3+A/bbPZku7CjT8t/GSVG7mQP4mOAHZLw5I/bIzZhGIElT8zkpSA+oCXP74X86DqPZo/JW6nTkZAnT9WluuXrUagP0mDQj1XFaI/niVSv/wOpD9ewDGtkjamP316JuYij6g/lLYbjMkbqz+sg9R6sd+tP2ArESAIb7A/c+9HyRANsj/FRZwikcuzP5iZelwlrLU/2TRNZmSwtz8La92n3Nm5P73qmX4QKrw/ykxcgnKivj80pyTLMKLAP6Pvt2WSCMI/zPXrjfOEwz9/Z9+C2RfFP4tF5Ae3wcY/ae32H+qCyD+9tPHHuVvKP7yJTLVTTMw/vCSeH8pUzj8yZ7bNiDrQPwyYkoZ/VtE/b+Oh3SJ+0j+Anm/DOrHTP1uX5qh879Q/iPzGzIo41j+u3AKn84vXPzK/Y3Ux6dg/wpGt7KlP2j8sCDcRrr7bPzimpTl6Nd0//UskPjaz3j95aAPrehvgPyZmrpLc3+A/uhK9vTam4T8LWnsh923iP61MjBGDNuM/H2UEKTj/4z/9NEwLbcfkP+gS4TtyjuU/Cn27C5NT5j/z+NWaFhbnP+14BOxA1ec/QesECVSQ6D+OwW40kUbpP1Id6iY69+k/h/vgVJKh6j9UO6454ETrP/udKKVu4Os/lLBLCI5z7D/lna69lf3sPyu0cUrlfe0/klRPlOXz7T8BNIwJCl/uP+NQnbfRvu4/h5V/TcgS7z+hbO0Gh1rvP70G2X21le8/bPnVXwrE7z+hV2kFTOXvP5pai+lQ+e8/AAAAAAAA8D+aWovpUPnvP6BXaQVM5e8/a/nVXwrE7z+8Btl9tZXvP6Fs7QaHWu8/hpV/TcgS7z/jUJ230b7uPwA0jAkKX+4/kVRPlOXz7T8ptHFK5X3tP+Odrr2V/ew/lLBLCI5z7D/5nSilbuDrP1Q7rjngROs/hfvgVJKh6j9QHeomOvfpP4zBbjSRRuk/P+sECVSQ6D/teATsQNXnP/D41ZoWFuc/CH27C5NT5j/lEuE7co7lP/s0TAttx+Q/H2UEKTj/4z+rTIwRgzbjPwlaeyH3beI/uhK9vTam4T/vnMB4gnCKP22z2ZLuwo0/KPxklRu5kD+CjgB2S8OSP2yM2YRiBJU/KpKUgPqAlz+3F/Og6j2aPyVup05GQJ0/Vpbrl61GoD9Eg0I9VxWiP5clUr/8DqQ/XsAxrZI2pj93eibmIo+oP422G4zJG6s/rIPUerHfrT9aKxEgCG+wP3PvR8kQDbI/vUWcIpHLsz+YmXpcJay1P9M0TWZksLc/Amvdp9zZuT+96pl+ECq8P8JMXIJyor4/NKckyzCiwD+f77dlkgjCP8r1643zhMM/fWffgtkXxT+JReQHt8HGP2bt9h/qgsg/uLTxx7lbyj+6iUy1U0zMP7oknh/KVM4/MGe2zYg60D8KmJKGf1bRP27jod0iftI/fZ5vwzqx0z9Xl+aofO/UP4X8xsyKONY/q9wCp/OL1z8vv2N1MenYP8CRreypT9o/Kwg3Ea6+2z80pqU5ejXdP/tLJD42s94/d2gD63ob4D8lZq6S3N/gP7kSvb02puE/CVp7Ifdt4j+rTIwRgzbjPx5lBCk4/+M/+zRMC23H5D/oEuE7co7lPwh9uwuTU+Y/8PjVmhYW5z/teATsQNXnPz/rBAlUkOg/jsFuNJFG6T9QHeomOvfpP4X74FSSoeo/VDuuOeBE6z/5nSilbuDrP5SwSwiOc+w/452uvZX97D8rtHFK5X3tP5FUT5Tl8+0/ADSMCQpf7j/jUJ230b7uP4aVf03IEu8/oWztBoda7z+8Btl9tZXvP2z51V8KxO8/oFdpBUzl7z+aWovpUPnvPwAAAAAAAPA/mlqL6VD57z+gV2kFTOXvP2z51V8KxO8/vQbZfbWV7z+hbO0Gh1rvP4eVf03IEu8/41Cdt9G+7j8BNIwJCl/uP5FUT5Tl8+0/K7RxSuV97T/lna69lf3sP5SwSwiOc+w/+50opW7g6z9UO6454ETrP4f74FSSoeo/UB3qJjr36T+OwW40kUbpP0HrBAlUkOg/7XgE7EDV5z/z+NWaFhbnPwh9uwuTU+Y/6BLhO3KO5T/+NEwLbcfkPx9lBCk4/+M/rUyMEYM24z8MWnsh923iP+cHa/ozc4c/75zAeIJwij9ts9mS7sKNPyj8ZJUbuZA/go4AdkvDkj9sjNmEYgSVPzOSlID6gJc/vhfzoOo9mj8lbqdORkCdP1aW65etRqA/RINCPVcVoj+XJVK//A6kP17AMa2SNqY/fXom5iKPqD+UthuMyRurP6yD1Hqx360/YCsRIAhvsD9z70fJEA2yP71FnCKRy7M/mJl6XCWstT/ZNE1mZLC3Pwtr3afc2bk/veqZfhAqvD/KTFyCcqK+PzSnJMswosA/oe+3ZZIIwj/M9euN84TDP39n34LZF8U/i0XkB7fBxj9m7fYf6oLIP7u08ce5W8o/vIlMtVNMzD+8JJ4fylTOPzJnts2IOtA/DJiShn9W0T9v46HdIn7SP32eb8M6sdM/WZfmqHzv1D+I/MbMijjWP67cAqfzi9c/Mr9jdTHp2D/Cka3sqU/aPysINxGuvts/NqalOXo13T/9SyQ+NrPeP3loA+t6G+A/Jmauktzf4D+6Er29NqbhPwlaeyH3beI/rEyMEYM24z8fZQQpOP/jP/40TAttx+Q/6BLhO3KO5T8IfbsLk1PmP/P41ZoWFuc/7XgE7EDV5z9B6wQJVJDoP47BbjSRRuk/UB3qJjr36T+H++BUkqHqP1Q7rjngROs/+50opW7g6z+UsEsIjnPsP+Wdrr2V/ew/K7RxSuV97T+RVE+U5fPtPwE0jAkKX+4/41Cdt9G+7j+HlX9NyBLvP6Fs7QaHWu8/vQbZfbWV7z9s+dVfCsTvP6BXaQVM5e8/mlqL6VD57z8AAAAAAADwP5pai+lQ+e8/oFdpBUzl7z9s+dVfCsTvP7wG2X21le8/oWztBoda7z+GlX9NyBLvP+NQnbfRvu4/ADSMCQpf7j+RVE+U5fPtPyu0cUrlfe0/452uvZX97D+UsEsIjnPsP/mdKKVu4Os/VDuuOeBE6z+F++BUkqHqP1Ad6iY69+k/jsFuNJFG6T8/6wQJVJDoP+14BOxA1ec/8PjVmhYW5z8IfbsLk1PmP+gS4TtyjuU/+zRMC23H5D8fZQQpOP/jP61MjBGDNuM/A+QjYr7DhD/iB2v6M3OHP++cwHiCcIo/XrPZku7CjT8g/GSVG7mQP4KOAHZLw5I/bIzZhGIElT8qkpSA+oCXP7cX86DqPZo/JW6nTkZAnT9QluuXrUagPz2DQj1XFaI/lyVSv/wOpD9ewDGtkjamP3d6JuYij6g/jbYbjMkbqz+sg9R6sd+tP1orESAIb7A/b+9HyRANsj+9RZwikcuzP5iZelwlrLU/0zRNZmSwtz8Ca92n3Nm5P73qmX4QKrw/wkxcgnKivj8wpyTLMKLAP5/vt2WSCMI/yvXrjfOEwz99Z9+C2RfFP4ZF5Ae3wcY/Y+32H+qCyD+4tPHHuVvKP7qJTLVTTMw/uiSeH8pUzj8wZ7bNiDrQPwqYkoZ/VtE/bOOh3SJ+0j98nm/DOrHTP1eX5qh879Q/hfzGzIo41j+r3AKn84vXPy+/Y3Ux6dg/vpGt7KlP2j8oCDcRrr7bPzSmpTl6Nd0/+0skPjaz3j93aAPrehvgPyVmrpLc3+A/txK9vTam4T8IWnsh923iP6tMjBGDNuM/H2UEKTj/4z/7NEwLbcfkP+US4TtyjuU/CH27C5NT5j/w+NWaFhbnP+14BOxA1ec/P+sECVSQ6D+MwW40kUbpP1Ad6iY69+k/hfvgVJKh6j9UO6454ETrP/mdKKVu4Os/lLBLCI5z7D/jna69lf3sPym0cUrlfe0/kVRPlOXz7T8ANIwJCl/uP+NQnbfRvu4/hpV/TcgS7z+hbO0Gh1rvP7wG2X21le8/a/nVXwrE7z+gV2kFTOXvP5pai+lQ+e8/AAAAAAAA8D+aWovpUPnvP6FXaQVM5e8/bPnVXwrE7z+9Btl9tZXvP6Fs7QaHWu8/h5V/TcgS7z/jUJ230b7uPwE0jAkKX+4/klRPlOXz7T8rtHFK5X3tP+Wdrr2V/ew/lLBLCI5z7D/7nSilbuDrP1Q7rjngROs/h/vgVJKh6j9SHeomOvfpP47BbjSRRuk/QesECVSQ6D/teATsQNXnP/P41ZoWFuc/Cn27C5NT5j/oEuE7co7lP/40TAttx+Q/IWUEKTj/4z8VeaTHVFuCPw3kI2K+w4Q/5wdr+jNzhz/vnMB4gnCKP22z2ZLuwo0/KPxklRu5kD+CjgB2S8OSP2yM2YRiBJU/M5KUgPqAlz++F/Og6j2aPyVup05GQJ0/Vpbrl61GoD9Eg0I9VxWiP5clUr/8DqQ/XsAxrZI2pj93eibmIo+oP5S2G4zJG6s/rIPUerHfrT9gKxEgCG+wP3PvR8kQDbI/vUWcIpHLsz+YmXpcJay1P9M0TWZksLc/C2vdp9zZuT+96pl+ECq8P8pMXIJyor4/NKckyzCiwD+h77dlkgjCP8z1643zhMM/fWffgtkXxT+JReQHt8HGP2bt9h/qgsg/u7Txx7lbyj+8iUy1U0zMP7wknh/KVM4/Mme2zYg60D8KmJKGf1bRP27jod0iftI/fZ5vwzqx0z9Zl+aofO/UP4j8xsyKONY/rtwCp/OL1z8vv2N1MenYP8CRreypT9o/Kwg3Ea6+2z82pqU5ejXdP/1LJD42s94/eWgD63ob4D8lZq6S3N/gP7kSvb02puE/CVp7Ifdt4j+tTIwRgzbjPx9lBCk4/+M/+zRMC23H5D/oEuE7co7lPwh9uwuTU+Y/8/jVmhYW5z/teATsQNXnPz/rBAlUkOg/jsFuNJFG6T9QHeomOvfpP4f74FSSoeo/VDuuOeBE6z/7nSilbuDrP5SwSwiOc+w/452uvZX97D8rtHFK5X3tP5FUT5Tl8+0/ATSMCQpf7j/jUJ230b7uP4eVf03IEu8/oWztBoda7z+8Btl9tZXvP2z51V8KxO8/oFdpBUzl7z+aWovpUPnvPwAAAAAAAPA/mlqL6VD57z+gV2kFTOXvP2z51V8KxO8/vAbZfbWV7z+hbO0Gh1rvP4aVf03IEu8/41Cdt9G+7j8BNIwJCl/uP5FUT5Tl8+0/K7RxSuV97T/jna69lf3sP5SwSwiOc+w/+Z0opW7g6z9UO6454ETrP4f74FSSoeo/UB3qJjr36T+OwW40kUbpPz/rBAlUkOg/7XgE7EDV5z/z+NWaFhbnPwh9uwuTU+Y/6BLhO3KO5T/+NEwLbcfkP6GXsgqfM4A/FXmkx1Rbgj8N5CNivsOEP+cHa/ozc4c/75zAeIJwij9ts9mS7sKNPy38ZJUbuZA/iY4AdkvDkj9sjNmEYgSVPzOSlID6gJc/vhfzoOo9mj8lbqdORkCdP1aW65etRqA/SYNCPVcVoj+eJVK//A6kP17AMa2SNqY/fXom5iKPqD+UthuMyRurP6yD1Hqx360/YCsRIAhvsD9470fJEA2yP8VFnCKRy7M/mJl6XCWstT/ZNE1mZLC3Pwtr3afc2bk/veqZfhAqvD/KTFyCcqK+PzinJMswosA/o++3ZZIIwj/M9euN84TDP39n34LZF8U/i0XkB7fBxj9p7fYf6oLIP7208ce5W8o/v4lMtVNMzD+/JJ4fylTOPzJnts2IOtA/DJiShn9W0T9v46HdIn7SP4Ceb8M6sdM/W5fmqHzv1D+J/MbMijjWP67cAqfzi9c/Mr9jdTHp2D/Cka3sqU/aPywINxGuvts/OKalOXo13T8ATCQ+NrPeP3loA+t6G+A/Jmauktzf4D+6Er29NqbhPwxaeyH3beI/rUyMEYM24z8fZQQpOP/jP/40TAttx+Q/6BLhO3KO5T8KfbsLk1PmP/P41ZoWFuc/7XgE7EDV5z9B6wQJVJDoP47BbjSRRuk/Uh3qJjr36T+H++BUkqHqP1c7rjngROs/+50opW7g6z+UsEsIjnPsP+Wdrr2V/ew/K7RxSuV97T+SVE+U5fPtPwE0jAkKX+4/5FCdt9G+7j+HlX9NyBLvP6Fs7QaHWu8/vQbZfbWV7z9s+dVfCsTvP6FXaQVM5e8/mlqL6VD57z8AAAAAAADwP5pai+lQ+e8/oFdpBUzl7z9r+dVfCsTvP7wG2X21le8/oGztBoda7z+GlX9NyBLvP+NQnbfRvu4/ADSMCQpf7j+RVE+U5fPtPym0cUrlfe0/452uvZX97D+TsEsIjnPsP/mdKKVu4Os/VDuuOeBE6z+F++BUkqHqP1Ad6iY69+k/jMFuNJFG6T8/6wQJVJDoP+14BOxA1ec/8PjVmhYW5z8IfbsLk1PmP+gS4TtyjuU/+pHvgmyNfD+Yl7IKnzOAPxV5pMdUW4I/A+QjYr7DhD/iB2v6M3OHP++cwHiCcIo/bbPZku7CjT8o/GSVG7mQP4KOAHZLw5I/bIzZhGIElT8qkpSA+oCXP7cX86DqPZo/JW6nTkZAnT9WluuXrUagP0SDQj1XFaI/lyVSv/wOpD9ewDGtkjamP3d6JuYij6g/jbYbjMkbqz+sg9R6sd+tP2ArESAIb7A/c+9HyRANsj+9RZwikcuzP5iZelwlrLU/0zRNZmSwtz8Ca92n3Nm5P73qmX4QKrw/ykxcgnKivj80pyTLMKLAP5/vt2WSCMI/yvXrjfOEwz99Z9+C2RfFP4lF5Ae3wcY/Zu32H+qCyD+7tPHHuVvKP7yJTLVTTMw/uiSeH8pUzj8wZ7bNiDrQPwqYkoZ/VtE/buOh3SJ+0j99nm/DOrHTP1mX5qh879Q/hfzGzIo41j+r3AKn84vXPy+/Y3Ux6dg/wJGt7KlP2j8rCDcRrr7bPzampTl6Nd0/+0skPjaz3j93aAPrehvgPyVmrpLc3+A/uhK9vTam4T8JWnsh923iP6tMjBGDNuM/H2UEKTj/4z/7NEwLbcfkP+gS4TtyjuU/CH27C5NT5j/w+NWaFhbnP+14BOxA1ec/P+sECVSQ6D+OwW40kUbpP1Ad6iY69+k/h/vgVJKh6j9UO6454ETrP/mdKKVu4Os/lLBLCI5z7D/jna69lf3sPyu0cUrlfe0/kVRPlOXz7T8BNIwJCl/uP+NQnbfRvu4/hpV/TcgS7z+hbO0Gh1rvP7wG2X21le8/bPnVXwrE7z+gV2kFTOXvP5pai+lQ+e8/AAAAAAAA8D+aWovpUPnvP6BXaQVM5e8/bPnVXwrE7z+8Btl9tZXvP6Fs7QaHWu8/h5V/TcgS7z/jUJ230b7uPwE0jAkKX+4/kVRPlOXz7T8rtHFK5X3tP+Odrr2V/ew/lLBLCI5z7D/7nSilbuDrP1Q7rjngROs/h/vgVJKh6j9QHeomOvfpP47BbjSRRuk/QesECVSQ6D/teATsQNXnP/P41ZoWFuc/Cn27C5NT5j8xjXRmQR55PwGS74JsjXw/oZeyCp8zgD8VeaTHVFuCPw3kI2K+w4Q/5wdr+jNzhz/vnMB4gnCKP22z2ZLuwo0/LfxklRu5kD+JjgB2S8OSP2yM2YRiBJU/M5KUgPqAlz++F/Og6j2aPyVup05GQJ0/Vpbrl61GoD9Eg0I9VxWiP54lUr/8DqQ/XsAxrZI2pj99eibmIo+oP5S2G4zJG6s/rIPUerHfrT9gKxEgCG+wP3PvR8kQDbI/xUWcIpHLsz+YmXpcJay1P9k0TWZksLc/C2vdp9zZuT+96pl+ECq8P8pMXIJyor4/NKckyzCiwD+h77dlkgjCP8z1643zhMM/f2ffgtkXxT+LReQHt8HGP2nt9h/qgsg/vbTxx7lbyj+8iUy1U0zMP7wknh/KVM4/Mme2zYg60D8MmJKGf1bRP2/jod0iftI/gJ5vwzqx0z9Zl+aofO/UP4j8xsyKONY/rtwCp/OL1z8yv2N1MenYP8KRreypT9o/LAg3Ea6+2z82pqU5ejXdP/1LJD42s94/eWgD63ob4D8nZq6S3N/gP7oSvb02puE/CVp7Ifdt4j+tTIwRgzbjPx9lBCk4/+M//jRMC23H5D/oEuE7co7lPwh9uwuTU+Y/8/jVmhYW5z/teATsQNXnP0HrBAlUkOg/jsFuNJFG6T9SHeomOvfpP4f74FSSoeo/VDuuOeBE6z/7nSilbuDrP5SwSwiOc+w/5Z2uvZX97D8rtHFK5X3tP5JUT5Tl8+0/ATSMCQpf7j/jUJ230b7uP4eVf03IEu8/oWztBoda7z+9Btl9tZXvP2z51V8KxO8/oFdpBUzl7z+aWovpUPnvPwAAAAAAAPA/mlqL6VD57z+gV2kFTOXvP2v51V8KxO8/vAbZfbWV7z+hbO0Gh1rvP4aVf03IEu8/41Cdt9G+7j8ANIwJCl/uP5FUT5Tl8+0/KbRxSuV97T/jna69lf3sP5SwSwiOc+w/+Z0opW7g6z9UO6454ETrP4X74FSSoeo/UB3qJjr36T+OwW40kUbpPz/rBAlUkOg/7XgE7EDV5z/z+NWaFhbnPwMT/OyaD3Y/MY10ZkEeeT/6ke+CbI18P5iXsgqfM4A/FXmkx1Rbgj8D5CNivsOEP+IHa/ozc4c/75zAeIJwij9ts9mS7sKNPyj8ZJUbuZA/go4AdkvDkj9sjNmEYgSVPyqSlID6gJc/txfzoOo9mj8lbqdORkCdP1CW65etRqA/RINCPVcVoj+XJVK//A6kP17AMa2SNqY/d3om5iKPqD+NthuMyRurP6yD1Hqx360/WisRIAhvsD9z70fJEA2yP71FnCKRy7M/mJl6XCWstT/TNE1mZLC3PwJr3afc2bk/veqZfhAqvD/CTFyCcqK+PzCnJMswosA/n++3ZZIIwj/K9euN84TDP31n34LZF8U/iUXkB7fBxj9m7fYf6oLIP7i08ce5W8o/uolMtVNMzD+6JJ4fylTOPzBnts2IOtA/CpiShn9W0T9u46HdIn7SP3yeb8M6sdM/V5fmqHzv1D+F/MbMijjWP6vcAqfzi9c/L79jdTHp2D/Aka3sqU/aPygINxGuvts/NKalOXo13T/7SyQ+NrPeP3loA+t6G+A/JWauktzf4D+3Er29NqbhPwlaeyH3beI/q0yMEYM24z8fZQQpOP/jP/s0TAttx+Q/5RLhO3KO5T8IfbsLk1PmP/D41ZoWFuc/7XgE7EDV5z8/6wQJVJDoP47BbjSRRuk/UB3qJjr36T+F++BUkqHqP1Q7rjngROs/+Z0opW7g6z+UsEsIjnPsP+Odrr2V/ew/K7RxSuV97T+RVE+U5fPtPwA0jAkKX+4/41Cdt9G+7j+GlX9NyBLvP6Fs7QaHWu8/vAbZfbWV7z9r+dVfCsTvP6BXaQVM5e8/mlqL6VD57z8AAAAAAADwP5pai+lQ+e8/oFdpBUzl7z9s+dVfCsTvP70G2X21le8/oWztBoda7z+HlX9NyBLvP+NQnbfRvu4/ATSMCQpf7j+RVE+U5fPtPyu0cUrlfe0/5Z2uvZX97D+UsEsIjnPsP/udKKVu4Os/VDuuOeBE6z+H++BUkqHqP1Id6iY69+k/jsFuNJFG6T9B6wQJVJDoP+94BOxA1ec/ylq1jx9Ycz8DE/zsmg92PzGNdGZBHnk/+pHvgmyNfD+Yl7IKnzOAPxV5pMdUW4I/DeQjYr7DhD/nB2v6M3OHP++cwHiCcIo/bbPZku7CjT8o/GSVG7mQP4KOAHZLw5I/bIzZhGIElT8zkpSA+oCXP74X86DqPZo/JW6nTkZAnT9WluuXrUagP0SDQj1XFaI/lyVSv/wOpD9ewDGtkjamP316JuYij6g/lLYbjMkbqz+sg9R6sd+tP2ArESAIb7A/c+9HyRANsj+9RZwikcuzP5iZelwlrLU/2TRNZmSwtz8La92n3Nm5P73qmX4QKrw/ykxcgnKivj80pyTLMKLAP6Hvt2WSCMI/zPXrjfOEwz9/Z9+C2RfFP4tF5Ae3wcY/Zu32H+qCyD+7tPHHuVvKP7yJTLVTTMw/vCSeH8pUzj8yZ7bNiDrQPwyYkoZ/VtE/buOh3SJ+0j99nm/DOrHTP1mX5qh879Q/iPzGzIo41j+u3AKn84vXPzK/Y3Ux6dg/wJGt7KlP2j8rCDcRrr7bPzampTl6Nd0/AEwkPjaz3j95aAPrehvgPyVmrpLc3+A/uhK9vTam4T8JWnsh923iP61MjBGDNuM/H2UEKTj/4z/7NEwLbcfkP+gS4TtyjuU/CH27C5NT5j/z+NWaFhbnP+14BOxA1ec/QesECVSQ6D+OwW40kUbpP1Ad6iY69+k/h/vgVJKh6j9UO6454ETrP/udKKVu4Os/lLBLCI5z7D/lna69lf3sPyu0cUrlfe0/kVRPlOXz7T8BNIwJCl/uP+NQnbfRvu4/h5V/TcgS7z+hbO0Gh1rvP7wG2X21le8/bPnVXwrE7z+gV2kFTOXvP5pai+lQ+e8/AAAAAAAA8D+aWovpUPnvP6BXaQVM5e8/bPnVXwrE7z+8Btl9tZXvP6Fs7QaHWu8/hpV/TcgS7z/jUJ230b7uPwA0jAkKX+4/kVRPlOXz7T8rtHFK5X3tP+Odrr2V/ew/lLBLCI5z7D/5nSilbuDrP1Q7rjngROs/h/vgVJKh6j9QHeomOvfpP47BbjSRRuk/QesECVSQ6D9i8hVaNO9wP8VatY8fWHM/AxP87JoPdj8kjXRmQR55P+uR74JsjXw/mJeyCp8zgD8VeaTHVFuCPwPkI2K+w4Q/4gdr+jNzhz/vnMB4gnCKP16z2ZLuwo0/IPxklRu5kD+CjgB2S8OSP2yM2YRiBJU/KpKUgPqAlz+3F/Og6j2aPyVup05GQJ0/UJbrl61GoD89g0I9VxWiP5clUr/8DqQ/XsAxrZI2pj93eibmIo+oP422G4zJG6s/rIPUerHfrT9aKxEgCG+wP2/vR8kQDbI/vUWcIpHLsz+YmXpcJay1P9M0TWZksLc/Amvdp9zZuT+96pl+ECq8P8JMXIJyor4/MKckyzCiwD+f77dlkgjCP8r1643zhMM/fWffgtkXxT+GReQHt8HGP2Pt9h/qgsg/uLTxx7lbyj+6iUy1U0zMP7oknh/KVM4/MGe2zYg60D8JmJKGf1bRP2zjod0iftI/fJ5vwzqx0z9Xl+aofO/UP4X8xsyKONY/q9wCp/OL1z8tv2N1MenYP76RreypT9o/KAg3Ea6+2z82pqU5ejXdP/tLJD42s94/dmgD63ob4D8lZq6S3N/gP7cSvb02puE/CVp7Ifdt4j+rTIwRgzbjPx1lBCk4/+M/+zRMC23H5D/lEuE7co7lPwh9uwuTU+Y/8PjVmhYW5z/teATsQNXnPz/rBAlUkOg/jMFuNJFG6T9QHeomOvfpP4X74FSSoeo/VDuuOeBE6z/5nSilbuDrP5SwSwiOc+w/452uvZX97D8ptHFK5X3tP5FUT5Tl8+0/ADSMCQpf7j/jUJ230b7uP4aVf03IEu8/oGztBoda7z+8Btl9tZXvP2v51V8KxO8/oFdpBUzl7z+aWovpUPnvPwAAAAAAAPA/mlqL6VD57z+hV2kFTOXvP2z51V8KxO8/vQbZfbWV7z+hbO0Gh1rvP4eVf03IEu8/41Cdt9G+7j8BNIwJCl/uP5JUT5Tl8+0/K7RxSuV97T/lna69lf3sP5SwSwiOc+w/+50opW7g6z9XO6454ETrP4f74FSSoeo/Uh3qJjr36T+RwW40kUbpPyuRstflmW0/a/IVWjTvcD/KWrWPH1hzPwMT/OyaD3Y/MY10ZkEeeT/6ke+CbI18P5iXsgqfM4A/FXmkx1Rbgj8N5CNivsOEP+cHa/ozc4c/75zAeIJwij9ts9mS7sKNPyj8ZJUbuZA/go4AdkvDkj9sjNmEYgSVPyqSlID6gJc/vhfzoOo9mj8lbqdORkCdP1aW65etRqA/RINCPVcVoj+XJVK//A6kP17AMa2SNqY/d3om5iKPqD+UthuMyRurP6yD1Hqx360/YCsRIAhvsD9z70fJEA2yP71FnCKRy7M/mJl6XCWstT/TNE1mZLC3PwJr3afc2bk/veqZfhAqvD/KTFyCcqK+PzSnJMswosA/oe+3ZZIIwj/M9euN84TDP31n34LZF8U/iUXkB7fBxj9m7fYf6oLIP7u08ce5W8o/vIlMtVNMzD+8JJ4fylTOPzBnts2IOtA/CpiShn9W0T9u46HdIn7SP32eb8M6sdM/WZfmqHzv1D+I/MbMijjWP6vcAqfzi9c/L79jdTHp2D/Aka3sqU/aPywINxGuvts/NqalOXo13T/7SyQ+NrPeP3loA+t6G+A/JWauktzf4D+6Er29NqbhPwlaeyH3beI/q0yMEYM24z8fZQQpOP/jP/s0TAttx+Q/6BLhO3KO5T8IfbsLk1PmP/P41ZoWFuc/7XgE7EDV5z8/6wQJVJDoP47BbjSRRuk/UB3qJjr36T+H++BUkqHqP1Q7rjngROs/+50opW7g6z+UsEsIjnPsP+Odrr2V/ew/K7RxSuV97T+RVE+U5fPtPwE0jAkKX+4/41Cdt9G+7j+GlX9NyBLvP6Fs7QaHWu8/vAbZfbWV7z9s+dVfCsTvP6BXaQVM5e8/mlqL6VD57z8AAAAAAADwP5pai+lQ+e8/oFdpBUzl7z9s+dVfCsTvP7wG2X21le8/oWztBoda7z+GlX9NyBLvP+NQnbfRvu4/ATSMCQpf7j+RVE+U5fPtPyu0cUrlfe0/452uvZX97D+UsEsIjnPsP/udKKVu4Os/VDuuOeBE6z+H++BUkqHqP1Id6iY69+k/autlrT7UaT8rkbLX5ZltP2vyFVo073A/ylq1jx9Ycz8DE/zsmg92PzGNdGZBHnk/AZLvgmyNfD+hl7IKnzOAPxV5pMdUW4I/DeQjYr7DhD/nB2v6M3OHP++cwHiCcIo/bbPZku7CjT8t/GSVG7mQP4mOAHZLw5I/bIzZhGIElT8zkpSA+oCXP74X86DqPZo/JW6nTkZAnT9WluuXrUagP0mDQj1XFaI/niVSv/wOpD9ewDGtkjamP316JuYij6g/lLYbjMkbqz+sg9R6sd+tP2ArESAIb7A/eO9HyRANsj/FRZwikcuzP5iZelwlrLU/2TRNZmSwtz8La92n3Nm5P73qmX4QKrw/ykxcgnKivj84pyTLMKLAP6Pvt2WSCMI/zPXrjfOEwz9/Z9+C2RfFP4tF5Ae3wcY/ae32H+qCyD+9tPHHuVvKP7+JTLVTTMw/vCSeH8pUzj8yZ7bNiDrQPwyYkoZ/VtE/b+Oh3SJ+0j+Anm/DOrHTP1uX5qh879Q/iPzGzIo41j+u3AKn84vXPzK/Y3Ux6dg/xZGt7KlP2j8sCDcRrr7bPzampTl6Nd0/AEwkPjaz3j95aAPrehvgPydmrpLc3+A/uhK9vTam4T8JWnsh923iP61MjBGDNuM/H2UEKTj/4z/+NEwLbcfkP+gS4TtyjuU/Cn27C5NT5j/z+NWaFhbnP+14BOxA1ec/QesECVSQ6D+OwW40kUbpP1Id6iY69+k/h/vgVJKh6j9XO6454ETrP/udKKVu4Os/lLBLCI5z7D/lna69lf3sPyu0cUrlfe0/klRPlOXz7T8BNIwJCl/uP+NQnbfRvu4/h5V/TcgS7z+hbO0Gh1rvP70G2X21le8/bPnVXwrE7z+hV2kFTOXvP5pai+lQ+e8/AAAAAAAA8D+aWovpUPnvP6BXaQVM5e8/a/nVXwrE7z+8Btl9tZXvP6Bs7QaHWu8/hpV/TcgS7z/jUJ230b7uPwA0jAkKX+4/kVRPlOXz7T8ptHFK5X3tP+Odrr2V/ew/lLBLCI5z7D/5nSilbuDrP1Q7rjngROs/h/vgVJKh6j8eaPLnO4BmP2TrZa0+1Gk/K5Gy1+WZbT9i8hVaNO9wP8VatY8fWHM/AxP87JoPdj8xjXRmQR55P/qR74JsjXw/mJeyCp8zgD8VeaTHVFuCPwPkI2K+w4Q/4gdr+jNzhz/vnMB4gnCKP22z2ZLuwo0/KPxklRu5kD+CjgB2S8OSP2yM2YRiBJU/KpKUgPqAlz+3F/Og6j2aPyVup05GQJ0/Vpbrl61GoD9Eg0I9VxWiP5clUr/8DqQ/XsAxrZI2pj93eibmIo+oP422G4zJG6s/rIPUerHfrT9gKxEgCG+wP3PvR8kQDbI/vUWcIpHLsz+YmXpcJay1P9M0TWZksLc/Amvdp9zZuT+96pl+ECq8P8pMXIJyor4/NKckyzCiwD+f77dlkgjCP8r1643zhMM/fWffgtkXxT+JReQHt8HGP2bt9h/qgsg/u7Txx7lbyj+6iUy1U0zMP7oknh/KVM4/MGe2zYg60D8KmJKGf1bRP27jod0iftI/fZ5vwzqx0z9Xl+aofO/UP4X8xsyKONY/q9wCp/OL1z8yv2N1MenYP8CRreypT9o/KAg3Ea6+2z82pqU5ejXdP/tLJD42s94/eWgD63ob4D8lZq6S3N/gP7cSvb02puE/CVp7Ifdt4j+rTIwRgzbjPx9lBCk4/+M/+zRMC23H5D/oEuE7co7lPwh9uwuTU+Y/8PjVmhYW5z/teATsQNXnPz/rBAlUkOg/jsFuNJFG6T9QHeomOvfpP4f74FSSoeo/VDuuOeBE6z/5nSilbuDrP5SwSwiOc+w/452uvZX97D8rtHFK5X3tP5FUT5Tl8+0/ADSMCQpf7j/jUJ230b7uP4aVf03IEu8/oWztBoda7z+8Btl9tZXvP2z51V8KxO8/oFdpBUzl7z+aWovpUPnvPwAAAAAAAPA/mlqL6VD57z+gV2kFTOXvP2z51V8KxO8/vAbZfbWV7z+hbO0Gh1rvP4eVf03IEu8/41Cdt9G+7j8BNIwJCl/uP5FUT5Tl8+0/K7RxSuV97T/lna69lf3sP5SwSwiOc+w/+50opW7g6z9XO6454ETrP3XfMZbSkWM/KWjy5zuAZj9q62WtPtRpPyuRstflmW0/a/IVWjTvcD/KWrWPH1hzPwMT/OyaD3Y/MY10ZkEeeT8Bku+CbI18P6GXsgqfM4A/FXmkx1Rbgj8N5CNivsOEP+cHa/ozc4c/75zAeIJwij9ts9mS7sKNPyj8ZJUbuZA/iY4AdkvDkj9sjNmEYgSVPzOSlID6gJc/vhfzoOo9mj8lbqdORkCdP1aW65etRqA/RINCPVcVoj+eJVK//A6kP17AMa2SNqY/fXom5iKPqD+UthuMyRurP6yD1Hqx360/YCsRIAhvsD9z70fJEA2yP71FnCKRy7M/mJl6XCWstT/ZNE1mZLC3Pwtr3afc2bk/veqZfhAqvD/KTFyCcqK+PzSnJMswosA/oe+3ZZIIwj/M9euN84TDP39n34LZF8U/i0XkB7fBxj9p7fYf6oLIP7u08ce5W8o/vIlMtVNMzD+8JJ4fylTOPzJnts2IOtA/DJiShn9W0T9v46HdIn7SP32eb8M6sdM/WZfmqHzv1D+I/MbMijjWP7DcAqfzi9c/Mr9jdTHp2D/Aka3sqU/aPywINxGuvts/NqalOXo13T8ATCQ+NrPeP3loA+t6G+A/JWauktzf4D+6Er29NqbhPwlaeyH3beI/rUyMEYM24z8fZQQpOP/jP/40TAttx+Q/6BLhO3KO5T8IfbsLk1PmP/P41ZoWFuc/7XgE7EDV5z9B6wQJVJDoP47BbjSRRuk/Uh3qJjr36T+H++BUkqHqP1Q7rjngROs/+50opW7g6z+UsEsIjnPsP+Wdrr2V/ew/K7RxSuV97T+RVE+U5fPtPwE0jAkKX+4/41Cdt9G+7j+HlX9NyBLvP6Fs7QaHWu8/vQbZfbWV7z9s+dVfCsTvP6BXaQVM5e8/mlqL6VD57z8AAAAAAADwP5pai+lQ+e8/oFdpBUzl7z9r+dVfCsTvP7wG2X21le8/oWztBoda7z+GlX9NyBLvP+NQnbfRvu4/ADSMCQpf7j+RVE+U5fPtPyu0cUrlfe0/452uvZX97D+UsEsIjnPsP/udKKVu4Os/nz+lPBD+YD913zGW0pFjPx5o8uc7gGY/ZOtlrT7UaT8rkbLX5ZltP2LyFVo073A/xVq1jx9Ycz8DE/zsmg92PzGNdGZBHnk/+pHvgmyNfD+Yl7IKnzOAPxV5pMdUW4I/A+QjYr7DhD/iB2v6M3OHP++cwHiCcIo/XrPZku7CjT8o/GSVG7mQP4KOAHZLw5I/bIzZhGIElT8qkpSA+oCXP7cX86DqPZo/JW6nTkZAnT9QluuXrUagP0SDQj1XFaI/lyVSv/wOpD9ewDGtkjamP3d6JuYij6g/jbYbjMkbqz+sg9R6sd+tP1orESAIb7A/b+9HyRANsj+9RZwikcuzP5iZelwlrLU/0zRNZmSwtz8Ca92n3Nm5P73qmX4QKrw/wkxcgnKivj8wpyTLMKLAP5/vt2WSCMI/yvXrjfOEwz99Z9+C2RfFP4lF5Ae3wcY/Y+32H+qCyD+4tPHHuVvKP7qJTLVTTMw/uiSeH8pUzj8wZ7bNiDrQPwqYkoZ/VtE/bOOh3SJ+0j98nm/DOrHTP1eX5qh879Q/iPzGzIo41j+r3AKn84vXPy2/Y3Ux6dg/wJGt7KlP2j8oCDcRrr7bPzampTl6Nd0/+0skPjaz3j92aAPrehvgPyVmrpLc3+A/txK9vTam4T8JWnsh923iP6tMjBGDNuM/H2UEKTj/4z/7NEwLbcfkP+US4TtyjuU/CH27C5NT5j/w+NWaFhbnP+14BOxA1ec/P+sECVSQ6D+OwW40kUbpP1Ad6iY69+k/hfvgVJKh6j9UO6454ETrP/mdKKVu4Os/lLBLCI5z7D/jna69lf3sPym0cUrlfe0/kVRPlOXz7T8ANIwJCl/uP+NQnbfRvu4/hpV/TcgS7z+hbO0Gh1rvP7wG2X21le8/a/nVXwrE7z+gV2kFTOXvP5pai+lQ+e8/AAAAAAAA8D+aWovpUPnvP6BXaQVM5e8/bPnVXwrE7z+9Btl9tZXvP6Fs7QaHWu8/h5V/TcgS7z/jUJ230b7uPwE0jAkKX+4/klRPlOXz7T8rtHFK5X3tP+Wdrr2V/ew/lrBLCI5z7D9EW1jADnZdP58/pTwQ/mA/dd8xltKRYz8eaPLnO4BmP2TrZa0+1Gk/K5Gy1+WZbT9r8hVaNO9wP8patY8fWHM/AxP87JoPdj8xjXRmQR55P/qR74JsjXw/mJeyCp8zgD8VeaTHVFuCPw3kI2K+w4Q/5wdr+jNzhz/vnMB4gnCKP22z2ZLuwo0/KPxklRu5kD+CjgB2S8OSP2yM2YRiBJU/M5KUgPqAlz++F/Og6j2aPyVup05GQJ0/Vpbrl61GoD9Eg0I9VxWiP5clUr/8DqQ/XsAxrZI2pj99eibmIo+oP5S2G4zJG6s/rIPUerHfrT9gKxEgCG+wP3PvR8kQDbI/vUWcIpHLsz+YmXpcJay1P9k0TWZksLc/C2vdp9zZuT+96pl+ECq8P8pMXIJyor4/NKckyzCiwD+h77dlkgjCP8z1643zhMM/f2ffgtkXxT+JReQHt8HGP2bt9h/qgsg/u7Txx7lbyj+8iUy1U0zMP7wknh/KVM4/Mme2zYg60D8KmJKGf1bRP27jod0iftI/fZ5vwzqx0z9bl+aofO/UP4j8xsyKONY/q9wCp/OL1z8yv2N1MenYP8CRreypT9o/LAg3Ea6+2z82pqU5ejXdP/tLJD42s94/eWgD63ob4D8lZq6S3N/gP7oSvb02puE/CVp7Ifdt4j+tTIwRgzbjPx9lBCk4/+M/+zRMC23H5D/oEuE7co7lPwh9uwuTU+Y/8/jVmhYW5z/teATsQNXnP0HrBAlUkOg/jsFuNJFG6T9QHeomOvfpP4f74FSSoeo/VDuuOeBE6z/7nSilbuDrP5SwSwiOc+w/452uvZX97D8rtHFK5X3tP5FUT5Tl8+0/ATSMCQpf7j/jUJ230b7uP4eVf03IEu8/oWztBoda7z+8Btl9tZXvP2z51V8KxO8/oFdpBUzl7z+aWovpUPnvPwAAAAAAAPA/mlqL6VD57z+gV2kFTOXvP2z51V8KxO8/vAbZfbWV7z+hbO0Gh1rvP4aVf03IEu8/41Cdt9G+7j8BNIwJCl/uP5FUT5Tl8+0/K7RxSuV97T/lna69lf3sP5XQZUF5f1k/NVtYwA52XT+fP6U8EP5gP3DfMZbSkWM/Emjy5zuAZj9k62WtPtRpPyuRstflmW0/YvIVWjTvcD/FWrWPH1hzPwMT/OyaD3Y/JI10ZkEeeT/rke+CbI18P5iXsgqfM4A/FXmkx1Rbgj8D5CNivsOEP+IHa/ozc4c/75zAeIJwij9es9mS7sKNPyD8ZJUbuZA/go4AdkvDkj9sjNmEYgSVPyqSlID6gJc/txfzoOo9mj8lbqdORkCdP1CW65etRqA/PYNCPVcVoj+XJVK//A6kP17AMa2SNqY/d3om5iKPqD+NthuMyRurP6yD1Hqx360/WisRIAhvsD9v70fJEA2yP71FnCKRy7M/mJl6XCWstT/TNE1mZLC3PwJr3afc2bk/veqZfhAqvD/CTFyCcqK+PzCnJMswosA/n++3ZZIIwj/K9euN84TDP3pn34LZF8U/hkXkB7fBxj9j7fYf6oLIP7i08ce5W8o/uolMtVNMzD+6JJ4fylTOPy5nts2IOtA/CZiShn9W0T9s46HdIn7SP32eb8M6sdM/V5fmqHzv1D+E/MbMijjWP6vcAqfzi9c/Lb9jdTHp2D/Aka3sqU/aPygINxGuvts/MqalOXo13T/7SyQ+NrPeP3ZoA+t6G+A/JWauktzf4D+3Er29NqbhPwlaeyH3beI/q0yMEYM24z8dZQQpOP/jP/s0TAttx+Q/5RLhO3KO5T8IfbsLk1PmP/D41ZoWFuc/7XgE7EDV5z8/6wQJVJDoP4zBbjSRRuk/UB3qJjr36T+F++BUkqHqP1Q7rjngROs/+Z0opW7g6z+TsEsIjnPsP+Odrr2V/ew/KbRxSuV97T+RVE+U5fPtPwA0jAkKX+4/41Cdt9G+7j+GlX9NyBLvP6Bs7QaHWu8/vAbZfbWV7z9r+dVfCsTvP6BXaQVM5e8/mlqL6VD57z8AAAAAAADwP5pai+lQ+e8/oVdpBUzl7z9s+dVfCsTvP70G2X21le8/oWztBoda7z+HlX9NyBLvP+RQnbfRvu4/ATSMCQpf7j+SVE+U5fPtPyy0cUrlfe0/2tcC+igIVj+i0GVBeX9ZP0RbWMAOdl0/nz+lPBD+YD913zGW0pFjPx5o8uc7gGY/ZOtlrT7UaT8rkbLX5ZltP2vyFVo073A/ylq1jx9Ycz8DE/zsmg92PzGNdGZBHnk/+pHvgmyNfD+Yl7IKnzOAPxV5pMdUW4I/A+QjYr7DhD/nB2v6M3OHP++cwHiCcIo/bbPZku7CjT8o/GSVG7mQP4KOAHZLw5I/bIzZhGIElT8qkpSA+oCXP74X86DqPZo/JW6nTkZAnT9WluuXrUagP0SDQj1XFaI/lyVSv/wOpD9ewDGtkjamP3d6JuYij6g/jbYbjMkbqz+sg9R6sd+tP2ArESAIb7A/c+9HyRANsj+9RZwikcuzP5iZelwlrLU/0zRNZmSwtz8Ca92n3Nm5P73qmX4QKrw/ykxcgnKivj80pyTLMKLAP6Hvt2WSCMI/yvXrjfOEwz99Z9+C2RfFP4lF5Ae3wcY/Zu32H+qCyD+7tPHHuVvKP7yJTLVTTMw/uiSeH8pUzj8wZ7bNiDrQPwqYkoZ/VtE/b+Oh3SJ+0j99nm/DOrHTP1eX5qh879Q/iPzGzIo41j+r3AKn84vXPzK/Y3Ux6dg/wJGt7KlP2j8oCDcRrr7bPzampTl6Nd0/+0skPjaz3j95aAPrehvgPyVmrpLc3+A/uhK9vTam4T8JWnsh923iP6tMjBGDNuM/H2UEKTj/4z/7NEwLbcfkP+gS4TtyjuU/CH27C5NT5j/z+NWaFhbnP+14BOxA1ec/P+sECVSQ6D+OwW40kUbpP1Ad6iY69+k/h/vgVJKh6j9UO6454ETrP/mdKKVu4Os/lLBLCI5z7D/jna69lf3sPyu0cUrlfe0/kVRPlOXz7T8BNIwJCl/uP+NQnbfRvu4/hpV/TcgS7z+hbO0Gh1rvP7wG2X21le8/bPnVXwrE7z+gV2kFTOXvP5pai+lQ+e8/AAAAAAAA8D+aWovpUPnvP6BXaQVM5e8/bPnVXwrE7z+8Btl9tZXvP6Fs7QaHWu8/h5V/TcgS7z/jUJ230b7uPwE0jAkKX+4/klRPlOXz7T8lX2yngwFTP9rXAvooCFY/otBlQXl/WT9EW1jADnZdP58/pTwQ/mA/dd8xltKRYz8paPLnO4BmP2rrZa0+1Gk/K5Gy1+WZbT9r8hVaNO9wP8patY8fWHM/AxP87JoPdj8xjXRmQR55PwGS74JsjXw/oZeyCp8zgD8VeaTHVFuCPw3kI2K+w4Q/5wdr+jNzhz/vnMB4gnCKP22z2ZLuwo0/LfxklRu5kD+JjgB2S8OSP2yM2YRiBJU/M5KUgPqAlz++F/Og6j2aPyVup05GQJ0/Vpbrl61GoD9Jg0I9VxWiP54lUr/8DqQ/XsAxrZI2pj99eibmIo+oP5S2G4zJG6s/rIPUerHfrT9gKxEgCG+wP3jvR8kQDbI/xUWcIpHLsz+YmXpcJay1P9k0TWZksLc/C2vdp9zZuT+96pl+ECq8P8pMXIJyor4/OKckyzCiwD+h77dlkgjCP8z1643zhMM/f2ffgtkXxT+LReQHt8HGP2nt9h/qgsg/vbTxx7lbyj+8iUy1U0zMP7wknh/KVM4/Mme2zYg60D8OmJKGf1bRP2/jod0iftI/fZ5vwzqx0z9bl+aofO/UP4j8xsyKONY/sNwCp/OL1z8yv2N1MenYP8CRreypT9o/LAg3Ea6+2z82pqU5ejXdPwBMJD42s94/eWgD63ob4D8nZq6S3N/gP7oSvb02puE/CVp7Ifdt4j+tTIwRgzbjPx9lBCk4/+M//jRMC23H5D/oEuE7co7lPwp9uwuTU+Y/8/jVmhYW5z/teATsQNXnP0HrBAlUkOg/jsFuNJFG6T9SHeomOvfpP4f74FSSoeo/VDuuOeBE6z/7nSilbuDrP5SwSwiOc+w/5Z2uvZX97D8rtHFK5X3tP5JUT5Tl8+0/ATSMCQpf7j/jUJ230b7uP4eVf03IEu8/oWztBoda7z+9Btl9tZXvP2z51V8KxO8/oVdpBUzl7z+aWovpUPnvPwAAAAAAAPA/mlqL6VD57z+gV2kFTOXvP2v51V8KxO8/vAbZfbWV7z+hbO0Gh1rvP4aVf03IEu8/41Cdt9G+7j8BNIwJCl/uP9vijGFqXlA/HF9sp4MBUz/a1wL6KAhWP5XQZUF5f1k/NVtYwA52XT+fP6U8EP5gP3XfMZbSkWM/Hmjy5zuAZj9k62WtPtRpPyuRstflmW0/YvIVWjTvcD/FWrWPH1hzPwMT/OyaD3Y/MY10ZkEeeT/6ke+CbI18P5iXsgqfM4A/FXmkx1Rbgj8D5CNivsOEP+IHa/ozc4c/75zAeIJwij9ts9mS7sKNPyj8ZJUbuZA/go4AdkvDkj9sjNmEYgSVPyqSlID6gJc/txfzoOo9mj8lbqdORkCdP1aW65etRqA/RINCPVcVoj+XJVK//A6kP17AMa2SNqY/d3om5iKPqD+NthuMyRurP6yD1Hqx360/YCsRIAhvsD9z70fJEA2yP71FnCKRy7M/mJl6XCWstT/TNE1mZLC3PwJr3afc2bk/veqZfhAqvD/KTFyCcqK+PzCnJMswosA/n++3ZZIIwj/K9euN84TDP31n34LZF8U/iUXkB7fBxj9m7fYf6oLIP7i08ce5W8o/uolMtVNMzD+6JJ4fylTOPzJnts2IOtA/CpiShn9W0T9s46HdIn7SP32eb8M6sdM/V5fmqHzv1D+I/MbMijjWP6vcAqfzi9c/Lb9jdTHp2D/Aka3sqU/aPygINxGuvts/NqalOXo13T/7SyQ+NrPeP3loA+t6G+A/JWauktzf4D+3Er29NqbhPwlaeyH3beI/q0yMEYM24z8fZQQpOP/jP/s0TAttx+Q/6BLhO3KO5T8IfbsLk1PmP/D41ZoWFuc/7XgE7EDV5z8/6wQJVJDoP47BbjSRRuk/UB3qJjr36T+F++BUkqHqP1Q7rjngROs/+Z0opW7g6z+UsEsIjnPsP+Odrr2V/ew/K7RxSuV97T+RVE+U5fPtPwA0jAkKX+4/41Cdt9G+7j+GlX9NyBLvP6Fs7QaHWu8/vAbZfbWV7z9s+dVfCsTvP6BXaQVM5e8/mlqL6VD57z8AAAAAAADwP5pai+lQ+e8/oFdpBUzl7z9s+dVfCsTvP70G2X21le8/oWztBoda7z+HlX9NyBLvP+RQnbfRvu4/DRV9yjMmTD/j4oxhal5QPyVfbKeDAVM/2tcC+igIVj+i0GVBeX9ZP0RbWMAOdl0/nz+lPBD+YD913zGW0pFjPylo8uc7gGY/autlrT7UaT8rkbLX5ZltP2vyFVo073A/ylq1jx9Ycz8DE/zsmg92PzGNdGZBHnk/+pHvgmyNfD+hl7IKnzOAPxV5pMdUW4I/DeQjYr7DhD/nB2v6M3OHP++cwHiCcIo/bbPZku7CjT8o/GSVG7mQP4mOAHZLw5I/bIzZhGIElT8zkpSA+oCXP74X86DqPZo/JW6nTkZAnT9WluuXrUagP0SDQj1XFaI/lyVSv/wOpD9ewDGtkjamP316JuYij6g/lLYbjMkbqz+sg9R6sd+tP2ArESAIb7A/c+9HyRANsj+9RZwikcuzP5iZelwlrLU/2TRNZmSwtz8La92n3Nm5P73qmX4QKrw/ykxcgnKivj80pyTLMKLAP6Hvt2WSCMI/zPXrjfOEwz9/Z9+C2RfFP4tF5Ae3wcY/Zu32H+qCyD+7tPHHuVvKP7yJTLVTTMw/vySeH8pUzj8yZ7bNiDrQPwqYkoZ/VtE/b+Oh3SJ+0j99nm/DOrHTP1uX5qh879Q/iPzGzIo41j+r3AKn84vXPzK/Y3Ux6dg/wJGt7KlP2j8sCDcRrr7bPzampTl6Nd0/AEwkPjaz3j95aAPrehvgPyVmrpLc3+A/uhK9vTam4T8JWnsh923iP61MjBGDNuM/H2UEKTj/4z/+NEwLbcfkP+gS4TtyjuU/CH27C5NT5j/z+NWaFhbnP+14BOxA1ec/QesECVSQ6D+OwW40kUbpP1Ad6iY69+k/h/vgVJKh6j9UO6454ETrP/udKKVu4Os/lLBLCI5z7D/lna69lf3sPyu0cUrlfe0/kVRPlOXz7T8BNIwJCl/uP+NQnbfRvu4/h5V/TcgS7z+hbO0Gh1rvP70G2X21le8/bPnVXwrE7z+gV2kFTOXvP5pai+lQ+e8/AAAAAAAA8D+aWovpUPnvP6BXaQVM5e8/bPnVXwrE7z+8Btl9tZXvP6Fs7QaHWu8/h5V/TcgS7z8FydM4GSpIPw0VfcozJkw/2+KMYWpeUD8cX2yngwFTP9rXAvooCFY/ldBlQXl/WT81W1jADnZdP58/pTwQ/mA/dd8xltKRYz8eaPLnO4BmP2TrZa0+1Gk/K5Gy1+WZbT9i8hVaNO9wP8VatY8fWHM/AxP87JoPdj8kjXRmQR55P/qR74JsjXw/mJeyCp8zgD8VeaTHVFuCPwPkI2K+w4Q/4gdr+jNzhz/vnMB4gnCKP16z2ZLuwo0/KPxklRu5kD+CjgB2S8OSP2yM2YRiBJU/KpKUgPqAlz+3F/Og6j2aPyVup05GQJ0/UJbrl61GoD89g0I9VxWiP5clUr/8DqQ/XsAxrZI2pj93eibmIo+oP422G4zJG6s/rIPUerHfrT9aKxEgCG+wP2/vR8kQDbI/vUWcIpHLsz+YmXpcJay1P9M0TWZksLc/Amvdp9zZuT+96pl+ECq8P8JMXIJyor4/MKckyzCiwD+f77dlkgjCP8r1643zhMM/fWffgtkXxT+GReQHt8HGP2Pt9h/qgsg/uLTxx7lbyj+8iUy1U0zMP7oknh/KVM4/Lme2zYg60D8KmJKGf1bRP2zjod0iftI/fZ5vwzqx0z9Xl+aofO/UP4T8xsyKONY/q9wCp/OL1z8tv2N1MenYP8CRreypT9o/KAg3Ea6+2z82pqU5ejXdP/tLJD42s94/dmgD63ob4D8lZq6S3N/gP7cSvb02puE/CVp7Ifdt4j+rTIwRgzbjPx9lBCk4/+M/+zRMC23H5D/lEuE7co7lPwh9uwuTU+Y/8PjVmhYW5z/teATsQNXnPz/rBAlUkOg/jMFuNJFG6T9QHeomOvfpP4X74FSSoeo/VDuuOeBE6z/5nSilbuDrP5SwSwiOc+w/452uvZX97D8ptHFK5X3tP5FUT5Tl8+0/ADSMCQpf7j/jUJ230b7uP4aVf03IEu8/oWztBoda7z+8Btl9tZXvP2v51V8KxO8/oFdpBUzl7z+aWovpUPnvPwAAAAAAAPA/mlqL6VD57z+hV2kFTOXvP2z51V8KxO8/vQbZfbWV7z+ibO0Gh1rvP4vmvde8tUQ/BcnTOBkqSD8NFX3KMyZMP9vijGFqXlA/HF9sp4MBUz/a1wL6KAhWP6LQZUF5f1k/RFtYwA52XT+fP6U8EP5gP3XfMZbSkWM/Hmjy5zuAZj9k62WtPtRpPyuRstflmW0/a/IVWjTvcD/KWrWPH1hzPwMT/OyaD3Y/MY10ZkEeeT/6ke+CbI18P5iXsgqfM4A/FXmkx1Rbgj8N5CNivsOEP+cHa/ozc4c/75zAeIJwij9ts9mS7sKNPyj8ZJUbuZA/go4AdkvDkj9sjNmEYgSVPzOSlID6gJc/vhfzoOo9mj8lbqdORkCdP1aW65etRqA/RINCPVcVoj+XJVK//A6kP17AMa2SNqY/fXom5iKPqD+UthuMyRurP6yD1Hqx360/YCsRIAhvsD9z70fJEA2yP71FnCKRy7M/mJl6XCWstT/ZNE1mZLC3PwJr3afc2bk/veqZfhAqvD/KTFyCcqK+PzSnJMswosA/oe+3ZZIIwj/M9euN84TDP31n34LZF8U/iUXkB7fBxj9m7fYf6oLIP7208ce5W8o/vIlMtVNMzD+6JJ4fylTOPzJnts2IOtA/CpiShn9W0T9v46HdIn7SP32eb8M6sdM/V5fmqHzv1D+I/MbMijjWP6vcAqfzi9c/Mr9jdTHp2D/Aka3sqU/aPywINxGuvts/NqalOXo13T/7SyQ+NrPeP3loA+t6G+A/JWauktzf4D+6Er29NqbhPwlaeyH3beI/rUyMEYM24z8fZQQpOP/jP/s0TAttx+Q/6BLhO3KO5T8IfbsLk1PmP/P41ZoWFuc/7XgE7EDV5z8/6wQJVJDoP47BbjSRRuk/UB3qJjr36T+H++BUkqHqP1Q7rjngROs/+50opW7g6z+UsEsIjnPsP+Odrr2V/ew/K7RxSuV97T+RVE+U5fPtPwE0jAkKX+4/41Cdt9G+7j+HlX9NyBLvP6Fs7QaHWu8/vAbZfbWV7z9s+dVfCsTvP6BXaQVM5e8/mlqL6VD57z8AAAAAAADwP5pai+lQ+e8/oFdpBUzl7z9s+dVfCsTvP70G2X21le8/qTy/kWS4QT+V5r3XvLVEPxHJ0zgZKkg/DRV9yjMmTD/j4oxhal5QPyVfbKeDAVM/2tcC+igIVj+i0GVBeX9ZP0xbWMAOdl0/pz+lPBD+YD913zGW0pFjPylo8uc7gGY/autlrT7UaT8rkbLX5ZltP2vyFVo073A/ylq1jx9Ycz8OE/zsmg92PzGNdGZBHnk/AZLvgmyNfD+hl7IKnzOAPxV5pMdUW4I/DeQjYr7DhD/nB2v6M3OHP/WcwHiCcIo/bbPZku7CjT8t/GSVG7mQP4mOAHZLw5I/bIzZhGIElT8zkpSA+oCXP74X86DqPZo/JW6nTkZAnT9WluuXrUagP0mDQj1XFaI/niVSv/wOpD9ewDGtkjamP316JuYij6g/lLYbjMkbqz+sg9R6sd+tP2ArESAIb7A/eO9HyRANsj/FRZwikcuzP5iZelwlrLU/2TRNZmSwtz8La92n3Nm5P73qmX4QKrw/ykxcgnKivj84pyTLMKLAP6Pvt2WSCMI/zPXrjfOEwz9/Z9+C2RfFP4tF5Ae3wcY/bO32H+qCyD+9tPHHuVvKP7yJTLVTTMw/vySeH8pUzj8yZ7bNiDrQPw6YkoZ/VtE/b+Oh3SJ+0j99nm/DOrHTP1uX5qh879Q/iPzGzIo41j+w3AKn84vXPzK/Y3Ux6dg/xZGt7KlP2j8sCDcRrr7bPzampTl6Nd0/AEwkPjaz3j95aAPrehvgPydmrpLc3+A/uhK9vTam4T8MWnsh923iP61MjBGDNuM/H2UEKTj/4z/+NEwLbcfkP+gS4TtyjuU/Cn27C5NT5j/z+NWaFhbnP+14BOxA1ec/QesECVSQ6D+OwW40kUbpP1Id6iY69+k/h/vgVJKh6j9XO6454ETrP/udKKVu4Os/lLBLCI5z7D/lna69lf3sPyu0cUrlfe0/klRPlOXz7T8BNIwJCl/uP+RQnbfRvu4/h5V/TcgS7z+hbO0Gh1rvP70G2X21le8/bPnVXwrE7z+hV2kFTOXvP5pai+lQ+e8/AAAAAAAA8D+aWovpUPnvP6BXaQVM5e8/bPnVXwrE7z/hoeVMZkY+P6k8v5FkuEE/i+a917y1RD8FydM4GSpIPw0VfcozJkw/2+KMYWpeUD8cX2yngwFTP9rXAvooCFY/otBlQXl/WT9EW1jADnZdP58/pTwQ/mA/dd8xltKRYz8eaPLnO4BmP2TrZa0+1Gk/K5Gy1+WZbT9i8hVaNO9wP8patY8fWHM/AxP87JoPdj8xjXRmQR55P/qR74JsjXw/mJeyCp8zgD8VeaTHVFuCPwPkI2K+w4Q/5wdr+jNzhz/vnMB4gnCKP22z2ZLuwo0/KPxklRu5kD+CjgB2S8OSP2yM2YRiBJU/KpKUgPqAlz+3F/Og6j2aPyVup05GQJ0/Vpbrl61GoD9Eg0I9VxWiP5clUr/8DqQ/XsAxrZI2pj93eibmIo+oP422G4zJG6s/rIPUerHfrT9gKxEgCG+wP3PvR8kQDbI/vUWcIpHLsz+YmXpcJay1P9M0TWZksLc/Amvdp9zZuT+96pl+ECq8P8pMXIJyor4/NKckyzCiwD+f77dlkgjCP8r1643zhMM/fWffgtkXxT+LReQHt8HGP2bt9h/qgsg/uLTxx7lbyj+8iUy1U0zMP7oknh/KVM4/Mme2zYg60D8KmJKGf1bRP2zjod0iftI/fZ5vwzqx0z9Xl+aofO/UP4j8xsyKONY/q9wCp/OL1z8yv2N1MenYP8CRreypT9o/KAg3Ea6+2z82pqU5ejXdP/tLJD42s94/eWgD63ob4D8lZq6S3N/gP7oSvb02puE/CVp7Ifdt4j+rTIwRgzbjPx9lBCk4/+M/+zRMC23H5D/oEuE7co7lPwh9uwuTU+Y/8PjVmhYW5z/teATsQNXnPz/rBAlUkOg/jsFuNJFG6T9QHeomOvfpP4f74FSSoeo/VDuuOeBE6z/5nSilbuDrP5SwSwiOc+w/452uvZX97D8rtHFK5X3tP5FUT5Tl8+0/ATSMCQpf7j/jUJ230b7uP4aVf03IEu8/oWztBoda7z+8Btl9tZXvP2z51V8KxO8/oFdpBUzl7z+aWovpUPnvPwAAAAAAAPA/mlqL6VD57z+hV2kFTOXvP1Z71bH00Tk/4aHlTGZGPj+pPL+RZLhBP4vmvde8tUQ/BcnTOBkqSD8NFX3KMyZMP+PijGFqXlA/JV9sp4MBUz/a1wL6KAhWP6LQZUF5f1k/RFtYwA52XT+fP6U8EP5gP3XfMZbSkWM/KWjy5zuAZj9q62WtPtRpPyuRstflmW0/a/IVWjTvcD/KWrWPH1hzPwMT/OyaD3Y/MY10ZkEeeT8Bku+CbI18P6GXsgqfM4A/FXmkx1Rbgj8N5CNivsOEP+cHa/ozc4c/75zAeIJwij9ts9mS7sKNPy38ZJUbuZA/iY4AdkvDkj9sjNmEYgSVPzOSlID6gJc/vhfzoOo9mj8lbqdORkCdP1aW65etRqA/SYNCPVcVoj+eJVK//A6kP17AMa2SNqY/fXom5iKPqD+UthuMyRurP6yD1Hqx360/YCsRIAhvsD9470fJEA2yP71FnCKRy7M/mJl6XCWstT/ZNE1mZLC3Pwtr3afc2bk/veqZfhAqvD/KTFyCcqK+PzSnJMswosA/oe+3ZZIIwj/M9euN84TDP4Jn34LZF8U/i0XkB7fBxj9m7fYf6oLIP7208ce5W8o/vIlMtVNMzD+/JJ4fylTOPzJnts2IOtA/CpiShn9W0T9v46HdIn7SP32eb8M6sdM/W5fmqHzv1D+I/MbMijjWP7DcAqfzi9c/Mr9jdTHp2D/Aka3sqU/aPywINxGuvts/NqalOXo13T8ATCQ+NrPeP3loA+t6G+A/J2auktzf4D+6Er29NqbhPwlaeyH3beI/rUyMEYM24z8fZQQpOP/jP/40TAttx+Q/6BLhO3KO5T8IfbsLk1PmP/P41ZoWFuc/7XgE7EDV5z9B6wQJVJDoP47BbjSRRuk/Uh3qJjr36T+H++BUkqHqP1Q7rjngROs/+50opW7g6z+UsEsIjnPsP+Wdrr2V/ew/K7RxSuV97T+SVE+U5fPtPwE0jAkKX+4/41Cdt9G+7j+HlX9NyBLvP6Fs7QaHWu8/vQbZfbWV7z9s+dVfCsTvP6BXaQVM5e8/mlqL6VD57z8AAAAAAADwP5pai+lQ+e8/rScQBCH8NT9je9Wx9NE5P/Gh5UxmRj4/qTy/kWS4QT+V5r3XvLVEPxHJ0zgZKkg/DRV9yjMmTD/j4oxhal5QPy9fbKeDAVM/5dcC+igIVj+i0GVBeX9ZP0xbWMAOdl0/pz+lPBD+YD913zGW0pFjPylo8uc7gGY/autlrT7UaT86kbLX5ZltP2vyFVo073A/1Fq1jx9Ycz8OE/zsmg92PzGNdGZBHnk/AZLvgmyNfD+hl7IKnzOAPx55pMdUW4I/DeQjYr7DhD/zB2v6M3OHP/WcwHiCcIo/bbPZku7CjT8t/GSVG7mQP4mOAHZLw5I/bIzZhGIElT8zkpSA+oCXP8gX86DqPZo/LG6nTkZAnT9WluuXrUagP0mDQj1XFaI/niVSv/wOpD9ewDGtkjamP316JuYij6g/nrYbjMkbqz+3g9R6sd+tP2ArESAIb7A/eO9HyRANsj/FRZwikcuzP5iZelwlrLU/2TRNZmSwtz8Sa92n3Nm5P8TqmX4QKrw/ykxcgnKivj84pyTLMKLAP6Pvt2WSCMI/0fXrjfOEwz+CZ9+C2RfFP4tF5Ae3wcY/bO32H+qCyD+9tPHHuVvKP8OJTLVTTMw/vySeH8pUzj8yZ7bNiDrQPw6YkoZ/VtE/b+Oh3SJ+0j+Bnm/DOrHTP1uX5qh879Q/jPzGzIo41j+w3AKn84vXPzK/Y3Ux6dg/xZGt7KlP2j8sCDcRrr7bPzumpTl6Nd0/AEwkPjaz3j97aAPrehvgPydmrpLc3+A/uhK9vTam4T8MWnsh923iP61MjBGDNuM/IWUEKTj/4z/+NEwLbcfkP+gS4TtyjuU/Cn27C5NT5j/z+NWaFhbnP+94BOxA1ec/QesECVSQ6D+RwW40kUbpP1Id6iY69+k/h/vgVJKh6j9XO6454ETrP/udKKVu4Os/lrBLCI5z7D/lna69lf3sPyy0cUrlfe0/klRPlOXz7T8BNIwJCl/uP+RQnbfRvu4/h5V/TcgS7z+ibO0Gh1rvP70G2X21le8/bPnVXwrE7z+hV2kFTOXvP5pai+lQ+e8/AAAAAAAA8D8=\",\"dtype\":\"float64\",\"shape\":[100,100]}]}},\"id\":\"30b409ea-f723-4f06-ba18-b610d58c0027\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"3638c229-5244-4273-a2d6-c57472abfda3\",\"type\":\"SaveTool\"},{\"attributes\":{\"callback\":null,\"end\":2,\"start\":-2},\"id\":\"8762d319-fa3a-40bd-8d60-4a52d485029e\",\"type\":\"Range1d\"}],\"root_ids\":[\"835ba89d-d996-4f44-a312-2424d966cf08\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.10\"}};\n",
" var render_items = [{\"docid\":\"e198638c-da5c-4283-a0bc-fb94dfe36f52\",\"elementid\":\"ccf76f2a-1a2e-44ba-9fd9-e2ea50768319\",\"modelid\":\"835ba89d-d996-4f44-a312-2424d966cf08\"}];\n",
"\n",
" root.Bokeh.embed.embed_items(docs_json, render_items);\n",
" }\n",
"\n",
" if (root.Bokeh !== undefined) {\n",
" embed_document(root);\n",
" } else {\n",
" var attempts = 0;\n",
" var timer = setInterval(function(root) {\n",
" if (root.Bokeh !== undefined) {\n",
" embed_document(root);\n",
" clearInterval(timer);\n",
" }\n",
" attempts++;\n",
" if (attempts > 100) {\n",
" console.log(\"Bokeh: ERROR: Unable to embed document because BokehJS library is missing\")\n",
" clearInterval(timer);\n",
" }\n",
" }, 10, root)\n",
" }\n",
"})(window);"
],
"application/vnd.bokehjs_exec.v0+json": ""
},
"metadata": {
"application/vnd.bokehjs_exec.v0+json": {
"id": "835ba89d-d996-4f44-a312-2424d966cf08"
}
},
"output_type": "display_data"
}
],
"source": [
"N = 100\n",
"x = np.linspace(-2, 2, N)\n",
"y = np.linspace(-2, 2, N)\n",
"d = k(x, y)\n",
"\n",
"color_mapper = LinearColorMapper(palette=\"Plasma256\", low=0, high=1)\n",
"\n",
"p = figure(plot_width=400, plot_height=400, x_range=(-2, 2), y_range=(-2, 2),\n",
" title='Visualisation of k(x, x\\')', x_axis_label='x', y_axis_label='x\\'', toolbar_location=None)\n",
"p.image(image=[d], color_mapper=color_mapper, x=-2, y=-2, dw=4, dh=4)\n",
"\n",
"color_bar = ColorBar(color_mapper=color_mapper, ticker=BasicTicker(),\n",
" label_standoff=12, border_line_color=None, location=(0,0))\n",
"\n",
"p.add_layout(color_bar, 'right')\n",
"\n",
"show(p)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So, to get the sort of smoothness we want we will consider two random variables $y_i$ and $y_j$ plotted at $x_i$ and $x_j$ to have covariance $\\text{cov}(y_i, y_j)=\\kappa(x_i, x_j)$ - _the closer they are together the higher their covariance_.\n",
"\n",
"Using the kernel function from above we can get this matrix with `k(xs, xs)`. Now lets try plotting another 10 samples from the 20D Gaussian, but this time with the new covariance matrix. When we do this we get:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"<div class=\"bk-root\">\n",
" <div class=\"bk-plotdiv\" id=\"102d5159-3dcb-4207-baf2-1e7633a2541b\"></div>\n",
"</div>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/javascript": [
"(function(root) {\n",
" function embed_document(root) {\n",
" var docs_json = {\"c5401ea5-11e0-4510-b0f2-aa05b7151666\":{\"roots\":{\"references\":[{\"attributes\":{\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"7f7668e3-02f1-4352-af38-a8f32f342177\",\"type\":\"Line\"},{\"attributes\":{\"fill_color\":{\"value\":\"#7f7f7f\"},\"line_color\":{\"value\":\"#7f7f7f\"},\"size\":{\"units\":\"screen\",\"value\":3},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"c5ee2670-4959-4930-98f3-68066d22a116\",\"type\":\"Circle\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"22539209-3c0b-4057-9f63-c1e95d78c23b\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"line_color\":{\"value\":\"#bcbd22\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"f9519f1c-b275-4ac4-bbc2-6d34ea467b1a\",\"type\":\"Line\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":3},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"aa0c92a9-8873-4939-be09-0d836088391c\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"cff90b7a-1e18-4634-a10e-107a87a6fad9\",\"type\":\"PanTool\"},{\"attributes\":{\"data_source\":{\"id\":\"8b64f2b0-c1f9-4a7f-a84a-4e61f82dafc9\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"c5ee2670-4959-4930-98f3-68066d22a116\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"aa0c92a9-8873-4939-be09-0d836088391c\",\"type\":\"Circle\"},\"selection_glyph\":null,\"view\":{\"id\":\"1f676474-98c8-4b6d-998c-09b5422697d4\",\"type\":\"CDSView\"}},\"id\":\"6dd5f876-994f-47f8-8436-f2a1afe78b66\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"fill_color\":{\"value\":\"#ff7f0e\"},\"line_color\":{\"value\":\"#ff7f0e\"},\"size\":{\"units\":\"screen\",\"value\":3},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"40065c58-b4a9-4379-b04a-21f97a5bd57b\",\"type\":\"Circle\"},{\"attributes\":{\"source\":{\"id\":\"8b64f2b0-c1f9-4a7f-a84a-4e61f82dafc9\",\"type\":\"ColumnDataSource\"}},\"id\":\"1f676474-98c8-4b6d-998c-09b5422697d4\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"cd3ec7cf-c050-4e7a-beff-a93b9346e347\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"data_source\":{\"id\":\"b2c1b40c-d831-4bcf-9715-426b070d0047\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"b0556fa4-51f4-4d8d-8529-40ac409138f3\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"c55a4aa4-203d-4a51-bf54-8f7228049a77\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"0bf2b9f0-0d4c-498b-b8c0-579cd0caa69a\",\"type\":\"CDSView\"}},\"id\":\"749754ce-545f-424f-bdd7-86975499f65d\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"overlay\":{\"id\":\"22539209-3c0b-4057-9f63-c1e95d78c23b\",\"type\":\"BoxAnnotation\"}},\"id\":\"5ad16a60-0ac4-49d1-bed4-a868361e1ade\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAor6G8hvKqPyivobyG8ro/XkN5DeU1xD8or6G8hvLKP3kN5TWU19A/XkN5DeU11D9DeQ3lNZTXPyivobyG8to/DeU1lNdQ3j95DeU1lNfgP2wor6G8huI/XkN5DeU15D9QXkN5DeXlP0N5DeU1lOc/NpTXUF5D6T8or6G8hvLqPxrKayivoew/DeU1lNdQ7j8AAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[20]},\"y\":{\"__ndarray__\":\"TCeUGhS48b83sAk8zMvwv9LMf+8tpO+/VLsYoTCY7b/UAyhUz3Xrv+X4FdQgP+m/qAYCpSf25r+TUMxU15zkv1ULEREcNeK/+teThMaB378DTXN2SoTavzAZEbLfddW/bg0RNONa0L8uLfwrEXDGv+Hm74C+Sbi/EUC7K/f2jb/gebAYv6ewP4sGPShyZ8I/9pTFl11MzD/FzcO/LvnSPw==\",\"dtype\":\"float64\",\"shape\":[20]}}},\"id\":\"b2c1b40c-d831-4bcf-9715-426b070d0047\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"994f216a-be00-4272-bac8-b6e25b853699\",\"type\":\"SaveTool\"},{\"attributes\":{\"line_color\":{\"value\":\"#7f7f7f\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"b0556fa4-51f4-4d8d-8529-40ac409138f3\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"e508c1f5-49f1-4428-98c4-5d0904b4296e\",\"type\":\"ResetTool\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"c55a4aa4-203d-4a51-bf54-8f7228049a77\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"3723bbd0-c396-450d-89e4-00da8ecf0185\",\"type\":\"HelpTool\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"09b515bb-75ba-4798-95ec-dab11d6baafd\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAor6G8hvKqPyivobyG8ro/XkN5DeU1xD8or6G8hvLKP3kN5TWU19A/XkN5DeU11D9DeQ3lNZTXPyivobyG8to/DeU1lNdQ3j95DeU1lNfgP2wor6G8huI/XkN5DeU15D9QXkN5DeXlP0N5DeU1lOc/NpTXUF5D6T8or6G8hvLqPxrKayivoew/DeU1lNdQ7j8AAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[20]},\"y\":{\"__ndarray__\":\"499aRaYqBEAK/eDwk1YEQM/R5N4ibgRAIAnA49BxBECqZO+qUWIEQCmBHHqRQARAx24rirYNBEAel1B/IMsDQAFDzQlmegNA3R4/b1AdA0Abl5sE1bUCQM+lesEMRgJAZRnGAirQAUBiq5LpbFYBQEIs1KAW2wBAjMa09ltgAEDFd4vfr9D/P4+q6BT96f4/8Vr4DSEQ/j/4wnjcIEb9Pw==\",\"dtype\":\"float64\",\"shape\":[20]}}},\"id\":\"66c166bf-2d1e-415e-920b-f9932316e96c\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data_source\":{\"id\":\"5e652d88-7043-4f1a-9975-ecd856408b8f\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"40065c58-b4a9-4379-b04a-21f97a5bd57b\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"eceb15fd-adda-4def-9237-8f252a210221\",\"type\":\"Circle\"},\"selection_glyph\":null,\"view\":{\"id\":\"556c4942-bf37-4751-a03b-9dc907409ef1\",\"type\":\"CDSView\"}},\"id\":\"2ba1ec5a-5c59-4451-8a7a-3ad902b185e5\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAor6G8hvKqPyivobyG8ro/XkN5DeU1xD8or6G8hvLKP3kN5TWU19A/XkN5DeU11D9DeQ3lNZTXPyivobyG8to/DeU1lNdQ3j95DeU1lNfgP2wor6G8huI/XkN5DeU15D9QXkN5DeXlP0N5DeU1lOc/NpTXUF5D6T8or6G8hvLqPxrKayivoew/DeU1lNdQ7j8AAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[20]},\"y\":{\"__ndarray__\":\"499aRaYqBEAK/eDwk1YEQM/R5N4ibgRAIAnA49BxBECqZO+qUWIEQCmBHHqRQARAx24rirYNBEAel1B/IMsDQAFDzQlmegNA3R4/b1AdA0Abl5sE1bUCQM+lesEMRgJAZRnGAirQAUBiq5LpbFYBQEIs1KAW2wBAjMa09ltgAEDFd4vfr9D/P4+q6BT96f4/8Vr4DSEQ/j/4wnjcIEb9Pw==\",\"dtype\":\"float64\",\"shape\":[20]}}},\"id\":\"f1d9b77e-70ac-4c44-a362-63121b3396db\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data_source\":{\"id\":\"b98bf0e4-6fc5-407c-b75e-fd38aa865f65\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"7f7668e3-02f1-4352-af38-a8f32f342177\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"09b515bb-75ba-4798-95ec-dab11d6baafd\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"9aa9f488-fb5c-4911-a342-b0f870a0eec8\",\"type\":\"CDSView\"}},\"id\":\"cb81a826-23d7-4832-b30a-f102f76fe762\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"b2c1b40c-d831-4bcf-9715-426b070d0047\",\"type\":\"ColumnDataSource\"}},\"id\":\"0bf2b9f0-0d4c-498b-b8c0-579cd0caa69a\",\"type\":\"CDSView\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAor6G8hvKqPyivobyG8ro/XkN5DeU1xD8or6G8hvLKP3kN5TWU19A/XkN5DeU11D9DeQ3lNZTXPyivobyG8to/DeU1lNdQ3j95DeU1lNfgP2wor6G8huI/XkN5DeU15D9QXkN5DeXlP0N5DeU1lOc/NpTXUF5D6T8or6G8hvLqPxrKayivoew/DeU1lNdQ7j8AAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[20]},\"y\":{\"__ndarray__\":\"l6VrTySwtD9KF/nVSNG2P4lPC5Rvnrk/Il2cCGAJvT+u2SL+uIHAP+serVHwvsI/yTgzoAk1xT+lJa+45NzHPz3onHWar8o/TBtQxnumzT9ZMzisg13QP0S8RC1q89E/jtOvJbuR0z9orzj/LTXVPzboQ/lW2tY/4O2Wg5d92D9p0qL/ERvaP5noL96hrts/XONg4doz3T/1U1unDqbePw==\",\"dtype\":\"float64\",\"shape\":[20]}}},\"id\":\"5e652d88-7043-4f1a-9975-ecd856408b8f\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"fill_color\":{\"value\":\"#bcbd22\"},\"line_color\":{\"value\":\"#bcbd22\"},\"size\":{\"units\":\"screen\",\"value\":3},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"d63b5577-0bd5-457f-93f3-b5a1b6c8769c\",\"type\":\"Circle\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAor6G8hvKqPyivobyG8ro/XkN5DeU1xD8or6G8hvLKP3kN5TWU19A/XkN5DeU11D9DeQ3lNZTXPyivobyG8to/DeU1lNdQ3j95DeU1lNfgP2wor6G8huI/XkN5DeU15D9QXkN5DeXlP0N5DeU1lOc/NpTXUF5D6T8or6G8hvLqPxrKayivoew/DeU1lNdQ7j8AAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[20]},\"y\":{\"__ndarray__\":\"l6VrTySwtD9KF/nVSNG2P4lPC5Rvnrk/Il2cCGAJvT+u2SL+uIHAP+serVHwvsI/yTgzoAk1xT+lJa+45NzHPz3onHWar8o/TBtQxnumzT9ZMzisg13QP0S8RC1q89E/jtOvJbuR0z9orzj/LTXVPzboQ/lW2tY/4O2Wg5d92D9p0qL/ERvaP5noL96hrts/XONg4doz3T/1U1unDqbePw==\",\"dtype\":\"float64\",\"shape\":[20]}}},\"id\":\"f54fdd0c-f087-4eab-ad8e-91a760fa2e10\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":3},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"9149effc-1b27-462e-9dd7-4809d13a0a7f\",\"type\":\"Circle\"},{\"attributes\":{\"data_source\":{\"id\":\"66c166bf-2d1e-415e-920b-f9932316e96c\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"d63b5577-0bd5-457f-93f3-b5a1b6c8769c\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"9149effc-1b27-462e-9dd7-4809d13a0a7f\",\"type\":\"Circle\"},\"selection_glyph\":null,\"view\":{\"id\":\"3462898b-2a54-40bd-a406-c9518cfec7bf\",\"type\":\"CDSView\"}},\"id\":\"895c2b11-da17-4187-ab39-aabc3e046a80\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_color\":{\"value\":\"#2ca02c\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"59ea0be3-0cbe-41dc-8466-e76768c24a5c\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"b98bf0e4-6fc5-407c-b75e-fd38aa865f65\",\"type\":\"ColumnDataSource\"}},\"id\":\"9aa9f488-fb5c-4911-a342-b0f870a0eec8\",\"type\":\"CDSView\"},{\"attributes\":{\"fill_color\":{\"value\":\"#17becf\"},\"line_color\":{\"value\":\"#17becf\"},\"size\":{\"units\":\"screen\",\"value\":3},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"6afa8500-c920-42ca-9fea-ce826d0d312a\",\"type\":\"Circle\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":3},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"eceb15fd-adda-4def-9237-8f252a210221\",\"type\":\"Circle\"},{\"attributes\":{\"source\":{\"id\":\"66c166bf-2d1e-415e-920b-f9932316e96c\",\"type\":\"ColumnDataSource\"}},\"id\":\"3462898b-2a54-40bd-a406-c9518cfec7bf\",\"type\":\"CDSView\"},{\"attributes\":{\"line_color\":{\"value\":\"#ff7f0e\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"96089ed2-2ddd-487d-ae3d-256b8f2f15c0\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"398737cf-955c-485b-9f58-f984380b1599\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"4c2c9325-4f5d-455e-9d0b-324c98a67436\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"6afa8500-c920-42ca-9fea-ce826d0d312a\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"5c4c9e6b-e87e-4ab0-9491-9c607be13309\",\"type\":\"Circle\"},\"selection_glyph\":null,\"view\":{\"id\":\"36494cf2-4479-4ca9-a5ad-7545c52ac119\",\"type\":\"CDSView\"}},\"id\":\"0004058c-429c-4580-ba36-03b04faa1e2c\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"5e652d88-7043-4f1a-9975-ecd856408b8f\",\"type\":\"ColumnDataSource\"}},\"id\":\"556c4942-bf37-4751-a03b-9dc907409ef1\",\"type\":\"CDSView\"},{\"attributes\":{\"data_source\":{\"id\":\"f1d9b77e-70ac-4c44-a362-63121b3396db\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"f9519f1c-b275-4ac4-bbc2-6d34ea467b1a\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"398737cf-955c-485b-9f58-f984380b1599\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"be1fd030-eb34-44fe-b0ce-49188a8d453a\",\"type\":\"CDSView\"}},\"id\":\"77ddd786-eeb9-4bb0-8441-345c674bc068\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":3},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"ff9ae0e9-ead6-4308-9d9a-b8b72451ed13\",\"type\":\"Circle\"},{\"attributes\":{\"plot\":{\"id\":\"685e476d-5a9d-4c07-a234-6658ca19844f\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"9b14edfd-72c3-4314-8f16-e53d18bb7e6b\",\"type\":\"BasicTicker\"}},\"id\":\"a416dc8e-fd0e-4af9-acee-fb166fc314c2\",\"type\":\"Grid\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAor6G8hvKqPyivobyG8ro/XkN5DeU1xD8or6G8hvLKP3kN5TWU19A/XkN5DeU11D9DeQ3lNZTXPyivobyG8to/DeU1lNdQ3j95DeU1lNfgP2wor6G8huI/XkN5DeU15D9QXkN5DeXlP0N5DeU1lOc/NpTXUF5D6T8or6G8hvLqPxrKayivoew/DeU1lNdQ7j8AAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[20]},\"y\":{\"__ndarray__\":\"YUsHuo7quj8dGvAz3Jy+PzK3ZgCPkcE/GQ63Bi02xD8oz5sKezHHPyvFPSBUdso/JiSZbEj1zT+18k52Xs7QP98pGrCQrNI/STgsmJ2K1D+8ijA6QV3WP+WIAKbIGNg/F6vqUVCx2T/STbfbBhvbP+SzoRx0Stw/iuPFw7403T9G4i6E8c/dP2wF05A7E94/qx3UnCn33T+lIK/X2HXdPw==\",\"dtype\":\"float64\",\"shape\":[20]}}},\"id\":\"7dc52956-810a-4a6d-801a-c227b0f359e7\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAor6G8hvKqPyivobyG8ro/XkN5DeU1xD8or6G8hvLKP3kN5TWU19A/XkN5DeU11D9DeQ3lNZTXPyivobyG8to/DeU1lNdQ3j95DeU1lNfgP2wor6G8huI/XkN5DeU15D9QXkN5DeXlP0N5DeU1lOc/NpTXUF5D6T8or6G8hvLqPxrKayivoew/DeU1lNdQ7j8AAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[20]},\"y\":{\"__ndarray__\":\"vkbcMm0Ep79iYuHj0Nmzv3slTkMy07q/7xxeTIM9wL/scfAaY2/Cv7QJowQQBsS/DK7XoToIxb8lGYrhMHzFv06VxPGvZ8W/oEq5vMHPxL8rbe/mp7jDv/mOri3YJcK/hgMA9gUawL9cDvxyeC67v8vFyCIMPrW/wno56I3KrL+hfpw0Q5qavzIijLdYs38/fCrwlDT4pj82PI9Wfda1Pw==\",\"dtype\":\"float64\",\"shape\":[20]}}},\"id\":\"4c2c9325-4f5d-455e-9d0b-324c98a67436\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2f0bf368-58f9-4d6c-b706-d918d0ece682\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"f1d9b77e-70ac-4c44-a362-63121b3396db\",\"type\":\"ColumnDataSource\"}},\"id\":\"be1fd030-eb34-44fe-b0ce-49188a8d453a\",\"type\":\"CDSView\"},{\"attributes\":{\"data_source\":{\"id\":\"f54fdd0c-f087-4eab-ad8e-91a760fa2e10\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"96089ed2-2ddd-487d-ae3d-256b8f2f15c0\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2f0bf368-58f9-4d6c-b706-d918d0ece682\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"8c762493-24f5-4d3c-ac6e-cae78df96331\",\"type\":\"CDSView\"}},\"id\":\"b174c458-7735-414a-97df-f2d41eafa20c\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"f54fdd0c-f087-4eab-ad8e-91a760fa2e10\",\"type\":\"ColumnDataSource\"}},\"id\":\"8c762493-24f5-4d3c-ac6e-cae78df96331\",\"type\":\"CDSView\"},{\"attributes\":{\"line_color\":{\"value\":\"#17becf\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"4ec896be-d925-49f0-bc53-0684845ca184\",\"type\":\"Line\"},{\"attributes\":{\"plot\":null,\"text\":\"\"},\"id\":\"88cbec72-b1df-4c75-8d1c-6faa05dbb086\",\"type\":\"Title\"},{\"attributes\":{\"fill_color\":{\"value\":\"#2ca02c\"},\"line_color\":{\"value\":\"#2ca02c\"},\"size\":{\"units\":\"screen\",\"value\":3},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1db24e77-24d1-4a43-923f-09279128b785\",\"type\":\"Circle\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":3},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"5c4c9e6b-e87e-4ab0-9491-9c607be13309\",\"type\":\"Circle\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAor6G8hvKqPyivobyG8ro/XkN5DeU1xD8or6G8hvLKP3kN5TWU19A/XkN5DeU11D9DeQ3lNZTXPyivobyG8to/DeU1lNdQ3j95DeU1lNfgP2wor6G8huI/XkN5DeU15D9QXkN5DeXlP0N5DeU1lOc/NpTXUF5D6T8or6G8hvLqPxrKayivoew/DeU1lNdQ7j8AAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[20]},\"y\":{\"__ndarray__\":\"bMXNAwnH8b80d0ACtdDzv1ZRV+WTvPW/BkCnnlSG979nz9peISr5v5mmsJuypPq/GN1EJl/z+780eLi9KBT9v/A9JcbEBf6/DxjuZKDH/r9mIjph4Fn/v30gzONbvf+/W45WH5Pz/78obJQSof7/v5/vgsYp4f+/sqw5jESe/7+c2/UFZDn/v2yD7K87tv6/o0a5uKQY/r9nwOpEgmT9vw==\",\"dtype\":\"float64\",\"shape\":[20]}}},\"id\":\"b98bf0e4-6fc5-407c-b75e-fd38aa865f65\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAor6G8hvKqPyivobyG8ro/XkN5DeU1xD8or6G8hvLKP3kN5TWU19A/XkN5DeU11D9DeQ3lNZTXPyivobyG8to/DeU1lNdQ3j95DeU1lNfgP2wor6G8huI/XkN5DeU15D9QXkN5DeXlP0N5DeU1lOc/NpTXUF5D6T8or6G8hvLqPxrKayivoew/DeU1lNdQ7j8AAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[20]},\"y\":{\"__ndarray__\":\"YUsHuo7quj8dGvAz3Jy+PzK3ZgCPkcE/GQ63Bi02xD8oz5sKezHHPyvFPSBUdso/JiSZbEj1zT+18k52Xs7QP98pGrCQrNI/STgsmJ2K1D+8ijA6QV3WP+WIAKbIGNg/F6vqUVCx2T/STbfbBhvbP+SzoRx0Stw/iuPFw7403T9G4i6E8c/dP2wF05A7E94/qx3UnCn33T+lIK/X2HXdPw==\",\"dtype\":\"float64\",\"shape\":[20]}}},\"id\":\"a28d5723-cd82-4b54-8ffe-75cea0dd9f5a\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAor6G8hvKqPyivobyG8ro/XkN5DeU1xD8or6G8hvLKP3kN5TWU19A/XkN5DeU11D9DeQ3lNZTXPyivobyG8to/DeU1lNdQ3j95DeU1lNfgP2wor6G8huI/XkN5DeU15D9QXkN5DeXlP0N5DeU1lOc/NpTXUF5D6T8or6G8hvLqPxrKayivoew/DeU1lNdQ7j8AAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[20]},\"y\":{\"__ndarray__\":\"vkbcMm0Ep79iYuHj0Nmzv3slTkMy07q/7xxeTIM9wL/scfAaY2/Cv7QJowQQBsS/DK7XoToIxb8lGYrhMHzFv06VxPGvZ8W/oEq5vMHPxL8rbe/mp7jDv/mOri3YJcK/hgMA9gUawL9cDvxyeC67v8vFyCIMPrW/wno56I3KrL+hfpw0Q5qavzIijLdYs38/fCrwlDT4pj82PI9Wfda1Pw==\",\"dtype\":\"float64\",\"shape\":[20]}}},\"id\":\"fa1a412e-a2cb-4526-9abe-7eeebd93a8fb\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"below\":[{\"id\":\"19c552e3-da98-4d76-bf18-cadb2530d1b3\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"4c9a6df0-1914-4e97-b5ea-dc8c551ce538\",\"type\":\"LinearAxis\"}],\"plot_height\":500,\"plot_width\":800,\"renderers\":[{\"id\":\"19c552e3-da98-4d76-bf18-cadb2530d1b3\",\"type\":\"LinearAxis\"},{\"id\":\"a416dc8e-fd0e-4af9-acee-fb166fc314c2\",\"type\":\"Grid\"},{\"id\":\"4c9a6df0-1914-4e97-b5ea-dc8c551ce538\",\"type\":\"LinearAxis\"},{\"id\":\"bd9d5ab4-3a6a-4ac5-ae1b-ee6433ebef3f\",\"type\":\"Grid\"},{\"id\":\"22539209-3c0b-4057-9f63-c1e95d78c23b\",\"type\":\"BoxAnnotation\"},{\"id\":\"f609c2e5-6b54-4177-ac28-b779bae59db8\",\"type\":\"GlyphRenderer\"},{\"id\":\"cb81a826-23d7-4832-b30a-f102f76fe762\",\"type\":\"GlyphRenderer\"},{\"id\":\"2ba1ec5a-5c59-4451-8a7a-3ad902b185e5\",\"type\":\"GlyphRenderer\"},{\"id\":\"b174c458-7735-414a-97df-f2d41eafa20c\",\"type\":\"GlyphRenderer\"},{\"id\":\"7405efce-2d21-422b-b76e-29a740804dd0\",\"type\":\"GlyphRenderer\"},{\"id\":\"e66b4a0b-56cb-4084-98ab-5a09148a6bbc\",\"type\":\"GlyphRenderer\"},{\"id\":\"05fdd86a-c6bf-4b8b-9184-09fddcaa9309\",\"type\":\"GlyphRenderer\"},{\"id\":\"f9737f1f-2245-4e37-85af-e382679549d7\",\"type\":\"GlyphRenderer\"},{\"id\":\"45e77f8a-0035-4a64-8ed0-0237e72d855b\",\"type\":\"GlyphRenderer\"},{\"id\":\"383f9d8e-700c-43fd-af4f-0f803b7a580d\",\"type\":\"GlyphRenderer\"},{\"id\":\"55959e64-01ad-4090-8e94-69bdf4ea103f\",\"type\":\"GlyphRenderer\"},{\"id\":\"d34ebee5-8321-4a58-9dcf-70e4fe597500\",\"type\":\"GlyphRenderer\"},{\"id\":\"fa7b800d-6ba0-44a2-96ab-d52e2ae3f875\",\"type\":\"GlyphRenderer\"},{\"id\":\"4cc04d69-c211-4af6-828d-7ba0aaf0d371\",\"type\":\"GlyphRenderer\"},{\"id\":\"6dd5f876-994f-47f8-8436-f2a1afe78b66\",\"type\":\"GlyphRenderer\"},{\"id\":\"749754ce-545f-424f-bdd7-86975499f65d\",\"type\":\"GlyphRenderer\"},{\"id\":\"895c2b11-da17-4187-ab39-aabc3e046a80\",\"type\":\"GlyphRenderer\"},{\"id\":\"77ddd786-eeb9-4bb0-8441-345c674bc068\",\"type\":\"GlyphRenderer\"},{\"id\":\"0004058c-429c-4580-ba36-03b04faa1e2c\",\"type\":\"GlyphRenderer\"},{\"id\":\"01898370-f393-4aba-bfab-e6ad0043fe2d\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"88cbec72-b1df-4c75-8d1c-6faa05dbb086\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"8a971c20-0a6f-4188-a61d-fb9cc7dc180e\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"dcfa8be4-2b6a-4056-a4d5-11f1ae6bf41d\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"5262325a-983b-46c7-871c-f67a97fe4fa8\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"349843da-50ca-4b99-b0ed-27bf2d54503a\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"555d8ab1-edab-415e-9768-f74c61871132\",\"type\":\"LinearScale\"}},\"id\":\"685e476d-5a9d-4c07-a234-6658ca19844f\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"fill_color\":{\"value\":\"#d62728\"},\"line_color\":{\"value\":\"#d62728\"},\"size\":{\"units\":\"screen\",\"value\":3},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"bbed7479-407a-4caa-b3b8-eac5ca196b2a\",\"type\":\"Circle\"},{\"attributes\":{\"source\":{\"id\":\"4c2c9325-4f5d-455e-9d0b-324c98a67436\",\"type\":\"ColumnDataSource\"}},\"id\":\"36494cf2-4479-4ca9-a5ad-7545c52ac119\",\"type\":\"CDSView\"},{\"attributes\":{\"data_source\":{\"id\":\"7dc52956-810a-4a6d-801a-c227b0f359e7\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1db24e77-24d1-4a43-923f-09279128b785\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"ff9ae0e9-ead6-4308-9d9a-b8b72451ed13\",\"type\":\"Circle\"},\"selection_glyph\":null,\"view\":{\"id\":\"d1060f89-8a18-4b6c-8a3e-9803568de89f\",\"type\":\"CDSView\"}},\"id\":\"7405efce-2d21-422b-b76e-29a740804dd0\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"9e39fd06-1533-4d75-840a-4a733eaa9f30\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"source\":{\"id\":\"7dc52956-810a-4a6d-801a-c227b0f359e7\",\"type\":\"ColumnDataSource\"}},\"id\":\"d1060f89-8a18-4b6c-8a3e-9803568de89f\",\"type\":\"CDSView\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAor6G8hvKqPyivobyG8ro/XkN5DeU1xD8or6G8hvLKP3kN5TWU19A/XkN5DeU11D9DeQ3lNZTXPyivobyG8to/DeU1lNdQ3j95DeU1lNfgP2wor6G8huI/XkN5DeU15D9QXkN5DeXlP0N5DeU1lOc/NpTXUF5D6T8or6G8hvLqPxrKayivoew/DeU1lNdQ7j8AAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[20]},\"y\":{\"__ndarray__\":\"aUFsiySf2b9JW2E2YCHUv0TTg9CBXs2/QEekR2ySwr9sOrytF3mvv2e1zSfK9pU/R363ljeMuj9se488gLjHP2do4Fk4C9E/EfT3dbEv1j9j2TXRwUjbP5cOJ71cKuA/OoBSpISo4j/2c99eGh3lP2aMjKXnhec/9eBZwkLg6T/f9LTJGCnsPwSeFyP+XO4/zm354yE88D+21C65iDvxPw==\",\"dtype\":\"float64\",\"shape\":[20]}}},\"id\":\"394e3d0f-c892-49e2-a221-56f58e33f89c\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"af61f2ec-7912-47df-8bbf-f3ffac8c9f83\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"a28d5723-cd82-4b54-8ffe-75cea0dd9f5a\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"59ea0be3-0cbe-41dc-8466-e76768c24a5c\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"73ab9915-3efc-4fad-95ed-a56051c9ef7b\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"b5b401fc-688e-4ef8-8157-66292c9e4c3e\",\"type\":\"CDSView\"}},\"id\":\"e66b4a0b-56cb-4084-98ab-5a09148a6bbc\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"data_source\":{\"id\":\"fa1a412e-a2cb-4526-9abe-7eeebd93a8fb\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"4ec896be-d925-49f0-bc53-0684845ca184\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"af61f2ec-7912-47df-8bbf-f3ffac8c9f83\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"21bd364b-5484-4204-b698-b319d65b1b6e\",\"type\":\"CDSView\"}},\"id\":\"01898370-f393-4aba-bfab-e6ad0043fe2d\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_color\":{\"value\":\"#d62728\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"63bb8109-310e-4393-9123-427ecd4dc701\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"fa1a412e-a2cb-4526-9abe-7eeebd93a8fb\",\"type\":\"ColumnDataSource\"}},\"id\":\"21bd364b-5484-4204-b698-b319d65b1b6e\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"73ab9915-3efc-4fad-95ed-a56051c9ef7b\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"a28d5723-cd82-4b54-8ffe-75cea0dd9f5a\",\"type\":\"ColumnDataSource\"}},\"id\":\"b5b401fc-688e-4ef8-8157-66292c9e4c3e\",\"type\":\"CDSView\"},{\"attributes\":{\"line_color\":{\"value\":\"#9467bd\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"6710f51f-30e8-4a7f-b089-dc72b312e58d\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAor6G8hvKqPyivobyG8ro/XkN5DeU1xD8or6G8hvLKP3kN5TWU19A/XkN5DeU11D9DeQ3lNZTXPyivobyG8to/DeU1lNdQ3j95DeU1lNfgP2wor6G8huI/XkN5DeU15D9QXkN5DeXlP0N5DeU1lOc/NpTXUF5D6T8or6G8hvLqPxrKayivoew/DeU1lNdQ7j8AAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[20]},\"y\":{\"__ndarray__\":\"bMXNAwnH8b80d0ACtdDzv1ZRV+WTvPW/BkCnnlSG979nz9peISr5v5mmsJuypPq/GN1EJl/z+780eLi9KBT9v/A9JcbEBf6/DxjuZKDH/r9mIjph4Fn/v30gzONbvf+/W45WH5Pz/78obJQSof7/v5/vgsYp4f+/sqw5jESe/7+c2/UFZDn/v2yD7K87tv6/o0a5uKQY/r9nwOpEgmT9vw==\",\"dtype\":\"float64\",\"shape\":[20]}}},\"id\":\"e71e9dff-9bcc-4e18-89fc-c63a12a41d6c\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data_source\":{\"id\":\"394e3d0f-c892-49e2-a221-56f58e33f89c\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"bbed7479-407a-4caa-b3b8-eac5ca196b2a\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"f15b0a6a-f0b7-4a69-877d-abd2ea5e8e6a\",\"type\":\"Circle\"},\"selection_glyph\":null,\"view\":{\"id\":\"a4ddb4c7-9ae6-4e43-b182-d555de31a0b1\",\"type\":\"CDSView\"}},\"id\":\"05fdd86a-c6bf-4b8b-9184-09fddcaa9309\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAor6G8hvKqPyivobyG8ro/XkN5DeU1xD8or6G8hvLKP3kN5TWU19A/XkN5DeU11D9DeQ3lNZTXPyivobyG8to/DeU1lNdQ3j95DeU1lNfgP2wor6G8huI/XkN5DeU15D9QXkN5DeXlP0N5DeU1lOc/NpTXUF5D6T8or6G8hvLqPxrKayivoew/DeU1lNdQ7j8AAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[20]},\"y\":{\"__ndarray__\":\"aUFsiySf2b9JW2E2YCHUv0TTg9CBXs2/QEekR2ySwr9sOrytF3mvv2e1zSfK9pU/R363ljeMuj9se488gLjHP2do4Fk4C9E/EfT3dbEv1j9j2TXRwUjbP5cOJ71cKuA/OoBSpISo4j/2c99eGh3lP2aMjKXnhec/9eBZwkLg6T/f9LTJGCnsPwSeFyP+XO4/zm354yE88D+21C65iDvxPw==\",\"dtype\":\"float64\",\"shape\":[20]}}},\"id\":\"979f14d8-807d-4a48-9108-e5bf442b784c\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":3},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"f15b0a6a-f0b7-4a69-877d-abd2ea5e8e6a\",\"type\":\"Circle\"},{\"attributes\":{\"source\":{\"id\":\"394e3d0f-c892-49e2-a221-56f58e33f89c\",\"type\":\"ColumnDataSource\"}},\"id\":\"a4ddb4c7-9ae6-4e43-b182-d555de31a0b1\",\"type\":\"CDSView\"},{\"attributes\":{\"data_source\":{\"id\":\"979f14d8-807d-4a48-9108-e5bf442b784c\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"63bb8109-310e-4393-9123-427ecd4dc701\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"4548df55-afb0-438d-b346-c24c0987858a\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"d5a395f4-138e-4abf-9754-b049dbf0e0e7\",\"type\":\"CDSView\"}},\"id\":\"f9737f1f-2245-4e37-85af-e382679549d7\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"4548df55-afb0-438d-b346-c24c0987858a\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAor6G8hvKqPyivobyG8ro/XkN5DeU1xD8or6G8hvLKP3kN5TWU19A/XkN5DeU11D9DeQ3lNZTXPyivobyG8to/DeU1lNdQ3j95DeU1lNfgP2wor6G8huI/XkN5DeU15D9QXkN5DeXlP0N5DeU1lOc/NpTXUF5D6T8or6G8hvLqPxrKayivoew/DeU1lNdQ7j8AAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[20]},\"y\":{\"__ndarray__\":\"KSMt40ta8L+WpBQ6Vkrwv/KqpelHQfC/Mm3npBs+8L/1pdDTpD/wv0C9yp2VRPC/LuANlIVL8L/KR9PM+FLwv1QrV09nWfC/HlX2rURd8L9AApkCCF3wvwenodIzV/C/8yAW/F1K8L9RP8h0NzXwv/vXNcWTFvC/uY/XL+Da77+Os6J183Hvv3qrfkgn8e6/N4+ig7ZX7r8xUN2NV6Xtvw==\",\"dtype\":\"float64\",\"shape\":[20]}}},\"id\":\"8cbd432b-82ca-4634-be25-91f8da05bad1\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAor6G8hvKqPyivobyG8ro/XkN5DeU1xD8or6G8hvLKP3kN5TWU19A/XkN5DeU11D9DeQ3lNZTXPyivobyG8to/DeU1lNdQ3j95DeU1lNfgP2wor6G8huI/XkN5DeU15D9QXkN5DeXlP0N5DeU1lOc/NpTXUF5D6T8or6G8hvLqPxrKayivoew/DeU1lNdQ7j8AAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[20]},\"y\":{\"__ndarray__\":\"KSMt40ta8L+WpBQ6Vkrwv/KqpelHQfC/Mm3npBs+8L/1pdDTpD/wv0C9yp2VRPC/LuANlIVL8L/KR9PM+FLwv1QrV09nWfC/HlX2rURd8L9AApkCCF3wvwenodIzV/C/8yAW/F1K8L9RP8h0NzXwv/vXNcWTFvC/uY/XL+Da77+Os6J183Hvv3qrfkgn8e6/N4+ig7ZX7r8xUN2NV6Xtvw==\",\"dtype\":\"float64\",\"shape\":[20]}}},\"id\":\"772d40be-df36-4b55-bf1f-9bfa4f458066\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"source\":{\"id\":\"979f14d8-807d-4a48-9108-e5bf442b784c\",\"type\":\"ColumnDataSource\"}},\"id\":\"d5a395f4-138e-4abf-9754-b049dbf0e0e7\",\"type\":\"CDSView\"},{\"attributes\":{\"fill_color\":{\"value\":\"#9467bd\"},\"line_color\":{\"value\":\"#9467bd\"},\"size\":{\"units\":\"screen\",\"value\":3},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"5fa9516f-6e87-4266-b4cc-ed91dada30a3\",\"type\":\"Circle\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":3},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"a33aee5d-c310-4d1c-bf50-408475954a7e\",\"type\":\"Circle\"},{\"attributes\":{\"data_source\":{\"id\":\"8cbd432b-82ca-4634-be25-91f8da05bad1\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"5fa9516f-6e87-4266-b4cc-ed91dada30a3\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"a33aee5d-c310-4d1c-bf50-408475954a7e\",\"type\":\"Circle\"},\"selection_glyph\":null,\"view\":{\"id\":\"9bc5644f-46e2-4900-8bd2-0b454a76241c\",\"type\":\"CDSView\"}},\"id\":\"45e77f8a-0035-4a64-8ed0-0237e72d855b\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"cff90b7a-1e18-4634-a10e-107a87a6fad9\",\"type\":\"PanTool\"},{\"id\":\"cd3ec7cf-c050-4e7a-beff-a93b9346e347\",\"type\":\"WheelZoomTool\"},{\"id\":\"5ad16a60-0ac4-49d1-bed4-a868361e1ade\",\"type\":\"BoxZoomTool\"},{\"id\":\"994f216a-be00-4272-bac8-b6e25b853699\",\"type\":\"SaveTool\"},{\"id\":\"e508c1f5-49f1-4428-98c4-5d0904b4296e\",\"type\":\"ResetTool\"},{\"id\":\"3723bbd0-c396-450d-89e4-00da8ecf0185\",\"type\":\"HelpTool\"}]},\"id\":\"8a971c20-0a6f-4188-a61d-fb9cc7dc180e\",\"type\":\"Toolbar\"},{\"attributes\":{\"data_source\":{\"id\":\"e71e9dff-9bcc-4e18-89fc-c63a12a41d6c\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"44be161a-31cb-43e0-922c-0e7be5d504ed\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"88685923-f4d2-42b5-a9b7-5bda6a0e2a28\",\"type\":\"Circle\"},\"selection_glyph\":null,\"view\":{\"id\":\"37fe7147-3963-47f0-8d00-c4e9f985afaa\",\"type\":\"CDSView\"}},\"id\":\"f609c2e5-6b54-4177-ac28-b779bae59db8\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"fill_color\":{\"value\":\"#8c564b\"},\"line_color\":{\"value\":\"#8c564b\"},\"size\":{\"units\":\"screen\",\"value\":3},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"26ff7719-b830-417f-a629-0b7710f50dab\",\"type\":\"Circle\"},{\"attributes\":{\"source\":{\"id\":\"8cbd432b-82ca-4634-be25-91f8da05bad1\",\"type\":\"ColumnDataSource\"}},\"id\":\"9bc5644f-46e2-4900-8bd2-0b454a76241c\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"cd02fa02-87fa-466c-99cb-fe861f5936b6\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"b161afe9-fb72-42f0-9a10-97b9b8a47ebd\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"26ff7719-b830-417f-a629-0b7710f50dab\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"d60537c1-f036-439a-8882-844ed98aaab6\",\"type\":\"Circle\"},\"selection_glyph\":null,\"view\":{\"id\":\"f4d74efb-d52a-4d5d-b68b-12578869b470\",\"type\":\"CDSView\"}},\"id\":\"55959e64-01ad-4090-8e94-69bdf4ea103f\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"data_source\":{\"id\":\"772d40be-df36-4b55-bf1f-9bfa4f458066\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"6710f51f-30e8-4a7f-b089-dc72b312e58d\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"cd02fa02-87fa-466c-99cb-fe861f5936b6\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"9798dc83-9688-4c9a-b0ee-297b3c9408c3\",\"type\":\"CDSView\"}},\"id\":\"383f9d8e-700c-43fd-af4f-0f803b7a580d\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"e71e9dff-9bcc-4e18-89fc-c63a12a41d6c\",\"type\":\"ColumnDataSource\"}},\"id\":\"37fe7147-3963-47f0-8d00-c4e9f985afaa\",\"type\":\"CDSView\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAor6G8hvKqPyivobyG8ro/XkN5DeU1xD8or6G8hvLKP3kN5TWU19A/XkN5DeU11D9DeQ3lNZTXPyivobyG8to/DeU1lNdQ3j95DeU1lNfgP2wor6G8huI/XkN5DeU15D9QXkN5DeXlP0N5DeU1lOc/NpTXUF5D6T8or6G8hvLqPxrKayivoew/DeU1lNdQ7j8AAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[20]},\"y\":{\"__ndarray__\":\"gdcWS7LM9D+lOCKBC9nzP4PUB+Kf4fI/bKTe23Do8T+o5ECBY+/wP6dRHztx8O8/me5ycgoJ7j+rss7LWCvsP8ct5EC0Weo/X83y7v6V6D/DFRTioOHmP8KzjKeGPeU/ucXNfSOq4z/2VB35difiP075g38VteA/1wsdz2ek3j/0QRUwa/vbP+ZDrs14bNk/WzT/+nP01j86/WieA5DUPw==\",\"dtype\":\"float64\",\"shape\":[20]}}},\"id\":\"b161afe9-fb72-42f0-9a10-97b9b8a47ebd\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"source\":{\"id\":\"772d40be-df36-4b55-bf1f-9bfa4f458066\",\"type\":\"ColumnDataSource\"}},\"id\":\"9798dc83-9688-4c9a-b0ee-297b3c9408c3\",\"type\":\"CDSView\"},{\"attributes\":{\"line_color\":{\"value\":\"#e377c2\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"983c261b-d38a-4bda-a1c1-9b266adb2a0c\",\"type\":\"Line\"},{\"attributes\":{\"line_color\":{\"value\":\"#8c564b\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"7ee7f017-83e9-4969-8aaf-f66696d5930a\",\"type\":\"Line\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":3},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"d60537c1-f036-439a-8882-844ed98aaab6\",\"type\":\"Circle\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAor6G8hvKqPyivobyG8ro/XkN5DeU1xD8or6G8hvLKP3kN5TWU19A/XkN5DeU11D9DeQ3lNZTXPyivobyG8to/DeU1lNdQ3j95DeU1lNfgP2wor6G8huI/XkN5DeU15D9QXkN5DeXlP0N5DeU1lOc/NpTXUF5D6T8or6G8hvLqPxrKayivoew/DeU1lNdQ7j8AAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[20]},\"y\":{\"__ndarray__\":\"gdcWS7LM9D+lOCKBC9nzP4PUB+Kf4fI/bKTe23Do8T+o5ECBY+/wP6dRHztx8O8/me5ycgoJ7j+rss7LWCvsP8ct5EC0Weo/X83y7v6V6D/DFRTioOHmP8KzjKeGPeU/ucXNfSOq4z/2VB35difiP075g38VteA/1wsdz2ek3j/0QRUwa/vbP+ZDrs14bNk/WzT/+nP01j86/WieA5DUPw==\",\"dtype\":\"float64\",\"shape\":[20]}}},\"id\":\"bf70c163-6f37-4f42-856e-37fea1846b69\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"source\":{\"id\":\"b161afe9-fb72-42f0-9a10-97b9b8a47ebd\",\"type\":\"ColumnDataSource\"}},\"id\":\"f4d74efb-d52a-4d5d-b68b-12578869b470\",\"type\":\"CDSView\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":3},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"88685923-f4d2-42b5-a9b7-5bda6a0e2a28\",\"type\":\"Circle\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":3},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"e20ec72c-dbac-4744-9163-3fb955fd3869\",\"type\":\"Circle\"},{\"attributes\":{\"callback\":null},\"id\":\"349843da-50ca-4b99-b0ed-27bf2d54503a\",\"type\":\"DataRange1d\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAor6G8hvKqPyivobyG8ro/XkN5DeU1xD8or6G8hvLKP3kN5TWU19A/XkN5DeU11D9DeQ3lNZTXPyivobyG8to/DeU1lNdQ3j95DeU1lNfgP2wor6G8huI/XkN5DeU15D9QXkN5DeXlP0N5DeU1lOc/NpTXUF5D6T8or6G8hvLqPxrKayivoew/DeU1lNdQ7j8AAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[20]},\"y\":{\"__ndarray__\":\"98AfIZ1jAkD9YnEJ28QBQCIKewFhEAFA2ZTdIuVHAEC0rDq5fdr+P/s/qmm7BP0/LoenrIIS+z/pzEkn5Qf5P/EwHyz86PY/aX+1kuC59D9jm9N0pX7yP0EnbWdVO/A/xijwFuPn6z+lv/l95FjnP+N483uR0eI/WXIz4YKz3D+kVhuoh/LTP6YzfcGC38Y/FVxq2mHVqT8ub9DXb3Wyvw==\",\"dtype\":\"float64\",\"shape\":[20]}}},\"id\":\"4e44c5ef-5bde-4837-8d58-686e5a0d0ab7\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"callback\":null},\"id\":\"dcfa8be4-2b6a-4056-a4d5-11f1ae6bf41d\",\"type\":\"DataRange1d\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"f3045daf-dbfd-4977-975b-b4c51e982f49\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"bf70c163-6f37-4f42-856e-37fea1846b69\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"7ee7f017-83e9-4969-8aaf-f66696d5930a\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"f3045daf-dbfd-4977-975b-b4c51e982f49\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"9b832508-4779-4c93-b767-bb9041087b56\",\"type\":\"CDSView\"}},\"id\":\"d34ebee5-8321-4a58-9dcf-70e4fe597500\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"bfd90a43-afcb-48c0-ade1-9fc448b7eacf\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"source\":{\"id\":\"bf70c163-6f37-4f42-856e-37fea1846b69\",\"type\":\"ColumnDataSource\"}},\"id\":\"9b832508-4779-4c93-b767-bb9041087b56\",\"type\":\"CDSView\"},{\"attributes\":{\"fill_color\":{\"value\":\"#1f77b4\"},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":3},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"44be161a-31cb-43e0-922c-0e7be5d504ed\",\"type\":\"Circle\"},{\"attributes\":{\"fill_color\":{\"value\":\"#e377c2\"},\"line_color\":{\"value\":\"#e377c2\"},\"size\":{\"units\":\"screen\",\"value\":3},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"ea6a14a8-80ce-4c68-821c-f570acb66edf\",\"type\":\"Circle\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"a44f4b77-ae15-4b27-9d74-a92164cec0d8\",\"type\":\"Line\"},{\"attributes\":{\"formatter\":{\"id\":\"bfd90a43-afcb-48c0-ade1-9fc448b7eacf\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"685e476d-5a9d-4c07-a234-6658ca19844f\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"9b14edfd-72c3-4314-8f16-e53d18bb7e6b\",\"type\":\"BasicTicker\"}},\"id\":\"19c552e3-da98-4d76-bf18-cadb2530d1b3\",\"type\":\"LinearAxis\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAor6G8hvKqPyivobyG8ro/XkN5DeU1xD8or6G8hvLKP3kN5TWU19A/XkN5DeU11D9DeQ3lNZTXPyivobyG8to/DeU1lNdQ3j95DeU1lNfgP2wor6G8huI/XkN5DeU15D9QXkN5DeXlP0N5DeU1lOc/NpTXUF5D6T8or6G8hvLqPxrKayivoew/DeU1lNdQ7j8AAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[20]},\"y\":{\"__ndarray__\":\"98AfIZ1jAkD9YnEJ28QBQCIKewFhEAFA2ZTdIuVHAEC0rDq5fdr+P/s/qmm7BP0/LoenrIIS+z/pzEkn5Qf5P/EwHyz86PY/aX+1kuC59D9jm9N0pX7yP0EnbWdVO/A/xijwFuPn6z+lv/l95FjnP+N483uR0eI/WXIz4YKz3D+kVhuoh/LTP6YzfcGC38Y/FVxq2mHVqT8ub9DXb3Wyvw==\",\"dtype\":\"float64\",\"shape\":[20]}}},\"id\":\"e0c57d87-84c1-417e-b0ca-1a654c5d31de\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"9b14edfd-72c3-4314-8f16-e53d18bb7e6b\",\"type\":\"BasicTicker\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAor6G8hvKqPyivobyG8ro/XkN5DeU1xD8or6G8hvLKP3kN5TWU19A/XkN5DeU11D9DeQ3lNZTXPyivobyG8to/DeU1lNdQ3j95DeU1lNfgP2wor6G8huI/XkN5DeU15D9QXkN5DeXlP0N5DeU1lOc/NpTXUF5D6T8or6G8hvLqPxrKayivoew/DeU1lNdQ7j8AAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[20]},\"y\":{\"__ndarray__\":\"TCeUGhS48b83sAk8zMvwv9LMf+8tpO+/VLsYoTCY7b/UAyhUz3Xrv+X4FdQgP+m/qAYCpSf25r+TUMxU15zkv1ULEREcNeK/+teThMaB378DTXN2SoTavzAZEbLfddW/bg0RNONa0L8uLfwrEXDGv+Hm74C+Sbi/EUC7K/f2jb/gebAYv6ewP4sGPShyZ8I/9pTFl11MzD/FzcO/LvnSPw==\",\"dtype\":\"float64\",\"shape\":[20]}}},\"id\":\"8b64f2b0-c1f9-4a7f-a84a-4e61f82dafc9\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"5262325a-983b-46c7-871c-f67a97fe4fa8\",\"type\":\"LinearScale\"},{\"attributes\":{\"data_source\":{\"id\":\"4e44c5ef-5bde-4837-8d58-686e5a0d0ab7\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"ea6a14a8-80ce-4c68-821c-f570acb66edf\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"e20ec72c-dbac-4744-9163-3fb955fd3869\",\"type\":\"Circle\"},\"selection_glyph\":null,\"view\":{\"id\":\"db65d348-e19e-4f31-8bb0-3ea44a987cc2\",\"type\":\"CDSView\"}},\"id\":\"fa7b800d-6ba0-44a2-96ab-d52e2ae3f875\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"f8b92f02-f83d-415b-80ee-6b5d93674ae2\",\"type\":\"BasicTicker\"},{\"attributes\":{\"source\":{\"id\":\"4e44c5ef-5bde-4837-8d58-686e5a0d0ab7\",\"type\":\"ColumnDataSource\"}},\"id\":\"db65d348-e19e-4f31-8bb0-3ea44a987cc2\",\"type\":\"CDSView\"},{\"attributes\":{\"formatter\":{\"id\":\"9e39fd06-1533-4d75-840a-4a733eaa9f30\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"685e476d-5a9d-4c07-a234-6658ca19844f\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"f8b92f02-f83d-415b-80ee-6b5d93674ae2\",\"type\":\"BasicTicker\"}},\"id\":\"4c9a6df0-1914-4e97-b5ea-dc8c551ce538\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"555d8ab1-edab-415e-9768-f74c61871132\",\"type\":\"LinearScale\"},{\"attributes\":{\"source\":{\"id\":\"e0c57d87-84c1-417e-b0ca-1a654c5d31de\",\"type\":\"ColumnDataSource\"}},\"id\":\"7b6af34e-1d89-46af-845e-c7f99ce922e1\",\"type\":\"CDSView\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"685e476d-5a9d-4c07-a234-6658ca19844f\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"f8b92f02-f83d-415b-80ee-6b5d93674ae2\",\"type\":\"BasicTicker\"}},\"id\":\"bd9d5ab4-3a6a-4ac5-ae1b-ee6433ebef3f\",\"type\":\"Grid\"},{\"attributes\":{\"data_source\":{\"id\":\"e0c57d87-84c1-417e-b0ca-1a654c5d31de\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"983c261b-d38a-4bda-a1c1-9b266adb2a0c\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"a44f4b77-ae15-4b27-9d74-a92164cec0d8\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"7b6af34e-1d89-46af-845e-c7f99ce922e1\",\"type\":\"CDSView\"}},\"id\":\"4cc04d69-c211-4af6-828d-7ba0aaf0d371\",\"type\":\"GlyphRenderer\"}],\"root_ids\":[\"685e476d-5a9d-4c07-a234-6658ca19844f\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.10\"}};\n",
" var render_items = [{\"docid\":\"c5401ea5-11e0-4510-b0f2-aa05b7151666\",\"elementid\":\"102d5159-3dcb-4207-baf2-1e7633a2541b\",\"modelid\":\"685e476d-5a9d-4c07-a234-6658ca19844f\"}];\n",
"\n",
" root.Bokeh.embed.embed_items(docs_json, render_items);\n",
" }\n",
"\n",
" if (root.Bokeh !== undefined) {\n",
" embed_document(root);\n",
" } else {\n",
" var attempts = 0;\n",
" var timer = setInterval(function(root) {\n",
" if (root.Bokeh !== undefined) {\n",
" embed_document(root);\n",
" clearInterval(timer);\n",
" }\n",
" attempts++;\n",
" if (attempts > 100) {\n",
" console.log(\"Bokeh: ERROR: Unable to embed document because BokehJS library is missing\")\n",
" clearInterval(timer);\n",
" }\n",
" }, 10, root)\n",
" }\n",
"})(window);"
],
"application/vnd.bokehjs_exec.v0+json": ""
},
"metadata": {
"application/vnd.bokehjs_exec.v0+json": {
"id": "685e476d-5a9d-4c07-a234-6658ca19844f"
}
},
"output_type": "display_data"
}
],
"source": [
"p = figure(plot_width=800, plot_height=500)\n",
"D = 20\n",
"xs = np.linspace(0, 1, D)\n",
"for color in Category10[10]:\n",
" ys = np.random.multivariate_normal(m(xs), k(xs, xs))\n",
" p.circle(xs, ys, size=3, color=color)\n",
" p.line(xs, ys, line_width=1, color=color)\n",
"\n",
"show(p)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we have something thats starting to look like a distribution over (useful) functions! And we can see how as the number of dimensions tends to infinity we don't have to connect points any more because we will have a point for every possible choice of input.\n",
"\n",
"Let's use more dimensions and see what it looks like across a bigger range of inputs:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"n = 100\n",
"xs = np.linspace(-5, 5, n)\n",
"K = k(xs, xs, sigma=1, l=1)\n",
"mu = m(xs)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"<div class=\"bk-root\">\n",
" <div class=\"bk-plotdiv\" id=\"5138fc8d-8651-4151-a724-fe5df7911d2e\"></div>\n",
"</div>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/javascript": [
"(function(root) {\n",
" function embed_document(root) {\n",
" var docs_json = {\"5361bba2-7dff-4a39-b9f2-ebcf7fb60571\":{\"roots\":{\"references\":[{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"line_width\":{\"value\":2},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"c9959e28-9504-4836-8b54-4dc5ef08ff87\",\"type\":\"Line\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"014ff039-22af-4037-b03c-414bb6d6a8bb\",\"type\":\"PanTool\"},{\"id\":\"d925f780-cbaa-473f-9b01-f8c9cca49a12\",\"type\":\"WheelZoomTool\"},{\"id\":\"17029583-52d4-43c8-8f8a-ba05b36b129f\",\"type\":\"BoxZoomTool\"},{\"id\":\"7c46f40a-3768-418d-9bdc-e507cdd08649\",\"type\":\"SaveTool\"},{\"id\":\"b43093c8-bc3f-48ff-897a-9d996da706a3\",\"type\":\"ResetTool\"},{\"id\":\"bc91c84f-b311-4173-b6ea-c74c107b8eaa\",\"type\":\"HelpTool\"}]},\"id\":\"14bb75a8-8bfe-43e4-87b5-6cfef9f0e6e8\",\"type\":\"Toolbar\"},{\"attributes\":{\"source\":{\"id\":\"7f2e0442-c1f3-4a84-a767-5924fc6cbf73\",\"type\":\"ColumnDataSource\"}},\"id\":\"0148c285-2dc8-4c4e-84e4-57f9a6c7d2fd\",\"type\":\"CDSView\"},{\"attributes\":{\"data_source\":{\"id\":\"c4914b0d-8e1f-47b0-ae5e-5cfdddc0dfbe\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"785cd17a-5f01-4559-9bb2-7056889340d0\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"c9959e28-9504-4836-8b54-4dc5ef08ff87\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"53a9ad2e-30bf-465e-acf8-0d93583fd90a\",\"type\":\"CDSView\"}},\"id\":\"ad822329-9e7e-46ff-b97e-e29793c58610\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"below\":[{\"id\":\"1fcbcc9a-37e2-475e-964a-24a3bdd07992\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"c7878aa0-5fb6-43f5-bc66-7a92618b2b60\",\"type\":\"LinearAxis\"}],\"plot_height\":500,\"plot_width\":800,\"renderers\":[{\"id\":\"1fcbcc9a-37e2-475e-964a-24a3bdd07992\",\"type\":\"LinearAxis\"},{\"id\":\"b02daab2-68f3-4319-8595-238be70f2a0a\",\"type\":\"Grid\"},{\"id\":\"c7878aa0-5fb6-43f5-bc66-7a92618b2b60\",\"type\":\"LinearAxis\"},{\"id\":\"d94aba14-ccb6-4c10-8c96-e20a5601700c\",\"type\":\"Grid\"},{\"id\":\"179e7340-5d28-4dfe-8e4f-c87962f39fd6\",\"type\":\"BoxAnnotation\"},{\"id\":\"ad822329-9e7e-46ff-b97e-e29793c58610\",\"type\":\"GlyphRenderer\"},{\"id\":\"a85c5909-2ad9-4e8c-928d-6426adcc13ed\",\"type\":\"GlyphRenderer\"},{\"id\":\"6a1ea014-6be4-4a64-a528-c4d4ed97d04e\",\"type\":\"GlyphRenderer\"},{\"id\":\"5b29fa32-e9e4-4163-963b-ef6e3d8d36db\",\"type\":\"GlyphRenderer\"},{\"id\":\"924408fb-5940-4171-962d-f44767ef3e89\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"004bb103-ac2d-4305-8d1f-3f6e3349f28f\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"14bb75a8-8bfe-43e4-87b5-6cfef9f0e6e8\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"091989be-dca6-4f45-b31e-b8ea17490335\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"6798f8c5-cca1-444b-af92-70e514d6c62b\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"0c5ae961-a1b1-44db-94ed-082f02853c78\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"84ab7cb6-2986-47dc-ab0d-c08a2a15194d\",\"type\":\"LinearScale\"}},\"id\":\"4d429153-3d1a-4ed8-96df-e5a47f5808d1\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"fc5fcf00-712e-4d58-9b81-50e97628120b\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"179e7340-5d28-4dfe-8e4f-c87962f39fd6\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"59aec4ac-13d6-4355-b033-465364601f26\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"line_color\":{\"value\":\"#1f77b4\"},\"line_width\":{\"value\":2},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"785cd17a-5f01-4559-9bb2-7056889340d0\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"b43093c8-bc3f-48ff-897a-9d996da706a3\",\"type\":\"ResetTool\"},{\"attributes\":{\"callback\":null},\"id\":\"091989be-dca6-4f45-b31e-b8ea17490335\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"bc91c84f-b311-4173-b6ea-c74c107b8eaa\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"7c46f40a-3768-418d-9bdc-e507cdd08649\",\"type\":\"SaveTool\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAFMBDYt7OkJgTwIbEvJ0hMRPAyiabbLLJEsANiXk7Q2ISwFDrVwrU+hHAk0022WSTEcDXrxSo9SsRwBoS83aGxBDAXXTRRRddEMBArV8pUOsPwMdxHMdxHA/ATjbZZJNNDsDU+pUCtX4NwFq/UqDWrwzA4YMPPvjgC8BoSMzbGRILwO4MiXk7QwrAdNFFF110CcD7lQK1fqUIwIFav1Kg1gfACB988MEHB8CO4ziO4zgGwBWo9SsFagXAm2yyySabBMAiMW9nSMwDwKj1KwVq/QLAL7rooosuAsC1fqVArV8BwDxDYt7OkADAhA8++OCD/7+SmLczJOb9v54hMW9nSPy/qqqqqqqq+r+4MyTm7Qz5v8S8nSExb/e/0kUXXXTR9b/ezpCYtzP0v+xXCtT6lfK/+OCDDz748L8I1PqVArXuvyjm7QyJeeu/QPjggw8+6L9YCtT6lQLlv3Acx3Ecx+G/IF100UUX3b9QgVq/UqDWv4ClQK1fKdC/YJNNNtlkw78Ab2dIzNupvwBvZ0jM26k/YJNNNtlkwz+ApUCtXynQP1CBWr9SoNY/EF100UUX3T9wHMdxHMfhP1gK1PqVAuU/QPjggw8+6D8g5u0MiXnrPwjU+pUCte4/+OCDDz748D/sVwrU+pXyP9zOkJi3M/Q/0EUXXXTR9T/EvJ0hMW/3P7gzJObtDPk/rKqqqqqq+j+cITFvZ0j8P5CYtzMk5v0/hA8++OCD/z88Q2LezpAAQLR+pUCtXwFALrrooosuAkCo9SsFav0CQCIxb2dIzANAmmyyySabBEAUqPUrBWoFQI7jOI7jOAZACB988MEHB0CAWr9SoNYHQPyVArV+pQhAdNFFF110CUDsDIl5O0MKQGhIzNsZEgtA4IMPPvjgC0Bcv1Kg1q8MQNT6lQK1fg1ATDbZZJNNDkDIcRzHcRwPQECtXylQ6w9AXHTRRRddEEAaEvN2hsQQQNavFKj1KxFAlE022WSTEUBQ61cK1PoRQAyJeTtDYhJAyiabbLLJEkCGxLydITETQERi3s6QmBNAAAAAAAAAFEA=\",\"dtype\":\"float64\",\"shape\":[100]},\"y\":{\"__ndarray__\":\"c+ANrjER5D844McW4yjiP2KmUEVb3t8/QR1yI6s82z+poWewauHWP+TtLm1/ONM/Lawc9zuc0D/ZwBHJNpvOPypNZzfC3M4/wzwDKLH90D9FZwA1nNfTP4m1AEO5t9c/WuA3N6w+3D+RHqwxDH3gPwM2jhctt+I/JXeGn4uQ5D+H63un2tHlP1J4rtxfTuY/ETIAFqjn5T+dIZQJ54/kPwzBO7DCSuI/55+96flY3j+NXKYNIa/WP6E4qWov5Ms/0XWRBIYgsj8o+vR75Je0v9h6kVA3bM2/uKLtCYbU17867rAknCDgv0kHnaNB6eO/Mk5Kvl0657+1HX/OqBPqv9Z4CQP4e+y/9Lbo3kR+7r876uteUBPwvyzgDSLIv/C/o4rmWBNI8b/6TJJdja3xv3rtAf9y7/G/akaLtGYL8r9IuOn/SP7xv/NQ1oI4xfG/MRgXQYde8b8kZyj9dsrwv7ixOzabC/C/FXBLo51N7r8ocpt1f0XsvytvhqxLDuq/ho8LHpa35794XUB3GU/lv/c4EO0P3+K/VJQTkBxt4L+tC4eC8/Pbv0qsD+/WA9e/KSjAn7f70b8vmveIpJPJv8Bac5f/cL2/4QICD/tCmr8e7o07+p2xP3x/yxsQkcU/o610gYp40T8CMTbsFGnYP8FoRbpRhN8/bpSNVAJX4z+0d1p8UuLmP/d+whxBUeo/LvZ4vHaP7T/ZL5Fu40PwPycd6dZ/kvE/Ly+UgXWp8j+T9k8kv3/zPwDGon4TDvQ/6uvrcYRP9D9PdVsY/kH0PytJYq2J5vM/xOWju0BB8z/yUwQH41jyP/LtutAWNvE/DJ6uINDE7z/JD6BGVs7sP5NdCxvlmOk/9AAuBZAw5j/46jfTpZziP+YtM80cwN0/ULq16Y711T9VIznPQrHLP9iXq166tbU/JTiZY3Lkqb/OeXf7TArIv+6ehy5FuNS/K61ylb0N3b8WFZZFUFbiv6A+9Nn9mOW/LdveKzMd6L9UWU+2i7bpv/M4TAqBQ+q/9YK/+h2y6b+Qg2tgGwPovyOnpRzdSuW/DbQOfCCw4b8=\",\"dtype\":\"float64\",\"shape\":[100]}}},\"id\":\"c4914b0d-8e1f-47b0-ae5e-5cfdddc0dfbe\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"6798f8c5-cca1-444b-af92-70e514d6c62b\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"014ff039-22af-4037-b03c-414bb6d6a8bb\",\"type\":\"PanTool\"},{\"attributes\":{\"plot\":null,\"text\":\"\"},\"id\":\"004bb103-ac2d-4305-8d1f-3f6e3349f28f\",\"type\":\"Title\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAFMBDYt7OkJgTwIbEvJ0hMRPAyiabbLLJEsANiXk7Q2ISwFDrVwrU+hHAk0022WSTEcDXrxSo9SsRwBoS83aGxBDAXXTRRRddEMBArV8pUOsPwMdxHMdxHA/ATjbZZJNNDsDU+pUCtX4NwFq/UqDWrwzA4YMPPvjgC8BoSMzbGRILwO4MiXk7QwrAdNFFF110CcD7lQK1fqUIwIFav1Kg1gfACB988MEHB8CO4ziO4zgGwBWo9SsFagXAm2yyySabBMAiMW9nSMwDwKj1KwVq/QLAL7rooosuAsC1fqVArV8BwDxDYt7OkADAhA8++OCD/7+SmLczJOb9v54hMW9nSPy/qqqqqqqq+r+4MyTm7Qz5v8S8nSExb/e/0kUXXXTR9b/ezpCYtzP0v+xXCtT6lfK/+OCDDz748L8I1PqVArXuvyjm7QyJeeu/QPjggw8+6L9YCtT6lQLlv3Acx3Ecx+G/IF100UUX3b9QgVq/UqDWv4ClQK1fKdC/YJNNNtlkw78Ab2dIzNupvwBvZ0jM26k/YJNNNtlkwz+ApUCtXynQP1CBWr9SoNY/EF100UUX3T9wHMdxHMfhP1gK1PqVAuU/QPjggw8+6D8g5u0MiXnrPwjU+pUCte4/+OCDDz748D/sVwrU+pXyP9zOkJi3M/Q/0EUXXXTR9T/EvJ0hMW/3P7gzJObtDPk/rKqqqqqq+j+cITFvZ0j8P5CYtzMk5v0/hA8++OCD/z88Q2LezpAAQLR+pUCtXwFALrrooosuAkCo9SsFav0CQCIxb2dIzANAmmyyySabBEAUqPUrBWoFQI7jOI7jOAZACB988MEHB0CAWr9SoNYHQPyVArV+pQhAdNFFF110CUDsDIl5O0MKQGhIzNsZEgtA4IMPPvjgC0Bcv1Kg1q8MQNT6lQK1fg1ATDbZZJNNDkDIcRzHcRwPQECtXylQ6w9AXHTRRRddEEAaEvN2hsQQQNavFKj1KxFAlE022WSTEUBQ61cK1PoRQAyJeTtDYhJAyiabbLLJEkCGxLydITETQERi3s6QmBNAAAAAAAAAFEA=\",\"dtype\":\"float64\",\"shape\":[100]},\"y\":{\"__ndarray__\":\"qzAn5zGY8r8CXki6THDyvz/12TuUd/K/Q3l7hpGj8r+uB9mQYuXyvwImZNs2K/O/rhx/mQBi87/TzIzMJ3fzv0EvD1AQWvO/I81ptFL98r/K91YOlVfyvxWAA44DZPG/Q8WKI3Ii8L+Txw7Xay7tv5DYKECOlem//J7rtHaS5b/wWi/ORUPhv+fjH8k1ldm/VyogdPSb0L/AiSgBkqC/v1h4MCjpFW0/ty24fcEPvj9Z77WXbm3LP6rdDlrsn9I/CyglU5cb1j+bsqrkUBbYP4NEk4NMjtg/AfyhqlOT1z8M00IlrEXVP96klcH909E/C87xXZ/wyj8m9ajZsujAP5tfj/8na6g/r6W7uqK/o781V9v1mW+/v8VmdI4wzsm/nYUMR4pt0b+ufgtqh1DVv/NOvdZlf9i/riYBuhD32r91Zr4CWsDcvytKIHBA7d2/lFs2EHCV3r8dJJB+ZdLev/bNTyyfu96/EyCwbllj3r9W8RVlPtTdv8iNZVlNEN2/HiWhKCgR3L+K8dLWqcnav17A+HudKNm/fdQhNRYc17/iXUQTCJXUv8wuO7p3itG/VSWhT8z3y7+xJbFcEuXDv5/f95TIBLa/qF6B8ehciL9G83S2JZ6wP4jws2MnNcI/7bxe1iXmyz9OntB1AZHSPz1zou5b2dY/kmsice+22j8xVyc+BRreP2zO5yaTe+A/QhZ44qOi4T/I8Wtn9H3iPx5AJIfJCOM/v3c/T5c94z+JwQV5NRbjP2LdOWKgjOI/FfarTzec4T8DQJvwRkPgP2kI+NBRCd0/l942aGDS2D9oH6aeRgHUP9xhiaY/iM0/9XJa8Dutwj/uazX/BvuvP1ikwtZFio6/X/NKM6DYtL/l01tTZ/rAv2qwRPg2GcW/ZP8faJBzxr9/2NiLyuLEvzR2sUkTdcC/l+ol8lbesr+NcmpUKkRiv/pGSnFwtLQ/JQJUMA+5xT8JrwP8R4HQP0nQ9SSjs9U/kR7WSr8U2j8kbv9iy1XdP/5/YZR/Pd8/7FMoVIar3z+ZXo3VpZneP5DXEUW+Gtw/swi/3+pX2D8=\",\"dtype\":\"float64\",\"shape\":[100]}}},\"id\":\"5e15c713-3924-4ad4-92a0-e2327640befb\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_color\":{\"value\":\"#ff7f0e\"},\"line_width\":{\"value\":2},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"b14fae9e-d724-46ea-8164-2fe2995d7409\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"ba420cd0-2c62-4f04-8005-501cceb4b066\",\"type\":\"ColumnDataSource\"}},\"id\":\"92f31f84-9870-463d-88c5-3d5ef0d2d75f\",\"type\":\"CDSView\"},{\"attributes\":{\"source\":{\"id\":\"c4914b0d-8e1f-47b0-ae5e-5cfdddc0dfbe\",\"type\":\"ColumnDataSource\"}},\"id\":\"53a9ad2e-30bf-465e-acf8-0d93583fd90a\",\"type\":\"CDSView\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAFMBDYt7OkJgTwIbEvJ0hMRPAyiabbLLJEsANiXk7Q2ISwFDrVwrU+hHAk0022WSTEcDXrxSo9SsRwBoS83aGxBDAXXTRRRddEMBArV8pUOsPwMdxHMdxHA/ATjbZZJNNDsDU+pUCtX4NwFq/UqDWrwzA4YMPPvjgC8BoSMzbGRILwO4MiXk7QwrAdNFFF110CcD7lQK1fqUIwIFav1Kg1gfACB988MEHB8CO4ziO4zgGwBWo9SsFagXAm2yyySabBMAiMW9nSMwDwKj1KwVq/QLAL7rooosuAsC1fqVArV8BwDxDYt7OkADAhA8++OCD/7+SmLczJOb9v54hMW9nSPy/qqqqqqqq+r+4MyTm7Qz5v8S8nSExb/e/0kUXXXTR9b/ezpCYtzP0v+xXCtT6lfK/+OCDDz748L8I1PqVArXuvyjm7QyJeeu/QPjggw8+6L9YCtT6lQLlv3Acx3Ecx+G/IF100UUX3b9QgVq/UqDWv4ClQK1fKdC/YJNNNtlkw78Ab2dIzNupvwBvZ0jM26k/YJNNNtlkwz+ApUCtXynQP1CBWr9SoNY/EF100UUX3T9wHMdxHMfhP1gK1PqVAuU/QPjggw8+6D8g5u0MiXnrPwjU+pUCte4/+OCDDz748D/sVwrU+pXyP9zOkJi3M/Q/0EUXXXTR9T/EvJ0hMW/3P7gzJObtDPk/rKqqqqqq+j+cITFvZ0j8P5CYtzMk5v0/hA8++OCD/z88Q2LezpAAQLR+pUCtXwFALrrooosuAkCo9SsFav0CQCIxb2dIzANAmmyyySabBEAUqPUrBWoFQI7jOI7jOAZACB988MEHB0CAWr9SoNYHQPyVArV+pQhAdNFFF110CUDsDIl5O0MKQGhIzNsZEgtA4IMPPvjgC0Bcv1Kg1q8MQNT6lQK1fg1ATDbZZJNNDkDIcRzHcRwPQECtXylQ6w9AXHTRRRddEEAaEvN2hsQQQNavFKj1KxFAlE022WSTEUBQ61cK1PoRQAyJeTtDYhJAyiabbLLJEkCGxLydITETQERi3s6QmBNAAAAAAAAAFEA=\",\"dtype\":\"float64\",\"shape\":[100]},\"y\":{\"__ndarray__\":\"xYfYgJgJ5L/0q34tM7Xgv6lPWD+Q0dq/HDwl6H9l1L8wo6QbtnnMv4VU/q4rzMC/2ewCS/kzp7+Ca5q8UCuiP+Ou0onmoLw/a8ddjUOhxz9AgiEtpE3QP123ZeqSqtQ/EiQR/oXr2D+lNxjv8QrdP5nC0QByfOA/WcMragpO4j+mgZ50ZurjPwnvQUWYQOU/AJcKgyRB5j9DULjQheDmP4HZ3OZHGec/2FCzgGPt5j/uN1LTrmbmP0cNnA1OluU/VwcxgUqT5D9SKsdiinjjP0Q0zcJ5YuI/02CrrLts4T8YaYN7ILDgP7nqi8sUQeA/p2JtMY4u4D8m75uHbYHgP6NImAE3POE/ds12wf1a4j/mmE+4aNPjPw73IlLKlOU/PSUqb1KI5z954UtId5HpP9UVmKmxjus/y9K0MK1a7T8nxfQo8c3uP/qMsJv5wO8/Ey+Z5k8H8D9c1Kg1lJbvP0pBATu2P+4//r2PkQD66z87STAh5b/oPw6PFLT0luQ/gng1sKAf3z+p+BlE4IrTP6NEzOTE3ro/Y2o4afMMvL85IwbosUTVv7veFRO/0uG/JEpKS6ve6L/ORkPA75Pvv9xUEVtt4vK/mqqSFE+l9b+l+pkjuQP4vw8oX0oh9Pm/BrjhD9hy+79dvV49HoL8v4sDwKfBKf2/SskVOEB2/b/kRs9egnf9v511KqZOP/2/qgBqnqHf/L+Zt/RdHmn8v/MKd+LF6fu/SzCUUxts+7880gqBx/b6v+GM9V67jPq/89ll+b0t+r9ztXg4Q9f5v6Qzhihihfm/qdDM98Ez+b+QfK3tXN74v2d7WQEEgvi/YiGphZ0c+L8sNBgEJa33vwVZQSl8M/e/qSHHAyCw9r+oy8H01iP2v2X6z/Rlj/W/J8cl6Vfz9L8BKGNE2U/0v3aeyRanpPO/5Xue7w7x8r/L0tOr9zPyvy/peeDza/G/eC1+L1iX8L8/Fhdhsmjvv6dG91Regu2/gIiSHYl46781hXJd10jpv8/pfKw58ua/cH9piGd15L/0rjkuTdXhv9IPRRaoLt6/6gUOk9iG2L8=\",\"dtype\":\"float64\",\"shape\":[100]}}},\"id\":\"8d9b5071-4a54-4d5b-a921-7b7f04f5acf0\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"callback\":null},\"id\":\"0c5ae961-a1b1-44db-94ed-082f02853c78\",\"type\":\"DataRange1d\"},{\"attributes\":{\"line_color\":{\"value\":\"#d62728\"},\"line_width\":{\"value\":2},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"db9bfd20-6be1-4dec-9295-8c81b20a18c1\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"8d9b5071-4a54-4d5b-a921-7b7f04f5acf0\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"b14fae9e-d724-46ea-8164-2fe2995d7409\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"14e0d474-a1ea-4ad1-9e42-2be238f9d169\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"28392dd6-6b40-4a20-86b8-96da998dafd4\",\"type\":\"CDSView\"}},\"id\":\"a85c5909-2ad9-4e8c-928d-6426adcc13ed\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_color\":{\"value\":\"#2ca02c\"},\"line_width\":{\"value\":2},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"32994b49-ce27-4698-871d-39c9e6b5f83d\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"d925f780-cbaa-473f-9b01-f8c9cca49a12\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAFMBDYt7OkJgTwIbEvJ0hMRPAyiabbLLJEsANiXk7Q2ISwFDrVwrU+hHAk0022WSTEcDXrxSo9SsRwBoS83aGxBDAXXTRRRddEMBArV8pUOsPwMdxHMdxHA/ATjbZZJNNDsDU+pUCtX4NwFq/UqDWrwzA4YMPPvjgC8BoSMzbGRILwO4MiXk7QwrAdNFFF110CcD7lQK1fqUIwIFav1Kg1gfACB988MEHB8CO4ziO4zgGwBWo9SsFagXAm2yyySabBMAiMW9nSMwDwKj1KwVq/QLAL7rooosuAsC1fqVArV8BwDxDYt7OkADAhA8++OCD/7+SmLczJOb9v54hMW9nSPy/qqqqqqqq+r+4MyTm7Qz5v8S8nSExb/e/0kUXXXTR9b/ezpCYtzP0v+xXCtT6lfK/+OCDDz748L8I1PqVArXuvyjm7QyJeeu/QPjggw8+6L9YCtT6lQLlv3Acx3Ecx+G/IF100UUX3b9QgVq/UqDWv4ClQK1fKdC/YJNNNtlkw78Ab2dIzNupvwBvZ0jM26k/YJNNNtlkwz+ApUCtXynQP1CBWr9SoNY/EF100UUX3T9wHMdxHMfhP1gK1PqVAuU/QPjggw8+6D8g5u0MiXnrPwjU+pUCte4/+OCDDz748D/sVwrU+pXyP9zOkJi3M/Q/0EUXXXTR9T/EvJ0hMW/3P7gzJObtDPk/rKqqqqqq+j+cITFvZ0j8P5CYtzMk5v0/hA8++OCD/z88Q2LezpAAQLR+pUCtXwFALrrooosuAkCo9SsFav0CQCIxb2dIzANAmmyyySabBEAUqPUrBWoFQI7jOI7jOAZACB988MEHB0CAWr9SoNYHQPyVArV+pQhAdNFFF110CUDsDIl5O0MKQGhIzNsZEgtA4IMPPvjgC0Bcv1Kg1q8MQNT6lQK1fg1ATDbZZJNNDkDIcRzHcRwPQECtXylQ6w9AXHTRRRddEEAaEvN2hsQQQNavFKj1KxFAlE022WSTEUBQ61cK1PoRQAyJeTtDYhJAyiabbLLJEkCGxLydITETQERi3s6QmBNAAAAAAAAAFEA=\",\"dtype\":\"float64\",\"shape\":[100]},\"y\":{\"__ndarray__\":\"ZgeMohxG5T+Tu90NrF7rPwlp00ZvlPA/W+HXVEM08z+6R5751XH1PzO8DHbMM/c/gQimw+xm+D/GlT24OAD5P+ZSHQhL/vg/X/dkjrJp+D8zlsLaK1T3P9HUTVHB1vU/rx4MYRAP9D8zGt3kDhzyP/Mx02vGGvA//o402fZG7D+lf6N2RY/oPxx8GifGIeU/fRsu62wC4j+nPvi1K1DeP9+cj/OLANk/U4HvhlTn0z+YQuVVUKrNPw+nfFT3QsM/qvPRm8++sD+WLuMXiumYv1I7csC3aL6/tJ4OJ8jRy79MOP3VpGnUv9t5R7ipCNu/PvwmAHjZ4L+F7Ez4HSzkv6vNZwWldee/38vXcSew6r8O7Dr3HtXtv5k5u/fpbfC/SNUqOwXc8b9frtWJrizzv0n/xPrIVfS/F+5MdQRM9b+10uA/EQT2vwa/ewcodPa/qBhpoqGV9r84bd7uWWb2vxxdy3ST6fW/kG3MLyso9b8kBjbLBjD0vwF5NsDJEvO/sCeZjgPk8b9eojuqHLfwv/Kp7Xi1Ou+/zPzWR5RI7b/vTn9elKnrv1pJOs2wZeq/jTaQwSl86b9KwZyYrOXov/H1Df8Zl+i/Df/xSF2E6L+UYStPxKLov2gxO8l+6ui/eCQkzRBX6b/Kicl8zebpv/DBMWeSmeq/qgm0PiVv67+4HPqvl2Xsvxn3e1IHeO2/Tkhbsfmd7r/wvxWNZsvvv+8CGRqyePC/cyjAWqn/8L/TSyhTJXLxv/9wQ9dOyPG/3XV3UJ378b/FLEjmawfyv/Sv5vJp6fG/eSqImOah8b82UQ4s+TPxv/MPOHOGpfC/WVtmA0b+779SmvBtl5fuv7jw/U/hMO2/HYoHco/m67+VfK1H1dXqv7cgMHKIGuq/C85a58HM6b/4XfRNfP7pv68qblp+ueq//CwZQd79678ZOcQAasHtv85gj9wm8O+/zIMxuPs28b+5yKNkqIzyv4vXTDBb5/O/CkmnOEs29b/5f16ug2v2v6JqaUdyffe/1dQBCu1n+L/fEQEaiCz5v6ewItAt0vm/nDHGzgJk+r8=\",\"dtype\":\"float64\",\"shape\":[100]}}},\"id\":\"ba420cd0-2c62-4f04-8005-501cceb4b066\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"overlay\":{\"id\":\"179e7340-5d28-4dfe-8e4f-c87962f39fd6\",\"type\":\"BoxAnnotation\"}},\"id\":\"17029583-52d4-43c8-8f8a-ba05b36b129f\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"line_width\":{\"value\":2},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"14e0d474-a1ea-4ad1-9e42-2be238f9d169\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"line_width\":{\"value\":2},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"929a0c0e-a527-4ac3-9ecb-3020d5a0a1be\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"ba420cd0-2c62-4f04-8005-501cceb4b066\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"32994b49-ce27-4698-871d-39c9e6b5f83d\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"929a0c0e-a527-4ac3-9ecb-3020d5a0a1be\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"92f31f84-9870-463d-88c5-3d5ef0d2d75f\",\"type\":\"CDSView\"}},\"id\":\"6a1ea014-6be4-4a64-a528-c4d4ed97d04e\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"formatter\":{\"id\":\"fc5fcf00-712e-4d58-9b81-50e97628120b\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"4d429153-3d1a-4ed8-96df-e5a47f5808d1\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"01d4aff4-2c48-4c30-ba2c-99bcc049ca1f\",\"type\":\"BasicTicker\"}},\"id\":\"1fcbcc9a-37e2-475e-964a-24a3bdd07992\",\"type\":\"LinearAxis\"},{\"attributes\":{\"source\":{\"id\":\"8d9b5071-4a54-4d5b-a921-7b7f04f5acf0\",\"type\":\"ColumnDataSource\"}},\"id\":\"28392dd6-6b40-4a20-86b8-96da998dafd4\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"01d4aff4-2c48-4c30-ba2c-99bcc049ca1f\",\"type\":\"BasicTicker\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"line_width\":{\"value\":2},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"01faf8bd-160f-4310-b25b-f75e14aad90d\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAFMBDYt7OkJgTwIbEvJ0hMRPAyiabbLLJEsANiXk7Q2ISwFDrVwrU+hHAk0022WSTEcDXrxSo9SsRwBoS83aGxBDAXXTRRRddEMBArV8pUOsPwMdxHMdxHA/ATjbZZJNNDsDU+pUCtX4NwFq/UqDWrwzA4YMPPvjgC8BoSMzbGRILwO4MiXk7QwrAdNFFF110CcD7lQK1fqUIwIFav1Kg1gfACB988MEHB8CO4ziO4zgGwBWo9SsFagXAm2yyySabBMAiMW9nSMwDwKj1KwVq/QLAL7rooosuAsC1fqVArV8BwDxDYt7OkADAhA8++OCD/7+SmLczJOb9v54hMW9nSPy/qqqqqqqq+r+4MyTm7Qz5v8S8nSExb/e/0kUXXXTR9b/ezpCYtzP0v+xXCtT6lfK/+OCDDz748L8I1PqVArXuvyjm7QyJeeu/QPjggw8+6L9YCtT6lQLlv3Acx3Ecx+G/IF100UUX3b9QgVq/UqDWv4ClQK1fKdC/YJNNNtlkw78Ab2dIzNupvwBvZ0jM26k/YJNNNtlkwz+ApUCtXynQP1CBWr9SoNY/EF100UUX3T9wHMdxHMfhP1gK1PqVAuU/QPjggw8+6D8g5u0MiXnrPwjU+pUCte4/+OCDDz748D/sVwrU+pXyP9zOkJi3M/Q/0EUXXXTR9T/EvJ0hMW/3P7gzJObtDPk/rKqqqqqq+j+cITFvZ0j8P5CYtzMk5v0/hA8++OCD/z88Q2LezpAAQLR+pUCtXwFALrrooosuAkCo9SsFav0CQCIxb2dIzANAmmyyySabBEAUqPUrBWoFQI7jOI7jOAZACB988MEHB0CAWr9SoNYHQPyVArV+pQhAdNFFF110CUDsDIl5O0MKQGhIzNsZEgtA4IMPPvjgC0Bcv1Kg1q8MQNT6lQK1fg1ATDbZZJNNDkDIcRzHcRwPQECtXylQ6w9AXHTRRRddEEAaEvN2hsQQQNavFKj1KxFAlE022WSTEUBQ61cK1PoRQAyJeTtDYhJAyiabbLLJEkCGxLydITETQERi3s6QmBNAAAAAAAAAFEA=\",\"dtype\":\"float64\",\"shape\":[100]},\"y\":{\"__ndarray__\":\"5xgoAvw59T+JpRSDsRH4Pz1vzy4Ievo/1SVuPiVj/D817SGg2sP9P6X6ffvlmf4/rfKILdPp/j/FAbcHh77+P0tsx9F2KP4/00cHepI8/T+IfFQO6xL8P+g+z2Agxfo/RxcF/6hs+T97xCZiCyH4P1bIocAs9vY/mCQGgNb69T9d+oKYmjf1P76Od/w5rvQ/ENGTpp9Z9D+dp/FrfC70P659oexzHPQ/VXuVAL0P9D9pN64ECvPzP3A9mEuBsfM/tUXX+pE48z9S3noHd3nyPwtnEN9IavE/F6yLII8G8D+EavXqp57sPxfWIuqUleg/lIV8jz8H5D+lgYlkTSDeP8EBGWfLo9M/gG6LX3DEwT9aimJDDpOdv+5AkDfXici/Kq2rO20c1r/wKMKj3SLfv4FggluWkuO/StzafLf95r9Ov8mxucTpv1llB2E93+u/y3qXcBRK7b/dWHAkXgbuv32jm3loGO6//ylZFH2G7b+jLb5Py1fsv9WZ7oufk+q/WEX4QBFB6L+6eGGkO2flv+vWtWb+DeK/i0e8mj1+3L+mVpQuIA/Uv1tuW1Y24sW/LMGiU+IGlb9avC8sYzrBP3UYMTLCmtI/zRViFtxn3D8fgCva+eLiP7ZG7kkQP+c/s3SlWD8z6z+/R54xDrPuP3c7lcOp3fA/m+ymDNko8j/jy2dLXEHzP1C1JRp0L/Q/ML50mI779D/BrHgRdaz1PzVxxf/GRfY/C623bgLH9j/qGhK3Ryv3P9CTqYDkafc/edJUAZF39z9jzZALL0j3P5sNDujH0PY/g6Qp5HwJ9j9J1KAjJu/0P59J7LVohPM/OdbEEyTS8T9txgV2YM7vP2Eufdnurus/2QbetiJ15z/sEpbfDFTjPyTzFBHE/d4//OnSmqNK2D9FzLGXnODSP+aGKssK/s0/HZAaJKKeyT8yhLOfPsfIP4DTY6VJbss/NuVQPDOw0D+ttVp3fyPVP/+48PQg2No/zIXFiuPF4D+T8v0BT3vkP1TBLVJEZ+g/AV07ML5k7D8Vwl8UwSfwP9K/NklKAvI/n83IqEex8z8=\",\"dtype\":\"float64\",\"shape\":[100]}}},\"id\":\"7f2e0442-c1f3-4a84-a767-5924fc6cbf73\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data_source\":{\"id\":\"5e15c713-3924-4ad4-92a0-e2327640befb\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"db9bfd20-6be1-4dec-9295-8c81b20a18c1\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"98bad4a0-71a0-452c-b236-a12ff7123eaa\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"b77c516f-71bb-46b3-b510-37a22972f5f1\",\"type\":\"CDSView\"}},\"id\":\"5b29fa32-e9e4-4163-963b-ef6e3d8d36db\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"84ab7cb6-2986-47dc-ab0d-c08a2a15194d\",\"type\":\"LinearScale\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"4d429153-3d1a-4ed8-96df-e5a47f5808d1\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"18aa3db8-4af9-4e0b-a54e-b3f469f1cc4a\",\"type\":\"BasicTicker\"}},\"id\":\"d94aba14-ccb6-4c10-8c96-e20a5601700c\",\"type\":\"Grid\"},{\"attributes\":{\"line_color\":{\"value\":\"#9467bd\"},\"line_width\":{\"value\":2},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"f6bad26c-b548-4e37-9f97-c7b0315b5239\",\"type\":\"Line\"},{\"attributes\":{\"plot\":{\"id\":\"4d429153-3d1a-4ed8-96df-e5a47f5808d1\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"01d4aff4-2c48-4c30-ba2c-99bcc049ca1f\",\"type\":\"BasicTicker\"}},\"id\":\"b02daab2-68f3-4319-8595-238be70f2a0a\",\"type\":\"Grid\"},{\"attributes\":{\"source\":{\"id\":\"5e15c713-3924-4ad4-92a0-e2327640befb\",\"type\":\"ColumnDataSource\"}},\"id\":\"b77c516f-71bb-46b3-b510-37a22972f5f1\",\"type\":\"CDSView\"},{\"attributes\":{\"formatter\":{\"id\":\"59aec4ac-13d6-4355-b033-465364601f26\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"4d429153-3d1a-4ed8-96df-e5a47f5808d1\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"18aa3db8-4af9-4e0b-a54e-b3f469f1cc4a\",\"type\":\"BasicTicker\"}},\"id\":\"c7878aa0-5fb6-43f5-bc66-7a92618b2b60\",\"type\":\"LinearAxis\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"line_width\":{\"value\":2},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"98bad4a0-71a0-452c-b236-a12ff7123eaa\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"18aa3db8-4af9-4e0b-a54e-b3f469f1cc4a\",\"type\":\"BasicTicker\"},{\"attributes\":{\"data_source\":{\"id\":\"7f2e0442-c1f3-4a84-a767-5924fc6cbf73\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"f6bad26c-b548-4e37-9f97-c7b0315b5239\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"01faf8bd-160f-4310-b25b-f75e14aad90d\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"0148c285-2dc8-4c4e-84e4-57f9a6c7d2fd\",\"type\":\"CDSView\"}},\"id\":\"924408fb-5940-4171-962d-f44767ef3e89\",\"type\":\"GlyphRenderer\"}],\"root_ids\":[\"4d429153-3d1a-4ed8-96df-e5a47f5808d1\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.10\"}};\n",
" var render_items = [{\"docid\":\"5361bba2-7dff-4a39-b9f2-ebcf7fb60571\",\"elementid\":\"5138fc8d-8651-4151-a724-fe5df7911d2e\",\"modelid\":\"4d429153-3d1a-4ed8-96df-e5a47f5808d1\"}];\n",
"\n",
" root.Bokeh.embed.embed_items(docs_json, render_items);\n",
" }\n",
"\n",
" if (root.Bokeh !== undefined) {\n",
" embed_document(root);\n",
" } else {\n",
" var attempts = 0;\n",
" var timer = setInterval(function(root) {\n",
" if (root.Bokeh !== undefined) {\n",
" embed_document(root);\n",
" clearInterval(timer);\n",
" }\n",
" attempts++;\n",
" if (attempts > 100) {\n",
" console.log(\"Bokeh: ERROR: Unable to embed document because BokehJS library is missing\")\n",
" clearInterval(timer);\n",
" }\n",
" }, 10, root)\n",
" }\n",
"})(window);"
],
"application/vnd.bokehjs_exec.v0+json": ""
},
"metadata": {
"application/vnd.bokehjs_exec.v0+json": {
"id": "4d429153-3d1a-4ed8-96df-e5a47f5808d1"
}
},
"output_type": "display_data"
}
],
"source": [
"p = figure(plot_width=800, plot_height=500)\n",
"\n",
"for color in Category10[5]:\n",
" ys = np.random.multivariate_normal(mu, K)\n",
" p.line(xs, ys, line_width=2, color=color)\n",
"show(p)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Making Predictions using the Prior & Observations\n",
"***\n",
"Now that we have a distribution over functions, how can we use training data to model a hidden function so that we can make predictions?\n",
"\n",
"First of all we need some training data! And to get that we are going to create our secret function $f$.\n",
"\n",
"### The Target Function $f$\n",
"For this intro we'll use a 5th order polynomial:\n",
"\n",
"$$f(x)=0.03 x^5 + 0.2 x^4 - 0.1 x^3 - 2.4 x^2 - 2.5 x + 6$$\n",
"\n",
"I chose this because it has a nice wiggly graph but we could have chosen anything (try changing `coefs` below, or `f(x)` entirely, to model different functions)."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"# coefs[i] is the coefficient of x^i\n",
"coefs = [6, -2.5, -2.4, -0.1, 0.2, 0.03]\n",
"\n",
"def f(x):\n",
" total = 0\n",
" for exp, coef in enumerate(coefs):\n",
" total += coef * (x ** exp)\n",
" return total"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"xs = np.linspace(-5.0, 3.5, 100)\n",
"ys = f(xs)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"<div class=\"bk-root\">\n",
" <div class=\"bk-plotdiv\" id=\"e8818e3c-3985-4c52-8d37-985a17a6a06c\"></div>\n",
"</div>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/javascript": [
"(function(root) {\n",
" function embed_document(root) {\n",
" var docs_json = {\"b04c5e04-4443-430c-abee-6a54cbb85682\":{\"roots\":{\"references\":[{\"attributes\":{\"data_source\":{\"id\":\"1f97c883-02c1-40ab-9a9c-4005cbd65cee\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"76d928f5-8806-4624-95e8-4b9a9e642367\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"e1ab7356-52c2-4aa2-9858-6fb787e3c988\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"2f0f8893-f401-44dd-bcf8-53a842d067ce\",\"type\":\"CDSView\"}},\"id\":\"429df718-db87-493e-8c9c-631f2759da4f\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"13cb73d7-26d4-4bce-8980-af0f4c5b0b8b\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"callback\":null},\"id\":\"fb78158b-a60b-4260-822a-92f04a53497f\",\"type\":\"DataRange1d\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"4782fd61-b4f3-4dc0-b825-712c9445003e\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"ab8de54f-aaa7-4242-a059-17ce45f9e80f\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"842e07ee-03ea-42aa-9916-980d9c48d47d\",\"type\":\"LinearScale\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"6dc19136-a50b-4e3b-9723-7d18b99d953a\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"72975847-a01a-4779-8639-ed6cac22b47f\",\"type\":\"BasicTicker\"}},\"id\":\"f9fc7e25-9521-4c30-95a0-88f88235c5f5\",\"type\":\"Grid\"},{\"attributes\":{\"plot\":{\"id\":\"6dc19136-a50b-4e3b-9723-7d18b99d953a\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"ab8de54f-aaa7-4242-a059-17ce45f9e80f\",\"type\":\"BasicTicker\"}},\"id\":\"80de52c5-5930-403f-b8a0-f12ad5cc6a01\",\"type\":\"Grid\"},{\"attributes\":{\"source\":{\"id\":\"1f97c883-02c1-40ab-9a9c-4005cbd65cee\",\"type\":\"ColumnDataSource\"}},\"id\":\"2f0f8893-f401-44dd-bcf8-53a842d067ce\",\"type\":\"CDSView\"},{\"attributes\":{\"callback\":null},\"id\":\"37a47201-24fa-4066-8516-6fdbc5e84409\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"2c6608a0-d4e9-4824-83b7-5f62837d3bc2\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"ffa0af6c-3f69-4aeb-8ec8-f9772a129e1c\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"overlay\":{\"id\":\"4782fd61-b4f3-4dc0-b825-712c9445003e\",\"type\":\"BoxAnnotation\"}},\"id\":\"27dbb281-30f7-4784-bdc6-94586af41766\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"8edfe42a-3145-4f39-8601-d108e4a1d200\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"cd5ae910-b0fd-4867-80db-3eed87082f36\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"65a0de05-ad8f-41b3-85a7-24a9df0ac007\",\"type\":\"HelpTool\"},{\"attributes\":{\"axis_label\":\"f(x)\",\"formatter\":{\"id\":\"13cb73d7-26d4-4bce-8980-af0f4c5b0b8b\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"6dc19136-a50b-4e3b-9723-7d18b99d953a\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"72975847-a01a-4779-8639-ed6cac22b47f\",\"type\":\"BasicTicker\"}},\"id\":\"3cf64a9f-bfac-4c59-a36e-301de081da2b\",\"type\":\"LinearAxis\"},{\"attributes\":{\"axis_label\":\"x\",\"formatter\":{\"id\":\"1801ab45-1626-40c3-a9a2-3d4dcf18c501\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"6dc19136-a50b-4e3b-9723-7d18b99d953a\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"ab8de54f-aaa7-4242-a059-17ce45f9e80f\",\"type\":\"BasicTicker\"}},\"id\":\"84204e72-9ef4-4dbc-aedd-109b2673cf3f\",\"type\":\"LinearAxis\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAFMBToNavFKgTwKZArV8pUBPA+OCDDz74EsBLgVq/UqASwJ4hMW9nSBLA8MEHH3zwEcBDYt7OkJgRwJYCtX6lQBHA6aKLLrroEMA8Q2LezpAQwI7jOI7jOBDAwgcffPDBD8BoSMzbGRIPwA2JeTtDYg7Asskmm2yyDcBYCtT6lQINwP5KgVq/UgzAo4suuuiiC8BIzNsZEvMKwO4MiXk7QwrAlE022WSTCcA5juM4juMIwN7OkJi3MwjAhA8++OCDB8AqUOtXCtQGwM+QmLczJAbAdNFFF110BcAaEvN2hsQEwMBSoNavFATAZZNNNtlkA8AK1PqVArUCwLAUqPUrBQLAVlVVVVVVAcD7lQK1fqUAwECtXylQ6/+/jC666KKL/r/YrxSo9Sv9vyIxb2dIzPu/bLLJJpts+r+4MyTm7Qz5vwS1fqVArfe/TjbZZJNN9r+YtzMk5u30v+Q4juM4jvO/MLrooosu8r96O0Ni3s7wv4h5O0Ni3u6/IHzwwQcf7L+4fqVArV/pv1CBWr9SoOa/4IMPPvjg4794hsS8nSHhvyAS83aGxNy/QBdddNFF179wHMdxHMfRv0BDYt7OkMi/QJtssskmu78AwFKg1q+Uv4A7Q2LezrA/YJNNNtlkwz8AiXk7Q2LOP2C/UqDWr9Q/MLrooosu2j8AtX6lQK3fP+hXCtT6leI/UFVVVVVV5T/AUqDWrxToPyhQ61cK1Oo/kE022WST7T+ApUCtXynwPzQk5u0MifE/6KKLLrro8j+cITFvZ0j0P1Cg1q8UqPU/CB988MEH9z+8nSExb2f4P3Acx3Ecx/k/KJtssskm+z/cGRLzdob8P5CYtzMk5v0/RBdddNFF/z/8SoFav1IAQFgK1PqVAgFAsskmm2yyAUAMiXk7Q2ICQGhIzNsZEgNAwgcffPDBA0Acx3Ecx3EEQHaGxLydIQVA0EUXXXTRBUAsBWr9SoEGQIbEvJ0hMQdA4IMPPvjgB0A8Q2LezpAIQJQCtX6lQAlA8MEHH3zwCUBMgVq/UqAKQKRArV8pUAtAAAAAAAAADEA=\",\"dtype\":\"float64\",\"shape\":[100]},\"y\":{\"__ndarray__\":\"AAAAAAAAAkDA0SnmRtgGQGCcdNmDzApA4EhwKP/0DUBQ/ChVTTQQQDBBrUZtHhFAEHeeEvfCEUCAeMJcXCsSQJC0/iltYBJAGG2LR1xqEkBQ9Cayw1ASQBjrSP2oGhJA8H5VuoHOEUDop9DfN3IRQMRmkTAuCxFAtAL1okSeEECsRxLI3C8QQGCI2WW8hw9AoA5Qv3W7DkCovXU15wAOQEgqRdA4XQ1AZF4s1cHUDEA0VXOVEWsMQER3ojz4IgxATBbpno/+C0Ba6YMHRP8LQNKIIwfdJQxARupSQoZyDECf3N0/2OQMQByENzfhew1AS9bg3i02DkD7Fc860hEPQLInaTU5BhBAAup9vKWREEBaWwIUnikRQNcj2uBmzBFAOkijch54EkD7Z+kqwSoTQDr7WOQt4hNAz5DyWSqcFEA4DD6OZ1YVQKrjfTKGDhZAEV7iDRvCFkAH0bxks24XQNTesl/ZERhAgLTxchipGEDIR2HFATIZQBSV15cwqhlAkt1LrE4PGkAf5QmtGF8aQFYw5ZNilxpAiUJsERy2GkDJ2xv0VLkaQN42ko9BnxpAUUfCIz9mGkBo9yZE2AwaQCRm9j7JkRlASSVVhAT0GEBcd4kNtzIYQJ+NLsRMTRdAHMZn6XRDFkCb6RN9JhUVQKRpAKWkwhNAkp4cFINMEkB6Ba1xqrMQQG78/IC58g1A3hIzjHM+CkAUDevjhk4GQJTjV4nEJwJAqYiu3Kaf+z+zHbCHcpryP7xBAyGNneI/eDPAKepQib+3Gnk7Mq7jvwSKUNHtifO/Rj+D5lg0/b82IewUtl4DwPD+ClAABQjAWFy8dFJ+DMCYZznpYl0QwN1xx3SeVBLAQFB8Tq0bFMAwhdyxvKgVwEvUST1R8RbASwTQikLqF8AkofHItocYwOK9dFMevRjAvrYvTC99GMAY89Uz4bkXwG+nxIJoZBbAdZfPQTJtFMDj1w2j38MRwGAhTTWDrgzA1n0776gqBMDQ2oPy7azzv8CovXI4rNM/NFnDPoniAEDWmYkZys0QQGgdUOzAZhpA9yhcj8KpIkA=\",\"dtype\":\"float64\",\"shape\":[100]}}},\"id\":\"1f97c883-02c1-40ab-9a9c-4005cbd65cee\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"72975847-a01a-4779-8639-ed6cac22b47f\",\"type\":\"BasicTicker\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"line_width\":{\"value\":2},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"e1ab7356-52c2-4aa2-9858-6fb787e3c988\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1801ab45-1626-40c3-a9a2-3d4dcf18c501\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"plot\":null,\"text\":\"The hidden function f(x)\"},\"id\":\"2a98e854-69c7-4382-9b40-087610fab77f\",\"type\":\"Title\"},{\"attributes\":{\"line_color\":{\"value\":\"#1f77b4\"},\"line_width\":{\"value\":2},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"76d928f5-8806-4624-95e8-4b9a9e642367\",\"type\":\"Line\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2c6608a0-d4e9-4824-83b7-5f62837d3bc2\",\"type\":\"PanTool\"},{\"id\":\"ffa0af6c-3f69-4aeb-8ec8-f9772a129e1c\",\"type\":\"WheelZoomTool\"},{\"id\":\"27dbb281-30f7-4784-bdc6-94586af41766\",\"type\":\"BoxZoomTool\"},{\"id\":\"8edfe42a-3145-4f39-8601-d108e4a1d200\",\"type\":\"SaveTool\"},{\"id\":\"cd5ae910-b0fd-4867-80db-3eed87082f36\",\"type\":\"ResetTool\"},{\"id\":\"65a0de05-ad8f-41b3-85a7-24a9df0ac007\",\"type\":\"HelpTool\"}]},\"id\":\"58764577-a66e-4693-a03c-dab83c7ec36b\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"ec4d06a5-67c1-4892-971a-f14ed0ab20dd\",\"type\":\"LinearScale\"},{\"attributes\":{\"below\":[{\"id\":\"84204e72-9ef4-4dbc-aedd-109b2673cf3f\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"3cf64a9f-bfac-4c59-a36e-301de081da2b\",\"type\":\"LinearAxis\"}],\"plot_height\":400,\"plot_width\":800,\"renderers\":[{\"id\":\"84204e72-9ef4-4dbc-aedd-109b2673cf3f\",\"type\":\"LinearAxis\"},{\"id\":\"80de52c5-5930-403f-b8a0-f12ad5cc6a01\",\"type\":\"Grid\"},{\"id\":\"3cf64a9f-bfac-4c59-a36e-301de081da2b\",\"type\":\"LinearAxis\"},{\"id\":\"f9fc7e25-9521-4c30-95a0-88f88235c5f5\",\"type\":\"Grid\"},{\"id\":\"4782fd61-b4f3-4dc0-b825-712c9445003e\",\"type\":\"BoxAnnotation\"},{\"id\":\"429df718-db87-493e-8c9c-631f2759da4f\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"2a98e854-69c7-4382-9b40-087610fab77f\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"58764577-a66e-4693-a03c-dab83c7ec36b\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"fb78158b-a60b-4260-822a-92f04a53497f\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"842e07ee-03ea-42aa-9916-980d9c48d47d\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"37a47201-24fa-4066-8516-6fdbc5e84409\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"ec4d06a5-67c1-4892-971a-f14ed0ab20dd\",\"type\":\"LinearScale\"}},\"id\":\"6dc19136-a50b-4e3b-9723-7d18b99d953a\",\"subtype\":\"Figure\",\"type\":\"Plot\"}],\"root_ids\":[\"6dc19136-a50b-4e3b-9723-7d18b99d953a\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.10\"}};\n",
" var render_items = [{\"docid\":\"b04c5e04-4443-430c-abee-6a54cbb85682\",\"elementid\":\"e8818e3c-3985-4c52-8d37-985a17a6a06c\",\"modelid\":\"6dc19136-a50b-4e3b-9723-7d18b99d953a\"}];\n",
"\n",
" root.Bokeh.embed.embed_items(docs_json, render_items);\n",
" }\n",
"\n",
" if (root.Bokeh !== undefined) {\n",
" embed_document(root);\n",
" } else {\n",
" var attempts = 0;\n",
" var timer = setInterval(function(root) {\n",
" if (root.Bokeh !== undefined) {\n",
" embed_document(root);\n",
" clearInterval(timer);\n",
" }\n",
" attempts++;\n",
" if (attempts > 100) {\n",
" console.log(\"Bokeh: ERROR: Unable to embed document because BokehJS library is missing\")\n",
" clearInterval(timer);\n",
" }\n",
" }, 10, root)\n",
" }\n",
"})(window);"
],
"application/vnd.bokehjs_exec.v0+json": ""
},
"metadata": {
"application/vnd.bokehjs_exec.v0+json": {
"id": "6dc19136-a50b-4e3b-9723-7d18b99d953a"
}
},
"output_type": "display_data"
}
],
"source": [
"p = figure(plot_width=800, plot_height=400, x_axis_label='x', y_axis_label='f(x)',\n",
" title='The hidden function f(x)')\n",
"p.line(xs, ys, line_width=2)\n",
"show(p)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Getting into the Maths\n",
"\n",
"Now we get to the heart of GPs. Theres a bit more maths required but it only consists of consolidating what we have so far and using one trick to condition our joint distribution on observed data.\n",
"\n",
"So far we have a way to model $p(\\mathbf{y}\\vert\\mathbf{x})$ using a multivariate normal:\n",
"\n",
"$$p(\\mathbf{y}\\vert\\mathbf{x})=\\mathcal{N}(\\mathbf{y}\\vert m(\\mathbf{x}),\\mathbf{K})$$\n",
"\n",
"where $\\mathbf{K}=\\kappa(\\mathbf{x}, \\mathbf{x})$ and $m(\\mathbf{x})=\\mathbf{0}$.\n",
"\n",
"This is a prior distribution representing the kind out outputs $\\mathbf{y}$ that we expect to see over some inputs $\\mathbf{x}$ _before_ we observe any data.\n",
"\n",
"So we have some training data with inputs $\\mathbf{x}$, and outputs $\\mathbf{y}=f(\\mathbf{x})$. Now lets say we have some new points $\\mathbf{x}_*$ where we want to predict $\\mathbf{y}_*=f(\\mathbf{x}_*)$."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"x_obs = np.array([-4, -1.5, 0, 1.5, 2.5, 2.7])\n",
"y_obs = f(x_obs)\n",
"\n",
"x_s = np.linspace(-8, 7, 80)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now recalling the definition of a GP, we will model the joint distribution of all of $\\mathbf{y}$ and $\\mathbf{y}_*$ as:\n",
"\n",
"$$ \\begin{pmatrix}\\mathbf{y} \\\\ \\mathbf{y}_*\\end{pmatrix} \\sim\\mathcal{N}\\left(\\begin{pmatrix}m(\\mathbf{x})\\\\ m(\\mathbf{x}_*)\\end{pmatrix}, \\begin{pmatrix}\\mathbf{K} & \\mathbf{K}_* \\\\ \\mathbf{K}_*^T & \\mathbf{K}_{**}\\end{pmatrix}\\right) $$\n",
"\n",
"where $\\mathbf{K}=\\kappa(\\mathbf{x}, \\mathbf{x})$, $\\mathbf{K}_* = \\kappa(\\mathbf{x}, \\mathbf{x}_*)$ and $\\mathbf{K}_{**}=\\kappa(\\mathbf{x}_*, \\mathbf{x}_*)$. As before we are going to stick with a zero mean.\n",
"\n",
"However this is modeling $p(\\mathbf{y}, \\mathbf{y}_*\\vert \\mathbf{x}, \\mathbf{x}_*)$ and we only want a distribution over $\\mathbf{y}_*$!\n",
"\n",
"### Conditioning Multivariate Gaussians\n",
"\n",
"Rather than deriving it from scratch we can just make use of [this standard result](https://en.wikipedia.org/wiki/Multivariate_normal_distribution#Conditional_distributions). If we have a joint distribution over $\\mathbf{y}$ and $\\mathbf{y}_*$ as above, and we want to condition on the data we have for $\\mathbf{y}$ then we have the following:\n",
"\n",
"$$\\begin{align}\n",
"p(\\mathbf{y}_*\\vert \\mathbf{x}_*, \\mathbf{x}, \\mathbf{y})&=\\mathcal{N}(\\mathbf{y}_*\\vert \\mu_*, \\Sigma_*)\\\\\n",
"\\mu_*&=m(\\mathbf{x}_*)+\\mathbf{K}_*^T\\mathbf{K}^{-1}(\\mathbf{y}-m(\\mathbf{x}))\\\\\n",
"\\Sigma_*&=\\mathbf{K}_{**}-\\mathbf{K}_*^T\\mathbf{K}^{-1}\\mathbf{K}_*\n",
"\\end{align}$$\n",
"\n",
"Now we have a posterior distribution over $\\mathbf{y}_*$ using a prior distribution and some observations!\n",
"\n",
"_NB: The code below would not be used in practice since \\\\( \\mathbf{K} \\\\) can often be poorly conditioned, so its inverse might be inaccurate. A better approach is covered in part II of this guide!_"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"K = k(x_obs, x_obs)\n",
"K_s = k(x_obs, x_s)\n",
"K_ss = k(x_s, x_s)\n",
"\n",
"K_sTKinv = np.matmul(K_s.T, np.linalg.pinv(K))\n",
"\n",
"mu_s = m(x_s) + np.matmul(K_sTKinv, y_obs - m(x_obs))\n",
"Sigma_s = K_ss - np.matmul(K_sTKinv, K_s)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And that's it! We can now use these two parameters to draw samples from the conditional distribution. Here we plot them against the true function $f(x)$ (the dashed black line). Since we are using a GP we also have uncertainty information in the form of the variance of each random variable. We know the variance of the $i$-th will be ${\\Sigma_*}_{ii}$ - in other words the variances are just the diagonal elements of $\\Sigma_*$. Here we plot the samples with an uncertainty of $\\pm 2$ standard deviations."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"<div class=\"bk-root\">\n",
" <div class=\"bk-plotdiv\" id=\"a3249ede-f9e5-4d22-8614-4966f82cbca5\"></div>\n",
"</div>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/javascript": [
"(function(root) {\n",
" function embed_document(root) {\n",
" var docs_json = {\"27d3d96b-551f-4a18-91b8-cd3585588826\":{\"roots\":{\"references\":[{\"attributes\":{},\"id\":\"ab70b6d7-bf6c-4322-b075-3c739ae35bb7\",\"type\":\"BasicTicker\"},{\"attributes\":{\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"f707342f-1ad5-4f96-bebd-e7b132c64e5c\",\"type\":\"Line\"},{\"attributes\":{\"plot\":{\"id\":\"2cf06c2a-84f0-4c57-8733-64257fcb96f8\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"ab70b6d7-bf6c-4322-b075-3c739ae35bb7\",\"type\":\"BasicTicker\"}},\"id\":\"f59462f3-c1b8-4bbe-b5a8-27bc2dfffede\",\"type\":\"Grid\"},{\"attributes\":{\"line_color\":{\"value\":\"#ff7f0e\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"fa67efda-72bb-4943-81be-26acf77f4fd1\",\"type\":\"Line\"},{\"attributes\":{\"formatter\":{\"id\":\"15e52d63-a189-49cf-aa96-ecabbd0aa0ee\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"2cf06c2a-84f0-4c57-8733-64257fcb96f8\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"765c36a7-d27c-4940-b78f-6757d0ccfbf1\",\"type\":\"BasicTicker\"}},\"id\":\"0d8de8b9-072c-4772-8d5f-a5c5fccabd8d\",\"type\":\"LinearAxis\"},{\"attributes\":{\"callback\":null,\"end\":8,\"start\":-7},\"id\":\"842d6f17-0ba7-4f5a-9cac-d99d4234ad11\",\"type\":\"Range1d\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"5502cf82-7da7-4e44-a5f5-82cdc7f46b29\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null},\"id\":\"3dfd3ac0-5b75-401a-a8ff-a4fd7715b11b\",\"type\":\"DataRange1d\"},{\"attributes\":{\"data_source\":{\"id\":\"738734b5-1362-4a99-b4bc-8783ad3255ed\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"f707342f-1ad5-4f96-bebd-e7b132c64e5c\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"5502cf82-7da7-4e44-a5f5-82cdc7f46b29\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"633dc72d-4beb-4c46-96f6-2802b5c4dada\",\"type\":\"CDSView\"}},\"id\":\"d28c84fb-29ab-4a88-92a4-b89945dca3d0\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"359bca5a-02d7-42ae-8558-f85ed7dac764\",\"type\":\"LinearScale\"},{\"attributes\":{\"source\":{\"id\":\"738734b5-1362-4a99-b4bc-8783ad3255ed\",\"type\":\"ColumnDataSource\"}},\"id\":\"633dc72d-4beb-4c46-96f6-2802b5c4dada\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"line_dash\":[6],\"line_width\":{\"value\":3},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"bc3e8f41-f009-4979-acf1-6d148c38e72d\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"line_width\":{\"value\":3},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"08fd2619-be76-4198-8db7-f6a0b01f5264\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"765c36a7-d27c-4940-b78f-6757d0ccfbf1\",\"type\":\"BasicTicker\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAIMB7BqLSkT0fwPYMRKUjex7AcRPmd7W4HcDsGYhKR/YcwGggKh3ZMxzA4ybM72pxG8BeLW7C/K4awNkzEJWO7BnAVDqyZyAqGcDPQFQ6smcYwEpH9gxEpRfAxk2Y39XiFsBAVDqyZyAWwLxa3IT5XRXAN2F+V4ubFMCyZyAqHdkTwC1uwvyuFhPAqHRkz0BUEsAkewai0pERwJ6BqHRkzxDAGohKR/YMEMAqHdkzEJUOwCAqHdkzEA3AFjdhfleLC8AMRKUjewYKwAJR6ciegQjA+F0tbsL8BsDwanET5ncFwOZ3tbgJ8wPA3IT5XS1uAsDSkT0DUekAwJA9A1HpyP6/fFeLmzC/+79ocRPmd7X4v1SLmzC/q/W/QKUjewai8r9gfleLmzDvvziyZyAqHem/EOZ3tbgJ47/QMxCVjuzZvwA3YX5Xi8u/ADMQlY7smb9AKh3ZMxDFP2AtbsL8rtY/4OImzO9q4T8ArxY3YX7nPzB7BqLSke0/qCN7BqLS8T+4CfO7Wtz0P9DvanET5vc/4NXiJszv+j/4u1rchPn9PwRR6ciegQBAEESlI3sGAkAYN2F+V4sDQCAqHdkzEAVALB3ZMxCVBkA0EJWO7BkIQEADUenInglASPYMRKUjC0BU6ciegagMQFzchPldLQ5AaM9AVDqyD0A4YX5Xi5sQQLxa3IT5XRFAQlQ6smcgEkDGTZjf1eISQExH9gxEpRNA0EBUOrJnFEBWOrJnICoVQNozEJWO7BVAYC1uwvyuFkDkJszvanEXQGggKh3ZMxhA7hmISkf2GEByE+Z3tbgZQPgMRKUjexpAfAai0pE9G0AAAAAAAAAcQA==\",\"dtype\":\"float64\",\"shape\":[80]},\"y\":{\"__ndarray__\":\"3lWR5f8r8L+2otyZAVbwv/KTw4vjcfC/pX/xYupP8L90O6O7M1Xvv46FIdKEpuy/ykP0WS+h6L8jqfXm/77jv6XD0QYzU92/j59KtoW507/U+wVtzFjFv4DhEiOl0I6/IFg6k+D3xj9CST6OI+ncP3NtPqV2d+o/XaOZGmv89D8GE6EiwDb+P6Ys6fNWJgRAzbAV3i0wCUCAC04+I70NQK8kycDPrRBAyu1gaHzdEUCXraVmOF4SQFI/3HnBPBJA3+bHnvOeEUCyQBUv/7sQQItTGgrqpA9AVx6qRvc8DkD52zKBbqINQHzgzkLxEg5AN/p4twacD0DZEfxg1QoRQD64BiWZkxJA3/jNi68sFEAIy0vQ45kVQHcIueDdrhZAD91MYXBbF0DLHBaEVK4XQDPM1FkhzBdAU5uiOx3dF0Cp5jKhpfgXQOxZiqcXFhhAVXwqN7gIGEA9mcfjfIcXQN0FjOZmPRZAdqv5Ll3dE0B2YVZVKzUQQBgKR0TmeQZA0/aqyQGF9D9g/GA/N6Xbv5wXAqPAhAHAUUkwV4iMDsDgx9lNp5QUwBq16yCnHBjARTi9BlKLGcD7MI9Qr9wYwHBwKhmRWhbA5Qob4zGJEsAY6XY87g8MwEszUIaA4QLARZiXLCP/9L/NB/8l8JTcv7Zj45/hksg/gCpomxTU4j/gYsLEFQzoP7s9gNiPx+Y/4jUL6zGu4D/gE+P7V8LPP9AIpuQXRaG/TNtyMbu40L/8MHMOSmnZv5POeZnY29u/X3hxWKli2b+uvGZbGSHUv1J5rSWuLMy/emq9HgT/wL8seHBA2+itv0zWrV8Y+3g/2Vq/5EQSsT/7ZOWMglrAPw==\",\"dtype\":\"float64\",\"shape\":[80]}}},\"id\":\"da23b6e5-8311-4234-9ce1-4b99053179c6\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"2cf06c2a-84f0-4c57-8733-64257fcb96f8\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"765c36a7-d27c-4940-b78f-6757d0ccfbf1\",\"type\":\"BasicTicker\"}},\"id\":\"f63b824f-10be-430f-b6c4-8cd45dbe5590\",\"type\":\"Grid\"},{\"attributes\":{\"data_source\":{\"id\":\"207a1c5d-a737-4987-bad9-9787197db993\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"5bbf55e3-e50b-4e59-95ea-b86f828c32ae\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"bc3e8f41-f009-4979-acf1-6d148c38e72d\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"0ca035ee-0d54-418c-b874-a933fa484d61\",\"type\":\"CDSView\"}},\"id\":\"682f7727-9ce2-443b-a36a-ebe8f306c10e\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2427b747-2b16-4a18-b985-a33d8e137ffa\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":{\"value\":0.4},\"line_dash\":[6],\"line_width\":{\"value\":3},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"5bbf55e3-e50b-4e59-95ea-b86f828c32ae\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"da23b6e5-8311-4234-9ce1-4b99053179c6\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"fa67efda-72bb-4943-81be-26acf77f4fd1\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2427b747-2b16-4a18-b985-a33d8e137ffa\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"b7cadc68-1c35-423e-93b1-f135b99c96c5\",\"type\":\"CDSView\"}},\"id\":\"a5064122-a8f7-4154-930c-d0c8ff339286\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAIMB7BqLSkT0fwPYMRKUjex7AcRPmd7W4HcDsGYhKR/YcwGggKh3ZMxzA4ybM72pxG8BeLW7C/K4awNkzEJWO7BnAVDqyZyAqGcDPQFQ6smcYwEpH9gxEpRfAxk2Y39XiFsBAVDqyZyAWwLxa3IT5XRXAN2F+V4ubFMCyZyAqHdkTwC1uwvyuFhPAqHRkz0BUEsAkewai0pERwJ6BqHRkzxDAGohKR/YMEMAqHdkzEJUOwCAqHdkzEA3AFjdhfleLC8AMRKUjewYKwAJR6ciegQjA+F0tbsL8BsDwanET5ncFwOZ3tbgJ8wPA3IT5XS1uAsDSkT0DUekAwJA9A1HpyP6/fFeLmzC/+79ocRPmd7X4v1SLmzC/q/W/QKUjewai8r9gfleLmzDvvziyZyAqHem/EOZ3tbgJ47/QMxCVjuzZvwA3YX5Xi8u/ADMQlY7smb9AKh3ZMxDFP2AtbsL8rtY/4OImzO9q4T8ArxY3YX7nPzB7BqLSke0/qCN7BqLS8T+4CfO7Wtz0P9DvanET5vc/4NXiJszv+j/4u1rchPn9PwRR6ciegQBAEESlI3sGAkAYN2F+V4sDQCAqHdkzEAVALB3ZMxCVBkA0EJWO7BkIQEADUenInglASPYMRKUjC0BU6ciegagMQFzchPldLQ5AaM9AVDqyD0A4YX5Xi5sQQLxa3IT5XRFAQlQ6smcgEkDGTZjf1eISQExH9gxEpRNA0EBUOrJnFEBWOrJnICoVQNozEJWO7BVAYC1uwvyuFkDkJszvanEXQGggKh3ZMxhA7hmISkf2GEByE+Z3tbgZQPgMRKUjexpAfAai0pE9G0AAAAAAAAAcQA==\",\"dtype\":\"float64\",\"shape\":[80]},\"y\":{\"__ndarray__\":\"ROF6FK4HbsA4/WvDtxtpwGx6VXTX0GTA7DH6UdIXYcB8qbMFvcRbwKgeCcQ3RlbALFrdbxmbUcBg8BDNOVhLwHjC8oZJx0TA8ER0R7O2PsBIexf57d41wFATlkKahi3AEOu0oiFLIsDAEvjP0zMTwICffT9xX/i/gMvdqXu86z8ADkkJTkIEQIDXQiis8gxA2JV/byUDEUDQgh7eIzESQOiOewhPZhJAdIG9Xfz2EUAkG0D5wSkRQHCjH4hfOBBATOyIXU6hDkB0It3czCoNQJREghWePgxAmiic3r/7C0AeOkMqnHAMQBqWm9DanA1A3CXsWjNzD0Ad3Vpnn+0QQI4TZbykWRJAQq8xXBLpE0DrRR1lfIQVQJ2Xz0mLEhdAXBzHtuR4GEDGkeR3FJ0ZQLmI9l11ZRpA4fJEJBq6GkBzsBxWtoUaQLYdWzSHthlAtKD5mjw/GEDTNpnm4RcWQHsCDtrGPhNARLHVB9FyD0BBnRlItCoHQB8em0S4pPs/bCHQ5OlV3T+Vz/r7R9brvypciZeHoAHAha4KOtTOC8CZIDS3CG8SwGS1KOZ3BxbAzhMUmLJBGMAA//R3bZ4YwKZxDAgujRbAORBSvGFrEcDwNtEp6gYBwLB1th1V0PM/AEracI3ZF0CSU/+Rf5AoQL3C36lGdTRAOZ1jbAfGPkALQ6+Jl8RFQJ+dJjjhiU1AwDMuF1ZwU0CnYub8FP1YQNF0rrKHhV9AcSGDZeySY0Aez+nJCP5nQKCEXVIUFG1ANxxeGwRzcUAh+Q1x8cJ0QPyT+5xXg3hA54ys8kW+fECiiwKlLL+AQB8Ub9FfZ4NATtJN5J1dhkCuR+F6FKiJQA==\",\"dtype\":\"float64\",\"shape\":[80]}}},\"id\":\"207a1c5d-a737-4987-bad9-9787197db993\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAIMB7BqLSkT0fwPYMRKUjex7AcRPmd7W4HcDsGYhKR/YcwGggKh3ZMxzA4ybM72pxG8BeLW7C/K4awNkzEJWO7BnAVDqyZyAqGcDPQFQ6smcYwEpH9gxEpRfAxk2Y39XiFsBAVDqyZyAWwLxa3IT5XRXAN2F+V4ubFMCyZyAqHdkTwC1uwvyuFhPAqHRkz0BUEsAkewai0pERwJ6BqHRkzxDAGohKR/YMEMAqHdkzEJUOwCAqHdkzEA3AFjdhfleLC8AMRKUjewYKwAJR6ciegQjA+F0tbsL8BsDwanET5ncFwOZ3tbgJ8wPA3IT5XS1uAsDSkT0DUekAwJA9A1HpyP6/fFeLmzC/+79ocRPmd7X4v1SLmzC/q/W/QKUjewai8r9gfleLmzDvvziyZyAqHem/EOZ3tbgJ47/QMxCVjuzZvwA3YX5Xi8u/ADMQlY7smb9AKh3ZMxDFP2AtbsL8rtY/4OImzO9q4T8ArxY3YX7nPzB7BqLSke0/qCN7BqLS8T+4CfO7Wtz0P9DvanET5vc/4NXiJszv+j/4u1rchPn9PwRR6ciegQBAEESlI3sGAkAYN2F+V4sDQCAqHdkzEAVALB3ZMxCVBkA0EJWO7BkIQEADUenInglASPYMRKUjC0BU6ciegagMQFzchPldLQ5AaM9AVDqyD0A4YX5Xi5sQQLxa3IT5XRFAQlQ6smcgEkDGTZjf1eISQExH9gxEpRNA0EBUOrJnFEBWOrJnICoVQNozEJWO7BVAYC1uwvyuFkDkJszvanEXQGggKh3ZMxhA7hmISkf2GEByE+Z3tbgZQPgMRKUjexpAfAai0pE9G0AAAAAAAAAcQA==\",\"dtype\":\"float64\",\"shape\":[80]},\"y\":{\"__ndarray__\":\"1HSFLuaS2T+roRhVlmzUP8ROv6iL3c0/eauDjF4Awz+Fe9AYplmwP66uhSm4U5m/EhnX4Uwsvr908O/0Hy3Kv5fJR3yBjdC/+liJbsYRz78oBvTR2hu+vwTH6gTghMI/MHHUSDia4T8uz/mVIT/xP8cqAZi28/o/rXt6e/yBAkBdrQZLw0UHQCeZEknPawtAUDnxakjADkBu9jzvepoQQChIYJ5IbBFAOt+T8AXmEUCC4Q4wkh0SQByvSeCpLBJAQ3a9fe0vEkDs/r3EQUQSQIh29ZqdgRJA2EBHR5b0EkCqCDuskZkTQME5KrFfXBRAw9mjQS4dFUAY/nb2fLkVQEYqKCcvFhZAhio86bQnFkAGdFhTK/YVQCvnqruFnBVAD2+VJ8pCFUDG0oPANhQVQHGmLVsFMxVAVs5k52isFUCy94D8z28WQCa/G1jzSxdAYSXEYdXyF0DDiF5oQwQYQKxiU6NTHRdA6MTAedLqFEDVPTTPHDwRQASQ3gRVJghAPUDP7Iy39j/TsLgEea7Xvyjxe557gQHAoVbGa8nPDsCNyO0yj74UwPk7mvtAPBjAz2qn/DGaGcDnmU/Yyt4YwHLw4mVJWRbA44HSxqiOEsCsi7L38TkMwObYtSP0OQPAygBqX4An9r8eN1PKmqPhv5A8ITiBya4/PgdOVsiR3D/v1NLugQzkP7lz0MgFMOQ/AGL5L6qo3z+KwMpJ217QP3BuyHhzZKe/hID2vOuU179VT+sHoozlv1L9vGbsuO2/XSK48BPX8b9JC0xSf5zzv/xxY2XEPfS/sTF0rDDf878mXkKOjqPyv+b+OVRNpvC/g8tJeAEN7L9r4oquHPHlvw==\",\"dtype\":\"float64\",\"shape\":[80]}}},\"id\":\"9ee06815-afc9-46be-bf52-ff18b8172221\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"3df3f3b8-2847-4949-9afa-e44b7dede701\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"source\":{\"id\":\"da23b6e5-8311-4234-9ce1-4b99053179c6\",\"type\":\"ColumnDataSource\"}},\"id\":\"b7cadc68-1c35-423e-93b1-f135b99c96c5\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"aca0777f-24d0-4399-b2e7-78fd330e7382\",\"type\":\"PanTool\"},{\"attributes\":{\"line_color\":{\"value\":\"#2ca02c\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"06788260-3d88-4cb3-8f98-620b0ac966c3\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"15e52d63-a189-49cf-aa96-ecabbd0aa0ee\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"source\":{\"id\":\"c2058f51-6cb8-44a1-9b52-8e63715aca8a\",\"type\":\"ColumnDataSource\"}},\"id\":\"bf29ece9-7f5e-4941-a2c8-313027caf8a6\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"c056809a-36f9-4c31-8daf-bc57e535e507\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"b857dc2f-eb12-481f-b462-868bf712bdbe\",\"type\":\"Line\"},{\"attributes\":{\"overlay\":{\"id\":\"3df3f3b8-2847-4949-9afa-e44b7dede701\",\"type\":\"BoxAnnotation\"}},\"id\":\"f7de983b-72fe-4399-9017-ff562b157968\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"data_source\":{\"id\":\"9ee06815-afc9-46be-bf52-ff18b8172221\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"06788260-3d88-4cb3-8f98-620b0ac966c3\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"b857dc2f-eb12-481f-b462-868bf712bdbe\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"085f6774-a189-4069-b20a-0d181e6c753b\",\"type\":\"CDSView\"}},\"id\":\"53cec0a4-6d03-4c8b-aa2a-3883f5157e93\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1610492c-efe6-4f99-a680-4e386251bc1f\",\"type\":\"SaveTool\"},{\"attributes\":{\"source\":{\"id\":\"9ee06815-afc9-46be-bf52-ff18b8172221\",\"type\":\"ColumnDataSource\"}},\"id\":\"085f6774-a189-4069-b20a-0d181e6c753b\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"ae07735b-2f40-42da-be58-4ee216dc5a46\",\"type\":\"ResetTool\"},{\"attributes\":{\"line_alpha\":{\"value\":0.4},\"line_color\":{\"value\":\"blue\"},\"line_width\":{\"value\":3},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"88a6b301-28aa-4351-af63-6204f4d1cd2d\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"d79b5b80-e2d3-49ec-bda8-e8a3a58aca05\",\"type\":\"HelpTool\"},{\"attributes\":{\"label\":{\"value\":\"True f(x)\"},\"renderers\":[{\"id\":\"682f7727-9ce2-443b-a36a-ebe8f306c10e\",\"type\":\"GlyphRenderer\"}]},\"id\":\"abf7046b-a8b7-4a24-8784-e42ec7d94b32\",\"type\":\"LegendItem\"},{\"attributes\":{\"plot\":null,\"text\":\"\"},\"id\":\"03ccb6ae-1c7c-460e-b63a-14e85acfc3ca\",\"type\":\"Title\"},{\"attributes\":{\"data_source\":{\"id\":\"c2058f51-6cb8-44a1-9b52-8e63715aca8a\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"88a6b301-28aa-4351-af63-6204f4d1cd2d\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"08fd2619-be76-4198-8db7-f6a0b01f5264\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"bf29ece9-7f5e-4941-a2c8-313027caf8a6\",\"type\":\"CDSView\"}},\"id\":\"a40707db-5278-4a32-8419-4be300573361\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"60c969d6-9167-475b-aa01-c887c0614f7d\",\"type\":\"LinearScale\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAIMB7BqLSkT0fwPYMRKUjex7AcRPmd7W4HcDsGYhKR/YcwGggKh3ZMxzA4ybM72pxG8BeLW7C/K4awNkzEJWO7BnAVDqyZyAqGcDPQFQ6smcYwEpH9gxEpRfAxk2Y39XiFsBAVDqyZyAWwLxa3IT5XRXAN2F+V4ubFMCyZyAqHdkTwC1uwvyuFhPAqHRkz0BUEsAkewai0pERwJ6BqHRkzxDAGohKR/YMEMAqHdkzEJUOwCAqHdkzEA3AFjdhfleLC8AMRKUjewYKwAJR6ciegQjA+F0tbsL8BsDwanET5ncFwOZ3tbgJ8wPA3IT5XS1uAsDSkT0DUekAwJA9A1HpyP6/fFeLmzC/+79ocRPmd7X4v1SLmzC/q/W/QKUjewai8r9gfleLmzDvvziyZyAqHem/EOZ3tbgJ47/QMxCVjuzZvwA3YX5Xi8u/ADMQlY7smb9AKh3ZMxDFP2AtbsL8rtY/4OImzO9q4T8ArxY3YX7nPzB7BqLSke0/qCN7BqLS8T+4CfO7Wtz0P9DvanET5vc/4NXiJszv+j/4u1rchPn9PwRR6ciegQBAEESlI3sGAkAYN2F+V4sDQCAqHdkzEAVALB3ZMxCVBkA0EJWO7BkIQEADUenInglASPYMRKUjC0BU6ciegagMQFzchPldLQ5AaM9AVDqyD0A4YX5Xi5sQQLxa3IT5XRFAQlQ6smcgEkDGTZjf1eISQExH9gxEpRNA0EBUOrJnFEBWOrJnICoVQNozEJWO7BVAYC1uwvyuFkDkJszvanEXQGggKh3ZMxhA7hmISkf2GEByE+Z3tbgZQPgMRKUjexpAfAai0pE9G0AAAAAAAAAcQAAAAAAAABxAfAai0pE9G0D4DESlI3saQHIT5ne1uBlA7hmISkf2GEBoICod2TMYQOQmzO9qcRdAYC1uwvyuFkDaMxCVjuwVQFY6smcgKhVA0EBUOrJnFEBMR/YMRKUTQMZNmN/V4hJAQlQ6smcgEkC8WtyE+V0RQDhhfleLmxBAaM9AVDqyD0Bc3IT5XS0OQFTpyJ6BqAxASPYMRKUjC0BAA1HpyJ4JQDQQlY7sGQhALB3ZMxCVBkAgKh3ZMxAFQBg3YX5XiwNAEESlI3sGAkAEUenInoEAQPi7WtyE+f0/4NXiJszv+j/Q72pxE+b3P7gJ87ta3PQ/qCN7BqLS8T8wewai0pHtPwCvFjdhfuc/4OImzO9q4T9gLW7C/K7WP0AqHdkzEMU/ADMQlY7smb8AN2F+V4vLv9AzEJWO7Nm/EOZ3tbgJ4784smcgKh3pv2B+V4ubMO+/QKUjewai8r9Ui5swv6v1v2hxE+Z3tfi/fFeLmzC/+7+QPQNR6cj+v9KRPQNR6QDA3IT5XS1uAsDmd7W4CfMDwPBqcRPmdwXA+F0tbsL8BsACUenInoEIwAxEpSN7BgrAFjdhfleLC8AgKh3ZMxANwCod2TMQlQ7AGohKR/YMEMCegah0ZM8QwCR7BqLSkRHAqHRkz0BUEsAtbsL8rhYTwLJnICod2RPAN2F+V4ubFMC8WtyE+V0VwEBUOrJnIBbAxk2Y39XiFsBKR/YMRKUXwM9AVDqyZxjAVDqyZyAqGcDZMxCVjuwZwF4tbsL8rhrA4ybM72pxG8BoICod2TMcwOwZiEpH9hzAcRPmd7W4HcD2DESlI3sewHsGotKRPR/AAAAAAAAAIMA=\",\"dtype\":\"float64\",\"shape\":[160]},\"y\":{\"__ndarray__\":\"bcY8KPQCAEDl6scMMwYAQJSlOb+MDABAGlAngoAYAEC+1EusIS4AQFv+gXK+UwBALjxji4qSAEB68JKjGPcAQI/9w/ZNkQFA88VO+WNzAkDE+8CUka8DQIHdCfwuVAVAA/Yt/J1mB0BWfbRb3t0JQAilvylAngxANeEsitd3D0CMVVlZghQRQAIv1bHKMhJAAPEXkfTwEkDeK9f3LTATQO864Qcu3xJA9E3sxiD/EUDZ0xcbNm4TQLysLIfrkBRAKQ9UuoVAFUAmSL/BPpcVQCoz6z4qthVA6MltiEK9FUDfyCf5R8QVQJ3RVf501hVAFyvv8znyFUBHtvOS9gwWQDe5H4JmGRZAa3kunqEOFkA0WqPyaO0VQABwxCDqkhdAC98Tj/JfGUB8nPwINaAaQB665MEcRhtA409x8oBRG0AQig7VmssaQMh5gcxPwRlAcUPQ2848GEC9BzHJ9s0XQDx2+pSUuBZA16vkuOJvFEAJevShY8QQQAxrUbc4ZgdAbFGEsS7C9T8GCdtvAlfZv9d5GOrEggHANVpH5jVIDcD7vIbL3q4TwFWmntZMVBfA4agcKuQcGcCGIuw+R8oYwP3dQw7PWBbAtAFyhQBKEsA+Unw6SwEKwGXXQCLg4vy/aAoi50DM2b9TlLFrbEHqPwWlPSIZdfw/tlkQDPGCA0BTDYuC+IkGQFjLX0w1tQdAiuge1deLB0CEUkhHapYGQBpb8ubzRwVAdyzdV7DyA0AIEfFUEscCQJmD1bWq2QFAlqv0HwMsAUBtmx1PPbUAQLUXLK+qaABAFpnE8+E5AECRQsYxsR4AQL9h95WeDwBA2eeodKIHAECQQ6cRlgMAQPHq9o3T+P+/Lh9fqbnw/78ZCYexvOD/v23F0C6Fwv+/i5yIC+KL/7+il510dy3/v56M2kG8kf6/jKatRO+c/b+xO+Ji6S78v+gYnFnIJ/q/ClfuZENw97/xPKKg7wX0v7weoIihCvC/BgtmsI+o579IT32r6eDfv4gh8G+3K9W/SD+bdXsz07+k3skS9wLevz/6tfonW+y/PltRSi4Y+b9Vb94gPOMDwP4c1m8VcQzA6hOtmfGSEsChlS00m2cWwBhQubn43hjA5QTgI6KYGcADciBJEzUYwF9FUOK8sRTAETNmYLa3DsDj1TGF35IBwMUv2fAAoOW/9xxJtWMF6T+42fiiCcMAQGY0ezYdzQlADX+M9DurEEDecIbY08ATQId6TTfnPxZAcUCIvNf7F0AIlAV6y5gXQNwWtShv9hZAIduErp5VFkAEomZUwN8VQLgb+ZRppRVAK988x9ehFUDquoWZAMIVQMbM+HjVVRVAp4bhiafTEkARlF3KAkIQQFI8UyEAtwtAroIOoTSxB0AiBA9ttNAEQIIRrSzZUwNA2U01LUxQA0BZhnOTUq8EQA30RrkUMAdA1pmV6tlvCkDj1TjQXPcNQO0/Zvi2pRBAWDlqi6DLEUA26Pn15FoPQIUX0Y+gUQpAvBNdphPABEBLlAlyJvL9P8l7Z2D1n/I//HKAx3Ey4D+Qb9ifvZuzv04R2LyxPOK/0b6DHYkK77/eYc9ylYH0v4IdMytMPfi/3qHvGA3u+r+GQW7r9cv8v3ogU5NBC/6/fGrERaDY/r/qzPUqxFf/v2sCWtSCo/+/DpR8sO7O/79tufI74ub/vzooqtuY8/+/O7r5chf6/78=\",\"dtype\":\"float64\",\"shape\":[160]}}},\"id\":\"295ee1ad-904f-4075-b08a-4a70d00d95a9\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"label\":{\"value\":\"Mean\"},\"renderers\":[{\"id\":\"a40707db-5278-4a32-8419-4be300573361\",\"type\":\"GlyphRenderer\"}]},\"id\":\"25601d40-e9d7-48c6-9f97-b872af4cb183\",\"type\":\"LegendItem\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAIMB7BqLSkT0fwPYMRKUjex7AcRPmd7W4HcDsGYhKR/YcwGggKh3ZMxzA4ybM72pxG8BeLW7C/K4awNkzEJWO7BnAVDqyZyAqGcDPQFQ6smcYwEpH9gxEpRfAxk2Y39XiFsBAVDqyZyAWwLxa3IT5XRXAN2F+V4ubFMCyZyAqHdkTwC1uwvyuFhPAqHRkz0BUEsAkewai0pERwJ6BqHRkzxDAGohKR/YMEMAqHdkzEJUOwCAqHdkzEA3AFjdhfleLC8AMRKUjewYKwAJR6ciegQjA+F0tbsL8BsDwanET5ncFwOZ3tbgJ8wPA3IT5XS1uAsDSkT0DUekAwJA9A1HpyP6/fFeLmzC/+79ocRPmd7X4v1SLmzC/q/W/QKUjewai8r9gfleLmzDvvziyZyAqHem/EOZ3tbgJ47/QMxCVjuzZvwA3YX5Xi8u/ADMQlY7smb9AKh3ZMxDFP2AtbsL8rtY/4OImzO9q4T8ArxY3YX7nPzB7BqLSke0/qCN7BqLS8T+4CfO7Wtz0P9DvanET5vc/4NXiJszv+j/4u1rchPn9PwRR6ciegQBAEESlI3sGAkAYN2F+V4sDQCAqHdkzEAVALB3ZMxCVBkA0EJWO7BkIQEADUenInglASPYMRKUjC0BU6ciegagMQFzchPldLQ5AaM9AVDqyD0A4YX5Xi5sQQLxa3IT5XRFAQlQ6smcgEkDGTZjf1eISQExH9gxEpRNA0EBUOrJnFEBWOrJnICoVQNozEJWO7BVAYC1uwvyuFkDkJszvanEXQGggKh3ZMxhA7hmISkf2GEByE+Z3tbgZQPgMRKUjexpAfAai0pE9G0AAAAAAAAAcQA==\",\"dtype\":\"float64\",\"shape\":[80]},\"y\":{\"__ndarray__\":\"Jjyl/7qhVz9oj63lPc1oP+jdSEChG3k/TQmD9JSEiD8B4rSHEBiXP8f84qCL+6Q/Bm8QiKZjsj/YA5aefRe/P17mZgiYWsk/D9Rbs3Xx0z8KtJ38rUPePyNZRIXIJuY/nQyaafdH7z8CeX7ssU71P4zhwDxiAfw/+n4G/jnCAUB+NHOxf7wFQBWUV05UrwlA3npGZP5QDUDQ298ffywQQIUXb0FQRhFApkMrqWDlEUDjCb+J9gkSQNeLpPdMxhFACm7PVzk8EUAWYTGPpJcQQCt7UsTpBhBA1XAIn2hlD0CgUX6PNG4PQNepbppnHxBANzY7ImrlEEA4qs5RO/QRQKSmPqa0LRNACQAIlCRxFEB9E841n6EVQHUVJV11qhZAG18oK+WAF0Aa3PpOzyIYQBGuJYvukhhAghV70I/TGEB20OH+BOEYQOiGQ6MNrRhA8UEsTFMcGEAiQT8A7wYXQI1zwDa0PBVAcpW4Vo+NEkA8FDI98qoNQGIiJS2hFARA9G8URnAi8T8kWmMUwSXhv90npTfSigHAo8ZWI/b/DcAtgevWTTAUwCyM3w+wxBfA41b+JsNaGcBPuVL8n9QYwM+5OCE1YBbAz4qPD3luEsCeNylVMDkLwIRt/xhWKgHA2N0ZhD6L779gLyN43M2gv1wti11b9OQ/zfFcnYEc8T8iCY2UgeTzP28h8BYYufM/yGUF6bOh8T9MhvAFMyLtP0R5Qi34ieY/5AHMSh114D9OEoyguMzWPwIuIyOwEc4/gsLu7Fvswj/mUQXj8sW2P3B8qZvePao/IrQSgDv8nD8y7e8uTbeOP6oy3TM9QH8/voSw8j+Lbj/6XTivKrFcPw==\",\"dtype\":\"float64\",\"shape\":[80]}}},\"id\":\"c2058f51-6cb8-44a1-9b52-8e63715aca8a\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"label\":{\"value\":\"Training data\"},\"renderers\":[{\"id\":\"161a80d3-8782-443e-bd62-6a4dba4a0c24\",\"type\":\"GlyphRenderer\"}]},\"id\":\"79eb881d-c0e9-43ad-b311-589058125332\",\"type\":\"LegendItem\"},{\"attributes\":{\"items\":[{\"id\":\"abf7046b-a8b7-4a24-8784-e42ec7d94b32\",\"type\":\"LegendItem\"},{\"id\":\"79eb881d-c0e9-43ad-b311-589058125332\",\"type\":\"LegendItem\"},{\"id\":\"6b201b98-bdae-42e6-8585-53e0b0661fd2\",\"type\":\"LegendItem\"},{\"id\":\"25601d40-e9d7-48c6-9f97-b872af4cb183\",\"type\":\"LegendItem\"}],\"plot\":{\"id\":\"2cf06c2a-84f0-4c57-8733-64257fcb96f8\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"25704cf0-fe11-42f7-8301-4beeffdcc020\",\"type\":\"Legend\"},{\"attributes\":{\"fill_color\":{\"value\":\"#1f77b4\"},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":20},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"ffb057f0-5168-4687-9dc0-58e0fc7ea218\",\"type\":\"Cross\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"grey\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"grey\"},\"line_width\":{\"value\":0},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"58423346-d2eb-4b98-8290-8f1b6a3d9573\",\"type\":\"Patch\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":20},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"0183f9e4-af18-4643-b90d-34f26edf6383\",\"type\":\"Cross\"},{\"attributes\":{\"data_source\":{\"id\":\"2a39a24e-c915-4575-b7ce-5c4f3d23c61e\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"ffb057f0-5168-4687-9dc0-58e0fc7ea218\",\"type\":\"Cross\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"0183f9e4-af18-4643-b90d-34f26edf6383\",\"type\":\"Cross\"},\"selection_glyph\":null,\"view\":{\"id\":\"b5b9596c-9ef5-4cde-9b7a-1fa439ea1620\",\"type\":\"CDSView\"}},\"id\":\"161a80d3-8782-443e-bd62-6a4dba4a0c24\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"2a39a24e-c915-4575-b7ce-5c4f3d23c61e\",\"type\":\"ColumnDataSource\"}},\"id\":\"b5b9596c-9ef5-4cde-9b7a-1fa439ea1620\",\"type\":\"CDSView\"},{\"attributes\":{\"formatter\":{\"id\":\"3353f480-38ca-4cc1-b660-e47f04e1413f\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"2cf06c2a-84f0-4c57-8733-64257fcb96f8\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"ab70b6d7-bf6c-4322-b075-3c739ae35bb7\",\"type\":\"BasicTicker\"}},\"id\":\"32ffabb0-10a6-4c0b-ae04-e35786fb6374\",\"type\":\"LinearAxis\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"line_width\":{\"value\":0},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"fc885baa-2a42-4901-91ed-a140c870bd66\",\"type\":\"Patch\"},{\"attributes\":{},\"id\":\"3353f480-38ca-4cc1-b660-e47f04e1413f\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"label\":{\"value\":\"Uncertainty\"},\"renderers\":[{\"id\":\"9184979d-3a0e-4b8e-bad7-7b96d033eb7a\",\"type\":\"GlyphRenderer\"}]},\"id\":\"6b201b98-bdae-42e6-8585-53e0b0661fd2\",\"type\":\"LegendItem\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAEMAAAAAAAAD4vwAAAAAAAAAAAAAAAAAA+D8AAAAAAAAEQJqZmZmZmQVA\",\"dtype\":\"float64\",\"shape\":[6]},\"y\":{\"__ndarray__\":\"8FG4HoXrEUDtUbgeheMVQAAAAAAAABhACdejcD36AcAAAAAAAEgYwGzVKxuMHxXA\",\"dtype\":\"float64\",\"shape\":[6]}}},\"id\":\"2a39a24e-c915-4575-b7ce-5c4f3d23c61e\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data_source\":{\"id\":\"295ee1ad-904f-4075-b08a-4a70d00d95a9\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"58423346-d2eb-4b98-8290-8f1b6a3d9573\",\"type\":\"Patch\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"fc885baa-2a42-4901-91ed-a140c870bd66\",\"type\":\"Patch\"},\"selection_glyph\":null,\"view\":{\"id\":\"a92860ae-4b3f-4574-9f8e-61c117fb75e4\",\"type\":\"CDSView\"}},\"id\":\"9184979d-3a0e-4b8e-bad7-7b96d033eb7a\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"below\":[{\"id\":\"32ffabb0-10a6-4c0b-ae04-e35786fb6374\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"0d8de8b9-072c-4772-8d5f-a5c5fccabd8d\",\"type\":\"LinearAxis\"}],\"plot_width\":800,\"renderers\":[{\"id\":\"32ffabb0-10a6-4c0b-ae04-e35786fb6374\",\"type\":\"LinearAxis\"},{\"id\":\"f59462f3-c1b8-4bbe-b5a8-27bc2dfffede\",\"type\":\"Grid\"},{\"id\":\"0d8de8b9-072c-4772-8d5f-a5c5fccabd8d\",\"type\":\"LinearAxis\"},{\"id\":\"f63b824f-10be-430f-b6c4-8cd45dbe5590\",\"type\":\"Grid\"},{\"id\":\"3df3f3b8-2847-4949-9afa-e44b7dede701\",\"type\":\"BoxAnnotation\"},{\"id\":\"25704cf0-fe11-42f7-8301-4beeffdcc020\",\"type\":\"Legend\"},{\"id\":\"682f7727-9ce2-443b-a36a-ebe8f306c10e\",\"type\":\"GlyphRenderer\"},{\"id\":\"161a80d3-8782-443e-bd62-6a4dba4a0c24\",\"type\":\"GlyphRenderer\"},{\"id\":\"9184979d-3a0e-4b8e-bad7-7b96d033eb7a\",\"type\":\"GlyphRenderer\"},{\"id\":\"d28c84fb-29ab-4a88-92a4-b89945dca3d0\",\"type\":\"GlyphRenderer\"},{\"id\":\"a5064122-a8f7-4154-930c-d0c8ff339286\",\"type\":\"GlyphRenderer\"},{\"id\":\"53cec0a4-6d03-4c8b-aa2a-3883f5157e93\",\"type\":\"GlyphRenderer\"},{\"id\":\"a40707db-5278-4a32-8419-4be300573361\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"03ccb6ae-1c7c-460e-b63a-14e85acfc3ca\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"74f02f57-1bc1-41d8-8fd2-8b3ec272b44b\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"3dfd3ac0-5b75-401a-a8ff-a4fd7715b11b\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"359bca5a-02d7-42ae-8558-f85ed7dac764\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"842d6f17-0ba7-4f5a-9cac-d99d4234ad11\",\"type\":\"Range1d\"},\"y_scale\":{\"id\":\"60c969d6-9167-475b-aa01-c887c0614f7d\",\"type\":\"LinearScale\"}},\"id\":\"2cf06c2a-84f0-4c57-8733-64257fcb96f8\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"source\":{\"id\":\"295ee1ad-904f-4075-b08a-4a70d00d95a9\",\"type\":\"ColumnDataSource\"}},\"id\":\"a92860ae-4b3f-4574-9f8e-61c117fb75e4\",\"type\":\"CDSView\"},{\"attributes\":{\"source\":{\"id\":\"207a1c5d-a737-4987-bad9-9787197db993\",\"type\":\"ColumnDataSource\"}},\"id\":\"0ca035ee-0d54-418c-b874-a933fa484d61\",\"type\":\"CDSView\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAIMB7BqLSkT0fwPYMRKUjex7AcRPmd7W4HcDsGYhKR/YcwGggKh3ZMxzA4ybM72pxG8BeLW7C/K4awNkzEJWO7BnAVDqyZyAqGcDPQFQ6smcYwEpH9gxEpRfAxk2Y39XiFsBAVDqyZyAWwLxa3IT5XRXAN2F+V4ubFMCyZyAqHdkTwC1uwvyuFhPAqHRkz0BUEsAkewai0pERwJ6BqHRkzxDAGohKR/YMEMAqHdkzEJUOwCAqHdkzEA3AFjdhfleLC8AMRKUjewYKwAJR6ciegQjA+F0tbsL8BsDwanET5ncFwOZ3tbgJ8wPA3IT5XS1uAsDSkT0DUekAwJA9A1HpyP6/fFeLmzC/+79ocRPmd7X4v1SLmzC/q/W/QKUjewai8r9gfleLmzDvvziyZyAqHem/EOZ3tbgJ47/QMxCVjuzZvwA3YX5Xi8u/ADMQlY7smb9AKh3ZMxDFP2AtbsL8rtY/4OImzO9q4T8ArxY3YX7nPzB7BqLSke0/qCN7BqLS8T+4CfO7Wtz0P9DvanET5vc/4NXiJszv+j/4u1rchPn9PwRR6ciegQBAEESlI3sGAkAYN2F+V4sDQCAqHdkzEAVALB3ZMxCVBkA0EJWO7BkIQEADUenInglASPYMRKUjC0BU6ciegagMQFzchPldLQ5AaM9AVDqyD0A4YX5Xi5sQQLxa3IT5XRFAQlQ6smcgEkDGTZjf1eISQExH9gxEpRNA0EBUOrJnFEBWOrJnICoVQNozEJWO7BVAYC1uwvyuFkDkJszvanEXQGggKh3ZMxhA7hmISkf2GEByE+Z3tbgZQPgMRKUjexpAfAai0pE9G0AAAAAAAAAcQA==\",\"dtype\":\"float64\",\"shape\":[80]},\"y\":{\"__ndarray__\":\"sk5SCN2N5D85EJOClwTqPwe7IcEbXew/7+G8Jwoz7D8SmtK0SqvqP0jbM6UOH+k/1n2iyfa86D/cdR+IVkXqP9SYNyfC+u0/JrFFBLji8T8OpH58yrb1Py02yOKgY/o/eucafavb/z90DXDg/AQDQL6xTZ95XgZA6tUFg3/NCUDIShifxRQNQF94l7jQ8Q9Ai+bST0cVEUBDm0n/x8sRQABkMtMlFBJA2eTbVmDxEUBykM/R4HARQDSWi1AGqhBAaIoN80x7D0CtmJmK56cNQI0BenMmLwxAdF+i68hcC0BvE/GxumQLQCK4/vHAWgxAN4mVWiczDkD348PAS2UQQMlfqW7W9xFAh2WEO420E0DYcBVIkXsVQGFgiRjdKRdAd68ybTCbGED5WmOG9q4ZQAseA2uXThpA26Q/5ahxGkABbzOZwRwaQNaOkHVHWhlAu1YnOuEvGEBfSjYAQJUWQMbNhueycBRAFG7eWMmbEUDsS3kp4N4LQPr+/NU/qQJAvz9Dad6q7j9QAScr07Xiv2LEeJ5HjQHArPIqmKnQDcCYGu2y0RUUwKq/1PYstBfATAjBHIJVGcC2hIAga9QYwCdpTBneXxbABsDHAH5yEsDf5QcDKm4LwBWCe33uxAHAbJn7PBo68r8mfYEqSQ7Sv0kCISED1NM/OUKcavi65D+ZjqBq/t7oP6fr2SDwQeg/GFcjjKjJ5D/GuZcO3A7gP/In06KSldY/Fh1wQ8aazT9WHdmq7lPEP/QrCjXRf8M/u6WO9UWRzD/Gt5laIPXXP2bsp7qJHeM/Uh63rS3h6z+y+nfpYKPyP9UuPtoTF/c/ByqThQ3K+j+QDhoBW2L9Pw==\",\"dtype\":\"float64\",\"shape\":[80]}}},\"id\":\"738734b5-1362-4a99-b4bc-8783ad3255ed\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"aca0777f-24d0-4399-b2e7-78fd330e7382\",\"type\":\"PanTool\"},{\"id\":\"c056809a-36f9-4c31-8daf-bc57e535e507\",\"type\":\"WheelZoomTool\"},{\"id\":\"f7de983b-72fe-4399-9017-ff562b157968\",\"type\":\"BoxZoomTool\"},{\"id\":\"1610492c-efe6-4f99-a680-4e386251bc1f\",\"type\":\"SaveTool\"},{\"id\":\"ae07735b-2f40-42da-be58-4ee216dc5a46\",\"type\":\"ResetTool\"},{\"id\":\"d79b5b80-e2d3-49ec-bda8-e8a3a58aca05\",\"type\":\"HelpTool\"}]},\"id\":\"74f02f57-1bc1-41d8-8fd2-8b3ec272b44b\",\"type\":\"Toolbar\"}],\"root_ids\":[\"2cf06c2a-84f0-4c57-8733-64257fcb96f8\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.10\"}};\n",
" var render_items = [{\"docid\":\"27d3d96b-551f-4a18-91b8-cd3585588826\",\"elementid\":\"a3249ede-f9e5-4d22-8614-4966f82cbca5\",\"modelid\":\"2cf06c2a-84f0-4c57-8733-64257fcb96f8\"}];\n",
"\n",
" root.Bokeh.embed.embed_items(docs_json, render_items);\n",
" }\n",
"\n",
" if (root.Bokeh !== undefined) {\n",
" embed_document(root);\n",
" } else {\n",
" var attempts = 0;\n",
" var timer = setInterval(function(root) {\n",
" if (root.Bokeh !== undefined) {\n",
" embed_document(root);\n",
" clearInterval(timer);\n",
" }\n",
" attempts++;\n",
" if (attempts > 100) {\n",
" console.log(\"Bokeh: ERROR: Unable to embed document because BokehJS library is missing\")\n",
" clearInterval(timer);\n",
" }\n",
" }, 10, root)\n",
" }\n",
"})(window);"
],
"application/vnd.bokehjs_exec.v0+json": ""
},
"metadata": {
"application/vnd.bokehjs_exec.v0+json": {
"id": "2cf06c2a-84f0-4c57-8733-64257fcb96f8"
}
},
"output_type": "display_data"
}
],
"source": [
"p = figure(plot_width=800, plot_height=600, y_range=(-7, 8))\n",
"\n",
"y_true = f(x_s)\n",
"p.line(x_s, y_true, line_width=3, color='black', alpha=0.4, line_dash='dashed', legend='True f(x)')\n",
"\n",
"p.cross(x_obs, y_obs, size=20, legend='Training data')\n",
"\n",
"stds = np.sqrt(Sigma_s.diagonal())\n",
"err_xs = np.concatenate((x_s, np.flip(x_s, 0)))\n",
"err_ys = np.concatenate((mu_s + 2 * stds, np.flip(mu_s - 2 * stds, 0)))\n",
"p.patch(err_xs, err_ys, alpha=0.2, line_width=0, color='grey', legend='Uncertainty')\n",
"\n",
"for color in Category10[3]:\n",
" y_s = np.random.multivariate_normal(mu_s, Sigma_s)\n",
" p.line(x_s, y_s, line_width=1, color=color)\n",
" \n",
"p.line(x_s, mu_s, line_width=3, color='blue', alpha=0.4, legend='Mean')\n",
"show(p)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## What next? - GP Regression and Noisy Data\n",
"***\n",
"In practice we need to do a bit more work to get good predictions. You may have noticed that the kernel implementation contained two parameters $\\sigma$ and $l$. If you try changing those when sampling from the prior then you can see how $\\sigma$ changes the vertical variation and $l$ changes the horizontal scale. So we would need to change these to reflect our prior belief about the hidden function $f$. For instance if we expect $f$ to have a much bigger range of outputs (for the domain we are interested in) then we would need to scale up $\\sigma$ accordingly (try scaling the return value of $f$ by 100 to see what happens, then set `sigma=100`). In fact, as with anything that uses kernels, we might change our kernel entirely if we expect a different kind of function (e.g. a periodic function).\n",
"\n",
"Picking the kernel is up to a human expert but choosing the parameters can be done automatically by minimising a loss term. This is the realm of Gaussian process regression. \n",
"\n",
"Finally we should consider how to handle noisy data - i.e. when we can't get perfect samples of the hidden function $f$. In this case we need to factor this uncertainty into the model to get better generalisation.\n",
"\n",
"These two topics will be the focus of _Introduction to Gaussian Processes - Part II_."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Resources\n",
"***\n",
"- _Machine Learning - A Probabilistic Perspective_, Chapter 15 by Kevin P. Murphy\n",
"- [Introduction to Gaussian processes](https://www.youtube.com/watch?v=4vGiHC35j9s) on YouTube by Nando de Freitas"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [conda env:jupyter-py36]",
"language": "python",
"name": "conda-env-jupyter-py36-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment