Skip to content

Instantly share code, notes, and snippets.

@Microno95
Created March 27, 2017 18:24
Show Gist options
  • Select an option

  • Save Microno95/d6844773e3beb097874eaf0c893e5477 to your computer and use it in GitHub Desktop.

Select an option

Save Microno95/d6844773e3beb097874eaf0c893e5477 to your computer and use it in GitHub Desktop.
PHYD38 - PS4.ipynb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {
"ExecuteTime": {
"start_time": "2017-03-27T13:48:06.241316",
"end_time": "2017-03-27T13:48:06.485869"
},
"collapsed": false,
"trusted": true
},
"cell_type": "code",
"source": "%reset -f\n%pylab notebook\nplt.rc('text', usetex=True)\nplt.rc('font', family='serif')\nplt.rcParams['text.latex.unicode']=True\nimport numpy as np\nimport desolver as de\nfrom tqdm import tqdm_notebook\nde.init_module(raiseKBINT=True)\nfrom mpl_toolkits.mplot3d import Axes3D\nimport inspect",
"execution_count": 1,
"outputs": [
{
"output_type": "stream",
"text": "Populating the interactive namespace from numpy and matplotlib\n",
"name": "stdout"
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2017-03-27T13:48:06.487071",
"end_time": "2017-03-27T13:48:06.497381"
},
"collapsed": true,
"trusted": true
},
"cell_type": "code",
"source": "from contextlib import contextmanager\nimport sys, os\n\n@contextmanager\ndef suppress_stdout():\n with open(os.devnull, \"w\") as devnull:\n old_stdout = sys.stdout\n sys.stdout = devnull\n try: \n yield\n finally:\n sys.stdout = old_stdout",
"execution_count": 2,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2017-03-27T13:48:06.498972",
"end_time": "2017-03-27T13:48:06.640366"
},
"collapsed": true,
"trusted": true,
"hide_input": true
},
"cell_type": "code",
"source": "def plotVectorField(func, num_per_axis=1, stream_or_quiver=0, xlims=[-1, 1], ylims=[-1, 1], zlims=None, fkwargs={}, plotkwargs={}, axin=None):\n fig = plt.figure() if axin is None else axin.figure\n ax = fig.add_subplot(111, projection='3d' if zlims is not None else 'rectilinear') if axin is None else axin\n vectorizedFunc = np.vectorize(func, **fkwargs)\n if zlims is not None:\n vectorizedPlot = np.vectorize(lambda x, y, z, dx, dy, dz: ax.quiver(x, y, z, dx / num_per_axis, dy / num_per_axis, dz / num_per_axis, **plotkwargs))\n x = np.linspace(xlims[0], xlims[1], num_per_axis if xlims[0] != xlims[1] else 1)\n y = np.linspace(ylims[0], ylims[1], num_per_axis if ylims[0] != ylims[1] else 1)\n z = np.linspace(zlims[0], zlims[1], num_per_axis if zlims[0] != zlims[1] else 1)\n X, Y, Z = np.meshgrid(x, y, z)\n dX, dY, dZ = vectorizedFunc(X, Y, Z)\n img = vectorizedPlot(X, Y, Z, dX, dY, dZ)\n zmean = np.mean(zlims)\n zwidth = 0.5 * (zlims[1] - zlims[0])\n\n ax.set_zlim(zmean - zwidth * (1 + 1/num_per_axis), zmean + zwidth * (1 + 1/num_per_axis))\n elif ylims is not None:\n if stream_or_quiver:\n vectorizedPlot = np.vectorize(lambda x, y, dx, dy: ax.quiver(x, y, dx / num_per_axis, dy / num_per_axis, **plotkwargs))\n else:\n vectorizedPlot = lambda x, y, dx, dy: ax.streamplot(x, y, dx / num_per_axis, dy / num_per_axis, **plotkwargs)\n x = np.linspace(xlims[0], xlims[1], num_per_axis if xlims[0] != xlims[1] else 1)\n y = np.linspace(ylims[0], ylims[1], num_per_axis if ylims[0] != ylims[1] else 1)\n X, Y = np.meshgrid(x, y)\n dX, dY = vectorizedFunc(X, Y)\n if stream_or_quiver:\n img = vectorizedPlot(X, Y, dX, dY)\n else:\n img = vectorizedPlot(x, y, dX, dY)\n else:\n if stream_or_quiver:\n vectorizedPlot = lambda x, y, dx, dy: ax.quiver(x, y, dx / num_per_axis, dy / num_per_axis, **plotkwargs)\n else:\n vectorizedPlot = lambda x, y, dx, dy: ax.streamplot(x, y, dx / num_per_axis, dy / num_per_axis, **plotkwargs)\n x = np.linspace(xlims[0], xlims[1], num_per_axis if xlims[0] != xlims[1] else 1)\n X, = np.meshgrid(x)\n dX = vectorizedFunc(X)\n if stream_or_quiver:\n img = vectorizedPlot(X, dX, *np.meshgrid(dX, X))\n else:\n img = vectorizedPlot(x, dX, *np.meshgrid(dX, X))\n \n xmean = np.mean(xlims)\n xwidth = 0.5 * (xlims[1] - xlims[0])\n \n ymean = np.mean(ylims)\n ywidth = 0.5 * (ylims[1] - ylims[0])\n \n ax.set_xlim(xmean - xwidth * (1 + 1/num_per_axis), xmean + xwidth * (1 + 1/num_per_axis))\n ax.set_ylim(ymean - ywidth * (1 + 1/num_per_axis), ymean + ywidth * (1 + 1/num_per_axis))\n return fig, ax, img",
"execution_count": 3,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2017-03-27T13:48:06.641513",
"end_time": "2017-03-27T13:48:06.804831"
},
"collapsed": true,
"trusted": true
},
"cell_type": "code",
"source": "def plot(f, xrange=[-1,1], resolution=100, ax=None, fkwargs={}, pltkwargs={}):\n if ax is not None:\n fig = ax.get_figure()\n else:\n fig = plt.figure()\n ax = fig.add_subplot(111)\n xvals = np.linspace(*xrange, resolution)\n return fig, (ax, ax.plot(xvals, f(xvals, **fkwargs), **pltkwargs))",
"execution_count": 4,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2017-03-27T13:48:07.107402",
"end_time": "2017-03-27T13:48:07.317347"
},
"collapsed": false,
"trusted": true
},
"cell_type": "code",
"source": "# Question 1\n\ne = lambda t, w_0=np.pi/2,e_0=1e-2: np.sqrt((e_0 * np.sin(w_0) + np.tan(t)**2) / (1 + np.tan(t)**2))\nw = lambda t, w_0=np.pi/2,e_0=1e-2: np.arctan(e_0 * np.sin(w_0) / np.sqrt((1-(e_0*np.sin(w_0))**2)*np.tan(t)**2/(1+np.tan(t)**2)))\nfrom functools import partial as prtial\nfig = figure(figsize=(12, 6))\nax1 = fig.add_subplot(121)\nax2 = fig.add_subplot(122)\nplot(e, xrange=[0, np.pi*6], resolution=1000, ax=ax1, pltkwargs={'label':r'$e\\left(t\\right)$'})\nplot(w, xrange=[0, np.pi*6], resolution=1000, ax=ax2, pltkwargs={'label':r'$w\\left(t\\right)$'})\nax1.set_xlabel(r't')\nax1.set_ylabel(r'$e\\left(t\\right)$')\nax1.set_title(r'$e$ vs $t$')\nax1.legend()\nax1.grid(which='both')\nax2.set_xlabel(r't')\nax2.set_ylabel(r'$w\\left(t\\right)$')\nax2.set_title(r'$w$ vs $t$')\nax2.legend()\nax2.grid(which='both')",
"execution_count": 7,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": "<IPython.core.display.Javascript object>",
"application/javascript": "/* Put everything inside the global mpl namespace */\nwindow.mpl = {};\n\n\nmpl.get_websocket_type = function() {\n if (typeof(WebSocket) !== 'undefined') {\n return WebSocket;\n } else if (typeof(MozWebSocket) !== 'undefined') {\n return MozWebSocket;\n } else {\n alert('Your browser does not have WebSocket support.' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.');\n };\n}\n\nmpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = (this.ws.binaryType != undefined);\n\n if (!this.supports_binary) {\n var warnings = document.getElementById(\"mpl-warnings\");\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent = (\n \"This browser does not support binary websocket messages. \" +\n \"Performance may be slow.\");\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = $('<div/>');\n this._root_extra_style(this.root)\n this.root.attr('style', 'display: inline-block');\n\n $(parent_element).append(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n fig.send_message(\"send_image_mode\", {});\n if (mpl.ratio != 1) {\n fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n }\n fig.send_message(\"refresh\", {});\n }\n\n this.imageObj.onload = function() {\n if (fig.image_mode == 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function() {\n this.ws.close();\n }\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n}\n\nmpl.figure.prototype._init_header = function() {\n var titlebar = $(\n '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n 'ui-helper-clearfix\"/>');\n var titletext = $(\n '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n 'text-align: center; padding: 3px;\"/>');\n titlebar.append(titletext)\n this.root.append(titlebar);\n this.header = titletext[0];\n}\n\n\n\nmpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n\n}\n\n\nmpl.figure.prototype._root_extra_style = function(canvas_div) {\n\n}\n\nmpl.figure.prototype._init_canvas = function() {\n var fig = this;\n\n var canvas_div = $('<div/>');\n\n canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n\n function canvas_keyboard_event(event) {\n return fig.key_event(event, event['data']);\n }\n\n canvas_div.keydown('key_press', canvas_keyboard_event);\n canvas_div.keyup('key_release', canvas_keyboard_event);\n this.canvas_div = canvas_div\n this._canvas_extra_style(canvas_div)\n this.root.append(canvas_div);\n\n var canvas = $('<canvas/>');\n canvas.addClass('mpl-canvas');\n canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n\n this.canvas = canvas[0];\n this.context = canvas[0].getContext(\"2d\");\n\n var backingStore = this.context.backingStorePixelRatio ||\n\tthis.context.webkitBackingStorePixelRatio ||\n\tthis.context.mozBackingStorePixelRatio ||\n\tthis.context.msBackingStorePixelRatio ||\n\tthis.context.oBackingStorePixelRatio ||\n\tthis.context.backingStorePixelRatio || 1;\n\n mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n\n var rubberband = $('<canvas/>');\n rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n\n var pass_mouse_events = true;\n\n canvas_div.resizable({\n start: function(event, ui) {\n pass_mouse_events = false;\n },\n resize: function(event, ui) {\n fig.request_resize(ui.size.width, ui.size.height);\n },\n stop: function(event, ui) {\n pass_mouse_events = true;\n fig.request_resize(ui.size.width, ui.size.height);\n },\n });\n\n function mouse_event_fn(event) {\n if (pass_mouse_events)\n return fig.mouse_event(event, event['data']);\n }\n\n rubberband.mousedown('button_press', mouse_event_fn);\n rubberband.mouseup('button_release', mouse_event_fn);\n // Throttle sequential mouse events to 1 every 20ms.\n rubberband.mousemove('motion_notify', mouse_event_fn);\n\n rubberband.mouseenter('figure_enter', mouse_event_fn);\n rubberband.mouseleave('figure_leave', mouse_event_fn);\n\n canvas_div.on(\"wheel\", function (event) {\n event = event.originalEvent;\n event['data'] = 'scroll'\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n mouse_event_fn(event);\n });\n\n canvas_div.append(canvas);\n canvas_div.append(rubberband);\n\n this.rubberband = rubberband;\n this.rubberband_canvas = rubberband[0];\n this.rubberband_context = rubberband[0].getContext(\"2d\");\n this.rubberband_context.strokeStyle = \"#000000\";\n\n this._resize_canvas = function(width, height) {\n // Keep the size of the canvas, canvas container, and rubber band\n // canvas in synch.\n canvas_div.css('width', width)\n canvas_div.css('height', height)\n\n canvas.attr('width', width * mpl.ratio);\n canvas.attr('height', height * mpl.ratio);\n canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n\n rubberband.attr('width', width);\n rubberband.attr('height', height);\n }\n\n // Set the figure to an initial 600x600px, this will subsequently be updated\n // upon first draw.\n this._resize_canvas(600, 600);\n\n // Disable right mouse context menu.\n $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n return false;\n });\n\n function set_focus () {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n}\n\nmpl.figure.prototype._init_toolbar = function() {\n var fig = this;\n\n var nav_element = $('<div/>')\n nav_element.attr('style', 'width: 100%');\n this.root.append(nav_element);\n\n // Define a callback function for later on.\n function toolbar_event(event) {\n return fig.toolbar_button_onclick(event['data']);\n }\n function toolbar_mouse_event(event) {\n return fig.toolbar_button_onmouseover(event['data']);\n }\n\n for(var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n // put a spacer in here.\n continue;\n }\n var button = $('<button/>');\n button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n 'ui-button-icon-only');\n button.attr('role', 'button');\n button.attr('aria-disabled', 'false');\n button.click(method_name, toolbar_event);\n button.mouseover(tooltip, toolbar_mouse_event);\n\n var icon_img = $('<span/>');\n icon_img.addClass('ui-button-icon-primary ui-icon');\n icon_img.addClass(image);\n icon_img.addClass('ui-corner-all');\n\n var tooltip_span = $('<span/>');\n tooltip_span.addClass('ui-button-text');\n tooltip_span.html(tooltip);\n\n button.append(icon_img);\n button.append(tooltip_span);\n\n nav_element.append(button);\n }\n\n var fmt_picker_span = $('<span/>');\n\n var fmt_picker = $('<select/>');\n fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n fmt_picker_span.append(fmt_picker);\n nav_element.append(fmt_picker_span);\n this.format_dropdown = fmt_picker[0];\n\n for (var ind in mpl.extensions) {\n var fmt = mpl.extensions[ind];\n var option = $(\n '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n fmt_picker.append(option)\n }\n\n // Add hover states to the ui-buttons\n $( \".ui-button\" ).hover(\n function() { $(this).addClass(\"ui-state-hover\");},\n function() { $(this).removeClass(\"ui-state-hover\");}\n );\n\n var status_bar = $('<span class=\"mpl-message\"/>');\n nav_element.append(status_bar);\n this.message = status_bar[0];\n}\n\nmpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n // which will in turn request a refresh of the image.\n this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n}\n\nmpl.figure.prototype.send_message = function(type, properties) {\n properties['type'] = type;\n properties['figure_id'] = this.id;\n this.ws.send(JSON.stringify(properties));\n}\n\nmpl.figure.prototype.send_draw_message = function() {\n if (!this.waiting) {\n this.waiting = true;\n this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n }\n}\n\n\nmpl.figure.prototype.handle_save = function(fig, msg) {\n var format_dropdown = fig.format_dropdown;\n var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n fig.ondownload(fig, format);\n}\n\n\nmpl.figure.prototype.handle_resize = function(fig, msg) {\n var size = msg['size'];\n if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n fig._resize_canvas(size[0], size[1]);\n fig.send_message(\"refresh\", {});\n };\n}\n\nmpl.figure.prototype.handle_rubberband = function(fig, msg) {\n var x0 = msg['x0'] / mpl.ratio;\n var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n var x1 = msg['x1'] / mpl.ratio;\n var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n x0 = Math.floor(x0) + 0.5;\n y0 = Math.floor(y0) + 0.5;\n x1 = Math.floor(x1) + 0.5;\n y1 = Math.floor(y1) + 0.5;\n var min_x = Math.min(x0, x1);\n var min_y = Math.min(y0, y1);\n var width = Math.abs(x1 - x0);\n var height = Math.abs(y1 - y0);\n\n fig.rubberband_context.clearRect(\n 0, 0, fig.canvas.width, fig.canvas.height);\n\n fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n}\n\nmpl.figure.prototype.handle_figure_label = function(fig, msg) {\n // Updates the figure title.\n fig.header.textContent = msg['label'];\n}\n\nmpl.figure.prototype.handle_cursor = function(fig, msg) {\n var cursor = msg['cursor'];\n switch(cursor)\n {\n case 0:\n cursor = 'pointer';\n break;\n case 1:\n cursor = 'default';\n break;\n case 2:\n cursor = 'crosshair';\n break;\n case 3:\n cursor = 'move';\n break;\n }\n fig.rubberband_canvas.style.cursor = cursor;\n}\n\nmpl.figure.prototype.handle_message = function(fig, msg) {\n fig.message.textContent = msg['message'];\n}\n\nmpl.figure.prototype.handle_draw = function(fig, msg) {\n // Request the server to send over a new figure.\n fig.send_draw_message();\n}\n\nmpl.figure.prototype.handle_image_mode = function(fig, msg) {\n fig.image_mode = msg['mode'];\n}\n\nmpl.figure.prototype.updated_canvas_event = function() {\n // Called whenever the canvas gets updated.\n this.send_message(\"ack\", {});\n}\n\n// A function to construct a web socket function for onmessage handling.\n// Called in the figure constructor.\nmpl.figure.prototype._make_on_message_function = function(fig) {\n return function socket_on_message(evt) {\n if (evt.data instanceof Blob) {\n /* FIXME: We get \"Resource interpreted as Image but\n * transferred with MIME type text/plain:\" errors on\n * Chrome. But how to set the MIME type? It doesn't seem\n * to be part of the websocket stream */\n evt.data.type = \"image/png\";\n\n /* Free the memory for the previous frames */\n if (fig.imageObj.src) {\n (window.URL || window.webkitURL).revokeObjectURL(\n fig.imageObj.src);\n }\n\n fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n evt.data);\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n fig.imageObj.src = evt.data;\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n\n var msg = JSON.parse(evt.data);\n var msg_type = msg['type'];\n\n // Call the \"handle_{type}\" callback, which takes\n // the figure and JSON message as its only arguments.\n try {\n var callback = fig[\"handle_\" + msg_type];\n } catch (e) {\n console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n return;\n }\n\n if (callback) {\n try {\n // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n callback(fig, msg);\n } catch (e) {\n console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n }\n }\n };\n}\n\n// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\nmpl.findpos = function(e) {\n //this section is from http://www.quirksmode.org/js/events_properties.html\n var targ;\n if (!e)\n e = window.event;\n if (e.target)\n targ = e.target;\n else if (e.srcElement)\n targ = e.srcElement;\n if (targ.nodeType == 3) // defeat Safari bug\n targ = targ.parentNode;\n\n // jQuery normalizes the pageX and pageY\n // pageX,Y are the mouse positions relative to the document\n // offset() returns the position of the element relative to the document\n var x = e.pageX - $(targ).offset().left;\n var y = e.pageY - $(targ).offset().top;\n\n return {\"x\": x, \"y\": y};\n};\n\n/*\n * return a copy of an object with only non-object keys\n * we need this to avoid circular references\n * http://stackoverflow.com/a/24161582/3208463\n */\nfunction simpleKeys (original) {\n return Object.keys(original).reduce(function (obj, key) {\n if (typeof original[key] !== 'object')\n obj[key] = original[key]\n return obj;\n }, {});\n}\n\nmpl.figure.prototype.mouse_event = function(event, name) {\n var canvas_pos = mpl.findpos(event)\n\n if (name === 'button_press')\n {\n this.canvas.focus();\n this.canvas_div.focus();\n }\n\n var x = canvas_pos.x * mpl.ratio;\n var y = canvas_pos.y * mpl.ratio;\n\n this.send_message(name, {x: x, y: y, button: event.button,\n step: event.step,\n guiEvent: simpleKeys(event)});\n\n /* This prevents the web browser from automatically changing to\n * the text insertion cursor when the button is pressed. We want\n * to control all of the cursor setting manually through the\n * 'cursor' event from matplotlib */\n event.preventDefault();\n return false;\n}\n\nmpl.figure.prototype._key_event_extra = function(event, name) {\n // Handle any extra behaviour associated with a key event\n}\n\nmpl.figure.prototype.key_event = function(event, name) {\n\n // Prevent repeat events\n if (name == 'key_press')\n {\n if (event.which === this._key)\n return;\n else\n this._key = event.which;\n }\n if (name == 'key_release')\n this._key = null;\n\n var value = '';\n if (event.ctrlKey && event.which != 17)\n value += \"ctrl+\";\n if (event.altKey && event.which != 18)\n value += \"alt+\";\n if (event.shiftKey && event.which != 16)\n value += \"shift+\";\n\n value += 'k';\n value += event.which.toString();\n\n this._key_event_extra(event, name);\n\n this.send_message(name, {key: value,\n guiEvent: simpleKeys(event)});\n return false;\n}\n\nmpl.figure.prototype.toolbar_button_onclick = function(name) {\n if (name == 'download') {\n this.handle_save(this, null);\n } else {\n this.send_message(\"toolbar_button\", {name: name});\n }\n};\n\nmpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n this.message.textContent = tooltip;\n};\nmpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n\nmpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n\nmpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n // Create a \"websocket\"-like object which calls the given IPython comm\n // object with the appropriate methods. Currently this is a non binary\n // socket, so there is still some room for performance tuning.\n var ws = {};\n\n ws.close = function() {\n comm.close()\n };\n ws.send = function(m) {\n //console.log('sending', m);\n comm.send(m);\n };\n // Register the callback with on_msg.\n comm.on_msg(function(msg) {\n //console.log('receiving', msg['content']['data'], msg);\n // Pass the mpl event to the overriden (by mpl) onmessage function.\n ws.onmessage(msg['content']['data'])\n });\n return ws;\n}\n\nmpl.mpl_figure_comm = function(comm, msg) {\n // This is the function which gets called when the mpl process\n // starts-up an IPython Comm through the \"matplotlib\" channel.\n\n var id = msg.content.data.id;\n // Get hold of the div created by the display call when the Comm\n // socket was opened in Python.\n var element = $(\"#\" + id);\n var ws_proxy = comm_websocket_adapter(comm)\n\n function ondownload(figure, format) {\n window.open(figure.imageObj.src);\n }\n\n var fig = new mpl.figure(id, ws_proxy,\n ondownload,\n element.get(0));\n\n // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n // web socket which is closed, not our websocket->open comm proxy.\n ws_proxy.onopen();\n\n fig.parent_element = element.get(0);\n fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n if (!fig.cell_info) {\n console.error(\"Failed to find cell for figure\", id, fig);\n return;\n }\n\n var output_index = fig.cell_info[2]\n var cell = fig.cell_info[0];\n\n};\n\nmpl.figure.prototype.handle_close = function(fig, msg) {\n var width = fig.canvas.width/mpl.ratio\n fig.root.unbind('remove')\n\n // Update the output cell to use the data from the current canvas.\n fig.push_to_output();\n var dataURL = fig.canvas.toDataURL();\n // Re-enable the keyboard manager in IPython - without this line, in FF,\n // the notebook keyboard shortcuts fail.\n IPython.keyboard_manager.enable()\n $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n fig.close_ws(fig, msg);\n}\n\nmpl.figure.prototype.close_ws = function(fig, msg){\n fig.send_message('closing', msg);\n // fig.ws.close()\n}\n\nmpl.figure.prototype.push_to_output = function(remove_interactive) {\n // Turn the data on the canvas into data in the output cell.\n var width = this.canvas.width/mpl.ratio\n var dataURL = this.canvas.toDataURL();\n this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n}\n\nmpl.figure.prototype.updated_canvas_event = function() {\n // Tell IPython that the notebook contents must change.\n IPython.notebook.set_dirty(true);\n this.send_message(\"ack\", {});\n var fig = this;\n // Wait a second, then push the new image to the DOM so\n // that it is saved nicely (might be nice to debounce this).\n setTimeout(function () { fig.push_to_output() }, 1000);\n}\n\nmpl.figure.prototype._init_toolbar = function() {\n var fig = this;\n\n var nav_element = $('<div/>')\n nav_element.attr('style', 'width: 100%');\n this.root.append(nav_element);\n\n // Define a callback function for later on.\n function toolbar_event(event) {\n return fig.toolbar_button_onclick(event['data']);\n }\n function toolbar_mouse_event(event) {\n return fig.toolbar_button_onmouseover(event['data']);\n }\n\n for(var toolbar_ind in mpl.toolbar_items){\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) { continue; };\n\n var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n button.click(method_name, toolbar_event);\n button.mouseover(tooltip, toolbar_mouse_event);\n nav_element.append(button);\n }\n\n // Add the status bar.\n var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n nav_element.append(status_bar);\n this.message = status_bar[0];\n\n // Add the close button to the window.\n var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n button.click(function (evt) { fig.handle_close(fig, {}); } );\n button.mouseover('Stop Interaction', toolbar_mouse_event);\n buttongrp.append(button);\n var titlebar = this.root.find($('.ui-dialog-titlebar'));\n titlebar.prepend(buttongrp);\n}\n\nmpl.figure.prototype._root_extra_style = function(el){\n var fig = this\n el.on(\"remove\", function(){\n\tfig.close_ws(fig, {});\n });\n}\n\nmpl.figure.prototype._canvas_extra_style = function(el){\n // this is important to make the div 'focusable\n el.attr('tabindex', 0)\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n }\n else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n\n}\n\nmpl.figure.prototype._key_event_extra = function(event, name) {\n var manager = IPython.notebook.keyboard_manager;\n if (!manager)\n manager = IPython.keyboard_manager;\n\n // Check for shift+enter\n if (event.shiftKey && event.which == 13) {\n this.canvas_div.blur();\n // select the cell after this one\n var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n IPython.notebook.select(index + 1);\n }\n}\n\nmpl.figure.prototype.handle_save = function(fig, msg) {\n fig.ondownload(fig, null);\n}\n\n\nmpl.find_output_cell = function(html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i=0; i<ncells; i++) {\n var cell = cells[i];\n if (cell.cell_type === 'code'){\n for (var j=0; j<cell.output_area.outputs.length; j++) {\n var data = cell.output_area.outputs[j];\n if (data.data) {\n // IPython >= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] == html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n}\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel != null) {\n IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n}\n"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<IPython.core.display.HTML object>",
"text/html": "<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4QAAAHCCAYAAAC30AdjAAAgAElEQVR4XuydB3RUxR7GP3rvTemd0EsgEDopVCsCKkVRqiAq8gTpHaSIgkhHVESlKqIQIAkltBRCDwkQQHqv0gIJ78ySC5vl7u7M3NkS9n/P8bynO+W7v5k7me/O3P+kAV1EgAgQASJABIgAESACRIAIEAEi4JEE0njkXdNNEwEiQASIABEgAkSACBABIkAEiADIEFInIAJEgAgQASJABIgAESACRIAIeCgBMoQe2vB020SACBABIkAEiAARIAJEgAgQATKE1AeIABEgAkSACBABIkAEiAARIAIeSoAMoYc2PN02ESACRIAIEAEiQASIABEgAkSADCH1ASJABIgAESACRIAIEAEiQASIgIcSIEPooQ1Pt00EiAARIAJEgAgQASJABIgAESBDSH2ACBABIkAEiAARIAJEgAgQASLgoQTIEHpow9NtEwEiQASIABEgAkSACBABIkAEyBBSHyACRIAIEAEiQASIABEgAkSACHgoATKEHtrwdNtEgAgQASJABIgAESACRIAIEAEyhNQHiAARIAJEgAgQASJABIgAESACHkqADKGHNjzdNhEgAkSACBABIkAEiAARIAJEgAwh9QEiQASIABEgAkSACBABIkAEiICHEiBD6KENT7dNBIgAESACRIAIEAEiQASIABEgQ0h9gAgQASJABIgAESACRIAIEAEi4KEEyBB6aMPTbRMBIkAEiAARIAJEgAgQASJABMgQUh8gAkSACBABIkAEiAARIAJEgAh4KAEyhB7a8HTbRIAIEAEiQASIABEgAkSACBABMoTUB4gAESACRIAIEAEiQASIABEgAh5KgAyhhzY83TYRIAJEgAgQASJABIgAESACRIAMIfUBIkAEiAARIAJEgAgQASJABIiAhxIgQ+ihDU+3TQSIABEgAkSACBABIkAEiAARIENIfYAIEAEiQASIABEgAkSACBABIuChBMgQemjD020TASJABIgAESACRIAIEAEiQATIEFIfIAJEgAgQASJABIgAESACRIAIeCgBMoQe2vB020SACBABIkAEiAARIAJEgAgQATKE1AeIABEgAkSACBABIkAEiAARIAIeSoAMoYc2PN02ESACRIAIEAEiQASIABEgAkSADCH1ASJABIgAESACRIAIEAEiQASI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4ypMgAmI5O12JW5nvEyACTABJuAeAjzeu6ctWAkTsIUAG4S2YOWLMoFMTcBfbqxM/cD8cEyACTCBMCXA432YNjw/dngRYIMwvNqbn5YJqCBACabHA3gFQDyA0youytdgAkyACTAB1xHg8d51TcKCmIB6AmwQqmfKV2QC4UAgDkD7cHhQfkYmwASYQJgT4PE+zDsAP37mJ8AGYeZvY35CJmAHAZ4g2EGVr8kEmAATcB8BHu/d1yasiAkoJcAGoVKcfDEmEDYEtAkCuROR2ygfTIAJMAEmkDkJ8HifOduVn4oJpBNgg5A7AxNgAmYI9AOwG8CatL/NXIPrMAEmwASYgPsJ8Hjv/jZihUzAEgE2CC3h48pMgAkwASbABJgAE2ACTIAJMIHQJcAGYei2HStnAkyACTABJsAEmAATYAJMgAlYIsAGoSV8XJkJMAEmwASYABNgAkyACTABJhC6BNggDN22Y+VMgAkwASbABJgAE2ACTIAJMAFLBNggtISPKzMBJsAEmAATYAJMgAkwASbABEKXABuEodt2rJwJMAEmwASYABNgAkyACTABJmCJABuElvBxZSbABJgAE2ACTIAJMAEmwASYQOgSYIMwdNuOlTMBJsAEmAATYAJMgAkwASbABCwRYIPQEj6uzASYABNgAkyACTABJsAEmAATCF0CbBCGbtuxcibABJgAE2ACTIAJMAEmwASYgCUCbBBawseVmQATYAJMgAkwASbABJgAE2ACoUuADcLQbTtWzgSYABNgAkyACTABJsAEmAATsESADUJL+LgyE2ACTIAJMAEmwASYABNgAkwgdAmwQRi6bcfKmQATYAJMgAkwASbABJgAE2AClgiwQWgJH1dmAkyACTABJsAEmAATYAJMgAmELgE2CEO37Vg5E2ACTIAJMAEmwASYABNgAkzAEgE2CC3h48pMgAkwASbABJgAE2ACTIAJMIHQJcAGYei2HStnAkyACTABJsAEmAATYAJMgAlYIsAGoSV8XJkJMAEmwASYABNgAkyACTABJhC6BNggDN22Y+VMgAkwASbABJgAE2ACTIAJMAFLBNggtISPKzMBJsAEmAATYAJMgAkwASbABEKXABuEodt2rJwJMAEmwASYABNgAkyACTABJmCJwP8BxIutiupeQ24AAAAASUVORK5CYII=\" width=\"1200\">"
},
"metadata": {}
},
{
"output_type": "stream",
"text": "/anaconda3/envs/General/lib/python3.5/site-packages/ipykernel/__main__.py:2: RuntimeWarning: divide by zero encountered in true_divide\n from ipykernel import kernelapp as app\n",
"name": "stderr"
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2017-03-27T13:48:06.805905",
"end_time": "2017-03-27T13:48:07.004928"
},
"collapsed": false,
"trusted": true,
"scrolled": true
},
"cell_type": "code",
"source": "# Question 10.3.4\n\nfig, (ax, pl1) = plot(lambda c: (-0.5 + np.sqrt(1/4 - 4*c)), xrange=[-3/16, 1/16], pltkwargs={'label':r'$x_+ ^*$'})\nplot(lambda c: (-0.5 - np.sqrt(1/4 - 4*c)), ax=ax, xrange=[-3/16, 1/16], pltkwargs={'label':r'$x_- ^*$'})\nax.grid(which='both')\nax.set_xlabel('c')\nax.set_ylabel(r'$\\left|x^*\\right|$')\nax.legend()\nax.set_title(r'$\\left|x^*\\right|$ vs $c$')",
"execution_count": 5,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": "<IPython.core.display.Javascript object>",
"application/javascript": "/* Put everything inside the global mpl namespace */\nwindow.mpl = {};\n\n\nmpl.get_websocket_type = function() {\n if (typeof(WebSocket) !== 'undefined') {\n return WebSocket;\n } else if (typeof(MozWebSocket) !== 'undefined') {\n return MozWebSocket;\n } else {\n alert('Your browser does not have WebSocket support.' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.');\n };\n}\n\nmpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = (this.ws.binaryType != undefined);\n\n if (!this.supports_binary) {\n var warnings = document.getElementById(\"mpl-warnings\");\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent = (\n \"This browser does not support binary websocket messages. \" +\n \"Performance may be slow.\");\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = $('<div/>');\n this._root_extra_style(this.root)\n this.root.attr('style', 'display: inline-block');\n\n $(parent_element).append(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n fig.send_message(\"send_image_mode\", {});\n if (mpl.ratio != 1) {\n fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n }\n fig.send_message(\"refresh\", {});\n }\n\n this.imageObj.onload = function() {\n if (fig.image_mode == 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function() {\n this.ws.close();\n }\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n}\n\nmpl.figure.prototype._init_header = function() {\n var titlebar = $(\n '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n 'ui-helper-clearfix\"/>');\n var titletext = $(\n '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n 'text-align: center; padding: 3px;\"/>');\n titlebar.append(titletext)\n this.root.append(titlebar);\n this.header = titletext[0];\n}\n\n\n\nmpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n\n}\n\n\nmpl.figure.prototype._root_extra_style = function(canvas_div) {\n\n}\n\nmpl.figure.prototype._init_canvas = function() {\n var fig = this;\n\n var canvas_div = $('<div/>');\n\n canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n\n function canvas_keyboard_event(event) {\n return fig.key_event(event, event['data']);\n }\n\n canvas_div.keydown('key_press', canvas_keyboard_event);\n canvas_div.keyup('key_release', canvas_keyboard_event);\n this.canvas_div = canvas_div\n this._canvas_extra_style(canvas_div)\n this.root.append(canvas_div);\n\n var canvas = $('<canvas/>');\n canvas.addClass('mpl-canvas');\n canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n\n this.canvas = canvas[0];\n this.context = canvas[0].getContext(\"2d\");\n\n var backingStore = this.context.backingStorePixelRatio ||\n\tthis.context.webkitBackingStorePixelRatio ||\n\tthis.context.mozBackingStorePixelRatio ||\n\tthis.context.msBackingStorePixelRatio ||\n\tthis.context.oBackingStorePixelRatio ||\n\tthis.context.backingStorePixelRatio || 1;\n\n mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n\n var rubberband = $('<canvas/>');\n rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n\n var pass_mouse_events = true;\n\n canvas_div.resizable({\n start: function(event, ui) {\n pass_mouse_events = false;\n },\n resize: function(event, ui) {\n fig.request_resize(ui.size.width, ui.size.height);\n },\n stop: function(event, ui) {\n pass_mouse_events = true;\n fig.request_resize(ui.size.width, ui.size.height);\n },\n });\n\n function mouse_event_fn(event) {\n if (pass_mouse_events)\n return fig.mouse_event(event, event['data']);\n }\n\n rubberband.mousedown('button_press', mouse_event_fn);\n rubberband.mouseup('button_release', mouse_event_fn);\n // Throttle sequential mouse events to 1 every 20ms.\n rubberband.mousemove('motion_notify', mouse_event_fn);\n\n rubberband.mouseenter('figure_enter', mouse_event_fn);\n rubberband.mouseleave('figure_leave', mouse_event_fn);\n\n canvas_div.on(\"wheel\", function (event) {\n event = event.originalEvent;\n event['data'] = 'scroll'\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n mouse_event_fn(event);\n });\n\n canvas_div.append(canvas);\n canvas_div.append(rubberband);\n\n this.rubberband = rubberband;\n this.rubberband_canvas = rubberband[0];\n this.rubberband_context = rubberband[0].getContext(\"2d\");\n this.rubberband_context.strokeStyle = \"#000000\";\n\n this._resize_canvas = function(width, height) {\n // Keep the size of the canvas, canvas container, and rubber band\n // canvas in synch.\n canvas_div.css('width', width)\n canvas_div.css('height', height)\n\n canvas.attr('width', width * mpl.ratio);\n canvas.attr('height', height * mpl.ratio);\n canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n\n rubberband.attr('width', width);\n rubberband.attr('height', height);\n }\n\n // Set the figure to an initial 600x600px, this will subsequently be updated\n // upon first draw.\n this._resize_canvas(600, 600);\n\n // Disable right mouse context menu.\n $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n return false;\n });\n\n function set_focus () {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n}\n\nmpl.figure.prototype._init_toolbar = function() {\n var fig = this;\n\n var nav_element = $('<div/>')\n nav_element.attr('style', 'width: 100%');\n this.root.append(nav_element);\n\n // Define a callback function for later on.\n function toolbar_event(event) {\n return fig.toolbar_button_onclick(event['data']);\n }\n function toolbar_mouse_event(event) {\n return fig.toolbar_button_onmouseover(event['data']);\n }\n\n for(var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n // put a spacer in here.\n continue;\n }\n var button = $('<button/>');\n button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n 'ui-button-icon-only');\n button.attr('role', 'button');\n button.attr('aria-disabled', 'false');\n button.click(method_name, toolbar_event);\n button.mouseover(tooltip, toolbar_mouse_event);\n\n var icon_img = $('<span/>');\n icon_img.addClass('ui-button-icon-primary ui-icon');\n icon_img.addClass(image);\n icon_img.addClass('ui-corner-all');\n\n var tooltip_span = $('<span/>');\n tooltip_span.addClass('ui-button-text');\n tooltip_span.html(tooltip);\n\n button.append(icon_img);\n button.append(tooltip_span);\n\n nav_element.append(button);\n }\n\n var fmt_picker_span = $('<span/>');\n\n var fmt_picker = $('<select/>');\n fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n fmt_picker_span.append(fmt_picker);\n nav_element.append(fmt_picker_span);\n this.format_dropdown = fmt_picker[0];\n\n for (var ind in mpl.extensions) {\n var fmt = mpl.extensions[ind];\n var option = $(\n '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n fmt_picker.append(option)\n }\n\n // Add hover states to the ui-buttons\n $( \".ui-button\" ).hover(\n function() { $(this).addClass(\"ui-state-hover\");},\n function() { $(this).removeClass(\"ui-state-hover\");}\n );\n\n var status_bar = $('<span class=\"mpl-message\"/>');\n nav_element.append(status_bar);\n this.message = status_bar[0];\n}\n\nmpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n // which will in turn request a refresh of the image.\n this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n}\n\nmpl.figure.prototype.send_message = function(type, properties) {\n properties['type'] = type;\n properties['figure_id'] = this.id;\n this.ws.send(JSON.stringify(properties));\n}\n\nmpl.figure.prototype.send_draw_message = function() {\n if (!this.waiting) {\n this.waiting = true;\n this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n }\n}\n\n\nmpl.figure.prototype.handle_save = function(fig, msg) {\n var format_dropdown = fig.format_dropdown;\n var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n fig.ondownload(fig, format);\n}\n\n\nmpl.figure.prototype.handle_resize = function(fig, msg) {\n var size = msg['size'];\n if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n fig._resize_canvas(size[0], size[1]);\n fig.send_message(\"refresh\", {});\n };\n}\n\nmpl.figure.prototype.handle_rubberband = function(fig, msg) {\n var x0 = msg['x0'] / mpl.ratio;\n var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n var x1 = msg['x1'] / mpl.ratio;\n var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n x0 = Math.floor(x0) + 0.5;\n y0 = Math.floor(y0) + 0.5;\n x1 = Math.floor(x1) + 0.5;\n y1 = Math.floor(y1) + 0.5;\n var min_x = Math.min(x0, x1);\n var min_y = Math.min(y0, y1);\n var width = Math.abs(x1 - x0);\n var height = Math.abs(y1 - y0);\n\n fig.rubberband_context.clearRect(\n 0, 0, fig.canvas.width, fig.canvas.height);\n\n fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n}\n\nmpl.figure.prototype.handle_figure_label = function(fig, msg) {\n // Updates the figure title.\n fig.header.textContent = msg['label'];\n}\n\nmpl.figure.prototype.handle_cursor = function(fig, msg) {\n var cursor = msg['cursor'];\n switch(cursor)\n {\n case 0:\n cursor = 'pointer';\n break;\n case 1:\n cursor = 'default';\n break;\n case 2:\n cursor = 'crosshair';\n break;\n case 3:\n cursor = 'move';\n break;\n }\n fig.rubberband_canvas.style.cursor = cursor;\n}\n\nmpl.figure.prototype.handle_message = function(fig, msg) {\n fig.message.textContent = msg['message'];\n}\n\nmpl.figure.prototype.handle_draw = function(fig, msg) {\n // Request the server to send over a new figure.\n fig.send_draw_message();\n}\n\nmpl.figure.prototype.handle_image_mode = function(fig, msg) {\n fig.image_mode = msg['mode'];\n}\n\nmpl.figure.prototype.updated_canvas_event = function() {\n // Called whenever the canvas gets updated.\n this.send_message(\"ack\", {});\n}\n\n// A function to construct a web socket function for onmessage handling.\n// Called in the figure constructor.\nmpl.figure.prototype._make_on_message_function = function(fig) {\n return function socket_on_message(evt) {\n if (evt.data instanceof Blob) {\n /* FIXME: We get \"Resource interpreted as Image but\n * transferred with MIME type text/plain:\" errors on\n * Chrome. But how to set the MIME type? It doesn't seem\n * to be part of the websocket stream */\n evt.data.type = \"image/png\";\n\n /* Free the memory for the previous frames */\n if (fig.imageObj.src) {\n (window.URL || window.webkitURL).revokeObjectURL(\n fig.imageObj.src);\n }\n\n fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n evt.data);\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n fig.imageObj.src = evt.data;\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n\n var msg = JSON.parse(evt.data);\n var msg_type = msg['type'];\n\n // Call the \"handle_{type}\" callback, which takes\n // the figure and JSON message as its only arguments.\n try {\n var callback = fig[\"handle_\" + msg_type];\n } catch (e) {\n console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n return;\n }\n\n if (callback) {\n try {\n // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n callback(fig, msg);\n } catch (e) {\n console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n }\n }\n };\n}\n\n// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\nmpl.findpos = function(e) {\n //this section is from http://www.quirksmode.org/js/events_properties.html\n var targ;\n if (!e)\n e = window.event;\n if (e.target)\n targ = e.target;\n else if (e.srcElement)\n targ = e.srcElement;\n if (targ.nodeType == 3) // defeat Safari bug\n targ = targ.parentNode;\n\n // jQuery normalizes the pageX and pageY\n // pageX,Y are the mouse positions relative to the document\n // offset() returns the position of the element relative to the document\n var x = e.pageX - $(targ).offset().left;\n var y = e.pageY - $(targ).offset().top;\n\n return {\"x\": x, \"y\": y};\n};\n\n/*\n * return a copy of an object with only non-object keys\n * we need this to avoid circular references\n * http://stackoverflow.com/a/24161582/3208463\n */\nfunction simpleKeys (original) {\n return Object.keys(original).reduce(function (obj, key) {\n if (typeof original[key] !== 'object')\n obj[key] = original[key]\n return obj;\n }, {});\n}\n\nmpl.figure.prototype.mouse_event = function(event, name) {\n var canvas_pos = mpl.findpos(event)\n\n if (name === 'button_press')\n {\n this.canvas.focus();\n this.canvas_div.focus();\n }\n\n var x = canvas_pos.x * mpl.ratio;\n var y = canvas_pos.y * mpl.ratio;\n\n this.send_message(name, {x: x, y: y, button: event.button,\n step: event.step,\n guiEvent: simpleKeys(event)});\n\n /* This prevents the web browser from automatically changing to\n * the text insertion cursor when the button is pressed. We want\n * to control all of the cursor setting manually through the\n * 'cursor' event from matplotlib */\n event.preventDefault();\n return false;\n}\n\nmpl.figure.prototype._key_event_extra = function(event, name) {\n // Handle any extra behaviour associated with a key event\n}\n\nmpl.figure.prototype.key_event = function(event, name) {\n\n // Prevent repeat events\n if (name == 'key_press')\n {\n if (event.which === this._key)\n return;\n else\n this._key = event.which;\n }\n if (name == 'key_release')\n this._key = null;\n\n var value = '';\n if (event.ctrlKey && event.which != 17)\n value += \"ctrl+\";\n if (event.altKey && event.which != 18)\n value += \"alt+\";\n if (event.shiftKey && event.which != 16)\n value += \"shift+\";\n\n value += 'k';\n value += event.which.toString();\n\n this._key_event_extra(event, name);\n\n this.send_message(name, {key: value,\n guiEvent: simpleKeys(event)});\n return false;\n}\n\nmpl.figure.prototype.toolbar_button_onclick = function(name) {\n if (name == 'download') {\n this.handle_save(this, null);\n } else {\n this.send_message(\"toolbar_button\", {name: name});\n }\n};\n\nmpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n this.message.textContent = tooltip;\n};\nmpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n\nmpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n\nmpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n // Create a \"websocket\"-like object which calls the given IPython comm\n // object with the appropriate methods. Currently this is a non binary\n // socket, so there is still some room for performance tuning.\n var ws = {};\n\n ws.close = function() {\n comm.close()\n };\n ws.send = function(m) {\n //console.log('sending', m);\n comm.send(m);\n };\n // Register the callback with on_msg.\n comm.on_msg(function(msg) {\n //console.log('receiving', msg['content']['data'], msg);\n // Pass the mpl event to the overriden (by mpl) onmessage function.\n ws.onmessage(msg['content']['data'])\n });\n return ws;\n}\n\nmpl.mpl_figure_comm = function(comm, msg) {\n // This is the function which gets called when the mpl process\n // starts-up an IPython Comm through the \"matplotlib\" channel.\n\n var id = msg.content.data.id;\n // Get hold of the div created by the display call when the Comm\n // socket was opened in Python.\n var element = $(\"#\" + id);\n var ws_proxy = comm_websocket_adapter(comm)\n\n function ondownload(figure, format) {\n window.open(figure.imageObj.src);\n }\n\n var fig = new mpl.figure(id, ws_proxy,\n ondownload,\n element.get(0));\n\n // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n // web socket which is closed, not our websocket->open comm proxy.\n ws_proxy.onopen();\n\n fig.parent_element = element.get(0);\n fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n if (!fig.cell_info) {\n console.error(\"Failed to find cell for figure\", id, fig);\n return;\n }\n\n var output_index = fig.cell_info[2]\n var cell = fig.cell_info[0];\n\n};\n\nmpl.figure.prototype.handle_close = function(fig, msg) {\n var width = fig.canvas.width/mpl.ratio\n fig.root.unbind('remove')\n\n // Update the output cell to use the data from the current canvas.\n fig.push_to_output();\n var dataURL = fig.canvas.toDataURL();\n // Re-enable the keyboard manager in IPython - without this line, in FF,\n // the notebook keyboard shortcuts fail.\n IPython.keyboard_manager.enable()\n $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n fig.close_ws(fig, msg);\n}\n\nmpl.figure.prototype.close_ws = function(fig, msg){\n fig.send_message('closing', msg);\n // fig.ws.close()\n}\n\nmpl.figure.prototype.push_to_output = function(remove_interactive) {\n // Turn the data on the canvas into data in the output cell.\n var width = this.canvas.width/mpl.ratio\n var dataURL = this.canvas.toDataURL();\n this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n}\n\nmpl.figure.prototype.updated_canvas_event = function() {\n // Tell IPython that the notebook contents must change.\n IPython.notebook.set_dirty(true);\n this.send_message(\"ack\", {});\n var fig = this;\n // Wait a second, then push the new image to the DOM so\n // that it is saved nicely (might be nice to debounce this).\n setTimeout(function () { fig.push_to_output() }, 1000);\n}\n\nmpl.figure.prototype._init_toolbar = function() {\n var fig = this;\n\n var nav_element = $('<div/>')\n nav_element.attr('style', 'width: 100%');\n this.root.append(nav_element);\n\n // Define a callback function for later on.\n function toolbar_event(event) {\n return fig.toolbar_button_onclick(event['data']);\n }\n function toolbar_mouse_event(event) {\n return fig.toolbar_button_onmouseover(event['data']);\n }\n\n for(var toolbar_ind in mpl.toolbar_items){\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) { continue; };\n\n var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n button.click(method_name, toolbar_event);\n button.mouseover(tooltip, toolbar_mouse_event);\n nav_element.append(button);\n }\n\n // Add the status bar.\n var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n nav_element.append(status_bar);\n this.message = status_bar[0];\n\n // Add the close button to the window.\n var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n button.click(function (evt) { fig.handle_close(fig, {}); } );\n button.mouseover('Stop Interaction', toolbar_mouse_event);\n buttongrp.append(button);\n var titlebar = this.root.find($('.ui-dialog-titlebar'));\n titlebar.prepend(buttongrp);\n}\n\nmpl.figure.prototype._root_extra_style = function(el){\n var fig = this\n el.on(\"remove\", function(){\n\tfig.close_ws(fig, {});\n });\n}\n\nmpl.figure.prototype._canvas_extra_style = function(el){\n // this is important to make the div 'focusable\n el.attr('tabindex', 0)\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n }\n else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n\n}\n\nmpl.figure.prototype._key_event_extra = function(event, name) {\n var manager = IPython.notebook.keyboard_manager;\n if (!manager)\n manager = IPython.keyboard_manager;\n\n // Check for shift+enter\n if (event.shiftKey && event.which == 13) {\n this.canvas_div.blur();\n // select the cell after this one\n var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n IPython.notebook.select(index + 1);\n }\n}\n\nmpl.figure.prototype.handle_save = function(fig, msg) {\n fig.ondownload(fig, null);\n}\n\n\nmpl.find_output_cell = function(html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i=0; i<ncells; i++) {\n var cell = cells[i];\n if (cell.cell_type === 'code'){\n for (var j=0; j<cell.output_area.outputs.length; j++) {\n var data = cell.output_area.outputs[j];\n if (data.data) {\n // IPython >= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] == html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n}\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel != null) {\n IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n}\n"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<IPython.core.display.HTML object>",
"text/html": "<img src=\"data:image/png;base64,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\" width=\"640\">"
},
"metadata": {}
},
{
"output_type": "execute_result",
"data": {
"text/plain": "<matplotlib.text.Text at 0x7f6420f471d0>"
},
"metadata": {},
"execution_count": 5
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2017-03-27T14:02:55.776277",
"end_time": "2017-03-27T14:02:55.796981"
},
"collapsed": false,
"trusted": true,
"scrolled": false
},
"cell_type": "code",
"source": "# Question 6\n\ndef hills(x0=1.9, x1=2.4, resolution=1000, plotkwargs={}):\n fig = plt.figure()\n ax = fig.add_subplot(111)\n xinitials = np.linspace(x0, x1, resolution)\n yfinals = []\n for xinit in tqdm_notebook(xinitials):\n Hills_System = de.OdeSystem(n=[2], t=[0, 2e3], stpsz=0.25)\n Hills_System.set_method(method='Symplectic ABAs5o6HA')\n Hills_System.add_constants(adot=[0, 0])\n Hills_System.add_equation(eq=['y_1', 'array([-3*y_0[0][0]/(norm(y_0)**3+1e-12) + 3*y_0[0][0] + 2*y_1[0][1], -3*y_0[0][1]/(norm(y_0)**3+1e-12) - 2*y_1[0][0]])'],\n ic=[[xinit,15], [0, -1.5*xinit]])\n\n entered_sphere = False\n stop_iteration = False\n while not stop_iteration:\n with suppress_stdout() as _:\n Hills_System.integrate(t=Hills_System.dt + Hills_System.t)\n r = np.linalg.norm(Hills_System.final_conditions(p=False)[0][0,0])\n if not entered_sphere and r <= 1:\n entered_sphere = True\n elif entered_sphere and r > 1.5:\n stop_iteration = True\n if r > 100:\n stop_iteration = True\n yfinals.append(Hills_System.final_conditions(p=False)[0][0,0][1])\n ax.plot(xinitials, yfinals, **plotkwargs)\n ax.set_ylim(-2, 9)\n ax.set_xlim(x0, x1)\n ax.set_xlabel(r'$x_0$')\n ax.set_ylabel(r'$y_{final}$')\n ax.set_title(r'$y_{final}$ vs $x_0$')\n return fig, ax, (xinitials, yfinals)",
"execution_count": 33,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2017-03-27T14:05:34.613867",
"end_time": "2017-03-27T14:06:54.873451"
},
"trusted": true,
"collapsed": false,
"scrolled": false
},
"cell_type": "code",
"source": "fig, ax, (xinitials, yfinals) = hills(resolution=1000, plotkwargs={'linewidth':0.75})\nfig, ax, (xinitials, yfinals) = hills(x0=2.0, x1=2.1, resolution=1000, plotkwargs={'linewidth':0.75})\nfig, ax, (xinitials, yfinals) = hills(x0=2.07, x1=2.09, resolution=1000, plotkwargs={'linewidth':0.75})\nfig, ax, (xinitials, yfinals) = hills(x0=2.0725, x1=2.0750, resolution=1000, plotkwargs={'linewidth':0.75})\nfig, ax, (xinitials, yfinals) = hills(x0=2.074, x1=2.0745, resolution=1000, plotkwargs={'linewidth':0.75})",
"execution_count": 37,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": "<IPython.core.display.Javascript object>",
"application/javascript": "/* Put everything inside the global mpl namespace */\nwindow.mpl = {};\n\n\nmpl.get_websocket_type = function() {\n if (typeof(WebSocket) !== 'undefined') {\n return WebSocket;\n } else if (typeof(MozWebSocket) !== 'undefined') {\n return MozWebSocket;\n } else {\n alert('Your browser does not have WebSocket support.' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.');\n };\n}\n\nmpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = (this.ws.binaryType != undefined);\n\n if (!this.supports_binary) {\n var warnings = document.getElementById(\"mpl-warnings\");\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent = (\n \"This browser does not support binary websocket messages. \" +\n \"Performance may be slow.\");\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = $('<div/>');\n this._root_extra_style(this.root)\n this.root.attr('style', 'display: inline-block');\n\n $(parent_element).append(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n fig.send_message(\"send_image_mode\", {});\n if (mpl.ratio != 1) {\n fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n }\n fig.send_message(\"refresh\", {});\n }\n\n this.imageObj.onload = function() {\n if (fig.image_mode == 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function() {\n this.ws.close();\n }\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n}\n\nmpl.figure.prototype._init_header = function() {\n var titlebar = $(\n '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n 'ui-helper-clearfix\"/>');\n var titletext = $(\n '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n 'text-align: center; padding: 3px;\"/>');\n titlebar.append(titletext)\n this.root.append(titlebar);\n this.header = titletext[0];\n}\n\n\n\nmpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n\n}\n\n\nmpl.figure.prototype._root_extra_style = function(canvas_div) {\n\n}\n\nmpl.figure.prototype._init_canvas = function() {\n var fig = this;\n\n var canvas_div = $('<div/>');\n\n canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n\n function canvas_keyboard_event(event) {\n return fig.key_event(event, event['data']);\n }\n\n canvas_div.keydown('key_press', canvas_keyboard_event);\n canvas_div.keyup('key_release', canvas_keyboard_event);\n this.canvas_div = canvas_div\n this._canvas_extra_style(canvas_div)\n this.root.append(canvas_div);\n\n var canvas = $('<canvas/>');\n canvas.addClass('mpl-canvas');\n canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n\n this.canvas = canvas[0];\n this.context = canvas[0].getContext(\"2d\");\n\n var backingStore = this.context.backingStorePixelRatio ||\n\tthis.context.webkitBackingStorePixelRatio ||\n\tthis.context.mozBackingStorePixelRatio ||\n\tthis.context.msBackingStorePixelRatio ||\n\tthis.context.oBackingStorePixelRatio ||\n\tthis.context.backingStorePixelRatio || 1;\n\n mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n\n var rubberband = $('<canvas/>');\n rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n\n var pass_mouse_events = true;\n\n canvas_div.resizable({\n start: function(event, ui) {\n pass_mouse_events = false;\n },\n resize: function(event, ui) {\n fig.request_resize(ui.size.width, ui.size.height);\n },\n stop: function(event, ui) {\n pass_mouse_events = true;\n fig.request_resize(ui.size.width, ui.size.height);\n },\n });\n\n function mouse_event_fn(event) {\n if (pass_mouse_events)\n return fig.mouse_event(event, event['data']);\n }\n\n rubberband.mousedown('button_press', mouse_event_fn);\n rubberband.mouseup('button_release', mouse_event_fn);\n // Throttle sequential mouse events to 1 every 20ms.\n rubberband.mousemove('motion_notify', mouse_event_fn);\n\n rubberband.mouseenter('figure_enter', mouse_event_fn);\n rubberband.mouseleave('figure_leave', mouse_event_fn);\n\n canvas_div.on(\"wheel\", function (event) {\n event = event.originalEvent;\n event['data'] = 'scroll'\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n mouse_event_fn(event);\n });\n\n canvas_div.append(canvas);\n canvas_div.append(rubberband);\n\n this.rubberband = rubberband;\n this.rubberband_canvas = rubberband[0];\n this.rubberband_context = rubberband[0].getContext(\"2d\");\n this.rubberband_context.strokeStyle = \"#000000\";\n\n this._resize_canvas = function(width, height) {\n // Keep the size of the canvas, canvas container, and rubber band\n // canvas in synch.\n canvas_div.css('width', width)\n canvas_div.css('height', height)\n\n canvas.attr('width', width * mpl.ratio);\n canvas.attr('height', height * mpl.ratio);\n canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n\n rubberband.attr('width', width);\n rubberband.attr('height', height);\n }\n\n // Set the figure to an initial 600x600px, this will subsequently be updated\n // upon first draw.\n this._resize_canvas(600, 600);\n\n // Disable right mouse context menu.\n $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n return false;\n });\n\n function set_focus () {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n}\n\nmpl.figure.prototype._init_toolbar = function() {\n var fig = this;\n\n var nav_element = $('<div/>')\n nav_element.attr('style', 'width: 100%');\n this.root.append(nav_element);\n\n // Define a callback function for later on.\n function toolbar_event(event) {\n return fig.toolbar_button_onclick(event['data']);\n }\n function toolbar_mouse_event(event) {\n return fig.toolbar_button_onmouseover(event['data']);\n }\n\n for(var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n // put a spacer in here.\n continue;\n }\n var button = $('<button/>');\n button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n 'ui-button-icon-only');\n button.attr('role', 'button');\n button.attr('aria-disabled', 'false');\n button.click(method_name, toolbar_event);\n button.mouseover(tooltip, toolbar_mouse_event);\n\n var icon_img = $('<span/>');\n icon_img.addClass('ui-button-icon-primary ui-icon');\n icon_img.addClass(image);\n icon_img.addClass('ui-corner-all');\n\n var tooltip_span = $('<span/>');\n tooltip_span.addClass('ui-button-text');\n tooltip_span.html(tooltip);\n\n button.append(icon_img);\n button.append(tooltip_span);\n\n nav_element.append(button);\n }\n\n var fmt_picker_span = $('<span/>');\n\n var fmt_picker = $('<select/>');\n fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n fmt_picker_span.append(fmt_picker);\n nav_element.append(fmt_picker_span);\n this.format_dropdown = fmt_picker[0];\n\n for (var ind in mpl.extensions) {\n var fmt = mpl.extensions[ind];\n var option = $(\n '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n fmt_picker.append(option)\n }\n\n // Add hover states to the ui-buttons\n $( \".ui-button\" ).hover(\n function() { $(this).addClass(\"ui-state-hover\");},\n function() { $(this).removeClass(\"ui-state-hover\");}\n );\n\n var status_bar = $('<span class=\"mpl-message\"/>');\n nav_element.append(status_bar);\n this.message = status_bar[0];\n}\n\nmpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n // which will in turn request a refresh of the image.\n this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n}\n\nmpl.figure.prototype.send_message = function(type, properties) {\n properties['type'] = type;\n properties['figure_id'] = this.id;\n this.ws.send(JSON.stringify(properties));\n}\n\nmpl.figure.prototype.send_draw_message = function() {\n if (!this.waiting) {\n this.waiting = true;\n this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n }\n}\n\n\nmpl.figure.prototype.handle_save = function(fig, msg) {\n var format_dropdown = fig.format_dropdown;\n var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n fig.ondownload(fig, format);\n}\n\n\nmpl.figure.prototype.handle_resize = function(fig, msg) {\n var size = msg['size'];\n if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n fig._resize_canvas(size[0], size[1]);\n fig.send_message(\"refresh\", {});\n };\n}\n\nmpl.figure.prototype.handle_rubberband = function(fig, msg) {\n var x0 = msg['x0'] / mpl.ratio;\n var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n var x1 = msg['x1'] / mpl.ratio;\n var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n x0 = Math.floor(x0) + 0.5;\n y0 = Math.floor(y0) + 0.5;\n x1 = Math.floor(x1) + 0.5;\n y1 = Math.floor(y1) + 0.5;\n var min_x = Math.min(x0, x1);\n var min_y = Math.min(y0, y1);\n var width = Math.abs(x1 - x0);\n var height = Math.abs(y1 - y0);\n\n fig.rubberband_context.clearRect(\n 0, 0, fig.canvas.width, fig.canvas.height);\n\n fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n}\n\nmpl.figure.prototype.handle_figure_label = function(fig, msg) {\n // Updates the figure title.\n fig.header.textContent = msg['label'];\n}\n\nmpl.figure.prototype.handle_cursor = function(fig, msg) {\n var cursor = msg['cursor'];\n switch(cursor)\n {\n case 0:\n cursor = 'pointer';\n break;\n case 1:\n cursor = 'default';\n break;\n case 2:\n cursor = 'crosshair';\n break;\n case 3:\n cursor = 'move';\n break;\n }\n fig.rubberband_canvas.style.cursor = cursor;\n}\n\nmpl.figure.prototype.handle_message = function(fig, msg) {\n fig.message.textContent = msg['message'];\n}\n\nmpl.figure.prototype.handle_draw = function(fig, msg) {\n // Request the server to send over a new figure.\n fig.send_draw_message();\n}\n\nmpl.figure.prototype.handle_image_mode = function(fig, msg) {\n fig.image_mode = msg['mode'];\n}\n\nmpl.figure.prototype.updated_canvas_event = function() {\n // Called whenever the canvas gets updated.\n this.send_message(\"ack\", {});\n}\n\n// A function to construct a web socket function for onmessage handling.\n// Called in the figure constructor.\nmpl.figure.prototype._make_on_message_function = function(fig) {\n return function socket_on_message(evt) {\n if (evt.data instanceof Blob) {\n /* FIXME: We get \"Resource interpreted as Image but\n * transferred with MIME type text/plain:\" errors on\n * Chrome. But how to set the MIME type? It doesn't seem\n * to be part of the websocket stream */\n evt.data.type = \"image/png\";\n\n /* Free the memory for the previous frames */\n if (fig.imageObj.src) {\n (window.URL || window.webkitURL).revokeObjectURL(\n fig.imageObj.src);\n }\n\n fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n evt.data);\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n fig.imageObj.src = evt.data;\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n\n var msg = JSON.parse(evt.data);\n var msg_type = msg['type'];\n\n // Call the \"handle_{type}\" callback, which takes\n // the figure and JSON message as its only arguments.\n try {\n var callback = fig[\"handle_\" + msg_type];\n } catch (e) {\n console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n return;\n }\n\n if (callback) {\n try {\n // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n callback(fig, msg);\n } catch (e) {\n console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n }\n }\n };\n}\n\n// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\nmpl.findpos = function(e) {\n //this section is from http://www.quirksmode.org/js/events_properties.html\n var targ;\n if (!e)\n e = window.event;\n if (e.target)\n targ = e.target;\n else if (e.srcElement)\n targ = e.srcElement;\n if (targ.nodeType == 3) // defeat Safari bug\n targ = targ.parentNode;\n\n // jQuery normalizes the pageX and pageY\n // pageX,Y are the mouse positions relative to the document\n // offset() returns the position of the element relative to the document\n var x = e.pageX - $(targ).offset().left;\n var y = e.pageY - $(targ).offset().top;\n\n return {\"x\": x, \"y\": y};\n};\n\n/*\n * return a copy of an object with only non-object keys\n * we need this to avoid circular references\n * http://stackoverflow.com/a/24161582/3208463\n */\nfunction simpleKeys (original) {\n return Object.keys(original).reduce(function (obj, key) {\n if (typeof original[key] !== 'object')\n obj[key] = original[key]\n return obj;\n }, {});\n}\n\nmpl.figure.prototype.mouse_event = function(event, name) {\n var canvas_pos = mpl.findpos(event)\n\n if (name === 'button_press')\n {\n this.canvas.focus();\n this.canvas_div.focus();\n }\n\n var x = canvas_pos.x * mpl.ratio;\n var y = canvas_pos.y * mpl.ratio;\n\n this.send_message(name, {x: x, y: y, button: event.button,\n step: event.step,\n guiEvent: simpleKeys(event)});\n\n /* This prevents the web browser from automatically changing to\n * the text insertion cursor when the button is pressed. We want\n * to control all of the cursor setting manually through the\n * 'cursor' event from matplotlib */\n event.preventDefault();\n return false;\n}\n\nmpl.figure.prototype._key_event_extra = function(event, name) {\n // Handle any extra behaviour associated with a key event\n}\n\nmpl.figure.prototype.key_event = function(event, name) {\n\n // Prevent repeat events\n if (name == 'key_press')\n {\n if (event.which === this._key)\n return;\n else\n this._key = event.which;\n }\n if (name == 'key_release')\n this._key = null;\n\n var value = '';\n if (event.ctrlKey && event.which != 17)\n value += \"ctrl+\";\n if (event.altKey && event.which != 18)\n value += \"alt+\";\n if (event.shiftKey && event.which != 16)\n value += \"shift+\";\n\n value += 'k';\n value += event.which.toString();\n\n this._key_event_extra(event, name);\n\n this.send_message(name, {key: value,\n guiEvent: simpleKeys(event)});\n return false;\n}\n\nmpl.figure.prototype.toolbar_button_onclick = function(name) {\n if (name == 'download') {\n this.handle_save(this, null);\n } else {\n this.send_message(\"toolbar_button\", {name: name});\n }\n};\n\nmpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n this.message.textContent = tooltip;\n};\nmpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n\nmpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n\nmpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n // Create a \"websocket\"-like object which calls the given IPython comm\n // object with the appropriate methods. Currently this is a non binary\n // socket, so there is still some room for performance tuning.\n var ws = {};\n\n ws.close = function() {\n comm.close()\n };\n ws.send = function(m) {\n //console.log('sending', m);\n comm.send(m);\n };\n // Register the callback with on_msg.\n comm.on_msg(function(msg) {\n //console.log('receiving', msg['content']['data'], msg);\n // Pass the mpl event to the overriden (by mpl) onmessage function.\n ws.onmessage(msg['content']['data'])\n });\n return ws;\n}\n\nmpl.mpl_figure_comm = function(comm, msg) {\n // This is the function which gets called when the mpl process\n // starts-up an IPython Comm through the \"matplotlib\" channel.\n\n var id = msg.content.data.id;\n // Get hold of the div created by the display call when the Comm\n // socket was opened in Python.\n var element = $(\"#\" + id);\n var ws_proxy = comm_websocket_adapter(comm)\n\n function ondownload(figure, format) {\n window.open(figure.imageObj.src);\n }\n\n var fig = new mpl.figure(id, ws_proxy,\n ondownload,\n element.get(0));\n\n // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n // web socket which is closed, not our websocket->open comm proxy.\n ws_proxy.onopen();\n\n fig.parent_element = element.get(0);\n fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n if (!fig.cell_info) {\n console.error(\"Failed to find cell for figure\", id, fig);\n return;\n }\n\n var output_index = fig.cell_info[2]\n var cell = fig.cell_info[0];\n\n};\n\nmpl.figure.prototype.handle_close = function(fig, msg) {\n var width = fig.canvas.width/mpl.ratio\n fig.root.unbind('remove')\n\n // Update the output cell to use the data from the current canvas.\n fig.push_to_output();\n var dataURL = fig.canvas.toDataURL();\n // Re-enable the keyboard manager in IPython - without this line, in FF,\n // the notebook keyboard shortcuts fail.\n IPython.keyboard_manager.enable()\n $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n fig.close_ws(fig, msg);\n}\n\nmpl.figure.prototype.close_ws = function(fig, msg){\n fig.send_message('closing', msg);\n // fig.ws.close()\n}\n\nmpl.figure.prototype.push_to_output = function(remove_interactive) {\n // Turn the data on the canvas into data in the output cell.\n var width = this.canvas.width/mpl.ratio\n var dataURL = this.canvas.toDataURL();\n this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n}\n\nmpl.figure.prototype.updated_canvas_event = function() {\n // Tell IPython that the notebook contents must change.\n IPython.notebook.set_dirty(true);\n this.send_message(\"ack\", {});\n var fig = this;\n // Wait a second, then push the new image to the DOM so\n // that it is saved nicely (might be nice to debounce this).\n setTimeout(function () { fig.push_to_output() }, 1000);\n}\n\nmpl.figure.prototype._init_toolbar = function() {\n var fig = this;\n\n var nav_element = $('<div/>')\n nav_element.attr('style', 'width: 100%');\n this.root.append(nav_element);\n\n // Define a callback function for later on.\n function toolbar_event(event) {\n return fig.toolbar_button_onclick(event['data']);\n }\n function toolbar_mouse_event(event) {\n return fig.toolbar_button_onmouseover(event['data']);\n }\n\n for(var toolbar_ind in mpl.toolbar_items){\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) { continue; };\n\n var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n button.click(method_name, toolbar_event);\n button.mouseover(tooltip, toolbar_mouse_event);\n nav_element.append(button);\n }\n\n // Add the status bar.\n var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n nav_element.append(status_bar);\n this.message = status_bar[0];\n\n // Add the close button to the window.\n var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n button.click(function (evt) { fig.handle_close(fig, {}); } );\n button.mouseover('Stop Interaction', toolbar_mouse_event);\n buttongrp.append(button);\n var titlebar = this.root.find($('.ui-dialog-titlebar'));\n titlebar.prepend(buttongrp);\n}\n\nmpl.figure.prototype._root_extra_style = function(el){\n var fig = this\n el.on(\"remove\", function(){\n\tfig.close_ws(fig, {});\n });\n}\n\nmpl.figure.prototype._canvas_extra_style = function(el){\n // this is important to make the div 'focusable\n el.attr('tabindex', 0)\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n }\n else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n\n}\n\nmpl.figure.prototype._key_event_extra = function(event, name) {\n var manager = IPython.notebook.keyboard_manager;\n if (!manager)\n manager = IPython.keyboard_manager;\n\n // Check for shift+enter\n if (event.shiftKey && event.which == 13) {\n this.canvas_div.blur();\n // select the cell after this one\n var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n IPython.notebook.select(index + 1);\n }\n}\n\nmpl.figure.prototype.handle_save = function(fig, msg) {\n fig.ondownload(fig, null);\n}\n\n\nmpl.find_output_cell = function(html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i=0; i<ncells; i++) {\n var cell = cells[i];\n if (cell.cell_type === 'code'){\n for (var j=0; j<cell.output_area.outputs.length; j++) {\n var data = cell.output_area.outputs[j];\n if (data.data) {\n // IPython >= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] == html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n}\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel != null) {\n IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n}\n"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<IPython.core.display.HTML object>",
"text/html": "<img src=\"data:image/png;base64,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\" width=\"640\">"
},
"metadata": {}
},
{
"output_type": "stream",
"text": "\n",
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"text/plain": "<IPython.core.display.Javascript object>",
"application/javascript": "/* Put everything inside the global mpl namespace */\nwindow.mpl = {};\n\n\nmpl.get_websocket_type = function() {\n if (typeof(WebSocket) !== 'undefined') {\n return WebSocket;\n } else if (typeof(MozWebSocket) !== 'undefined') {\n return MozWebSocket;\n } else {\n alert('Your browser does not have WebSocket support.' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.');\n };\n}\n\nmpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = (this.ws.binaryType != undefined);\n\n if (!this.supports_binary) {\n var warnings = document.getElementById(\"mpl-warnings\");\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent = (\n \"This browser does not support binary websocket messages. \" +\n \"Performance may be slow.\");\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = $('<div/>');\n this._root_extra_style(this.root)\n this.root.attr('style', 'display: inline-block');\n\n $(parent_element).append(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n fig.send_message(\"send_image_mode\", {});\n if (mpl.ratio != 1) {\n fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n }\n fig.send_message(\"refresh\", {});\n }\n\n this.imageObj.onload = function() {\n if (fig.image_mode == 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function() {\n this.ws.close();\n }\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n}\n\nmpl.figure.prototype._init_header = function() {\n var titlebar = $(\n '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n 'ui-helper-clearfix\"/>');\n var titletext = $(\n '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n 'text-align: center; padding: 3px;\"/>');\n titlebar.append(titletext)\n this.root.append(titlebar);\n this.header = titletext[0];\n}\n\n\n\nmpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n\n}\n\n\nmpl.figure.prototype._root_extra_style = function(canvas_div) {\n\n}\n\nmpl.figure.prototype._init_canvas = function() {\n var fig = this;\n\n var canvas_div = $('<div/>');\n\n canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n\n function canvas_keyboard_event(event) {\n return fig.key_event(event, event['data']);\n }\n\n canvas_div.keydown('key_press', canvas_keyboard_event);\n canvas_div.keyup('key_release', canvas_keyboard_event);\n this.canvas_div = canvas_div\n this._canvas_extra_style(canvas_div)\n this.root.append(canvas_div);\n\n var canvas = $('<canvas/>');\n canvas.addClass('mpl-canvas');\n canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n\n this.canvas = canvas[0];\n this.context = canvas[0].getContext(\"2d\");\n\n var backingStore = this.context.backingStorePixelRatio ||\n\tthis.context.webkitBackingStorePixelRatio ||\n\tthis.context.mozBackingStorePixelRatio ||\n\tthis.context.msBackingStorePixelRatio ||\n\tthis.context.oBackingStorePixelRatio ||\n\tthis.context.backingStorePixelRatio || 1;\n\n mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n\n var rubberband = $('<canvas/>');\n rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n\n var pass_mouse_events = true;\n\n canvas_div.resizable({\n start: function(event, ui) {\n pass_mouse_events = false;\n },\n resize: function(event, ui) {\n fig.request_resize(ui.size.width, ui.size.height);\n },\n stop: function(event, ui) {\n pass_mouse_events = true;\n fig.request_resize(ui.size.width, ui.size.height);\n },\n });\n\n function mouse_event_fn(event) {\n if (pass_mouse_events)\n return fig.mouse_event(event, event['data']);\n }\n\n rubberband.mousedown('button_press', mouse_event_fn);\n rubberband.mouseup('button_release', mouse_event_fn);\n // Throttle sequential mouse events to 1 every 20ms.\n rubberband.mousemove('motion_notify', mouse_event_fn);\n\n rubberband.mouseenter('figure_enter', mouse_event_fn);\n rubberband.mouseleave('figure_leave', mouse_event_fn);\n\n canvas_div.on(\"wheel\", function (event) {\n event = event.originalEvent;\n event['data'] = 'scroll'\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n mouse_event_fn(event);\n });\n\n canvas_div.append(canvas);\n canvas_div.append(rubberband);\n\n this.rubberband = rubberband;\n this.rubberband_canvas = rubberband[0];\n this.rubberband_context = rubberband[0].getContext(\"2d\");\n this.rubberband_context.strokeStyle = \"#000000\";\n\n this._resize_canvas = function(width, height) {\n // Keep the size of the canvas, canvas container, and rubber band\n // canvas in synch.\n canvas_div.css('width', width)\n canvas_div.css('height', height)\n\n canvas.attr('width', width * mpl.ratio);\n canvas.attr('height', height * mpl.ratio);\n canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n\n rubberband.attr('width', width);\n rubberband.attr('height', height);\n }\n\n // Set the figure to an initial 600x600px, this will subsequently be updated\n // upon first draw.\n this._resize_canvas(600, 600);\n\n // Disable right mouse context menu.\n $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n return false;\n });\n\n function set_focus () {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n}\n\nmpl.figure.prototype._init_toolbar = function() {\n var fig = this;\n\n var nav_element = $('<div/>')\n nav_element.attr('style', 'width: 100%');\n this.root.append(nav_element);\n\n // Define a callback function for later on.\n function toolbar_event(event) {\n return fig.toolbar_button_onclick(event['data']);\n }\n function toolbar_mouse_event(event) {\n return fig.toolbar_button_onmouseover(event['data']);\n }\n\n for(var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n // put a spacer in here.\n continue;\n }\n var button = $('<button/>');\n button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n 'ui-button-icon-only');\n button.attr('role', 'button');\n button.attr('aria-disabled', 'false');\n button.click(method_name, toolbar_event);\n button.mouseover(tooltip, toolbar_mouse_event);\n\n var icon_img = $('<span/>');\n icon_img.addClass('ui-button-icon-primary ui-icon');\n icon_img.addClass(image);\n icon_img.addClass('ui-corner-all');\n\n var tooltip_span = $('<span/>');\n tooltip_span.addClass('ui-button-text');\n tooltip_span.html(tooltip);\n\n button.append(icon_img);\n button.append(tooltip_span);\n\n nav_element.append(button);\n }\n\n var fmt_picker_span = $('<span/>');\n\n var fmt_picker = $('<select/>');\n fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n fmt_picker_span.append(fmt_picker);\n nav_element.append(fmt_picker_span);\n this.format_dropdown = fmt_picker[0];\n\n for (var ind in mpl.extensions) {\n var fmt = mpl.extensions[ind];\n var option = $(\n '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n fmt_picker.append(option)\n }\n\n // Add hover states to the ui-buttons\n $( \".ui-button\" ).hover(\n function() { $(this).addClass(\"ui-state-hover\");},\n function() { $(this).removeClass(\"ui-state-hover\");}\n );\n\n var status_bar = $('<span class=\"mpl-message\"/>');\n nav_element.append(status_bar);\n this.message = status_bar[0];\n}\n\nmpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n // which will in turn request a refresh of the image.\n this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n}\n\nmpl.figure.prototype.send_message = function(type, properties) {\n properties['type'] = type;\n properties['figure_id'] = this.id;\n this.ws.send(JSON.stringify(properties));\n}\n\nmpl.figure.prototype.send_draw_message = function() {\n if (!this.waiting) {\n this.waiting = true;\n this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n }\n}\n\n\nmpl.figure.prototype.handle_save = function(fig, msg) {\n var format_dropdown = fig.format_dropdown;\n var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n fig.ondownload(fig, format);\n}\n\n\nmpl.figure.prototype.handle_resize = function(fig, msg) {\n var size = msg['size'];\n if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n fig._resize_canvas(size[0], size[1]);\n fig.send_message(\"refresh\", {});\n };\n}\n\nmpl.figure.prototype.handle_rubberband = function(fig, msg) {\n var x0 = msg['x0'] / mpl.ratio;\n var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n var x1 = msg['x1'] / mpl.ratio;\n var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n x0 = Math.floor(x0) + 0.5;\n y0 = Math.floor(y0) + 0.5;\n x1 = Math.floor(x1) + 0.5;\n y1 = Math.floor(y1) + 0.5;\n var min_x = Math.min(x0, x1);\n var min_y = Math.min(y0, y1);\n var width = Math.abs(x1 - x0);\n var height = Math.abs(y1 - y0);\n\n fig.rubberband_context.clearRect(\n 0, 0, fig.canvas.width, fig.canvas.height);\n\n fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n}\n\nmpl.figure.prototype.handle_figure_label = function(fig, msg) {\n // Updates the figure title.\n fig.header.textContent = msg['label'];\n}\n\nmpl.figure.prototype.handle_cursor = function(fig, msg) {\n var cursor = msg['cursor'];\n switch(cursor)\n {\n case 0:\n cursor = 'pointer';\n break;\n case 1:\n cursor = 'default';\n break;\n case 2:\n cursor = 'crosshair';\n break;\n case 3:\n cursor = 'move';\n break;\n }\n fig.rubberband_canvas.style.cursor = cursor;\n}\n\nmpl.figure.prototype.handle_message = function(fig, msg) {\n fig.message.textContent = msg['message'];\n}\n\nmpl.figure.prototype.handle_draw = function(fig, msg) {\n // Request the server to send over a new figure.\n fig.send_draw_message();\n}\n\nmpl.figure.prototype.handle_image_mode = function(fig, msg) {\n fig.image_mode = msg['mode'];\n}\n\nmpl.figure.prototype.updated_canvas_event = function() {\n // Called whenever the canvas gets updated.\n this.send_message(\"ack\", {});\n}\n\n// A function to construct a web socket function for onmessage handling.\n// Called in the figure constructor.\nmpl.figure.prototype._make_on_message_function = function(fig) {\n return function socket_on_message(evt) {\n if (evt.data instanceof Blob) {\n /* FIXME: We get \"Resource interpreted as Image but\n * transferred with MIME type text/plain:\" errors on\n * Chrome. But how to set the MIME type? It doesn't seem\n * to be part of the websocket stream */\n evt.data.type = \"image/png\";\n\n /* Free the memory for the previous frames */\n if (fig.imageObj.src) {\n (window.URL || window.webkitURL).revokeObjectURL(\n fig.imageObj.src);\n }\n\n fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n evt.data);\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n fig.imageObj.src = evt.data;\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n\n var msg = JSON.parse(evt.data);\n var msg_type = msg['type'];\n\n // Call the \"handle_{type}\" callback, which takes\n // the figure and JSON message as its only arguments.\n try {\n var callback = fig[\"handle_\" + msg_type];\n } catch (e) {\n console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n return;\n }\n\n if (callback) {\n try {\n // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n callback(fig, msg);\n } catch (e) {\n console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n }\n }\n };\n}\n\n// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\nmpl.findpos = function(e) {\n //this section is from http://www.quirksmode.org/js/events_properties.html\n var targ;\n if (!e)\n e = window.event;\n if (e.target)\n targ = e.target;\n else if (e.srcElement)\n targ = e.srcElement;\n if (targ.nodeType == 3) // defeat Safari bug\n targ = targ.parentNode;\n\n // jQuery normalizes the pageX and pageY\n // pageX,Y are the mouse positions relative to the document\n // offset() returns the position of the element relative to the document\n var x = e.pageX - $(targ).offset().left;\n var y = e.pageY - $(targ).offset().top;\n\n return {\"x\": x, \"y\": y};\n};\n\n/*\n * return a copy of an object with only non-object keys\n * we need this to avoid circular references\n * http://stackoverflow.com/a/24161582/3208463\n */\nfunction simpleKeys (original) {\n return Object.keys(original).reduce(function (obj, key) {\n if (typeof original[key] !== 'object')\n obj[key] = original[key]\n return obj;\n }, {});\n}\n\nmpl.figure.prototype.mouse_event = function(event, name) {\n var canvas_pos = mpl.findpos(event)\n\n if (name === 'button_press')\n {\n this.canvas.focus();\n this.canvas_div.focus();\n }\n\n var x = canvas_pos.x * mpl.ratio;\n var y = canvas_pos.y * mpl.ratio;\n\n this.send_message(name, {x: x, y: y, button: event.button,\n step: event.step,\n guiEvent: simpleKeys(event)});\n\n /* This prevents the web browser from automatically changing to\n * the text insertion cursor when the button is pressed. We want\n * to control all of the cursor setting manually through the\n * 'cursor' event from matplotlib */\n event.preventDefault();\n return false;\n}\n\nmpl.figure.prototype._key_event_extra = function(event, name) {\n // Handle any extra behaviour associated with a key event\n}\n\nmpl.figure.prototype.key_event = function(event, name) {\n\n // Prevent repeat events\n if (name == 'key_press')\n {\n if (event.which === this._key)\n return;\n else\n this._key = event.which;\n }\n if (name == 'key_release')\n this._key = null;\n\n var value = '';\n if (event.ctrlKey && event.which != 17)\n value += \"ctrl+\";\n if (event.altKey && event.which != 18)\n value += \"alt+\";\n if (event.shiftKey && event.which != 16)\n value += \"shift+\";\n\n value += 'k';\n value += event.which.toString();\n\n this._key_event_extra(event, name);\n\n this.send_message(name, {key: value,\n guiEvent: simpleKeys(event)});\n return false;\n}\n\nmpl.figure.prototype.toolbar_button_onclick = function(name) {\n if (name == 'download') {\n this.handle_save(this, null);\n } else {\n this.send_message(\"toolbar_button\", {name: name});\n }\n};\n\nmpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n this.message.textContent = tooltip;\n};\nmpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n\nmpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n\nmpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n // Create a \"websocket\"-like object which calls the given IPython comm\n // object with the appropriate methods. Currently this is a non binary\n // socket, so there is still some room for performance tuning.\n var ws = {};\n\n ws.close = function() {\n comm.close()\n };\n ws.send = function(m) {\n //console.log('sending', m);\n comm.send(m);\n };\n // Register the callback with on_msg.\n comm.on_msg(function(msg) {\n //console.log('receiving', msg['content']['data'], msg);\n // Pass the mpl event to the overriden (by mpl) onmessage function.\n ws.onmessage(msg['content']['data'])\n });\n return ws;\n}\n\nmpl.mpl_figure_comm = function(comm, msg) {\n // This is the function which gets called when the mpl process\n // starts-up an IPython Comm through the \"matplotlib\" channel.\n\n var id = msg.content.data.id;\n // Get hold of the div created by the display call when the Comm\n // socket was opened in Python.\n var element = $(\"#\" + id);\n var ws_proxy = comm_websocket_adapter(comm)\n\n function ondownload(figure, format) {\n window.open(figure.imageObj.src);\n }\n\n var fig = new mpl.figure(id, ws_proxy,\n ondownload,\n element.get(0));\n\n // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n // web socket which is closed, not our websocket->open comm proxy.\n ws_proxy.onopen();\n\n fig.parent_element = element.get(0);\n fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n if (!fig.cell_info) {\n console.error(\"Failed to find cell for figure\", id, fig);\n return;\n }\n\n var output_index = fig.cell_info[2]\n var cell = fig.cell_info[0];\n\n};\n\nmpl.figure.prototype.handle_close = function(fig, msg) {\n var width = fig.canvas.width/mpl.ratio\n fig.root.unbind('remove')\n\n // Update the output cell to use the data from the current canvas.\n fig.push_to_output();\n var dataURL = fig.canvas.toDataURL();\n // Re-enable the keyboard manager in IPython - without this line, in FF,\n // the notebook keyboard shortcuts fail.\n IPython.keyboard_manager.enable()\n $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n fig.close_ws(fig, msg);\n}\n\nmpl.figure.prototype.close_ws = function(fig, msg){\n fig.send_message('closing', msg);\n // fig.ws.close()\n}\n\nmpl.figure.prototype.push_to_output = function(remove_interactive) {\n // Turn the data on the canvas into data in the output cell.\n var width = this.canvas.width/mpl.ratio\n var dataURL = this.canvas.toDataURL();\n this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n}\n\nmpl.figure.prototype.updated_canvas_event = function() {\n // Tell IPython that the notebook contents must change.\n IPython.notebook.set_dirty(true);\n this.send_message(\"ack\", {});\n var fig = this;\n // Wait a second, then push the new image to the DOM so\n // that it is saved nicely (might be nice to debounce this).\n setTimeout(function () { fig.push_to_output() }, 1000);\n}\n\nmpl.figure.prototype._init_toolbar = function() {\n var fig = this;\n\n var nav_element = $('<div/>')\n nav_element.attr('style', 'width: 100%');\n this.root.append(nav_element);\n\n // Define a callback function for later on.\n function toolbar_event(event) {\n return fig.toolbar_button_onclick(event['data']);\n }\n function toolbar_mouse_event(event) {\n return fig.toolbar_button_onmouseover(event['data']);\n }\n\n for(var toolbar_ind in mpl.toolbar_items){\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) { continue; };\n\n var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n button.click(method_name, toolbar_event);\n button.mouseover(tooltip, toolbar_mouse_event);\n nav_element.append(button);\n }\n\n // Add the status bar.\n var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n nav_element.append(status_bar);\n this.message = status_bar[0];\n\n // Add the close button to the window.\n var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n button.click(function (evt) { fig.handle_close(fig, {}); } );\n button.mouseover('Stop Interaction', toolbar_mouse_event);\n buttongrp.append(button);\n var titlebar = this.root.find($('.ui-dialog-titlebar'));\n titlebar.prepend(buttongrp);\n}\n\nmpl.figure.prototype._root_extra_style = function(el){\n var fig = this\n el.on(\"remove\", function(){\n\tfig.close_ws(fig, {});\n });\n}\n\nmpl.figure.prototype._canvas_extra_style = function(el){\n // this is important to make the div 'focusable\n el.attr('tabindex', 0)\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n }\n else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n\n}\n\nmpl.figure.prototype._key_event_extra = function(event, name) {\n var manager = IPython.notebook.keyboard_manager;\n if (!manager)\n manager = IPython.keyboard_manager;\n\n // Check for shift+enter\n if (event.shiftKey && event.which == 13) {\n this.canvas_div.blur();\n // select the cell after this one\n var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n IPython.notebook.select(index + 1);\n }\n}\n\nmpl.figure.prototype.handle_save = function(fig, msg) {\n fig.ondownload(fig, null);\n}\n\n\nmpl.find_output_cell = function(html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i=0; i<ncells; i++) {\n var cell = cells[i];\n if (cell.cell_type === 'code'){\n for (var j=0; j<cell.output_area.outputs.length; j++) {\n var data = cell.output_area.outputs[j];\n if (data.data) {\n // IPython >= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] == html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n}\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel != null) {\n IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n}\n"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<IPython.core.display.HTML object>",
"text/html": "<img src=\"data:image/png;base64,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\" width=\"640\">"
},
"metadata": {}
},
{
"output_type": "stream",
"text": "\n",
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"text/plain": "<IPython.core.display.Javascript object>",
"application/javascript": "/* Put everything inside the global mpl namespace */\nwindow.mpl = {};\n\n\nmpl.get_websocket_type = function() {\n if (typeof(WebSocket) !== 'undefined') {\n return WebSocket;\n } else if (typeof(MozWebSocket) !== 'undefined') {\n return MozWebSocket;\n } else {\n alert('Your browser does not have WebSocket support.' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.');\n };\n}\n\nmpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = (this.ws.binaryType != undefined);\n\n if (!this.supports_binary) {\n var warnings = document.getElementById(\"mpl-warnings\");\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent = (\n \"This browser does not support binary websocket messages. \" +\n \"Performance may be slow.\");\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = $('<div/>');\n this._root_extra_style(this.root)\n this.root.attr('style', 'display: inline-block');\n\n $(parent_element).append(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n fig.send_message(\"send_image_mode\", {});\n if (mpl.ratio != 1) {\n fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n }\n fig.send_message(\"refresh\", {});\n }\n\n this.imageObj.onload = function() {\n if (fig.image_mode == 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function() {\n this.ws.close();\n }\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n}\n\nmpl.figure.prototype._init_header = function() {\n var titlebar = $(\n '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n 'ui-helper-clearfix\"/>');\n var titletext = $(\n '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n 'text-align: center; padding: 3px;\"/>');\n titlebar.append(titletext)\n this.root.append(titlebar);\n this.header = titletext[0];\n}\n\n\n\nmpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n\n}\n\n\nmpl.figure.prototype._root_extra_style = function(canvas_div) {\n\n}\n\nmpl.figure.prototype._init_canvas = function() {\n var fig = this;\n\n var canvas_div = $('<div/>');\n\n canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n\n function canvas_keyboard_event(event) {\n return fig.key_event(event, event['data']);\n }\n\n canvas_div.keydown('key_press', canvas_keyboard_event);\n canvas_div.keyup('key_release', canvas_keyboard_event);\n this.canvas_div = canvas_div\n this._canvas_extra_style(canvas_div)\n this.root.append(canvas_div);\n\n var canvas = $('<canvas/>');\n canvas.addClass('mpl-canvas');\n canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n\n this.canvas = canvas[0];\n this.context = canvas[0].getContext(\"2d\");\n\n var backingStore = this.context.backingStorePixelRatio ||\n\tthis.context.webkitBackingStorePixelRatio ||\n\tthis.context.mozBackingStorePixelRatio ||\n\tthis.context.msBackingStorePixelRatio ||\n\tthis.context.oBackingStorePixelRatio ||\n\tthis.context.backingStorePixelRatio || 1;\n\n mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n\n var rubberband = $('<canvas/>');\n rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n\n var pass_mouse_events = true;\n\n canvas_div.resizable({\n start: function(event, ui) {\n pass_mouse_events = false;\n },\n resize: function(event, ui) {\n fig.request_resize(ui.size.width, ui.size.height);\n },\n stop: function(event, ui) {\n pass_mouse_events = true;\n fig.request_resize(ui.size.width, ui.size.height);\n },\n });\n\n function mouse_event_fn(event) {\n if (pass_mouse_events)\n return fig.mouse_event(event, event['data']);\n }\n\n rubberband.mousedown('button_press', mouse_event_fn);\n rubberband.mouseup('button_release', mouse_event_fn);\n // Throttle sequential mouse events to 1 every 20ms.\n rubberband.mousemove('motion_notify', mouse_event_fn);\n\n rubberband.mouseenter('figure_enter', mouse_event_fn);\n rubberband.mouseleave('figure_leave', mouse_event_fn);\n\n canvas_div.on(\"wheel\", function (event) {\n event = event.originalEvent;\n event['data'] = 'scroll'\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n mouse_event_fn(event);\n });\n\n canvas_div.append(canvas);\n canvas_div.append(rubberband);\n\n this.rubberband = rubberband;\n this.rubberband_canvas = rubberband[0];\n this.rubberband_context = rubberband[0].getContext(\"2d\");\n this.rubberband_context.strokeStyle = \"#000000\";\n\n this._resize_canvas = function(width, height) {\n // Keep the size of the canvas, canvas container, and rubber band\n // canvas in synch.\n canvas_div.css('width', width)\n canvas_div.css('height', height)\n\n canvas.attr('width', width * mpl.ratio);\n canvas.attr('height', height * mpl.ratio);\n canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n\n rubberband.attr('width', width);\n rubberband.attr('height', height);\n }\n\n // Set the figure to an initial 600x600px, this will subsequently be updated\n // upon first draw.\n this._resize_canvas(600, 600);\n\n // Disable right mouse context menu.\n $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n return false;\n });\n\n function set_focus () {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n}\n\nmpl.figure.prototype._init_toolbar = function() {\n var fig = this;\n\n var nav_element = $('<div/>')\n nav_element.attr('style', 'width: 100%');\n this.root.append(nav_element);\n\n // Define a callback function for later on.\n function toolbar_event(event) {\n return fig.toolbar_button_onclick(event['data']);\n }\n function toolbar_mouse_event(event) {\n return fig.toolbar_button_onmouseover(event['data']);\n }\n\n for(var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n // put a spacer in here.\n continue;\n }\n var button = $('<button/>');\n button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n 'ui-button-icon-only');\n button.attr('role', 'button');\n button.attr('aria-disabled', 'false');\n button.click(method_name, toolbar_event);\n button.mouseover(tooltip, toolbar_mouse_event);\n\n var icon_img = $('<span/>');\n icon_img.addClass('ui-button-icon-primary ui-icon');\n icon_img.addClass(image);\n icon_img.addClass('ui-corner-all');\n\n var tooltip_span = $('<span/>');\n tooltip_span.addClass('ui-button-text');\n tooltip_span.html(tooltip);\n\n button.append(icon_img);\n button.append(tooltip_span);\n\n nav_element.append(button);\n }\n\n var fmt_picker_span = $('<span/>');\n\n var fmt_picker = $('<select/>');\n fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n fmt_picker_span.append(fmt_picker);\n nav_element.append(fmt_picker_span);\n this.format_dropdown = fmt_picker[0];\n\n for (var ind in mpl.extensions) {\n var fmt = mpl.extensions[ind];\n var option = $(\n '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n fmt_picker.append(option)\n }\n\n // Add hover states to the ui-buttons\n $( \".ui-button\" ).hover(\n function() { $(this).addClass(\"ui-state-hover\");},\n function() { $(this).removeClass(\"ui-state-hover\");}\n );\n\n var status_bar = $('<span class=\"mpl-message\"/>');\n nav_element.append(status_bar);\n this.message = status_bar[0];\n}\n\nmpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n // which will in turn request a refresh of the image.\n this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n}\n\nmpl.figure.prototype.send_message = function(type, properties) {\n properties['type'] = type;\n properties['figure_id'] = this.id;\n this.ws.send(JSON.stringify(properties));\n}\n\nmpl.figure.prototype.send_draw_message = function() {\n if (!this.waiting) {\n this.waiting = true;\n this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n }\n}\n\n\nmpl.figure.prototype.handle_save = function(fig, msg) {\n var format_dropdown = fig.format_dropdown;\n var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n fig.ondownload(fig, format);\n}\n\n\nmpl.figure.prototype.handle_resize = function(fig, msg) {\n var size = msg['size'];\n if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n fig._resize_canvas(size[0], size[1]);\n fig.send_message(\"refresh\", {});\n };\n}\n\nmpl.figure.prototype.handle_rubberband = function(fig, msg) {\n var x0 = msg['x0'] / mpl.ratio;\n var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n var x1 = msg['x1'] / mpl.ratio;\n var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n x0 = Math.floor(x0) + 0.5;\n y0 = Math.floor(y0) + 0.5;\n x1 = Math.floor(x1) + 0.5;\n y1 = Math.floor(y1) + 0.5;\n var min_x = Math.min(x0, x1);\n var min_y = Math.min(y0, y1);\n var width = Math.abs(x1 - x0);\n var height = Math.abs(y1 - y0);\n\n fig.rubberband_context.clearRect(\n 0, 0, fig.canvas.width, fig.canvas.height);\n\n fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n}\n\nmpl.figure.prototype.handle_figure_label = function(fig, msg) {\n // Updates the figure title.\n fig.header.textContent = msg['label'];\n}\n\nmpl.figure.prototype.handle_cursor = function(fig, msg) {\n var cursor = msg['cursor'];\n switch(cursor)\n {\n case 0:\n cursor = 'pointer';\n break;\n case 1:\n cursor = 'default';\n break;\n case 2:\n cursor = 'crosshair';\n break;\n case 3:\n cursor = 'move';\n break;\n }\n fig.rubberband_canvas.style.cursor = cursor;\n}\n\nmpl.figure.prototype.handle_message = function(fig, msg) {\n fig.message.textContent = msg['message'];\n}\n\nmpl.figure.prototype.handle_draw = function(fig, msg) {\n // Request the server to send over a new figure.\n fig.send_draw_message();\n}\n\nmpl.figure.prototype.handle_image_mode = function(fig, msg) {\n fig.image_mode = msg['mode'];\n}\n\nmpl.figure.prototype.updated_canvas_event = function() {\n // Called whenever the canvas gets updated.\n this.send_message(\"ack\", {});\n}\n\n// A function to construct a web socket function for onmessage handling.\n// Called in the figure constructor.\nmpl.figure.prototype._make_on_message_function = function(fig) {\n return function socket_on_message(evt) {\n if (evt.data instanceof Blob) {\n /* FIXME: We get \"Resource interpreted as Image but\n * transferred with MIME type text/plain:\" errors on\n * Chrome. But how to set the MIME type? It doesn't seem\n * to be part of the websocket stream */\n evt.data.type = \"image/png\";\n\n /* Free the memory for the previous frames */\n if (fig.imageObj.src) {\n (window.URL || window.webkitURL).revokeObjectURL(\n fig.imageObj.src);\n }\n\n fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n evt.data);\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n fig.imageObj.src = evt.data;\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n\n var msg = JSON.parse(evt.data);\n var msg_type = msg['type'];\n\n // Call the \"handle_{type}\" callback, which takes\n // the figure and JSON message as its only arguments.\n try {\n var callback = fig[\"handle_\" + msg_type];\n } catch (e) {\n console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n return;\n }\n\n if (callback) {\n try {\n // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n callback(fig, msg);\n } catch (e) {\n console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n }\n }\n };\n}\n\n// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\nmpl.findpos = function(e) {\n //this section is from http://www.quirksmode.org/js/events_properties.html\n var targ;\n if (!e)\n e = window.event;\n if (e.target)\n targ = e.target;\n else if (e.srcElement)\n targ = e.srcElement;\n if (targ.nodeType == 3) // defeat Safari bug\n targ = targ.parentNode;\n\n // jQuery normalizes the pageX and pageY\n // pageX,Y are the mouse positions relative to the document\n // offset() returns the position of the element relative to the document\n var x = e.pageX - $(targ).offset().left;\n var y = e.pageY - $(targ).offset().top;\n\n return {\"x\": x, \"y\": y};\n};\n\n/*\n * return a copy of an object with only non-object keys\n * we need this to avoid circular references\n * http://stackoverflow.com/a/24161582/3208463\n */\nfunction simpleKeys (original) {\n return Object.keys(original).reduce(function (obj, key) {\n if (typeof original[key] !== 'object')\n obj[key] = original[key]\n return obj;\n }, {});\n}\n\nmpl.figure.prototype.mouse_event = function(event, name) {\n var canvas_pos = mpl.findpos(event)\n\n if (name === 'button_press')\n {\n this.canvas.focus();\n this.canvas_div.focus();\n }\n\n var x = canvas_pos.x * mpl.ratio;\n var y = canvas_pos.y * mpl.ratio;\n\n this.send_message(name, {x: x, y: y, button: event.button,\n step: event.step,\n guiEvent: simpleKeys(event)});\n\n /* This prevents the web browser from automatically changing to\n * the text insertion cursor when the button is pressed. We want\n * to control all of the cursor setting manually through the\n * 'cursor' event from matplotlib */\n event.preventDefault();\n return false;\n}\n\nmpl.figure.prototype._key_event_extra = function(event, name) {\n // Handle any extra behaviour associated with a key event\n}\n\nmpl.figure.prototype.key_event = function(event, name) {\n\n // Prevent repeat events\n if (name == 'key_press')\n {\n if (event.which === this._key)\n return;\n else\n this._key = event.which;\n }\n if (name == 'key_release')\n this._key = null;\n\n var value = '';\n if (event.ctrlKey && event.which != 17)\n value += \"ctrl+\";\n if (event.altKey && event.which != 18)\n value += \"alt+\";\n if (event.shiftKey && event.which != 16)\n value += \"shift+\";\n\n value += 'k';\n value += event.which.toString();\n\n this._key_event_extra(event, name);\n\n this.send_message(name, {key: value,\n guiEvent: simpleKeys(event)});\n return false;\n}\n\nmpl.figure.prototype.toolbar_button_onclick = function(name) {\n if (name == 'download') {\n this.handle_save(this, null);\n } else {\n this.send_message(\"toolbar_button\", {name: name});\n }\n};\n\nmpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n this.message.textContent = tooltip;\n};\nmpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n\nmpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n\nmpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n // Create a \"websocket\"-like object which calls the given IPython comm\n // object with the appropriate methods. Currently this is a non binary\n // socket, so there is still some room for performance tuning.\n var ws = {};\n\n ws.close = function() {\n comm.close()\n };\n ws.send = function(m) {\n //console.log('sending', m);\n comm.send(m);\n };\n // Register the callback with on_msg.\n comm.on_msg(function(msg) {\n //console.log('receiving', msg['content']['data'], msg);\n // Pass the mpl event to the overriden (by mpl) onmessage function.\n ws.onmessage(msg['content']['data'])\n });\n return ws;\n}\n\nmpl.mpl_figure_comm = function(comm, msg) {\n // This is the function which gets called when the mpl process\n // starts-up an IPython Comm through the \"matplotlib\" channel.\n\n var id = msg.content.data.id;\n // Get hold of the div created by the display call when the Comm\n // socket was opened in Python.\n var element = $(\"#\" + id);\n var ws_proxy = comm_websocket_adapter(comm)\n\n function ondownload(figure, format) {\n window.open(figure.imageObj.src);\n }\n\n var fig = new mpl.figure(id, ws_proxy,\n ondownload,\n element.get(0));\n\n // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n // web socket which is closed, not our websocket->open comm proxy.\n ws_proxy.onopen();\n\n fig.parent_element = element.get(0);\n fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n if (!fig.cell_info) {\n console.error(\"Failed to find cell for figure\", id, fig);\n return;\n }\n\n var output_index = fig.cell_info[2]\n var cell = fig.cell_info[0];\n\n};\n\nmpl.figure.prototype.handle_close = function(fig, msg) {\n var width = fig.canvas.width/mpl.ratio\n fig.root.unbind('remove')\n\n // Update the output cell to use the data from the current canvas.\n fig.push_to_output();\n var dataURL = fig.canvas.toDataURL();\n // Re-enable the keyboard manager in IPython - without this line, in FF,\n // the notebook keyboard shortcuts fail.\n IPython.keyboard_manager.enable()\n $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n fig.close_ws(fig, msg);\n}\n\nmpl.figure.prototype.close_ws = function(fig, msg){\n fig.send_message('closing', msg);\n // fig.ws.close()\n}\n\nmpl.figure.prototype.push_to_output = function(remove_interactive) {\n // Turn the data on the canvas into data in the output cell.\n var width = this.canvas.width/mpl.ratio\n var dataURL = this.canvas.toDataURL();\n this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n}\n\nmpl.figure.prototype.updated_canvas_event = function() {\n // Tell IPython that the notebook contents must change.\n IPython.notebook.set_dirty(true);\n this.send_message(\"ack\", {});\n var fig = this;\n // Wait a second, then push the new image to the DOM so\n // that it is saved nicely (might be nice to debounce this).\n setTimeout(function () { fig.push_to_output() }, 1000);\n}\n\nmpl.figure.prototype._init_toolbar = function() {\n var fig = this;\n\n var nav_element = $('<div/>')\n nav_element.attr('style', 'width: 100%');\n this.root.append(nav_element);\n\n // Define a callback function for later on.\n function toolbar_event(event) {\n return fig.toolbar_button_onclick(event['data']);\n }\n function toolbar_mouse_event(event) {\n return fig.toolbar_button_onmouseover(event['data']);\n }\n\n for(var toolbar_ind in mpl.toolbar_items){\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) { continue; };\n\n var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n button.click(method_name, toolbar_event);\n button.mouseover(tooltip, toolbar_mouse_event);\n nav_element.append(button);\n }\n\n // Add the status bar.\n var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n nav_element.append(status_bar);\n this.message = status_bar[0];\n\n // Add the close button to the window.\n var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n button.click(function (evt) { fig.handle_close(fig, {}); } );\n button.mouseover('Stop Interaction', toolbar_mouse_event);\n buttongrp.append(button);\n var titlebar = this.root.find($('.ui-dialog-titlebar'));\n titlebar.prepend(buttongrp);\n}\n\nmpl.figure.prototype._root_extra_style = function(el){\n var fig = this\n el.on(\"remove\", function(){\n\tfig.close_ws(fig, {});\n });\n}\n\nmpl.figure.prototype._canvas_extra_style = function(el){\n // this is important to make the div 'focusable\n el.attr('tabindex', 0)\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n }\n else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n\n}\n\nmpl.figure.prototype._key_event_extra = function(event, name) {\n var manager = IPython.notebook.keyboard_manager;\n if (!manager)\n manager = IPython.keyboard_manager;\n\n // Check for shift+enter\n if (event.shiftKey && event.which == 13) {\n this.canvas_div.blur();\n // select the cell after this one\n var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n IPython.notebook.select(index + 1);\n }\n}\n\nmpl.figure.prototype.handle_save = function(fig, msg) {\n fig.ondownload(fig, null);\n}\n\n\nmpl.find_output_cell = function(html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i=0; i<ncells; i++) {\n var cell = cells[i];\n if (cell.cell_type === 'code'){\n for (var j=0; j<cell.output_area.outputs.length; j++) {\n var data = cell.output_area.outputs[j];\n if (data.data) {\n // IPython >= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] == html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n}\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel != null) {\n IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n}\n"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<IPython.core.display.HTML object>",
"text/html": "<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAgAElEQVR4Xu1dBZhVVRfddHcNDUN3d0gjICJdBioCiq2oiIWFYisiIAq/GCCIigoIiHQOPTQMzdDd+X/rzNzxzZv75t2XN2ad7+MTefees886+9519zk7UgkbESACRIAIEAEiEHYEUoV9RA5IBIgAESACRIAICAmYSkAEiAARIAJEwAQESMAmgM4hiQARIAJEgAiQgKkDRIAIEAEiQARMQIAEbALoHJIIEAEiQASIAAmYOkAEiAARIAJEwAQESMAmgM4hiQARIAJEgAiQgKkDRIAIEAEiQARMQIAEbALoHJIIEAEiQASIAAmYOkAEiAARIAJEwAQESMAmgM4hiQARIAJEgAiQgKkDRIAIEAEiQARMQIAEbALoHJIIEAEiQASIAAmYOkAEiAARIAJEwAQESMAmgM4hiQARIAJEgAiQgKkDRIAIEAEiQARMQIAEbALoHJIIEAEiQASIAAmYOkAEiAARIAJEwAQESMAmgM4hiQARIAJEgAiQgKkDRIAIEAEiQARMQIAEbALoHJIIEAEiQASIAAmYOkAEiAARIAJEwAQESMAmgM4hiQARIAJEgAiQgKkDRIAIEAEiQARMQIAEbALoHJIIEAEiQASIAAmYOkAEiAARIAJEwAQESMAmgM4hiQARIAJEgAiQgKkDRIAIEAEiQARMQIAEbALoHDLFIZBTRFqJSB0ReTF+9lNFpHsYkOgmItpY00TkBRFpLSJDRKSuiMTE//8IETmjI09NEYmMl31u/LVTRGRtGGTnEETA0QiQgB29vJycRRAA+c4TkTUiUktEQMggRRBhONrY+PEggybL+yKikS7+LSoZAgbZgnwHxpOxp2vDMReOQQQcgwAJ2DFLyYlYHAGQHAgXFjCsUliVI11khmWaJ/53/IY/IEyjDQQJi9qTFTs0/neMDUsYli0+AkCuIGhvY2kfD5o8+IgYEG9BY0xv9xudB68jAikGARJwillqTtRkBGBxalu3rhYpxAI5g9BAjP42b1vaIFAQNMYB6eK/IE4QskbO2I7Wa/gYgPyuW+b4YIC8uMfb2P7OifcRAUcjQAJ29PJychZCACT1SDzpuVuT+A0W7Lh4y7Rn/PZw7XirGb+BBLH1C/IE+YH4cJ1GiiB1bBF7argHZ9Da9SBU7Tza0wcArGSNpNEvLHbNgnadj3Y2bCG4KQoRsD4CJGDrrxEldAYCIK7c8VMB8ZVymZYrecIyBTmCTPH3r+NJU9vuBRGfirc+tftAoPh3ELinpm0Za9veGomDYD3dizHRNEet1fEfAJrVq31QkICdoaOcRZgRIAGHGXAOl+IRcD0L1sBw3cIFUWJLWHOQ0kgW/9WsVhA4SBMW8s/xZ7E4gw2nZzK3oFO8KhOAQBEgAQeKIO8nAt4RwFYuiBfWJ8gWBOp63upqAYNYYf3ivBjWKe7FWSvIFxao5mSF67RzY1jX+PfkLGDvUvp2BZ2wfMOLVxOBJAiQgKkURCD0CGheza7nuNqo+DeNZEMvCUcgAkTAMgiQgC2zFBQkBSKAM1ZYkrBc9cKHUiAknDIRSDkIkIBTzlpzpkSACBABImAhBEjAFloMikIEiAARIAIpBwEScMpZa86UCBABIkAELIQACdhCi0FRiAARIAJEIOUgkOIIOFu2bLeLFCmSclaYMyUCRIAIOBSBrVu3nheR7HadXooj4AoVKtzesmWLXdeLchMBIkAEiEA8AqlSpdoqIhXtCggJ2K4rR7mJABEgAikcARKwzRSAFrDNFoziEgEiQAQ8IEACtplqkIBttmAUlwgQASJAAnaGDpCAnbGOnAURIAJEgBawzXSABGyzBaO4RIAIEAFawM7QARKwM9aRsyACRIAI0AK2mQ6QgG22YBSXCBABIkAL2Bk6QAJ2xjpyFkSACBABWsA20wESsM0WjOISASJABGgBO0MHSMDOWEfOgggQASJAC9hmOkACttmCUVwiQASIAC1gZ+gACdgZ68hZEAEiQARoAdtMB0jANlswiksEiAARoAXsDB0gATtjHTkLIkAEiAAtYJvpAAnYZgtGcYkAESACtICdoQMkYGesI2dBBIgAEaAFbDMdIAHbbMEoLhEgAkSAFrAzdIAE7Ix15CyIABEgArSAbaYDJGCbLRjFJQJEgAjQAra0DnQTkTMiEiki45KTlARs6XWkcESACBABwwjQAjYMVcgurCkiuUVknojkFJEeyZEwCThk68COiQARIAJhRYAEHFa4dQeD1TtVRFqKSG0ROSUiaz2JRQI2f8EoAREgAkQgGAiQgIOBYuB9vC8iA0RkhIiM5BZ04ICyByJABIiA1REgAZu/Qth2Hioiu0VkrIi0jt+O1iQbLCL4o1pERESF2NhY86WmBESACBABIhAQAiTggOALys0vxJ/5ak5YsIa7cws6KNiyEyJABIiAZREgAZu/NK4EDGmwFe3RE5pnwOYvGCUgAkSACAQDARJwMFAMvA+QcEy8N/TP8SFJur2SgAMHmz0QASJABKyAAAnYCqvggwwkYB/A4qVEgAgQAQsjQAK28OLoiUYCttmCUVwiQASIgAcESMA2Uw0SsM0WjOISASJABEjAztABErAz1pGzIAJEgAjQAraZDpCAbbZgFJcIEAEiQAvYGTpAAnbGOnIWRIAIEAFawDbTARKwzRaM4hIBIkAEaAE7QwdIwM5YR86CCBABIkAL2GY6QAK22YJRXCJABIgALWBn6AAJ2BnryFkQASJABGgB20wHSMA2WzCKSwSIABGgBewMHSABO2MdOQsiQASIAC1gm+kACdhmC0ZxiQARIAK0gJ2hAyRgZ6wjZ0EEiAARoAVsMx0gAdtswSguESACRIAWsDN0gATsjHXkLIgAESACtIBtpgMkYJstGMUlAkSACNACdoYOkICdsY6cBREgAkSAFrDNdIAEbLMFo7hEgAgQAVrAztABErAz1pGzIAJEgAjQAraZDpCAbbZgFJcIEAEiQAvYGTpAAnbGOnIWRIAIEAFawDbTARKwzRaM4hIBIkAEaAE7QwdIwM5YR86CCBABIkAL2GY6QAK22YJRXCJABIgALWBn6AAJ2BnryFkQASJABGgB20wHSMA2WzCKSwSIABGgBewMHSABO2MdOQsiQASIAC1gm+kACdhmC0ZxiQARIAK0gJ2hAyRgZ6wjZ0EEiAARoAVsMx0gAdtswSguESACRIAWsDN0gATsjHXkLIgAESACtIBtpgMkYJstGMUlAkSACNACdoYOkICdsY6cBREgAkSAFrDNdIAEbLMFo7hEgAgQAVrAztABErAz1pGzIAJEgAjQAraZDpCAbbZgFJcIEAEiQAvYGTpAAnbGOnIWRIAIEAFawDbTARKwzRaM4hIBIkAEaAE7QwdIwM5YR86CCBABIkAL2GY6QAK22YJRXCJABIgALWBn6AAJ2BnryFkQASJABGgBW0MHIkWkpoicEZGY+D+6kpGArbFglIIIEAEiECgCJOBAEQzO/VNFpLuIdBOR3CIyzlO3JODgAM5eiAARIAJmI0ACNnsF4ki3joi8aEQUErARlHgNESACRMD6CJCAzV+jF0SklIiMFZFW8dYvtqK5BW3+2lACIkAEiEDIECABhwxawx2/H38lLGAQcOvkrGFawIZx5YVEgAgQAUsjQAI2f3kGxIuAc184YoGQQcJaGywi+KNaREREhdjYWPOlpgREgAgQASIQEAIk4IDgC8rN8IAeGG/1ej0PpgUcFMzZCREgAkTAdARIwKYvgRIAVvApI85YJGBrLBilIAJEgAgEigAJOFAEw3w/CTjMgHM4IkAEiECIECABhwjYUHVLAg4VsuyXCBABIhBeBEjA4cU74NFIwAFDyA6IABEgApZAgARsiWUwLgQJ2DhWvJIIEAEiYGUESMBWXh0d2UjANlswiksEiAAR8IAACdhmqkECttmCUVwiQASIAAnYGTpAAnbGOnIWRIAIEAFawDbTARKwzRaM4hIBIkAEaAE7QwdIwM5YR86CCBABIkAL2GY6QAK22YJRXCJABIgALWBn6AAJ2BnryFkQASJABGgB20wHSMA2WzCKSwSIABGgBewMHSABO2MdOQsiQASIAC1gm+kACdhmC0ZxiQARIAK0gJ2hAyRgZ6wjZ0EEiAARoAVsMx0gAdtswSguESACRIAWsDN0gATsjHXkLIgAESACtIBtpgMkYJstGMUlAkSACNACdoYOkICdsY6cBREgAkSAFrDNdIAEbLMFo7hEgAgQAVrAztABErAz1pGzIAJEgAjQAraZDpCAbbZgFJcIEAEiQAvYGTpAAnbGOnIWRIAIEAFawDbTARKwzRaM4hIBIkAEaAE7QwdIwM5YR86CCBABIkAL2GY6QAK22YJRXCJABIgALWBn6AAJ2BnryFkQASJABGgB20wHSMA2WzCKSwSIABGgBewMHSABO2MdOQsiQASIAC1gm+kACdhmC0ZxiQARIAK0gJ2hAyRgZ6wjZ0EEiAARoAVsMx0gAdtswSguESACRIAWsDN0gATsjHXkLIgAESACtIBtpgMkYJstGMUlAkSACNACdoYOkICdsY6cBREgAkSAFrDNdIAEbLMFo7hEgAgQAVrAztABErAz1pGzIAJEgAjQAraZDpCAbbZgFJcIEAEiQAvYGTpAAnbGOnIWRIAIEAFawDbTARKwzRaM4hIBIkAEaAE7QwdIwM5YR86CCBABIkAL2GY6QAK22YJRXCJABIgALWBb6MD7IvJicpKmdAL+dskeaVclQgrmyGSLBaWQRIAIEAFPCNACto5u1BSRr0WkFgnYMwIvTNsgDzQsIZUK5bDOylESIkAEiIAfCJCA/QAtRLe0ird+W5OAPSPw7M/r5aFGJaVyYfsT8OzoWGlbKUJSpUoVIpVit0SACFgZARKwNVYH1m+MiEwVERJwMmvy1OR10r9xpFQpYn8CLvfKLHm5fQVl0bMRASKQ8hAgAVtjzWH9zhORuSTg5Bdk8I9rZWDTSKlaJKc1Vi4AKTp8vlgypUsj73WtIqXzZwugJ95KBIiAHREgAfu3anNEZHf8HxBnpIhM968r0azfMx4IeLCI4I9qERERFWJjY/0cyv63DZwUJY82Ky3Vi9qfgO/5cqm8fU9leW/WNpn0cF1uRdtfPTkDIuATAiRgn+BKcjH2QWG95o53oPKnt24uN8ELemC8NazbV0r3gu7/v9UyuHlpqVEsVxJ8jpy9Ijkzp5OM6dL4sw5hvwcE/NvgRjLs103Sonx+aVmhQNhl4IBEgAiYhwAJ2Dzs3UcGEcMLujsJ2POi9JuwSp5sWUZq6hBwiZf+kmdbl1W/26F1+nKp/D64kcSevSyP/7hOpg1qQCvYDgtHGYlAkBAgAQcG5JD4bWhYwOMD68rY3SndAr7vm5XydKsyUqs4IE/cQMBPtSwjz7QuawxMk6/SCBhivDFjszQslUfaVIowWSoOTwSIQLgQIAEHhnRLETkVvw39QWBdGbs7pRNw73Er5Lk2ZaV2CX0CtpMFrG1BY+Wxff7k5HXy88AGxhSBVxEBImB7BEjAgS3hIyKyWkQQyLkusK6M3Z3SCbjHmOUy5M5yUscDAQ9pW06dEduhuRIw5H168joVkqR3vm2H+VBGIkAEfEOABOwbXnpXYxt6jYjMD7wr7z2kdALuMnqpvHhneakXmScJWNiCxm+PNivlHUgLXOFOwBsPnpGvF++RL3rXsIB0FIEIEIFQI0ACDg7CLUjAwQHSWy+dRi2Roe0rSH0PBDy0XXkZeIf1Cfj27dvSefQy5QXt2nqNWy4f96guhXIy17U3XeDvRMDuCJCAA1tBWL94258WkaGBdWXsbqdbwLuPX5D0aVJL0dyZdQFB8opXOlSUBqX0LeBXOlSQ/k0Qlm3tdvPWbek+ZplMfywxAc/cFCubD5+VIW3LW3sClI4IEIGAESABBwZhdRFZH1gXvt3tdAJu+dECZf01KZNXBjRNasne+ekiee2uitKwdN4kwGELGr891Likb6CacPWNm7ek57gV8sujDRONfv3mLdG2ptOlSW2CZBySCBCBcCFAAg4M6TEicjv+DJhhSIFhqe5u9fFCKZgjoyzeeUL2vtchSY/4ffjdlaSRBwJ+o2NF6dfI+gQMooVH9zQ3AsaE35+9TWX6QqEGNiJABJyLAAk4sLWFtwy8n5ER62xgXRm72+kWMAg2IntGWbJLn4Cbf7hA3upUWRqX0beA3+pUSe5rYP3iBtdu3JK+41fI1EGJLWBowb6TF1Vc8IQH6xpTCl5FBIiALREgAfu3bNlF5JzLrWHbinY6Abf+eKEUSIaAm4ycL+/cU0Wals2nuwX9TufK0rdecf9WNYx3Xb1xU+4bv0p+HqQf94uEIyO6VJEiufTPwsMoKociAkQgRAiQgP0DViPg90QEVQHohOUfjknu8kbADUf8IyO6VpU7PBDwe12qSK+6xYIkTei6uXL9pjzw7SqZ4iHxxl8bY2X7kXPybJtyoROCPRMBImAqAiTgwODnFnRg+OkScP7sGWTprpO6Z8B135kn73erKs3L5de1gEd2rSo96hQNslTB7+7ytZvy4MRVMnmAvgWMLerOo+NyRaelM1bwF4A9EgELIEAC9m8Rwrbl7C6e07eg23yyUPJmzSDLdusTcK235sqH3atJ8/L6BIzfutUq4t+qhvGuS9duyMMTo+SnAfU9jjpi1lapXTy3tK7IKklhXBoORQTChgAJ2D+osfX8bnwdYIYh+Yeh7l1tP1kkubOkl+Ux+gRcbfgc+aRnNWlRPikpIQzp4x7VpEtN6xPwxas35JHvouTHRzwT8J4TF+Wdv7bI+AfqBBFhdkUEiIBVECAB+7cSiHNB+UC8GU/GV0Qa5+aY5V/PXu5yugWMOF/U9F0Rc0p3C7ry63/Lpz2rSysdqxAE/Fmv6tKpeuGQYB/MTi9cvSEDJ0XJD/09EzDGg6c0rPqCOZgZK5j4sy8iYAUESMCBrYIWfoT/ojDDh4F15/3ulEDA2TOlk1V79Am4/Kuz5IveNXW3Ze1EwOeuXJfBP6yVSQ/XS3bRf19/SPaeuCRPtbJHjWPvGswriAAR0BAgAQdPF1Ca8J/gdaffU0og4KwZ0krUvtO6FnCZYTPlyz41devmgoBhHd9Tw/oW8NnL1+XxH70TMLylu361TGY83ljSpEbRLTYiQAScggAJ2LeVROYrbD/HiMhcEZkXjm1nVxFTAgFnSp9G1u0/k4SAUcCg5NCZMubeWnJn5aRZokDAOB/uXMP6Z8BnL12XJyavk+8e8p5sY/gfm1XYVTMdz2/f1JdXEwEiYCUESMD+rQa2nFvFF2DYHb/97JqYw79eDdyVEgg4Q7o0suFAUgJGAYNSL4OAa8qdlQsmQQsE/FH3atLVBl7QZy5dk6cmr5f/GSDgHUfPy8dzdsiY+2oZ0BBeQgSIgF0QIAH7tlJd4i/XLN+uIvKLiPQXEeaC9g1L3avbfbZYEPYafehcEgsY2aPKvTJbvupbU9pV0Sdgu4Qhnb54TZ79eb3hdJM9xy6XL/rUkPzZMgYBZXZBBIiAFRAgAfu2CiBctNYikktEVsdvR59hPWDfgPR0dfvPFqvqFltjkxIwYmcrvva3OgPuUFWfgEd2qyo9als/EcfJC1dlyLSN8m0/YyFGU6MOyPELV+WxZqWDAzR7IQJEwHQESMC+LQHOf5F6EgUYtAZSxjZ0WOKBnb4FDQK+dfu2bDtyPokFDM/hqm/MkVF9ashdVQvpbkGbmQnr1q3bcujMZY+1jF0FPnHhqrw4baN8Y5CA8fHRY+xymTG4saSmM5ZvTy2vJgIWRYAEbNGF8SRWSiBglOrbeexCEgLGtm2Nt+bK571ryN3V9AnYzFzQ0YfOypiFu2VUn5peter4+asydPpGn5JsvPLbJmlfuaBuLWSvA/ICIkAELIcACdhyS5K8QE4n4A6fL5bL129KzPGLSQgYpFXnnXkek23ACQsVhHqbVIzhjw2HZXb0Efmyr3cCPnb+irw8PVrGP1DbsAZuPgyCj5EveiMFORsRIAJ2R4AEbLMVTAkEjDSNe09eSkLAR85ekfoj/kmWgN/tXEX61DOnGtIX/+yUrUfOyei+3r2Vj527Iq/8Fi3j7jdOwFDVbl8tU/cgXScbESAC9kaABGyz9XM6Ad/1xWJBkooDpy4nIeCDpy9J4/f/9RjrCwv47Xsqy731zakH/OyU9XLp2k1D4UL4mHh9RrSMvc83Av5x5X7BeXD/JpE201yKSwSIgDsCJGCb6YTTCbjjF0vk1MVryplp73sdEq3OvpMX5Y4PFugWXNCSdLx1T2W5zyQCRvnA/NkyGCLV2LOXZfiMLYbI2hUE5JDuPW6F/Da4ETNj2ezZpbhEgARscx1ICQSMs94j564kIeDdxy9Iy48W6ibbgONWmWGz5M1OleT+BiVMWeWGI/6RSoVzyNcGtpUPn7ksb/25Rb661/t2tftkcF+DyDy6BSlMmTgHJQJEwC8EaAH7BZt5NzmdgO8etURiz14RkLC7BYyMUG0+WSQfdKsq3d1ifbUY4eF3V5IHGoafgOGh3Wf8SimcM5MhxypY+Cg1aOS82F3b9p+8JMN+2+S1kIN5WsqRiQARMIIACdgISha6JiUQMKzDExeuJSHgLYfPSfvPF4tesg3kVq725hx5vWNFebARwrXD29buPy3fLNkjV67dNBTbi/PsEbO2qaQi/rQB30XJc23KSbmIbP7cznuIABGwAAIkYAssgi8ipAQCPnDqkpy+dD0JAW86eFbuGb1URnSuIj3qJM52pYUovXZXReUFnTFdGl9gDfja6WsPyt4TFyX68DlD2a0wx/dnbzMUM6wn3LLdJwRhTyO6VA1YdnZABIiAOQiQgM3B3e9RnU7AnUYtkT0nLsq5KzeSEPC6/ael99cr5I2OlaSXW6wvnJoajJgvz7cpKx/O2SHrXm0tucIYqvPxnO0SmS+r/Lb+kEx80HuFI2wjfzBnu98xvXA66zx6mSJ7hiT5/TjxRiJgKgIkYFPh933wlEDAu49fFHj7up8BR+09JQ9OWC0vd6iQJNkGCK35Rwukf5OSMnZhjMx79g4pnT+r7wD7eQdq+w5oGikfzdlhqMIRPLpxLbJ6+dt+WXNQ9p26JM+2LutvF7yPCBABExEgAZsIvj9DO56Av1wqO46cV9mwQMBTVu9XeaFf71hJVsSclMd+WCvPtSkrfesljvXddeyCIISpa63C8v2K/fLnE42lcmFUjQxPQwjSNw/UkacmrzPkHIXt6k/m7ZDPevlPwPD8vufLpTJlYAPJmiFteCbKUYgAEQgaAiTgoEEZno6cTsAglC2x5+TajVuKgJ/8aZ0s3nlc1r3WRpbuOiHPTFkvT7YskyTZBqonYXu6Rbn8Mn3dIZk6qIHUKZE7LIuC7WDIPal/PRn8w1pDBIxt9s//2Smf9KwekIyTVuwTZA4bdEepgPrhzUSACIQfARJw+DEPaMSUQMAoanDj1u0EAl6y64SsfbW1LNxxXF6evkkGNSuVJNkGHLQe/t9qqV40p8zZclS+e6iuNC2bLyCsjd4cl9d5k3zaq4YMnBQlP/Sv7/VWxDR/OX+XfBwgAV+5flO6frVMfnm0Ydgdz7xOkhcQASKQLAIkYJspiNMJGFu56w+ckdu3RRHwEz+tU5YvCPifrUdV8oqHGpdMkmxjzb7Tavu3eJ7MsiLmlIzuW1PaVooIy+qujDkpc7cclWdal5VHvouSHx/xTsDYMh+9YJd83CMwCxgT/HpRjKRPm9qU+OewAMxBUgwCyJF++OwV9SGdEhoJ2GarnBIIeN3+M2pV3An4781H5MO/t6vtZ/dkGzgffvnXTZItYzpBHPErHSpIp+qFw7K6OKeGxd6lRhF5cOIqmTyggddxdx07L18tiJGPelTzeq23C7AFjVrBobCCYakjuUi4w7q8zZm/OxOBXuOWCxwqlw1t6cwJus2KBGyzZXY6AXcZvVTWuhAwzoC1LeiZm2Lli/m7pGftItLPLdkGzonfnblN4JiUNnUq6dewRJJQpVAt9YhZW+WOMvmkZvFc8sC3q5RTlLe28+h5GbcoRj7oHjgBYywkAbl565YMaBrcs+Bnf16vyBdVptiIQCgRgN9H2VdmSd96xeSdFKJvJOBQalQI+nY6AeM8E9vJmgUMAsYW9JpXW8uMDYdl/OIYuad6YbUN7drmbTkqXy7YJUfPXpESebNI64oFwpYRC+e+b9xdScXj3jd+lfw8yDsBI60m5jKyW3AI+OqNuLNgnD/nyJQuaJqHbX0kDRl4R6mwbekHTXh2ZCsE8IE9bc1BKZgjIwnYJiuXyiZyBk3MlEbA8CpeueeURL3SSpBtCuX42lUpKA+7EfBfG2Plh5X7BN7QDUvllUqFs8tjzUoHDffkOur05VL59dGGahu67/gVMnVQQ6/jbjtyTiYs2SvvdwteJivEBWPL+IU7y3sd3+gFiG9+tFkpeemXTarIRESOjEZv5XVEwCcE7v92ldxfv7j8s+1oisnwRgvYJxUx/+KURsD9/7daxQEvebGFign+ff1haVE+f5J6uCBnkPCy3SflnhqFJF+2jGFJUHHr1m3p/NUy+X1wI7lx85b0HLdCncV6a/hQ+N+yvfJe1+AR8M1bt6XbmGUqv3ShnJm8iWDo90e/XyOv3lVRkGls5Ozt8t3DdSVD2vCm+TQkKC+yNQJITPPGjM3ycvsKQT2asTooJGCrr5CbfE4n4G5fLZOo+C3oF+4sJ1F7TyurbuGQ5vL9in0yb+tRaVQqrzzSNHFB+p9W7ZclO0/IzOhYeaRJpKROlUpeahc8S9CTmqCowjt/bVVlBUGA3ccsk+mPNfKqVSgsMWnF3qB/6S/ffVK+X7nP7yIP7oKj6ANqLBfInlHtMCDca0SXKpIqVYrbfPK6przAfwTgXFm5cHYpUyBbUMLz/JckvHeSgMOLt6fRBsT/gOKwA3fqoU4AACAASURBVJMTKSURMHBoVi6fKnKwYEhzmbB0j4BgapfIlcTZCL9FHzonv6w9qCzfM5euy2sdK4Z8dUH6S3efkBfvLC9afubfBnsn4M2Hz8oPK/eHxLkJoVs9axeVxmXyBjx/7EDASs+bNYPqa+j0TVI+IhtDngJGlh1oCOC56Thqido5OnL2inw8N7AMcXZClgRs/mq1EpGY+D8vxIsz0pNYTidgWJCr98Y5YaHdUTaf7D91Sf59vpmKd91w8IxUKZxDOQW5tjELdytnIZAaShIizjYcnpSTlu+VDOnSSI/4+sQ4D8Z2tLeGZCOw2kMhI15icAzDWTTigwNp/Saskk96VE8obAFPVcQ696xTVNpXKRhI17yXCCgE4HQ5NeqA+tDDM/zebP/LdNoNUhKw+SsG6xdR5yDdbiLSOjkr2OkE3GPMclm191TCqiCbFbZ55z/XTL78d5faji6TP5tyDHJtn83bKeevXJfxS/bIB92qyqo9p4IW4pOcirz5xxZpVyUiIe2lUQLGVu6UqP3y9j2hCe8Zu3C33BYJOEXlfd+slC/71pTsGf/zrEbcMYpiPNWqjDQqHbiVbf4jSAnMROC136OlXeWC0qBUHuVrgGcKRzopoZGArbXKY0VkrohMS6kWsDsBNymTVyXW+Oe5ZgKSxQNaLE/mJB7OI2dvU+e+o/7dJWPurSWzomMDKnRgVC0enLBKEb22RWuUgDcePCNTow6q89VQNFiqSGrwUY/qUjJvFr+H6PP1CuX9nMWt2MPpi9fkwYmr5fk25YKy1e23gLzR1ghoBUX+eLyxpE6dSpAJa9hv0UrnnNRQ3W3O5iNSq3guKZ7nv+eRBGydVYZX0Ysp/QwYGZ1gvWqtcem8cuTcFVVeEI4a565cVw5Bg5v/F2IE72Mk4ciTNb188Pd2+bF/PUGRgnB8Rd89aonactackowS8IYDZ9R59ZudQkPAwA/nzEjdidjgNKn9c5rqOXa5Kq+olwkLJDxgUpRyemsTprSf1nlcKUkwEPh3+zHl1wHvZ7STF67KC9M2yjf96gSje0v0AfLFTlLL8vlVnno4MVYqFFepjQRsiSVSQrwfT8DuEg0WEfxRLSIiokJsbKx1pA6yJO4E3Kh0Hjl27qrMffYOGTFzq/I0zpk5nTzeoowaGZbk3aOWquw5kfmyKsLB1/Sn83aE/CHG1zvk/dXF69koASPf9W/rDqkEHqFsn8zdIdkzpUsSN210TJzJI7d1ujT6Z8nY9keJSISGIfsYvaONIsvrgACqmyGmXysdevbSdXly8jpDNbXtgiC22GH5IjUuHEqfn7pBfh7YQFn8JGBrrCLOfueJCJIgwykLf9dtjj8DdrOAG0TmkVMXr8nfzzRVZ0MZ06WWTOnSyBMt4wj4323H1FZot1pFpGaxXCofNBy2oPSTHq4X0tVFSUEQ3Oe9/6vpa5SA1+0/rWKaQ03A2lY0tslL5cvqMx4ojvHLoIbqZeGp4UPk7T+3yPmrN5RXN/NG+wxzirwBuonsbTMe/28HSfugC/WzGy7AD525LM9MXi9TBtZP+Dh9568tUqt4brmzcgQJOFwLkcw4INypIoJ9VxSwHRHvkJUiCRhbnsh8pbX6kblVSNGsp5rIQxNXS7WiOSWVpFIOQGg4VxkwaY10qFpQWlXIL89M2aCyZsEqw1dmKNv8bUdlw4GzqgqS1owSMDw//9x4WF7vGFoLGHJtP3JefZj80L+ez+SIOsdGwqowDtIIwiscHxU1iuUKJfTs2wEILIjffh4av/2MKV2+dlM95z8N8F5RzA4QvDdrm6rsBLLVGpxKkVnu+/71SMB2WERXGZ1uAbsTcL2SueXclRvyVd+a0uzDBYLkHPhyfrpVHOnN2hQrj8ZvgfaqU1SR8ba37pTeX69ItDUcinVGWFSBHBnl7mqF/CDgU/LXxiNhiVWGcEjhifzTvlrcvhAwxkEYCci+XIFs8kSLMpIjc/DyUodiDdmneQgMnb5RutcuqnautIac5vd9syrkH8/hmDWOy+Ajgg9Y9yMcFG3BWXDhXJm3ikjoExaEaML+eZaESJhwdOt0AobnLur5aq1uidwCJ4Zv+9WR+iP+UWUGz1+5kWB1/rHhsKoZDEv5yRZlpM/4lbJnRHvpPHqZYcvN33XDC6RvveIJ51foxyhhRe09JbOij6g0j+FoSHbw+E/r1MeCL3WSjc7HdQ5Iz/nHxsPydXzhjD71iknm9GnDMU2OYRMENHLSvJ81sfHvWmlNm0zFo5hI0oPMfXofvUiri/fYI01LkYDttNBOJ+De41bI8piTCUtSp0QuuXTtpiLgeu/+I291qiTHz1+VZ9uUU9f8uu6g2nbG1vRrd1VUlu+Ot9sZJsJA1h7W+oQH6yQiF6OEtXrvKbV9PqxDeAgY84QHed+vV8rovjWlaO7MhqZudD56nV25flMlRkGebmQ0Q7IS1xAMQwLwItsgAPKEtz0+mLO6ha25T2JlzEn5a1NskigAX7LJWR2YIVM3SN/6xdUWtHtDBMHA79cgWQ4J2OoL6SpfSiPg2sVzydUbt1RcICzg97tWkYOnL8tz8QT8c9QBFbYAAh5+dyXl7r/pjbZhIeBOCEF6vHEi9TFKWAi1wtexFn4RLh1EBq7XZ2yWSQ/XNWSVGp1PcvIjTOzvzUfVxxKOE9pULCBIsFImf1Z6TYdr4cMwDtKWIrMbPpT3vtch2RGH/7FZWlcoIA11ErkEQ+fCMF2PQyBT3Nh7a8ldXyyRv55s7FHHUf1p0sP1SMBmLpavYzudgJH4ARWNtFazWE5V5m/sfbWkwYj58nGPahJz/KI83zbOAm468l+VqhJfmSDgh/+3WqJeaR1yAka4xOM/rU3iaW305QELYP62Y+LqgOKrLvh7/e/rD8ncLUfli941vBKg0fkYlQVf/vjwQI3nnccuSJFcmVRMZKVC2VXCEFRxohe1UTStdR1C1hBSNOj7tRI9vK2uFYyqR2nTpBYU+UD8PP7u3oKtc8FACZb57duSbDQAxkFEQIVXZ6uqYTgeG9HFc7WziUv3yIONI0nAwVigcPWR0gi4RrGcgjNFJNVo+N58+bRndeVMpNW8LfHSXwp6EPBbnSrLoO/XyNKXWnglYG27zN91W7v/tMzQCSMy+vJA8oEFO47J0HZxCQjC3eCdmT1TWq81k43Oxx/58VJDmMbmw+fUH7ycY89ckas3b0maVCI5M6eXnJnSKUeunJnSS45MadXfkRYTsc1x/02r/ps5fRqvHxP+yMh7jCOAHaH6pfLI2IUxqrACYl/d2/uzt8nRc1ckTapUHlPFhlLnjM8m8ZWIWsCHq7fEOUiV2/KjhdK1ZhHl+dy6YgGPQ0L/U6dOTQL2d1HMuM/pBIyC9kt3/WcBg1iR0/jLPjXkxV82yuBmpWXxrrjqQ2gaAWML+p17KiuHLMQBe3uIcd+aV1pJnvgqP76uJZLHX75+U+5vUCLRrd7G1S5etvuELNpxIiwlE/Xmhg8QWCE96hRN1inL6Hx8xc/b9di2xnb1mUvX5Mzl64IdhzOXr8m5yzfk3OXr6jxb/R3/vXJdLl69mdAlQpYjcmSUorkyKwsb593lI7JLgewZSNLegNf5ffziGJWKtHfdYsne3eHzxcrq1cIINw9vmySFKVK3Ltl1QqWLbVlBn5zM0rnkJrdwx3EZPmOzzH++WbIY/L35iAyctEZyZ0kvS19sIZnSJ187m4k4/FBIM29xOgHfO36lekC1phHwqN41VJWUe+sVT2Q5agSMrWrkVX7u5w0y++mmhgh4xdCW6kXtT4MFiTzV7sUIjL48lu06oeapWfL+yBDoPXCWQTjEy+3Lq8QAes3ofAKVJZj3g7yRvhS+AgiLwhHF1tjzcuz8FcmRKZ0Ke2lYKo9UL5ZTMqRN/gUZTLns1NcL0zao81yEz7T9ZJEiFG+xudAVFOrA0QIa4vG1HOna3JuMnC+nLlyTNa+29njUYEWdm7flqPT/LkpWvtxSpcL11FAwBh/nOE6Z8GBdr0tOAvYKkbUuSIkEjBXAeSW2r+6tX1xlv8LZKbZw4PABC7lCwezy0p3lBaFBcIzCQ/zrYw09Wjwg7lUvt5T8yTxMya08rMfhnSpJwRyZEl1m9OWBM1BYwUPaxlnyZjWQ0sMTo+STntWldP6kmbKMzscs+X0dF2fQUftOK+zX7T8juTKnU5V42lQqoLa82eIQwPMx95mmUqZANp8IGJnqtDDCxS80T+RtD+wH/7hWhe4hcY6nZkWdm7kpVmXXe6hxyWSPbZ79eb3K1Fe1SA7pWSf5HQPMnwRssycupRLw571qyAdztst99YsneA/D4QFOW0gJWS8yjzzRorS8+lu0qoOLqkqT+tf1aOHgBbN6WCtBWrjm5fOrPK2+NJx3IcDePfex0ZcHYgRXxJxMcCbzZexgX4tzq6cnr1ee5u47AkbnE2yZwtUfKm3h5Yok+dkzxm2zNiuX3+/iFeGSOxTjQA9K5smiHI3wfIzqU0PuqlrIJwJGApbf1h9SkQt/P91UykVkSxAVHz0Lth/36vlvRZ3D+e/C7cdl+rpDKtGPJ0fBLqOXqtzpGdKmNnTcQQIOhSaHsM+CxUvfXrl2g+E4zhCKEpKuEUa0eGfiLWgM9Fmv6vLx3B3KAv47+oi8cldFFW84aNIaVfUHySUebFRSFWNAijdsZY++N3EdW1eB8YJZ9lIL5dg1uHkpnyxRED9igKe7FGHQ+jb68li047ggFlgLpwoJmD50iuIQr/8eVwbOdVfA6Hx8GMqyl+JD7seV+1QcOogHuuYtntWyk/FDMOg0qlrBkxnPB44mBjQtJXd+ukhyZTa2BQ2nI2Rdg3MddqBcU5J+s2SP5M6STjrXKJKsdFbUOYQ7IgMfHC/H96udqD6262T0QhOTmywJ2A9FNfOWwiVL3273xk8qGQVK9bWqWECqFs7h1T3eTJl9GdsTAWOL9LN5O+T+hiUSvI+10mUbDp6VzjUKqUQPI2ZtU0k7kE92ZLeqSc6gNFm0s2P8/0vtyvtUuH7XsQuCsx7I5N6Mvjzg1AHPymdd8kj7glMorl2z75S8+edWGX9/bcmXLYMawuh8QiGPWX0igQjyWk9evV/aVoyQBxqV8PjCNUvGUIwL6w07Oiio0fbTRTKwaaQ66gEBowLZ5AH/5VbH2TrCyQrnzCStKhRQ7x/oCkpTfv7PTtl+9LwqC+oa54sqQP2blFQOcck19AMnrV/XHRKU7cQHb9mIbNK1ZmEpnf8/izoUGHjq84eV+9R5OD7+8V7x5Lzp6/NCAg7nKgZhLG0LGi8JLdXZpkNn1ZkDvj4blspr6zhKTwSM+N8v5u+Sx1uUVuT3cY/qgu1DWLw4y0O6w/ZVIuSjOTtUyBIs49c6VlRxpXrNlYDxwsH9RhuKKBw6fVkG3lHKbwJGInrI7VrIwej4obwOCULenblVWcIgYV9fKKGULdx948X/69pD8t2Kveo8r3edorpxq+GWK1TjYa0/7F5Vnpu6UWLPXJbGZfKq58ydgBEGCGfH+xsUly2x5+TY+auCIyJUNhr/QG2l14/9sEa+6ltLGQhaQ2WtKQMaSPq0+qUttetafrRAOcthBwJHS9jORdlRWNAoW/hC2/JhPyKYsHSP2gWYFR0rw++urOu8CX1BJr9pjzY0vEQkYMNQWeNCvTNgxMmuP3hG4Km3dPdJKZAtg1J8fJnCe9FOzRMBf9Sjmnw5f5cM61AhoWA3tgxhFcOpBttmTcrkky/m75TPetWQpyavk2dalZUSebN4JWB80cJ6Nto+mrNdxTjirNC9GSUsFCLH171WVMLo2OG4Dlvj+LAZ1bumqs1qtBpSOGQzYwxU6EFeayROQTEQfOQ6sWm6O2LWVkWi+Bjr37ik8tYHIU6Jry7W/39R8nzbsgmWLK4vkiuz/Lr2YMKxDEKXcJShFSqBZ3q3McsN6dLOo+dV6Uz3Ephwuhy7KEZQynNUn5oea1SHYm3GLdqt5gh/AYRA6qVy9aeUIgk4FKsVwj6NOGEhoQEyHeEP4tA6Vi2kvDyzZbR+ZRqkZ8P5qNa0PKofdq8moxfskpFdq0rPcStUoD/K7H27ZI+s3HNSBjcvrRypdh47rzIrIQ/rI00jpWwB/S0rVwv4nc6VlWem0YYXEO7RC0cwTMDbjsnGg2cTyioaHTtc122NPSdDpm1QCRPc022GSwarjRN79rIMn7FFcmVJp7ZmkQDESU3TXYQSwcqFnp+8eE3KR2RLIGDEXD80YXUiKw/Xw7rFx762TY1zYCS50jyB0d+YhbuVRR1ogyUMkkY1IXcnyED79nT/qPk71QcHCBi7cJE6tbURUTDs1zg/CqONBGwUKYtcZ4SAXUVF7ck/NsDL84gUjC+dB69fq8Y/Ii4V56NJCbiqfLUgRmAJazV3sS2FszqE9CCcx7Xm5rBfNymPVmxZ6TVXAn6jY0Xp16ik4RVGiTGk0dN7+I0S8D9bj6rsT0+2jKtrbMWGcz4kzB+ks9VuRXnDIROssJmbjshXC3fJ823K6e6ChEOOUIzhrrtDp2+Sn1btT0TAyOd95OxVebRZ4uMX7Jgg/ve7h+JiXxELe+XGLRW1gIba2fjgDNaOD8IN65TILV1qJu/QFSyc4ACKXa+ZG2NVKJKrd7c2xv6Tl+TDOdvl8941DA9LAjYMlTUu9JWAXaXedey8/L7+sNpKQyKCXnWLqa0eKzVPBPxBt6oyblGMSl+nETC2SuEUAa/p1ztWTOTwgWTv8GTVS4eH+boSMEoc9m8SaQgGbDMN+G6Nx6QERgkYxwXbjpyTx1tYl4ANAZJCLzp18Zq89MtGKZ4ns/r483auaQeY3HX3jRmbZeKyvSqpRP5sGdQWNAoNDGtfIcnRzqaDZ2Xc4hgVr4+GD+PL127IffGZ4lC3e9+pS0H7mLt07YY6bx17X9LQuVBgjcQ7d5TNJ39tOiy96uh/2Gs7cu9385z/2V02EnAoViuEfQZCwJpYSEO4cMcx+WnVAZW5Buef7apEWMIq9kTA73etKt8siZGR3f4jYC2dI7as3+taRaoW+a/sFzwxkZzDUy5WVwLGud5jzUobWjV4CmNHwVNhe6MEjOMBbMth65zNngjAGv7fsr1ql+Cj7tWlWB5jJR6tOlt33X37zy0yfskeyZs1vdpy/bJPTZVI4+f4s2D3ecAJSSs8jxKUCBPUUrUijhYfLQgVDFbDzhfCg+DzEYqGbHUNSuVRO12w8OHk+efGWOlYrZDKpube4NMBz21P7wY9GUnAoVi5EPYZDAJ2Fe/I2SsyZfUBtUXdrnKEOgvNZaLjVr8Jq1Swvta0M2AQ7IQlewVfl5oFrKVzhJMIHkJ8qWsNlUgwN5wD6zVXAoaz1lOtjFmi369AOEIqj1lujBIwagFjy44EHMKHJUxdo8QjtmsRUobjHbs2d91FkpqvF+9RXsjItQ4LEH4P3Wp53/bFVjXyd2tHOz+vPiDXb93yydfCCI7wtn6gQQnlLR3sVv7VWdKhSiEVTfHh39uVoYIIiBbl8+uOh8Q6eHchrNFoIwEbRcoi1wWbgLVpXb1xU8XXooA6SsPhnMOM7WlPBAyHC1gb73WtmhAao2WTWrr7hHJ8cM07iy0xxHEin603AkYGLbw8X/09Wt6+R/96rQ+cLeNBxAtJrxklYCRtR+Yho5a3RdSPYnhAAGTz1JR1Uj8yj4qfDZdzUDAXxBMBY4y6JXIL3hHYhjZSLvK3dYfk9KX/LN5JK/apFI1GyNuXOcFPAfHFkwfUDyrm2N24Z3RceUV4QJ+5dF2FWP25IVatMUK03BsiGzYe8M2xkgTsy2pb4NpQEbA2NSgeqhEh7CJbxrTKSciTJ3Eo4EC1lH91LGDE6k5asVfV19ReFNh6jtp7SiXbh2Xs6liGZBnwmvbkdelqAQ+8I1LuqlJIQP5IEp9cQ7ICJKX35MRmlIBnR8fKnhOXkjizhAJT9hkeBBBqg7PCExeuqg9FI0QVHsmMjZIcAVcpnEOVfNRCkbz1iC3nkxeuqQ95NPewJG/3+/I7dh/ggAkLPVgNa6lFW+DIDqFP+Oge/e9ulXNBb6fjlzVx2+4PNExcIS05mUjAwVqxMPUTagJ2nQYyNcH9HqFMIGJvGWyCAYGeBZwqlahavz+u2q+y9GgviuSSWSAUC0k5PHkkuhIwvnKRchAOJxteb+NxGkh+0nf8ShUC5akZJWA4peDDQS+ZRzBwZB/mIQAHJGy5fnVvTb/LXZohfXIEjKIVLcoXUFEIRtqMDYfl2LkrCc6NSJ6DYh9IGRvshrSXz0xeL1MGBs8KxrOOkEj382581GNnUG8en83bKVWKZFc4GW0kYKNIWeS6cBKwNmXkCQYRw8ECmZtCaRHrJeJIkzqVvHZXReVwgS1lvCiQZxbnLZ5iafFQ4gxrdN9auiunETBqxyLjDkKCUGd27rN3eFzptftPq8xIKHvoLwEjVnB29BEVo40vdqPe1xZRP4phEAE4CMIahldw8Tz6yWAMdhWWy5DMp9uYZYnym2tnwJoAvvhKwAfjqAsBfzJ3hyr/2FwneU0wJvjitI3SuWZhtT0cjAZLduCkKPmhf/1E3X29KEYK5syoIizcm7fcA3pykYCDsVph7MMMAtamBy+/j+bukHxZM8gzrcuozDDBbn3Hr1Bb4FqDE1ba1KlUBqxf1h5UZ7TYBkbFI1jAnmJpvQXFawSMvvHQIowEXprJZX2auHSPZM2YLtlzLE8WMLaxRv+7S/7ZdkydIWNepfJnsYTnebDXkP3FIYAwM5xPYtfG1UPfivjgfPe+bxJbfEhJitA/rX3Ss5rXQgratX9tjFWpYjUnSHyMNC2bN2RZxBBRMHL2dnVOG4yGM/0nJq9LiGvW+sQ7IEdm/YISSFzybpfKkj+b8RrjJOBgrFYY+zCTgLVpwvnp03k7VIhPsLdQ+/9vtYrrRTkzNBAVvI5faldB4NgB6xOlBlHxCAk7tnuIpUXt0Wd+Xi8T44tiwyPatdSeRsDo+/rN28pSQYad5Aj46cnrlNcyaqR6anoEjCoqj/+4ViUFwf2w6NlSBgLYiXnsh7XyTKsylk7aoVUWw3OlNXcL+JdHG0it4rkNLRwyRsFBSns/vPnHFulQNcLw/YYGcbsI/iOokubNeRR+LrdvS7IFbHCOD6v6m351Eo2iFWXQS12L47NPelT3KYqEBOzPSpt4jxUIGNPXvASRESqYDUSFXKtNRv6bQMCwToe0LSfY1nqzU2XpNW65TOhXVxbvPO4xlAcJMx79fq0iajQQ7t73Oqi/Q/aSQ2eqv6dPk1oypEutagP3GrfCIwHjno6jlsiMwY2TfXDdCRj3Pf7TOmlUKq9PBR+CiSn7MhcBWFOP/rBGutYsIl0NhPCYIe2ZS9fk6Sn/fbBCBncCXjWspWHrzj3xhrfMdMGYMwyDmdGxaschuYZwIcg3vJPnoyRsn6O2+Di3tJI4BkO8s17qWhyfje5b06eUvyTgYKx8GPuwCgFjylo8bjCnr0fAiEPE2TPOThHkjm1qZMDBA4eCDO5p8SAPnCiQ1EPz2nQlYHg4lh42S4kdkT2jitu7p0bhhK1tPQsVaeawJTfmPv0zZQ0DdwJGrmo8zMgdzJZyEYA+PvnTOpU+0VNseqjRQflOhEfpFWjBkc3L06MTbeHuPXFR6fycLUeVaHtGtDcc6oNn1fXZ9Od81Fc88LHbefQymfhgHcmZ2XMRGmShe37aBln1ciuPGcyQwnfEzG3yZd+aicTALhw+VvRS12qGAZxWjTYSsFGkLHKd0wkYmXZecrOAET+IWF28CEDA+NJENRQk4vDkSewaRoClcyVgvAzLvzpbrWiRXJlkyYst1N+xtT2pf13dc1l4tV4GqXsJMXAl4C2Hz8nrM6KVI4cTUhVa5BGwrRjQyZd/3aTK2uGjL9yxwkjPujLmlKRLm1oK58yorFmQ1sVrNwVRAxULZk9iFSK05rmpG1TKzYVDmhvGHnHuCAXUEs088dM6eb5N2ZA7pCF3NZwpkzsaw8fBcz+vl0971fCYKc9TFIX72bYrIN2+WqZCFLVsYEbAIgEbQclC1ziegH9YK0Pbl5fG7/+3BY34QySs+GfbUXm9YyUVr4uzlmW7TyZy9HBdJvctclcCRvrNSq//nWABr3i5pfo7cst+06+2ZE6fNsmKPztlvXqo9ZKwu16sETDGx5Y2vLYRfsFGBIAA9OKDv7erGrrvdakS1vrCr/y2SXrWLiblC2ZTuzKQIXWqVCq+t3DOTJIlQ1K9RzgRLPcJ/er4lOXLPdNbz7HLlT+GL9ahPxqD0pHw5sbRWFqUY9JpyGaFCAp8UCO9pl7zlEcguQx2WnSGLx9WJGB/VtnEe6xEwCjAPWVA/aC+RJBabliHitLovfkKZThhIUYX23YLtx9XaeEenrhaJd5YvvtkolAH92XRyBCVWB6aGJVwBoySalXfmKMuR/asqFdaqb/DssaWk3uZOYRo4Pz3zycae7VatDGxVYUUhXAKYSMC7gjA4Q/6C+e/UJOSNjaKR2AHBznSjTYkjBn0/Vqftp/Rt3uxkU6oIPZ4Y6PDBnQd6hPXKJorUXU01w61JCF/bDwsE/vVVV7N7g2FFbTc866/JVfH22gOANf+SMABLXX4b7YSAeOM9fNeNXQV2F9kHv1+jbx6V0Vp6ELAyMiFjDo488VvqMjyzj2VZXnMSTlx4ZpKF6fXtAdC83jWzrDgIV3jrbnqlpyZ08n61+KSb8CLEpmz3HNhIwsOnC+Qhctbw5hIi4ePkx8fqa/qqLIRAT0E8JGGPOxj7q0V1GfIE9rP/bxBHm0WKaXze/bid78XZTMf/t9/H69GV9K13Ca23nuMXZ4oxthoP/5ch/Pbl37ZlOCA6d6HVqkJliqOo/Ri8fHxrCX+cb0fBSAQ440KWO6NBOzPatnsHisRMBymHmxUIqihBYMmrZHXJ0YgAAAAIABJREFU764oDUb8ZwFnz5ROHmhQXOC9COtYI2mUI0yuwormJKYRcMy77ZUH8/HzV6XOO/PUymfLkFY2DW+r/o44PuSczpctQyKtGDl7mypr2LKC9ww3iFHuVL2w2t5iHV2bPVwmiItY9k/n7ZSx99VShQ5C2Z6avE6QTKOES9ESb+Mh3SsyQmkRBN6u137HrtOmg+dUkRNsCz80cbXHEp5G+/TlOrxHnm6tn71vyur9cvOWSKfqhaTnuOW6kQ3IeYC8A4i6cG0rY06qWP7HmpVK4uhFAvZlhWx6rZUIGOckL0zboLLC9GtYItnwHKNw48GBo1X9Ef+oW7AFDSuyb71iErXvtLzcvoIqiQZHrah9p+TcZc+5V90JePe77VUMLs6/6r0b13/GdKll21vt1N818i+YI1OCuOos+culhpPQwxEDTi3TBjXQPVMzigOvSzkIIMPaa79Hq90klP0LVRv8w1rl/FU0t/EEOrD2+ny90mcCdt2qxZEPxp708H8xxqGao9YvtvdnbDiku2uFimZwikQsL+KTG5fJkyR9JMqO/rXxiDrycm1Yq++W7ZXf1h+WjW+0SXRcRQIO9apaoH8rETDgQJIJJOXYdOisoGZvoZz/kZc/cCH92/C7KyciYGwTowg2toIRzgOnkOfalJWovacFhbm1ot/u4+GBwPY0PDDRdr7TTnkoxp69nGBh40Hc8XYcAWvE7vqC2njwjCCUCB6TRlr3MctUwgWWGTSCFq/RENh17LyKww1l1qwB30Upi841IY23FcAuU/cxy30mYFj2a/efUVXGcOTz7M/rZUJ8UhxvYwbjdy0kCc5j7kdKqKqGY60uNYuoZCHw8oYvi6vzlGbp4oPftWFrGtY8HNjcHdNIwMFYOYv3YTUC1uBCVaI3/tgsA5qWkrurJc2TahRWvCSQ7UqzUGEBI24RZcw2HDwjQ9tVkGemrFdhSSgWgYxZyOWs1/BAICsOtpLQtr99pwoxQoo87YwZmbB2vtNe/Y5MV0+7bdEhgQAsfBTmNtLwcHepWdinYHwj/fIa5yMAvXz0h7UypE053XJ3gSIA4hjZrWqisp3e+oQl2fvrFT4TMLLUrdl7Sp5tU04d+aBiUbDSRHqTWft98qr9cuby9SRHQXCAy5s1vToqQsPuQ+PSeaWNS6EInPXizwt3Jj7rhXNW208XScNSeaR9lYKJ3j0kYKMrY+PrrErAgBTp7F77LVoypEsjr3es6Fc5Ns3Bqm78FjEIOE+W9CrRevShc2oLTXMmWbvvjNy4ddtjhilsQZfKl0Wmrz2kVnzbW3cqmeCkoYU5YUsaW9Nocf2WSggbQrgSQolmPN7Iq/ezjVWKolsIAViLA79fI/c3KK6b8D8QUVX8fO+aPjl8gUjhbOnrGTCy1K3ac0qea1NOkAb2jRmbvSaxCWRuevd6Ckkau3C32oYHgaIhCcnDE6NUNSUtBNH1A8K175jjF6TFRwtVdTg4l7kSNAk42Ctowf6sTMCAC1s/U6MOyk+r98uH3at5zcvqDrGW0LzuO/+dASNUqGO1goKvTyg8zp0fbhyptqTRetUtprtS7gS85c226gHDtpOW6hJpmWNGxKWoRO5XeFtrsb5jFu5W57j3ebCwLageFMkBCOBYBWemLcrn93i84s80+3y9Qr6+v7ZPvgn+WsCIWFgeE+ctjOft/dnbVPKccDcUgaheNIfcWTmObNH0SiMiymHTwbMJlc5cvbhdZdbeHd88UFtmbjqSqDyjP5kBGYYUbo0IcDyrE7A2PVQnGTJtozzYsIRK82i0oRgDwn00L2VYwPBKbl8lQmXWwQON7SyQIsokIta+Z51kCDhvFpm+Ls4Cjh7eVsUUI61k0w/iEn24EjCyFMHZq1KhHALrNy50oiErFhldPF4XNATgW4EPTZQyfLpVmaDswCSX6c2T4Pigxs5Wtoy+hdO5buEipSX8RIz6UQQNRBFBMQykwURIoNb06vZinghdQoUyHKO5Z/LS7tUcOLEr5u4bQgIO5spZtC+7EDDgw5f8a79vljSpUsnwTpUMbUlrSTZqvx0XJgQCLpA9g7SuGCF4kJ9vW060jD4bD51RTlV6lUlwb+fRS6V47szKYxFN81pEP80+XKD+LVUq5LiNs4BxFoSE+dWK5pQRM7cq671HnaIW1QSK5XQEkADm7b+2CkoFDr+7UsAJb/A8/DKoYVCiFbxhD+9pVDVDYRV8OH+1YHcia9Hb/cH8HWGL2DLWEpB8PGe71CqRW9Xjdm1aqtAr128pv5OCOTImSWmJsMeab82VBc83k4/n7pDPe//nnMkt6GCumkX7shMBaxBOjTogk1cfUOkji+VJPgQCBAxHkVouBIyCCS0q5I/zWGxTTl7/PVo61yyiPK+RJxoOWnoNydGRd3dW9BH184bX2qjzLySJbx5PwPh37XwrrmRaQVUhCdl0fuhfLyiWh0VViWLZAAFYZt8u3SvYEv20Z3XJH0CssD8Wmr8QYet6wY5jymkSdZEnLNmrsteZ0eDR/Ou6Q/Je17jxsR3epHReaVg6r644yDeAdJX3VC8stUskLr+IKmtV3pgji19oLiP/3q4ymWnNH3y5BW2GRgQwph0JGNNFYYKXpm+Up1qWSTahBTw1P3Aj4EI5M0rTMvmU9zK8KpFUHp7Jmw+fVVvKCCfQa3AewRbzv9uPq5/XvdpahSTsPn5BWn60MOEWjYBR+aV28VzyxfxdqqyYL/GSASwpbyUCXhFAOBAcmYZ1qOB3UXt/CMKrYB4uAIn9u+2YChtE6A6KJCAvuhkNHzFdvlom3z4QF5KE57xl+fxSL9JYZIOrzFohlyUvNpcRs7Yl5JLWwp6SqyeuN3cSsBkaEcCYdiVgTPns5evKoxIJBzxZwkgH+VGP6mqbB61akRxSJFdmaVg6jxw7d1WVJXz7zy3StnKEbD50VmWj8XTGjJAmnF+haAPamldaSZ6sGQQxl60+XpSEgPFl/OvaQ/JB96rSpEzi7akAloy3EoGgIIBwnuenblDFFJDRCh79vrRwEjA8oOdtPaoS5yCr1PS1B5Otv+vLPPy5FtmvTl28rqIc4na6IvzK4Hfz1m2p+Nps+ff5ZvL2X1tkdN+48qSoEYxiLtMebeiTeCRgn+Ay/2I7EzDQw/ktkmpULpxDF0yt0pGWq7l8RDYplT+r1I/MI6hnijhdnM82L59fWdV5XOL53DtEAo5Dpy+phABoKLoAj+qdR89L60+SEvDcLUcFccFIpMFGBKyIACytH1bul6lrDqpQv5rFchkWM5wEDIv97+gjqhgJ4vVRxs89q5RhwYNwISxX5GdHlaQ3/9yS4Ovhb9fuoVUIeXpw4iqZPKCBT12SgH2CK2QXdxMRsAT89EcmN4rdCRjbaHdXL+TxxQEL+bNe1aX6m3EWcGS+LMorGVvDZy5dV7lltTOcLbHnVP7cjh4Sf8BaAEnjOrRVw1qqGqhaML2Gs68xjiHTAnZMBAwiAH8IEEmW9GlkyJ3lVTlBby2cBIzEPPC9QPEUnMHOj9+O9iZjKH//4O9tUiZ/Nlm195T0qevZCDAiw7FzV+SV36Jl3P211eVwzkKCoP89VNfI7QnXkIB9giskF4N0sYrjRAR18SLj/647mN0J2Nv5CxK/f9GrhlR7M65cYJFcmRRZ1yiWU85fuaG8GT+as13qlMitiLRgzoweExYgixUqJsUcv6j6WvlyS0XYW2PPSbvPFifgSwIOiV6z0zAgsGzXCflo7g6pVCi7SruKsCVPLZwE7Gr1QsYlOlmlwgBPoiHOXLom936zUpEwCqV4q+2dnHzu2b0QEvnLmoMJccRG50YCNopU6K57QURiRGRaPPm+LyLdPQ1ndwLGV2iDyLweU+0pAu5dQ6oNjyPg/NkyqLRv2LLGNs8TLcvIJ3N3SPViOdVWMs6HtYw27pjhrAfxfIgFRFs+tIWg0AKs4vafk4BDp9LsOZwIYFt6wY7jKi41dapUKma+VYUCyt/BtYWTgFG0YMb6w6qwCioqwSKGA6XZDVmwPpm3Q/58oklCxjt/ZMJx2AvTNso3/eqo21FjOLnSqJ7GIAH7g35w7xkrIlNRwxrlaeP/3tqpBIyA/GpFcqozXL2m0uX1qZlAwCjE0LxcfqlQMJsq/PB4izLy+T871Rf/zmMXpESezImy3Lj2ia1qhEDhwUBb+lILtVUHr8y7vliScCkt4OAqNHszDwFECmDrF8UQcGSDWFYUX0AGOPzb7KebhkU4ZKn7PZ6A4Q2NkEHsXpndcBbc4sMFqjRicrsF3uR0LzCB91qVwjkMlSx17ZsE7A3p0P/uSsDYfsb/uxLwYBTq0cSIiIioEBsbG3qpQjQC0sCVyZ81UeJz16FAwF/2rSlV34izgDOnTyN3Vo5Q20a3bt9WVYa0PnYdv6CSZbR1SaLu2hceivGL9yhPaDTE7iG0CCnnOo4iAYdoidmtRRBAIo8j566oyj1IioPkEuUjsodFOlfP5zmbj6iPZatUCEM2K+ysuVY/8hWUs5euy5OT1yWc+eL89/EWpX1OvUsC9hX54F+foragv14Uo0oWIuGFXrt3/Er56t6aKtgdLW3qVKpqCZyxkLXqsWalVVadknkzy+7jF6VsgWzSumIB3b6Qy/nDv7ergg1oi4Y0V+FPKDF496ilCffQAg6+UrPHlI0AnjHkhEdls1mbYmX/qUtJskrZGSH3GseoA/7DI/V8TltLAjZfC+CEBecreD873glr4tI9ycbu9h2/QsbeV1sqv/53wsp0r1VEiuXOrFLxIY5v3KLdUjhnZkFlkoqFsnvc9pmwdI8M/2NLQj9IH1cibxaVQxpp47RGAjb/IaAEzkIAu0xTovbL2/dUkT82HFZWOJzEnNKwqzZo0hr5vn89NSV/0lDiPhKwNTRiQLwjluPDkL5fsU/Sp/Wcv1mr2FLJhYB71C6iCDdDutTKexH1PFGgYc/xi1KlSHZpUV7fAkaFEzhKaG3+c3dIZL6sqopS59HLSMDW0H1K4UAE4Gfx46r98m7nKvLbukNxSXgalnDMTLGlj8ptWpEHErBjljb5idjdC/rn1Qfk+q1b0rdecd2JIpvMN/1qS8XX/rOAe9YuKgVyZFQxjwPvKCWwopHTed/JS6pwApy09Nrs6FgZ9P3ahJ/+ee4OdUaDEAkE5dMCTiEPDacZdgSQJvb7FftlRJcqyhHy6o1biYrXh12gIA8IZy4kDdISb5CAgwywVbuzOwH/uu6gwIGhXyP97ShXAsb5L85ve9ctKnmyZJAcmdLJI00jZdLyvZIpfVp1rlSreK4kVU20tUNNUsT9aW3es02ldP5sKiSi25jlJGCrKjnlsj0CiLX/bvleVVp08qr9aj6e6nbbcbKoUHXfN6vk54Fxma9IwHZcRT9ktjsBo8pI7Jkrikj1GioYTehXVyq8NltVOrp8/ab0rltMcmVOp7w4+zeJlB9W7pN0qVPLgdOXpG7J3B7zNruf9c55pqly2kKavO4kYD+0j7cQAWMIuFZAGjV/p5QpkM1jtIKxHq11FXI/47hs6qC43M8kYGutT8iksTsBeyp0rQHWc+xy5dpf/tXZinRPX7oufesVk6wZ00q+rBkUAeOLGn7NB09fUpVhGnkoK+Ze9Wj2001UGAZS4/Uct4IWcMi0lB2ndASQpe6bJTEysls1GTJ1gzzcpGTYQqDCgT2KMvQYu1x+iS++QAIOB+oWGMPuBIyg/I0Hz6qcznoNSv1dPAEjaQayWN1bv5hKJIA0kvCkhHMVknLgtyZl8nosz4Z8rXXf/SdhmJlPNlFe06hV2vtrErAF1JkiOBQBZKkbtyhGPuheTfBRPeHBOuoZdkrTShz++lgjWsBOWVQj87A7AeNcFrVCn2+rn5aux5jlMql/XSn3ymwplS+LivW9v0FxSZs6tcoL/VDjkirn6sVrNxQBwwELlZL0mlY8W/vtzycaq5SWy3afkD5f/3c2zDAkI5rHa4iAcQRQ8vOrBTHyUY9q0mnUEvn98cbGb7bJla5WLy1gmyxaoGLanYARoP/q75tlaLvyUq9k7iTZaLqPWSY/9K8vZV+ZJVWL5FDWcr+GJQRfnCXzZlHOW8i7evLCNZXlJ7nC2lrxbA3zPx5vLFWK5JClu05I3/Ek4EB1kfcTAU8I7Dp2QUYv2KXCkO6Hs9Ig38r02QFZErBIKjssVDBltDsBAwukqZsSdUClhESaybuqFkzIywoCRmxdmWGzFEGv3HNKbTuDTOFAhVhCBPYjnRz+tKkUoSoj6bUbN29J6WGzEn5CLVCELS3eeVx5MGqNFnAwNZR9EQFRSXJGzd8lg1TinBj5sHs1x8FCAiYB21qpUd0ITlkfz90hSJKBTFdI6YZE6SDgZuXyyYLtx2VA00g5d/m6Or+9v0EJmbkpVlAPFdl1UPmlVnF9AlZW89CZCRj9+lhDqVEsl0xasU9e/S2aBGxr7aHwVkZgz4mL8tm8HapSGRyyUMXMaY0ETAJ2hE4j9vfbfnUkU/o0KkHGlAH1leUKcp256YjKfnXiwlWpViSH3NeghMyOPiIxJy4IanJ2rFZI1Qv21Eq89Jf6CfHCwzpUUNfi32BVI5Tgu+X7hBawI9SIk7AQAntPXFRl/1AhCFnrkM/daY0ETAJ2hE5rNYCRaKPL6KUqtq7UyzOlV52iMnn1AXmsWSk5cvaK1CieS+6rX1zmbjkq24+cU2UG76lRWKoXRRVH/aYRMDypO9corKxl/NvTrcoIqsV8Pn8XCdgRWsRJWAmB/ScvyYdztkvhXJmkSem80tBDqKCVZPZVFo2AsdOG1La/DY7ziPalMRe0L2hZ4FonnAG7w9j/f6vlva5VJW/WDNJ59FL5ZVBDiXx5pgxpW04l4UBRhb0nL0n9yNwqheX8bUdl08FzcvLiVelWq4hULeKdgB9oUFzuqlZInReDgJ9tXVZl2UJtYVrAFlBsiuAoBHBEhHrcqHzWqkIBlTDHaU0jYPia9Bq3QqbFxwT7Mk8SsC9oWeBaJxLwo9+vkVfvqqgeVig1zmpxdgsCRg3RT+bukJ3Hzkvj0vmkT71isnDHcZXP+dTFq9KrTjEVWuTNAn6oUUlpW6mA1IvMowj4uXgC/owEbAGtpghOQwAE/N7sbaru7l1VC6kjIKc1jYDhIPrAt6tkSnxaSl/mSQL2BS0LXOtEAn7yp3XyXJuyyhNaU2qQpEbAsFJRXaV5+fzKIkYs8fKYEypLVp+6xgj4kSYlVdWk5btPqG1n9I0z4E/n0QK2gFpTBIchgBj9d//aKnmypve6S2XXqWvvKpQmHDgpSoVP+tpIwL4iZvL1TiTg56dukEF3RKpCCXoE/OW/u2TtvtPSumIBldAdiTQW7TihSpzhTBje0d4sYDhyNS2TV35afUCFMYGAb9y8rRxFuAVtslJzeMchcPjMZXnrzy2q9jf8LyoV8rxLZdfJa+8qFJd5YvI6lcHP10YC9hUxk693IgEPnb4pgUhdCfiFO8vJY81Ky1cLdqvsWfCK7lmnmMrl/M+2Yyo0qV+jEsnmmNWcsAY3LyUNIvOq/LT/bj8uz7cpKzdvCQnYZH3m8M5EIPbsZRk+Y4tkz5RW5W9HDL/TmvauOnnhqgyZtlFFcvjaSMC+Imby9U4k4Nd/j5YuNYuoJBmdvlwqSJgB4tQIeNyi3ercF6EMPWoXVeUEZ0UfEaSa9PZwawT8ZIvSUrtEbuV0FbXvtHLCQkMMMi1gk5WawzsOASTJee33aMmSPq0MblFa1eF2WtMIGDnnh/0WLV/fX9vnKZKAfYbM3BucSMBv/7lF2laOy2ilR8DjF8eo0CN4PHevXVTW7j8tM9YflvNXbsijzeK2rr1tQT/ZsozULJZT3p25VXYcvSDPtCorqVOJfEQCNlehObojEdBICSVFn29TTorlyey4eWoErG23f3VvLZ/nSAL2GTJzb3AiASNcQYsV1NuCRhjSXxtj1fkvSBipLEHUyAP9esdKyT7cmgWMuF9Y2C9M26gSeDzVsoykTZ2KBGyuOnN0hyJw7PwVeXl6tKRPm0qGdagoqGzmtKa9q7SQq1F9avo8RRKwz5CZe4MTCRjbwLBOm5XLn8gJ68U7y8ujzUrJd8v3yvS1h9Q5cddaRZRH9F1fLJE6JXLJF71rSkSOjF4tYGw5Vy6cXQZ8t0bF/2JLOn3a1PLhHG5Bm6vRHN2JCCBz3Uu/bJTUqVLJ2/dUlvzZPT+jdp2/RsBa2s1Pe9XweSokYJ8hM/cGJxLwqPk7pVxEduXl7GoBawT8/Yp9MmX1AXmwUQl1Vrw19py0+2yxlI/Ipgo35M6S3isBw+kKYzzyXZS69okWpSVjujTywd/beQZsrkpzdAcioDkmYWofdKsqebJmcNwstXeVa+lFXydJAvYVMZOvdyIBj124WzJnSKsKJCCtJFK6YetYI+AfV+5XBRQGNo1UqSd3HD0vbT5ZJIVyZJQ5z94hWTN4LvStbUEj7KhQzozyzJQNagXhFd2wVF6ZGnVA/PlyNVkNODwRsDQCpy5ek+d+Xi83b4t80auG5MicztLy+iOcRsAzNhyWHUfOe6xxnlzfJGB/kDfxHicSMM54Ubrs5MVriQj4pXblVSGGKav3yzdL9qisWPCERq3RVh8vVMS79tXWaivZU9MIGGSeOX0aeX3GZnUp8ku/cGd5E1eSQxMB5yJw5tI1eXrKerl245byDs6SzEeyXVEAAePDHpn85j/fTKXS9bWRgH1FzOTrnUjAk1ftV3G+e05eUuhqYUgaAcNK/WrhbuU4BQLGmUvzDxeoa/eMaC+pUnkuC60R8NB25eXqjVsq7AgNZ8sgZTYiQASCj4CWnAJpGpGgAsc9TmsgYCQQ2nPiknqf+NNIwP6gZuI9TiRgfCUjJKj72OVy89ZtmfF4Y7UFrRHw9LUHBTmbn2tTTu6uVihhCxrL4C2GVyNg5JqGt+LEZXvV6g28I1KGtqtg4kpyaCLgXASQpe7xH9fKxas3VHWzNHjAHdZAwA81LikIuUI+An8aCdgf1Ey8x4kErMHZY8xyQV7VmU81SUTAv68/JCNnb1eEjPq/mw6elY6jlqjbjBLwR92ryazoWFm666Rcvn5TBjSNlJfbk4BNVGUO7WAEkCTnsR/WyrkrN+S3xxomu0tlVxhAwPfWLy6Xr91Qdcr9aSRgf1Az8R4nE3Cfr1cIwhfmPHOHImBsGw+8o5TK3fz2X1tUxSRUVoGVPGTqBpm+7pBXAp65KVa9CCb0qyPvzNyqvshjz14RFGdAfCIbESACwUdAK1Bw4epNdaTkxAYCRma+NKlFpcj1p5GA/UHNxHucTMD3f7tKDp6+JPOfa5aIgEGiSGv3ZqfK0r5KQYX+xKV75I0/tnglYJxBlX91tvKsxgMDL+v1B87Iw41LKkJnIwJEIPgI4EMXIX8XrzmbgDvXKCzZMqZV4ZH+NBKwP6iZeI+TCfihiauVh/OiF5onIuDZ0UfkpekbZUTnKtIunoB/WrVfUMTB2xa0RsALhzSTOz5YoJICvPJbtKA+8GsdScAmqjKHdjACl6/dFDzPOO7Bx68TGz7oO1QpKAVzZlQ7c/40ErA/qJl4j5MJeMB3UbLp0FlZPrRlIgJGHugBk6Lkmwdqq5q+aLOjY2XQ92u9EjAcvMq+Mku2vXWnsoQXv9Bcmoz8VyX1QBpLNiJABIKPgFakHpEHTiZgJA8qkz+rtKkU4ReIJGC/YDPvJicT8Mdztsvn83cpUsUZ8Mvty8uApqVk/raj8tDEKIke3jYh6cbeExel2YcLvBLw9Zu3pMywWeo63FM8T2YpOXSm9GtYQt64mwRsniZzZCcjAAKu/uYcKZA9oywc0tyRU4UF3LRsvoQ0uv5MkgTsD2om3uNkAsZDe/D0ZSmdP2siAl6w/Zj0m7A6EdneunVb3vxzi1cShcNWqZdnJrq35NC/5P76xWV4p8omriSHJgLORUDbeYKF6E+ZPjsgAwJuUCpPQiEZf2QmAfuDmon3OJmAXWF1tYAX7TgucNDydt6rtywg6kg3AgYh96lbTN66hwRsoipzaAcjoO087X63vSNjgLF0eEchB9DUgQ1UrXF/GgnYH9RMvCclEvDSXSek7/iVfhHw7du31ZazK3mXGTZThQ+807mKiSvJoYmAcxG4cfOWlI4/+nHqLLUkPzMebyRVi+T0a5okYL9gM++mlETAw9pXkEeaRkogFrD2pepKwHDKQl3hd0nA5ikyR3Y0Ano7T06b8Jp9p6TrV8tl1lNNpELB7H5NjwTsF2zm3ZRSCLjuO/NkWIcKKvfz35uPyMBJa/yygPUIuNwrs6RLzcIyoktV8xaSIxMBhyOAdJQ5MjmvCpLrsjUd+a9MeLCOlMqX1a/VJAH7BZt5N6UUAsYXNM5XUGgBqSifmrw+aARc/tVZck/1wvJeVxKweZrMkYmA/RF46ZeN8mybspI/W0a/JkMC9gs2825KKQTsijDKEb74i/ekG55WBWc1rlvQFV+bLR2rFpL3u5GAzdNkjkwEiAAJ2GY6kBIJ+PCZy7J453G/8626E3Cl12arlJYfdK9ms9WnuESACDgJARKwzVYzJRJwoEvkTsDII10qf1ZpUiZfoF3zfiJABIiA3wiQgP2GzpwbScC+4+5OwL73wDuIABEgAsFHgAQcfExD2iMJ2Hd4ScC+Y8Y7iAARCD0CJODQYxzUEUjAvsNJAvYdM95BBIhA6BEgAYceY28jDIi/oJaIDPR2MQnYG0JJf0fZwhFdmPXKd+R4BxEgAqFEgAQcSnS9991KRGLi/7wQf/nI5G4jAXsHlVcQASJABOyAAAnY3FWC9YskoiDdbiLS2psVTAI2d8E4OhEgAkQgWAiQgIOFZOD9jBWRuSIyza2rwSKCP1orIyI7Ax/OlB5yichpU0YObFC7yo1Z21V2u8pNzAN71vy92676UlJEMvk7abPvS2W2AEGstftWAAAGxElEQVQaP1JEXvRm/caPtUVEKgZp3HB3Y1fZ7So31teusttVbmIe7rdK3Hh21Re7yq1AtwMBa05W7mo5zuUf3o8nYCOqa+cFs6vsdpWbLyYjT1Twr7GrvthVbup58HXYUI92IGBvE8HZ7zwROSMicMrC35NrfEi8IRr834l58DH11iMx94ZQ8H8n5sHH1FuPdsbcFhZwcgsAwp0qIqdEJLeIjIh3yEruHpwHf+ltVS36u11lt6vcUAO7ym5XuYm5OS8fu+qLXeW2zRa0OerIUYkAESACRIAIhBABJ2xBhxAedk0EiAARIAJEIDQI2J2AvWXBwvkwzoZrxm9Nw1t6d3ziDiCK35BBy/06/Kb3b8FahWDJrdcPwrHgEd5DRH6On2Ow5EY/wZJdT06rY97dg/5YDXNX/YXOaw6LVtdzT3LbQc89yW51PdeT29N70op6jgRMa13e8Z7e3aF8t/j9frUzAXvLggXSrR3/8sG1UCpkzdKctPD/+IPzY/fronT+zdXr2m/A4x3FksveZVRuyKDXjxYnDBIOlszafIOFOdbAXU69eQdL/mDJDRzc9UdvLoHoh/u9/sgO/YVPBGRDohp8jOnptNX0XE9uTcfxX9dsd1bTcz3Zob9W13NPmNtBz6ETSL6Edx0+0vAux7+F830e0LNuZwL2lgULDysWA4k5QLQIVYIFozXcjwdE77rVXu4NBPRgye2pH3zpuScjCURe13uDJbv2leoqp7f1CmQOwZTbXX/05hKIrO73+iM7XkhwTmwZ/zLCi0kjctfnwWp6ric3XqZ62e6spud6ssMyc5fTanruSW476Dne79jRxHsc+u26QxUuPQ/oWbczAbtOXC8LFv4NLyHNCsDf8bWEBkLGQ40HRO86LKynewMC3O3mQOT2NH+9LZlgyqz1Fajs7nImt17BlD9Qud31B/9vRczxwQny1iID7KLn7nLbSc/1ZLeDnnvC3PU9aUU9R+ZDNKQiBgHjY0Lv3R2u97nP7yknELCnLFiuLxxcg//XCNg1cYfeda4L5n6vzyB7uCFQubVuPfXjajkFS2ZvYxrF3FUeTc5SLh89VsfcU+IXq2AOS2BovHWg6T3+Tfuo1PC1mp7rye26FaqX7c7KmLvmJLCqnieHudX1HNXvNJ0Avni/Y7fHDD336x3rBAL2pCTJbfWsiXe+0r7q3LeqQ7k1py1UoHLr9YPtLpz9uW7JeC3R6IfmBCq7npyac5ynIwM/xExyS6Byax266o8VMYf+QgfgZKgdv+jptNX0XE9u7djIde3sgvkUnefRanqeHOZW13PoBnxH0HBUgY/4kzrHh+HQc7/eT3YnYL0sWNha1jyfsS2hbU9o3qD4/R8XAsYCul8HxwS9e/0CWeemYMiNbt370ZwQMH/NczRYjkzaNIIhOzDHR4+rnHbBXE9/3OdiNuaQUSNgrBt0QQ9fq2GuJzfmYQc994S51fXcE+Z20HNX/YXBhY93yB3u97nfvGBnAvaUBQtfmPgS0l48eAC0MCT8Gxboax2HLPfr8NJy/ze/gXa5MVhye+pH8was40N+bKPzCpbs2trgg8FVTqtjnpz+uM/FKKbervMXc20HCDsiWjiaHr5Ww9xdblg2etnurKjnnjC3up7rye3pPWk1Pdf0AB/z2pZ/OPXc2/Ob7O92JuCAJs6biQARIAJEgAiYiQAJ2Ez0OTYRIAJEgAikWARIwCl26TlxIkAEiAARMBMBErCZ6HNsIkAEiAARSLEIkIBT7NJz4kSACBABImAmAiRgM9Hn2ESACBABIpBiESABp9il58QdhoCWnAJhIoh5R5pV10xMDpsup0ME7I8ACdj+a8gZEAHXql6IeUdCAhAxYiPZiAARsCgCJGCLLgzFIgJ+IIB0jUh/COsXTcsKBCIGIWv/7kfXvIUIEIFgI0ACDjai7I8IhB8BzQLWKn7BCgbZIsORlpISRRlCkRc8/LPliETAIQiQgB2ykJxGikZASyWItJ5aiTac/7qSLsjZtR52igaMkycCVkCABGyFVaAMRCA0CNACDg2u7JUIBAUBEnBQYGQnRMCSCPAM2JLLQqGIQBwCJGBqAhEgAkSACBABExAgAZsAOockAkSACBABIkACpg4QASJABIgAETABARKwCaBzSCJABIgAESACJGDqABEgAkSACBABExAgAZsAOockAkSACBABIkACpg4QASJABIgAETABARKwCaBzSCJABIgAESACJGDqABEgAkSACBABExAgAZsAOockAkSACBABIkACpg4QASJABIgAETABARKwCaBzSCJABIgAESAC/wfdi+ru8pFZBAAAAABJRU5ErkJggg==\" width=\"640\">"
},
"metadata": {}
},
{
"output_type": "stream",
"text": "\n",
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"text/plain": "<IPython.core.display.Javascript object>",
"application/javascript": "/* Put everything inside the global mpl namespace */\nwindow.mpl = {};\n\n\nmpl.get_websocket_type = function() {\n if (typeof(WebSocket) !== 'undefined') {\n return WebSocket;\n } else if (typeof(MozWebSocket) !== 'undefined') {\n return MozWebSocket;\n } else {\n alert('Your browser does not have WebSocket support.' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.');\n };\n}\n\nmpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = (this.ws.binaryType != undefined);\n\n if (!this.supports_binary) {\n var warnings = document.getElementById(\"mpl-warnings\");\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent = (\n \"This browser does not support binary websocket messages. \" +\n \"Performance may be slow.\");\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = $('<div/>');\n this._root_extra_style(this.root)\n this.root.attr('style', 'display: inline-block');\n\n $(parent_element).append(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n fig.send_message(\"send_image_mode\", {});\n if (mpl.ratio != 1) {\n fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n }\n fig.send_message(\"refresh\", {});\n }\n\n this.imageObj.onload = function() {\n if (fig.image_mode == 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function() {\n this.ws.close();\n }\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n}\n\nmpl.figure.prototype._init_header = function() {\n var titlebar = $(\n '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n 'ui-helper-clearfix\"/>');\n var titletext = $(\n '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n 'text-align: center; padding: 3px;\"/>');\n titlebar.append(titletext)\n this.root.append(titlebar);\n this.header = titletext[0];\n}\n\n\n\nmpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n\n}\n\n\nmpl.figure.prototype._root_extra_style = function(canvas_div) {\n\n}\n\nmpl.figure.prototype._init_canvas = function() {\n var fig = this;\n\n var canvas_div = $('<div/>');\n\n canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n\n function canvas_keyboard_event(event) {\n return fig.key_event(event, event['data']);\n }\n\n canvas_div.keydown('key_press', canvas_keyboard_event);\n canvas_div.keyup('key_release', canvas_keyboard_event);\n this.canvas_div = canvas_div\n this._canvas_extra_style(canvas_div)\n this.root.append(canvas_div);\n\n var canvas = $('<canvas/>');\n canvas.addClass('mpl-canvas');\n canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n\n this.canvas = canvas[0];\n this.context = canvas[0].getContext(\"2d\");\n\n var backingStore = this.context.backingStorePixelRatio ||\n\tthis.context.webkitBackingStorePixelRatio ||\n\tthis.context.mozBackingStorePixelRatio ||\n\tthis.context.msBackingStorePixelRatio ||\n\tthis.context.oBackingStorePixelRatio ||\n\tthis.context.backingStorePixelRatio || 1;\n\n mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n\n var rubberband = $('<canvas/>');\n rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n\n var pass_mouse_events = true;\n\n canvas_div.resizable({\n start: function(event, ui) {\n pass_mouse_events = false;\n },\n resize: function(event, ui) {\n fig.request_resize(ui.size.width, ui.size.height);\n },\n stop: function(event, ui) {\n pass_mouse_events = true;\n fig.request_resize(ui.size.width, ui.size.height);\n },\n });\n\n function mouse_event_fn(event) {\n if (pass_mouse_events)\n return fig.mouse_event(event, event['data']);\n }\n\n rubberband.mousedown('button_press', mouse_event_fn);\n rubberband.mouseup('button_release', mouse_event_fn);\n // Throttle sequential mouse events to 1 every 20ms.\n rubberband.mousemove('motion_notify', mouse_event_fn);\n\n rubberband.mouseenter('figure_enter', mouse_event_fn);\n rubberband.mouseleave('figure_leave', mouse_event_fn);\n\n canvas_div.on(\"wheel\", function (event) {\n event = event.originalEvent;\n event['data'] = 'scroll'\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n mouse_event_fn(event);\n });\n\n canvas_div.append(canvas);\n canvas_div.append(rubberband);\n\n this.rubberband = rubberband;\n this.rubberband_canvas = rubberband[0];\n this.rubberband_context = rubberband[0].getContext(\"2d\");\n this.rubberband_context.strokeStyle = \"#000000\";\n\n this._resize_canvas = function(width, height) {\n // Keep the size of the canvas, canvas container, and rubber band\n // canvas in synch.\n canvas_div.css('width', width)\n canvas_div.css('height', height)\n\n canvas.attr('width', width * mpl.ratio);\n canvas.attr('height', height * mpl.ratio);\n canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n\n rubberband.attr('width', width);\n rubberband.attr('height', height);\n }\n\n // Set the figure to an initial 600x600px, this will subsequently be updated\n // upon first draw.\n this._resize_canvas(600, 600);\n\n // Disable right mouse context menu.\n $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n return false;\n });\n\n function set_focus () {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n}\n\nmpl.figure.prototype._init_toolbar = function() {\n var fig = this;\n\n var nav_element = $('<div/>')\n nav_element.attr('style', 'width: 100%');\n this.root.append(nav_element);\n\n // Define a callback function for later on.\n function toolbar_event(event) {\n return fig.toolbar_button_onclick(event['data']);\n }\n function toolbar_mouse_event(event) {\n return fig.toolbar_button_onmouseover(event['data']);\n }\n\n for(var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n // put a spacer in here.\n continue;\n }\n var button = $('<button/>');\n button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n 'ui-button-icon-only');\n button.attr('role', 'button');\n button.attr('aria-disabled', 'false');\n button.click(method_name, toolbar_event);\n button.mouseover(tooltip, toolbar_mouse_event);\n\n var icon_img = $('<span/>');\n icon_img.addClass('ui-button-icon-primary ui-icon');\n icon_img.addClass(image);\n icon_img.addClass('ui-corner-all');\n\n var tooltip_span = $('<span/>');\n tooltip_span.addClass('ui-button-text');\n tooltip_span.html(tooltip);\n\n button.append(icon_img);\n button.append(tooltip_span);\n\n nav_element.append(button);\n }\n\n var fmt_picker_span = $('<span/>');\n\n var fmt_picker = $('<select/>');\n fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n fmt_picker_span.append(fmt_picker);\n nav_element.append(fmt_picker_span);\n this.format_dropdown = fmt_picker[0];\n\n for (var ind in mpl.extensions) {\n var fmt = mpl.extensions[ind];\n var option = $(\n '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n fmt_picker.append(option)\n }\n\n // Add hover states to the ui-buttons\n $( \".ui-button\" ).hover(\n function() { $(this).addClass(\"ui-state-hover\");},\n function() { $(this).removeClass(\"ui-state-hover\");}\n );\n\n var status_bar = $('<span class=\"mpl-message\"/>');\n nav_element.append(status_bar);\n this.message = status_bar[0];\n}\n\nmpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n // which will in turn request a refresh of the image.\n this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n}\n\nmpl.figure.prototype.send_message = function(type, properties) {\n properties['type'] = type;\n properties['figure_id'] = this.id;\n this.ws.send(JSON.stringify(properties));\n}\n\nmpl.figure.prototype.send_draw_message = function() {\n if (!this.waiting) {\n this.waiting = true;\n this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n }\n}\n\n\nmpl.figure.prototype.handle_save = function(fig, msg) {\n var format_dropdown = fig.format_dropdown;\n var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n fig.ondownload(fig, format);\n}\n\n\nmpl.figure.prototype.handle_resize = function(fig, msg) {\n var size = msg['size'];\n if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n fig._resize_canvas(size[0], size[1]);\n fig.send_message(\"refresh\", {});\n };\n}\n\nmpl.figure.prototype.handle_rubberband = function(fig, msg) {\n var x0 = msg['x0'] / mpl.ratio;\n var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n var x1 = msg['x1'] / mpl.ratio;\n var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n x0 = Math.floor(x0) + 0.5;\n y0 = Math.floor(y0) + 0.5;\n x1 = Math.floor(x1) + 0.5;\n y1 = Math.floor(y1) + 0.5;\n var min_x = Math.min(x0, x1);\n var min_y = Math.min(y0, y1);\n var width = Math.abs(x1 - x0);\n var height = Math.abs(y1 - y0);\n\n fig.rubberband_context.clearRect(\n 0, 0, fig.canvas.width, fig.canvas.height);\n\n fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n}\n\nmpl.figure.prototype.handle_figure_label = function(fig, msg) {\n // Updates the figure title.\n fig.header.textContent = msg['label'];\n}\n\nmpl.figure.prototype.handle_cursor = function(fig, msg) {\n var cursor = msg['cursor'];\n switch(cursor)\n {\n case 0:\n cursor = 'pointer';\n break;\n case 1:\n cursor = 'default';\n break;\n case 2:\n cursor = 'crosshair';\n break;\n case 3:\n cursor = 'move';\n break;\n }\n fig.rubberband_canvas.style.cursor = cursor;\n}\n\nmpl.figure.prototype.handle_message = function(fig, msg) {\n fig.message.textContent = msg['message'];\n}\n\nmpl.figure.prototype.handle_draw = function(fig, msg) {\n // Request the server to send over a new figure.\n fig.send_draw_message();\n}\n\nmpl.figure.prototype.handle_image_mode = function(fig, msg) {\n fig.image_mode = msg['mode'];\n}\n\nmpl.figure.prototype.updated_canvas_event = function() {\n // Called whenever the canvas gets updated.\n this.send_message(\"ack\", {});\n}\n\n// A function to construct a web socket function for onmessage handling.\n// Called in the figure constructor.\nmpl.figure.prototype._make_on_message_function = function(fig) {\n return function socket_on_message(evt) {\n if (evt.data instanceof Blob) {\n /* FIXME: We get \"Resource interpreted as Image but\n * transferred with MIME type text/plain:\" errors on\n * Chrome. But how to set the MIME type? It doesn't seem\n * to be part of the websocket stream */\n evt.data.type = \"image/png\";\n\n /* Free the memory for the previous frames */\n if (fig.imageObj.src) {\n (window.URL || window.webkitURL).revokeObjectURL(\n fig.imageObj.src);\n }\n\n fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n evt.data);\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n fig.imageObj.src = evt.data;\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n\n var msg = JSON.parse(evt.data);\n var msg_type = msg['type'];\n\n // Call the \"handle_{type}\" callback, which takes\n // the figure and JSON message as its only arguments.\n try {\n var callback = fig[\"handle_\" + msg_type];\n } catch (e) {\n console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n return;\n }\n\n if (callback) {\n try {\n // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n callback(fig, msg);\n } catch (e) {\n console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n }\n }\n };\n}\n\n// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\nmpl.findpos = function(e) {\n //this section is from http://www.quirksmode.org/js/events_properties.html\n var targ;\n if (!e)\n e = window.event;\n if (e.target)\n targ = e.target;\n else if (e.srcElement)\n targ = e.srcElement;\n if (targ.nodeType == 3) // defeat Safari bug\n targ = targ.parentNode;\n\n // jQuery normalizes the pageX and pageY\n // pageX,Y are the mouse positions relative to the document\n // offset() returns the position of the element relative to the document\n var x = e.pageX - $(targ).offset().left;\n var y = e.pageY - $(targ).offset().top;\n\n return {\"x\": x, \"y\": y};\n};\n\n/*\n * return a copy of an object with only non-object keys\n * we need this to avoid circular references\n * http://stackoverflow.com/a/24161582/3208463\n */\nfunction simpleKeys (original) {\n return Object.keys(original).reduce(function (obj, key) {\n if (typeof original[key] !== 'object')\n obj[key] = original[key]\n return obj;\n }, {});\n}\n\nmpl.figure.prototype.mouse_event = function(event, name) {\n var canvas_pos = mpl.findpos(event)\n\n if (name === 'button_press')\n {\n this.canvas.focus();\n this.canvas_div.focus();\n }\n\n var x = canvas_pos.x * mpl.ratio;\n var y = canvas_pos.y * mpl.ratio;\n\n this.send_message(name, {x: x, y: y, button: event.button,\n step: event.step,\n guiEvent: simpleKeys(event)});\n\n /* This prevents the web browser from automatically changing to\n * the text insertion cursor when the button is pressed. We want\n * to control all of the cursor setting manually through the\n * 'cursor' event from matplotlib */\n event.preventDefault();\n return false;\n}\n\nmpl.figure.prototype._key_event_extra = function(event, name) {\n // Handle any extra behaviour associated with a key event\n}\n\nmpl.figure.prototype.key_event = function(event, name) {\n\n // Prevent repeat events\n if (name == 'key_press')\n {\n if (event.which === this._key)\n return;\n else\n this._key = event.which;\n }\n if (name == 'key_release')\n this._key = null;\n\n var value = '';\n if (event.ctrlKey && event.which != 17)\n value += \"ctrl+\";\n if (event.altKey && event.which != 18)\n value += \"alt+\";\n if (event.shiftKey && event.which != 16)\n value += \"shift+\";\n\n value += 'k';\n value += event.which.toString();\n\n this._key_event_extra(event, name);\n\n this.send_message(name, {key: value,\n guiEvent: simpleKeys(event)});\n return false;\n}\n\nmpl.figure.prototype.toolbar_button_onclick = function(name) {\n if (name == 'download') {\n this.handle_save(this, null);\n } else {\n this.send_message(\"toolbar_button\", {name: name});\n }\n};\n\nmpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n this.message.textContent = tooltip;\n};\nmpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n\nmpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n\nmpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n // Create a \"websocket\"-like object which calls the given IPython comm\n // object with the appropriate methods. Currently this is a non binary\n // socket, so there is still some room for performance tuning.\n var ws = {};\n\n ws.close = function() {\n comm.close()\n };\n ws.send = function(m) {\n //console.log('sending', m);\n comm.send(m);\n };\n // Register the callback with on_msg.\n comm.on_msg(function(msg) {\n //console.log('receiving', msg['content']['data'], msg);\n // Pass the mpl event to the overriden (by mpl) onmessage function.\n ws.onmessage(msg['content']['data'])\n });\n return ws;\n}\n\nmpl.mpl_figure_comm = function(comm, msg) {\n // This is the function which gets called when the mpl process\n // starts-up an IPython Comm through the \"matplotlib\" channel.\n\n var id = msg.content.data.id;\n // Get hold of the div created by the display call when the Comm\n // socket was opened in Python.\n var element = $(\"#\" + id);\n var ws_proxy = comm_websocket_adapter(comm)\n\n function ondownload(figure, format) {\n window.open(figure.imageObj.src);\n }\n\n var fig = new mpl.figure(id, ws_proxy,\n ondownload,\n element.get(0));\n\n // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n // web socket which is closed, not our websocket->open comm proxy.\n ws_proxy.onopen();\n\n fig.parent_element = element.get(0);\n fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n if (!fig.cell_info) {\n console.error(\"Failed to find cell for figure\", id, fig);\n return;\n }\n\n var output_index = fig.cell_info[2]\n var cell = fig.cell_info[0];\n\n};\n\nmpl.figure.prototype.handle_close = function(fig, msg) {\n var width = fig.canvas.width/mpl.ratio\n fig.root.unbind('remove')\n\n // Update the output cell to use the data from the current canvas.\n fig.push_to_output();\n var dataURL = fig.canvas.toDataURL();\n // Re-enable the keyboard manager in IPython - without this line, in FF,\n // the notebook keyboard shortcuts fail.\n IPython.keyboard_manager.enable()\n $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n fig.close_ws(fig, msg);\n}\n\nmpl.figure.prototype.close_ws = function(fig, msg){\n fig.send_message('closing', msg);\n // fig.ws.close()\n}\n\nmpl.figure.prototype.push_to_output = function(remove_interactive) {\n // Turn the data on the canvas into data in the output cell.\n var width = this.canvas.width/mpl.ratio\n var dataURL = this.canvas.toDataURL();\n this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n}\n\nmpl.figure.prototype.updated_canvas_event = function() {\n // Tell IPython that the notebook contents must change.\n IPython.notebook.set_dirty(true);\n this.send_message(\"ack\", {});\n var fig = this;\n // Wait a second, then push the new image to the DOM so\n // that it is saved nicely (might be nice to debounce this).\n setTimeout(function () { fig.push_to_output() }, 1000);\n}\n\nmpl.figure.prototype._init_toolbar = function() {\n var fig = this;\n\n var nav_element = $('<div/>')\n nav_element.attr('style', 'width: 100%');\n this.root.append(nav_element);\n\n // Define a callback function for later on.\n function toolbar_event(event) {\n return fig.toolbar_button_onclick(event['data']);\n }\n function toolbar_mouse_event(event) {\n return fig.toolbar_button_onmouseover(event['data']);\n }\n\n for(var toolbar_ind in mpl.toolbar_items){\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) { continue; };\n\n var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n button.click(method_name, toolbar_event);\n button.mouseover(tooltip, toolbar_mouse_event);\n nav_element.append(button);\n }\n\n // Add the status bar.\n var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n nav_element.append(status_bar);\n this.message = status_bar[0];\n\n // Add the close button to the window.\n var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n button.click(function (evt) { fig.handle_close(fig, {}); } );\n button.mouseover('Stop Interaction', toolbar_mouse_event);\n buttongrp.append(button);\n var titlebar = this.root.find($('.ui-dialog-titlebar'));\n titlebar.prepend(buttongrp);\n}\n\nmpl.figure.prototype._root_extra_style = function(el){\n var fig = this\n el.on(\"remove\", function(){\n\tfig.close_ws(fig, {});\n });\n}\n\nmpl.figure.prototype._canvas_extra_style = function(el){\n // this is important to make the div 'focusable\n el.attr('tabindex', 0)\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n }\n else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n\n}\n\nmpl.figure.prototype._key_event_extra = function(event, name) {\n var manager = IPython.notebook.keyboard_manager;\n if (!manager)\n manager = IPython.keyboard_manager;\n\n // Check for shift+enter\n if (event.shiftKey && event.which == 13) {\n this.canvas_div.blur();\n // select the cell after this one\n var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n IPython.notebook.select(index + 1);\n }\n}\n\nmpl.figure.prototype.handle_save = function(fig, msg) {\n fig.ondownload(fig, null);\n}\n\n\nmpl.find_output_cell = function(html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i=0; i<ncells; i++) {\n var cell = cells[i];\n if (cell.cell_type === 'code'){\n for (var j=0; j<cell.output_area.outputs.length; j++) {\n var data = cell.output_area.outputs[j];\n if (data.data) {\n // IPython >= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] == html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n}\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel != null) {\n IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n}\n"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<IPython.core.display.HTML object>",
"text/html": "<img src=\"data:image/png;base64,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\" width=\"640\">"
},
"metadata": {}
},
{
"output_type": "stream",
"text": "\n",
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"text/plain": "<IPython.core.display.Javascript object>",
"application/javascript": "/* Put everything inside the global mpl namespace */\nwindow.mpl = {};\n\n\nmpl.get_websocket_type = function() {\n if (typeof(WebSocket) !== 'undefined') {\n return WebSocket;\n } else if (typeof(MozWebSocket) !== 'undefined') {\n return MozWebSocket;\n } else {\n alert('Your browser does not have WebSocket support.' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.');\n };\n}\n\nmpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = (this.ws.binaryType != undefined);\n\n if (!this.supports_binary) {\n var warnings = document.getElementById(\"mpl-warnings\");\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent = (\n \"This browser does not support binary websocket messages. \" +\n \"Performance may be slow.\");\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = $('<div/>');\n this._root_extra_style(this.root)\n this.root.attr('style', 'display: inline-block');\n\n $(parent_element).append(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n fig.send_message(\"send_image_mode\", {});\n if (mpl.ratio != 1) {\n fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n }\n fig.send_message(\"refresh\", {});\n }\n\n this.imageObj.onload = function() {\n if (fig.image_mode == 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function() {\n this.ws.close();\n }\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n}\n\nmpl.figure.prototype._init_header = function() {\n var titlebar = $(\n '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n 'ui-helper-clearfix\"/>');\n var titletext = $(\n '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n 'text-align: center; padding: 3px;\"/>');\n titlebar.append(titletext)\n this.root.append(titlebar);\n this.header = titletext[0];\n}\n\n\n\nmpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n\n}\n\n\nmpl.figure.prototype._root_extra_style = function(canvas_div) {\n\n}\n\nmpl.figure.prototype._init_canvas = function() {\n var fig = this;\n\n var canvas_div = $('<div/>');\n\n canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n\n function canvas_keyboard_event(event) {\n return fig.key_event(event, event['data']);\n }\n\n canvas_div.keydown('key_press', canvas_keyboard_event);\n canvas_div.keyup('key_release', canvas_keyboard_event);\n this.canvas_div = canvas_div\n this._canvas_extra_style(canvas_div)\n this.root.append(canvas_div);\n\n var canvas = $('<canvas/>');\n canvas.addClass('mpl-canvas');\n canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n\n this.canvas = canvas[0];\n this.context = canvas[0].getContext(\"2d\");\n\n var backingStore = this.context.backingStorePixelRatio ||\n\tthis.context.webkitBackingStorePixelRatio ||\n\tthis.context.mozBackingStorePixelRatio ||\n\tthis.context.msBackingStorePixelRatio ||\n\tthis.context.oBackingStorePixelRatio ||\n\tthis.context.backingStorePixelRatio || 1;\n\n mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n\n var rubberband = $('<canvas/>');\n rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n\n var pass_mouse_events = true;\n\n canvas_div.resizable({\n start: function(event, ui) {\n pass_mouse_events = false;\n },\n resize: function(event, ui) {\n fig.request_resize(ui.size.width, ui.size.height);\n },\n stop: function(event, ui) {\n pass_mouse_events = true;\n fig.request_resize(ui.size.width, ui.size.height);\n },\n });\n\n function mouse_event_fn(event) {\n if (pass_mouse_events)\n return fig.mouse_event(event, event['data']);\n }\n\n rubberband.mousedown('button_press', mouse_event_fn);\n rubberband.mouseup('button_release', mouse_event_fn);\n // Throttle sequential mouse events to 1 every 20ms.\n rubberband.mousemove('motion_notify', mouse_event_fn);\n\n rubberband.mouseenter('figure_enter', mouse_event_fn);\n rubberband.mouseleave('figure_leave', mouse_event_fn);\n\n canvas_div.on(\"wheel\", function (event) {\n event = event.originalEvent;\n event['data'] = 'scroll'\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n mouse_event_fn(event);\n });\n\n canvas_div.append(canvas);\n canvas_div.append(rubberband);\n\n this.rubberband = rubberband;\n this.rubberband_canvas = rubberband[0];\n this.rubberband_context = rubberband[0].getContext(\"2d\");\n this.rubberband_context.strokeStyle = \"#000000\";\n\n this._resize_canvas = function(width, height) {\n // Keep the size of the canvas, canvas container, and rubber band\n // canvas in synch.\n canvas_div.css('width', width)\n canvas_div.css('height', height)\n\n canvas.attr('width', width * mpl.ratio);\n canvas.attr('height', height * mpl.ratio);\n canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n\n rubberband.attr('width', width);\n rubberband.attr('height', height);\n }\n\n // Set the figure to an initial 600x600px, this will subsequently be updated\n // upon first draw.\n this._resize_canvas(600, 600);\n\n // Disable right mouse context menu.\n $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n return false;\n });\n\n function set_focus () {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n}\n\nmpl.figure.prototype._init_toolbar = function() {\n var fig = this;\n\n var nav_element = $('<div/>')\n nav_element.attr('style', 'width: 100%');\n this.root.append(nav_element);\n\n // Define a callback function for later on.\n function toolbar_event(event) {\n return fig.toolbar_button_onclick(event['data']);\n }\n function toolbar_mouse_event(event) {\n return fig.toolbar_button_onmouseover(event['data']);\n }\n\n for(var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n // put a spacer in here.\n continue;\n }\n var button = $('<button/>');\n button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n 'ui-button-icon-only');\n button.attr('role', 'button');\n button.attr('aria-disabled', 'false');\n button.click(method_name, toolbar_event);\n button.mouseover(tooltip, toolbar_mouse_event);\n\n var icon_img = $('<span/>');\n icon_img.addClass('ui-button-icon-primary ui-icon');\n icon_img.addClass(image);\n icon_img.addClass('ui-corner-all');\n\n var tooltip_span = $('<span/>');\n tooltip_span.addClass('ui-button-text');\n tooltip_span.html(tooltip);\n\n button.append(icon_img);\n button.append(tooltip_span);\n\n nav_element.append(button);\n }\n\n var fmt_picker_span = $('<span/>');\n\n var fmt_picker = $('<select/>');\n fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n fmt_picker_span.append(fmt_picker);\n nav_element.append(fmt_picker_span);\n this.format_dropdown = fmt_picker[0];\n\n for (var ind in mpl.extensions) {\n var fmt = mpl.extensions[ind];\n var option = $(\n '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n fmt_picker.append(option)\n }\n\n // Add hover states to the ui-buttons\n $( \".ui-button\" ).hover(\n function() { $(this).addClass(\"ui-state-hover\");},\n function() { $(this).removeClass(\"ui-state-hover\");}\n );\n\n var status_bar = $('<span class=\"mpl-message\"/>');\n nav_element.append(status_bar);\n this.message = status_bar[0];\n}\n\nmpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n // which will in turn request a refresh of the image.\n this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n}\n\nmpl.figure.prototype.send_message = function(type, properties) {\n properties['type'] = type;\n properties['figure_id'] = this.id;\n this.ws.send(JSON.stringify(properties));\n}\n\nmpl.figure.prototype.send_draw_message = function() {\n if (!this.waiting) {\n this.waiting = true;\n this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n }\n}\n\n\nmpl.figure.prototype.handle_save = function(fig, msg) {\n var format_dropdown = fig.format_dropdown;\n var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n fig.ondownload(fig, format);\n}\n\n\nmpl.figure.prototype.handle_resize = function(fig, msg) {\n var size = msg['size'];\n if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n fig._resize_canvas(size[0], size[1]);\n fig.send_message(\"refresh\", {});\n };\n}\n\nmpl.figure.prototype.handle_rubberband = function(fig, msg) {\n var x0 = msg['x0'] / mpl.ratio;\n var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n var x1 = msg['x1'] / mpl.ratio;\n var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n x0 = Math.floor(x0) + 0.5;\n y0 = Math.floor(y0) + 0.5;\n x1 = Math.floor(x1) + 0.5;\n y1 = Math.floor(y1) + 0.5;\n var min_x = Math.min(x0, x1);\n var min_y = Math.min(y0, y1);\n var width = Math.abs(x1 - x0);\n var height = Math.abs(y1 - y0);\n\n fig.rubberband_context.clearRect(\n 0, 0, fig.canvas.width, fig.canvas.height);\n\n fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n}\n\nmpl.figure.prototype.handle_figure_label = function(fig, msg) {\n // Updates the figure title.\n fig.header.textContent = msg['label'];\n}\n\nmpl.figure.prototype.handle_cursor = function(fig, msg) {\n var cursor = msg['cursor'];\n switch(cursor)\n {\n case 0:\n cursor = 'pointer';\n break;\n case 1:\n cursor = 'default';\n break;\n case 2:\n cursor = 'crosshair';\n break;\n case 3:\n cursor = 'move';\n break;\n }\n fig.rubberband_canvas.style.cursor = cursor;\n}\n\nmpl.figure.prototype.handle_message = function(fig, msg) {\n fig.message.textContent = msg['message'];\n}\n\nmpl.figure.prototype.handle_draw = function(fig, msg) {\n // Request the server to send over a new figure.\n fig.send_draw_message();\n}\n\nmpl.figure.prototype.handle_image_mode = function(fig, msg) {\n fig.image_mode = msg['mode'];\n}\n\nmpl.figure.prototype.updated_canvas_event = function() {\n // Called whenever the canvas gets updated.\n this.send_message(\"ack\", {});\n}\n\n// A function to construct a web socket function for onmessage handling.\n// Called in the figure constructor.\nmpl.figure.prototype._make_on_message_function = function(fig) {\n return function socket_on_message(evt) {\n if (evt.data instanceof Blob) {\n /* FIXME: We get \"Resource interpreted as Image but\n * transferred with MIME type text/plain:\" errors on\n * Chrome. But how to set the MIME type? It doesn't seem\n * to be part of the websocket stream */\n evt.data.type = \"image/png\";\n\n /* Free the memory for the previous frames */\n if (fig.imageObj.src) {\n (window.URL || window.webkitURL).revokeObjectURL(\n fig.imageObj.src);\n }\n\n fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n evt.data);\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n fig.imageObj.src = evt.data;\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n\n var msg = JSON.parse(evt.data);\n var msg_type = msg['type'];\n\n // Call the \"handle_{type}\" callback, which takes\n // the figure and JSON message as its only arguments.\n try {\n var callback = fig[\"handle_\" + msg_type];\n } catch (e) {\n console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n return;\n }\n\n if (callback) {\n try {\n // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n callback(fig, msg);\n } catch (e) {\n console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n }\n }\n };\n}\n\n// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\nmpl.findpos = function(e) {\n //this section is from http://www.quirksmode.org/js/events_properties.html\n var targ;\n if (!e)\n e = window.event;\n if (e.target)\n targ = e.target;\n else if (e.srcElement)\n targ = e.srcElement;\n if (targ.nodeType == 3) // defeat Safari bug\n targ = targ.parentNode;\n\n // jQuery normalizes the pageX and pageY\n // pageX,Y are the mouse positions relative to the document\n // offset() returns the position of the element relative to the document\n var x = e.pageX - $(targ).offset().left;\n var y = e.pageY - $(targ).offset().top;\n\n return {\"x\": x, \"y\": y};\n};\n\n/*\n * return a copy of an object with only non-object keys\n * we need this to avoid circular references\n * http://stackoverflow.com/a/24161582/3208463\n */\nfunction simpleKeys (original) {\n return Object.keys(original).reduce(function (obj, key) {\n if (typeof original[key] !== 'object')\n obj[key] = original[key]\n return obj;\n }, {});\n}\n\nmpl.figure.prototype.mouse_event = function(event, name) {\n var canvas_pos = mpl.findpos(event)\n\n if (name === 'button_press')\n {\n this.canvas.focus();\n this.canvas_div.focus();\n }\n\n var x = canvas_pos.x * mpl.ratio;\n var y = canvas_pos.y * mpl.ratio;\n\n this.send_message(name, {x: x, y: y, button: event.button,\n step: event.step,\n guiEvent: simpleKeys(event)});\n\n /* This prevents the web browser from automatically changing to\n * the text insertion cursor when the button is pressed. We want\n * to control all of the cursor setting manually through the\n * 'cursor' event from matplotlib */\n event.preventDefault();\n return false;\n}\n\nmpl.figure.prototype._key_event_extra = function(event, name) {\n // Handle any extra behaviour associated with a key event\n}\n\nmpl.figure.prototype.key_event = function(event, name) {\n\n // Prevent repeat events\n if (name == 'key_press')\n {\n if (event.which === this._key)\n return;\n else\n this._key = event.which;\n }\n if (name == 'key_release')\n this._key = null;\n\n var value = '';\n if (event.ctrlKey && event.which != 17)\n value += \"ctrl+\";\n if (event.altKey && event.which != 18)\n value += \"alt+\";\n if (event.shiftKey && event.which != 16)\n value += \"shift+\";\n\n value += 'k';\n value += event.which.toString();\n\n this._key_event_extra(event, name);\n\n this.send_message(name, {key: value,\n guiEvent: simpleKeys(event)});\n return false;\n}\n\nmpl.figure.prototype.toolbar_button_onclick = function(name) {\n if (name == 'download') {\n this.handle_save(this, null);\n } else {\n this.send_message(\"toolbar_button\", {name: name});\n }\n};\n\nmpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n this.message.textContent = tooltip;\n};\nmpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n\nmpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n\nmpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n // Create a \"websocket\"-like object which calls the given IPython comm\n // object with the appropriate methods. Currently this is a non binary\n // socket, so there is still some room for performance tuning.\n var ws = {};\n\n ws.close = function() {\n comm.close()\n };\n ws.send = function(m) {\n //console.log('sending', m);\n comm.send(m);\n };\n // Register the callback with on_msg.\n comm.on_msg(function(msg) {\n //console.log('receiving', msg['content']['data'], msg);\n // Pass the mpl event to the overriden (by mpl) onmessage function.\n ws.onmessage(msg['content']['data'])\n });\n return ws;\n}\n\nmpl.mpl_figure_comm = function(comm, msg) {\n // This is the function which gets called when the mpl process\n // starts-up an IPython Comm through the \"matplotlib\" channel.\n\n var id = msg.content.data.id;\n // Get hold of the div created by the display call when the Comm\n // socket was opened in Python.\n var element = $(\"#\" + id);\n var ws_proxy = comm_websocket_adapter(comm)\n\n function ondownload(figure, format) {\n window.open(figure.imageObj.src);\n }\n\n var fig = new mpl.figure(id, ws_proxy,\n ondownload,\n element.get(0));\n\n // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n // web socket which is closed, not our websocket->open comm proxy.\n ws_proxy.onopen();\n\n fig.parent_element = element.get(0);\n fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n if (!fig.cell_info) {\n console.error(\"Failed to find cell for figure\", id, fig);\n return;\n }\n\n var output_index = fig.cell_info[2]\n var cell = fig.cell_info[0];\n\n};\n\nmpl.figure.prototype.handle_close = function(fig, msg) {\n var width = fig.canvas.width/mpl.ratio\n fig.root.unbind('remove')\n\n // Update the output cell to use the data from the current canvas.\n fig.push_to_output();\n var dataURL = fig.canvas.toDataURL();\n // Re-enable the keyboard manager in IPython - without this line, in FF,\n // the notebook keyboard shortcuts fail.\n IPython.keyboard_manager.enable()\n $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n fig.close_ws(fig, msg);\n}\n\nmpl.figure.prototype.close_ws = function(fig, msg){\n fig.send_message('closing', msg);\n // fig.ws.close()\n}\n\nmpl.figure.prototype.push_to_output = function(remove_interactive) {\n // Turn the data on the canvas into data in the output cell.\n var width = this.canvas.width/mpl.ratio\n var dataURL = this.canvas.toDataURL();\n this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n}\n\nmpl.figure.prototype.updated_canvas_event = function() {\n // Tell IPython that the notebook contents must change.\n IPython.notebook.set_dirty(true);\n this.send_message(\"ack\", {});\n var fig = this;\n // Wait a second, then push the new image to the DOM so\n // that it is saved nicely (might be nice to debounce this).\n setTimeout(function () { fig.push_to_output() }, 1000);\n}\n\nmpl.figure.prototype._init_toolbar = function() {\n var fig = this;\n\n var nav_element = $('<div/>')\n nav_element.attr('style', 'width: 100%');\n this.root.append(nav_element);\n\n // Define a callback function for later on.\n function toolbar_event(event) {\n return fig.toolbar_button_onclick(event['data']);\n }\n function toolbar_mouse_event(event) {\n return fig.toolbar_button_onmouseover(event['data']);\n }\n\n for(var toolbar_ind in mpl.toolbar_items){\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) { continue; };\n\n var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n button.click(method_name, toolbar_event);\n button.mouseover(tooltip, toolbar_mouse_event);\n nav_element.append(button);\n }\n\n // Add the status bar.\n var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n nav_element.append(status_bar);\n this.message = status_bar[0];\n\n // Add the close button to the window.\n var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n button.click(function (evt) { fig.handle_close(fig, {}); } );\n button.mouseover('Stop Interaction', toolbar_mouse_event);\n buttongrp.append(button);\n var titlebar = this.root.find($('.ui-dialog-titlebar'));\n titlebar.prepend(buttongrp);\n}\n\nmpl.figure.prototype._root_extra_style = function(el){\n var fig = this\n el.on(\"remove\", function(){\n\tfig.close_ws(fig, {});\n });\n}\n\nmpl.figure.prototype._canvas_extra_style = function(el){\n // this is important to make the div 'focusable\n el.attr('tabindex', 0)\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n }\n else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n\n}\n\nmpl.figure.prototype._key_event_extra = function(event, name) {\n var manager = IPython.notebook.keyboard_manager;\n if (!manager)\n manager = IPython.keyboard_manager;\n\n // Check for shift+enter\n if (event.shiftKey && event.which == 13) {\n this.canvas_div.blur();\n // select the cell after this one\n var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n IPython.notebook.select(index + 1);\n }\n}\n\nmpl.figure.prototype.handle_save = function(fig, msg) {\n fig.ondownload(fig, null);\n}\n\n\nmpl.find_output_cell = function(html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i=0; i<ncells; i++) {\n var cell = cells[i];\n if (cell.cell_type === 'code'){\n for (var j=0; j<cell.output_area.outputs.length; j++) {\n var data = cell.output_area.outputs[j];\n if (data.data) {\n // IPython >= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] == html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n}\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel != null) {\n IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n}\n"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<IPython.core.display.HTML object>",
"text/html": "<img src=\"data:image/png;base64,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tBUsWLDCzp07Yz9qjoAIEAEiQARCQoAEHBJ8YTm5d9KerwnCgjfcmUvQYcGWnRABIkAEbIsACTj2prESMEaDpWiPkdDcA469wTgCIkAEiEA4ECABhwPF0PsACW9Miob+JSklyW2vJODQwWYPRIAIEAE7IEACtoMVAhgDCTgAsHgoESACRMDGCJCAbWwcd0MjATvMYBwuESACRMADAiRgh00NErDDDMbhEgEiQARIwPExB0jA8WFH3gURIAJEgB6ww+YACdhhBuNwiQARIAL0gONjDpCA48OOvAsiQASIAD1gh80BErDDDMbhEgEiQAToAcfHHCABx4cdeRdEgAgQAXrADpsDJGCHGYzDJQJEgAjQA46POUACjg878i6IABEgAvSAHTYHSMAOMxiHSwSIABGgBxwfc4AEHB925F0QASJABOgBO2wOkIAdZjAOlwgQASJADzg+5gAJOD7syLsgAkSACNADdtgcIAE7zGAcLhEgAkSAHnB8zAEScHzYkXdBBIgAEaAH7LA5QAJ2mME4XCJABIgAPeD4mAMk4PiwI++CCBABIkAP2GFzgATsMINxuESACBABesDxMQdIwPFhR94FESACRIAesMPmAAnYYQbjcIkAESAC9IDjYw6QgOPDjrwLIkAEiAA9YIfNARKwwwzG4RIBIkAE6AHHxxwgAceHHXkXRIAIEAF6wA6bAyRghxmMwyUCRIAI0AOOjzlAAo4PO/IuiAARIAL0gB02B0jADjMYh0sEiAARoAccH3OABBwfduRdEAEiQAToATtsDpCAHWYwDpcIEAEiQA84PuYACTg+7Mi7IAJEgAjQA3bYHCABO8xgHC4RIAJEgB5wfMwBEnB82JF3QQSIABGgB+ywOUACdpjBOFwiQASIAD3g+JgDJOD4sCPvgggQASJAD9hhc4AE7DCDcbhEgAgQAXrA8TEHSMDxYUfeBREgAkSAHrDD5gAJ2GEG43CJABEgAvSA42MOkIDjw468CyJABIgAPWCHzQESsMMMxuESASJABOgBx8ccIAHHhx15F0SACBABesAOmwMkYIcZjMMlAkSACNADjo85QAKODzvyLogAESAC9IDtMQcSRKSmiBwSkY1Jf9yOjARsD4NxFESACBCBUBEgAYeKYHjO/1VEOotIJxHJIyJDPXVLAg4P4OyFCBABIhBrBEjAsbZAIunWEZFn/RkK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\" width=\"640\">"
},
"metadata": {}
},
{
"output_type": "stream",
"text": "\n",
"name": "stdout"
}
]
},
{
"metadata": {
"trusted": true,
"collapsed": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
}
],
"metadata": {
"gist": {
"id": "04d17421f83b3cfdacebb760293442aa",
"data": {
"description": "PHYD38 - PS4.ipynb",
"public": true
}
},
"_draft": {
"nbviewer_url": "https://gist.github.com/04d17421f83b3cfdacebb760293442aa"
},
"language_info": {
"nbconvert_exporter": "python",
"name": "python",
"version": "3.5.2",
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"pygments_lexer": "ipython3",
"mimetype": "text/x-python",
"file_extension": ".py"
},
"kernelspec": {
"name": "conda-env-General-py",
"display_name": "Python [conda env:General]",
"language": "python"
},
"widgets": {
"state": {
"00d149ec060c4cbfb6e026dc27f8d4bb": {
"views": [
{
"cell_index": 7
}
]
},
"1fb5ece29fdf447bbb0402709c9e34e2": {
"views": [
{
"cell_index": 7
}
]
},
"031fd4e796cc4596b58236dc33993c7c": {
"views": [
{
"cell_index": 7
}
]
},
"f34d2d0738494cf68a8b7fd69ecf725b": {
"views": [
{
"cell_index": 7
}
]
},
"8b57c2caee354142a05ffb63b8df710b": {
"views": [
{
"cell_index": 7
}
]
},
"9844b96f73fd4ea7880174f013c00d3e": {
"views": [
{
"cell_index": 7
}
]
},
"ef7b1a87d34a439cb9ecffa0d1550c6c": {
"views": [
{
"cell_index": 7
}
]
},
"1d48025f65074ac0ada8f23943f6b26e": {
"views": [
{
"cell_index": 7
}
]
},
"5f846b184e474f7bb5d74ea4b0577216": {
"views": [
{
"cell_index": 7
}
]
},
"ebea77089e28413a8f36412e0f5fb0ef": {
"views": [
{
"cell_index": 7
}
]
},
"f5a21fb066e44859936b8d1a2d98131c": {
"views": [
{
"cell_index": 7
}
]
},
"a009e4fc8b2f466c84ab40b9252a1bbe": {
"views": [
{
"cell_index": 7
}
]
},
"896df68ba26c4f53b5d3d8d62ab07973": {
"views": [
{
"cell_index": 7
}
]
},
"e985c18a387241beb023b2d844007706": {
"views": [
{
"cell_index": 7
}
]
},
"d519cc881d844a6a893e33eb92d6ce2e": {
"views": [
{
"cell_index": 7
}
]
},
"30b1674be08d4b8ab051034e69a5daad": {
"views": [
{
"cell_index": 7
}
]
},
"f740286c80e948149db9220aa6dcafec": {
"views": [
{
"cell_index": 7
}
]
},
"2ec20219821c43579bd7e68392d86019": {
"views": [
{
"cell_index": 7
}
]
},
"54c3158cdca9418f90f5d563855cf6a6": {
"views": [
{
"cell_index": 7
}
]
},
"34786d2fae3a4012b07e34609194c4cd": {
"views": [
{
"cell_index": 7
}
]
},
"1ada6dc483e5460f9e141e513628d81b": {
"views": [
{
"cell_index": 7
}
]
},
"4d48579827764534865203a1933eb42a": {
"views": [
{
"cell_index": 7
}
]
},
"72a90ff2766f4a0da9061deda8b6f3cd": {
"views": [
{
"cell_index": 7
}
]
},
"46b80498de3a445698bd268dc1afa833": {
"views": [
{
"cell_index": 7
}
]
},
"3a3a93411cf745769a8cab4bc5532e8f": {
"views": [
{
"cell_index": 7
}
]
},
"787c5a66e0564c71a83be7d4a3961a82": {
"views": [
{
"cell_index": 7
}
]
},
"f817853f529f4cd8a19214457c8aa1a9": {
"views": [
{
"cell_index": 7
}
]
},
"48c44528a6be4797b7c02ff429e5345b": {
"views": [
{
"cell_index": 7
}
]
},
"decb07c691194227b59a65f7e90632bc": {
"views": [
{
"cell_index": 7
}
]
},
"35072ac4c6ba4ac79698ccf736303e32": {
"views": [
{
"cell_index": 7
}
]
},
"46e43c5948284f9ca355dbec974386c4": {
"views": [
{
"cell_index": 7
}
]
},
"5567089f86fc441787591fdaaf177ee7": {
"views": [
{
"cell_index": 7
}
]
},
"3940cb15504b4577932a37ad793c8fcd": {
"views": [
{
"cell_index": 7
}
]
},
"0508e774e2c84ab39faed5ce3b6552b6": {
"views": [
{
"cell_index": 7
}
]
},
"4b679d2006084361ac6326e6bd1482f8": {
"views": [
{
"cell_index": 7
}
]
},
"3861c3903751427db519971ef13c35c9": {
"views": [
{
"cell_index": 7
}
]
},
"1cd2f122f94b4612b5d8ae7f34e36470": {
"views": [
{
"cell_index": 7
}
]
},
"7173d2c8505f4624b5dd0ca09118eb48": {
"views": [
{
"cell_index": 7
}
]
},
"bb559732730b4b8997d6f001a1b4c4f8": {
"views": [
{
"cell_index": 7
}
]
},
"e8a76a164a584d63843fe2b3cbdf41d4": {
"views": [
{
"cell_index": 7
}
]
},
"aef720be47ed40b8b8b64c94e9a8fb9c": {
"views": [
{
"cell_index": 7
}
]
},
"ac5819d66ee14809b31251e76e30952c": {
"views": [
{
"cell_index": 7
}
]
},
"d8f7f102a81146428d3a3e3877cacab1": {
"views": [
{
"cell_index": 7
}
]
},
"2525f63118794a6fac6b1c608dfe2f77": {
"views": [
{
"cell_index": 7
}
]
},
"3372f4cf03cb432991f01efd4a56f4cf": {
"views": [
{
"cell_index": 7
}
]
},
"a5c2a880b81b41d7a1a2f1080007a3e0": {
"views": [
{
"cell_index": 7
}
]
},
"62fdcd34ab2f427db9a2bca02ec476bb": {
"views": [
{
"cell_index": 7
}
]
},
"4f175c88ee004a839305df44b0925e8a": {
"views": [
{
"cell_index": 7
}
]
},
"7b4517ec7f2e4418ad4d8c60e4ff5f14": {
"views": [
{
"cell_index": 7
}
]
},
"96adbfd2bcc4409cbd9dafdad7e86dc2": {
"views": [
{
"cell_index": 7
}
]
},
"b2e92f1610c743dd89451c7b26fd1101": {
"views": [
{
"cell_index": 7
}
]
},
"9dce156d4b3943f09ce2724fc6f3c4c5": {
"views": [
{
"cell_index": 7
}
]
},
"3705b2768e3f405095845144859c1d08": {
"views": [
{
"cell_index": 7
}
]
},
"c475db0cf22f4d4c8eff5492f780d63a": {
"views": [
{
"cell_index": 7
}
]
},
"a9dd3033a0c94b52a3130dbe660fe030": {
"views": [
{
"cell_index": 7
}
]
},
"5d8ef9cc7a42468180540c5af24ac84a": {
"views": [
{
"cell_index": 7
}
]
},
"1442c0247a054223879878bc2c1cf7c1": {
"views": [
{
"cell_index": 7
}
]
},
"08baf18df6444b3688117e3770b64b26": {
"views": [
{
"cell_index": 7
}
]
},
"cf5910137ca242faa97be106a25dabc4": {
"views": [
{
"cell_index": 7
}
]
},
"9ce2e5f80fd9481589552a8c7f61a896": {
"views": [
{
"cell_index": 7
}
]
},
"5f6ef360cbe548b39e62ef8b9a15b555": {
"views": [
{
"cell_index": 7
}
]
},
"327ed81e703a4d91abf67b7775d67354": {
"views": [
{
"cell_index": 7
}
]
},
"2d50469aed2447f3b443379fa290acb3": {
"views": [
{
"cell_index": 7
}
]
},
"d44f359149904037a9ebeca8d0827596": {
"views": [
{
"cell_index": 7
}
]
},
"787c4887e0fa46b6badb093be51d9b27": {
"views": [
{
"cell_index": 7
}
]
},
"eaf5529996e74ef6a4f8697a24b8552e": {
"views": [
{
"cell_index": 7
}
]
},
"65b6c1d4253542ceb1ebcd77bd35d838": {
"views": [
{
"cell_index": 7
}
]
},
"1db58c71a0144827a1e42b7b5ecb05c1": {
"views": [
{
"cell_index": 7
}
]
},
"fe380b187f854170944f29be1ca72b11": {
"views": [
{
"cell_index": 7
}
]
},
"73636dfa1c7348a0a34b737f27ebbb93": {
"views": [
{
"cell_index": 7
}
]
},
"c26260409b4f42aa855e3cf4857caae1": {
"views": [
{
"cell_index": 7
}
]
},
"6fab0ba038774376bf396e2e495eaef9": {
"views": [
{
"cell_index": 7
}
]
},
"ceea23c6fff4463e8e66ac585b258f81": {
"views": [
{
"cell_index": 7
}
]
},
"bb18f75531aa49b3bf8b905e518f8b06": {
"views": [
{
"cell_index": 7
}
]
},
"7deee8306fda430788d011ce0600ce76": {
"views": [
{
"cell_index": 7
}
]
},
"62937f56919f456792f3e7c1edc1a98c": {
"views": [
{
"cell_index": 7
}
]
},
"2e292386780847b59ea0548212d6791f": {
"views": [
{
"cell_index": 7
}
]
},
"13ed0307271045fba594d05cb4ebb413": {
"views": [
{
"cell_index": 7
}
]
},
"4b410ebc907e45198fcaa083f2f2428f": {
"views": [
{
"cell_index": 7
}
]
},
"35d3a00fe3e04fabbe9740b6df8d9639": {
"views": [
{
"cell_index": 7
}
]
},
"6b0d52f11ad9400aa8cf8b79ecd217b1": {
"views": [
{
"cell_index": 7
}
]
},
"7384a4a58723485584c8ec49794b5136": {
"views": [
{
"cell_index": 7
}
]
},
"6788eac04a6d4d5e9b19cc0f26f5617a": {
"views": [
{
"cell_index": 7
}
]
},
"60873172a157428e85582bafaa1f9a13": {
"views": [
{
"cell_index": 7
}
]
},
"be95e6b52d3941558c7a5f4ee1e48212": {
"views": [
{
"cell_index": 7
}
]
},
"c1239d7eb33d4b10bcc21fab8d1b04e7": {
"views": [
{
"cell_index": 7
}
]
},
"9d710e8e2a1f4dcfb1aa624e87ec1886": {
"views": [
{
"cell_index": 7
}
]
},
"d8bdff68deb74627a0facc830c47b866": {
"views": [
{
"cell_index": 7
}
]
},
"0dac0359b76d41d4b3b41213be3433d3": {
"views": [
{
"cell_index": 7
}
]
},
"860b1c92185942ff965adfba9a14e78c": {
"views": [
{
"cell_index": 7
}
]
},
"d3488625f3f84445a6385eec9ea26c4b": {
"views": [
{
"cell_index": 7
}
]
},
"243e83bbc2694f3493a0da264ef69afc": {
"views": [
{
"cell_index": 7
}
]
},
"417c92092e7549e68395f746b54df120": {
"views": [
{
"cell_index": 7
}
]
},
"a87601e752d8476d92b97aed8cf3f2d6": {
"views": [
{
"cell_index": 7
}
]
},
"7c831334611c48bb8ce7064b3660be43": {
"views": [
{
"cell_index": 7
}
]
},
"f661e72c882845ea8cc9d95c4376bf61": {
"views": [
{
"cell_index": 7
}
]
},
"3789eca8f5964cd19a9015e364c9a893": {
"views": [
{
"cell_index": 7
}
]
},
"2f40f69b1e7247778b5298c6296b3b23": {
"views": [
{
"cell_index": 7
}
]
},
"4012fe6e0f2b4823a1e723dcf3c18dfa": {
"views": [
{
"cell_index": 7
}
]
},
"6fbbc0b465924908b0d847072bb7cb90": {
"views": [
{
"cell_index": 7
}
]
},
"14b306a909cb4e9eb041e0599e8ad251": {
"views": [
{
"cell_index": 7
}
]
},
"cd1a3db3856f4d2f8f7fac9d3a090bb4": {
"views": [
{
"cell_index": 7
}
]
},
"3cbe9ef0e67840c9bb5469b8121d9a90": {
"views": [
{
"cell_index": 7
}
]
},
"91cdb419df184c9e9cbe9f2f150b38a7": {
"views": [
{
"cell_index": 7
}
]
},
"3724c63ee97d4d79bdcc2cc2e8f4e3eb": {
"views": [
{
"cell_index": 7
}
]
},
"d2675aa221354883bb7b62f77b16f135": {
"views": [
{
"cell_index": 7
}
]
},
"1882bc1f82ea48a4bf318e4dfff34100": {
"views": [
{
"cell_index": 7
}
]
},
"002be7b527cc4ceb9b7b21d58ab7dabc": {
"views": [
{
"cell_index": 7
}
]
},
"bef72a5088754372b69ad2e32a20c3ea": {
"views": [
{
"cell_index": 7
}
]
},
"6c57c04cd61e4618a039bb46f40dcd93": {
"views": [
{
"cell_index": 7
}
]
},
"41e8de7628984a5296d712cadcc671bf": {
"views": [
{
"cell_index": 7
}
]
},
"262fe35f6b4d482fb21072ccc0101a79": {
"views": [
{
"cell_index": 7
}
]
},
"6b6f89d0920e452981f68387b780d5a3": {
"views": [
{
"cell_index": 7
}
]
},
"597e712cfab44e1d926a5a02d676d38d": {
"views": [
{
"cell_index": 7
}
]
},
"6f9ef543666e4e6ead8897670100e5c8": {
"views": [
{
"cell_index": 7
}
]
},
"4382bf1272554c678c0daa69927a0d56": {
"views": [
{
"cell_index": 7
}
]
},
"a0794921c9fa4231a38eea2625bdf301": {
"views": [
{
"cell_index": 7
}
]
},
"71b1697dbd6041738338a162f8b04959": {
"views": [
{
"cell_index": 7
}
]
},
"17cf59977dfd4171a276e633223b7b03": {
"views": [
{
"cell_index": 7
}
]
},
"2d4a5311b5cd4a369cf3913a2b4e62f5": {
"views": [
{
"cell_index": 7
}
]
},
"e0b90ee0b7ff4b6bb148cc8212a94d48": {
"views": [
{
"cell_index": 7
}
]
},
"7c94c3623e0e4872bc0adb6906bfa617": {
"views": [
{
"cell_index": 8
}
]
},
"0bfd4e36bc4d4aae9301aeac471dec6c": {
"views": [
{
"cell_index": 8
}
]
},
"8d56774d93ea4a368f91e9165e03e46e": {
"views": [
{
"cell_index": 8
}
]
},
"e1eaddf6b99b4fc4829bb0da4ebc3b61": {
"views": [
{
"cell_index": 8
}
]
},
"7ad61b8de477412a89f8566495704fb7": {
"views": [
{
"cell_index": 8
}
]
},
"abcce7238b5b478dae39f3cc05ab4fd8": {
"views": [
{
"cell_index": 8
}
]
},
"b2030f34efc04dcea4d04d6384d45473": {
"views": [
{
"cell_index": 8
}
]
},
"6790ddabc25849af94d1995933edf37c": {
"views": [
{
"cell_index": 8
}
]
},
"d6587ddf5f094e9d960684a27273bba7": {
"views": [
{
"cell_index": 8
}
]
},
"8a26df6c99d54a36a82ba62711c5af93": {
"views": [
{
"cell_index": 8
}
]
},
"a1af9fa88f074225918db6c3e6a106f1": {
"views": [
{
"cell_index": 8
}
]
},
"3df9dad501dc43fa9359d661f969187f": {
"views": [
{
"cell_index": 8
}
]
},
"0b878e444a0d43738d72258a93d58ee4": {
"views": [
{
"cell_index": 8
}
]
},
"1e124230357a4f20b21680fc4b86bf03": {
"views": [
{
"cell_index": 8
}
]
},
"6588363bc36f48e2a692388d6a4b375d": {
"views": [
{
"cell_index": 8
}
]
}
},
"version": "1.2.0"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment