From f384f751bd49b65c0fa358952bd2fcd6d75a947a Mon Sep 17 00:00:00 2001 From: stonebig Date: Mon, 27 Aug 2018 15:00:58 +0200 Subject: [PATCH] summer 2018 update, with Almar Klein WASM demo --- docs/Beginner's FAQ.ipynb | 29 +- docs/Holoviews_demo_streaming.ipynb | 425 + docs/Qt_libraries_demo.ipynb | 48 +- .../EuroPython2018_talk_compacted.ipynb | 707 + docs/WASM_almar_klein_demo/LICENSE | 25 + docs/WASM_almar_klein_demo/README.md | 13 + .../images/assembly1.png | Bin 0 -> 15156 bytes .../images/assembly2.png | Bin 0 -> 11530 bytes .../images/github_rocket.png | Bin 0 -> 37844 bytes .../images/github_rocket_wasm.png | Bin 0 -> 37996 bytes .../images/github_rocket_wasm_html.png | Bin 0 -> 5365 bytes .../images/github_rocket_wasm_js.png | Bin 0 -> 21383 bytes .../images/py_as_platform.png | Bin 0 -> 14017 bytes .../images/py_to_browser.png | Bin 0 -> 19954 bytes .../images/pysnippet_to_wasm.png | Bin 0 -> 11613 bytes docs/WASM_almar_klein_demo/images/python.png | Bin 0 -> 4435 bytes .../images/rocket_in_js.png | Bin 0 -> 28321 bytes .../images/rocket_in_py.png | Bin 0 -> 25602 bytes .../images/rocketgame.png | Bin 0 -> 73262 bytes .../images/start_rise_mode.png | Bin 0 -> 13153 bytes docs/WASM_almar_klein_demo/images/wasm.png | Bin 0 -> 7189 bytes docs/WASM_almar_klein_demo/info.py | 43 + docs/WASM_almar_klein_demo/play_python.py | 74 + docs/WASM_almar_klein_demo/rise.css | 3 + docs/WASM_almar_klein_demo/rocket.html | 203 + docs/WASM_almar_klein_demo/rocket.py | 89 + docs/WASM_almar_klein_demo/rocket_ai.py | 57 + docs/WASM_almar_klein_demo/rocket_pt.bat | 1 + docs/WASM_almar_klein_demo/rocket_pt.py | 157 + docs/WASM_almar_klein_demo/rocket_qt.py | 105 + docs/WASM_almar_klein_demo/wasm/ai1.wat | 18 + docs/WASM_almar_klein_demo/wasm/ai2.c | 62 + docs/WASM_almar_klein_demo/wasm/ai2.wasm | Bin 0 -> 723 bytes docs/WASM_almar_klein_demo/wasm/rocket.wasm | Bin 0 -> 58827 bytes docs/WASM_almar_klein_demo/wasm/rocket.wat | 24983 ++++++++++++++++ docs/Winpython_checker.ipynb | 62 +- docs/bayesian_neural_network.ipynb | 315 - docs/dplyr_pandas.ipynb | 128 +- docs/keras-intro_brianspiering.ipynb | 1284 + docs/minesweeper.py | 183 + docs/pandas_demo_from_jreback.ipynb | 1947 +- docs/pima-indians-diabetes.data | 768 + docs/seaborn_demo_from_jakevdp.ipynb | 85 +- docs/test_data_access.ipynb | 36 +- ...al-first-neural-network-python-keras.ipynb | 1122 + 45 files changed, 30468 insertions(+), 2504 deletions(-) create mode 100644 docs/Holoviews_demo_streaming.ipynb create mode 100644 docs/WASM_almar_klein_demo/EuroPython2018_talk_compacted.ipynb create mode 100644 docs/WASM_almar_klein_demo/LICENSE create mode 100644 docs/WASM_almar_klein_demo/README.md create mode 100644 docs/WASM_almar_klein_demo/images/assembly1.png create mode 100644 docs/WASM_almar_klein_demo/images/assembly2.png create mode 100644 docs/WASM_almar_klein_demo/images/github_rocket.png create mode 100644 docs/WASM_almar_klein_demo/images/github_rocket_wasm.png create mode 100644 docs/WASM_almar_klein_demo/images/github_rocket_wasm_html.png create mode 100644 docs/WASM_almar_klein_demo/images/github_rocket_wasm_js.png create mode 100644 docs/WASM_almar_klein_demo/images/py_as_platform.png create mode 100644 docs/WASM_almar_klein_demo/images/py_to_browser.png create mode 100644 docs/WASM_almar_klein_demo/images/pysnippet_to_wasm.png create mode 100644 docs/WASM_almar_klein_demo/images/python.png create mode 100644 docs/WASM_almar_klein_demo/images/rocket_in_js.png create mode 100644 docs/WASM_almar_klein_demo/images/rocket_in_py.png create mode 100644 docs/WASM_almar_klein_demo/images/rocketgame.png create mode 100644 docs/WASM_almar_klein_demo/images/start_rise_mode.png create mode 100644 docs/WASM_almar_klein_demo/images/wasm.png create mode 100644 docs/WASM_almar_klein_demo/info.py create mode 100644 docs/WASM_almar_klein_demo/play_python.py create mode 100644 docs/WASM_almar_klein_demo/rise.css create mode 100644 docs/WASM_almar_klein_demo/rocket.html create mode 100644 docs/WASM_almar_klein_demo/rocket.py create mode 100644 docs/WASM_almar_klein_demo/rocket_ai.py create mode 100644 docs/WASM_almar_klein_demo/rocket_pt.bat create mode 100644 docs/WASM_almar_klein_demo/rocket_pt.py create mode 100644 docs/WASM_almar_klein_demo/rocket_qt.py create mode 100644 docs/WASM_almar_klein_demo/wasm/ai1.wat create mode 100644 docs/WASM_almar_klein_demo/wasm/ai2.c create mode 100644 docs/WASM_almar_klein_demo/wasm/ai2.wasm create mode 100644 docs/WASM_almar_klein_demo/wasm/rocket.wasm create mode 100644 docs/WASM_almar_klein_demo/wasm/rocket.wat delete mode 100644 docs/bayesian_neural_network.ipynb create mode 100644 docs/keras-intro_brianspiering.ipynb create mode 100644 docs/minesweeper.py create mode 100644 docs/pima-indians-diabetes.data create mode 100644 docs/tutorial-first-neural-network-python-keras.ipynb diff --git a/docs/Beginner's FAQ.ipynb b/docs/Beginner's FAQ.ipynb index e9af33e..6f583a6 100644 --- a/docs/Beginner's FAQ.ipynb +++ b/docs/Beginner's FAQ.ipynb @@ -26,6 +26,16 @@ " . [Python Data Science Handbook](https://github.com/jakevdp/PythonDataScienceHandbook/blob/master/README.md)\n" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Games and Statistics\n", + " . [Pythonic Perambulations](http://jakevdp.github.io) from Jake Vanderplas, in particular http://jakevdp.github.io/blog/2017/12/18/simulating-chutes-and-ladders/\n", + " \n", + " . [Peter Norvig Studies](https://github.com/norvig/pytudes/tree/master/ipynb) from Peter Norvig, in particular http://norvig.com/sudoku.html" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -36,7 +46,7 @@ " \n", " . [Galery of Interesting Notebooks](https://github.com/ipython/ipython/wiki/A-gallery-of-interesting-IPython-Notebooks)\n", " \n", - " . Videos of Conferences and Trainings: [Python Various Conferences](https://pyvideo.org/), [Pydata Conferences](https://www.youtube.com/user/PyDataTV) , [Scipy Conferences](https://www.youtube.com/user/EnthoughtMedia)\n", + " . Videos of Conferences and Trainings: [Europython](https://www.youtube.com/user/PythonItalia/playlists?shelf_id=4&view=50&sort=dd), [Pydata](https://www.youtube.com/user/PyDataTV) , [Scipy](https://www.youtube.com/user/EnthoughtMedia), [EuroScipy](https://www.youtube.com/channel/UCruMegFU9dg2doEGOUaAWTg), [Pycon 2018](https://www.youtube.com/channel/UCsX05-2sVSH7Nx3zuk3NYuQ/featured) , [Pycon 2017](https://www.youtube.com/channel/UCrJhliKNQ8g0qoE_zvL8eVg), [Pycon 2016](https://www.youtube.com/channel/UCwTD5zJbsQGJN75MwbykYNw)\n", " " ] }, @@ -69,8 +79,11 @@ " \n", " . Altair: [Introduction]](https://altair-viz.github.io/)\n", " \n", - " . mpld3 : [Gallery](https://mpld3.github.io/examples/index.html#example-gallery) \n", + " . plotnine : [Gallery](https://plotnine.readthedocs.io/en/stable/gallery.html) , [Tutotials](https://github.com/has2k1/plotnine/blob/master/doc/external-resources.rst)\n", + " \n", + " . hvplot : [Gallery](https://hvplot.pyviz.org/)\n", "\n", + " . PyQtGraph : [Gallery](http://www.pyqtgraph.org/)\n", " " ] }, @@ -125,9 +138,7 @@ }, { "cell_type": "markdown", - "metadata": { - "collapsed": false - }, + "metadata": {}, "source": [ "\n", "## Winpython\n", @@ -140,9 +151,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [] } @@ -163,9 +172,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.0" + "version": "3.7.0" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/docs/Holoviews_demo_streaming.ipynb b/docs/Holoviews_demo_streaming.ipynb new file mode 100644 index 0000000..fc925e1 --- /dev/null +++ b/docs/Holoviews_demo_streaming.ipynb @@ -0,0 +1,425 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Holoviews 'streams demo'\n", + "\n", + "#### from https://github.com/ioam/holoviews/blob/master/examples/user_guide/15-Streaming_Data.ipynb\n", + "#### (Holoviews/Datashader/Bokeh/Jupyter Notebook)\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# These are examples from Holoviews Developer Philipp Rudiger:\n", + "# https://anaconda.org/philippjfr/working_with_streaming_data/notebook\n", + "# As of 2017-10-26:\n", + "# . this is bleeding-edge,\n", + "# . this Notebook is made to check it can work well also on Windows / WinPython.\n", + "#\n", + "# User may notice we're getting clother to a PyQtGraph style of graphics" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import time\n", + "import numpy as np\n", + "import pandas as pd\n", + "import holoviews as hv\n", + "\n", + "from holoviews.streams import Pipe, Buffer\n", + "\n", + "import streamz\n", + "import streamz.dataframe\n", + "\n", + "hv.extension('bokeh')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Pipe\n", + "\n", + "A Pipe allows data to be pushed into a DynamicMap callback to change a visualization" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Pipe opening\n", + "pipe = Pipe(data=[])\n", + "vector_dmap = hv.DynamicMap(hv.VectorField, streams=[pipe])\n", + "vector_dmap.redim.range(x=(-1, 1), y=(-1, 1))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#Feeding pipe\n", + "x,y = np.mgrid[-10:11,-10:11] * 0.1\n", + "sine_rings = np.sin(x**2+y**2)*np.pi+np.pi\n", + "exp_falloff = 1/np.exp((x**2+y**2)/8)\n", + "\n", + "for i in np.linspace(0, 1, 25):\n", + " time.sleep(0.1)\n", + " pipe.send([x,y,sine_rings*i, exp_falloff])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Buffer\n", + "Buffer automatically accumulates the last N rows of the tabular data, where N is defined by the length.\n", + "\n", + "Plotting backends (such as bokeh) can optimize plot updates by sending just the latest patch. This optimization works only if the data object held by the Buffer is identical to the plotted Element data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "example = pd.DataFrame({'x': [], 'y': [], 'count': []}, columns=['x', 'y', 'count'])\n", + "dfstream = Buffer(example, length=100, index=False)\n", + "curve_dmap = hv.DynamicMap(hv.Curve, streams=[dfstream])\n", + "point_dmap = hv.DynamicMap(hv.Points, streams=[dfstream])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%opts Points [color_index='count', xaxis=None, yaxis=None] (line_color='black', size=5)\n", + "%%opts Curve (line_width=1, color='black')\n", + "curve_dmap * point_dmap" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def gen_brownian():\n", + " x, y, count = 0, 0, 0\n", + " while True:\n", + " x += np.random.randn()\n", + " y += np.random.randn()\n", + " count += 1\n", + " yield pd.DataFrame([(x, y, count)], columns=['x', 'y', 'count'])\n", + "\n", + "brownian = gen_brownian()\n", + "for i in range(200):\n", + " dfstream.send(next(brownian))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "dfstream.clear()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Asynchronous updates Using the Streamz library\n", + "\n", + "Let's start with a fairly simple example:\n", + "- Declare a streamz.Stream and a Pipe object and connect them into a pipeline into which we can push data.\n", + "- Use a sliding_window of 10, which will first wait for 10 sets of stream updates to accumulate. At that point and for every subsequent update, it will apply pd.concat to combine the most recent 10 updates into a new dataframe.\n", + "- Use the sink method on the streamz.Stream to send the resulting collection of 10 updates to Pipe.\n", + "- Declare a DynamicMap that takes the sliding window of concatenated DataFrames and displays it using a Scatter Element.\n", + "- Color the Scatter points by their 'count' and set a range, then display:\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "point_source = streamz.Stream()\n", + "pipe = Pipe(data=[])\n", + "point_source.sliding_window(20).map(pd.concat).sink(pipe.send) # Connect streamz to the Pipe\n", + "scatter_dmap = hv.DynamicMap(hv.Scatter, streams=[pipe])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%opts Scatter [color_index='count', bgcolor='black']\n", + "scatter_dmap.redim.range(y=(-4, 4))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for i in range(100):\n", + " df = pd.DataFrame({'x': np.random.rand(100), 'y': np.random.randn(100), 'count': i},\n", + " columns=['x', 'y', 'count'])\n", + " point_source.emit(df)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### StreamingDataFrame" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### A simple example" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "simple_sdf = streamz.dataframe.Random(freq='10ms', interval='100ms')\n", + "print(simple_sdf.index)\n", + "simple_sdf.example.dtypes" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%opts Curve [width=500 show_grid=True]\n", + "sdf = (simple_sdf-0.5).cumsum()\n", + "hv.DynamicMap(hv.Curve, streams=[Buffer(sdf.x)])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The ``Random`` StreamingDataFrame will asynchronously emit events until it is stopped, which we can do by calling the ``stop`` method." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "simple_sdf.stop()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Making use of the StreamingDataFrame API" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%opts Curve [width=500 show_grid=True]\n", + "source_df = streamz.dataframe.Random(freq='5ms', interval='100ms')\n", + "sdf = (source_df-0.5).cumsum()\n", + "raw_dmap = hv.DynamicMap(hv.Curve, streams=[Buffer(sdf.x)])\n", + "smooth_dmap = hv.DynamicMap(hv.Curve, streams=[Buffer(sdf.x.rolling('500ms').mean())])\n", + "\n", + "raw_dmap.relabel('raw') * smooth_dmap.relabel('smooth')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "source_df.stop()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Controlling the backlog" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from functools import partial\n", + "multi_source = streamz.dataframe.Random(freq='5ms', interval='100ms')\n", + "sdf = (multi_source-0.5).cumsum()\n", + "hv.DynamicMap(hv.Table, streams=[Buffer(sdf.x, length=10)]) +\\\n", + "hv.DynamicMap(partial(hv.BoxWhisker, kdims=[], vdims=['x']), streams=[Buffer(sdf.x, length=100)])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Updating multiple cells" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since a ``StreamingDataFrame`` will emit data until it is stopped we can subscribe multiple plots across different cells to the same stream:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "hv.DynamicMap(hv.Scatter, streams=[Buffer(sdf.x)])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "multi_source.stop()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Applying operations" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "hist_source = streamz.dataframe.Random(freq='5ms', interval='100ms')\n", + "sdf = (hist_source-0.5).cumsum()\n", + "dmap = hv.DynamicMap(hv.Dataset, streams=[Buffer(sdf.x, length=500)])\n", + "hv.operation.histogram(dmap, dimension='x')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "hist_source.stop()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Datashading" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The same approach will also work for the datashader operation letting us datashade the entire ``backlog`` window even if we make it very large:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%opts RGB [width=600]\n", + "from holoviews.operation.datashader import datashade\n", + "from bokeh.palettes import Blues8\n", + "large_source = streamz.dataframe.Random(freq='100us', interval='200ms')\n", + "sdf = (large_source-0.5).cumsum()\n", + "dmap = hv.DynamicMap(hv.Curve, streams=[Buffer(sdf.x, length=100000)])\n", + "datashade(dmap, streams=[hv.streams.PlotSize], normalization='linear', cmap=Blues8)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "large_source.stop()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/Qt_libraries_demo.ipynb b/docs/Qt_libraries_demo.ipynb index 281d182..1b22abd 100644 --- a/docs/Qt_libraries_demo.ipynb +++ b/docs/Qt_libraries_demo.ipynb @@ -6,7 +6,11 @@ "source": [ "# Qt Demo\n", "\n", - "This will launch various Qt compatible packages" + "This will launch various Qt compatible packages\n", + "\n", + "Nota: as of 2018-04-29th, PySide2-5.11 compatibility is\n", + " - Ok for Qtconsole, Qtpy, pyzo, wppm \n", + " - ToDo for PyQtgraph, Spyder, guidata, guiqwt, rx\n" ] }, { @@ -19,9 +23,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "# PyQtgraph (Scientific Graphics and GUI Library for Python)\n", @@ -31,9 +33,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# Guidata (Python library generating graphical user interfaces for easy dataset editing and display)\n", @@ -43,9 +43,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "# Guiqwt (Efficient 2D plotting Python library based on PythonQwt)\n", @@ -54,15 +52,14 @@ }, { "cell_type": "code", - "execution_count": 1, - "metadata": { - "collapsed": true - }, + "execution_count": null, + "metadata": {}, "outputs": [], "source": [ "#QtDemo (if present)\n", "!if exist \"%WINPYDIR%\\Lib\\site-packages\\PyQt5\\examples\\qtdemo\\qtdemo.py\" \"%WINPYDIR%\\python.exe\" \"%WINPYDIR%\\Lib\\site-packages\\PyQt5\\examples\\qtdemo\\qtdemo.py\"\n", - "!if exist \"%WINPYDIR%\\Lib\\site-packages\\PyQt4\\examples\\demos\\qtdemo\\qtdemo.pyw\"\"%WINPYDIR%\\pythonw.exe\" \"%WINPYDIR%\\Lib\\site-packages\\PyQt4\\examples\\demos\\qtdemo\\qtdemo.pyw\"\n" + "!if exist \"%WINPYDIR%\\Lib\\site-packages\\PyQt4\\examples\\demos\\qtdemo\\qtdemo.pyw\"\"%WINPYDIR%\\pythonw.exe\" \"%WINPYDIR%\\Lib\\site-packages\\PyQt4\\examples\\demos\\qtdemo\\qtdemo.pyw\"\n", + "!if exist \"%WINPYDIR%\\Lib\\site-packages\\PySide2\\examples\\datavisualization\" \"%WINPYDIR%\\python.exe\" \"%WINPYDIR%\\Lib\\site-packages\\PySide2\\examples\\datavisualization\\bars3d.py\"\n" ] }, { @@ -75,9 +72,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# from https://github.com/ReactiveX/RxPY/blob/master/examples/timeflie\n", @@ -145,9 +140,16 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, + "outputs": [], + "source": [ + "!pip download --dest C:\\WinP\\a QtPy" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, "outputs": [], "source": [] } @@ -168,7 +170,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.4.4" + "version": "3.6.5" }, "widgets": { "state": {}, @@ -176,5 +178,5 @@ } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/docs/WASM_almar_klein_demo/EuroPython2018_talk_compacted.ipynb b/docs/WASM_almar_klein_demo/EuroPython2018_talk_compacted.ipynb new file mode 100644 index 0000000..feaa267 --- /dev/null +++ b/docs/WASM_almar_klein_demo/EuroPython2018_talk_compacted.ipynb @@ -0,0 +1,707 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Let’s embrace WebAssembly!\n", + "\n", + "EuroPython 2018 - Edinburgh\n", + "\n", + "Almar Klein \n", + "\n", + "\n", + "Original conference on youtube https://www.youtube.com/watch?v=u2kKxmb9BWs&index=18&list=PL8uoeex94UhFrNUV2m5MigREebUms39U5\n", + "\n", + "This Notebook is:\n", + "- a compacted version of original https://github.com/almarklein/rocket_rust_py\n", + "- best seen in Jupyter Notebook mode + RISE)
\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "\n", + "# WASM has a compact binary format\n", + "\n", + "\n", + "\n", + "#### And a human readable counterpart:\n", + "\n", + "```wasm\n", + "(module\n", + " (type $print (func (param i32))\n", + " (func $main\n", + " (i32.const 42)\n", + " (call $print)\n", + " )\n", + " (start $main)\n", + ")\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "\n", + "# It's safe\n", + "\n", + "\n", + "Because browsers." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Use case 1: Compile a subset of Python to WASM" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "
" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "def find_prime(nth):\n", + " n = 0\n", + " i = -1 \n", + " while n < nth:\n", + " i = i + 1 \n", + " if i <= 1:\n", + " continue # nope\n", + " elif i == 2:\n", + " n = n + 1\n", + " else:\n", + " gotit = 1\n", + " for j in range(2, i//2+1):\n", + " if i % j == 0:\n", + " gotit = 0\n", + " break\n", + " if gotit == 1:\n", + " n = n + 1 \n", + " return i" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "outputs": [], + "source": [ + "%time find_prime(1000)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Compiling 'find_prime()' to WASM\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "source": [ + "Note: \n", + "\n", + "* The python-to-wasm compiler is just a POC!\n", + "* Assumes a (reliable) wasm-to-native compiler" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "from ppci import wasm" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "outputs": [], + "source": [ + "from ppci.lang.python import python_to_wasm\n", + "\n", + "def main():\n", + " print(find_prime(1000))\n", + "\n", + "m = python_to_wasm(main, find_prime)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# WASM (somewhat) readable machine code\n", + "m.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# WASM binary format\n", + "m.show_bytes()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# WASM interface\n", + "m.show_interface()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Run in Browser \n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "outputs": [], + "source": [ + "wasm.run_wasm_in_notebook(m)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Run in NodeJS\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "outputs": [], + "source": [ + "wasm.run_wasm_in_node(m)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Compile 'find_prime()' to WASM then to Machine code" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "@wasm.wasmify\n", + "def find_prime2(nth):\n", + " n = 0\n", + " i = -1 \n", + " while n < nth:\n", + " i = i + 1 \n", + " if i <= 1:\n", + " continue # nope\n", + " elif i == 2:\n", + " n = n + 1\n", + " else:\n", + " gotit = 1\n", + " for j in range(2, i//2+1):\n", + " if i % j == 0:\n", + " gotit = 0\n", + " break\n", + " if gotit == 1:\n", + " n = n + 1 \n", + " return i" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "outputs": [], + "source": [ + "%time find_prime2(1000)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Use case 2: Python as a platform to bind and run WASM modules\n", + " \n", + "... and allow that code to call into Python functions" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# the Rocket game (from https://github.com/aochagavia/rocket_wasm)\n", + "\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Single binary WASM file (58 KB)\n", + "\n", + "
\n", + " \n", + "
\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from ppci import wasm\n", + "\n", + "m = wasm.Module(open(r'wasm/rocket.wasm', 'rb'))\n", + "m" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "m.show_interface()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "
\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "
\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "
\n", + "\n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "class PythonRocketGame:\n", + " \n", + " # ...\n", + " \n", + " def wasm_sin(self, a:float) -> float:\n", + " return math.sin(a)\n", + " \n", + " def wasm_cos(self, a:float) -> float:\n", + " return math.cos(a)\n", + " \n", + " def wasm_Math_atan(self, a:float) -> float:\n", + " return math.atan(a)\n", + " \n", + " def wasm_clear_screen(self) -> None:\n", + " # ...\n", + " \n", + " def wasm_draw_bullet(self, x:float, y:float) -> None:\n", + " # ...\n", + " \n", + " def wasm_draw_enemy(self, x:float, y:float) -> None:\n", + " # ...\n", + " \n", + " def wasm_draw_particle(self, x:float, y:float, a:float) -> None:\n", + " # ...\n", + " \n", + " def wasm_draw_player(self, x:float, y:float, a:float) -> None:\n", + " # ...\n", + " \n", + " def wasm_draw_score(self, score:float) -> None:\n", + " # ..." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Run Rocket in Python with Qt\n", + "\n", + "
\n", + "\n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "outputs": [], + "source": [ + "from rocket_qt import QtRocketGame\n", + "game = QtRocketGame()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# you may have to switch to the QT window appearing on the side of your browser session\n", + "game.run()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# This game is not that hard to play ..." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "source": [ + "## Let's make an AI!" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "source": [ + "#### Game in rust compiled in WASM\n", + "#### AI in C compiled in WASM\n", + "#### Glue in Python" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# let's write the AI in C\n", + "print(open('wasm/ai2.c', 'rt').read())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# use https://wasdk.github.io/WasmFiddle/ to convert ai.c in ai2.wasm\n", + "from ppci import wasm\n", + "ai2 = wasm.Module(open('wasm/ai2.wasm', 'rb'))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ai2.show_interface()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "outputs": [], + "source": [ + "from rocket_ai import AiRocketGame\n", + "game = AiRocketGame(ai2)\n", + "game.run()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "\n", + "# Wrapping up ..." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## WASM is coming, and its awesome!\n", + "\n", + "\n", + "\n", + "\n", + "* Open, low-level, fast, compact and safe\n", + "* Already works in most browsers\n", + "* Not limited to the web\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "source": [ + "\n", + "\n", + "## We Pythonista's should embrace it!\n", + "\n", + "* E.g. run a Python VM in the browser\n", + "* E.g. compile subset of Python to fast, crossplatform code\n", + "* E.g. use Python as a platform to bind and execute WASM modules" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "source": [ + "## Thanks!" + ] + } + ], + "metadata": { + "anaconda-cloud": {}, + "celltoolbar": "Slideshow", + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.0" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/WASM_almar_klein_demo/LICENSE b/docs/WASM_almar_klein_demo/LICENSE new file mode 100644 index 0000000..f8d75ba --- /dev/null +++ b/docs/WASM_almar_klein_demo/LICENSE @@ -0,0 +1,25 @@ +BSD 2-Clause License + +Copyright (c) 2018, Almar Klein +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/docs/WASM_almar_klein_demo/README.md b/docs/WASM_almar_klein_demo/README.md new file mode 100644 index 0000000..d6be6f6 --- /dev/null +++ b/docs/WASM_almar_klein_demo/README.md @@ -0,0 +1,13 @@ +# The Rocket game, implemented in Rust, running in Python, via WASM + +A [Rocket game implemented in Rust](https://github.com/aochagavia/rocket_wasm) +is compiled to WebAssembly (WASM). We take the resulting `.wasm` file, and run +it in Python using [PPCI](https://bitbucket.org/windel/ppci/). + +* `rocket.wasm`: the wasm module compiled from Rust (by Adolfo). +* `rocket.py`: the Python code to wrap the above in an app. +* `info.py`: print some info about the wasm module. +* `rocket.html`: for reference, the (nearly) original html/js to run the wasm module in the browser (standalone HTML). + +In this exercise, we take a wasm module as-is, inspect its imports and exports +(WASM clearly defines these), and use this API to run the module in a Python app. diff --git a/docs/WASM_almar_klein_demo/images/assembly1.png b/docs/WASM_almar_klein_demo/images/assembly1.png new file mode 100644 index 0000000000000000000000000000000000000000..a286bf23f249d12c9eb154bd602df7e34869674d GIT binary patch literal 15156 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 literal 0 HcmV?d00001 diff --git a/docs/WASM_almar_klein_demo/images/assembly2.png b/docs/WASM_almar_klein_demo/images/assembly2.png new file mode 100644 index 0000000000000000000000000000000000000000..0f4059a42042db1e1d512a26bcf418f9a11a1523 GIT binary patch literal 11530 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 literal 0 HcmV?d00001 diff --git a/docs/WASM_almar_klein_demo/images/github_rocket_wasm.png b/docs/WASM_almar_klein_demo/images/github_rocket_wasm.png new file mode 100644 index 0000000000000000000000000000000000000000..cba2da46776ff6e11a88d6b4facc03336035415d GIT binary patch literal 37996 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 V!tOJpoasXXp1{>%d5>QC`~&^jO9TJ_ literal 0 HcmV?d00001 diff --git a/docs/WASM_almar_klein_demo/images/github_rocket_wasm_js.png b/docs/WASM_almar_klein_demo/images/github_rocket_wasm_js.png new file mode 100644 index 0000000000000000000000000000000000000000..41229e8d1a5a11cce880690a37faab2f0f5d32be GIT binary patch literal 21383 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

p~EE(ikH8+mA|Iu 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 literal 0 HcmV?d00001 diff --git a/docs/WASM_almar_klein_demo/images/py_as_platform.png b/docs/WASM_almar_klein_demo/images/py_as_platform.png new file mode 100644 index 0000000000000000000000000000000000000000..83838ba313a7efe099c97953fc7685c952bdc9e0 GIT binary patch literal 14017 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 literal 0 HcmV?d00001 diff --git a/docs/WASM_almar_klein_demo/images/py_to_browser.png b/docs/WASM_almar_klein_demo/images/py_to_browser.png new file mode 100644 index 0000000000000000000000000000000000000000..7f817b2d274770f9d3f85c7d88cbd4a78952620e GIT binary patch literal 19954 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%0D&>56Pu(B-IB{R>c^Ov4b<)dZRV?y6 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 OrKF$^$&-8f_WuAWTHu8M literal 0 HcmV?d00001 diff --git a/docs/WASM_almar_klein_demo/images/python.png b/docs/WASM_almar_klein_demo/images/python.png new file mode 100644 index 0000000000000000000000000000000000000000..2f1715f7aae0803d6fdade173b4382c9a11b601c GIT binary patch literal 4435 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 literal 0 HcmV?d00001 diff --git a/docs/WASM_almar_klein_demo/images/rocket_in_js.png b/docs/WASM_almar_klein_demo/images/rocket_in_js.png new file mode 100644 index 0000000000000000000000000000000000000000..8987f3723640a1eb7f95ad970e2a664c7815ed55 GIT binary patch literal 28321 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 literal 0 HcmV?d00001 diff --git a/docs/WASM_almar_klein_demo/images/rocket_in_py.png b/docs/WASM_almar_klein_demo/images/rocket_in_py.png new file mode 100644 index 0000000000000000000000000000000000000000..5f17347f7dc84be1571c75b1b70e16001eae3391 GIT binary patch literal 25602 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 literal 0 HcmV?d00001 diff --git a/docs/WASM_almar_klein_demo/images/rocketgame.png b/docs/WASM_almar_klein_demo/images/rocketgame.png new file mode 100644 index 0000000000000000000000000000000000000000..135903b237b050de2cfb2a7ee4a7d9d8d918ba23 GIT binary patch literal 73262 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%0ADBRxVfg3+e@su0g7- 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/WASM_almar_klein_demo/images/start_rise_mode.png b/docs/WASM_almar_klein_demo/images/start_rise_mode.png new file mode 100644 index 0000000000000000000000000000000000000000..59bd7c36548f210e538749803872ec0074f58ff3 GIT binary patch literal 13153 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 literal 0 HcmV?d00001 diff --git a/docs/WASM_almar_klein_demo/images/wasm.png b/docs/WASM_almar_klein_demo/images/wasm.png new file mode 100644 index 0000000000000000000000000000000000000000..6964c1917cb61dd75d3d12834f6d1d641d119e16 GIT binary patch literal 7189 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 {sig.result}') +# +# print('\nExports:') +# for c in exports: +# # c.show() +# if c.kind == 'func': +# func = functions[c.ref.index - functions[0].id] +# sig = types[func.ref.index] +# print(f' {c.name}:'.ljust(20), f'{sig.params} -> {sig.result}') +# else: +# print(f' {c.kind} "{c.name}"') +# +# +# # Export it yto textual form +# with open('rocket.wat', 'wt') as f: +# f.write(wasm_module.to_string()) diff --git a/docs/WASM_almar_klein_demo/play_python.py b/docs/WASM_almar_klein_demo/play_python.py new file mode 100644 index 0000000..fa4a5c8 --- /dev/null +++ b/docs/WASM_almar_klein_demo/play_python.py @@ -0,0 +1,74 @@ +""" +You should probably just ignore this ... +""" + +import struct +from ppci.wasm.wasm2ppci import create_memories +from ppci.wasm.runtime import create_runtime +from ppci.wasm import + +wasm_data = open('rocket.wasm', 'rb').read() +wasm_module = Module(wasm_data) +memories = create_memories(wasm_module) +rt = create_runtime() +# print(memories) + +def current_memory(): + size = (mem0_end - mem0_start) // (1 << 16) + print('current memory', size) + return size +rt['current_memory'] = current_memory + +def grow_memory(delta): + global mem0_end + assert mem0_end == gen_rocket_wasm.heap_top() + print('grow_memory', delta) + gen_rocket_wasm.heap.extend(bytes(delta * 64 * 1024)) + mem0_end = gen_rocket_wasm.heap_top() + size = (mem0_end - mem0_start) // (1 << 16) + print('new memory size', size) + return size + # assert mem0_end == len(gen_rocket_wasm.heap) + 0x10000000 + +rt['grow_memory'] = grow_memory + +def get_str(ptr): + """ Get a 0 terminated string """ + data = [] + while True: + b = gen_rocket_wasm.read_mem(ptr, 1)[0] + if b == 0: + break + else: + data.append(b) + ptr += 1 + return bytes(data).decode('ascii') + +def trace_func(ptr): + # Lookup name: + print('Trace function entrance:', get_str(ptr)) + +rt['trace'] = trace_func + +print(rt) +import gen_rocket_wasm + +# Fixup external functions: +for name, f in rt.items(): + # TODO: make a choice between those two options: + gen_rocket_wasm.externals[name] = f + setattr(gen_rocket_wasm, name, f) + +# Attach memory: +mem0_start = gen_rocket_wasm.heap_top() +print('memory size:', len(memories[0]), hex(mem0_start)) +gen_rocket_wasm.heap.extend(memories[0]) +mem0_end = gen_rocket_wasm.heap_top() +wasm_mem0 = gen_rocket_wasm.wasm_mem0_address +gen_rocket_wasm.store_i32(mem0_start, wasm_mem0) + +# rocket_wasm.func_pointers[] +gen_rocket_wasm._run_init() + +gen_rocket_wasm.draw() + diff --git a/docs/WASM_almar_klein_demo/rise.css b/docs/WASM_almar_klein_demo/rise.css new file mode 100644 index 0000000..6bd83be --- /dev/null +++ b/docs/WASM_almar_klein_demo/rise.css @@ -0,0 +1,3 @@ +.reveal h1, .reveal h2, .reveal h3 { + font-family: ubuntu, helvetica, sans-serif; +} \ No newline at end of file diff --git a/docs/WASM_almar_klein_demo/rocket.html b/docs/WASM_almar_klein_demo/rocket.html new file mode 100644 index 0000000..87db3ce --- /dev/null +++ b/docs/WASM_almar_klein_demo/rocket.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + diff --git a/docs/WASM_almar_klein_demo/rocket.py b/docs/WASM_almar_klein_demo/rocket.py new file mode 100644 index 0000000..4a43ddf --- /dev/null +++ b/docs/WASM_almar_klein_demo/rocket.py @@ -0,0 +1,89 @@ +""" Run rocket.wasm in Python! + +* Load the wasm module, compile to PPCI IR and then to native. +* Load the native object in memory, feed it the API it needs (wasm imports). +* Implement a Python app that uses the exposed API (wasm exports). + +At the moment, the game is text based. But we can use Qt or SDL2 (or tk?) +to run it visually, and also feed in user interaction. +""" + +import math +import logging +import time +import io +import os + +from ppci import wasm +from ppci.utils.reporting import HtmlReportGenerator + +#logging.basicConfig(level=logging.DEBUG) # this produces so much output that it slows things down a lot +logging.basicConfig(level=logging.WARN) + +# Load the wasm module +filename = os.path.join(os.path.dirname(__file__), 'wasm', 'rocket.wasm') +game_data = open(filename, 'rb').read() +game_module = wasm.Module(game_data) + + +class BaseRocketGame: + """ Simple rocket game, text based, without user input. + """ + + def __init__(self, game_module=game_module): + # Create import dict from methods + env = {} + for name in dir(self): + if name.startswith('wasm_'): + env[name[5:]] = getattr(self, name) + self.imports = dict(env=env) + + # Instantiate game module + self.game = wasm.instantiate(game_module, self.imports, target='python') + + def run(self): + """ Enter the game's main loop. + """ + self.game.exports.resize(100, 100) + while True: + time.sleep(0.5) + self.game.exports.update(0.1) + self.game.exports.draw() + + # We never call these ... + # self.game.exports.toggle_shoot(b) + # self.game.exports.toggle_turn_left(b) + # self.game.exports.toggle_turn_right(b) + # self.game.exports.toggle_boost(b) + + def wasm_sin(self, a:float) -> float: + return math.sin(a) + + def wasm_cos(self, a:float) -> float: + return math.cos(a) + + def wasm_Math_atan(self, a:float) -> float: + return math.atan(a) + + def wasm_clear_screen(self) -> None: + print('clearing screen') + + def wasm_draw_bullet(self, x:float, y:float) -> None: + print(f'There is a bullet at {x}, {y}') + + def wasm_draw_enemy(self, x:float, y:float) -> None: + print(f'There is an enemy at {x}, {y}') + + def wasm_draw_particle(self, x:float, y:float, a:float) -> None: + print(f'There is a particle at {x}, {y} angle {a}') + + def wasm_draw_player(self, x:float, y:float, a:float) -> None: + print(f'The player is at {x}, {y} angle {a}') + + def wasm_draw_score(self, score:float) -> None: + print(f'The score is {score}!') + + +if __name__ == '__main__': + game = BaseRocketGame() + game.run() diff --git a/docs/WASM_almar_klein_demo/rocket_ai.py b/docs/WASM_almar_klein_demo/rocket_ai.py new file mode 100644 index 0000000..6354096 --- /dev/null +++ b/docs/WASM_almar_klein_demo/rocket_ai.py @@ -0,0 +1,57 @@ +import os +import time +from ppci import wasm +from rocket_qt import QtRocketGame + +# Load the wasm ai modules +filename1 = os.path.join(os.path.dirname(__file__), 'wasm', 'ai1.wat') +ai_data1 = open(filename1, 'rt').read() +ai_module1 = wasm.Module(ai_data1) +# +filename2 = os.path.join(os.path.dirname(__file__), 'wasm', 'ai2.wasm') +ai_data2 = open(filename2, 'rb').read() +ai_module2 = wasm.Module(ai_data2) + + +class AiRocketGame(QtRocketGame): + + def __init__(self, ai_module=ai_module1): + super().__init__() + self.ai = wasm.instantiate(ai_module, self.imports, target='native') + + def paintEvent(self, event): + super().paintEvent(event) + self.ai.exports.update() + + def wasm_debug(self, a:float, b:float) -> None: + print('debug', a, b) + + ## Imported methods of the AI module, which are exports to the game module + + def wasm_toggle_shoot(self, b:int) -> None: + self.game.exports.toggle_shoot(bool(b)) + + def wasm_toggle_turn_left(self, b:int) -> None: + self.game.exports.toggle_turn_left(bool(b)) + + def wasm_toggle_turn_right(self, b:int) -> None: + self.game.exports.toggle_turn_right(bool(b)) + + ## Imported methods of the game module, which are exports to the AI module + + def wasm_clear_screen(self) -> None: # [] -> [] + super().wasm_clear_screen() + self.ai.exports.clear_screen() + + def wasm_draw_enemy(self, x: float, y: float) -> None: # [(0, 'f64'), (1, 'f64')] -> [] + super().wasm_draw_enemy(x, y) + self.ai.exports.draw_enemy(x, y) + + def wasm_draw_player(self, x: float, y: float, a: float) -> None: # [(0, 'f64'), (1, 'f64'), (2, 'f64')] -> [] + super().wasm_draw_player(x, y, a) + self.ai.exports.draw_player(x, y, a) + + +if __name__ == '__main__': + game = AiRocketGame(ai_module2) + game.run() diff --git a/docs/WASM_almar_klein_demo/rocket_pt.bat b/docs/WASM_almar_klein_demo/rocket_pt.bat new file mode 100644 index 0000000..16874fd --- /dev/null +++ b/docs/WASM_almar_klein_demo/rocket_pt.bat @@ -0,0 +1 @@ +python c:\dev\pylib\rocket_rust_py\rocket_pt.py \ No newline at end of file diff --git a/docs/WASM_almar_klein_demo/rocket_pt.py b/docs/WASM_almar_klein_demo/rocket_pt.py new file mode 100644 index 0000000..7dbcb29 --- /dev/null +++ b/docs/WASM_almar_klein_demo/rocket_pt.py @@ -0,0 +1,157 @@ +""" Run the rocket game on prompt-toolkit. + +Not a lot of fun to play this way, but hey, it works over SSH! +""" + +import sys +import time +import math + +import prompt_toolkit as pt + +from rocket import BaseRocketGame + + +assert pt.__version__ > '2' + + +styles = { + 'default': 'bg:#ffffff #000000', + 'enemy': 'bg:#ffff00 #000000', + 'bullet': 'bg:#ffffff #ff0000', + 'particle': 'bg:#ffffff #888888', + 'player': 'bg:#0000ff #000000', + } + + +class RocketUiControl(pt.layout.UIControl): + + def __init__(self, paintfunc): + self._paintfunc = paintfunc + + def create_content(self, width, height): + lines = self._paintfunc(width, height) + # lines = [pt.formatted_text.to_formatted_text(line) for line in lines] + lines = [[(styles[d], s) for d, s in line] for line in lines] + return pt.layout.UIContent(lambda i: lines[i], len(lines), show_cursor=False) + + +class PtRocketGame(BaseRocketGame): + """ Rocket game with prompt_toolkit providing a drawing canvas and user input, + so that it can run in the command line, and over SSH. + """ + + def __init__(self): + BaseRocketGame.__init__(self) + + # Global key bindings. + bindings = pt.key_binding.KeyBindings() + for key in ('space', 'up', 'left', 'right', 'escape', 'q'): + bindings.add(key)(self._press_key) + + control = RocketUiControl(self.paint) + container = pt.layout.containers.Window(content=control) + self._app = pt.application.Application(layout=pt.layout.Layout(container), + key_bindings=bindings, + min_redraw_interval=0.01, + mouse_support=False, full_screen=True) + + self._size = 0, 0 + self._lasttime = time.time() + self._highscore = 0 + self._size_scale = 10 + self._key_release = {} + + def run(self): + self._app.run() + + def paint(self, w, h): + + # Resize? + if (w, h) != self._size: + self._size = w, h + self.game.exports.resize(w*self._size_scale, h*self._size_scale) + + # Init lines + lines = [] + for y in range(h+1): + lines.append([('default', ' ') for i in range(w+1)]) + self._lines = lines + + # Update and draw + progress = time.time() - self._lasttime + self._lasttime = time.time() + self.game.exports.update(progress) + self.game.exports.draw() + + self._release_keys() + self._app.invalidate() # Request a new paint event (also see app.min_redraw_interval) + return self._lines + + ## Events going into the WASM module + + def _press_key(self, event): + try: + key = event.key_sequence[0].key + except Exception: + return + self._toggle_key(key, True) + self._key_release[key] = time.time() + 0.1 + + def _release_keys(self): + now = time.time() + for key in list(self._key_release.keys()): + t = self._key_release[key] + if t < now: + self._key_release.pop(key) + self._toggle_key(key, False) + + def _toggle_key(self, key, b): + if key in (' ', 'space'): + self.game.exports.toggle_shoot(b) + elif key == 'left': + self.game.exports.toggle_turn_left(b) + elif key == 'right': + self.game.exports.toggle_turn_right(b) + elif key == 'up': + self.game.exports.toggle_boost(b) + elif key in ('q', 'escape'): + self._app.exit() + + ## Events generated by WASM module + + def wasm_clear_screen(self) -> None: # [] -> [] + pass # not needed, we start with a blanc canvas each iteration + + def _round_pos(self, x, y): + x = max(0, min(int(x / self._size_scale + 0.5), self._size[0])) + y = max(0, min(int(y / self._size_scale + 0.5), self._size[1])) + return x, y + + def wasm_draw_bullet(self, x: float, y: float) -> None: # [(0, 'f64'), (1, 'f64')] -> [] + x, y = self._round_pos(x, y) + self._lines[y][x] = 'bullet', '*' + + def wasm_draw_enemy(self, x: float, y: float) -> None: # [(0, 'f64'), (1, 'f64')] -> [] + x, y = self._round_pos(x, y) + self._lines[y][x] = 'enemy', 'O' + + def wasm_draw_particle(self, x: float, y: float, a: float) -> None: # [(0, 'f64'), (1, 'f64'), (2, 'f64')] -> [] + x, y = self._round_pos(x, y) + self._lines[y][x] = 'particle', '.' + + def wasm_draw_player(self, x: float, y: float, a: float) -> None: # [(0, 'f64'), (1, 'f64'), (2, 'f64')] -> [] + x, y = self._round_pos(x, y) + self._lines[y][x] = 'player', 'X' + + def wasm_draw_score(self, score: float) -> None: # env.draw_score: [(0, 'f64')] -> [] + score = int(score) + self._highscore = max(self._highscore, score) + text = f'Score: {score}, HighScore: {self._highscore}' + for i in range(len(text)): + self._lines[0][i] = 'default', text[i] + + +if __name__ == '__main__': + game = PtRocketGame() + game.run() diff --git a/docs/WASM_almar_klein_demo/rocket_qt.py b/docs/WASM_almar_klein_demo/rocket_qt.py new file mode 100644 index 0000000..9bb8a4e --- /dev/null +++ b/docs/WASM_almar_klein_demo/rocket_qt.py @@ -0,0 +1,105 @@ +""" Run the rocket game on Qt. +""" + +import time +import math + +from qtpy import QtWidgets, QtCore, QtGui + +from rocket import BaseRocketGame + +REL_SIZE = 2.5 + + +class QtRocketGame(BaseRocketGame, QtWidgets.QWidget): + """ Rocket game with Qt providing a drawing canvas and user input. + """ + + def __init__(self): + if not hasattr(QtWidgets, '_app'): + QtWidgets._app = QtWidgets.QApplication([]) + QtWidgets.QWidget.__init__(self, None) + BaseRocketGame.__init__(self) + self.setWindowTitle("Rocket, written in Rust, compiled to WASM, running in Python, with Qt") + self.resize(900, 700) + + self._lasttime = time.time() + self._highscore = 0 + + def run(self): + self.show() + QtWidgets.qApp.exec_() + + def paintEvent(self, event): + self._painter = QtGui.QPainter() + self._painter.begin(self) + self._painter.setRenderHint(QtGui.QPainter.Antialiasing) + + progress = time.time() - self._lasttime + self._lasttime = time.time() + self.game.exports.update(progress) + self.game.exports.draw() + + self._painter.end() + self.update() # Request a new paint event + + ## Events going into the WASM module + + def resizeEvent(self, event): + self.game.exports.resize(self.width(), self.height()) + + def keyPressEvent(self, event): + self._toggleKey(event, True) + + def keyReleaseEvent(self, event): + self._toggleKey(event, False) + + def _toggleKey(self, event, b): + if event.key() == QtCore.Qt.Key_Space: + self.game.exports.toggle_shoot(b) + elif event.key() == QtCore.Qt.Key_Left: + self.game.exports.toggle_turn_left(b) + elif event.key() == QtCore.Qt.Key_Right: + self.game.exports.toggle_turn_right(b) + elif event.key() == QtCore.Qt.Key_Up: + self.game.exports.toggle_boost(b) + + ## Events generated by WASM module + + def wasm_clear_screen(self) -> None: # [] -> [] + pass # not needed, we start with a blanc canvas each iteration + + def wasm_draw_bullet(self, x: float, y: float) -> None: # [(0, 'f64'), (1, 'f64')] -> [] + self._painter.setBrush(QtGui.QColor('#0f0')) + self._painter.drawEllipse(x, y, REL_SIZE*3, REL_SIZE*3) + + def wasm_draw_enemy(self, x: float, y: float) -> None: # [(0, 'f64'), (1, 'f64')] -> [] + self._painter.setBrush(QtGui.QColor('#ff0')) + self._painter.drawEllipse(x, y, REL_SIZE*14, REL_SIZE*14) + + def wasm_draw_particle(self, x: float, y: float, a: float) -> None: # [(0, 'f64'), (1, 'f64'), (2, 'f64')] -> [] + self._painter.setBrush(QtGui.QColor('#f04')) + self._painter.drawEllipse(x, y, REL_SIZE, REL_SIZE) + + def wasm_draw_player(self, x: float, y: float, a: float) -> None: # [(0, 'f64'), (1, 'f64'), (2, 'f64')] -> [] + p = QtGui.QPainterPath() + self._painter.save() + self._painter.translate(x, y) + self._painter.rotate(a*180/math.pi-90) + self._painter.translate(-x, -y) + p.moveTo(x, y + 12*REL_SIZE) + p.lineTo(x - 6*REL_SIZE, y - 6*REL_SIZE) + p.lineTo(x + 6*REL_SIZE, y - 6*REL_SIZE) + p.lineTo(x, y + 12*REL_SIZE) + self._painter.fillPath(p, QtGui.QBrush(QtGui.QColor("#00f"))) + self._painter.restore() + + def wasm_draw_score(self, score: float) -> None: # env.draw_score: [(0, 'f64')] -> [] + score = int(score) + self._highscore = max(self._highscore, score) + self._painter.drawText(0, 20, f'Score: {score}, HighScore: {self._highscore}') + + +if __name__ == '__main__': + game = QtRocketGame() + game.run() diff --git a/docs/WASM_almar_klein_demo/wasm/ai1.wat b/docs/WASM_almar_klein_demo/wasm/ai1.wat new file mode 100644 index 0000000..a97261a --- /dev/null +++ b/docs/WASM_almar_klein_demo/wasm/ai1.wat @@ -0,0 +1,18 @@ +(module + (import "env" "toggle_shoot" (func $toggle_shoot (param i32))) + (import "env" "toggle_turn_left" (func $toggle_turn_left (param i32))) + (import "env" "toggle_turn_right" (func $toggle_turn_right (param i32))) + (export "clear_screen" (func $clear_screen)) + (export "draw_player" (func $draw_player)) + (export "draw_enemy" (func $draw_enemy)) + (export "update" (func $update)) + (func $clear_screen) + (func $draw_player (param $0 f32) (param $1 f32) (param $2 f32)) + (func $draw_enemy (param $0 f32) (param $1 f32)) + (func $update + (i32.const 1) + (call $toggle_turn_left) + (i32.const 1) + (call $toggle_shoot) + ) +) \ No newline at end of file diff --git a/docs/WASM_almar_klein_demo/wasm/ai2.c b/docs/WASM_almar_klein_demo/wasm/ai2.c new file mode 100644 index 0000000..bf45abe --- /dev/null +++ b/docs/WASM_almar_klein_demo/wasm/ai2.c @@ -0,0 +1,62 @@ +#include +#include + +/* Imports */ +void toggle_shoot(int b); +void toggle_turn_left(int b); +void toggle_turn_right(int b); +float Math_atan(float v); +//void debug(float a, float b); + +const float pi = 3.14159265358979; + +float playerX = 0.0; +float playerY = 0.0; +float playerA = 0.0; + +float nearestEnemyX = 0.0; +float nearestEnemyY = 0.0; +float nearestEnemyD = 99999999999999999.0; + +void clear_screen() { // reset nearest enemy + nearestEnemyX = 0.0; + nearestEnemyY = 0.0; + nearestEnemyD = 99999999999999999.0; +} + +void draw_player(float x, float y, float a) { + playerX = x; + playerY = y; + while (a > 2*pi) a -= 2*pi; + while (a < 0) a += 2*pi2; + playerA = a; +} + +void draw_enemy(float x, float y) { + float d = (x - playerX) * (x - playerX) + (y - playerY) * (y - playerY); + if (d < nearestEnemyD) { + nearestEnemyX = x; + nearestEnemyY = y; + nearestEnemyD = d; + } +} + +void update() { + float enemyA = Math_atan((nearestEnemyY - playerY) / (nearestEnemyX - playerX)); + + float a = enemyA - playerA; + while (a > +pi) a -= 2*pi; + while (a < -pi) a += 2*pi; + + if (fabsf(a) < 1.0) { + toggle_shoot(1); + } else { + toggle_shoot(0); + } + + if (a > 0.0) { + toggle_turn_left(0); toggle_turn_right(1); + } else { + toggle_turn_left(1); toggle_turn_right(0); + } +} diff --git a/docs/WASM_almar_klein_demo/wasm/ai2.wasm b/docs/WASM_almar_klein_demo/wasm/ai2.wasm new file mode 100644 index 0000000000000000000000000000000000000000..75abeaa671ebc82536484199411adb2499836392 GIT binary patch literal 723 zcmZ8dv2GJV5S^L5vqjcX4#|ZJ7ps#iJ|J?3PgE3q0SR}fWU-O#v$ei}T%0fhDmp?W zBpSpY(4ru@AyTRol!%(&U}o`w z5kK@(vVpS2^E;37a+c<0UI0kkE0@#h+@|Z~?BPz|$tAJ>^D`=GV2<4ZzzyKW+Nk~x+-mZdQb^o`6ys<@ArxJS`>%=#Y; zO3<$ZZj@*gt6J13qmCS}z#_aN?=341Ysrz;-}qp)rnGTdl;q_SnQ#&LQG@ds+0sL{ zga#W+!d$bZI@4P6(Js4P$Cm1hw?q>*f$w5qm)rZ9;jKh8!3cZEh9i{gpufStkxUa; rr~}O}aip}~$xXVD^mHKWK@#bJ?*@?cTQF$Bumz?CBOP3R`TF=TVkw^8 literal 0 HcmV?d00001 diff --git a/docs/WASM_almar_klein_demo/wasm/rocket.wasm b/docs/WASM_almar_klein_demo/wasm/rocket.wasm new file mode 100644 index 0000000000000000000000000000000000000000..6a550a2b44e6647a4cffef3875ed339b766e0725 GIT binary patch literal 58827 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 literal 0 HcmV?d00001 diff --git a/docs/WASM_almar_klein_demo/wasm/rocket.wat b/docs/WASM_almar_klein_demo/wasm/rocket.wat new file mode 100644 index 0000000..a72570f --- /dev/null +++ b/docs/WASM_almar_klein_demo/wasm/rocket.wat @@ -0,0 +1,24983 @@ +(module + (type 0 (func (param i32 i32 i32) (result i32))) + (type 1 (func)) + (type 2 (func (param i32))) + (type 3 (func (param i32) (result i64))) + (type 4 (func (param i32 i32 i32))) + (type 5 (func (param i32 i32))) + (type 6 (func (param i32 i32) (result i32))) + (type 7 (func (param f64) (result f64))) + (type 8 (func (param f64 f64))) + (type 9 (func (param f64 f64 f64))) + (type 10 (func (param f64))) + (type 11 (func (param i32 i32 i32 i32))) + (type 12 (func (param i32 i32 f64 f64))) + (type 13 (func (param i32) (result i32))) + (type 14 (func (result i32))) + (type 15 (func (param i32 i32 i32 i32 i32 i32) (result i32))) + (type 16 (func (param i32 i32 i32 i32 i32 i32 i32) (result i32))) + (import "env" "Math_atan" (func 0 (type 7))) + (import "env" "clear_screen" (func 1 (type 1))) + (import "env" "cos" (func 2 (type 7))) + (import "env" "draw_bullet" (func 3 (type 8))) + (import "env" "draw_enemy" (func 4 (type 8))) + (import "env" "draw_particle" (func 5 (type 9))) + (import "env" "draw_player" (func 6 (type 9))) + (import "env" "draw_score" (func 7 (type 10))) + (import "env" "sin" (func 8 (type 7))) + (table 0 72 72 anyfunc) + (memory 0 17) + (export "memory" (memory 0)) + (export "resize" (func 22)) + (export "draw" (func 23)) + (export "update" (func 24)) + (export "toggle_shoot" (func 25)) + (export "toggle_boost" (func 26)) + (export "toggle_turn_left" (func 27)) + (export "toggle_turn_right" (func 28)) + (export "alloc" (func 30)) + (export "dealloc" (func 31)) + (export "dealloc_str" (func 32)) + (start 147) + (elem (i32.const 0) 146 20 19 29 36 91 56 131 130 98 126 127 116 89 120 115 114 125 142 16 10 15 17 9 45 96 93 95 52 66 53 48 46 47 49 51 58 57 41 65 97 92 94 71 73 90 87 61 80 81 82 83 84 70 69 74 88 102 50 43 44 104 105 106 133 132 134 135 136 117 118 119) + (func 9 (type 3) + (i64.const 1229646359891580772) + ) + (func 10 (type 5) (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i64 i64) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 128) + (i32.sub) + (tee_local 13) + (i32.store align=4 offset=4) + (get_local 0) + (i32.load align=4) + (tee_local 0) + (i32.load align=1) + (set_local 2) + (get_local 0) + (i32.const 0) + (i32.store align=1) + (block emptyblock) + (get_local 2) + (i32.eqz) + (br_if 0) + (get_local 13) + (i64.const 42) + (i64.store align=8 offset=16) + (get_local 13) + (i64.const 42) + (i64.store align=8 offset=8) + (get_local 13) + (i32.const 96) + (i32.add) + (get_local 13) + (i32.const 8) + (i32.add) + (f64.const 1024.0) + (f64.const 600.0) + (call 21) + (get_local 13) + (i32.const 64) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 0) + (get_local 13) + (i32.const 96) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 7) + (i64.load align=8) + (i64.store align=8) + (get_local 13) + (i32.const 64) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 6) + (get_local 13) + (i32.const 96) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 8) + (i64.load align=8) + (i64.store align=8) + (get_local 13) + (get_local 13) + (i64.load align=8 offset=96) + (i64.store align=8 offset=64) + (block emptyblock) + (i32.const 32000) + (call 107) + (tee_local 3) + (i32.eqz) + (br_if 0) + (get_local 7) + (get_local 0) + (i64.load align=8) + (i64.store align=8) + (get_local 8) + (get_local 6) + (i64.load align=8) + (i64.store align=8) + (get_local 13) + (get_local 13) + (i64.load align=8 offset=64) + (i64.store align=8 offset=96) + (get_local 0) + (get_local 7) + (i64.load align=8) + (i64.store align=8) + (get_local 6) + (get_local 8) + (i64.load align=8) + (i64.store align=8) + (get_local 13) + (get_local 13) + (i64.load align=8 offset=96) + (i64.store align=8 offset=64) + (get_local 13) + (i32.const 40) + (i32.add) + (i32.const 16) + (i32.add) + (get_local 0) + (i64.load align=8) + (i64.store align=8) + (get_local 13) + (i32.const 40) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 6) + (i64.load align=8) + (i64.store align=8) + (get_local 13) + (get_local 13) + (i64.load align=8 offset=64) + (i64.store align=8 offset=40) + (i32.const 1) + (call 107) + (tee_local 4) + (i32.eqz) + (br_if 0) + (get_local 4) + (i32.const 0) + (i32.store8 align=1) + (get_local 13) + (i32.const 64) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 0) + (get_local 13) + (i32.const 40) + (i32.add) + (i32.const 16) + (i32.add) + (i64.load align=8) + (i64.store align=8) + (get_local 13) + (i32.const 64) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 5) + (get_local 13) + (i32.const 40) + (i32.add) + (i32.const 8) + (i32.add) + (i64.load align=8) + (i64.store align=8) + (get_local 13) + (get_local 13) + (i64.load align=8 offset=40) + (i64.store align=8 offset=64) + (get_local 13) + (i32.const 96) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 6) + (get_local 0) + (i64.load align=8) + (tee_local 14) + (i64.store align=8) + (get_local 13) + (i32.const 96) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 7) + (get_local 5) + (i64.load align=8) + (tee_local 15) + (i64.store align=8) + (get_local 13) + (i32.const 8) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 8) + (get_local 14) + (i64.store align=8) + (get_local 13) + (i32.const 8) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 9) + (get_local 15) + (i64.store align=8) + (get_local 13) + (get_local 13) + (i64.load align=8 offset=64) + (tee_local 14) + (i64.store align=8 offset=96) + (get_local 13) + (get_local 14) + (i64.store align=8 offset=8) + (get_local 13) + (i32.const 83) + (i32.add) + (get_local 8) + (i64.load align=8) + (i64.store align=1) + (get_local 13) + (i32.const 75) + (i32.add) + (get_local 9) + (i64.load align=8) + (i64.store align=1) + (get_local 13) + (get_local 13) + (i64.load align=8 offset=8) + (i64.store align=1 offset=67) + (get_local 13) + (i32.const 96) + (i32.add) + (i32.const 26) + (i32.add) + (tee_local 10) + (get_local 13) + (i32.const 64) + (i32.add) + (i32.const 26) + (i32.add) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 13) + (i32.const 96) + (i32.add) + (i32.const 24) + (i32.add) + (tee_local 11) + (get_local 13) + (i32.const 64) + (i32.add) + (i32.const 24) + (i32.add) + (i32.load16_u align=1) + (i32.store16 align=2) + (get_local 6) + (get_local 0) + (i64.load align=1) + (i64.store align=4) + (get_local 7) + (get_local 5) + (i64.load align=1) + (i64.store align=4) + (get_local 13) + (get_local 13) + (i64.load align=1 offset=64) + (i64.store align=4 offset=96) + (get_local 13) + (i32.const 8) + (i32.add) + (i32.const 26) + (i32.add) + (tee_local 5) + (get_local 10) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 13) + (i32.const 8) + (i32.add) + (i32.const 24) + (i32.add) + (tee_local 12) + (get_local 11) + (i32.load16_u align=2) + (i32.store16 align=2) + (get_local 8) + (get_local 6) + (i64.load align=4) + (i64.store align=4) + (get_local 9) + (get_local 7) + (i64.load align=4) + (i64.store align=4) + (get_local 13) + (get_local 13) + (i64.load align=4 offset=96) + (i64.store align=4 offset=8) + (i32.const 152) + (call 107) + (tee_local 0) + (i32.eqz) + (br_if 0) + (get_local 10) + (get_local 5) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 11) + (get_local 12) + (i32.load16_u align=2) + (i32.store16 align=2) + (get_local 6) + (get_local 8) + (i64.load align=4) + (i64.store align=4) + (get_local 7) + (get_local 9) + (i64.load align=4) + (i64.store align=4) + (get_local 13) + (get_local 13) + (i64.load align=4 offset=8) + (i64.store align=4 offset=96) + (get_local 0) + (get_local 4) + (i32.store align=4) + (get_local 0) + (i32.const 0) + (i32.store8 align=1 offset=4) + (get_local 0) + (i32.const 31) + (i32.add) + (get_local 10) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 0) + (i32.const 29) + (i32.add) + (get_local 11) + (i32.load16_u align=2) + (i32.store16 align=1) + (get_local 0) + (i32.const 21) + (i32.add) + (get_local 6) + (i64.load align=4) + (i64.store align=1) + (get_local 0) + (i32.const 13) + (i32.add) + (get_local 7) + (i64.load align=4) + (i64.store align=1) + (get_local 0) + (get_local 13) + (i64.load align=4 offset=96) + (i64.store align=1 offset=5) + (get_local 0) + (i64.const 4652218415073722368) + (i64.store align=1 offset=32) + (get_local 0) + (i64.const 4648488871632306176) + (i64.store align=1 offset=40) + (get_local 0) + (get_local 3) + (i32.store align=1 offset=48) + (get_local 0) + (i32.const 1000) + (i32.store align=1 offset=52) + (get_local 0) + (i32.const 0) + (i32.store align=1 offset=56) + (get_local 0) + (i32.const 8) + (i32.store align=1 offset=60) + (get_local 0) + (i32.const 0) + (i32.store align=1 offset=64) + (get_local 0) + (i32.const 0) + (i32.store align=1 offset=68) + (get_local 0) + (i32.const 8) + (i32.store align=1 offset=72) + (get_local 0) + (i32.const 0) + (i32.store align=1 offset=76) + (get_local 0) + (i32.const 0) + (i32.store align=1 offset=80) + (get_local 0) + (i32.const 0) + (i32.store align=1 offset=88) + (get_local 0) + (i64.const 42) + (i64.store align=1 offset=96) + (get_local 0) + (i64.const 42) + (i64.store align=1 offset=104) + (get_local 0) + (i64.const 0) + (i64.store align=1 offset=112) + (get_local 0) + (i64.const 0) + (i64.store align=1 offset=120) + (get_local 0) + (i64.const 0) + (i64.store align=1 offset=128) + (get_local 0) + (i64.const 0) + (i64.store align=1 offset=136) + (get_local 0) + (i32.const 0) + (i32.store align=1 offset=144) + (get_local 2) + (i32.load align=4) + (get_local 0) + (i32.store align=4) + (i32.const 0) + (get_local 13) + (i32.const 128) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (unreachable) + (unreachable) + (end) + (i32.const 192) + (call 139) + (unreachable) + ) + (func 11 (type 4) (local i32) + (block emptyblock) + (i32.const 8) + (call 107) + (tee_local 3) + (br_if 0) + (unreachable) + (unreachable) + (end) + (get_local 3) + (get_local 1) + (i32.store align=4 offset=4) + (get_local 3) + (get_local 0) + (i32.store align=4) + (get_local 3) + (i32.const 340) + (get_local 2) + (call 78) + (unreachable) + ) + (func 12 (type 2) (local i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 4) + (i32.store align=4 offset=4) + (i32.const 4) + (set_local 3) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.const 4) + (i32.add) + (i32.load align=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const 48) + (i32.mul) + (tee_local 3) + (i32.const -1) + (i32.le_s) + (br_if 2) + (get_local 0) + (i32.load align=4) + (get_local 1) + (i32.const 24) + (i32.mul) + (i32.const 8) + (get_local 3) + (i32.const 8) + (get_local 4) + (call 145) + (tee_local 2) + (i32.eqz) + (br_if 3) + (get_local 1) + (i32.const 1) + (i32.shl) + (set_local 3) + (br 1) + (end) + (i32.const 96) + (call 107) + (tee_local 2) + (i32.eqz) + (br_if 3) + (end) + (get_local 0) + (get_local 2) + (i32.store align=4) + (get_local 0) + (i32.const 4) + (i32.add) + (get_local 3) + (i32.store align=4) + (i32.const 0) + (get_local 4) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (i32.const 648) + (call 139) + (unreachable) + (end) + (unreachable) + (unreachable) + (end) + (unreachable) + (unreachable) + ) + (func 13 (type 2) (local i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 4) + (i32.store align=4 offset=4) + (i32.const 4) + (set_local 3) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.const 4) + (i32.add) + (i32.load align=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const 6) + (i32.shl) + (tee_local 3) + (i32.const -1) + (i32.le_s) + (br_if 2) + (get_local 0) + (i32.load align=4) + (get_local 1) + (i32.const 5) + (i32.shl) + (i32.const 8) + (get_local 3) + (i32.const 8) + (get_local 4) + (call 145) + (tee_local 2) + (i32.eqz) + (br_if 3) + (get_local 1) + (i32.const 1) + (i32.shl) + (set_local 3) + (br 1) + (end) + (i32.const 128) + (call 107) + (tee_local 2) + (i32.eqz) + (br_if 3) + (end) + (get_local 0) + (get_local 2) + (i32.store align=4) + (get_local 0) + (i32.const 4) + (i32.add) + (get_local 3) + (i32.store align=4) + (i32.const 0) + (get_local 4) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (i32.const 648) + (call 139) + (unreachable) + (end) + (unreachable) + (unreachable) + (end) + (unreachable) + (unreachable) + ) + (func 14 (type 2) (local i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 4) + (i32.store align=4 offset=4) + (i32.const 4) + (set_local 3) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.const 4) + (i32.add) + (i32.load align=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const 48) + (i32.mul) + (tee_local 3) + (i32.const -1) + (i32.le_s) + (br_if 2) + (get_local 0) + (i32.load align=4) + (get_local 1) + (i32.const 24) + (i32.mul) + (i32.const 8) + (get_local 3) + (i32.const 8) + (get_local 4) + (call 145) + (tee_local 2) + (i32.eqz) + (br_if 3) + (get_local 1) + (i32.const 1) + (i32.shl) + (set_local 3) + (br 1) + (end) + (i32.const 96) + (call 107) + (tee_local 2) + (i32.eqz) + (br_if 3) + (end) + (get_local 0) + (get_local 2) + (i32.store align=4) + (get_local 0) + (i32.const 4) + (i32.add) + (get_local 3) + (i32.store align=4) + (i32.const 0) + (get_local 4) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (i32.const 648) + (call 139) + (unreachable) + (end) + (unreachable) + (unreachable) + (end) + (unreachable) + (unreachable) + ) + (func 15 (type 5) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 2) + (i32.store align=4 offset=4) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 2) + (i32.const 12) + (i32.add) + (get_local 1) + (call 10) + (i32.const 0) + (get_local 2) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + ) + (func 16 (type 2) + + ) + (func 17 (type 2) + + ) + (func 18 (type 5) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 64) + (i32.sub) + (tee_local 2) + (i32.store align=4 offset=4) + (get_local 2) + (i32.const 368) + (i32.store align=4 offset=8) + (get_local 2) + (i32.const 43) + (i32.store align=4 offset=12) + (get_local 2) + (get_local 1) + (i32.store8 align=1 offset=20) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=16) + (get_local 2) + (i32.const 48) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 1) + (i32.store align=4) + (get_local 2) + (i32.const 2) + (i32.store align=4 offset=52) + (get_local 2) + (get_local 2) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=56) + (get_local 2) + (i32.const 6944) + (i32.store align=4 offset=32) + (get_local 2) + (i32.const 2) + (i32.store align=4 offset=28) + (get_local 2) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=48) + (get_local 2) + (i32.const 500) + (i32.store align=4 offset=24) + (get_local 2) + (i32.const 24) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 2) + (get_local 2) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=40) + (get_local 2) + (i32.const 44) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 2) + (i32.const 24) + (i32.add) + (i32.const 560) + (call 141) + (unreachable) + ) + (func 19 (type 6) + (get_local 1) + (get_local 0) + (i32.load align=4) + (get_local 0) + (i32.load align=4 offset=4) + (call 123) + ) + (func 20 (type 6) + (i32.const 688) + (i32.const 25) + (get_local 1) + (call 124) + ) + (func 21 (type 12) (local i64 i64 i64 i64 i64 i64 i64) + (block emptyblock) + (block emptyblock) + (get_local 2) + (f64.const 0.0) + (f64.gt) + (i32.eqz) + (br_if 0) + (get_local 1) + (get_local 1) + (i64.load align=8 offset=8) + (i64.const 1) + (i64.or) + (tee_local 4) + (get_local 1) + (i64.load align=8) + (tee_local 6) + (i64.const 6364136223846793005) + (i64.mul) + (i64.add) + (tee_local 7) + (i64.const 6364136223846793005) + (i64.mul) + (get_local 4) + (i64.add) + (tee_local 5) + (i64.store align=8) + (get_local 3) + (f64.const 0.0) + (f64.gt) + (i32.eqz) + (br_if 1) + (get_local 1) + (get_local 4) + (get_local 5) + (i64.const 6364136223846793005) + (i64.mul) + (get_local 4) + (i64.add) + (tee_local 8) + (i64.const 6364136223846793005) + (i64.mul) + (get_local 4) + (i64.add) + (tee_local 9) + (i64.const 6364136223846793005) + (i64.mul) + (i64.add) + (tee_local 10) + (i64.const 6364136223846793005) + (i64.mul) + (get_local 4) + (i64.add) + (i64.store align=8) + (get_local 0) + (get_local 6) + (i64.const 18) + (i64.shr_u) + (get_local 6) + (i64.xor) + (i64.const 27) + (i64.shr_u) + (i32.wrap/i64) + (get_local 6) + (i64.const 59) + (i64.shr_u) + (i32.wrap/i64) + (i32.rotr) + (i64.extend_u/i32) + (i64.const 32) + (i64.shl) + (i64.const 4503595332403200) + (i64.and) + (get_local 7) + (i64.const 18) + (i64.shr_u) + (get_local 7) + (i64.xor) + (i64.const 27) + (i64.shr_u) + (i32.wrap/i64) + (get_local 7) + (i64.const 59) + (i64.shr_u) + (i32.wrap/i64) + (i32.rotr) + (i64.extend_u/i32) + (i64.or) + (i64.const 4607182418800017408) + (i64.or) + (f64.reinterpret/i64) + (f64.const -1.0) + (f64.add) + (get_local 2) + (f64.mul) + (f64.const 0.0) + (f64.add) + (f64.store align=8) + (get_local 0) + (get_local 8) + (i64.const 18) + (i64.shr_u) + (get_local 8) + (i64.xor) + (i64.const 27) + (i64.shr_u) + (i32.wrap/i64) + (get_local 8) + (i64.const 59) + (i64.shr_u) + (i32.wrap/i64) + (i32.rotr) + (i64.extend_u/i32) + (get_local 5) + (i64.const 18) + (i64.shr_u) + (get_local 5) + (i64.xor) + (i64.const 27) + (i64.shr_u) + (i32.wrap/i64) + (get_local 5) + (i64.const 59) + (i64.shr_u) + (i32.wrap/i64) + (i32.rotr) + (i64.extend_u/i32) + (i64.const 32) + (i64.shl) + (i64.const 4503595332403200) + (i64.and) + (i64.or) + (i64.const 4607182418800017408) + (i64.or) + (f64.reinterpret/i64) + (f64.const -1.0) + (f64.add) + (get_local 3) + (f64.mul) + (f64.const 0.0) + (f64.add) + (f64.store align=8 offset=8) + (get_local 0) + (get_local 9) + (i64.const 18) + (i64.shr_u) + (get_local 9) + (i64.xor) + (i64.const 27) + (i64.shr_u) + (i32.wrap/i64) + (get_local 9) + (i64.const 59) + (i64.shr_u) + (i32.wrap/i64) + (i32.rotr) + (i64.extend_u/i32) + (i64.const 32) + (i64.shl) + (i64.const 4503595332403200) + (i64.and) + (get_local 10) + (i64.const 18) + (i64.shr_u) + (get_local 10) + (i64.xor) + (i64.const 27) + (i64.shr_u) + (i32.wrap/i64) + (get_local 10) + (i64.const 59) + (i64.shr_u) + (i32.wrap/i64) + (i32.rotr) + (i64.extend_u/i32) + (i64.or) + (i64.const 4607182418800017408) + (i64.or) + (f64.reinterpret/i64) + (f64.const -1.0) + (f64.add) + (f64.store align=8 offset=16) + (return) + (end) + (i32.const 608) + (i32.const 37) + (i32.const 592) + (call 11) + (unreachable) + (end) + (i32.const 608) + (i32.const 37) + (i32.const 592) + (call 11) + (unreachable) + ) + (func 22 (type 8) (local i32 i32 i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 80) + (i32.sub) + (tee_local 7) + (i32.store align=4 offset=4) + (get_local 7) + (i64.const 42) + (i64.store align=8 offset=24) + (get_local 7) + (i64.const 42) + (i64.store align=8 offset=16) + (get_local 7) + (i32.const 56) + (i32.add) + (get_local 7) + (i32.const 16) + (i32.add) + (get_local 0) + (get_local 1) + (call 21) + (get_local 7) + (i32.const 32) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 3) + (get_local 7) + (i32.const 56) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 4) + (i64.load align=8) + (i64.store align=8) + (get_local 7) + (i32.const 32) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 5) + (get_local 7) + (i32.const 56) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 6) + (i64.load align=8) + (i64.store align=8) + (get_local 7) + (get_local 7) + (i64.load align=8 offset=56) + (i64.store align=8 offset=32) + (block emptyblock) + (block emptyblock) + (i32.const 32000) + (call 107) + (tee_local 2) + (i32.eqz) + (br_if 0) + (get_local 4) + (get_local 3) + (i64.load align=8) + (i64.store align=8) + (get_local 6) + (get_local 5) + (i64.load align=8) + (i64.store align=8) + (get_local 7) + (get_local 7) + (i64.load align=8 offset=32) + (i64.store align=8 offset=56) + (get_local 3) + (get_local 4) + (i64.load align=8) + (i64.store align=8) + (get_local 5) + (get_local 6) + (i64.load align=8) + (i64.store align=8) + (get_local 7) + (get_local 7) + (i64.load align=8 offset=56) + (i64.store align=8 offset=32) + (get_local 4) + (get_local 3) + (i64.load align=8) + (i64.store align=8) + (get_local 6) + (get_local 5) + (i64.load align=8) + (i64.store align=8) + (get_local 7) + (get_local 7) + (i64.load align=8 offset=32) + (i64.store align=8 offset=56) + (get_local 7) + (i32.const 800) + (i32.store align=4 offset=12) + (i32.const 0) + (i32.load align=4 offset=804) + (i32.const 3) + (i32.eq) + (br_if 1) + (get_local 7) + (get_local 7) + (i32.const 12) + (i32.add) + (i32.store align=4 offset=16) + (get_local 7) + (get_local 7) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=32) + (i32.const 804) + (get_local 7) + (i32.const 32) + (i32.add) + (i32.const 320) + (call 103) + (br 1) + (end) + (unreachable) + (unreachable) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=800) + (tee_local 3) + (i32.load align=4) + (tee_local 4) + (i32.load8_u align=1) + (br_if 0) + (get_local 4) + (i32.const 1) + (i32.store8 align=1) + (call 86) + (tee_local 4) + (i32.eqz) + (br_if 1) + (block emptyblock) + (block emptyblock) + (get_local 4) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 4) + (i32.const 4) + (i32.add) + (set_local 5) + (get_local 4) + (i32.load align=4 offset=4) + (set_local 4) + (br 1) + (end) + (get_local 4) + (i64.const 1) + (i64.store align=4) + (get_local 4) + (i32.const 4) + (i32.add) + (set_local 5) + (i32.const 0) + (set_local 4) + (end) + (get_local 5) + (get_local 4) + (i32.store align=1) + (get_local 3) + (i32.const 4) + (i32.add) + (i32.load8_u align=1) + (br_if 2) + (get_local 7) + (get_local 4) + (i32.const 0) + (i32.ne) + (i32.store8 align=1 offset=32) + (block emptyblock) + (get_local 3) + (i32.const 52) + (i32.add) + (i32.load align=4) + (i32.eqz) + (br_if 0) + (get_local 3) + (i32.const 48) + (i32.add) + (i32.load align=4) + (call 109) + (end) + (block emptyblock) + (get_local 3) + (i32.const 64) + (i32.add) + (i32.load align=4) + (i32.eqz) + (br_if 0) + (get_local 3) + (i32.const 60) + (i32.add) + (i32.load align=4) + (call 109) + (end) + (block emptyblock) + (get_local 3) + (i32.const 76) + (i32.add) + (tee_local 4) + (i32.load align=4) + (i32.eqz) + (br_if 0) + (get_local 3) + (i32.const 72) + (i32.add) + (i32.load align=4) + (call 109) + (end) + (get_local 3) + (get_local 7) + (i64.load align=8 offset=56) + (i64.store align=8 offset=8) + (get_local 3) + (i32.const 24) + (i32.add) + (get_local 7) + (i32.const 56) + (i32.add) + (i32.const 16) + (i32.add) + (i64.load align=8) + (i64.store align=8) + (get_local 3) + (i32.const 16) + (i32.add) + (get_local 7) + (i32.const 56) + (i32.add) + (i32.const 8) + (i32.add) + (i64.load align=8) + (i64.store align=8) + (get_local 3) + (i32.const 32) + (i32.add) + (get_local 0) + (f64.store align=8) + (get_local 3) + (i32.const 40) + (i32.add) + (get_local 1) + (f64.store align=8) + (get_local 3) + (i32.const 48) + (i32.add) + (get_local 2) + (i32.store align=4) + (get_local 3) + (i32.const 52) + (i32.add) + (i32.const 1000) + (i32.store align=4) + (get_local 3) + (i32.const 56) + (i32.add) + (i32.const 0) + (i32.store align=4) + (get_local 3) + (i32.const 60) + (i32.add) + (i32.const 8) + (i32.store align=4) + (get_local 3) + (i32.const 64) + (i32.add) + (i32.const 0) + (i32.store align=4) + (get_local 3) + (i32.const 68) + (i32.add) + (i32.const 0) + (i32.store align=4) + (get_local 3) + (i32.const 72) + (i32.add) + (i32.const 8) + (i32.store align=4) + (get_local 4) + (i32.const 0) + (i32.store align=4) + (get_local 3) + (i32.const 80) + (i32.add) + (i32.const 0) + (i32.store align=4) + (get_local 3) + (i32.const 88) + (i32.add) + (i32.const 0) + (i32.store align=4) + (get_local 3) + (i32.const 96) + (i32.add) + (i64.const 42) + (i64.store align=8) + (get_local 3) + (i32.const 104) + (i32.add) + (i64.const 42) + (i64.store align=8) + (get_local 3) + (i32.const 112) + (i32.add) + (i64.const 0) + (i64.store align=8) + (get_local 3) + (i32.const 120) + (i32.add) + (i64.const 0) + (i64.store align=8) + (get_local 3) + (i32.const 128) + (i32.add) + (i64.const 0) + (i64.store align=8) + (get_local 3) + (i32.const 136) + (i32.add) + (i64.const 0) + (i64.store align=8) + (get_local 3) + (i32.const 144) + (i32.add) + (i32.const 0) + (i32.store align=4) + (block emptyblock) + (get_local 7) + (i32.load8_u align=1 offset=32) + (br_if 0) + (call 86) + (tee_local 4) + (i32.eqz) + (br_if 4) + (block emptyblock) + (get_local 4) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 4) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 1) + (get_local 3) + (i32.const 4) + (i32.add) + (i32.const 1) + (i32.store8 align=1) + (br 1) + (end) + (get_local 4) + (i64.const 1) + (i64.store align=4) + (get_local 4) + (i32.const 0) + (i32.store align=1 offset=4) + (end) + (get_local 3) + (i32.load align=4) + (i32.const 0) + (i32.store8 align=1) + (i32.const 0) + (get_local 7) + (i32.const 80) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (i32.const 288) + (i32.const 32) + (i32.const 264) + (call 11) + (unreachable) + (end) + (call 40) + (unreachable) + (end) + (get_local 3) + (get_local 4) + (i32.const 0) + (i32.ne) + (call 18) + (unreachable) + (end) + (call 40) + (unreachable) + ) + (func 23 (type 1) (local i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 3) + (i32.store align=4 offset=4) + (get_local 3) + (i32.const 800) + (i32.store align=4 offset=4) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=804) + (i32.const 3) + (i32.eq) + (br_if 0) + (get_local 3) + (get_local 3) + (i32.const 4) + (i32.add) + (i32.store align=4 offset=8) + (get_local 3) + (get_local 3) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=12) + (i32.const 804) + (get_local 3) + (i32.const 12) + (i32.add) + (i32.const 320) + (call 103) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=800) + (tee_local 0) + (i32.load align=4) + (tee_local 2) + (i32.load8_u align=1) + (br_if 0) + (get_local 2) + (i32.const 1) + (i32.store8 align=1) + (call 86) + (tee_local 2) + (i32.eqz) + (br_if 1) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 2) + (i32.const 4) + (i32.add) + (set_local 1) + (get_local 2) + (i32.load align=4 offset=4) + (set_local 2) + (br 1) + (end) + (get_local 2) + (i64.const 1) + (i64.store align=4) + (get_local 2) + (i32.const 4) + (i32.add) + (set_local 1) + (i32.const 0) + (set_local 2) + (end) + (get_local 1) + (get_local 2) + (i32.store align=1) + (get_local 0) + (i32.const 4) + (i32.add) + (i32.load8_u align=1) + (br_if 2) + (get_local 3) + (get_local 2) + (i32.const 0) + (i32.ne) + (i32.store8 align=1) + (call 1) + (block emptyblock) + (get_local 0) + (i32.const 56) + (i32.add) + (i32.load align=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.const 48) + (i32.add) + (i32.load align=4) + (tee_local 2) + (get_local 1) + (i32.const 5) + (i32.shl) + (i32.add) + (set_local 1) + (loop emptyblock) + (get_local 2) + (f64.load align=8) + (get_local 2) + (i32.const 8) + (i32.add) + (f64.load align=8) + (get_local 2) + (i32.const 24) + (i32.add) + (f64.load align=8) + (f64.const 5.0) + (f64.mul) + (call 5) + (get_local 2) + (i32.const 32) + (i32.add) + (tee_local 2) + (get_local 1) + (i32.ne) + (br_if 0) + (end) + (end) + (block emptyblock) + (get_local 0) + (i32.const 68) + (i32.add) + (i32.load align=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.const 60) + (i32.add) + (i32.load align=4) + (tee_local 2) + (get_local 1) + (i32.const 24) + (i32.mul) + (i32.add) + (set_local 1) + (loop emptyblock) + (get_local 2) + (f64.load align=8) + (get_local 2) + (i32.const 8) + (i32.add) + (f64.load align=8) + (call 3) + (get_local 2) + (i32.const 24) + (i32.add) + (tee_local 2) + (get_local 1) + (i32.ne) + (br_if 0) + (end) + (end) + (block emptyblock) + (get_local 0) + (i32.const 80) + (i32.add) + (i32.load align=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.const 72) + (i32.add) + (i32.load align=4) + (tee_local 2) + (get_local 1) + (i32.const 24) + (i32.mul) + (i32.add) + (set_local 1) + (loop emptyblock) + (get_local 2) + (f64.load align=8) + (get_local 2) + (i32.const 8) + (i32.add) + (f64.load align=8) + (call 4) + (get_local 2) + (i32.const 24) + (i32.add) + (tee_local 2) + (get_local 1) + (i32.ne) + (br_if 0) + (end) + (end) + (get_local 0) + (i32.const 8) + (i32.add) + (f64.load align=8) + (get_local 0) + (i32.const 16) + (i32.add) + (f64.load align=8) + (get_local 0) + (i32.const 24) + (i32.add) + (f64.load align=8) + (call 6) + (get_local 0) + (i32.const 88) + (i32.add) + (i32.load align=4) + (f64.convert_u/i32) + (call 7) + (block emptyblock) + (get_local 3) + (i32.load8_u align=1) + (br_if 0) + (call 86) + (tee_local 2) + (i32.eqz) + (br_if 4) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 2) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 1) + (get_local 0) + (i32.const 4) + (i32.add) + (i32.const 1) + (i32.store8 align=1) + (br 1) + (end) + (get_local 2) + (i64.const 1) + (i64.store align=4) + (get_local 2) + (i32.const 0) + (i32.store align=1 offset=4) + (end) + (get_local 0) + (i32.load align=4) + (i32.const 0) + (i32.store8 align=1) + (i32.const 0) + (get_local 3) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (i32.const 288) + (i32.const 32) + (i32.const 264) + (call 11) + (unreachable) + (end) + (call 40) + (unreachable) + (end) + (get_local 0) + (get_local 2) + (i32.const 0) + (i32.ne) + (call 18) + (unreachable) + (end) + (call 40) + (unreachable) + ) + (func 24 (type 10) (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i64 i64 i64 f64 f64 f64 f64 f64 f64) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 22) + (i32.store align=4 offset=4) + (get_local 22) + (i32.const 800) + (i32.store align=4 offset=8) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=804) + (i32.const 3) + (i32.eq) + (br_if 0) + (get_local 22) + (get_local 22) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=12) + (get_local 22) + (get_local 22) + (i32.const 12) + (i32.add) + (i32.store align=4 offset=16) + (i32.const 804) + (get_local 22) + (i32.const 16) + (i32.add) + (i32.const 320) + (call 103) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=800) + (tee_local 1) + (i32.load align=4) + (tee_local 21) + (i32.load8_u align=1) + (br_if 0) + (get_local 21) + (i32.const 1) + (i32.store8 align=1) + (call 86) + (tee_local 21) + (i32.eqz) + (br_if 1) + (block emptyblock) + (block emptyblock) + (get_local 21) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 21) + (i32.const 4) + (i32.add) + (set_local 20) + (get_local 21) + (i32.load align=4 offset=4) + (set_local 21) + (br 1) + (end) + (get_local 21) + (i64.const 1) + (i64.store align=4) + (get_local 21) + (i32.const 4) + (i32.add) + (set_local 20) + (i32.const 0) + (set_local 21) + (end) + (get_local 20) + (get_local 21) + (i32.store align=1) + (get_local 1) + (i32.const 4) + (i32.add) + (i32.load8_u align=1) + (br_if 2) + (get_local 1) + (i32.const 112) + (i32.add) + (tee_local 20) + (get_local 20) + (f64.load align=8) + (get_local 0) + (f64.add) + (tee_local 31) + (f64.store align=8) + (get_local 22) + (get_local 21) + (i32.const 0) + (i32.ne) + (i32.store8 align=1 offset=12) + (block emptyblock) + (get_local 1) + (i32.const 144) + (i32.add) + (i32.load8_u align=1) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const 24) + (i32.add) + (tee_local 21) + (get_local 21) + (f64.load align=8) + (get_local 0) + (f64.const -6.283185307179586) + (f64.mul) + (f64.add) + (f64.store align=8) + (end) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.const 145) + (i32.add) + (i32.load8_u align=1) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const 24) + (i32.add) + (tee_local 4) + (get_local 0) + (f64.const 6.283185307179586) + (f64.mul) + (get_local 4) + (f64.load align=8) + (f64.add) + (tee_local 30) + (f64.store align=8) + (br 1) + (end) + (get_local 1) + (i32.const 24) + (i32.add) + (tee_local 4) + (f64.load align=8) + (set_local 30) + (end) + (get_local 1) + (i32.const 146) + (i32.add) + (i32.load8_u align=1) + (set_local 21) + (get_local 30) + (call 2) + (set_local 28) + (get_local 1) + (i32.const 8) + (i32.add) + (tee_local 20) + (get_local 20) + (f64.load align=8) + (get_local 28) + (f64.const 400.0) + (f64.const 200.0) + (get_local 21) + (select) + (get_local 0) + (f64.mul) + (tee_local 29) + (f64.mul) + (f64.add) + (tee_local 28) + (f64.store align=8) + (get_local 30) + (call 8) + (set_local 30) + (get_local 1) + (i32.const 16) + (i32.add) + (tee_local 21) + (get_local 21) + (f64.load align=8) + (get_local 29) + (get_local 30) + (f64.mul) + (f64.add) + (tee_local 30) + (f64.store align=8) + (get_local 1) + (i32.const 40) + (i32.add) + (f64.load align=8) + (set_local 29) + (get_local 1) + (i32.const 32) + (i32.add) + (f64.load align=8) + (set_local 26) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 28) + (f64.const 0.0) + (f64.ge) + (get_local 28) + (get_local 28) + (f64.ne) + (tee_local 21) + (i32.or) + (br_if 0) + (get_local 26) + (get_local 28) + (f64.add) + (set_local 28) + (br 1) + (end) + (get_local 28) + (get_local 26) + (f64.lt) + (get_local 21) + (get_local 26) + (get_local 26) + (f64.ne) + (i32.or) + (i32.or) + (br_if 1) + (get_local 28) + (get_local 26) + (f64.sub) + (set_local 28) + (end) + (get_local 1) + (i32.const 8) + (i32.add) + (get_local 28) + (f64.store align=8) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 30) + (f64.const 0.0) + (f64.ge) + (get_local 30) + (get_local 30) + (f64.ne) + (tee_local 21) + (i32.or) + (br_if 0) + (get_local 29) + (get_local 30) + (f64.add) + (set_local 28) + (br 1) + (end) + (get_local 30) + (get_local 29) + (f64.lt) + (get_local 21) + (get_local 29) + (get_local 29) + (f64.ne) + (i32.or) + (i32.or) + (br_if 1) + (get_local 30) + (get_local 29) + (f64.sub) + (set_local 28) + (end) + (get_local 1) + (i32.const 16) + (i32.add) + (get_local 28) + (f64.store align=8) + (end) + (i32.const 0) + (set_local 20) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.const 56) + (i32.add) + (i32.load align=4) + (tee_local 9) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const 48) + (i32.add) + (i32.load align=4) + (set_local 21) + (get_local 9) + (i32.const 5) + (i32.shl) + (set_local 9) + (loop emptyblock) + (get_local 21) + (i32.const 24) + (i32.add) + (tee_local 10) + (get_local 10) + (f64.load align=8) + (get_local 0) + (f64.sub) + (tee_local 28) + (f64.store align=8) + (get_local 21) + (i32.const 16) + (i32.add) + (f64.load align=8) + (tee_local 30) + (call 2) + (set_local 29) + (get_local 21) + (get_local 21) + (f64.load align=8) + (get_local 29) + (get_local 28) + (get_local 28) + (f64.const 500.0) + (f64.mul) + (f64.mul) + (get_local 0) + (f64.mul) + (tee_local 28) + (f64.mul) + (f64.add) + (f64.store align=8) + (get_local 30) + (call 8) + (set_local 30) + (get_local 21) + (i32.const 8) + (i32.add) + (tee_local 10) + (get_local 10) + (f64.load align=8) + (get_local 28) + (get_local 30) + (f64.mul) + (f64.add) + (f64.store align=8) + (get_local 21) + (i32.const 32) + (i32.add) + (set_local 21) + (get_local 9) + (i32.const -32) + (i32.add) + (tee_local 9) + (br_if 0) + (end) + (get_local 1) + (i32.const 56) + (i32.add) + (tee_local 15) + (i32.load align=4) + (tee_local 10) + (i32.eqz) + (br_if 0) + (i32.const 0) + (set_local 9) + (get_local 1) + (i32.const 48) + (i32.add) + (i32.load align=4) + (tee_local 5) + (set_local 21) + (get_local 10) + (set_local 20) + (loop emptyblock) + (get_local 20) + (get_local 9) + (i32.le_u) + (br_if 2) + (block emptyblock) + (get_local 21) + (i32.const 24) + (i32.add) + (tee_local 16) + (f64.load align=8) + (f64.const 0.0) + (f64.gt) + (br_if 0) + (get_local 22) + (i32.const 16) + (i32.add) + (i32.const 24) + (i32.add) + (tee_local 17) + (get_local 16) + (i64.load align=8) + (i64.store align=8) + (get_local 22) + (i32.const 16) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 19) + (get_local 21) + (i32.const 16) + (i32.add) + (tee_local 18) + (i64.load align=8) + (i64.store align=8) + (get_local 22) + (i32.const 16) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 8) + (get_local 21) + (i32.const 8) + (i32.add) + (tee_local 6) + (i64.load align=8) + (i64.store align=8) + (get_local 22) + (get_local 21) + (i64.load align=8) + (i64.store align=8 offset=16) + (get_local 5) + (get_local 20) + (i32.const -1) + (i32.add) + (tee_local 20) + (i32.const 5) + (i32.shl) + (i32.add) + (tee_local 10) + (i64.load align=8) + (set_local 24) + (get_local 10) + (i32.const 8) + (i32.add) + (tee_local 14) + (i64.load align=8) + (set_local 23) + (get_local 10) + (i32.const 16) + (i32.add) + (tee_local 12) + (i64.load align=8) + (set_local 25) + (get_local 16) + (get_local 10) + (i32.const 24) + (i32.add) + (tee_local 7) + (i64.load align=8) + (i64.store align=8) + (get_local 18) + (get_local 25) + (i64.store align=8) + (get_local 6) + (get_local 23) + (i64.store align=8) + (get_local 21) + (get_local 24) + (i64.store align=8) + (get_local 7) + (get_local 17) + (i64.load align=8) + (i64.store align=8) + (get_local 12) + (get_local 19) + (i64.load align=8) + (i64.store align=8) + (get_local 14) + (get_local 8) + (i64.load align=8) + (i64.store align=8) + (get_local 10) + (get_local 22) + (i64.load align=8 offset=16) + (i64.store align=8) + (get_local 15) + (get_local 20) + (i32.store align=4) + (end) + (get_local 21) + (i32.const 32) + (i32.add) + (set_local 21) + (get_local 9) + (i32.const 1) + (i32.add) + (tee_local 9) + (get_local 20) + (i32.lt_u) + (br_if 0) + (end) + (end) + (get_local 31) + (get_local 1) + (i32.const 120) + (i32.add) + (tee_local 21) + (f64.load align=8) + (f64.sub) + (f64.const 0.05) + (f64.gt) + (i32.eqz) + (br_if 5) + (get_local 21) + (get_local 31) + (f64.store align=8) + (get_local 1) + (i32.const 24) + (i32.add) + (f64.load align=8) + (f64.const -3.141592653589793) + (f64.add) + (set_local 28) + (get_local 1) + (i32.const 16) + (i32.add) + (i64.load align=8) + (set_local 24) + (get_local 1) + (i32.const 8) + (i32.add) + (i64.load align=8) + (set_local 23) + (get_local 20) + (get_local 1) + (i32.const 52) + (i32.add) + (i32.load align=4) + (i32.ne) + (br_if 4) + (get_local 1) + (i32.const 48) + (i32.add) + (call 13) + (get_local 1) + (i32.const 56) + (i32.add) + (i32.load align=4) + (set_local 20) + (br 4) + (end) + (i32.const 672) + (get_local 9) + (get_local 20) + (call 140) + (unreachable) + (end) + (i32.const 288) + (i32.const 32) + (i32.const 264) + (call 11) + (unreachable) + (end) + (call 40) + (unreachable) + (end) + (get_local 1) + (get_local 21) + (i32.const 0) + (i32.ne) + (call 18) + (unreachable) + (end) + (get_local 1) + (i32.const 48) + (i32.add) + (i32.load align=4) + (get_local 20) + (i32.const 5) + (i32.shl) + (i32.add) + (tee_local 21) + (get_local 24) + (i64.store align=8 offset=8) + (get_local 21) + (get_local 23) + (i64.store align=8) + (get_local 21) + (get_local 28) + (f64.store align=8 offset=16) + (get_local 21) + (i64.const 4602678819172646912) + (i64.store align=8 offset=24) + (get_local 1) + (i32.const 56) + (i32.add) + (get_local 20) + (i32.const 1) + (i32.add) + (i32.store align=4) + (end) + (block emptyblock) + (get_local 1) + (i32.const 147) + (i32.add) + (i32.load8_u align=1) + (i32.eqz) + (br_if 0) + (get_local 31) + (get_local 1) + (i32.const 128) + (i32.add) + (tee_local 21) + (f64.load align=8) + (f64.sub) + (tee_local 28) + (f64.const 0.01) + (f64.le) + (get_local 28) + (get_local 28) + (f64.ne) + (i32.or) + (br_if 0) + (get_local 21) + (get_local 31) + (f64.store align=8) + (get_local 1) + (i32.const 24) + (i32.add) + (f64.load align=8) + (f64.const 0.0) + (call 0) + (f64.add) + (tee_local 28) + (call 8) + (f64.const 20.0) + (f64.mul) + (get_local 1) + (i32.const 16) + (i32.add) + (f64.load align=8) + (f64.add) + (set_local 30) + (get_local 28) + (call 2) + (f64.const 20.0) + (f64.mul) + (get_local 1) + (i32.const 8) + (i32.add) + (f64.load align=8) + (f64.add) + (set_local 28) + (get_local 4) + (i64.load align=8) + (set_local 24) + (block emptyblock) + (get_local 1) + (i32.const 68) + (i32.add) + (tee_local 9) + (i32.load align=4) + (tee_local 21) + (get_local 1) + (i32.const 64) + (i32.add) + (i32.load align=4) + (i32.ne) + (br_if 0) + (get_local 1) + (i32.const 60) + (i32.add) + (call 12) + (get_local 9) + (i32.load align=4) + (set_local 21) + (end) + (get_local 1) + (i32.const 60) + (i32.add) + (i32.load align=4) + (get_local 21) + (i32.const 24) + (i32.mul) + (i32.add) + (tee_local 20) + (get_local 24) + (i64.store align=8 offset=16) + (get_local 20) + (get_local 30) + (f64.store align=8 offset=8) + (get_local 20) + (get_local 28) + (f64.store align=8) + (get_local 9) + (get_local 21) + (i32.const 1) + (i32.add) + (i32.store align=4) + (end) + (block emptyblock) + (get_local 1) + (i32.const 68) + (i32.add) + (i32.load align=4) + (tee_local 20) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const 60) + (i32.add) + (i32.load align=4) + (set_local 21) + (get_local 20) + (i32.const 24) + (i32.mul) + (set_local 20) + (get_local 0) + (f64.const 500.0) + (f64.mul) + (set_local 28) + (loop emptyblock) + (get_local 21) + (i32.const 16) + (i32.add) + (f64.load align=8) + (tee_local 30) + (call 2) + (set_local 29) + (get_local 21) + (get_local 21) + (f64.load align=8) + (get_local 28) + (get_local 29) + (f64.mul) + (f64.add) + (f64.store align=8) + (get_local 30) + (call 8) + (set_local 30) + (get_local 21) + (i32.const 8) + (i32.add) + (tee_local 9) + (get_local 9) + (f64.load align=8) + (get_local 28) + (get_local 30) + (f64.mul) + (f64.add) + (f64.store align=8) + (get_local 21) + (i32.const 24) + (i32.add) + (set_local 21) + (get_local 20) + (i32.const -24) + (i32.add) + (tee_local 20) + (br_if 0) + (end) + (get_local 1) + (i32.const 68) + (i32.add) + (tee_local 14) + (i32.load align=4) + (tee_local 20) + (i32.eqz) + (br_if 0) + (i32.const 0) + (set_local 9) + (get_local 1) + (i32.const 40) + (i32.add) + (set_local 15) + (get_local 1) + (i32.const 32) + (i32.add) + (set_local 7) + (get_local 1) + (i32.const 60) + (i32.add) + (i32.load align=4) + (tee_local 12) + (set_local 21) + (loop emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 20) + (get_local 9) + (i32.le_u) + (br_if 0) + (get_local 21) + (i32.const 8) + (i32.add) + (set_local 10) + (get_local 21) + (f64.load align=8) + (tee_local 28) + (f64.const 0.0) + (f64.lt) + (get_local 28) + (get_local 28) + (f64.ne) + (tee_local 16) + (i32.or) + (br_if 1) + (get_local 10) + (f64.load align=8) + (tee_local 30) + (f64.const 0.0) + (f64.lt) + (get_local 30) + (get_local 30) + (f64.ne) + (i32.or) + (br_if 1) + (get_local 7) + (f64.load align=8) + (tee_local 29) + (get_local 28) + (f64.lt) + (get_local 29) + (get_local 29) + (f64.ne) + (get_local 16) + (i32.or) + (i32.or) + (br_if 1) + (get_local 15) + (f64.load align=8) + (get_local 30) + (f64.ge) + (i32.eqz) + (br_if 1) + (br 2) + (end) + (i32.const 672) + (get_local 9) + (get_local 20) + (call 140) + (unreachable) + (end) + (get_local 22) + (i32.const 16) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 17) + (get_local 21) + (i32.const 16) + (i32.add) + (tee_local 19) + (i64.load align=8) + (i64.store align=8) + (get_local 22) + (i32.const 16) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 18) + (get_local 10) + (i64.load align=8) + (i64.store align=8) + (get_local 22) + (get_local 21) + (i64.load align=8) + (i64.store align=8 offset=16) + (get_local 12) + (get_local 20) + (i32.const -1) + (i32.add) + (tee_local 20) + (i32.const 24) + (i32.mul) + (i32.add) + (tee_local 16) + (i64.load align=8) + (set_local 24) + (get_local 16) + (i32.const 8) + (i32.add) + (tee_local 8) + (i64.load align=8) + (set_local 23) + (get_local 19) + (get_local 16) + (i32.const 16) + (i32.add) + (tee_local 6) + (i64.load align=8) + (i64.store align=8) + (get_local 10) + (get_local 23) + (i64.store align=8) + (get_local 21) + (get_local 24) + (i64.store align=8) + (get_local 6) + (get_local 17) + (i64.load align=8) + (i64.store align=8) + (get_local 8) + (get_local 18) + (i64.load align=8) + (i64.store align=8) + (get_local 16) + (get_local 22) + (i64.load align=8 offset=16) + (i64.store align=8) + (get_local 14) + (get_local 20) + (i32.store align=4) + (end) + (get_local 21) + (i32.const 24) + (i32.add) + (set_local 21) + (get_local 9) + (i32.const 1) + (i32.add) + (tee_local 9) + (get_local 20) + (i32.lt_u) + (br_if 0) + (end) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 31) + (get_local 1) + (i32.const 136) + (i32.add) + (tee_local 20) + (f64.load align=8) + (f64.sub) + (f64.const 1.0) + (f64.gt) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const 96) + (i32.add) + (set_local 21) + (get_local 20) + (get_local 31) + (f64.store align=8) + (get_local 1) + (i32.const 40) + (i32.add) + (set_local 20) + (get_local 1) + (i32.const 32) + (i32.add) + (set_local 9) + (block emptyblock) + (loop emptyblock) + (get_local 22) + (i32.const 16) + (i32.add) + (get_local 21) + (get_local 9) + (f64.load align=8) + (get_local 20) + (f64.load align=8) + (call 21) + (get_local 22) + (i32.const 16) + (i32.add) + (i32.const 16) + (i32.add) + (i64.load align=8) + (set_local 24) + (get_local 22) + (i32.const 16) + (i32.add) + (i32.const 8) + (i32.add) + (f64.load align=8) + (set_local 28) + (get_local 1) + (i32.const 16) + (i32.add) + (f64.load align=8) + (set_local 30) + (get_local 22) + (f64.load align=8 offset=16) + (tee_local 29) + (get_local 1) + (i32.const 8) + (i32.add) + (f64.load align=8) + (tee_local 31) + (f64.ne) + (br_if 1) + (get_local 28) + (get_local 30) + (f64.eq) + (br_if 0) + (end) + (end) + (block emptyblock) + (get_local 29) + (get_local 31) + (f64.sub) + (tee_local 27) + (get_local 27) + (f64.mul) + (get_local 28) + (get_local 30) + (f64.sub) + (tee_local 26) + (get_local 26) + (f64.mul) + (f64.add) + (tee_local 26) + (f64.const 40000.0) + (f64.ge) + (get_local 26) + (get_local 26) + (f64.ne) + (i32.or) + (br_if 0) + (get_local 26) + (f64.sqrt) + (tee_local 28) + (f64.const 0.0) + (f64.eq) + (br_if 3) + (get_local 30) + (get_local 27) + (get_local 28) + (f64.div) + (f64.const 200.0) + (f64.mul) + (tee_local 29) + (f64.add) + (set_local 28) + (get_local 31) + (get_local 29) + (f64.add) + (set_local 29) + (end) + (get_local 1) + (i32.const 80) + (i32.add) + (tee_local 9) + (i32.load align=4) + (tee_local 21) + (get_local 1) + (i32.const 76) + (i32.add) + (i32.load align=4) + (i32.eq) + (br_if 1) + (br 3) + (end) + (get_local 1) + (i32.const 80) + (i32.add) + (i32.load align=4) + (tee_local 20) + (i32.eqz) + (br_if 4) + (br 3) + (end) + (get_local 1) + (i32.const 72) + (i32.add) + (call 14) + (get_local 9) + (i32.load align=4) + (set_local 21) + (br 1) + (end) + (i32.const 768) + (i32.const 30) + (i32.const 744) + (call 11) + (unreachable) + (end) + (get_local 1) + (i32.const 72) + (i32.add) + (i32.load align=4) + (get_local 21) + (i32.const 24) + (i32.mul) + (i32.add) + (tee_local 20) + (get_local 24) + (i64.store align=8 offset=16) + (get_local 20) + (get_local 28) + (f64.store align=8 offset=8) + (get_local 20) + (get_local 29) + (f64.store align=8) + (get_local 9) + (get_local 21) + (i32.const 1) + (i32.add) + (tee_local 20) + (i32.store align=4) + (get_local 20) + (i32.eqz) + (br_if 1) + (end) + (get_local 1) + (i32.const 72) + (i32.add) + (i32.load align=4) + (set_local 21) + (get_local 20) + (i32.const 24) + (i32.mul) + (set_local 20) + (get_local 0) + (f64.const 100.0) + (f64.mul) + (set_local 30) + (loop emptyblock) + (get_local 21) + (i32.const 16) + (i32.add) + (get_local 21) + (i32.const 8) + (i32.add) + (tee_local 9) + (f64.load align=8) + (tee_local 29) + (get_local 1) + (i32.const 16) + (i32.add) + (f64.load align=8) + (f64.sub) + (get_local 21) + (f64.load align=8) + (tee_local 28) + (get_local 1) + (i32.const 8) + (i32.add) + (f64.load align=8) + (tee_local 0) + (f64.sub) + (f64.div) + (call 0) + (tee_local 31) + (get_local 31) + (f64.const 3.141592653589793) + (f64.add) + (get_local 28) + (get_local 0) + (f64.lt) + (select) + (tee_local 0) + (f64.store align=8) + (get_local 21) + (get_local 28) + (get_local 30) + (get_local 0) + (call 2) + (f64.mul) + (f64.add) + (f64.store align=8) + (get_local 9) + (get_local 29) + (get_local 30) + (get_local 0) + (call 8) + (f64.mul) + (f64.add) + (f64.store align=8) + (get_local 21) + (i32.const 24) + (i32.add) + (set_local 21) + (get_local 20) + (i32.const -24) + (i32.add) + (tee_local 20) + (br_if 0) + (end) + (get_local 1) + (i32.const 80) + (i32.add) + (tee_local 2) + (i32.load align=4) + (set_local 3) + (br 1) + (end) + (get_local 1) + (i32.const 80) + (i32.add) + (set_local 2) + (i32.const 0) + (set_local 3) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.const 68) + (i32.add) + (tee_local 11) + (i32.load align=4) + (tee_local 6) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const 60) + (i32.add) + (i32.load align=4) + (set_local 4) + (i32.const 0) + (set_local 7) + (get_local 1) + (i32.const 72) + (i32.add) + (set_local 13) + (get_local 1) + (i32.const 52) + (i32.add) + (set_local 17) + (get_local 3) + (set_local 5) + (loop emptyblock) + (get_local 6) + (get_local 7) + (i32.le_u) + (br_if 3) + (get_local 13) + (i32.load align=4) + (tee_local 9) + (get_local 5) + (i32.const 24) + (i32.mul) + (tee_local 12) + (i32.add) + (set_local 8) + (get_local 4) + (get_local 7) + (i32.const 24) + (i32.mul) + (i32.add) + (tee_local 14) + (f64.load align=8) + (set_local 28) + (get_local 14) + (i32.const 8) + (i32.add) + (tee_local 15) + (f64.load align=8) + (set_local 0) + (i32.const 0) + (set_local 21) + (i32.const 0) + (set_local 10) + (get_local 9) + (set_local 16) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (loop emptyblock) + (get_local 16) + (set_local 19) + (get_local 10) + (set_local 18) + (get_local 8) + (get_local 9) + (get_local 21) + (i32.add) + (tee_local 20) + (i32.sub) + (i32.const 24) + (i32.div_s) + (i32.const 3) + (i32.le_u) + (br_if 1) + (get_local 20) + (f64.load align=8) + (get_local 28) + (f64.sub) + (tee_local 30) + (get_local 30) + (f64.mul) + (get_local 20) + (i32.const 8) + (i32.add) + (f64.load align=8) + (get_local 0) + (f64.sub) + (tee_local 30) + (get_local 30) + (f64.mul) + (f64.add) + (tee_local 30) + (f64.const 169.0) + (f64.ge) + (get_local 30) + (get_local 30) + (f64.ne) + (i32.or) + (i32.eqz) + (br_if 4) + (get_local 9) + (get_local 21) + (i32.add) + (tee_local 20) + (i32.const 24) + (i32.add) + (f64.load align=8) + (get_local 28) + (f64.sub) + (tee_local 30) + (get_local 30) + (f64.mul) + (get_local 20) + (i32.const 32) + (i32.add) + (f64.load align=8) + (get_local 0) + (f64.sub) + (tee_local 30) + (get_local 30) + (f64.mul) + (f64.add) + (f64.const 169.0) + (f64.lt) + (br_if 2) + (get_local 20) + (i32.const 48) + (i32.add) + (f64.load align=8) + (get_local 28) + (f64.sub) + (tee_local 30) + (get_local 30) + (f64.mul) + (get_local 20) + (i32.const 56) + (i32.add) + (f64.load align=8) + (get_local 0) + (f64.sub) + (tee_local 30) + (get_local 30) + (f64.mul) + (f64.add) + (f64.const 169.0) + (f64.lt) + (br_if 3) + (get_local 21) + (i32.const 96) + (i32.add) + (set_local 21) + (get_local 18) + (i32.const 4) + (i32.add) + (set_local 10) + (get_local 19) + (i32.const 96) + (i32.add) + (set_local 16) + (get_local 20) + (i32.const 72) + (i32.add) + (f64.load align=8) + (get_local 28) + (f64.sub) + (tee_local 30) + (get_local 30) + (f64.mul) + (get_local 20) + (i32.const 80) + (i32.add) + (f64.load align=8) + (get_local 0) + (f64.sub) + (tee_local 30) + (get_local 30) + (f64.mul) + (f64.add) + (tee_local 30) + (f64.const 169.0) + (f64.ge) + (get_local 30) + (get_local 30) + (f64.ne) + (i32.or) + (br_if 0) + (end) + (get_local 19) + (i32.const 72) + (i32.add) + (set_local 20) + (get_local 18) + (i32.const 3) + (i32.or) + (set_local 18) + (br 3) + (end) + (i32.const 1) + (set_local 10) + (loop emptyblock) + (get_local 12) + (get_local 21) + (i32.eq) + (br_if 4) + (get_local 9) + (get_local 21) + (i32.add) + (set_local 20) + (get_local 21) + (i32.const 24) + (i32.add) + (set_local 21) + (get_local 10) + (i32.const -1) + (i32.add) + (set_local 10) + (get_local 20) + (f64.load align=8) + (get_local 28) + (f64.sub) + (tee_local 30) + (get_local 30) + (f64.mul) + (get_local 20) + (i32.const 8) + (i32.add) + (f64.load align=8) + (get_local 0) + (f64.sub) + (tee_local 30) + (get_local 30) + (f64.mul) + (f64.add) + (tee_local 30) + (f64.const 169.0) + (f64.ge) + (get_local 30) + (get_local 30) + (f64.ne) + (i32.or) + (br_if 0) + (end) + (get_local 18) + (get_local 10) + (i32.sub) + (set_local 18) + (get_local 9) + (get_local 21) + (i32.add) + (i32.const -24) + (i32.add) + (set_local 20) + (br 2) + (end) + (get_local 19) + (i32.const 24) + (i32.add) + (set_local 20) + (get_local 18) + (i32.const 1) + (i32.or) + (set_local 18) + (br 1) + (end) + (get_local 19) + (i32.const 48) + (i32.add) + (set_local 20) + (get_local 18) + (i32.const 2) + (i32.or) + (set_local 18) + (end) + (get_local 1) + (i32.const 56) + (i32.add) + (tee_local 16) + (i32.load align=4) + (set_local 21) + (get_local 20) + (i32.const 8) + (i32.add) + (i64.load align=8) + (set_local 24) + (get_local 20) + (i64.load align=8) + (set_local 23) + (i32.const 0) + (set_local 19) + (f64.const 0.0) + (set_local 30) + (loop emptyblock) + (get_local 30) + (f64.const 0.21666156231653746) + (f64.mul) + (f64.const 0.0) + (f64.add) + (set_local 0) + (i32.const 1) + (set_local 20) + (loop emptyblock) + (get_local 20) + (i32.const 1) + (i32.add) + (set_local 9) + (get_local 20) + (i32.const 255) + (i32.and) + (f64.convert_u/i32) + (f64.const 10.0) + (f64.div) + (set_local 28) + (block emptyblock) + (get_local 21) + (get_local 17) + (i32.load align=4) + (i32.ne) + (br_if 0) + (get_local 1) + (i32.const 48) + (i32.add) + (call 13) + (get_local 16) + (i32.load align=4) + (set_local 21) + (end) + (get_local 16) + (get_local 21) + (i32.const 1) + (i32.add) + (tee_local 10) + (i32.store align=4) + (get_local 1) + (i32.const 48) + (i32.add) + (i32.load align=4) + (get_local 21) + (i32.const 5) + (i32.shl) + (i32.add) + (tee_local 21) + (get_local 23) + (i64.store align=8) + (get_local 21) + (get_local 24) + (i64.store align=8 offset=8) + (get_local 21) + (get_local 0) + (f64.store align=8 offset=16) + (get_local 21) + (get_local 28) + (f64.store align=8 offset=24) + (get_local 10) + (set_local 21) + (get_local 9) + (set_local 20) + (get_local 9) + (i32.const 255) + (i32.and) + (i32.const 10) + (i32.lt_u) + (br_if 0) + (end) + (get_local 30) + (f64.const 1.0) + (f64.add) + (set_local 30) + (get_local 10) + (set_local 21) + (get_local 19) + (i32.const 1) + (i32.add) + (tee_local 19) + (i32.const 30) + (i32.ne) + (br_if 0) + (end) + (get_local 2) + (i32.load align=4) + (tee_local 21) + (get_local 18) + (i32.le_u) + (br_if 5) + (get_local 13) + (i32.load align=4) + (tee_local 9) + (get_local 18) + (i32.const 24) + (i32.mul) + (i32.add) + (tee_local 20) + (get_local 20) + (i32.const 24) + (i32.add) + (get_local 21) + (get_local 18) + (i32.sub) + (i32.const 24) + (i32.mul) + (i32.const -24) + (i32.add) + (call 113) + (drop) + (get_local 1) + (i32.const 80) + (i32.add) + (get_local 21) + (i32.const -1) + (i32.add) + (tee_local 5) + (i32.store align=4) + (get_local 22) + (i32.const 16) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 20) + (get_local 14) + (i32.const 16) + (i32.add) + (tee_local 10) + (i64.load align=8) + (i64.store align=8) + (get_local 22) + (i32.const 16) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 16) + (get_local 15) + (i64.load align=8) + (i64.store align=8) + (get_local 22) + (get_local 14) + (i64.load align=8) + (i64.store align=8 offset=16) + (get_local 4) + (get_local 6) + (i32.const -1) + (i32.add) + (tee_local 6) + (i32.const 24) + (i32.mul) + (i32.add) + (tee_local 21) + (i64.load align=8) + (set_local 24) + (get_local 21) + (i32.const 8) + (i32.add) + (tee_local 19) + (i64.load align=8) + (set_local 23) + (get_local 10) + (get_local 21) + (i32.const 16) + (i32.add) + (tee_local 18) + (i64.load align=8) + (i64.store align=8) + (get_local 15) + (get_local 23) + (i64.store align=8) + (get_local 14) + (get_local 24) + (i64.store align=8) + (get_local 18) + (get_local 20) + (i64.load align=8) + (i64.store align=8) + (get_local 19) + (get_local 16) + (i64.load align=8) + (i64.store align=8) + (get_local 21) + (get_local 22) + (i64.load align=8 offset=16) + (i64.store align=8) + (get_local 11) + (get_local 6) + (i32.store align=4) + (end) + (get_local 7) + (i32.const 1) + (i32.add) + (tee_local 7) + (get_local 6) + (i32.lt_u) + (br_if 0) + (br 2) + (end) + (unreachable) + (end) + (get_local 1) + (i32.const 72) + (i32.add) + (i32.load align=4) + (set_local 9) + (get_local 3) + (set_local 5) + (end) + (get_local 1) + (i32.const 88) + (i32.add) + (tee_local 21) + (get_local 3) + (get_local 5) + (i32.sub) + (i32.const 10) + (i32.mul) + (get_local 21) + (i32.load align=4) + (i32.add) + (i32.store align=4) + (get_local 9) + (get_local 5) + (i32.const 24) + (i32.mul) + (tee_local 16) + (i32.add) + (set_local 10) + (get_local 1) + (i32.const 16) + (i32.add) + (f64.load align=8) + (set_local 0) + (get_local 1) + (i32.const 8) + (i32.add) + (f64.load align=8) + (set_local 30) + (i32.const 0) + (set_local 20) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (loop emptyblock) + (get_local 10) + (get_local 9) + (get_local 20) + (i32.add) + (tee_local 21) + (i32.sub) + (i32.const 24) + (i32.div_s) + (i32.const 3) + (i32.le_u) + (br_if 1) + (get_local 30) + (get_local 9) + (get_local 20) + (i32.add) + (tee_local 21) + (f64.load align=8) + (f64.sub) + (tee_local 28) + (get_local 28) + (f64.mul) + (get_local 0) + (get_local 21) + (i32.const 8) + (i32.add) + (f64.load align=8) + (f64.sub) + (tee_local 28) + (get_local 28) + (f64.mul) + (f64.add) + (f64.const 256.0) + (f64.lt) + (br_if 2) + (get_local 30) + (get_local 21) + (i32.const 24) + (i32.add) + (f64.load align=8) + (f64.sub) + (tee_local 28) + (get_local 28) + (f64.mul) + (get_local 0) + (get_local 21) + (i32.const 32) + (i32.add) + (f64.load align=8) + (f64.sub) + (tee_local 28) + (get_local 28) + (f64.mul) + (f64.add) + (f64.const 256.0) + (f64.lt) + (br_if 2) + (get_local 30) + (get_local 21) + (i32.const 48) + (i32.add) + (f64.load align=8) + (f64.sub) + (tee_local 28) + (get_local 28) + (f64.mul) + (get_local 0) + (get_local 21) + (i32.const 56) + (i32.add) + (f64.load align=8) + (f64.sub) + (tee_local 28) + (get_local 28) + (f64.mul) + (f64.add) + (f64.const 256.0) + (f64.lt) + (br_if 2) + (get_local 20) + (i32.const 96) + (i32.add) + (set_local 20) + (get_local 30) + (get_local 21) + (i32.const 72) + (i32.add) + (f64.load align=8) + (f64.sub) + (tee_local 28) + (get_local 28) + (f64.mul) + (get_local 0) + (get_local 21) + (i32.const 80) + (i32.add) + (f64.load align=8) + (f64.sub) + (tee_local 28) + (get_local 28) + (f64.mul) + (f64.add) + (tee_local 28) + (f64.const 256.0) + (f64.ge) + (get_local 28) + (get_local 28) + (f64.ne) + (i32.or) + (br_if 0) + (br 2) + (end) + (unreachable) + (end) + (get_local 16) + (get_local 20) + (i32.sub) + (set_local 20) + (loop emptyblock) + (get_local 20) + (i32.eqz) + (br_if 2) + (get_local 21) + (f64.load align=8) + (set_local 28) + (get_local 21) + (i32.const 8) + (i32.add) + (set_local 9) + (get_local 20) + (i32.const -24) + (i32.add) + (set_local 20) + (get_local 21) + (i32.const 24) + (i32.add) + (set_local 21) + (get_local 30) + (get_local 28) + (f64.sub) + (tee_local 28) + (get_local 28) + (f64.mul) + (get_local 0) + (get_local 9) + (f64.load align=8) + (f64.sub) + (tee_local 28) + (get_local 28) + (f64.mul) + (f64.add) + (f64.const 256.0) + (f64.lt) + (i32.eqz) + (br_if 0) + (end) + (end) + (get_local 1) + (i32.const 56) + (i32.add) + (tee_local 16) + (i32.load align=4) + (set_local 21) + (i32.const 0) + (set_local 18) + (get_local 1) + (i32.const 52) + (i32.add) + (set_local 19) + (get_local 1) + (i32.const 48) + (i32.add) + (set_local 17) + (f64.const 0.0) + (set_local 31) + (loop emptyblock) + (get_local 31) + (f64.const 0.21666156231653746) + (f64.mul) + (f64.const 0.0) + (f64.add) + (set_local 29) + (i32.const 1) + (set_local 20) + (loop emptyblock) + (get_local 20) + (i32.const 1) + (i32.add) + (set_local 9) + (get_local 20) + (i32.const 255) + (i32.and) + (f64.convert_u/i32) + (f64.const 10.0) + (f64.div) + (set_local 28) + (block emptyblock) + (get_local 21) + (get_local 19) + (i32.load align=4) + (i32.ne) + (br_if 0) + (get_local 17) + (call 13) + (get_local 16) + (i32.load align=4) + (set_local 21) + (end) + (get_local 16) + (get_local 21) + (i32.const 1) + (i32.add) + (tee_local 10) + (i32.store align=4) + (get_local 17) + (i32.load align=4) + (get_local 21) + (i32.const 5) + (i32.shl) + (i32.add) + (tee_local 21) + (get_local 30) + (f64.store align=8) + (get_local 21) + (get_local 0) + (f64.store align=8 offset=8) + (get_local 21) + (get_local 29) + (f64.store align=8 offset=16) + (get_local 21) + (get_local 28) + (f64.store align=8 offset=24) + (get_local 10) + (set_local 21) + (get_local 9) + (set_local 20) + (get_local 9) + (i32.const 255) + (i32.and) + (i32.const 8) + (i32.lt_u) + (br_if 0) + (end) + (get_local 31) + (f64.const 1.0) + (f64.add) + (set_local 31) + (get_local 10) + (set_local 21) + (get_local 18) + (i32.const 1) + (i32.add) + (tee_local 18) + (i32.const 30) + (i32.ne) + (br_if 0) + (end) + (get_local 1) + (i32.const 32) + (i32.add) + (f64.load align=8) + (tee_local 28) + (f64.const 0.0) + (f64.gt) + (i32.eqz) + (br_if 3) + (get_local 1) + (i32.const 8) + (i32.add) + (get_local 28) + (f64.const 4.6644147211338804e-08) + (f64.mul) + (f64.const 0.0) + (f64.add) + (f64.store align=8) + (get_local 1) + (i32.const 40) + (i32.add) + (f64.load align=8) + (tee_local 28) + (f64.const 0.0) + (f64.gt) + (i32.eqz) + (br_if 4) + (get_local 1) + (i32.const 88) + (i32.add) + (i32.const 0) + (i32.store align=4) + (get_local 1) + (i32.const 16) + (i32.add) + (get_local 28) + (f64.const 0.6070386340724931) + (f64.mul) + (f64.const 0.0) + (f64.add) + (f64.store align=8) + (block emptyblock) + (get_local 1) + (i32.const 68) + (i32.add) + (tee_local 21) + (i32.load align=4) + (i32.eqz) + (br_if 0) + (get_local 21) + (i32.const 0) + (i32.store align=4) + (end) + (get_local 2) + (i32.load align=4) + (i32.eqz) + (br_if 0) + (get_local 2) + (i32.const 0) + (i32.store align=4) + (end) + (block emptyblock) + (get_local 22) + (i32.load8_u align=1 offset=12) + (br_if 0) + (call 86) + (tee_local 21) + (i32.eqz) + (br_if 5) + (block emptyblock) + (get_local 21) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 21) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 1) + (get_local 1) + (i32.const 4) + (i32.add) + (i32.const 1) + (i32.store8 align=1) + (br 1) + (end) + (get_local 21) + (i64.const 1) + (i64.store align=4) + (get_local 21) + (i32.const 0) + (i32.store align=1 offset=4) + (end) + (get_local 1) + (i32.load align=4) + (i32.const 0) + (i32.store8 align=1) + (i32.const 0) + (get_local 22) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (i32.const 672) + (get_local 7) + (get_local 6) + (call 140) + (unreachable) + (end) + (i32.const 80) + (call 139) + (unreachable) + (end) + (i32.const 608) + (i32.const 37) + (i32.const 592) + (call 11) + (unreachable) + (end) + (i32.const 608) + (i32.const 37) + (i32.const 592) + (call 11) + (unreachable) + (end) + (call 40) + (unreachable) + ) + (func 25 (type 2) (local i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 4) + (i32.store align=4 offset=4) + (get_local 4) + (i32.const 800) + (i32.store align=4 offset=4) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=804) + (i32.const 3) + (i32.eq) + (br_if 0) + (get_local 4) + (get_local 4) + (i32.const 4) + (i32.add) + (i32.store align=4 offset=8) + (get_local 4) + (get_local 4) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=12) + (i32.const 804) + (get_local 4) + (i32.const 12) + (i32.add) + (i32.const 320) + (call 103) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=800) + (tee_local 1) + (i32.load align=4) + (tee_local 2) + (i32.load8_u align=1) + (br_if 0) + (get_local 2) + (i32.const 1) + (i32.store8 align=1) + (call 86) + (tee_local 2) + (i32.eqz) + (br_if 1) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 2) + (i32.const 4) + (i32.add) + (set_local 3) + (get_local 2) + (i32.load align=4 offset=4) + (set_local 2) + (br 1) + (end) + (get_local 2) + (i64.const 1) + (i64.store align=4) + (get_local 2) + (i32.const 4) + (i32.add) + (set_local 3) + (i32.const 0) + (set_local 2) + (end) + (get_local 3) + (get_local 2) + (i32.store align=1) + (get_local 1) + (i32.const 4) + (i32.add) + (i32.load8_u align=1) + (br_if 2) + (get_local 1) + (i32.const 147) + (i32.add) + (get_local 0) + (i32.store8 align=1) + (get_local 4) + (get_local 2) + (i32.const 0) + (i32.ne) + (i32.store8 align=1) + (block emptyblock) + (get_local 4) + (i32.load8_u align=1) + (br_if 0) + (call 86) + (tee_local 2) + (i32.eqz) + (br_if 4) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 2) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 1) + (get_local 1) + (i32.const 4) + (i32.add) + (i32.const 1) + (i32.store8 align=1) + (br 1) + (end) + (get_local 2) + (i64.const 1) + (i64.store align=4) + (get_local 2) + (i32.const 0) + (i32.store align=1 offset=4) + (end) + (get_local 1) + (i32.load align=4) + (i32.const 0) + (i32.store8 align=1) + (i32.const 0) + (get_local 4) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (i32.const 288) + (i32.const 32) + (i32.const 264) + (call 11) + (unreachable) + (end) + (call 40) + (unreachable) + (end) + (get_local 1) + (get_local 2) + (i32.const 0) + (i32.ne) + (call 18) + (unreachable) + (end) + (call 40) + (unreachable) + ) + (func 26 (type 2) (local i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 4) + (i32.store align=4 offset=4) + (get_local 4) + (i32.const 800) + (i32.store align=4 offset=4) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=804) + (i32.const 3) + (i32.eq) + (br_if 0) + (get_local 4) + (get_local 4) + (i32.const 4) + (i32.add) + (i32.store align=4 offset=8) + (get_local 4) + (get_local 4) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=12) + (i32.const 804) + (get_local 4) + (i32.const 12) + (i32.add) + (i32.const 320) + (call 103) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=800) + (tee_local 1) + (i32.load align=4) + (tee_local 2) + (i32.load8_u align=1) + (br_if 0) + (get_local 2) + (i32.const 1) + (i32.store8 align=1) + (call 86) + (tee_local 2) + (i32.eqz) + (br_if 1) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 2) + (i32.const 4) + (i32.add) + (set_local 3) + (get_local 2) + (i32.load align=4 offset=4) + (set_local 2) + (br 1) + (end) + (get_local 2) + (i64.const 1) + (i64.store align=4) + (get_local 2) + (i32.const 4) + (i32.add) + (set_local 3) + (i32.const 0) + (set_local 2) + (end) + (get_local 3) + (get_local 2) + (i32.store align=1) + (get_local 1) + (i32.const 4) + (i32.add) + (i32.load8_u align=1) + (br_if 2) + (get_local 1) + (i32.const 146) + (i32.add) + (get_local 0) + (i32.store8 align=1) + (get_local 4) + (get_local 2) + (i32.const 0) + (i32.ne) + (i32.store8 align=1) + (block emptyblock) + (get_local 4) + (i32.load8_u align=1) + (br_if 0) + (call 86) + (tee_local 2) + (i32.eqz) + (br_if 4) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 2) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 1) + (get_local 1) + (i32.const 4) + (i32.add) + (i32.const 1) + (i32.store8 align=1) + (br 1) + (end) + (get_local 2) + (i64.const 1) + (i64.store align=4) + (get_local 2) + (i32.const 0) + (i32.store align=1 offset=4) + (end) + (get_local 1) + (i32.load align=4) + (i32.const 0) + (i32.store8 align=1) + (i32.const 0) + (get_local 4) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (i32.const 288) + (i32.const 32) + (i32.const 264) + (call 11) + (unreachable) + (end) + (call 40) + (unreachable) + (end) + (get_local 1) + (get_local 2) + (i32.const 0) + (i32.ne) + (call 18) + (unreachable) + (end) + (call 40) + (unreachable) + ) + (func 27 (type 2) (local i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 4) + (i32.store align=4 offset=4) + (get_local 4) + (i32.const 800) + (i32.store align=4 offset=4) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=804) + (i32.const 3) + (i32.eq) + (br_if 0) + (get_local 4) + (get_local 4) + (i32.const 4) + (i32.add) + (i32.store align=4 offset=8) + (get_local 4) + (get_local 4) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=12) + (i32.const 804) + (get_local 4) + (i32.const 12) + (i32.add) + (i32.const 320) + (call 103) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=800) + (tee_local 1) + (i32.load align=4) + (tee_local 2) + (i32.load8_u align=1) + (br_if 0) + (get_local 2) + (i32.const 1) + (i32.store8 align=1) + (call 86) + (tee_local 2) + (i32.eqz) + (br_if 1) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 2) + (i32.const 4) + (i32.add) + (set_local 3) + (get_local 2) + (i32.load align=4 offset=4) + (set_local 2) + (br 1) + (end) + (get_local 2) + (i64.const 1) + (i64.store align=4) + (get_local 2) + (i32.const 4) + (i32.add) + (set_local 3) + (i32.const 0) + (set_local 2) + (end) + (get_local 3) + (get_local 2) + (i32.store align=1) + (get_local 1) + (i32.const 4) + (i32.add) + (i32.load8_u align=1) + (br_if 2) + (get_local 1) + (i32.const 144) + (i32.add) + (get_local 0) + (i32.store8 align=1) + (get_local 4) + (get_local 2) + (i32.const 0) + (i32.ne) + (i32.store8 align=1) + (block emptyblock) + (get_local 4) + (i32.load8_u align=1) + (br_if 0) + (call 86) + (tee_local 2) + (i32.eqz) + (br_if 4) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 2) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 1) + (get_local 1) + (i32.const 4) + (i32.add) + (i32.const 1) + (i32.store8 align=1) + (br 1) + (end) + (get_local 2) + (i64.const 1) + (i64.store align=4) + (get_local 2) + (i32.const 0) + (i32.store align=1 offset=4) + (end) + (get_local 1) + (i32.load align=4) + (i32.const 0) + (i32.store8 align=1) + (i32.const 0) + (get_local 4) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (i32.const 288) + (i32.const 32) + (i32.const 264) + (call 11) + (unreachable) + (end) + (call 40) + (unreachable) + (end) + (get_local 1) + (get_local 2) + (i32.const 0) + (i32.ne) + (call 18) + (unreachable) + (end) + (call 40) + (unreachable) + ) + (func 28 (type 2) (local i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 4) + (i32.store align=4 offset=4) + (get_local 4) + (i32.const 800) + (i32.store align=4 offset=4) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=804) + (i32.const 3) + (i32.eq) + (br_if 0) + (get_local 4) + (get_local 4) + (i32.const 4) + (i32.add) + (i32.store align=4 offset=8) + (get_local 4) + (get_local 4) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=12) + (i32.const 804) + (get_local 4) + (i32.const 12) + (i32.add) + (i32.const 320) + (call 103) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=800) + (tee_local 1) + (i32.load align=4) + (tee_local 2) + (i32.load8_u align=1) + (br_if 0) + (get_local 2) + (i32.const 1) + (i32.store8 align=1) + (call 86) + (tee_local 2) + (i32.eqz) + (br_if 1) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 2) + (i32.const 4) + (i32.add) + (set_local 3) + (get_local 2) + (i32.load align=4 offset=4) + (set_local 2) + (br 1) + (end) + (get_local 2) + (i64.const 1) + (i64.store align=4) + (get_local 2) + (i32.const 4) + (i32.add) + (set_local 3) + (i32.const 0) + (set_local 2) + (end) + (get_local 3) + (get_local 2) + (i32.store align=1) + (get_local 1) + (i32.const 4) + (i32.add) + (i32.load8_u align=1) + (br_if 2) + (get_local 1) + (i32.const 145) + (i32.add) + (get_local 0) + (i32.store8 align=1) + (get_local 4) + (get_local 2) + (i32.const 0) + (i32.ne) + (i32.store8 align=1) + (block emptyblock) + (get_local 4) + (i32.load8_u align=1) + (br_if 0) + (call 86) + (tee_local 2) + (i32.eqz) + (br_if 4) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 2) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 1) + (get_local 1) + (i32.const 4) + (i32.add) + (i32.const 1) + (i32.store8 align=1) + (br 1) + (end) + (get_local 2) + (i64.const 1) + (i64.store align=4) + (get_local 2) + (i32.const 0) + (i32.store align=1 offset=4) + (end) + (get_local 1) + (i32.load align=4) + (i32.const 0) + (i32.store8 align=1) + (i32.const 0) + (get_local 4) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (i32.const 288) + (i32.const 32) + (i32.const 264) + (call 11) + (unreachable) + (end) + (call 40) + (unreachable) + (end) + (get_local 1) + (get_local 2) + (i32.const 0) + (i32.ne) + (call 18) + (unreachable) + (end) + (call 40) + (unreachable) + ) + (func 29 (type 1) + + ) + (func 30 (type 13) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.const -1) + (i32.le_s) + (br_if 0) + (block emptyblock) + (get_local 0) + (i32.eqz) + (br_if 0) + (get_local 0) + (call 107) + (tee_local 0) + (i32.eqz) + (br_if 2) + (get_local 0) + (return) + (end) + (i32.const 1) + (return) + (end) + (i32.const 648) + (call 139) + (unreachable) + (end) + (unreachable) + (unreachable) + ) + (func 31 (type 5) + (block emptyblock) + (get_local 1) + (i32.eqz) + (br_if 0) + (get_local 0) + (call 109) + (end) + ) + (func 32 (type 2) (local i32 i32 i32) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load8_u align=1) + (i32.eqz) + (br_if 0) + (i32.const 1) + (set_local 3) + (loop emptyblock) + (get_local 0) + (get_local 3) + (i32.add) + (set_local 2) + (get_local 3) + (i32.const 1) + (i32.add) + (tee_local 1) + (set_local 3) + (get_local 2) + (i32.load8_u align=1) + (br_if 0) + (end) + (get_local 0) + (i32.const 0) + (i32.store8 align=1) + (get_local 1) + (br_if 1) + (br 2) + (end) + (get_local 0) + (i32.const 0) + (i32.store8 align=1) + (end) + (get_local 0) + (call 109) + (end) + ) + (func 33 (type 6) (local i32 i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 6) + (i32.store align=4 offset=4) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (i32.const 4) + (call 107) + (tee_local 2) + (i32.eqz) + (br_if 0) + (get_local 6) + (i32.const 4) + (i32.store align=4 offset=20) + (get_local 6) + (get_local 2) + (i32.store align=4 offset=16) + (get_local 6) + (i32.const 0) + (i32.store align=4 offset=24) + (get_local 6) + (i32.const 16) + (i32.add) + (i32.const 2432) + (i32.const 4) + (call 111) + (get_local 6) + (i32.const 32) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 2) + (get_local 6) + (i32.load align=4 offset=24) + (tee_local 5) + (i32.store align=4) + (get_local 6) + (i32.const 8) + (i32.add) + (tee_local 3) + (get_local 5) + (i32.store align=4) + (get_local 6) + (get_local 6) + (i32.load align=4 offset=16) + (tee_local 5) + (i32.store align=4 offset=32) + (get_local 6) + (get_local 6) + (i32.load align=4 offset=20) + (tee_local 4) + (i32.store align=4 offset=36) + (get_local 6) + (get_local 4) + (i32.store align=4 offset=4) + (get_local 6) + (get_local 5) + (i32.store align=4) + (get_local 2) + (get_local 3) + (i32.load align=4) + (tee_local 5) + (i32.store align=4) + (get_local 6) + (i32.const 16) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 3) + (get_local 5) + (i32.store align=4) + (get_local 6) + (get_local 6) + (i32.load align=4) + (tee_local 5) + (i32.store align=4 offset=32) + (get_local 6) + (get_local 6) + (i32.load align=4 offset=4) + (tee_local 4) + (i32.store align=4 offset=36) + (get_local 6) + (get_local 4) + (i32.store align=4 offset=20) + (get_local 6) + (get_local 5) + (i32.store align=4 offset=16) + (get_local 2) + (get_local 3) + (i32.load align=4) + (i32.store align=4) + (get_local 6) + (get_local 6) + (i64.load align=8 offset=16) + (i64.store align=8 offset=32) + (get_local 6) + (i32.const 32) + (i32.add) + (call 59) + (set_local 3) + (call 68) + (tee_local 2) + (i32.eqz) + (br_if 1) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.load align=4 offset=4) + (tee_local 5) + (i32.const 3) + (i32.ne) + (br_if 0) + (get_local 2) + (i64.const 8589934592) + (i64.store align=4) + (get_local 2) + (i32.const 0) + (i32.store align=4) + (call 68) + (tee_local 2) + (br_if 1) + (br 4) + (end) + (get_local 2) + (i32.load align=4) + (tee_local 4) + (i32.const -1) + (i32.eq) + (br_if 4) + (get_local 2) + (get_local 4) + (i32.store align=4) + (get_local 5) + (i32.const 2) + (i32.ne) + (br_if 5) + (call 68) + (tee_local 2) + (i32.eqz) + (br_if 3) + (end) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.load align=4 offset=4) + (tee_local 4) + (i32.const 3) + (i32.ne) + (br_if 0) + (get_local 2) + (i64.const 8589934592) + (i64.store align=4) + (get_local 2) + (i32.const -1) + (i32.store align=4) + (get_local 2) + (i32.const 12) + (i32.add) + (set_local 5) + (br 1) + (end) + (get_local 2) + (i32.load align=4) + (br_if 6) + (get_local 2) + (i32.const -1) + (i32.store align=4) + (get_local 2) + (i32.const 12) + (i32.add) + (set_local 5) + (get_local 4) + (i32.const 2) + (i32.eq) + (br_if 0) + (get_local 5) + (i32.load align=4) + (tee_local 4) + (get_local 4) + (i32.load align=4) + (tee_local 4) + (i32.const -1) + (i32.add) + (i32.store align=4) + (get_local 4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 5) + (i32.load align=4) + (call 60) + (end) + (get_local 5) + (get_local 3) + (i32.store align=4) + (get_local 2) + (i32.const 0) + (i32.store align=4) + (get_local 2) + (i32.const 4) + (i32.add) + (i64.const 0) + (i64.store align=4) + (i32.const 3) + (call 42) + (i32.const 0) + (i32.load align=4 offset=2424) + (i32.const 3) + (i32.eq) + (br_if 6) + (get_local 6) + (i32.const 1) + (i32.store8 align=1 offset=16) + (get_local 6) + (get_local 6) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=32) + (i32.const 2424) + (get_local 6) + (i32.const 32) + (i32.add) + (i32.const 3536) + (call 103) + (br 6) + (end) + (get_local 6) + (i32.const 4) + (i32.store align=4 offset=36) + (get_local 6) + (get_local 2) + (i32.store align=4 offset=32) + (get_local 6) + (i32.const 1) + (i32.store align=4 offset=40) + (unreachable) + (unreachable) + (end) + (call 40) + (unreachable) + (end) + (get_local 3) + (get_local 3) + (i32.load align=4) + (tee_local 6) + (i32.const -1) + (i32.add) + (i32.store align=4) + (block emptyblock) + (get_local 6) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 3) + (call 60) + (end) + (call 40) + (unreachable) + (end) + (call 39) + (unreachable) + (end) + (i32.const 3344) + (i32.const 38) + (i32.const 3384) + (call 75) + (unreachable) + (end) + (call 38) + (unreachable) + (end) + (i32.const 0) + (get_local 6) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=4) + (i32.const 0) + ) + (func 34 (type 4) (local i32 i32 i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 8) + (i32.store align=4 offset=4) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (tee_local 7) + (get_local 0) + (i32.load align=4 offset=8) + (tee_local 3) + (i32.sub) + (get_local 2) + (i32.ge_u) + (br_if 0) + (get_local 3) + (get_local 2) + (i32.add) + (tee_local 6) + (get_local 3) + (i32.lt_u) + (br_if 4) + (get_local 6) + (get_local 7) + (i32.const 1) + (i32.shl) + (tee_local 4) + (get_local 6) + (get_local 4) + (i32.ge_u) + (select) + (tee_local 4) + (i32.const -1) + (i32.le_s) + (br_if 5) + (get_local 7) + (i32.eqz) + (br_if 1) + (get_local 0) + (i32.load align=4) + (get_local 7) + (i32.const 1) + (get_local 4) + (i32.const 1) + (get_local 8) + (call 145) + (tee_local 5) + (get_local 8) + (i32.load align=4) + (get_local 5) + (select) + (set_local 7) + (get_local 5) + (i32.eqz) + (i32.eqz) + (br_if 2) + (br 6) + (end) + (get_local 3) + (get_local 2) + (i32.add) + (set_local 6) + (get_local 0) + (i32.load align=4) + (set_local 7) + (br 2) + (end) + (block emptyblock) + (block emptyblock) + (get_local 4) + (call 107) + (tee_local 7) + (i32.eqz) + (br_if 0) + (get_local 7) + (set_local 5) + (br 1) + (end) + (get_local 8) + (get_local 4) + (i32.store align=4 offset=4) + (get_local 8) + (get_local 7) + (i32.store align=4) + (get_local 8) + (i32.const 1) + (i32.store align=4 offset=8) + (i32.const 0) + (set_local 5) + (end) + (get_local 5) + (get_local 7) + (get_local 5) + (select) + (set_local 7) + (get_local 5) + (i32.eqz) + (br_if 4) + (end) + (get_local 0) + (get_local 7) + (i32.store align=4) + (get_local 0) + (i32.const 4) + (i32.add) + (get_local 4) + (i32.store align=4) + (end) + (get_local 0) + (i32.const 8) + (i32.add) + (get_local 6) + (i32.store align=4) + (get_local 7) + (get_local 3) + (i32.add) + (get_local 1) + (get_local 2) + (call 112) + (drop) + (i32.const 0) + (get_local 8) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (i32.const 2032) + (i32.const 17) + (call 143) + (unreachable) + (end) + (i32.const 2052) + (call 139) + (unreachable) + (end) + (unreachable) + (unreachable) + ) + (func 35 (type 5) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 64) + (i32.sub) + (tee_local 2) + (i32.store align=4 offset=4) + (get_local 2) + (i32.const 1568) + (i32.store align=4 offset=8) + (get_local 2) + (i32.const 43) + (i32.store align=4 offset=12) + (get_local 2) + (get_local 1) + (i32.store8 align=1 offset=20) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=16) + (get_local 2) + (i32.const 48) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 4) + (i32.store align=4) + (get_local 2) + (i32.const 5) + (i32.store align=4 offset=52) + (get_local 2) + (get_local 2) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=56) + (get_local 2) + (i32.const 6944) + (i32.store align=4 offset=32) + (get_local 2) + (i32.const 2) + (i32.store align=4 offset=28) + (get_local 2) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=48) + (get_local 2) + (i32.const 808) + (i32.store align=4 offset=24) + (get_local 2) + (i32.const 24) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 2) + (get_local 2) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=40) + (get_local 2) + (i32.const 44) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 2) + (i32.const 24) + (i32.add) + (i32.const 824) + (call 141) + (unreachable) + ) + (func 36 (type 6) + (i32.const 896) + (i32.const 25) + (get_local 1) + (call 124) + ) + (func 37 (type 2) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 1) + (i32.store align=4 offset=4) + (get_local 1) + (i32.const 47) + (i32.store align=4 offset=4) + (get_local 1) + (i32.const 1712) + (i32.store align=4) + (get_local 1) + (i32.const 32) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 6) + (i32.store align=4) + (get_local 1) + (get_local 0) + (i32.store align=4 offset=40) + (get_local 1) + (i32.const 5) + (i32.store align=4 offset=36) + (get_local 1) + (i32.const 6944) + (i32.store align=4 offset=16) + (get_local 1) + (i32.const 2) + (i32.store align=4 offset=12) + (get_local 1) + (get_local 1) + (i32.store align=4 offset=32) + (get_local 1) + (i32.const 808) + (i32.store align=4 offset=8) + (get_local 1) + (i32.const 8) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 1) + (get_local 1) + (i32.const 32) + (i32.add) + (i32.store align=4 offset=24) + (get_local 1) + (i32.const 28) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 1) + (i32.const 8) + (i32.add) + (i32.const 824) + (call 141) + (unreachable) + ) + (func 38 (type 1) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 64) + (i32.sub) + (tee_local 0) + (i32.store align=4 offset=4) + (get_local 0) + (i32.const 16) + (i32.store align=4 offset=12) + (get_local 0) + (i32.const 3152) + (i32.store align=4 offset=8) + (get_local 0) + (i32.const 40) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 7) + (i32.store align=4) + (get_local 0) + (i32.const 5) + (i32.store align=4 offset=44) + (get_local 0) + (get_local 0) + (i32.const 56) + (i32.add) + (i32.store align=4 offset=48) + (get_local 0) + (i32.const 6944) + (i32.store align=4 offset=24) + (get_local 0) + (i32.const 2) + (i32.store align=4 offset=20) + (get_local 0) + (get_local 0) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=40) + (get_local 0) + (i32.const 808) + (i32.store align=4 offset=16) + (get_local 0) + (i32.const 16) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 0) + (get_local 0) + (i32.const 40) + (i32.add) + (i32.store align=4 offset=32) + (get_local 0) + (i32.const 36) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 0) + (i32.const 16) + (i32.add) + (i32.const 824) + (call 141) + (unreachable) + ) + (func 39 (type 1) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 64) + (i32.sub) + (tee_local 0) + (i32.store align=4 offset=4) + (get_local 0) + (i32.const 24) + (i32.store align=4 offset=12) + (get_local 0) + (i32.const 3312) + (i32.store align=4 offset=8) + (get_local 0) + (i32.const 40) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 8) + (i32.store align=4) + (get_local 0) + (i32.const 5) + (i32.store align=4 offset=44) + (get_local 0) + (get_local 0) + (i32.const 56) + (i32.add) + (i32.store align=4 offset=48) + (get_local 0) + (i32.const 6944) + (i32.store align=4 offset=24) + (get_local 0) + (i32.const 2) + (i32.store align=4 offset=20) + (get_local 0) + (get_local 0) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=40) + (get_local 0) + (i32.const 808) + (i32.store align=4 offset=16) + (get_local 0) + (i32.const 16) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 0) + (get_local 0) + (i32.const 40) + (i32.add) + (i32.store align=4 offset=32) + (get_local 0) + (i32.const 36) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 0) + (i32.const 16) + (i32.add) + (i32.const 824) + (call 141) + (unreachable) + ) + (func 40 (type 1) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 64) + (i32.sub) + (tee_local 0) + (i32.store align=4 offset=4) + (get_local 0) + (i32.const 57) + (i32.store align=4 offset=12) + (get_local 0) + (i32.const 3168) + (i32.store align=4 offset=8) + (get_local 0) + (i32.const 40) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 9) + (i32.store align=4) + (get_local 0) + (i32.const 5) + (i32.store align=4 offset=44) + (get_local 0) + (get_local 0) + (i32.const 56) + (i32.add) + (i32.store align=4 offset=48) + (get_local 0) + (i32.const 6944) + (i32.store align=4 offset=24) + (get_local 0) + (i32.const 2) + (i32.store align=4 offset=20) + (get_local 0) + (get_local 0) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=40) + (get_local 0) + (i32.const 808) + (i32.store align=4 offset=16) + (get_local 0) + (i32.const 16) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 0) + (get_local 0) + (i32.const 40) + (i32.add) + (i32.store align=4 offset=32) + (get_local 0) + (i32.const 36) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 0) + (i32.const 16) + (i32.add) + (i32.const 824) + (call 141) + (unreachable) + ) + (func 41 (type 6) (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 80) + (i32.sub) + (tee_local 11) + (i32.store align=4 offset=4) + (get_local 1) + (i32.const 28) + (i32.add) + (tee_local 3) + (i32.load align=4) + (set_local 10) + (get_local 0) + (i32.load align=4) + (tee_local 0) + (i32.load align=4 offset=8) + (set_local 8) + (get_local 0) + (i32.load align=4) + (set_local 0) + (get_local 1) + (i32.load align=4 offset=24) + (set_local 9) + (get_local 11) + (i32.const 76) + (i32.add) + (tee_local 4) + (i32.const 0) + (i32.store align=4) + (i32.const 1) + (set_local 5) + (get_local 11) + (i32.const 1) + (i32.store align=4 offset=60) + (get_local 11) + (i32.const 5444) + (i32.store align=4 offset=56) + (get_local 11) + (i32.const 0) + (i32.store align=4 offset=64) + (get_local 11) + (i32.const 7076) + (i32.store align=4 offset=72) + (get_local 9) + (get_local 10) + (get_local 11) + (i32.const 56) + (i32.add) + (call 121) + (set_local 10) + (block emptyblock) + (get_local 8) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const 24) + (i32.add) + (set_local 6) + (get_local 11) + (i32.const 72) + (i32.add) + (set_local 7) + (i32.const 0) + (set_local 9) + (loop emptyblock) + (get_local 9) + (set_local 2) + (get_local 11) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 11) + (i32.const 2536) + (i32.store align=4 offset=20) + (i32.const 1) + (set_local 9) + (get_local 10) + (i32.const 255) + (i32.and) + (set_local 5) + (get_local 11) + (get_local 11) + (i32.const 12) + (i32.add) + (i32.store align=4 offset=16) + (i32.const 1) + (set_local 10) + (block emptyblock) + (get_local 5) + (br_if 0) + (block emptyblock) + (get_local 1) + (i32.load8_u align=1) + (i32.const 4) + (i32.and) + (br_if 0) + (get_local 11) + (i32.const 5424) + (i32.const 5232) + (get_local 2) + (i32.const 255) + (i32.and) + (tee_local 10) + (select) + (i32.store align=4 offset=32) + (get_local 11) + (get_local 10) + (i32.const 0) + (i32.ne) + (i32.const 1) + (i32.shl) + (i32.store align=4 offset=36) + (get_local 11) + (i32.const 40) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 10) + (i32.store align=4) + (get_local 11) + (i32.const 11) + (i32.store align=4 offset=44) + (get_local 11) + (i32.const 40) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 11) + (i32.const 16) + (i32.add) + (i32.store align=4) + (get_local 3) + (i32.load align=4) + (set_local 10) + (get_local 6) + (i32.load align=4) + (set_local 5) + (get_local 11) + (get_local 11) + (i32.const 32) + (i32.add) + (i32.store align=4 offset=40) + (get_local 11) + (i32.const 56) + (i32.add) + (i32.const 8) + (i32.add) + (i32.const 6944) + (i32.store align=4) + (get_local 11) + (i32.const 56) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 4) + (i32.const 2) + (i32.store align=4) + (get_local 11) + (i32.const 2) + (i32.store align=4 offset=60) + (get_local 11) + (i32.const 5428) + (i32.store align=4 offset=56) + (get_local 7) + (get_local 11) + (i32.const 40) + (i32.add) + (i32.store align=4) + (get_local 5) + (get_local 10) + (get_local 11) + (i32.const 56) + (i32.add) + (call 121) + (set_local 10) + (br 1) + (end) + (get_local 11) + (i32.const 0) + (i32.store8 align=1 offset=28) + (get_local 11) + (get_local 1) + (i32.store align=4 offset=24) + (get_local 11) + (get_local 2) + (i32.const 255) + (i32.and) + (tee_local 10) + (i32.store align=4 offset=36) + (get_local 11) + (i32.const 5200) + (i32.const 5232) + (get_local 10) + (select) + (i32.store align=4 offset=32) + (get_local 11) + (i32.const 40) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 10) + (i32.store align=4) + (get_local 11) + (i32.const 40) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 11) + (i32.const 16) + (i32.add) + (i32.store align=4) + (get_local 11) + (i32.const 56) + (i32.add) + (i32.const 8) + (i32.add) + (i32.const 5300) + (i32.store align=4) + (get_local 11) + (i32.const 56) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 11) + (i32.const 11) + (i32.store align=4 offset=44) + (get_local 11) + (i32.const 2) + (i32.store align=4 offset=60) + (get_local 11) + (get_local 11) + (i32.const 32) + (i32.add) + (i32.store align=4 offset=40) + (get_local 11) + (i32.const 5284) + (i32.store align=4 offset=56) + (get_local 7) + (get_local 11) + (i32.const 40) + (i32.add) + (i32.store align=4) + (get_local 4) + (i32.const 2) + (i32.store align=4) + (get_local 11) + (i32.const 24) + (i32.add) + (i32.const 5204) + (get_local 11) + (i32.const 56) + (i32.add) + (call 121) + (set_local 10) + (end) + (get_local 0) + (i32.const 1) + (i32.add) + (set_local 0) + (get_local 8) + (i32.const -1) + (i32.add) + (tee_local 8) + (br_if 0) + (end) + (i32.const 0) + (set_local 5) + (end) + (i32.const 1) + (set_local 0) + (block emptyblock) + (get_local 10) + (br_if 0) + (i32.const 1) + (set_local 0) + (get_local 1) + (i32.const 24) + (i32.add) + (tee_local 8) + (i32.load align=4) + (i32.const 5232) + (i32.const 5264) + (get_local 1) + (i32.load8_u align=1) + (i32.const 4) + (i32.and) + (i32.eqz) + (get_local 5) + (i32.or) + (tee_local 10) + (select) + (get_local 10) + (i32.const 1) + (i32.xor) + (get_local 1) + (i32.const 28) + (i32.add) + (tee_local 10) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 0) + (get_local 8) + (i32.load align=4) + (i32.const 5472) + (i32.const 1) + (get_local 10) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (set_local 0) + (end) + (i32.const 0) + (get_local 11) + (i32.const 80) + (i32.add) + (i32.store align=4 offset=4) + (get_local 0) + ) + (func 42 (type 2) + (get_local 0) + (call_indirect (type 1)) + ) + (func 43 (type 6) (local i32 i32 i32 i32 i32 i32 i32 i64) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 8) + (i32.store align=4 offset=4) + (i32.const 0) + (set_local 4) + (get_local 8) + (i32.const 0) + (i32.store align=4 offset=4) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.const 127) + (i32.gt_u) + (br_if 0) + (get_local 8) + (get_local 1) + (i32.store8 align=1 offset=4) + (i32.const 1) + (set_local 7) + (br 1) + (end) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.const 2048) + (i32.ge_u) + (br_if 0) + (i32.const 2) + (set_local 7) + (i32.const 1) + (set_local 6) + (i32.const 192) + (set_local 5) + (i32.const 31) + (set_local 3) + (br 1) + (end) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.const 65536) + (i32.ge_u) + (br_if 0) + (i32.const 3) + (set_local 7) + (i32.const 2) + (set_local 6) + (i32.const 1) + (set_local 4) + (i32.const 224) + (set_local 5) + (i32.const 0) + (set_local 3) + (i32.const 15) + (set_local 2) + (br 1) + (end) + (get_local 8) + (get_local 1) + (i32.const 18) + (i32.shr_u) + (i32.const 240) + (i32.or) + (i32.store8 align=1 offset=4) + (i32.const 4) + (set_local 7) + (i32.const 3) + (set_local 6) + (i32.const 2) + (set_local 4) + (i32.const 128) + (set_local 5) + (i32.const 1) + (set_local 3) + (i32.const 63) + (set_local 2) + (end) + (get_local 8) + (i32.const 4) + (i32.add) + (get_local 3) + (i32.or) + (get_local 2) + (get_local 1) + (i32.const 12) + (i32.shr_u) + (i32.and) + (get_local 5) + (i32.or) + (i32.store8 align=1) + (i32.const 128) + (set_local 5) + (i32.const 63) + (set_local 3) + (end) + (get_local 8) + (i32.const 4) + (i32.add) + (get_local 4) + (i32.add) + (get_local 3) + (get_local 1) + (i32.const 6) + (i32.shr_u) + (i32.and) + (get_local 5) + (i32.or) + (i32.store8 align=1) + (get_local 8) + (i32.const 4) + (i32.add) + (get_local 6) + (i32.add) + (get_local 1) + (i32.const 63) + (i32.and) + (i32.const 128) + (i32.or) + (i32.store8 align=1) + (end) + (get_local 8) + (i32.const 8) + (i32.add) + (get_local 8) + (i32.const 4) + (i32.add) + (get_local 7) + (call 100) + (i32.const 0) + (set_local 1) + (block emptyblock) + (get_local 8) + (i32.load8_u align=1 offset=8) + (i32.const 3) + (i32.eq) + (br_if 0) + (get_local 8) + (i64.load align=8 offset=8) + (set_local 9) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (br_if 0) + (get_local 0) + (i32.load8_u align=1 offset=4) + (i32.const 2) + (i32.ne) + (br_if 1) + (end) + (get_local 0) + (i32.const 8) + (i32.add) + (i32.load align=4) + (tee_local 1) + (i32.load align=4) + (get_local 1) + (i32.load align=4 offset=4) + (i32.load align=4) + (call_indirect (type 2)) + (block emptyblock) + (get_local 1) + (i32.load align=4 offset=4) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.load align=4) + (call 109) + (end) + (get_local 1) + (call 109) + (end) + (get_local 0) + (i32.const 4) + (i32.add) + (get_local 9) + (i64.store align=4) + (i32.const 1) + (set_local 1) + (end) + (i32.const 0) + (get_local 8) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (get_local 1) + ) + (func 44 (type 6) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 32) + (i32.sub) + (tee_local 2) + (i32.store align=4 offset=4) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=4) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.const 16) + (i32.add) + (get_local 1) + (i32.const 16) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 1) + (i32.const 8) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 2) + (get_local 1) + (i64.load align=4) + (i64.store align=8 offset=8) + (get_local 2) + (i32.const 4) + (i32.add) + (i32.const 1148) + (get_local 2) + (i32.const 8) + (i32.add) + (call 121) + (set_local 1) + (i32.const 0) + (get_local 2) + (i32.const 32) + (i32.add) + (i32.store align=4 offset=4) + (get_local 1) + ) + (func 45 (type 2) + + ) + (func 46 (type 5) + (get_local 0) + (i32.const 0) + (i32.store align=4) + ) + (func 47 (type 3) + (i64.const 5672177759992450925) + ) + (func 48 (type 5) + (get_local 0) + (get_local 1) + (i32.load align=4 offset=8) + (i32.store align=4 offset=4) + (get_local 0) + (get_local 1) + (i32.load align=4) + (i32.store align=4) + ) + (func 49 (type 6) + (get_local 1) + (get_local 0) + (i32.load align=4) + (get_local 0) + (i32.load align=4 offset=8) + (call 123) + ) + (func 50 (type 0) (local i32 i64) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 3) + (i32.store align=4 offset=4) + (get_local 3) + (i32.const 8) + (i32.add) + (get_local 1) + (get_local 2) + (call 100) + (i32.const 0) + (set_local 1) + (block emptyblock) + (get_local 3) + (i32.load8_u align=1 offset=8) + (i32.const 3) + (i32.eq) + (br_if 0) + (get_local 3) + (i64.load align=8 offset=8) + (set_local 4) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (br_if 0) + (get_local 0) + (i32.load8_u align=1 offset=4) + (i32.const 2) + (i32.ne) + (br_if 1) + (end) + (get_local 0) + (i32.const 8) + (i32.add) + (i32.load align=4) + (tee_local 1) + (i32.load align=4) + (get_local 1) + (i32.load align=4 offset=4) + (i32.load align=4) + (call_indirect (type 2)) + (block emptyblock) + (get_local 1) + (i32.load align=4 offset=4) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.load align=4) + (call 109) + (end) + (get_local 1) + (call 109) + (end) + (get_local 0) + (i32.const 4) + (i32.add) + (get_local 4) + (i64.store align=4) + (i32.const 1) + (set_local 1) + (end) + (i32.const 0) + (get_local 3) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (get_local 1) + ) + (func 51 (type 6) (local i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 3) + (i32.store align=4 offset=4) + (get_local 3) + (get_local 1) + (i32.load align=4 offset=24) + (i32.const 1312) + (i32.const 11) + (get_local 1) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (i32.store8 align=1 offset=8) + (get_local 3) + (get_local 1) + (i32.store align=4) + (get_local 3) + (i32.const 0) + (i32.store align=4 offset=4) + (get_local 3) + (i32.const 0) + (i32.store8 align=1 offset=9) + (get_local 3) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 3) + (get_local 3) + (i32.const 12) + (i32.add) + (i32.const 1324) + (call 137) + (drop) + (get_local 3) + (i32.load8_u align=1 offset=8) + (set_local 1) + (block emptyblock) + (get_local 3) + (i32.load align=4 offset=4) + (tee_local 2) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const 255) + (i32.and) + (set_local 0) + (i32.const 1) + (set_local 1) + (block emptyblock) + (get_local 0) + (br_if 0) + (block emptyblock) + (get_local 3) + (i32.load align=4) + (tee_local 0) + (i32.load8_u align=1) + (i32.const 4) + (i32.and) + (i32.eqz) + (br_if 0) + (i32.const 1) + (set_local 1) + (get_local 0) + (i32.load align=4 offset=24) + (i32.const 5264) + (i32.const 1) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 1) + (end) + (block emptyblock) + (get_local 2) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 3) + (i32.const 9) + (i32.add) + (i32.load8_u align=1) + (i32.const 255) + (i32.and) + (i32.eqz) + (br_if 0) + (i32.const 1) + (set_local 1) + (get_local 0) + (i32.load align=4 offset=24) + (i32.const 5200) + (i32.const 1) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 1) + (end) + (get_local 0) + (i32.load align=4 offset=24) + (i32.const 5408) + (i32.const 1) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (set_local 1) + (end) + (get_local 3) + (i32.const 8) + (i32.add) + (get_local 1) + (i32.store8 align=1) + (end) + (i32.const 0) + (get_local 3) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (get_local 1) + (i32.const 255) + (i32.and) + (i32.const 0) + (i32.ne) + ) + (func 52 (type 2) + + ) + (func 53 (type 2) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.load align=4) + (call 109) + (end) + ) + (func 54 (type 2) (local i32 i32 i32 i32 i32 i64) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 64) + (i32.sub) + (tee_local 5) + (i32.store align=4 offset=4) + (block emptyblock) + (block emptyblock) + (i32.const 35) + (call 107) + (tee_local 2) + (i32.eqz) + (br_if 0) + (get_local 5) + (i32.const 35) + (i32.store align=4 offset=36) + (get_local 5) + (get_local 2) + (i32.store align=4 offset=32) + (get_local 5) + (i32.const 0) + (i32.store align=4 offset=40) + (get_local 5) + (i32.const 32) + (i32.add) + (i32.const 1376) + (i32.const 35) + (call 111) + (get_local 5) + (i32.const 48) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 2) + (get_local 5) + (i32.load align=4 offset=40) + (tee_local 1) + (i32.store align=4) + (get_local 5) + (i32.const 16) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 3) + (get_local 1) + (i32.store align=4) + (get_local 5) + (get_local 5) + (i32.load align=4 offset=32) + (tee_local 1) + (i32.store align=4 offset=48) + (get_local 5) + (get_local 5) + (i32.load align=4 offset=36) + (tee_local 4) + (i32.store align=4 offset=52) + (get_local 5) + (get_local 4) + (i32.store align=4 offset=20) + (get_local 5) + (get_local 1) + (i32.store align=4 offset=16) + (get_local 2) + (get_local 3) + (i32.load align=4) + (tee_local 1) + (i32.store align=4) + (get_local 5) + (i32.const 8) + (i32.add) + (tee_local 3) + (get_local 1) + (i32.store align=4) + (get_local 5) + (get_local 5) + (i32.load align=4 offset=16) + (tee_local 1) + (i32.store align=4 offset=48) + (get_local 5) + (get_local 5) + (i32.load align=4 offset=20) + (tee_local 4) + (i32.store align=4 offset=52) + (get_local 5) + (get_local 4) + (i32.store align=4 offset=4) + (get_local 5) + (get_local 1) + (i32.store align=4) + (get_local 2) + (get_local 3) + (i32.load align=4) + (tee_local 1) + (i32.store align=4) + (get_local 5) + (i32.const 32) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 4) + (get_local 1) + (i32.store align=4) + (get_local 5) + (get_local 5) + (i32.load align=4) + (tee_local 1) + (i32.store align=4 offset=48) + (get_local 5) + (get_local 5) + (i32.load align=4 offset=4) + (tee_local 3) + (i32.store align=4 offset=52) + (get_local 5) + (get_local 3) + (i32.store align=4 offset=36) + (get_local 5) + (get_local 1) + (i32.store align=4 offset=32) + (i32.const 12) + (call 107) + (tee_local 1) + (i32.eqz) + (br_if 1) + (get_local 1) + (get_local 5) + (i64.load align=8 offset=32) + (tee_local 6) + (i64.store align=4) + (get_local 1) + (i32.const 8) + (i32.add) + (get_local 4) + (i32.load align=4) + (tee_local 3) + (i32.store align=4) + (get_local 2) + (get_local 3) + (i32.store align=4) + (get_local 5) + (get_local 6) + (i64.store align=8 offset=48) + (i32.const 12) + (call 107) + (tee_local 2) + (i32.eqz) + (br_if 1) + (get_local 2) + (get_local 1) + (i32.store align=4) + (get_local 2) + (i32.const 1340) + (i32.store align=4 offset=4) + (get_local 5) + (i32.const 48) + (i32.add) + (i32.const 2) + (i32.add) + (tee_local 1) + (get_local 5) + (i32.const 32) + (i32.add) + (i32.const 2) + (i32.add) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 5) + (get_local 5) + (i32.load16_u align=1 offset=32) + (i32.store16 align=2 offset=48) + (get_local 2) + (i32.const 16) + (i32.store8 align=1 offset=8) + (get_local 2) + (i32.const 11) + (i32.add) + (get_local 1) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 2) + (get_local 5) + (i32.load16_u align=2 offset=48) + (i32.store16 align=1 offset=9) + (get_local 0) + (get_local 2) + (i32.store align=4 offset=8) + (get_local 0) + (i64.const 8589934593) + (i64.store align=4) + (i32.const 0) + (get_local 5) + (i32.const 64) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (get_local 5) + (i32.const 35) + (i32.store align=4 offset=52) + (get_local 5) + (get_local 2) + (i32.store align=4 offset=48) + (get_local 5) + (i32.const 1) + (i32.store align=4 offset=56) + (end) + (unreachable) + (unreachable) + ) + (func 55 (type 5) (local i32 i32 i32 i32 i32 i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 32) + (i32.sub) + (tee_local 10) + (i32.store align=4 offset=4) + (i32.const 0) + (set_local 8) + (get_local 1) + (i32.load align=4 offset=8) + (set_local 2) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.load align=4) + (tee_local 7) + (i32.const 3) + (i32.and) + (tee_local 9) + (i32.eqz) + (br_if 0) + (get_local 7) + (get_local 7) + (i32.const -4) + (i32.or) + (i32.const 0) + (get_local 9) + (select) + (tee_local 9) + (get_local 2) + (get_local 9) + (get_local 2) + (i32.le_u) + (select) + (tee_local 8) + (i32.add) + (set_local 3) + (get_local 8) + (set_local 4) + (get_local 7) + (set_local 5) + (i32.const 0) + (set_local 9) + (block emptyblock) + (loop emptyblock) + (get_local 3) + (get_local 5) + (i32.sub) + (i32.const 3) + (i32.le_u) + (br_if 1) + (get_local 5) + (i32.load8_u align=1) + (tee_local 6) + (i32.const 0) + (i32.ne) + (get_local 9) + (i32.add) + (set_local 9) + (get_local 6) + (i32.eqz) + (br_if 3) + (get_local 5) + (i32.const 1) + (i32.add) + (i32.load8_u align=1) + (tee_local 6) + (i32.const 0) + (i32.ne) + (get_local 9) + (i32.add) + (set_local 9) + (get_local 6) + (i32.eqz) + (br_if 3) + (get_local 5) + (i32.const 2) + (i32.add) + (i32.load8_u align=1) + (tee_local 6) + (i32.const 0) + (i32.ne) + (get_local 9) + (i32.add) + (set_local 9) + (get_local 6) + (i32.eqz) + (br_if 3) + (get_local 4) + (i32.const -4) + (i32.add) + (set_local 4) + (get_local 5) + (i32.const 3) + (i32.add) + (i32.load8_u align=1) + (tee_local 6) + (i32.const 0) + (i32.ne) + (get_local 9) + (i32.add) + (set_local 9) + (get_local 5) + (i32.const 4) + (i32.add) + (set_local 5) + (get_local 6) + (br_if 0) + (br 3) + (end) + (unreachable) + (end) + (loop emptyblock) + (get_local 4) + (i32.eqz) + (br_if 1) + (get_local 4) + (i32.const -1) + (i32.add) + (set_local 4) + (get_local 5) + (i32.load8_u align=1) + (tee_local 6) + (i32.const 0) + (i32.ne) + (get_local 9) + (i32.add) + (set_local 9) + (get_local 5) + (i32.const 1) + (i32.add) + (set_local 5) + (get_local 6) + (br_if 0) + (br 2) + (end) + (unreachable) + (end) + (block emptyblock) + (get_local 2) + (i32.const 8) + (i32.lt_u) + (br_if 0) + (get_local 8) + (get_local 2) + (i32.const -8) + (i32.add) + (tee_local 4) + (i32.gt_u) + (br_if 0) + (block emptyblock) + (loop emptyblock) + (get_local 7) + (get_local 8) + (i32.add) + (tee_local 9) + (i32.const 4) + (i32.add) + (i32.load align=4) + (tee_local 5) + (i32.const -1) + (i32.xor) + (get_local 5) + (i32.const -16843009) + (i32.add) + (i32.and) + (get_local 9) + (i32.load align=4) + (tee_local 9) + (i32.const -1) + (i32.xor) + (get_local 9) + (i32.const -16843009) + (i32.add) + (i32.and) + (i32.or) + (i32.const -2139062144) + (i32.and) + (br_if 1) + (get_local 8) + (i32.const 8) + (i32.add) + (tee_local 8) + (get_local 4) + (i32.le_u) + (br_if 0) + (end) + (end) + (get_local 8) + (get_local 2) + (i32.gt_u) + (br_if 3) + (end) + (get_local 7) + (get_local 8) + (i32.add) + (tee_local 6) + (get_local 2) + (get_local 8) + (i32.sub) + (tee_local 2) + (i32.add) + (set_local 3) + (i32.const 0) + (set_local 5) + (i32.const 0) + (set_local 9) + (block emptyblock) + (block emptyblock) + (loop emptyblock) + (get_local 3) + (get_local 6) + (get_local 5) + (i32.add) + (tee_local 4) + (i32.sub) + (i32.const 3) + (i32.le_u) + (br_if 1) + (get_local 4) + (i32.load8_u align=1) + (tee_local 4) + (i32.const 0) + (i32.ne) + (get_local 9) + (i32.add) + (set_local 9) + (get_local 4) + (i32.eqz) + (br_if 2) + (get_local 6) + (get_local 5) + (i32.add) + (tee_local 4) + (i32.const 1) + (i32.add) + (i32.load8_u align=1) + (tee_local 7) + (i32.const 0) + (i32.ne) + (get_local 9) + (i32.add) + (set_local 9) + (get_local 7) + (i32.eqz) + (br_if 2) + (get_local 4) + (i32.const 2) + (i32.add) + (i32.load8_u align=1) + (tee_local 7) + (i32.const 0) + (i32.ne) + (get_local 9) + (i32.add) + (set_local 9) + (get_local 7) + (i32.eqz) + (br_if 2) + (get_local 5) + (i32.const 4) + (i32.add) + (set_local 5) + (get_local 4) + (i32.const 3) + (i32.add) + (i32.load8_u align=1) + (tee_local 4) + (i32.const 0) + (i32.ne) + (get_local 9) + (i32.add) + (set_local 9) + (get_local 4) + (br_if 0) + (br 2) + (end) + (unreachable) + (end) + (get_local 2) + (get_local 5) + (i32.sub) + (set_local 5) + (loop emptyblock) + (get_local 5) + (i32.eqz) + (br_if 3) + (get_local 5) + (i32.const -1) + (i32.add) + (set_local 5) + (get_local 4) + (i32.load8_u align=1) + (tee_local 6) + (i32.const 0) + (i32.ne) + (get_local 9) + (i32.add) + (set_local 9) + (get_local 4) + (i32.const 1) + (i32.add) + (set_local 4) + (get_local 6) + (br_if 0) + (end) + (end) + (get_local 9) + (get_local 8) + (i32.add) + (set_local 9) + (end) + (get_local 10) + (i32.const 16) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 1) + (i32.const 8) + (i32.add) + (i32.load align=4) + (tee_local 5) + (i32.store align=4) + (get_local 10) + (i32.const 8) + (i32.add) + (tee_local 4) + (get_local 5) + (i32.store align=4) + (get_local 10) + (get_local 1) + (i32.load align=4) + (tee_local 5) + (i32.store align=4 offset=16) + (get_local 10) + (get_local 1) + (i32.const 4) + (i32.add) + (i32.load align=4) + (tee_local 8) + (i32.store align=4 offset=20) + (get_local 10) + (get_local 8) + (i32.store align=4 offset=4) + (get_local 10) + (get_local 5) + (i32.store align=4) + (get_local 0) + (get_local 9) + (i32.store align=4 offset=4) + (get_local 0) + (i32.const 1) + (i32.store align=4) + (get_local 0) + (i32.const 16) + (i32.add) + (get_local 4) + (i32.load align=4) + (i32.store align=4) + (get_local 0) + (i32.const 12) + (i32.add) + (get_local 10) + (i32.load align=4 offset=4) + (i32.store align=4) + (get_local 0) + (get_local 10) + (i32.load align=4) + (i32.store align=4 offset=8) + (br 3) + (end) + (get_local 10) + (i32.const 8) + (i32.add) + (tee_local 4) + (get_local 1) + (i32.const 8) + (i32.add) + (i32.load align=4) + (tee_local 9) + (i32.store align=4) + (get_local 10) + (get_local 1) + (i64.load align=4) + (i64.store align=8) + (get_local 10) + (get_local 9) + (call 62) + (get_local 4) + (i32.load align=4) + (tee_local 9) + (get_local 10) + (i32.load align=4 offset=4) + (tee_local 5) + (i32.ne) + (br_if 1) + (get_local 10) + (call 63) + (get_local 4) + (i32.load align=4) + (set_local 9) + (get_local 10) + (i32.load align=4 offset=4) + (set_local 5) + (br 1) + (end) + (get_local 8) + (get_local 2) + (call 129) + (unreachable) + (end) + (get_local 10) + (i32.load align=4) + (tee_local 8) + (get_local 9) + (i32.add) + (i32.const 0) + (i32.store8 align=1) + (get_local 4) + (get_local 9) + (i32.const 1) + (i32.add) + (tee_local 9) + (i32.store align=4) + (block emptyblock) + (block emptyblock) + (get_local 5) + (get_local 9) + (i32.lt_u) + (br_if 0) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 9) + (i32.eqz) + (br_if 0) + (get_local 5) + (get_local 9) + (i32.ne) + (br_if 1) + (get_local 5) + (set_local 9) + (get_local 8) + (set_local 4) + (br 2) + (end) + (i32.const 1) + (set_local 4) + (i32.const 0) + (set_local 9) + (get_local 5) + (i32.eqz) + (br_if 1) + (get_local 8) + (call 109) + (br 1) + (end) + (get_local 8) + (get_local 5) + (i32.const 1) + (get_local 9) + (i32.const 1) + (get_local 10) + (i32.const 16) + (i32.add) + (call 145) + (tee_local 4) + (i32.eqz) + (br_if 2) + (end) + (get_local 0) + (get_local 4) + (i32.store align=4 offset=4) + (get_local 0) + (i32.const 0) + (i32.store align=4) + (get_local 0) + (get_local 9) + (i32.store align=4 offset=8) + (br 2) + (end) + (i32.const 2116) + (call 139) + (unreachable) + (end) + (unreachable) + (unreachable) + (end) + (i32.const 0) + (get_local 10) + (i32.const 32) + (i32.add) + (i32.store align=4 offset=4) + ) + (func 56 (type 6) (local i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 3) + (i32.store align=4 offset=4) + (get_local 3) + (get_local 1) + (i32.load align=4 offset=24) + (i32.const 1424) + (i32.const 8) + (get_local 1) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (i32.store8 align=1 offset=8) + (get_local 3) + (get_local 1) + (i32.store align=4) + (get_local 3) + (i32.const 0) + (i32.store align=4 offset=4) + (get_local 3) + (i32.const 0) + (i32.store8 align=1 offset=9) + (get_local 3) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 3) + (get_local 3) + (i32.const 12) + (i32.add) + (i32.const 1432) + (call 137) + (set_local 1) + (get_local 3) + (get_local 0) + (i32.const 4) + (i32.add) + (i32.store align=4 offset=12) + (get_local 1) + (get_local 3) + (i32.const 12) + (i32.add) + (i32.const 1448) + (call 137) + (drop) + (get_local 3) + (i32.load8_u align=1 offset=8) + (set_local 1) + (block emptyblock) + (get_local 3) + (i32.load align=4 offset=4) + (tee_local 2) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const 255) + (i32.and) + (set_local 0) + (i32.const 1) + (set_local 1) + (block emptyblock) + (get_local 0) + (br_if 0) + (block emptyblock) + (get_local 3) + (i32.load align=4) + (tee_local 0) + (i32.load8_u align=1) + (i32.const 4) + (i32.and) + (i32.eqz) + (br_if 0) + (i32.const 1) + (set_local 1) + (get_local 0) + (i32.load align=4 offset=24) + (i32.const 5264) + (i32.const 1) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 1) + (end) + (block emptyblock) + (get_local 2) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 3) + (i32.const 9) + (i32.add) + (i32.load8_u align=1) + (i32.const 255) + (i32.and) + (i32.eqz) + (br_if 0) + (i32.const 1) + (set_local 1) + (get_local 0) + (i32.load align=4 offset=24) + (i32.const 5200) + (i32.const 1) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 1) + (end) + (get_local 0) + (i32.load align=4 offset=24) + (i32.const 5408) + (i32.const 1) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (set_local 1) + (end) + (get_local 3) + (i32.const 8) + (i32.add) + (get_local 1) + (i32.store8 align=1) + (end) + (i32.const 0) + (get_local 3) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (get_local 1) + (i32.const 255) + (i32.and) + (i32.const 0) + (i32.ne) + ) + (func 57 (type 2) + + ) + (func 58 (type 2) + + ) + (func 59 (type 13) (local i32 i32 i64 i64 i64) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 64) + (i32.sub) + (tee_local 2) + (i32.store align=4 offset=4) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 2) + (get_local 0) + (i64.load align=4 offset=4) + (i64.store align=4 offset=52) + (get_local 2) + (get_local 1) + (i32.store align=4 offset=48) + (get_local 2) + (i32.const 8) + (i32.add) + (get_local 2) + (i32.const 48) + (i32.add) + (call 55) + (get_local 2) + (i32.load align=4 offset=8) + (i32.const 1) + (i32.eq) + (br_if 2) + (get_local 2) + (i64.load32_u align=4 offset=16) + (i64.const 32) + (i64.shl) + (set_local 3) + (get_local 2) + (i64.load32_u align=4 offset=12) + (set_local 4) + (br 1) + (end) + (i64.const 0) + (set_local 3) + (i64.const 0) + (set_local 4) + (end) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (i32.load8_u align=1 offset=1760) + (br_if 0) + (i32.const 0) + (i32.const 1) + (i32.store8 align=1 offset=1760) + (i32.const 0) + (i64.load align=8 offset=1824) + (tee_local 5) + (i64.const -1) + (i64.eq) + (br_if 1) + (i32.const 0) + (get_local 5) + (i64.const 1) + (i64.add) + (i64.store align=8 offset=1824) + (i32.const 0) + (i32.const 0) + (i32.store8 align=1 offset=1760) + (block emptyblock) + (i32.const 1) + (call 107) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const 0) + (i32.store8 align=1) + (i32.const 48) + (call 107) + (tee_local 0) + (i32.eqz) + (br_if 0) + (get_local 0) + (get_local 5) + (i64.store align=8 offset=8) + (get_local 0) + (i64.const 4294967297) + (i64.store align=4) + (get_local 0) + (i32.const 0) + (i32.store align=4 offset=24) + (get_local 0) + (get_local 1) + (i32.store align=4 offset=28) + (get_local 0) + (i32.const 0) + (i32.store8 align=1 offset=32) + (get_local 0) + (get_local 4) + (get_local 3) + (i64.or) + (i64.store align=8 offset=16) + (get_local 0) + (i32.const 1) + (i32.store align=4 offset=36) + (get_local 0) + (i32.const 0) + (i32.store align=4 offset=40) + (i32.const 0) + (get_local 2) + (i32.const 64) + (i32.add) + (i32.store align=4 offset=4) + (get_local 0) + (return) + (end) + (unreachable) + (unreachable) + (end) + (i32.const 1776) + (i32.const 32) + (i32.const 1808) + (call 75) + (unreachable) + (end) + (i32.const 0) + (i32.const 0) + (i32.store8 align=1 offset=1760) + (i32.const 1840) + (i32.const 55) + (i32.const 1896) + (call 75) + (unreachable) + (end) + (get_local 2) + (i32.const 32) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 0) + (get_local 2) + (i32.const 20) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 2) + (get_local 2) + (i64.load align=4 offset=12) + (i64.store align=8 offset=32) + (get_local 2) + (i32.const 48) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 0) + (i64.load align=8) + (i64.store align=8) + (get_local 2) + (get_local 2) + (i64.load align=8 offset=32) + (i64.store align=8 offset=48) + (get_local 2) + (i32.const 48) + (i32.add) + (call 37) + (unreachable) + ) + (func 60 (type 2) (local i32) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=16) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const 0) + (i32.store8 align=1) + (get_local 0) + (i32.const 20) + (i32.add) + (i32.load align=4) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.const 16) + (i32.add) + (i32.load align=4) + (call 109) + (end) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (call 109) + (get_local 0) + (get_local 0) + (i32.load align=4 offset=4) + (tee_local 1) + (i32.const -1) + (i32.add) + (i32.store align=4 offset=4) + (block emptyblock) + (get_local 1) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 0) + (call 109) + (end) + ) + (func 61 (type 3) + (i64.const 3254967120849462314) + ) + (func 62 (type 5) (local i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 4) + (i32.store align=4 offset=4) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (get_local 1) + (i32.ne) + (br_if 0) + (get_local 1) + (i32.const 1) + (i32.add) + (tee_local 2) + (get_local 1) + (i32.lt_u) + (br_if 1) + (get_local 2) + (i32.const -1) + (i32.le_s) + (br_if 2) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.load align=4) + (get_local 1) + (i32.const 1) + (get_local 2) + (i32.const 1) + (get_local 4) + (call 145) + (tee_local 3) + (get_local 4) + (i32.load align=4) + (get_local 3) + (select) + (set_local 1) + (get_local 3) + (i32.eqz) + (i32.eqz) + (br_if 1) + (br 5) + (end) + (block emptyblock) + (block emptyblock) + (get_local 2) + (call 107) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 1) + (set_local 3) + (br 1) + (end) + (get_local 4) + (get_local 2) + (i32.store align=4 offset=4) + (get_local 4) + (get_local 1) + (i32.store align=4) + (get_local 4) + (i32.const 1) + (i32.store align=4 offset=8) + (i32.const 0) + (set_local 3) + (end) + (get_local 3) + (get_local 1) + (get_local 3) + (select) + (set_local 1) + (get_local 3) + (i32.eqz) + (br_if 4) + (end) + (get_local 0) + (get_local 1) + (i32.store align=4) + (get_local 0) + (i32.const 4) + (i32.add) + (get_local 2) + (i32.store align=4) + (end) + (i32.const 0) + (get_local 4) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (i32.const 2032) + (i32.const 17) + (call 143) + (unreachable) + (end) + (i32.const 2052) + (call 139) + (unreachable) + (end) + (unreachable) + (unreachable) + ) + (func 63 (type 2) (local i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 3) + (i32.store align=4 offset=4) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const 1) + (i32.shl) + (tee_local 2) + (i32.const -1) + (i32.le_s) + (br_if 2) + (get_local 0) + (i32.load align=4) + (get_local 1) + (i32.const 1) + (get_local 2) + (i32.const 1) + (get_local 3) + (call 145) + (tee_local 1) + (br_if 1) + (unreachable) + (unreachable) + (end) + (i32.const 4) + (set_local 2) + (i32.const 4) + (call 107) + (tee_local 1) + (i32.eqz) + (br_if 2) + (end) + (get_local 0) + (get_local 1) + (i32.store align=4) + (get_local 0) + (i32.const 4) + (i32.add) + (get_local 2) + (i32.store align=4) + (i32.const 0) + (get_local 3) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (i32.const 2052) + (call 139) + (unreachable) + (end) + (get_local 3) + (i32.const 4) + (i32.store align=4 offset=4) + (get_local 3) + (i32.const 1) + (i32.store align=4 offset=8) + (get_local 3) + (get_local 1) + (i32.store align=4) + (get_local 3) + (get_local 3) + (i64.load align=4 offset=4) + (i64.store align=4 offset=4) + (get_local 3) + (get_local 1) + (i32.store align=4) + (unreachable) + (unreachable) + ) + (func 64 (type 6) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 32) + (i32.sub) + (tee_local 2) + (i32.store align=4 offset=4) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=4) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.const 16) + (i32.add) + (get_local 1) + (i32.const 16) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 1) + (i32.const 8) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 2) + (get_local 1) + (i64.load align=4) + (i64.store align=8 offset=8) + (get_local 2) + (i32.const 4) + (i32.add) + (i32.const 2180) + (get_local 2) + (i32.const 8) + (i32.add) + (call 121) + (set_local 1) + (i32.const 0) + (get_local 2) + (i32.const 32) + (i32.add) + (i32.store align=4 offset=4) + (get_local 1) + ) + (func 65 (type 2) + + ) + (func 66 (type 6) + (get_local 0) + (i32.load align=4) + (tee_local 0) + (i32.load align=4) + (get_local 0) + (i32.load align=4 offset=8) + (get_local 1) + (call 124) + ) + (func 67 (type 1) (local i32 i32 i32 i32 i32 i32 i32 i32) + (i32.const 0) + (set_local 7) + (block emptyblock) + (i32.const 0) + (i32.const 9) + (i32.gt_u) + (br_if 0) + (loop emptyblock) + (get_local 7) + (i32.const 1) + (i32.add) + (tee_local 0) + (get_local 7) + (i32.lt_u) + (br_if 1) + (i32.const 0) + (i32.load align=4 offset=2296) + (set_local 1) + (i32.const 0) + (get_local 7) + (i32.const 9) + (i32.eq) + (i32.store align=4 offset=2296) + (get_local 0) + (set_local 7) + (block emptyblock) + (get_local 1) + (i32.eqz) + (br_if 0) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.const 1) + (i32.eq) + (br_if 0) + (get_local 1) + (i32.load align=4) + (tee_local 2) + (get_local 1) + (i32.load align=4 offset=8) + (tee_local 7) + (i32.const 3) + (i32.shl) + (i32.add) + (set_local 4) + (get_local 1) + (i32.load align=4 offset=4) + (set_local 3) + (block emptyblock) + (get_local 7) + (i32.eqz) + (br_if 0) + (get_local 2) + (set_local 7) + (loop emptyblock) + (get_local 7) + (i32.load align=4) + (get_local 7) + (i32.const 4) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 2)) + (get_local 7) + (i32.const 8) + (i32.add) + (tee_local 7) + (get_local 4) + (i32.ne) + (br_if 0) + (br 3) + (end) + (unreachable) + (end) + (get_local 2) + (get_local 4) + (i32.eq) + (br_if 1) + (get_local 2) + (set_local 7) + (loop emptyblock) + (get_local 7) + (i32.load align=4) + (tee_local 5) + (get_local 7) + (i32.const 4) + (i32.add) + (i32.load align=4) + (tee_local 6) + (i32.load align=4) + (call_indirect (type 2)) + (block emptyblock) + (get_local 6) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 5) + (call 109) + (end) + (get_local 7) + (i32.const 8) + (i32.add) + (tee_local 7) + (get_local 4) + (i32.ne) + (br_if 0) + (br 2) + (end) + (unreachable) + (end) + (i32.const 2304) + (i32.const 37) + (i32.const 2344) + (call 75) + (unreachable) + (end) + (block emptyblock) + (get_local 3) + (i32.eqz) + (br_if 0) + (get_local 2) + (call 109) + (end) + (get_local 1) + (call 109) + (get_local 0) + (set_local 7) + (end) + (get_local 7) + (i32.const 9) + (i32.le_u) + (br_if 0) + (end) + (end) + ) + (func 68 (type 14) (local i32 i32 i32 i32) + (i32.const 0) + (set_local 3) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=2416) + (tee_local 2) + (br_if 0) + (i32.const 0) + (i32.load align=4 offset=2420) + (set_local 0) + (i32.const 8) + (call 107) + (tee_local 2) + (i32.eqz) + (br_if 1) + (get_local 2) + (i32.const 0) + (i32.store align=4) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=4) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=2416) + (tee_local 0) + (get_local 2) + (get_local 0) + (select) + (i32.store align=4 offset=2416) + (get_local 0) + (i32.eqz) + (br_if 0) + (block emptyblock) + (get_local 2) + (i32.load align=4 offset=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 2) + (i32.load align=4) + (get_local 1) + (call_indirect (type 2)) + (end) + (get_local 2) + (call 109) + (get_local 0) + (set_local 2) + (end) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (tee_local 2) + (i32.const 1) + (i32.eq) + (br_if 0) + (block emptyblock) + (get_local 2) + (br_if 0) + (i32.const 20) + (call 107) + (tee_local 2) + (i32.eqz) + (br_if 2) + (get_local 2) + (i32.const 2416) + (i32.store align=4) + (get_local 2) + (i32.const 3) + (i32.store align=4 offset=8) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=2416) + (tee_local 3) + (br_if 0) + (i32.const 0) + (i32.load align=4 offset=2420) + (set_local 0) + (i32.const 8) + (call 107) + (tee_local 3) + (i32.eqz) + (br_if 3) + (get_local 3) + (i32.const 0) + (i32.store align=4) + (get_local 3) + (get_local 0) + (i32.store align=4 offset=4) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=2416) + (tee_local 0) + (get_local 3) + (get_local 0) + (select) + (i32.store align=4 offset=2416) + (get_local 0) + (i32.eqz) + (br_if 0) + (block emptyblock) + (get_local 3) + (i32.load align=4 offset=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 3) + (i32.load align=4) + (get_local 1) + (call_indirect (type 2)) + (end) + (get_local 3) + (call 109) + (get_local 0) + (set_local 3) + (end) + (get_local 3) + (get_local 2) + (i32.store align=4) + (get_local 2) + (i32.const 4) + (i32.add) + (return) + (end) + (get_local 2) + (i32.const 4) + (i32.add) + (set_local 3) + (end) + (get_local 3) + (return) + (end) + (unreachable) + (unreachable) + ) + (func 69 (type 2) (local i32 i32 i32 i32) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4) + (tee_local 1) + (i32.load align=4) + (tee_local 4) + (br_if 0) + (get_local 1) + (i32.load align=4 offset=4) + (set_local 2) + (i32.const 8) + (call 107) + (tee_local 4) + (i32.eqz) + (br_if 1) + (get_local 4) + (get_local 2) + (i32.store align=4 offset=4) + (get_local 4) + (i32.const 0) + (i32.store align=4) + (get_local 1) + (get_local 1) + (i32.load align=4) + (tee_local 2) + (get_local 4) + (get_local 2) + (select) + (i32.store align=4) + (get_local 2) + (i32.eqz) + (br_if 0) + (block emptyblock) + (get_local 4) + (i32.load align=4 offset=4) + (tee_local 3) + (i32.eqz) + (br_if 0) + (get_local 4) + (i32.load align=4) + (get_local 3) + (call_indirect (type 2)) + (end) + (get_local 4) + (call 109) + (get_local 2) + (set_local 4) + (end) + (get_local 4) + (i32.const 1) + (i32.store align=4) + (get_local 0) + (call 109) + (block emptyblock) + (get_local 1) + (i32.load align=4) + (tee_local 4) + (br_if 0) + (get_local 1) + (i32.load align=4 offset=4) + (set_local 0) + (i32.const 8) + (call 107) + (tee_local 4) + (i32.eqz) + (br_if 1) + (get_local 4) + (get_local 0) + (i32.store align=4 offset=4) + (get_local 4) + (i32.const 0) + (i32.store align=4) + (get_local 1) + (get_local 1) + (i32.load align=4) + (tee_local 0) + (get_local 4) + (get_local 0) + (select) + (i32.store align=4) + (get_local 0) + (i32.eqz) + (br_if 0) + (block emptyblock) + (get_local 4) + (i32.load align=4 offset=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 4) + (i32.load align=4) + (get_local 1) + (call_indirect (type 2)) + (end) + (get_local 4) + (call 109) + (get_local 0) + (set_local 4) + (end) + (get_local 4) + (i32.const 0) + (i32.store align=4) + (return) + (end) + (unreachable) + (unreachable) + ) + (func 70 (type 2) (local i32 i32 i32 i32) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4) + (tee_local 1) + (i32.load align=4) + (tee_local 4) + (br_if 0) + (get_local 1) + (i32.load align=4 offset=4) + (set_local 2) + (i32.const 8) + (call 107) + (tee_local 4) + (i32.eqz) + (br_if 1) + (get_local 4) + (get_local 2) + (i32.store align=4 offset=4) + (get_local 4) + (i32.const 0) + (i32.store align=4) + (get_local 1) + (get_local 1) + (i32.load align=4) + (tee_local 2) + (get_local 4) + (get_local 2) + (select) + (i32.store align=4) + (get_local 2) + (i32.eqz) + (br_if 0) + (block emptyblock) + (get_local 4) + (i32.load align=4 offset=4) + (tee_local 3) + (i32.eqz) + (br_if 0) + (get_local 4) + (i32.load align=4) + (get_local 3) + (call_indirect (type 2)) + (end) + (get_local 4) + (call 109) + (get_local 2) + (set_local 4) + (end) + (get_local 4) + (i32.const 1) + (i32.store align=4) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.load align=4 offset=12) + (tee_local 4) + (i32.eqz) + (br_if 0) + (get_local 4) + (get_local 0) + (i32.load align=4 offset=16) + (i32.load align=4) + (call_indirect (type 2)) + (get_local 0) + (i32.load align=4 offset=16) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.const 12) + (i32.add) + (i32.load align=4) + (call 109) + (end) + (get_local 0) + (call 109) + (block emptyblock) + (get_local 1) + (i32.load align=4) + (tee_local 0) + (br_if 0) + (get_local 1) + (i32.load align=4 offset=4) + (set_local 4) + (i32.const 8) + (call 107) + (tee_local 0) + (i32.eqz) + (br_if 1) + (get_local 0) + (get_local 4) + (i32.store align=4 offset=4) + (get_local 0) + (i32.const 0) + (i32.store align=4) + (get_local 1) + (get_local 1) + (i32.load align=4) + (tee_local 4) + (get_local 0) + (get_local 4) + (select) + (i32.store align=4) + (get_local 4) + (i32.eqz) + (br_if 0) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.load align=4) + (get_local 1) + (call_indirect (type 2)) + (end) + (get_local 0) + (call 109) + (get_local 4) + (set_local 0) + (end) + (get_local 0) + (i32.const 0) + (i32.store align=4) + (return) + (end) + (unreachable) + (unreachable) + ) + (func 71 (type 2) (local i32 i32 i32 i32) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4) + (tee_local 1) + (i32.load align=4) + (tee_local 4) + (br_if 0) + (get_local 1) + (i32.load align=4 offset=4) + (set_local 2) + (i32.const 8) + (call 107) + (tee_local 4) + (i32.eqz) + (br_if 1) + (get_local 4) + (get_local 2) + (i32.store align=4 offset=4) + (get_local 4) + (i32.const 0) + (i32.store align=4) + (get_local 1) + (get_local 1) + (i32.load align=4) + (tee_local 2) + (get_local 4) + (get_local 2) + (select) + (i32.store align=4) + (get_local 2) + (i32.eqz) + (br_if 0) + (block emptyblock) + (get_local 4) + (i32.load align=4 offset=4) + (tee_local 3) + (i32.eqz) + (br_if 0) + (get_local 4) + (i32.load align=4) + (get_local 3) + (call_indirect (type 2)) + (end) + (get_local 4) + (call 109) + (get_local 2) + (set_local 4) + (end) + (get_local 4) + (i32.const 1) + (i32.store align=4) + (block emptyblock) + (get_local 0) + (i32.load8_u align=1 offset=8) + (i32.const 2) + (i32.and) + (br_if 0) + (get_local 0) + (i32.load align=4 offset=16) + (tee_local 4) + (get_local 4) + (i32.load align=4) + (tee_local 4) + (i32.const -1) + (i32.add) + (i32.store align=4) + (get_local 4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 0) + (i32.const 16) + (i32.add) + (i32.load align=4) + (call 60) + (end) + (get_local 0) + (call 109) + (block emptyblock) + (get_local 1) + (i32.load align=4) + (tee_local 0) + (br_if 0) + (get_local 1) + (i32.load align=4 offset=4) + (set_local 4) + (i32.const 8) + (call 107) + (tee_local 0) + (i32.eqz) + (br_if 1) + (get_local 0) + (get_local 4) + (i32.store align=4 offset=4) + (get_local 0) + (i32.const 0) + (i32.store align=4) + (get_local 1) + (get_local 1) + (i32.load align=4) + (tee_local 4) + (get_local 0) + (get_local 4) + (select) + (i32.store align=4) + (get_local 4) + (i32.eqz) + (br_if 0) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.load align=4) + (get_local 1) + (call_indirect (type 2)) + (end) + (get_local 0) + (call 109) + (get_local 4) + (set_local 0) + (end) + (get_local 0) + (i32.const 0) + (i32.store align=4) + (return) + (end) + (unreachable) + (unreachable) + ) + (func 72 (type 2) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 1) + (i32.store align=4 offset=4) + (get_local 1) + (i32.const 16) + (i32.add) + (i32.const 16) + (i32.add) + (get_local 0) + (i32.const 16) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 1) + (i32.const 16) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 0) + (i32.const 8) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 1) + (get_local 0) + (i64.load align=4) + (i64.store align=8 offset=16) + (get_local 1) + (i32.const 8) + (i32.add) + (get_local 1) + (i32.const 40) + (i32.add) + (get_local 1) + (i32.const 16) + (i32.add) + (call 101) + (get_local 1) + (i32.load align=4 offset=12) + (set_local 0) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (br_if 0) + (get_local 1) + (i32.load align=4 offset=8) + (i32.const 3) + (i32.and) + (i32.const 2) + (i32.ne) + (br_if 1) + (end) + (get_local 0) + (i32.load align=4) + (get_local 0) + (i32.load align=4 offset=4) + (i32.load align=4) + (call_indirect (type 2)) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.load align=4) + (call 109) + (end) + (get_local 0) + (call 109) + (end) + (i32.const 0) + (get_local 1) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=4) + ) + (func 73 (type 2) + + ) + (func 74 (type 2) + + ) + (func 75 (type 4) (local i32) + (block emptyblock) + (i32.const 8) + (call 107) + (tee_local 3) + (br_if 0) + (unreachable) + (unreachable) + (end) + (get_local 3) + (get_local 1) + (i32.store align=4 offset=4) + (get_local 3) + (get_local 0) + (i32.store align=4) + (get_local 3) + (i32.const 3084) + (get_local 2) + (call 78) + (unreachable) + ) + (func 76 (type 5) (local i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 3) + (i32.store align=4 offset=4) + (get_local 3) + (i32.const 0) + (i32.store align=4 offset=16) + (get_local 3) + (i64.const 1) + (i64.store align=8 offset=8) + (get_local 3) + (i32.const 24) + (i32.add) + (i32.const 16) + (i32.add) + (get_local 0) + (i32.const 16) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 3) + (i32.const 24) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 2) + (get_local 0) + (i32.const 8) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 3) + (get_local 0) + (i64.load align=4) + (i64.store align=8 offset=24) + (get_local 3) + (i32.const 8) + (i32.add) + (get_local 3) + (i32.const 24) + (i32.add) + (call 64) + (drop) + (get_local 2) + (get_local 3) + (i32.load align=4 offset=16) + (i32.store align=4) + (get_local 3) + (get_local 3) + (i64.load align=8 offset=8) + (i64.store align=8 offset=24) + (get_local 3) + (i32.const 24) + (i32.add) + (get_local 1) + (call 77) + (unreachable) + ) + (func 77 (type 5) (local i32 i32 i64) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 32) + (i32.sub) + (tee_local 3) + (i32.store align=4 offset=4) + (get_local 3) + (i32.const 8) + (i32.add) + (tee_local 2) + (get_local 0) + (i32.const 8) + (i32.add) + (i32.load align=4) + (i32.store align=4) + (get_local 3) + (get_local 0) + (i64.load align=4) + (i64.store align=8) + (block emptyblock) + (i32.const 12) + (call 107) + (tee_local 0) + (br_if 0) + (unreachable) + (unreachable) + (end) + (get_local 3) + (i32.const 16) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 2) + (i32.load align=4) + (tee_local 2) + (i32.store align=4) + (get_local 0) + (get_local 3) + (i64.load align=8) + (tee_local 4) + (i64.store align=4) + (get_local 0) + (i32.const 8) + (i32.add) + (get_local 2) + (i32.store align=4) + (get_local 3) + (get_local 4) + (i64.store align=8 offset=16) + (get_local 0) + (i32.const 2552) + (get_local 1) + (call 78) + (unreachable) + ) + (func 78 (type 4) (local i32 i32 i32 i32 i32 i32 i32 i64) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 96) + (i32.sub) + (tee_local 9) + (i32.store align=4 offset=4) + (get_local 2) + (i32.load align=4 offset=12) + (set_local 6) + (get_local 2) + (i32.load align=4 offset=8) + (set_local 5) + (get_local 2) + (i32.load align=4 offset=4) + (set_local 4) + (get_local 2) + (i32.load align=4) + (set_local 3) + (block emptyblock) + (call 86) + (tee_local 2) + (br_if 0) + (call 40) + (unreachable) + (end) + (i32.const 1) + (set_local 7) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 2) + (get_local 2) + (i32.load align=4 offset=4) + (i32.const 1) + (i32.add) + (tee_local 7) + (i32.store align=1 offset=4) + (get_local 7) + (i32.const 3) + (i32.lt_u) + (br_if 1) + (get_local 9) + (i32.const 76) + (i32.add) + (i32.const 0) + (i32.store align=4) + (get_local 9) + (i32.const 1) + (i32.store align=4 offset=60) + (get_local 9) + (i32.const 2568) + (i32.store align=4 offset=56) + (get_local 9) + (i32.const 0) + (i32.store align=4 offset=64) + (get_local 9) + (i32.const 7076) + (i32.store align=4 offset=72) + (get_local 9) + (i32.const 56) + (i32.add) + (call 72) + (unreachable) + (unreachable) + (end) + (get_local 2) + (i64.const 1) + (i64.store align=4) + (get_local 2) + (i32.const 1) + (i32.store align=1 offset=4) + (end) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=2576) + (tee_local 2) + (i32.const -1) + (i32.le_s) + (br_if 0) + (i32.const 0) + (get_local 2) + (i32.const 1) + (i32.add) + (i32.store align=4 offset=2576) + (call 86) + (tee_local 2) + (br_if 1) + (call 40) + (unreachable) + (end) + (i32.const 2592) + (i32.const 25) + (i32.const 2620) + (call 75) + (unreachable) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (i32.const 2) + (set_local 8) + (get_local 2) + (i32.load align=4 offset=4) + (i32.const 1) + (i32.le_u) + (br_if 1) + (br 2) + (end) + (get_local 2) + (i64.const 1) + (i64.store align=4) + (get_local 2) + (i32.const 0) + (i32.store align=1 offset=4) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=1028) + (tee_local 2) + (i32.const 3) + (i32.gt_u) + (br_if 0) + (i32.const 4) + (set_local 8) + (block emptyblock) + (get_local 2) + (br_table [Ref(space=label,index=0,name=None), Ref(space=label,index=4,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=3,name=None), Ref(space=label,index=0,name=None)]) + (end) + (i32.const 0) + (i32.const 1) + (i32.store align=4 offset=1028) + (br 3) + (end) + (i32.const 1040) + (i32.const 40) + (i32.const 1080) + (call 75) + (unreachable) + (end) + (i32.const 2) + (set_local 8) + (br 1) + (end) + (i32.const 3) + (set_local 8) + (end) + (get_local 9) + (get_local 8) + (i32.store8 align=1 offset=15) + (get_local 9) + (get_local 4) + (i32.store align=4 offset=20) + (get_local 9) + (get_local 3) + (i32.store align=4 offset=16) + (get_local 9) + (get_local 5) + (i32.store align=4 offset=24) + (get_local 9) + (get_local 6) + (i32.store align=4 offset=28) + (block emptyblock) + (block emptyblock) + (get_local 0) + (get_local 1) + (i32.load align=4 offset=12) + (tee_local 2) + (call_indirect (type 3)) + (i64.const 1229646359891580772) + (i64.ne) + (br_if 0) + (get_local 9) + (get_local 0) + (i32.load align=4) + (i32.store align=4 offset=32) + (get_local 0) + (i32.load align=4 offset=4) + (set_local 2) + (br 1) + (end) + (block emptyblock) + (block emptyblock) + (get_local 0) + (get_local 2) + (call_indirect (type 3)) + (i64.const 3254967120849462314) + (i64.ne) + (br_if 0) + (get_local 0) + (i32.load align=4 offset=8) + (set_local 2) + (get_local 0) + (i32.load align=4) + (set_local 0) + (br 1) + (end) + (i32.const 8) + (set_local 2) + (i32.const 2720) + (set_local 0) + (end) + (get_local 9) + (get_local 0) + (i32.store align=4 offset=32) + (end) + (get_local 9) + (get_local 2) + (i32.store align=4 offset=36) + (i32.const 1) + (set_local 2) + (get_local 9) + (i32.const 1) + (i32.store8 align=1 offset=47) + (block emptyblock) + (block emptyblock) + (call 99) + (tee_local 6) + (br_if 0) + (i32.const 0) + (set_local 0) + (br 1) + (end) + (block emptyblock) + (block emptyblock) + (get_local 6) + (i32.load align=4 offset=16) + (tee_local 0) + (br_if 0) + (i32.const 0) + (set_local 0) + (br 1) + (end) + (get_local 6) + (i32.const 20) + (i32.add) + (i32.load align=4) + (tee_local 2) + (i32.const -1) + (i32.add) + (set_local 1) + (get_local 2) + (br_if 0) + (get_local 1) + (i32.const 0) + (call 128) + (unreachable) + (end) + (get_local 0) + (i32.eqz) + (set_local 2) + (end) + (get_local 9) + (i32.const 9) + (get_local 1) + (get_local 2) + (select) + (i32.store align=4 offset=52) + (get_local 9) + (i32.const 2704) + (get_local 0) + (get_local 2) + (select) + (i32.store align=4 offset=48) + (get_local 9) + (get_local 9) + (i32.const 32) + (i32.add) + (i32.store align=4 offset=60) + (get_local 9) + (get_local 9) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=56) + (get_local 9) + (get_local 9) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=64) + (get_local 9) + (get_local 9) + (i32.const 24) + (i32.add) + (i32.store align=4 offset=68) + (get_local 9) + (get_local 9) + (i32.const 28) + (i32.add) + (i32.store align=4 offset=72) + (get_local 9) + (get_local 9) + (i32.const 15) + (i32.add) + (i32.store align=4 offset=76) + (block emptyblock) + (call 85) + (tee_local 2) + (br_if 0) + (call 40) + (unreachable) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (tee_local 0) + (i32.const 1) + (i32.eq) + (br_if 0) + (get_local 2) + (i64.const 1) + (i64.store align=4) + (get_local 2) + (i32.load align=4 offset=8) + (set_local 1) + (get_local 2) + (i32.const 0) + (i32.store align=4 offset=8) + (block emptyblock) + (get_local 0) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.eqz) + (br_if 0) + (get_local 1) + (get_local 2) + (i32.load align=4 offset=12) + (tee_local 0) + (i32.load align=4) + (call_indirect (type 2)) + (get_local 0) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 1) + (call 109) + (end) + (get_local 2) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 1) + (end) + (block emptyblock) + (get_local 2) + (i32.const 4) + (i32.add) + (tee_local 0) + (i32.load align=4) + (br_if 0) + (get_local 0) + (i32.const -1) + (i32.store align=4) + (get_local 2) + (i64.load align=4 offset=8) + (set_local 10) + (i32.const 0) + (set_local 1) + (get_local 2) + (i32.const 0) + (i32.store align=4 offset=8) + (get_local 0) + (i32.const 0) + (i32.store align=4) + (get_local 9) + (get_local 9) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=88) + (get_local 9) + (get_local 10) + (i64.store align=8 offset=80) + (get_local 10) + (i32.wrap/i64) + (tee_local 0) + (br_if 2) + (get_local 9) + (i32.const 56) + (i32.add) + (get_local 9) + (i32.const 88) + (i32.add) + (i32.const 2728) + (call 79) + (get_local 6) + (i32.eqz) + (br_if 4) + (br 3) + (end) + (call 38) + (unreachable) + (end) + (i32.const 3116) + (call 139) + (unreachable) + (end) + (get_local 9) + (i32.const 56) + (i32.add) + (get_local 0) + (get_local 10) + (i64.const 32) + (i64.shr_u) + (i32.wrap/i64) + (tee_local 1) + (call 79) + (block emptyblock) + (call 85) + (tee_local 2) + (br_if 0) + (call 40) + (unreachable) + (end) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (tee_local 5) + (i32.const 1) + (i32.eq) + (br_if 0) + (get_local 2) + (i64.const 1) + (i64.store align=4) + (get_local 2) + (i32.load align=4 offset=8) + (set_local 4) + (get_local 2) + (i32.const 0) + (i32.store align=4 offset=8) + (block emptyblock) + (get_local 5) + (i32.eqz) + (br_if 0) + (get_local 4) + (i32.eqz) + (br_if 0) + (get_local 4) + (get_local 2) + (i32.load align=4 offset=12) + (tee_local 5) + (i32.load align=4) + (call_indirect (type 2)) + (get_local 5) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 4) + (call 109) + (end) + (get_local 2) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 1) + (end) + (block emptyblock) + (get_local 2) + (i32.const 4) + (i32.add) + (tee_local 5) + (i32.load align=4) + (br_if 0) + (get_local 5) + (i32.const -1) + (i32.store align=4) + (block emptyblock) + (get_local 2) + (i32.load align=4 offset=8) + (tee_local 5) + (i32.eqz) + (br_if 0) + (get_local 5) + (get_local 2) + (i32.const 12) + (i32.add) + (tee_local 4) + (i32.load align=4) + (i32.load align=4) + (call_indirect (type 2)) + (get_local 4) + (i32.load align=4) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.load align=4) + (call 109) + (end) + (get_local 2) + (i32.const 12) + (i32.add) + (get_local 1) + (i32.store align=4) + (get_local 2) + (i32.const 8) + (i32.add) + (get_local 0) + (i32.store align=4) + (get_local 2) + (i32.const 4) + (i32.add) + (i32.const 0) + (i32.store align=4) + (i32.const 1) + (set_local 1) + (get_local 6) + (br_if 2) + (br 3) + (end) + (call 38) + (unreachable) + (end) + (i32.const 3116) + (call 139) + (unreachable) + (end) + (get_local 6) + (get_local 6) + (i32.load align=4) + (tee_local 2) + (i32.const -1) + (i32.add) + (i32.store align=4) + (get_local 2) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 6) + (call 60) + (end) + (block emptyblock) + (get_local 9) + (i32.load align=4 offset=80) + (tee_local 2) + (i32.eqz) + (get_local 1) + (i32.or) + (br_if 0) + (get_local 2) + (get_local 9) + (i32.load align=4 offset=84) + (i32.load align=4) + (call_indirect (type 2)) + (get_local 9) + (i32.load align=4 offset=84) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 9) + (i32.load align=4 offset=80) + (call 109) + (end) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=2576) + (i32.const -1) + (i32.add) + (i32.store align=4 offset=2576) + (block emptyblock) + (get_local 7) + (i32.const 2) + (i32.lt_u) + (br_if 0) + (get_local 9) + (i32.const 76) + (i32.add) + (i32.const 0) + (i32.store align=4) + (get_local 9) + (i32.const 1) + (i32.store align=4 offset=60) + (get_local 9) + (i32.const 2636) + (i32.store align=4 offset=56) + (get_local 9) + (i32.const 0) + (i32.store align=4 offset=64) + (get_local 9) + (i32.const 7076) + (i32.store align=4 offset=72) + (get_local 9) + (i32.const 56) + (i32.add) + (call 72) + (end) + (unreachable) + (unreachable) + ) + (func 79 (type 4) (local i32 i32 i32 i32 i32 i64) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 880) + (i32.sub) + (tee_local 7) + (i32.store align=4 offset=4) + (get_local 7) + (get_local 0) + (i32.load align=4) + (i32.store align=4 offset=32) + (get_local 0) + (i32.load align=4 offset=16) + (set_local 3) + (get_local 0) + (i32.load align=4 offset=12) + (set_local 4) + (get_local 0) + (i32.load align=4 offset=8) + (set_local 5) + (get_local 0) + (i32.load align=4 offset=4) + (set_local 6) + (get_local 7) + (i32.const 5) + (i32.store align=4 offset=36) + (get_local 7) + (get_local 6) + (i32.store align=4 offset=40) + (get_local 7) + (i32.const 32) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 5) + (i32.store align=4) + (get_local 7) + (get_local 5) + (i32.store align=4 offset=48) + (get_local 7) + (i32.const 32) + (i32.add) + (i32.const 20) + (i32.add) + (i32.const 5) + (i32.store align=4) + (get_local 7) + (get_local 4) + (i32.store align=4 offset=56) + (get_local 7) + (i32.const 60) + (i32.add) + (i32.const 12) + (i32.store align=4) + (get_local 7) + (get_local 3) + (i32.store align=4 offset=64) + (get_local 7) + (i32.const 68) + (i32.add) + (i32.const 12) + (i32.store align=4) + (get_local 7) + (i32.const 2760) + (i32.store align=4 offset=8) + (get_local 7) + (i32.const 6) + (i32.store align=4 offset=12) + (get_local 7) + (i32.const 7668) + (i32.store align=4 offset=16) + (get_local 7) + (i32.const 8) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 5) + (i32.store align=4) + (get_local 7) + (get_local 7) + (i32.const 32) + (i32.add) + (i32.store align=4 offset=24) + (get_local 7) + (i32.const 8) + (i32.add) + (i32.const 20) + (i32.add) + (i32.const 5) + (i32.store align=4) + (get_local 7) + (i32.const 864) + (i32.add) + (get_local 1) + (get_local 7) + (i32.const 8) + (i32.add) + (get_local 2) + (i32.load align=4 offset=24) + (tee_local 2) + (call_indirect (type 4)) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (br_if 0) + (get_local 7) + (i32.load8_u align=1 offset=864) + (i32.const 2) + (i32.ne) + (br_if 1) + (end) + (get_local 7) + (i32.load align=4 offset=868) + (tee_local 3) + (i32.load align=4) + (get_local 3) + (i32.load align=4 offset=4) + (i32.load align=4) + (call_indirect (type 2)) + (block emptyblock) + (get_local 3) + (i32.load align=4 offset=4) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 3) + (i32.load align=4) + (call 109) + (end) + (get_local 3) + (call 109) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=20) + (i32.load8_u align=1) + (i32.const 4) + (i32.ne) + (br_if 0) + (i32.const 0) + (i32.const 0) + (i32.const 0) + (i32.load8_u align=1 offset=2816) + (tee_local 0) + (get_local 0) + (i32.const 1) + (i32.eq) + (select) + (i32.store8 align=1 offset=2816) + (get_local 0) + (i32.eqz) + (br_if 1) + (get_local 7) + (i32.const 52) + (i32.add) + (i32.const 0) + (i32.store align=4) + (get_local 7) + (i32.const 1) + (i32.store align=4 offset=36) + (get_local 7) + (i32.const 2820) + (i32.store align=4 offset=32) + (get_local 7) + (i32.const 0) + (i32.store align=4 offset=40) + (get_local 7) + (i32.const 7076) + (i32.store align=4 offset=48) + (get_local 7) + (i32.const 8) + (i32.add) + (get_local 1) + (get_local 7) + (i32.const 32) + (i32.add) + (get_local 2) + (call_indirect (type 4)) + (block emptyblock) + (i32.const 0) + (br_if 0) + (get_local 7) + (i32.load8_u align=1 offset=8) + (i32.const 2) + (i32.ne) + (br_if 2) + (end) + (get_local 7) + (i32.load align=4 offset=12) + (tee_local 0) + (i32.load align=4) + (get_local 0) + (i32.load align=4 offset=4) + (i32.load align=4) + (call_indirect (type 2)) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.load align=4) + (call 109) + (end) + (get_local 0) + (call 109) + (br 1) + (end) + (i32.const 0) + (i32.load8_u align=1 offset=1024) + (br_if 1) + (i32.const 0) + (i32.const 1) + (i32.store8 align=1 offset=1024) + (get_local 7) + (i32.const 832) + (i32.add) + (set_local 1) + (get_local 7) + (i32.const 32) + (i32.add) + (set_local 0) + (loop emptyblock) + (get_local 0) + (i64.const 0) + (i64.store align=4) + (get_local 0) + (i32.const 8) + (i32.add) + (tee_local 0) + (get_local 1) + (i32.ne) + (br_if 0) + (end) + (i32.const 35) + (call 107) + (tee_local 0) + (i32.eqz) + (br_if 2) + (get_local 7) + (i32.const 35) + (i32.store align=4 offset=868) + (get_local 7) + (get_local 0) + (i32.store align=4 offset=864) + (get_local 7) + (i32.const 0) + (i32.store align=4 offset=872) + (get_local 7) + (i32.const 864) + (i32.add) + (i32.const 1376) + (i32.const 35) + (call 111) + (get_local 7) + (i32.const 8) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 0) + (get_local 7) + (i32.load align=4 offset=872) + (tee_local 1) + (i32.store align=4) + (get_local 7) + (i32.const 848) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 2) + (get_local 1) + (i32.store align=4) + (get_local 7) + (get_local 7) + (i32.load align=4 offset=864) + (tee_local 1) + (i32.store align=4 offset=8) + (get_local 7) + (get_local 7) + (i32.load align=4 offset=868) + (tee_local 3) + (i32.store align=4 offset=12) + (get_local 7) + (get_local 3) + (i32.store align=4 offset=852) + (get_local 7) + (get_local 1) + (i32.store align=4 offset=848) + (get_local 0) + (get_local 2) + (i32.load align=4) + (tee_local 1) + (i32.store align=4) + (get_local 7) + (i32.const 832) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 2) + (get_local 1) + (i32.store align=4) + (get_local 7) + (get_local 7) + (i32.load align=4 offset=848) + (tee_local 1) + (i32.store align=4 offset=8) + (get_local 7) + (get_local 7) + (i32.load align=4 offset=852) + (tee_local 3) + (i32.store align=4 offset=12) + (get_local 7) + (get_local 3) + (i32.store align=4 offset=836) + (get_local 7) + (get_local 1) + (i32.store align=4 offset=832) + (get_local 0) + (get_local 2) + (i32.load align=4) + (tee_local 1) + (i32.store align=4) + (get_local 7) + (i32.const 864) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 3) + (get_local 1) + (i32.store align=4) + (get_local 7) + (get_local 7) + (i32.load align=4 offset=832) + (tee_local 1) + (i32.store align=4 offset=8) + (get_local 7) + (get_local 7) + (i32.load align=4 offset=836) + (tee_local 2) + (i32.store align=4 offset=12) + (get_local 7) + (get_local 2) + (i32.store align=4 offset=868) + (get_local 7) + (get_local 1) + (i32.store align=4 offset=864) + (i32.const 12) + (call 107) + (tee_local 1) + (i32.eqz) + (br_if 3) + (get_local 1) + (get_local 7) + (i64.load align=8 offset=864) + (tee_local 8) + (i64.store align=4) + (get_local 1) + (i32.const 8) + (i32.add) + (get_local 3) + (i32.load align=4) + (tee_local 2) + (i32.store align=4) + (get_local 0) + (get_local 2) + (i32.store align=4) + (get_local 7) + (get_local 8) + (i64.store align=8 offset=8) + (i32.const 12) + (call 107) + (tee_local 0) + (i32.eqz) + (br_if 3) + (get_local 0) + (get_local 1) + (i32.store align=4) + (get_local 0) + (i32.const 1340) + (i32.store align=4 offset=4) + (get_local 7) + (i32.const 8) + (i32.add) + (i32.const 2) + (i32.add) + (tee_local 1) + (get_local 7) + (i32.const 864) + (i32.add) + (i32.const 2) + (i32.add) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 7) + (get_local 7) + (i32.load16_u align=1 offset=864) + (i32.store16 align=2 offset=8) + (get_local 0) + (i32.const 16) + (i32.store8 align=1 offset=8) + (get_local 0) + (i32.const 11) + (i32.add) + (get_local 1) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 0) + (get_local 7) + (i32.load16_u align=2 offset=8) + (i32.store16 align=1 offset=9) + (i32.const 0) + (i32.const 0) + (i32.store8 align=1 offset=1024) + (get_local 0) + (i32.load align=4) + (get_local 0) + (i32.load align=4 offset=4) + (i32.load align=4) + (call_indirect (type 2)) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.load align=4) + (call 109) + (end) + (get_local 0) + (call 109) + (end) + (i32.const 0) + (get_local 7) + (i32.const 880) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (i32.const 928) + (i32.const 32) + (i32.const 960) + (call 75) + (unreachable) + (end) + (get_local 7) + (i32.const 35) + (i32.store align=4 offset=12) + (get_local 7) + (get_local 0) + (i32.store align=4 offset=8) + (get_local 7) + (i32.const 1) + (i32.store align=4 offset=16) + (end) + (unreachable) + (unreachable) + ) + (func 80 (type 2) + + ) + (func 81 (type 11) + (get_local 0) + (call 54) + ) + (func 82 (type 5) + (get_local 0) + (i32.const 3) + (i32.store8 align=1) + ) + (func 83 (type 11) + (get_local 0) + (get_local 2) + (get_local 3) + (call 100) + ) + (func 84 (type 4) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 32) + (i32.sub) + (tee_local 3) + (i32.store align=4 offset=4) + (get_local 1) + (i32.load align=4) + (set_local 1) + (get_local 3) + (i32.const 8) + (i32.add) + (i32.const 16) + (i32.add) + (get_local 2) + (i32.const 16) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 3) + (i32.const 8) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 2) + (i32.const 8) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 3) + (get_local 2) + (i64.load align=4) + (i64.store align=8 offset=8) + (get_local 0) + (get_local 1) + (get_local 3) + (i32.const 8) + (i32.add) + (call 101) + (i32.const 0) + (get_local 3) + (i32.const 32) + (i32.add) + (i32.store align=4 offset=4) + ) + (func 85 (type 14) (local i32 i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 4) + (i32.store align=4 offset=4) + (i32.const 0) + (set_local 3) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=2964) + (tee_local 2) + (br_if 0) + (i32.const 0) + (i32.load align=4 offset=2968) + (set_local 0) + (i32.const 8) + (call 107) + (tee_local 2) + (i32.eqz) + (br_if 1) + (get_local 2) + (i32.const 0) + (i32.store align=4) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=4) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=2964) + (tee_local 0) + (get_local 2) + (get_local 0) + (select) + (i32.store align=4 offset=2964) + (get_local 0) + (i32.eqz) + (br_if 0) + (block emptyblock) + (get_local 2) + (i32.load align=4 offset=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 2) + (i32.load align=4) + (get_local 1) + (call_indirect (type 2)) + (end) + (get_local 2) + (call 109) + (get_local 0) + (set_local 2) + (end) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (tee_local 2) + (i32.const 1) + (i32.eq) + (br_if 0) + (block emptyblock) + (get_local 2) + (br_if 0) + (i32.const 20) + (call 107) + (tee_local 2) + (i32.eqz) + (br_if 2) + (get_local 4) + (i32.const 36) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 4) + (i32.const 24) + (i32.add) + (i32.const 8) + (i32.add) + (i32.load align=4) + (tee_local 3) + (i32.store align=4) + (get_local 4) + (i32.const 36) + (i32.add) + (i32.const 4) + (i32.add) + (get_local 4) + (i32.const 24) + (i32.add) + (i32.const 4) + (i32.add) + (i32.load align=4) + (tee_local 0) + (i32.store align=4) + (get_local 4) + (i32.const 12) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 1) + (get_local 3) + (i32.store align=4) + (get_local 4) + (i32.const 12) + (i32.add) + (i32.const 4) + (i32.add) + (tee_local 3) + (get_local 0) + (i32.store align=4) + (get_local 4) + (get_local 4) + (i32.load align=4 offset=24) + (tee_local 0) + (i32.store align=4 offset=36) + (get_local 4) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 2) + (i32.const 0) + (i32.store align=4 offset=4) + (get_local 2) + (i32.const 2964) + (i32.store align=4) + (get_local 2) + (i32.const 16) + (i32.add) + (get_local 1) + (i32.load align=4) + (i32.store align=4) + (get_local 2) + (i32.const 12) + (i32.add) + (get_local 3) + (i32.load align=4) + (i32.store align=4) + (get_local 2) + (get_local 4) + (i32.load align=4 offset=12) + (i32.store align=4 offset=8) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=2964) + (tee_local 3) + (br_if 0) + (i32.const 0) + (i32.load align=4 offset=2968) + (set_local 0) + (i32.const 8) + (call 107) + (tee_local 3) + (i32.eqz) + (br_if 3) + (get_local 3) + (i32.const 0) + (i32.store align=4) + (get_local 3) + (get_local 0) + (i32.store align=4 offset=4) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=2964) + (tee_local 0) + (get_local 3) + (get_local 0) + (select) + (i32.store align=4 offset=2964) + (get_local 0) + (i32.eqz) + (br_if 0) + (block emptyblock) + (get_local 3) + (i32.load align=4 offset=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 3) + (i32.load align=4) + (get_local 1) + (call_indirect (type 2)) + (end) + (get_local 3) + (call 109) + (get_local 0) + (set_local 3) + (end) + (get_local 3) + (get_local 2) + (i32.store align=4) + (get_local 2) + (i32.const 4) + (i32.add) + (set_local 3) + (br 1) + (end) + (get_local 2) + (i32.const 4) + (i32.add) + (set_local 3) + (end) + (i32.const 0) + (get_local 4) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=4) + (get_local 3) + (return) + (end) + (unreachable) + (unreachable) + ) + (func 86 (type 14) (local i32 i32 i32 i32) + (i32.const 0) + (set_local 3) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=3076) + (tee_local 2) + (br_if 0) + (i32.const 0) + (i32.load align=4 offset=3080) + (set_local 0) + (i32.const 8) + (call 107) + (tee_local 2) + (i32.eqz) + (br_if 1) + (get_local 2) + (i32.const 0) + (i32.store align=4) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=4) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=3076) + (tee_local 0) + (get_local 2) + (get_local 0) + (select) + (i32.store align=4 offset=3076) + (get_local 0) + (i32.eqz) + (br_if 0) + (block emptyblock) + (get_local 2) + (i32.load align=4 offset=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 2) + (i32.load align=4) + (get_local 1) + (call_indirect (type 2)) + (end) + (get_local 2) + (call 109) + (get_local 0) + (set_local 2) + (end) + (block emptyblock) + (get_local 2) + (i32.load align=4) + (tee_local 2) + (i32.const 1) + (i32.eq) + (br_if 0) + (block emptyblock) + (get_local 2) + (br_if 0) + (i32.const 12) + (call 107) + (tee_local 2) + (i32.eqz) + (br_if 2) + (get_local 2) + (i32.const 3076) + (i32.store align=4) + (get_local 2) + (i64.const 0) + (i64.store align=4 offset=4) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=3076) + (tee_local 3) + (br_if 0) + (i32.const 0) + (i32.load align=4 offset=3080) + (set_local 0) + (i32.const 8) + (call 107) + (tee_local 3) + (i32.eqz) + (br_if 3) + (get_local 3) + (i32.const 0) + (i32.store align=4) + (get_local 3) + (get_local 0) + (i32.store align=4 offset=4) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=3076) + (tee_local 0) + (get_local 3) + (get_local 0) + (select) + (i32.store align=4 offset=3076) + (get_local 0) + (i32.eqz) + (br_if 0) + (block emptyblock) + (get_local 3) + (i32.load align=4 offset=4) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 3) + (i32.load align=4) + (get_local 1) + (call_indirect (type 2)) + (end) + (get_local 3) + (call 109) + (get_local 0) + (set_local 3) + (end) + (get_local 3) + (get_local 2) + (i32.store align=4) + (get_local 2) + (i32.const 4) + (i32.add) + (return) + (end) + (get_local 2) + (i32.const 4) + (i32.add) + (set_local 3) + (end) + (get_local 3) + (return) + (end) + (unreachable) + (unreachable) + ) + (func 87 (type 2) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.load align=4) + (call 109) + (end) + ) + (func 88 (type 3) + (i64.const 1229646359891580772) + ) + (func 89 (type 6) (local i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 5) + (i32.store align=4 offset=4) + (i32.const 39) + (set_local 4) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4) + (i32.load align=4) + (tee_local 0) + (i32.const 10000) + (i32.lt_u) + (br_if 0) + (i32.const 39) + (set_local 4) + (loop emptyblock) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.add) + (tee_local 2) + (i32.const -2) + (i32.add) + (get_local 0) + (i32.const 10000) + (i32.rem_u) + (tee_local 3) + (i32.const 100) + (i32.rem_u) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (get_local 2) + (i32.const -4) + (i32.add) + (get_local 3) + (i32.const 100) + (i32.div_u) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (get_local 4) + (i32.const -4) + (i32.add) + (set_local 4) + (get_local 0) + (i32.const 99999999) + (i32.gt_u) + (set_local 2) + (get_local 0) + (i32.const 10000) + (i32.div_u) + (tee_local 3) + (set_local 0) + (get_local 2) + (br_if 0) + (br 2) + (end) + (unreachable) + (end) + (get_local 0) + (set_local 3) + (end) + (block emptyblock) + (get_local 3) + (i32.const 100) + (i32.lt_s) + (br_if 0) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.const -2) + (i32.add) + (tee_local 4) + (i32.add) + (get_local 3) + (i32.const 100) + (i32.rem_u) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (get_local 3) + (i32.const 100) + (i32.div_u) + (set_local 3) + (end) + (block emptyblock) + (block emptyblock) + (get_local 3) + (i32.const 9) + (i32.gt_s) + (br_if 0) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.const -1) + (i32.add) + (tee_local 0) + (i32.add) + (get_local 3) + (i32.const 48) + (i32.add) + (i32.store8 align=1) + (br 1) + (end) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.const -2) + (i32.add) + (tee_local 0) + (i32.add) + (get_local 3) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (end) + (get_local 1) + (i32.const 1) + (i32.const 4752) + (i32.const 0) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 0) + (i32.add) + (i32.const 39) + (get_local 0) + (i32.sub) + (call 122) + (set_local 0) + (i32.const 0) + (get_local 5) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=4) + (get_local 0) + ) + (func 90 (type 6) (local i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 3) + (i32.store align=4 offset=4) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4) + (i32.load8_u align=1) + (tee_local 0) + (i32.const 100) + (i32.lt_u) + (br_if 0) + (get_local 3) + (get_local 0) + (i32.const 100) + (i32.rem_u) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1 offset=46) + (get_local 0) + (i32.const 100) + (i32.div_u) + (set_local 0) + (i32.const 36) + (set_local 2) + (br 1) + (end) + (i32.const 38) + (set_local 2) + (get_local 0) + (i32.const 9) + (i32.gt_u) + (br_if 1) + (end) + (get_local 3) + (i32.const 9) + (i32.add) + (get_local 2) + (i32.add) + (get_local 0) + (i32.const 48) + (i32.add) + (i32.store8 align=1) + (br 1) + (end) + (get_local 3) + (get_local 0) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1 offset=46) + (i32.const 37) + (set_local 2) + (end) + (get_local 1) + (i32.const 1) + (i32.const 4752) + (i32.const 0) + (get_local 3) + (i32.const 9) + (i32.add) + (get_local 2) + (i32.add) + (i32.const 39) + (get_local 2) + (i32.sub) + (call 122) + (set_local 0) + (i32.const 0) + (get_local 3) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=4) + (get_local 0) + ) + (func 91 (type 6) + (get_local 1) + (get_local 0) + (i32.load align=4) + (get_local 0) + (i32.load align=4 offset=4) + (call 123) + ) + (func 92 (type 6) (local i32 i32 i32 i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 8) + (i32.store align=4 offset=4) + (get_local 0) + (i32.load align=4) + (set_local 0) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.const 128) + (i32.ge_u) + (br_if 0) + (get_local 0) + (i32.load align=4 offset=8) + (tee_local 4) + (get_local 0) + (i32.load align=4 offset=4) + (i32.eq) + (br_if 1) + (br 2) + (end) + (i32.const 0) + (set_local 4) + (get_local 8) + (i32.const 0) + (i32.store align=4 offset=12) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.const 2048) + (i32.ge_u) + (br_if 0) + (i32.const 2) + (set_local 7) + (i32.const 1) + (set_local 6) + (i32.const 192) + (set_local 5) + (i32.const 31) + (set_local 3) + (br 1) + (end) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.const 65536) + (i32.ge_u) + (br_if 0) + (i32.const 3) + (set_local 7) + (i32.const 2) + (set_local 6) + (i32.const 1) + (set_local 4) + (i32.const 224) + (set_local 5) + (i32.const 0) + (set_local 3) + (i32.const 15) + (set_local 2) + (br 1) + (end) + (get_local 8) + (get_local 1) + (i32.const 18) + (i32.shr_u) + (i32.const 240) + (i32.or) + (i32.store8 align=1 offset=12) + (i32.const 4) + (set_local 7) + (i32.const 3) + (set_local 6) + (i32.const 2) + (set_local 4) + (i32.const 128) + (set_local 5) + (i32.const 1) + (set_local 3) + (i32.const 63) + (set_local 2) + (end) + (get_local 8) + (i32.const 12) + (i32.add) + (get_local 3) + (i32.or) + (get_local 2) + (get_local 1) + (i32.const 12) + (i32.shr_u) + (i32.and) + (get_local 5) + (i32.or) + (i32.store8 align=1) + (i32.const 128) + (set_local 5) + (i32.const 63) + (set_local 3) + (end) + (get_local 8) + (i32.const 12) + (i32.add) + (get_local 4) + (i32.add) + (get_local 3) + (get_local 1) + (i32.const 6) + (i32.shr_u) + (i32.and) + (get_local 5) + (i32.or) + (i32.store8 align=1) + (get_local 8) + (i32.const 12) + (i32.add) + (get_local 6) + (i32.add) + (get_local 1) + (i32.const 63) + (i32.and) + (i32.const 128) + (i32.or) + (i32.store8 align=1) + (get_local 0) + (get_local 8) + (i32.const 12) + (i32.add) + (get_local 7) + (call 34) + (br 2) + (end) + (get_local 0) + (call 63) + (get_local 0) + (i32.const 8) + (i32.add) + (i32.load align=4) + (set_local 4) + (end) + (get_local 0) + (i32.load align=4) + (get_local 4) + (i32.add) + (get_local 1) + (i32.store8 align=1) + (get_local 0) + (i32.const 8) + (i32.add) + (tee_local 1) + (get_local 1) + (i32.load align=4) + (i32.const 1) + (i32.add) + (i32.store align=4) + (end) + (i32.const 0) + (get_local 8) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (i32.const 0) + ) + (func 93 (type 6) + (get_local 0) + (i32.load align=4) + (get_local 1) + (call 43) + ) + (func 94 (type 6) (local i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 64) + (i32.sub) + (tee_local 4) + (i32.store align=4 offset=4) + (get_local 0) + (i32.load align=4) + (set_local 0) + (get_local 4) + (i32.const 8) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 2) + (get_local 1) + (i32.const 16) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 4) + (i32.const 8) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 3) + (get_local 1) + (i32.const 8) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 4) + (get_local 1) + (i64.load align=4) + (i64.store align=8 offset=8) + (get_local 4) + (get_local 0) + (i32.store align=4 offset=36) + (get_local 4) + (i32.const 40) + (i32.add) + (i32.const 16) + (i32.add) + (get_local 2) + (i64.load align=8) + (i64.store align=8) + (get_local 4) + (i32.const 40) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 3) + (i64.load align=8) + (i64.store align=8) + (get_local 4) + (get_local 4) + (i64.load align=8 offset=8) + (i64.store align=8 offset=40) + (get_local 4) + (i32.const 36) + (i32.add) + (i32.const 2180) + (get_local 4) + (i32.const 40) + (i32.add) + (call 121) + (set_local 1) + (i32.const 0) + (get_local 4) + (i32.const 64) + (i32.add) + (i32.store align=4 offset=4) + (get_local 1) + ) + (func 95 (type 6) (local i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 64) + (i32.sub) + (tee_local 4) + (i32.store align=4 offset=4) + (get_local 0) + (i32.load align=4) + (set_local 0) + (get_local 4) + (i32.const 8) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 2) + (get_local 1) + (i32.const 16) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 4) + (i32.const 8) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 3) + (get_local 1) + (i32.const 8) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 4) + (get_local 1) + (i64.load align=4) + (i64.store align=8 offset=8) + (get_local 4) + (get_local 0) + (i32.store align=4 offset=36) + (get_local 4) + (i32.const 40) + (i32.add) + (i32.const 16) + (i32.add) + (get_local 2) + (i64.load align=8) + (i64.store align=8) + (get_local 4) + (i32.const 40) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 3) + (i64.load align=8) + (i64.store align=8) + (get_local 4) + (get_local 4) + (i64.load align=8 offset=8) + (i64.store align=8 offset=40) + (get_local 4) + (i32.const 36) + (i32.add) + (i32.const 1148) + (get_local 4) + (i32.const 40) + (i32.add) + (call 121) + (set_local 1) + (i32.const 0) + (get_local 4) + (i32.const 64) + (i32.add) + (i32.store align=4 offset=4) + (get_local 1) + ) + (func 96 (type 0) (local i32 i64) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 3) + (i32.store align=4 offset=4) + (get_local 0) + (i32.load align=4) + (set_local 0) + (get_local 3) + (i32.const 8) + (i32.add) + (get_local 1) + (get_local 2) + (call 100) + (i32.const 0) + (set_local 1) + (block emptyblock) + (get_local 3) + (i32.load8_u align=1 offset=8) + (i32.const 3) + (i32.eq) + (br_if 0) + (get_local 3) + (i64.load align=8 offset=8) + (set_local 4) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (br_if 0) + (get_local 0) + (i32.load8_u align=1 offset=4) + (i32.const 2) + (i32.ne) + (br_if 1) + (end) + (get_local 0) + (i32.const 8) + (i32.add) + (i32.load align=4) + (tee_local 1) + (i32.load align=4) + (get_local 1) + (i32.load align=4 offset=4) + (i32.load align=4) + (call_indirect (type 2)) + (block emptyblock) + (get_local 1) + (i32.load align=4 offset=4) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.load align=4) + (call 109) + (end) + (get_local 1) + (call 109) + (end) + (get_local 0) + (i32.const 4) + (i32.add) + (get_local 4) + (i64.store align=4) + (i32.const 1) + (set_local 1) + (end) + (i32.const 0) + (get_local 3) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (get_local 1) + ) + (func 97 (type 0) + (get_local 0) + (i32.load align=4) + (get_local 1) + (get_local 2) + (call 34) + (i32.const 0) + ) + (func 98 (type 6) + (get_local 1) + (i32.load align=4 offset=24) + (i32.const 3104) + (i32.const 11) + (get_local 1) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + ) + (func 99 (type 14) (local i32 i32 i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 5) + (i32.store align=4 offset=4) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (call 68) + (tee_local 0) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.load align=4 offset=4) + (tee_local 4) + (i32.const 3) + (i32.ne) + (br_if 1) + (get_local 0) + (i64.const 8589934592) + (i64.store align=4) + (get_local 0) + (i32.const 0) + (i32.store align=4) + (br 2) + (end) + (i32.const 0) + (set_local 0) + (br 4) + (end) + (get_local 0) + (i32.load align=4) + (tee_local 1) + (i32.const -1) + (i32.eq) + (br_if 6) + (get_local 0) + (get_local 1) + (i32.store align=4) + (get_local 4) + (i32.const 2) + (i32.ne) + (br_if 1) + (end) + (get_local 5) + (i32.const 0) + (i32.store align=4) + (get_local 5) + (call 59) + (set_local 4) + (get_local 0) + (i32.load align=4) + (br_if 3) + (get_local 0) + (i32.const -1) + (i32.store align=4) + (block emptyblock) + (get_local 0) + (i32.const 4) + (i32.add) + (tee_local 1) + (i32.load align=4) + (i32.const 2) + (i32.eq) + (br_if 0) + (get_local 0) + (i32.const 12) + (i32.add) + (tee_local 2) + (i32.load align=4) + (tee_local 3) + (get_local 3) + (i32.load align=4) + (tee_local 3) + (i32.const -1) + (i32.add) + (i32.store align=4) + (get_local 3) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 2) + (i32.load align=4) + (call 60) + (end) + (get_local 0) + (i32.const 0) + (i32.store align=4) + (get_local 0) + (i32.const 12) + (i32.add) + (get_local 4) + (i32.store align=4) + (get_local 1) + (i64.const 0) + (i64.store align=4) + (br 1) + (end) + (get_local 1) + (br_if 2) + (end) + (get_local 0) + (i32.const -1) + (i32.store align=4) + (get_local 0) + (i32.load align=4 offset=12) + (tee_local 4) + (get_local 4) + (i32.load align=4) + (tee_local 4) + (i32.const 1) + (i32.add) + (i32.store align=4) + (get_local 4) + (i32.const -1) + (i32.le_s) + (br_if 2) + (get_local 0) + (i32.const 0) + (i32.store align=4) + (get_local 0) + (i32.const 12) + (i32.add) + (i32.load align=4) + (set_local 0) + (end) + (i32.const 0) + (get_local 5) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (get_local 0) + (return) + (end) + (call 38) + (unreachable) + (end) + (unreachable) + (unreachable) + (end) + (call 39) + (unreachable) + ) + (func 100 (type 4) (local i32 i32 i32 i32 i32 i64) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 80) + (i32.sub) + (tee_local 7) + (i32.store align=4 offset=4) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.eqz) + (br_if 0) + (get_local 7) + (i32.const 5) + (i32.or) + (set_local 3) + (get_local 7) + (i32.const 8) + (i32.add) + (set_local 5) + (loop emptyblock) + (get_local 7) + (call 54) + (block emptyblock) + (get_local 7) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 3) + (set_local 6) + (block emptyblock) + (get_local 7) + (i32.load8_u align=1 offset=4) + (tee_local 4) + (i32.const 3) + (i32.and) + (i32.const 1) + (i32.eq) + (br_if 0) + (get_local 4) + (i32.const 2) + (i32.ne) + (br_if 4) + (get_local 5) + (i32.load align=4) + (i32.const 8) + (i32.add) + (set_local 6) + (end) + (get_local 6) + (i32.load8_u align=1) + (i32.const 15) + (i32.ne) + (br_if 3) + (get_local 4) + (i32.const 2) + (i32.lt_u) + (br_if 1) + (get_local 5) + (i32.load align=4) + (tee_local 4) + (i32.load align=4) + (get_local 4) + (i32.load align=4 offset=4) + (i32.load align=4) + (call_indirect (type 2)) + (block emptyblock) + (get_local 4) + (i32.load align=4 offset=4) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 4) + (i32.load align=4) + (call 109) + (end) + (get_local 4) + (call 109) + (br 1) + (end) + (get_local 7) + (i32.load align=4 offset=4) + (tee_local 4) + (i32.eqz) + (br_if 3) + (get_local 2) + (get_local 4) + (i32.lt_u) + (br_if 4) + (get_local 1) + (get_local 4) + (i32.add) + (set_local 1) + (get_local 2) + (get_local 4) + (i32.sub) + (tee_local 2) + (br_if 0) + (end) + (end) + (get_local 0) + (i32.const 3) + (i32.store8 align=1) + (br 5) + (end) + (get_local 0) + (get_local 7) + (i64.load align=4 offset=4) + (i64.store align=4) + (br 4) + (end) + (i32.const 28) + (call 107) + (tee_local 4) + (i32.eqz) + (br_if 1) + (get_local 7) + (i32.const 28) + (i32.store align=4 offset=52) + (get_local 7) + (get_local 4) + (i32.store align=4 offset=48) + (get_local 7) + (i32.const 0) + (i32.store align=4 offset=56) + (get_local 7) + (i32.const 48) + (i32.add) + (i32.const 3456) + (i32.const 28) + (call 111) + (get_local 7) + (i32.const 64) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 4) + (get_local 7) + (i32.load align=4 offset=56) + (tee_local 6) + (i32.store align=4) + (get_local 7) + (i32.const 32) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 3) + (get_local 6) + (i32.store align=4) + (get_local 7) + (get_local 7) + (i32.load align=4 offset=48) + (tee_local 6) + (i32.store align=4 offset=64) + (get_local 7) + (get_local 7) + (i32.load align=4 offset=52) + (tee_local 2) + (i32.store align=4 offset=68) + (get_local 7) + (get_local 2) + (i32.store align=4 offset=36) + (get_local 7) + (get_local 6) + (i32.store align=4 offset=32) + (get_local 4) + (get_local 3) + (i32.load align=4) + (tee_local 6) + (i32.store align=4) + (get_local 7) + (i32.const 16) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 3) + (get_local 6) + (i32.store align=4) + (get_local 7) + (get_local 7) + (i32.load align=4 offset=32) + (tee_local 6) + (i32.store align=4 offset=64) + (get_local 7) + (get_local 7) + (i32.load align=4 offset=36) + (tee_local 2) + (i32.store align=4 offset=68) + (get_local 7) + (get_local 2) + (i32.store align=4 offset=20) + (get_local 7) + (get_local 6) + (i32.store align=4 offset=16) + (get_local 4) + (get_local 3) + (i32.load align=4) + (tee_local 6) + (i32.store align=4) + (get_local 7) + (i32.const 48) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 2) + (get_local 6) + (i32.store align=4) + (get_local 7) + (get_local 7) + (i32.load align=4 offset=16) + (tee_local 6) + (i32.store align=4 offset=64) + (get_local 7) + (get_local 7) + (i32.load align=4 offset=20) + (tee_local 3) + (i32.store align=4 offset=68) + (get_local 7) + (get_local 3) + (i32.store align=4 offset=52) + (get_local 7) + (get_local 6) + (i32.store align=4 offset=48) + (i32.const 12) + (call 107) + (tee_local 6) + (i32.eqz) + (br_if 2) + (get_local 6) + (get_local 7) + (i64.load align=8 offset=48) + (tee_local 8) + (i64.store align=4) + (get_local 6) + (i32.const 8) + (i32.add) + (get_local 2) + (i32.load align=4) + (tee_local 3) + (i32.store align=4) + (get_local 4) + (get_local 3) + (i32.store align=4) + (get_local 7) + (get_local 8) + (i64.store align=8 offset=64) + (i32.const 12) + (call 107) + (tee_local 4) + (i32.eqz) + (br_if 2) + (get_local 4) + (get_local 6) + (i32.store align=4) + (get_local 4) + (i32.const 1340) + (i32.store align=4 offset=4) + (get_local 7) + (i32.const 64) + (i32.add) + (i32.const 2) + (i32.add) + (tee_local 6) + (get_local 7) + (i32.const 48) + (i32.add) + (i32.const 2) + (i32.add) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 7) + (get_local 7) + (i32.load16_u align=1 offset=48) + (i32.store16 align=2 offset=64) + (get_local 4) + (i32.const 14) + (i32.store8 align=1 offset=8) + (get_local 4) + (i32.const 11) + (i32.add) + (get_local 6) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 4) + (get_local 7) + (i32.load16_u align=2 offset=64) + (i32.store16 align=1 offset=9) + (get_local 0) + (i32.const 4) + (i32.add) + (get_local 4) + (i32.store align=4) + (get_local 0) + (i32.const 2) + (i32.store align=4) + (get_local 7) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 3) + (get_local 7) + (i32.load8_u align=1 offset=4) + (i32.const 255) + (i32.and) + (i32.const 2) + (i32.lt_u) + (br_if 3) + (get_local 7) + (i32.const 8) + (i32.add) + (i32.load align=4) + (tee_local 4) + (i32.load align=4) + (get_local 4) + (i32.load align=4 offset=4) + (i32.load align=4) + (call_indirect (type 2)) + (block emptyblock) + (get_local 4) + (i32.load align=4 offset=4) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 4) + (i32.load align=4) + (call 109) + (end) + (get_local 4) + (call 109) + (br 3) + (end) + (get_local 4) + (get_local 2) + (call 129) + (unreachable) + (end) + (get_local 7) + (i32.const 28) + (i32.store align=4 offset=68) + (get_local 7) + (get_local 4) + (i32.store align=4 offset=64) + (get_local 7) + (i32.const 1) + (i32.store align=4 offset=72) + (end) + (unreachable) + (unreachable) + (end) + (i32.const 0) + (get_local 7) + (i32.const 80) + (i32.add) + (i32.store align=4 offset=4) + ) + (func 101 (type 4) (local i32 i32 i32 i64) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 96) + (i32.sub) + (tee_local 5) + (i32.store align=4 offset=4) + (get_local 5) + (i32.const 19) + (i32.add) + (get_local 5) + (i32.const 30) + (i32.add) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 5) + (i32.const 17) + (i32.add) + (get_local 5) + (i32.const 28) + (i32.add) + (i32.load16_u align=1) + (i32.store16 align=1) + (get_local 5) + (get_local 1) + (i32.store align=4 offset=8) + (get_local 5) + (i32.const 3) + (i32.store8 align=1 offset=12) + (get_local 5) + (get_local 5) + (i32.load align=1 offset=24) + (i32.store align=1 offset=13) + (get_local 5) + (i32.const 24) + (i32.add) + (i32.const 16) + (i32.add) + (get_local 2) + (i32.const 16) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 5) + (i32.const 24) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 2) + (i32.const 8) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 5) + (get_local 2) + (i64.load align=4) + (i64.store align=8 offset=24) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 5) + (i32.const 8) + (i32.add) + (i32.const 3484) + (get_local 5) + (i32.const 24) + (i32.add) + (call 121) + (i32.eqz) + (br_if 0) + (get_local 5) + (i32.load8_u align=1 offset=12) + (i32.const 3) + (i32.ne) + (br_if 3) + (i32.const 15) + (call 107) + (tee_local 2) + (i32.eqz) + (br_if 5) + (get_local 5) + (i32.const 15) + (i32.store align=4 offset=84) + (get_local 5) + (get_local 2) + (i32.store align=4 offset=80) + (get_local 5) + (i32.const 0) + (i32.store align=4 offset=88) + (get_local 5) + (i32.const 80) + (i32.add) + (i32.const 3520) + (i32.const 15) + (call 111) + (get_local 5) + (i32.const 24) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 2) + (get_local 5) + (i32.load align=4 offset=88) + (tee_local 1) + (i32.store align=4) + (get_local 5) + (i32.const 64) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 3) + (get_local 1) + (i32.store align=4) + (get_local 5) + (get_local 5) + (i32.load align=4 offset=80) + (tee_local 1) + (i32.store align=4 offset=24) + (get_local 5) + (get_local 5) + (i32.load align=4 offset=84) + (tee_local 4) + (i32.store align=4 offset=28) + (get_local 5) + (get_local 4) + (i32.store align=4 offset=68) + (get_local 5) + (get_local 1) + (i32.store align=4 offset=64) + (get_local 2) + (get_local 3) + (i32.load align=4) + (tee_local 1) + (i32.store align=4) + (get_local 5) + (i32.const 48) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 3) + (get_local 1) + (i32.store align=4) + (get_local 5) + (get_local 5) + (i32.load align=4 offset=64) + (tee_local 1) + (i32.store align=4 offset=24) + (get_local 5) + (get_local 5) + (i32.load align=4 offset=68) + (tee_local 4) + (i32.store align=4 offset=28) + (get_local 5) + (get_local 4) + (i32.store align=4 offset=52) + (get_local 5) + (get_local 1) + (i32.store align=4 offset=48) + (get_local 2) + (get_local 3) + (i32.load align=4) + (tee_local 1) + (i32.store align=4) + (get_local 5) + (i32.const 80) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 4) + (get_local 1) + (i32.store align=4) + (get_local 5) + (get_local 5) + (i32.load align=4 offset=48) + (tee_local 1) + (i32.store align=4 offset=24) + (get_local 5) + (get_local 5) + (i32.load align=4 offset=52) + (tee_local 3) + (i32.store align=4 offset=28) + (get_local 5) + (get_local 3) + (i32.store align=4 offset=84) + (get_local 5) + (get_local 1) + (i32.store align=4 offset=80) + (i32.const 12) + (call 107) + (tee_local 1) + (i32.eqz) + (br_if 6) + (get_local 1) + (get_local 5) + (i64.load align=8 offset=80) + (tee_local 6) + (i64.store align=4) + (get_local 1) + (i32.const 8) + (i32.add) + (get_local 4) + (i32.load align=4) + (tee_local 3) + (i32.store align=4) + (get_local 2) + (get_local 3) + (i32.store align=4) + (get_local 5) + (get_local 6) + (i64.store align=8 offset=24) + (i32.const 12) + (call 107) + (tee_local 2) + (i32.eqz) + (br_if 6) + (get_local 2) + (get_local 1) + (i32.store align=4) + (get_local 2) + (i32.const 1340) + (i32.store align=4 offset=4) + (get_local 5) + (i32.const 24) + (i32.add) + (i32.const 2) + (i32.add) + (tee_local 1) + (get_local 5) + (i32.const 80) + (i32.add) + (i32.const 2) + (i32.add) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 5) + (get_local 5) + (i32.load16_u align=1 offset=80) + (i32.store16 align=2 offset=24) + (get_local 2) + (i32.const 16) + (i32.store8 align=1 offset=8) + (get_local 2) + (i32.const 11) + (i32.add) + (get_local 1) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 2) + (get_local 5) + (i32.load16_u align=2 offset=24) + (i32.store16 align=1 offset=9) + (get_local 0) + (i32.const 4) + (i32.add) + (get_local 2) + (i32.store align=4) + (get_local 0) + (i32.const 2) + (i32.store align=4) + (i32.const 0) + (i32.eqz) + (br_if 1) + (br 2) + (end) + (get_local 0) + (i32.const 3) + (i32.store8 align=1) + (i32.const 0) + (br_if 1) + (end) + (get_local 5) + (i32.load8_u align=1 offset=12) + (i32.const 2) + (i32.ne) + (br_if 2) + (end) + (get_local 5) + (i32.const 16) + (i32.add) + (tee_local 0) + (i32.load align=4) + (tee_local 2) + (i32.load align=4) + (get_local 2) + (i32.load align=4 offset=4) + (i32.load align=4) + (call_indirect (type 2)) + (block emptyblock) + (get_local 2) + (i32.load align=4 offset=4) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 2) + (i32.load align=4) + (call 109) + (end) + (get_local 0) + (i32.load align=4) + (call 109) + (br 1) + (end) + (get_local 0) + (get_local 5) + (i64.load align=4 offset=12) + (i64.store align=4) + (end) + (i32.const 0) + (get_local 5) + (i32.const 96) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (get_local 5) + (i32.const 15) + (i32.store align=4 offset=28) + (get_local 5) + (get_local 2) + (i32.store align=4 offset=24) + (get_local 5) + (i32.const 1) + (i32.store align=4 offset=32) + (end) + (unreachable) + (unreachable) + ) + (func 102 (type 2) (local i32) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (br_if 0) + (get_local 0) + (i32.load8_u align=1 offset=4) + (i32.const 2) + (i32.ne) + (br_if 1) + (end) + (get_local 0) + (i32.const 8) + (i32.add) + (tee_local 1) + (i32.load align=4) + (tee_local 0) + (i32.load align=4) + (get_local 0) + (i32.load align=4 offset=4) + (i32.load align=4) + (call_indirect (type 2)) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.load align=4) + (call 109) + (end) + (get_local 1) + (i32.load align=4) + (call 109) + (end) + ) + (func 103 (type 4) (local i32 i32 i32 i32 i32 i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 64) + (i32.sub) + (tee_local 10) + (i32.store align=4 offset=4) + (get_local 10) + (i32.const 24) + (i32.add) + (i32.const 2) + (i32.or) + (set_local 3) + (get_local 10) + (i32.const 32) + (i32.add) + (set_local 5) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4) + (tee_local 8) + (br_if 0) + (i32.const 10) + (set_local 11) + (br 1) + (end) + (i32.const 0) + (set_local 11) + (end) + (loop emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 11) + (br_table [Ref(space=label,index=8,name=None), Ref(space=label,index=9,name=None), Ref(space=label,index=10,name=None), Ref(space=label,index=81,name=None), Ref(space=label,index=11,name=None), Ref(space=label,index=12,name=None), Ref(space=label,index=13,name=None), Ref(space=label,index=4,name=None), Ref(space=label,index=5,name=None), Ref(space=label,index=7,name=None), Ref(space=label,index=3,name=None), Ref(space=label,index=36,name=None), Ref(space=label,index=91,name=None), Ref(space=label,index=37,name=None), Ref(space=label,index=38,name=None), Ref(space=label,index=39,name=None), Ref(space=label,index=40,name=None), Ref(space=label,index=41,name=None), Ref(space=label,index=57,name=None), Ref(space=label,index=84,name=None), Ref(space=label,index=66,name=None), Ref(space=label,index=68,name=None), Ref(space=label,index=69,name=None), Ref(space=label,index=67,name=None), Ref(space=label,index=42,name=None), Ref(space=label,index=85,name=None), Ref(space=label,index=43,name=None), Ref(space=label,index=44,name=None), Ref(space=label,index=46,name=None), Ref(space=label,index=47,name=None), Ref(space=label,index=87,name=None), Ref(space=label,index=48,name=None), Ref(space=label,index=49,name=None), Ref(space=label,index=58,name=None), Ref(space=label,index=88,name=None), Ref(space=label,index=59,name=None), Ref(space=label,index=65,name=None), Ref(space=label,index=60,name=None), Ref(space=label,index=61,name=None), Ref(space=label,index=64,name=None), Ref(space=label,index=62,name=None), Ref(space=label,index=63,name=None), Ref(space=label,index=89,name=None), Ref(space=label,index=50,name=None), Ref(space=label,index=56,name=None), Ref(space=label,index=51,name=None), Ref(space=label,index=52,name=None), Ref(space=label,index=55,name=None), Ref(space=label,index=53,name=None), Ref(space=label,index=54,name=None), Ref(space=label,index=90,name=None), Ref(space=label,index=45,name=None), Ref(space=label,index=86,name=None), Ref(space=label,index=83,name=None), Ref(space=label,index=6,name=None), Ref(space=label,index=14,name=None), Ref(space=label,index=15,name=None), Ref(space=label,index=0,name=None), Ref(space=label,index=1,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=16,name=None), Ref(space=label,index=17,name=None), Ref(space=label,index=18,name=None), Ref(space=label,index=72,name=None), Ref(space=label,index=19,name=None), Ref(space=label,index=20,name=None), Ref(space=label,index=22,name=None), Ref(space=label,index=23,name=None), Ref(space=label,index=74,name=None), Ref(space=label,index=24,name=None), Ref(space=label,index=25,name=None), Ref(space=label,index=78,name=None), Ref(space=label,index=26,name=None), Ref(space=label,index=32,name=None), Ref(space=label,index=33,name=None), Ref(space=label,index=35,name=None), Ref(space=label,index=34,name=None), Ref(space=label,index=27,name=None), Ref(space=label,index=28,name=None), Ref(space=label,index=31,name=None), Ref(space=label,index=29,name=None), Ref(space=label,index=30,name=None), Ref(space=label,index=80,name=None), Ref(space=label,index=75,name=None), Ref(space=label,index=76,name=None), Ref(space=label,index=77,name=None), Ref(space=label,index=79,name=None), Ref(space=label,index=21,name=None), Ref(space=label,index=73,name=None), Ref(space=label,index=70,name=None), Ref(space=label,index=82,name=None), Ref(space=label,index=71,name=None), Ref(space=label,index=71,name=None)]) + (end) + (get_local 0) + (i32.load align=4) + (set_local 8) + (get_local 10) + (i32.load align=4 offset=24) + (tee_local 4) + (i32.eqz) + (br_if 103) + (i32.const 58) + (set_local 11) + (br 154) + (end) + (get_local 4) + (get_local 4) + (i32.load align=4) + (tee_local 6) + (i32.const -1) + (i32.add) + (i32.store align=4) + (get_local 6) + (i32.const 1) + (i32.ne) + (br_if 103) + (i32.const 59) + (set_local 11) + (br 153) + (end) + (get_local 10) + (i32.load align=4 offset=24) + (call 60) + (get_local 8) + (br_if 93) + (i32.const 10) + (set_local 11) + (br 152) + (end) + (get_local 0) + (get_local 0) + (i32.load align=4) + (tee_local 8) + (i32.const 2) + (get_local 8) + (select) + (i32.store align=4) + (get_local 8) + (br_if 99) + (br 98) + (end) + (get_local 10) + (i32.load align=4 offset=24) + (tee_local 4) + (i32.eqz) + (br_if 88) + (i32.const 8) + (set_local 11) + (br 150) + (end) + (get_local 4) + (get_local 4) + (i32.load align=4) + (tee_local 6) + (i32.const -1) + (i32.add) + (i32.store align=4) + (get_local 6) + (i32.const 1) + (i32.ne) + (br_if 88) + (i32.const 54) + (set_local 11) + (br 149) + (end) + (get_local 10) + (i32.load align=4 offset=24) + (call 60) + (i32.const 9) + (set_local 11) + (br 148) + (end) + (get_local 8) + (i32.eqz) + (br_if 84) + (i32.const 0) + (set_local 11) + (br 147) + (end) + (get_local 8) + (i32.const 3) + (i32.eq) + (br_if 86) + (i32.const 1) + (set_local 11) + (br 146) + (end) + (get_local 8) + (i32.const 1) + (i32.eq) + (br_if 87) + (i32.const 2) + (set_local 11) + (br 145) + (end) + (get_local 8) + (i32.const 3) + (i32.and) + (i32.const 2) + (i32.ne) + (br_if 87) + (i32.const 4) + (set_local 11) + (br 144) + (end) + (call 99) + (tee_local 4) + (i32.eqz) + (br_if 87) + (i32.const 5) + (set_local 11) + (br 143) + (end) + (get_local 5) + (i32.const 0) + (i32.store8 align=1) + (get_local 10) + (get_local 4) + (i32.store align=4 offset=24) + (get_local 10) + (i32.const 0) + (i32.store align=4 offset=28) + (i32.const 6) + (set_local 11) + (br 142) + (end) + (get_local 8) + (i32.const 3) + (i32.and) + (i32.const 2) + (i32.ne) + (br_if 87) + (i32.const 55) + (set_local 11) + (br 141) + (end) + (get_local 0) + (get_local 3) + (get_local 0) + (i32.load align=4) + (tee_local 4) + (get_local 4) + (get_local 8) + (i32.eq) + (select) + (i32.store align=4) + (get_local 10) + (get_local 8) + (i32.const -4) + (i32.and) + (i32.store align=4 offset=28) + (get_local 4) + (get_local 8) + (i32.ne) + (set_local 6) + (get_local 4) + (set_local 8) + (get_local 6) + (br_if 85) + (i32.const 56) + (set_local 11) + (br 140) + (end) + (get_local 5) + (i32.load8_u align=1) + (br_if 119) + (i32.const 60) + (set_local 11) + (br 139) + (end) + (call 99) + (tee_local 8) + (i32.eqz) + (br_if 121) + (i32.const 61) + (set_local 11) + (br 138) + (end) + (get_local 8) + (i32.const 0) + (get_local 8) + (i32.load align=4 offset=24) + (tee_local 4) + (get_local 4) + (i32.const 2) + (i32.eq) + (tee_local 4) + (select) + (i32.store align=4 offset=24) + (get_local 4) + (br_if 121) + (i32.const 62) + (set_local 11) + (br 137) + (end) + (get_local 8) + (i32.const 28) + (i32.add) + (tee_local 7) + (i32.load align=4) + (tee_local 4) + (i32.load8_u align=1) + (br_if 121) + (i32.const 64) + (set_local 11) + (br 136) + (end) + (get_local 4) + (i32.const 1) + (i32.store8 align=1) + (call 86) + (tee_local 4) + (i32.eqz) + (br_if 121) + (i32.const 65) + (set_local 11) + (br 135) + (end) + (get_local 4) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 121) + (i32.const 87) + (set_local 11) + (br 134) + (end) + (get_local 4) + (i32.const 4) + (i32.add) + (set_local 9) + (get_local 4) + (i32.load align=4 offset=4) + (set_local 6) + (br 121) + (end) + (get_local 4) + (i64.const 1) + (i64.store align=4) + (get_local 4) + (i32.const 4) + (i32.add) + (set_local 9) + (i32.const 0) + (set_local 6) + (i32.const 67) + (set_local 11) + (br 132) + (end) + (get_local 9) + (get_local 6) + (i32.store align=1) + (get_local 8) + (i32.const 32) + (i32.add) + (tee_local 9) + (i32.load8_u align=1) + (br_if 120) + (i32.const 69) + (set_local 11) + (br 131) + (end) + (get_local 8) + (get_local 8) + (i32.load align=4 offset=24) + (tee_local 4) + (i32.const 1) + (get_local 4) + (select) + (i32.store align=4 offset=24) + (get_local 10) + (get_local 6) + (i32.const 0) + (i32.ne) + (i32.store8 align=1 offset=48) + (get_local 4) + (i32.eqz) + (br_if 120) + (i32.const 70) + (set_local 11) + (br 130) + (end) + (get_local 4) + (i32.const 2) + (i32.ne) + (br_if 120) + (i32.const 72) + (set_local 11) + (br 129) + (end) + (get_local 10) + (i32.load8_u align=1 offset=48) + (br_if 120) + (i32.const 77) + (set_local 11) + (br 128) + (end) + (call 86) + (tee_local 4) + (i32.eqz) + (br_if 123) + (i32.const 78) + (set_local 11) + (br 127) + (end) + (get_local 4) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 123) + (i32.const 80) + (set_local 11) + (br 126) + (end) + (get_local 4) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 118) + (i32.const 81) + (set_local 11) + (br 125) + (end) + (get_local 9) + (i32.const 1) + (i32.store8 align=1) + (br 118) + (end) + (get_local 4) + (i64.const 1) + (i64.store align=4) + (get_local 4) + (i32.const 0) + (i32.store align=1 offset=4) + (i32.const 73) + (set_local 11) + (br 123) + (end) + (get_local 7) + (i32.load align=4) + (i32.const 0) + (i32.store8 align=1) + (i32.const 74) + (set_local 11) + (br 122) + (end) + (get_local 8) + (get_local 8) + (i32.load align=4) + (tee_local 4) + (i32.const -1) + (i32.add) + (i32.store align=4) + (get_local 4) + (i32.const 1) + (i32.ne) + (br_if 116) + (i32.const 76) + (set_local 11) + (br 121) + (end) + (get_local 8) + (call 60) + (i32.const 75) + (set_local 11) + (br 120) + (end) + (get_local 5) + (i32.load8_u align=1) + (i32.eqz) + (br_if 100) + (br 101) + (end) + (get_local 1) + (i32.const 0) + (get_local 2) + (i32.load align=4 offset=12) + (call_indirect (type 5)) + (get_local 0) + (i32.load align=4) + (set_local 8) + (get_local 0) + (i32.const 3) + (i32.store align=4) + (get_local 10) + (get_local 8) + (i32.const 3) + (i32.and) + (tee_local 4) + (i32.store align=4 offset=12) + (get_local 10) + (get_local 10) + (i32.const 12) + (i32.add) + (i32.store align=4 offset=16) + (get_local 10) + (i32.const 3732) + (i32.store align=4 offset=20) + (get_local 4) + (i32.const 2) + (i32.ne) + (br_if 69) + (i32.const 13) + (set_local 11) + (br 118) + (end) + (get_local 8) + (i32.const -4) + (i32.and) + (tee_local 4) + (i32.eqz) + (br_if 69) + (i32.const 14) + (set_local 11) + (br 117) + (end) + (i32.const 15) + (set_local 11) + (br 116) + (end) + (get_local 4) + (i32.load align=1) + (set_local 8) + (get_local 4) + (i32.const 0) + (i32.store align=1) + (get_local 8) + (i32.eqz) + (br_if 69) + (i32.const 16) + (set_local 11) + (br 115) + (end) + (get_local 4) + (i32.load align=4 offset=4) + (set_local 0) + (get_local 4) + (i32.const 1) + (i32.store8 align=1 offset=8) + (get_local 8) + (get_local 8) + (i32.load align=4 offset=24) + (tee_local 4) + (i32.const 2) + (get_local 4) + (select) + (i32.store align=4 offset=24) + (get_local 4) + (i32.eqz) + (br_if 71) + (i32.const 17) + (set_local 11) + (br 114) + (end) + (get_local 4) + (i32.const 1) + (i32.ne) + (br_if 71) + (i32.const 24) + (set_local 11) + (br 113) + (end) + (get_local 8) + (i32.const 28) + (i32.add) + (tee_local 5) + (i32.load align=4) + (tee_local 4) + (i32.load8_u align=1) + (br_if 74) + (i32.const 26) + (set_local 11) + (br 112) + (end) + (get_local 4) + (i32.const 1) + (i32.store8 align=1) + (call 86) + (tee_local 4) + (i32.eqz) + (br_if 74) + (i32.const 27) + (set_local 11) + (br 111) + (end) + (get_local 4) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 74) + (i32.const 51) + (set_local 11) + (br 110) + (end) + (get_local 4) + (i32.const 4) + (i32.add) + (set_local 3) + (get_local 4) + (i32.load align=4 offset=4) + (set_local 6) + (br 74) + (end) + (get_local 4) + (i64.const 1) + (i64.store align=4) + (get_local 4) + (i32.const 4) + (i32.add) + (set_local 3) + (i32.const 0) + (set_local 6) + (i32.const 29) + (set_local 11) + (br 108) + (end) + (get_local 3) + (get_local 6) + (i32.store align=1) + (get_local 8) + (i32.const 32) + (i32.add) + (tee_local 7) + (i32.load8_u align=1) + (br_if 73) + (i32.const 31) + (set_local 11) + (br 107) + (end) + (get_local 8) + (i32.const 24) + (i32.add) + (tee_local 3) + (i32.const 2) + (get_local 3) + (i32.load align=4) + (tee_local 4) + (get_local 4) + (i32.const 1) + (i32.eq) + (tee_local 9) + (select) + (i32.store align=4) + (get_local 10) + (get_local 6) + (i32.const 0) + (i32.ne) + (i32.store8 align=1 offset=24) + (get_local 9) + (br_if 73) + (i32.const 32) + (set_local 11) + (br 106) + (end) + (get_local 4) + (br_if 73) + (i32.const 43) + (set_local 11) + (br 105) + (end) + (get_local 10) + (i32.load8_u align=1 offset=24) + (br_if 79) + (i32.const 45) + (set_local 11) + (br 104) + (end) + (call 86) + (tee_local 4) + (i32.eqz) + (br_if 81) + (i32.const 46) + (set_local 11) + (br 103) + (end) + (get_local 4) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 81) + (i32.const 48) + (set_local 11) + (br 102) + (end) + (get_local 4) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 77) + (i32.const 49) + (set_local 11) + (br 101) + (end) + (get_local 7) + (i32.const 1) + (i32.store8 align=1) + (br 77) + (end) + (get_local 4) + (i64.const 1) + (i64.store align=4) + (get_local 4) + (i32.const 0) + (i32.store align=1 offset=4) + (i32.const 44) + (set_local 11) + (br 99) + (end) + (get_local 5) + (i32.load align=4) + (i32.const 0) + (i32.store8 align=1) + (get_local 3) + (get_local 3) + (i32.load align=4) + (tee_local 4) + (i32.const 2) + (get_local 4) + (select) + (i32.store align=4) + (get_local 4) + (br_if 54) + (br 53) + (end) + (get_local 4) + (i32.const 2) + (i32.eq) + (br_if 56) + (br 57) + (end) + (get_local 4) + (i32.const 2) + (i32.ne) + (br_if 65) + (i32.const 35) + (set_local 11) + (br 96) + (end) + (get_local 10) + (i32.load8_u align=1 offset=24) + (br_if 65) + (i32.const 37) + (set_local 11) + (br 95) + (end) + (call 86) + (tee_local 4) + (i32.eqz) + (br_if 67) + (i32.const 38) + (set_local 11) + (br 94) + (end) + (get_local 4) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 67) + (i32.const 40) + (set_local 11) + (br 93) + (end) + (get_local 4) + (i32.load align=4 offset=4) + (i32.eqz) + (br_if 63) + (i32.const 41) + (set_local 11) + (br 92) + (end) + (get_local 7) + (i32.const 1) + (i32.store8 align=1) + (br 63) + (end) + (get_local 4) + (i64.const 1) + (i64.store align=4) + (get_local 4) + (i32.const 0) + (i32.store align=1 offset=4) + (i32.const 36) + (set_local 11) + (br 90) + (end) + (get_local 5) + (i32.load align=4) + (i32.const 0) + (i32.store8 align=1) + (i32.const 20) + (set_local 11) + (br 89) + (end) + (get_local 8) + (get_local 8) + (i32.load align=4) + (tee_local 4) + (i32.const -1) + (i32.add) + (i32.store align=4) + (get_local 4) + (i32.const 1) + (i32.ne) + (br_if 49) + (i32.const 23) + (set_local 11) + (br 88) + (end) + (get_local 8) + (call 60) + (i32.const 21) + (set_local 11) + (br 87) + (end) + (get_local 0) + (set_local 4) + (get_local 0) + (br_if 39) + (i32.const 22) + (set_local 11) + (br 86) + (end) + (i32.const 0) + (get_local 10) + (i32.const 64) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (i32.const 1472) + (i32.const 94) + (call 143) + (unreachable) + (end) + (i32.const 3568) + (i32.const 42) + (i32.const 3612) + (call 75) + (unreachable) + (end) + (i32.const 2208) + (i32.const 32) + (i32.const 2240) + (call 75) + (unreachable) + (end) + (call 40) + (unreachable) + (end) + (get_local 8) + (i32.const 28) + (i32.add) + (get_local 6) + (i32.const 0) + (i32.ne) + (call 35) + (unreachable) + (end) + (get_local 8) + (get_local 8) + (i32.load align=4 offset=40) + (tee_local 4) + (get_local 8) + (i32.const 28) + (i32.add) + (i32.load align=4) + (tee_local 0) + (get_local 4) + (select) + (i32.store align=4 offset=40) + (get_local 4) + (i32.eqz) + (br_if 77) + (i32.const 84) + (set_local 11) + (br 79) + (end) + (get_local 4) + (get_local 0) + (i32.eq) + (br_if 77) + (i32.const 85) + (set_local 11) + (br 78) + (end) + (i32.const 1184) + (i32.const 54) + (i32.const 1240) + (call 75) + (unreachable) + (end) + (i32.const 1616) + (i32.const 23) + (i32.const 1640) + (call 75) + (unreachable) + (end) + (i32.const 2448) + (i32.const 29) + (i32.const 2480) + (call 75) + (unreachable) + (end) + (call 40) + (unreachable) + (end) + (i32.const 3632) + (i32.const 47) + (i32.const 3680) + (call 75) + (unreachable) + (end) + (i32.const 1472) + (i32.const 94) + (call 143) + (unreachable) + (end) + (i32.const 3776) + (call 139) + (unreachable) + (end) + (i32.const 1968) + (i32.const 28) + (i32.const 1996) + (call 75) + (unreachable) + (end) + (i32.const 2208) + (i32.const 32) + (i32.const 2240) + (call 75) + (unreachable) + (end) + (call 40) + (unreachable) + (end) + (get_local 8) + (i32.const 28) + (i32.add) + (get_local 6) + (i32.const 0) + (i32.ne) + (call 35) + (unreachable) + (end) + (i32.const 1968) + (i32.const 28) + (i32.const 2012) + (call 75) + (unreachable) + (end) + (call 40) + (unreachable) + (end) + (call 40) + (unreachable) + (end) + (get_local 10) + (i32.const 48) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 13) + (i32.store align=4) + (get_local 10) + (i32.const 13) + (i32.store align=4 offset=52) + (get_local 10) + (get_local 10) + (i32.const 20) + (i32.add) + (i32.store align=4 offset=56) + (get_local 10) + (i32.const 6944) + (i32.store align=4 offset=32) + (get_local 10) + (i32.const 3) + (i32.store align=4 offset=28) + (get_local 10) + (get_local 10) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=48) + (get_local 10) + (i32.const 3736) + (i32.store align=4 offset=24) + (get_local 10) + (i32.const 24) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 10) + (get_local 10) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=40) + (get_local 10) + (i32.const 44) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 10) + (i32.const 24) + (i32.add) + (i32.const 3760) + (call 76) + (unreachable) + (end) + (i32.const 10) + (set_local 11) + (br 62) + (end) + (i32.const 9) + (set_local 11) + (br 61) + (end) + (i32.const 9) + (set_local 11) + (br 60) + (end) + (i32.const 22) + (set_local 11) + (br 59) + (end) + (i32.const 0) + (set_local 11) + (br 58) + (end) + (i32.const 91) + (set_local 11) + (br 57) + (end) + (i32.const 3) + (set_local 11) + (br 56) + (end) + (i32.const 90) + (set_local 11) + (br 55) + (end) + (i32.const 6) + (set_local 11) + (br 54) + (end) + (i32.const 7) + (set_local 11) + (br 53) + (end) + (i32.const 11) + (set_local 11) + (br 52) + (end) + (i32.const 9) + (set_local 11) + (br 51) + (end) + (i32.const 9) + (set_local 11) + (br 50) + (end) + (i32.const 9) + (set_local 11) + (br 49) + (end) + (i32.const 12) + (set_local 11) + (br 48) + (end) + (i32.const 22) + (set_local 11) + (br 47) + (end) + (i32.const 15) + (set_local 11) + (br 46) + (end) + (i32.const 53) + (set_local 11) + (br 45) + (end) + (i32.const 20) + (set_local 11) + (br 44) + (end) + (i32.const 17) + (set_local 11) + (br 43) + (end) + (i32.const 20) + (set_local 11) + (br 42) + (end) + (i32.const 18) + (set_local 11) + (br 41) + (end) + (i32.const 20) + (set_local 11) + (br 40) + (end) + (i32.const 19) + (set_local 11) + (br 39) + (end) + (i32.const 21) + (set_local 11) + (br 38) + (end) + (i32.const 25) + (set_local 11) + (br 37) + (end) + (i32.const 52) + (set_local 11) + (br 36) + (end) + (i32.const 28) + (set_local 11) + (br 35) + (end) + (i32.const 29) + (set_local 11) + (br 34) + (end) + (i32.const 30) + (set_local 11) + (br 33) + (end) + (i32.const 35) + (set_local 11) + (br 32) + (end) + (i32.const 33) + (set_local 11) + (br 31) + (end) + (i32.const 34) + (set_local 11) + (br 30) + (end) + (i32.const 36) + (set_local 11) + (br 29) + (end) + (i32.const 36) + (set_local 11) + (br 28) + (end) + (i32.const 36) + (set_local 11) + (br 27) + (end) + (i32.const 42) + (set_local 11) + (br 26) + (end) + (i32.const 39) + (set_local 11) + (br 25) + (end) + (i32.const 44) + (set_local 11) + (br 24) + (end) + (i32.const 44) + (set_local 11) + (br 23) + (end) + (i32.const 44) + (set_local 11) + (br 22) + (end) + (i32.const 50) + (set_local 11) + (br 21) + (end) + (i32.const 47) + (set_local 11) + (br 20) + (end) + (i32.const 57) + (set_local 11) + (br 19) + (end) + (i32.const 60) + (set_local 11) + (br 18) + (end) + (i32.const 57) + (set_local 11) + (br 17) + (end) + (i32.const 89) + (set_local 11) + (br 16) + (end) + (i32.const 74) + (set_local 11) + (br 15) + (end) + (i32.const 63) + (set_local 11) + (br 14) + (end) + (i32.const 88) + (set_local 11) + (br 13) + (end) + (i32.const 66) + (set_local 11) + (br 12) + (end) + (i32.const 67) + (set_local 11) + (br 11) + (end) + (i32.const 68) + (set_local 11) + (br 10) + (end) + (i32.const 83) + (set_local 11) + (br 9) + (end) + (i32.const 71) + (set_local 11) + (br 8) + (end) + (i32.const 73) + (set_local 11) + (br 7) + (end) + (i32.const 73) + (set_local 11) + (br 6) + (end) + (i32.const 73) + (set_local 11) + (br 5) + (end) + (i32.const 75) + (set_local 11) + (br 4) + (end) + (i32.const 82) + (set_local 11) + (br 3) + (end) + (i32.const 79) + (set_local 11) + (br 2) + (end) + (i32.const 86) + (set_local 11) + (br 1) + (end) + (i32.const 86) + (set_local 11) + (br 0) + (end) + (unreachable) + ) + (func 104 (type 2) + + ) + (func 105 (type 5) (local i32) + (get_local 0) + (i32.load align=4) + (tee_local 0) + (i32.load8_u align=1) + (set_local 2) + (get_local 0) + (i32.const 0) + (i32.store8 align=1) + (block emptyblock) + (get_local 2) + (i32.eqz) + (br_if 0) + (call 67) + (return) + (end) + (i32.const 3776) + (call 139) + (unreachable) + ) + (func 106 (type 5) (local i32) + (get_local 0) + (i32.load8_u align=1) + (set_local 2) + (get_local 0) + (i32.const 0) + (i32.store8 align=1) + (block emptyblock) + (get_local 2) + (i32.eqz) + (br_if 0) + (call 67) + (return) + (end) + (i32.const 3776) + (call 139) + (unreachable) + ) + (func 107 (type 13) (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i64 i64) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (set_local 9) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.const 244) + (i32.gt_u) + (br_if 0) + (i32.const 0) + (i32.load align=4 offset=3956) + (tee_local 7) + (i32.const 16) + (get_local 0) + (i32.const 11) + (i32.add) + (i32.const -8) + (i32.and) + (get_local 0) + (i32.const 11) + (i32.lt_u) + (select) + (tee_local 8) + (i32.const 3) + (i32.shr_u) + (tee_local 2) + (i32.const 31) + (i32.and) + (tee_local 3) + (i32.shr_u) + (tee_local 0) + (i32.const 3) + (i32.and) + (i32.eqz) + (br_if 1) + (get_local 0) + (i32.const -1) + (i32.xor) + (i32.const 1) + (i32.and) + (get_local 2) + (i32.add) + (tee_local 2) + (i32.const 3) + (i32.shl) + (tee_local 8) + (i32.const 3972) + (i32.add) + (i32.load align=4) + (tee_local 0) + (i32.load align=4 offset=8) + (tee_local 3) + (get_local 8) + (i32.const 3964) + (i32.add) + (tee_local 8) + (i32.eq) + (br_if 2) + (get_local 3) + (get_local 8) + (i32.store align=4 offset=12) + (get_local 8) + (i32.const 8) + (i32.add) + (get_local 3) + (i32.store align=4) + (br 3) + (end) + (i32.const 0) + (set_local 2) + (get_local 0) + (i32.const -64) + (i32.ge_u) + (br_if 26) + (get_local 0) + (i32.const 11) + (i32.add) + (tee_local 0) + (i32.const -8) + (i32.and) + (set_local 8) + (i32.const 0) + (i32.load align=4 offset=3960) + (tee_local 1) + (i32.eqz) + (br_if 9) + (i32.const 0) + (set_local 6) + (block emptyblock) + (get_local 0) + (i32.const 8) + (i32.shr_u) + (tee_local 0) + (i32.eqz) + (br_if 0) + (i32.const 31) + (set_local 6) + (get_local 8) + (i32.const 16777215) + (i32.gt_u) + (br_if 0) + (get_local 8) + (i32.const 38) + (get_local 0) + (i32.clz) + (tee_local 0) + (i32.sub) + (i32.const 31) + (i32.and) + (i32.shr_u) + (i32.const 1) + (i32.and) + (i32.const 31) + (get_local 0) + (i32.sub) + (i32.const 1) + (i32.shl) + (i32.or) + (set_local 6) + (end) + (i32.const 0) + (get_local 8) + (i32.sub) + (set_local 3) + (get_local 6) + (i32.const 2) + (i32.shl) + (i32.const 4228) + (i32.add) + (i32.load align=4) + (tee_local 0) + (i32.eqz) + (br_if 6) + (i32.const 0) + (set_local 2) + (get_local 8) + (i32.const 0) + (i32.const 25) + (get_local 6) + (i32.const 1) + (i32.shr_u) + (i32.sub) + (i32.const 31) + (i32.and) + (get_local 6) + (i32.const 31) + (i32.eq) + (select) + (i32.shl) + (set_local 5) + (i32.const 0) + (set_local 7) + (loop emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (i32.const -8) + (i32.and) + (tee_local 4) + (get_local 8) + (i32.lt_u) + (br_if 0) + (get_local 4) + (get_local 8) + (i32.sub) + (tee_local 4) + (get_local 3) + (i32.ge_u) + (br_if 0) + (get_local 4) + (set_local 3) + (get_local 0) + (set_local 7) + (get_local 4) + (i32.eqz) + (br_if 6) + (end) + (get_local 0) + (i32.const 20) + (i32.add) + (i32.load align=4) + (tee_local 4) + (get_local 2) + (get_local 4) + (get_local 0) + (get_local 5) + (i32.const 29) + (i32.shr_u) + (i32.const 4) + (i32.and) + (i32.add) + (i32.const 16) + (i32.add) + (i32.load align=4) + (tee_local 0) + (i32.ne) + (select) + (get_local 2) + (get_local 4) + (select) + (set_local 2) + (get_local 5) + (i32.const 1) + (i32.shl) + (set_local 5) + (get_local 0) + (br_if 0) + (end) + (get_local 2) + (i32.eqz) + (br_if 5) + (get_local 2) + (set_local 0) + (br 7) + (end) + (get_local 8) + (i32.const 0) + (i32.load align=4 offset=4356) + (i32.le_u) + (br_if 8) + (get_local 0) + (i32.eqz) + (br_if 2) + (get_local 0) + (get_local 3) + (i32.shl) + (i32.const 2) + (get_local 3) + (i32.shl) + (tee_local 0) + (i32.const 0) + (get_local 0) + (i32.sub) + (i32.or) + (i32.and) + (tee_local 0) + (i32.const 0) + (get_local 0) + (i32.sub) + (i32.and) + (i32.ctz) + (tee_local 2) + (i32.const 3) + (i32.shl) + (tee_local 5) + (i32.const 3972) + (i32.add) + (i32.load align=4) + (tee_local 0) + (i32.load align=4 offset=8) + (tee_local 3) + (get_local 5) + (i32.const 3964) + (i32.add) + (tee_local 5) + (i32.eq) + (br_if 9) + (get_local 3) + (get_local 5) + (i32.store align=4 offset=12) + (get_local 5) + (i32.const 8) + (i32.add) + (get_local 3) + (i32.store align=4) + (br 10) + (end) + (i32.const 0) + (get_local 7) + (i32.const -2) + (get_local 2) + (i32.rotl) + (i32.and) + (i32.store align=4 offset=3956) + (end) + (get_local 0) + (get_local 2) + (i32.const 3) + (i32.shl) + (tee_local 2) + (i32.const 3) + (i32.or) + (i32.store align=4 offset=4) + (get_local 0) + (get_local 2) + (i32.add) + (tee_local 2) + (get_local 2) + (i32.load align=4 offset=4) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 0) + (i32.const 8) + (i32.add) + (return) + (end) + (i32.const 0) + (i32.load align=4 offset=3960) + (tee_local 4) + (i32.eqz) + (br_if 5) + (get_local 4) + (i32.const 0) + (get_local 4) + (i32.sub) + (i32.and) + (i32.ctz) + (i32.const 2) + (i32.shl) + (i32.const 4228) + (i32.add) + (i32.load align=4) + (tee_local 7) + (i32.load align=4 offset=4) + (i32.const -8) + (i32.and) + (get_local 8) + (i32.sub) + (set_local 2) + (get_local 7) + (set_local 3) + (get_local 7) + (i32.load align=4 offset=16) + (tee_local 0) + (i32.eqz) + (br_if 18) + (i32.const 0) + (set_local 10) + (br 19) + (end) + (i32.const 0) + (set_local 3) + (get_local 0) + (set_local 7) + (br 2) + (end) + (get_local 7) + (br_if 2) + (end) + (i32.const 0) + (set_local 7) + (get_local 1) + (i32.const 2) + (get_local 6) + (i32.const 31) + (i32.and) + (i32.shl) + (tee_local 0) + (i32.const 0) + (get_local 0) + (i32.sub) + (i32.or) + (i32.and) + (tee_local 0) + (i32.eqz) + (br_if 2) + (get_local 0) + (i32.const 0) + (get_local 0) + (i32.sub) + (i32.and) + (i32.ctz) + (i32.const 2) + (i32.shl) + (i32.const 4228) + (i32.add) + (i32.load align=4) + (tee_local 0) + (i32.eqz) + (br_if 2) + (end) + (loop emptyblock) + (get_local 0) + (tee_local 2) + (get_local 7) + (get_local 2) + (i32.load align=4 offset=4) + (i32.const -8) + (i32.and) + (tee_local 0) + (get_local 8) + (i32.ge_u) + (get_local 0) + (get_local 8) + (i32.sub) + (tee_local 0) + (get_local 3) + (i32.lt_u) + (i32.and) + (tee_local 5) + (select) + (set_local 7) + (get_local 0) + (get_local 3) + (get_local 5) + (select) + (set_local 3) + (get_local 2) + (i32.load align=4 offset=16) + (tee_local 0) + (br_if 0) + (get_local 2) + (i32.const 20) + (i32.add) + (i32.load align=4) + (tee_local 0) + (br_if 0) + (end) + (get_local 7) + (i32.eqz) + (br_if 1) + (end) + (get_local 3) + (get_local 8) + (i32.add) + (tee_local 6) + (i32.const 0) + (i32.load align=4 offset=4356) + (i32.ge_u) + (br_if 0) + (get_local 7) + (i32.load align=4 offset=24) + (set_local 4) + (get_local 7) + (i32.load align=4 offset=12) + (tee_local 0) + (get_local 7) + (i32.eq) + (br_if 5) + (get_local 7) + (i32.load align=4 offset=8) + (tee_local 2) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 0) + (get_local 2) + (i32.store align=4 offset=8) + (get_local 4) + (br_if 11) + (br 12) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=4356) + (tee_local 0) + (get_local 8) + (i32.ge_u) + (br_if 0) + (i32.const 0) + (i32.load align=4 offset=4360) + (tee_local 0) + (get_local 8) + (i32.le_u) + (br_if 1) + (i32.const 0) + (get_local 0) + (get_local 8) + (i32.sub) + (tee_local 2) + (i32.store align=4 offset=4360) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4368) + (tee_local 0) + (get_local 8) + (i32.add) + (tee_local 3) + (i32.store align=4 offset=4368) + (get_local 3) + (get_local 2) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 0) + (get_local 8) + (i32.const 3) + (i32.or) + (i32.store align=4 offset=4) + (get_local 0) + (i32.const 8) + (i32.add) + (return) + (end) + (i32.const 0) + (i32.load align=4 offset=4364) + (set_local 2) + (get_local 0) + (get_local 8) + (i32.sub) + (tee_local 3) + (i32.const 16) + (i32.ge_u) + (br_if 1) + (i32.const 0) + (i32.const 0) + (i32.store align=4 offset=4364) + (i32.const 0) + (i32.const 0) + (i32.store align=4 offset=4356) + (get_local 2) + (get_local 0) + (i32.const 3) + (i32.or) + (i32.store align=4 offset=4) + (get_local 2) + (get_local 0) + (i32.add) + (tee_local 3) + (i32.const 4) + (i32.add) + (set_local 0) + (get_local 3) + (i32.load align=4 offset=4) + (i32.const 1) + (i32.or) + (set_local 3) + (br 2) + (end) + (memory.size 0) + (set_local 0) + (get_local 8) + (i32.const 65583) + (i32.add) + (i32.const 16) + (i32.shr_u) + (tee_local 2) + (memory.grow 0) + (drop) + (get_local 0) + (i32.const 16) + (i32.shl) + (tee_local 7) + (i32.eqz) + (br_if 2) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4372) + (get_local 2) + (i32.const 16) + (i32.shl) + (tee_local 4) + (i32.add) + (tee_local 0) + (i32.store align=4 offset=4372) + (i32.const 0) + (get_local 0) + (i32.const 0) + (i32.load align=4 offset=4376) + (tee_local 2) + (get_local 0) + (get_local 2) + (i32.ge_u) + (select) + (i32.store align=4 offset=4376) + (i32.const 0) + (i32.load align=4 offset=4368) + (tee_local 2) + (i32.eqz) + (br_if 5) + (i32.const 4380) + (set_local 0) + (loop emptyblock) + (get_local 7) + (get_local 0) + (i32.load align=4) + (tee_local 3) + (get_local 0) + (i32.load align=4 offset=4) + (tee_local 5) + (i32.add) + (i32.eq) + (br_if 7) + (get_local 0) + (i32.load align=4 offset=8) + (tee_local 0) + (br_if 0) + (br 18) + (end) + (unreachable) + (end) + (i32.const 0) + (get_local 3) + (i32.store align=4 offset=4356) + (i32.const 0) + (get_local 2) + (get_local 8) + (i32.add) + (tee_local 0) + (i32.store align=4 offset=4364) + (get_local 0) + (get_local 3) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 0) + (get_local 3) + (i32.add) + (get_local 3) + (i32.store align=4) + (get_local 8) + (i32.const 3) + (i32.or) + (set_local 3) + (get_local 2) + (i32.const 4) + (i32.add) + (set_local 0) + (end) + (get_local 0) + (get_local 3) + (i32.store align=4) + (get_local 2) + (i32.const 8) + (i32.add) + (return) + (end) + (i32.const 0) + (return) + (end) + (i32.const 0) + (get_local 7) + (i32.const -2) + (get_local 2) + (i32.rotl) + (i32.and) + (i32.store align=4 offset=3956) + (end) + (get_local 0) + (get_local 8) + (i32.const 3) + (i32.or) + (i32.store align=4 offset=4) + (get_local 0) + (get_local 8) + (i32.add) + (tee_local 7) + (get_local 2) + (i32.const 3) + (i32.shl) + (get_local 8) + (i32.sub) + (tee_local 2) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 7) + (get_local 2) + (i32.add) + (get_local 2) + (i32.store align=4) + (i32.const 0) + (i32.load align=4 offset=4356) + (tee_local 3) + (i32.eqz) + (br_if 5) + (get_local 3) + (i32.const 3) + (i32.shr_u) + (tee_local 5) + (i32.const 3) + (i32.shl) + (i32.const 3964) + (i32.add) + (set_local 8) + (i32.const 0) + (i32.load align=4 offset=4364) + (set_local 3) + (i32.const 0) + (i32.load align=4 offset=3956) + (tee_local 4) + (i32.const 1) + (get_local 5) + (i32.const 31) + (i32.and) + (i32.shl) + (tee_local 5) + (i32.and) + (i32.eqz) + (br_if 3) + (get_local 8) + (i32.load align=4 offset=8) + (set_local 5) + (br 4) + (end) + (block emptyblock) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=4400) + (tee_local 0) + (i32.eqz) + (br_if 0) + (get_local 7) + (get_local 0) + (i32.ge_u) + (br_if 1) + (end) + (i32.const 0) + (get_local 7) + (i32.store align=4 offset=4400) + (end) + (i32.const 0) + (set_local 0) + (i32.const 0) + (get_local 4) + (i32.store align=4 offset=4384) + (i32.const 0) + (get_local 7) + (i32.store align=4 offset=4380) + (i32.const 0) + (i32.const 4095) + (i32.store align=4 offset=4404) + (i32.const 0) + (i32.const 0) + (i32.store align=4 offset=4392) + (loop emptyblock) + (get_local 0) + (i32.const 3972) + (i32.add) + (get_local 0) + (i32.const 3964) + (i32.add) + (tee_local 2) + (i32.store align=4) + (get_local 0) + (i32.const 3976) + (i32.add) + (get_local 2) + (i32.store align=4) + (get_local 0) + (i32.const 8) + (i32.add) + (tee_local 0) + (i32.const 256) + (i32.ne) + (br_if 0) + (end) + (i32.const 0) + (get_local 7) + (i32.store align=4 offset=4368) + (i32.const 0) + (i32.const 2097152) + (i32.store align=4 offset=4396) + (i32.const 0) + (get_local 4) + (i32.const -40) + (i32.add) + (tee_local 0) + (i32.store align=4 offset=4360) + (get_local 7) + (get_local 0) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 7) + (get_local 0) + (i32.add) + (i32.const 40) + (i32.store align=4 offset=4) + (br 12) + (end) + (get_local 0) + (i32.load align=4 offset=12) + (i32.eqz) + (br_if 4) + (br 10) + (end) + (get_local 7) + (i32.const 20) + (i32.add) + (tee_local 0) + (get_local 7) + (i32.const 16) + (i32.add) + (get_local 0) + (i32.load align=4) + (select) + (tee_local 2) + (i32.load align=4) + (tee_local 0) + (i32.eqz) + (br_if 4) + (loop emptyblock) + (get_local 2) + (set_local 5) + (get_local 0) + (i32.const 20) + (i32.add) + (tee_local 2) + (get_local 0) + (i32.const 16) + (i32.add) + (get_local 2) + (i32.load align=4) + (select) + (tee_local 2) + (i32.load align=4) + (tee_local 0) + (br_if 0) + (end) + (get_local 5) + (i32.load align=4) + (set_local 0) + (get_local 5) + (i32.const 0) + (i32.store align=4) + (get_local 4) + (br_if 5) + (br 6) + (end) + (i32.const 0) + (get_local 4) + (get_local 5) + (i32.or) + (i32.store align=4 offset=3956) + (get_local 8) + (set_local 5) + (end) + (get_local 8) + (i32.const 8) + (i32.add) + (get_local 3) + (i32.store align=4) + (get_local 5) + (get_local 3) + (i32.store align=4 offset=12) + (get_local 3) + (get_local 8) + (i32.store align=4 offset=12) + (get_local 3) + (get_local 5) + (i32.store align=4 offset=8) + (end) + (i32.const 0) + (get_local 7) + (i32.store align=4 offset=4364) + (i32.const 0) + (get_local 2) + (i32.store align=4 offset=4356) + (get_local 0) + (i32.const 8) + (i32.add) + (return) + (end) + (get_local 7) + (get_local 2) + (i32.le_u) + (br_if 5) + (get_local 3) + (get_local 2) + (i32.gt_u) + (br_if 5) + (get_local 0) + (i32.const 4) + (i32.add) + (get_local 5) + (get_local 4) + (i32.add) + (i32.store align=4) + (i32.const 0) + (i32.load align=4 offset=4368) + (tee_local 2) + (i32.const 15) + (i32.add) + (i32.const -8) + (i32.and) + (tee_local 3) + (i32.const -8) + (i32.add) + (tee_local 0) + (i32.const 0) + (i32.load align=4 offset=4360) + (get_local 4) + (i32.add) + (get_local 3) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.sub) + (i32.sub) + (tee_local 2) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (i32.const 0) + (get_local 0) + (i32.store align=4 offset=4368) + (i32.const 0) + (get_local 2) + (i32.store align=4 offset=4360) + (get_local 0) + (get_local 2) + (i32.add) + (i32.const 40) + (i32.store align=4 offset=4) + (i32.const 0) + (i32.const 2097152) + (i32.store align=4 offset=4396) + (br 6) + (end) + (i32.const 0) + (set_local 0) + (get_local 4) + (i32.eqz) + (br_if 1) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 7) + (i32.load align=4 offset=28) + (tee_local 5) + (i32.const 2) + (i32.shl) + (i32.const 4228) + (i32.add) + (tee_local 2) + (i32.load align=4) + (get_local 7) + (i32.eq) + (br_if 0) + (get_local 4) + (i32.const 16) + (i32.add) + (get_local 4) + (i32.load align=4 offset=16) + (get_local 7) + (i32.ne) + (i32.const 2) + (i32.shl) + (i32.add) + (get_local 0) + (i32.store align=4) + (get_local 0) + (br_if 1) + (br 3) + (end) + (get_local 2) + (get_local 0) + (i32.store align=4) + (get_local 0) + (i32.eqz) + (br_if 1) + (end) + (get_local 0) + (get_local 4) + (i32.store align=4 offset=24) + (block emptyblock) + (get_local 7) + (i32.load align=4 offset=16) + (tee_local 2) + (i32.eqz) + (br_if 0) + (get_local 0) + (get_local 2) + (i32.store align=4 offset=16) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=24) + (end) + (get_local 7) + (i32.const 20) + (i32.add) + (i32.load align=4) + (tee_local 2) + (i32.eqz) + (br_if 1) + (get_local 0) + (i32.const 20) + (i32.add) + (get_local 2) + (i32.store align=4) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=24) + (br 1) + (end) + (i32.const 0) + (get_local 1) + (i32.const -2) + (get_local 5) + (i32.rotl) + (i32.and) + (i32.store align=4 offset=3960) + (end) + (block emptyblock) + (block emptyblock) + (get_local 3) + (i32.const 15) + (i32.gt_u) + (br_if 0) + (get_local 7) + (i32.const 4) + (i32.add) + (get_local 6) + (i32.const 3) + (i32.or) + (i32.store align=4) + (get_local 7) + (get_local 6) + (i32.add) + (tee_local 0) + (get_local 0) + (i32.load align=4 offset=4) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (br 1) + (end) + (get_local 7) + (i32.const 4) + (i32.add) + (get_local 8) + (i32.const 3) + (i32.or) + (i32.store align=4) + (get_local 7) + (get_local 8) + (i32.add) + (tee_local 2) + (get_local 3) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 2) + (get_local 3) + (i32.add) + (get_local 3) + (i32.store align=4) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 3) + (i32.const 255) + (i32.gt_u) + (br_if 0) + (get_local 3) + (i32.const 3) + (i32.shr_u) + (tee_local 3) + (i32.const 3) + (i32.shl) + (i32.const 3964) + (i32.add) + (set_local 0) + (i32.const 0) + (i32.load align=4 offset=3956) + (tee_local 8) + (i32.const 1) + (get_local 3) + (i32.const 31) + (i32.and) + (i32.shl) + (tee_local 3) + (i32.and) + (i32.eqz) + (br_if 1) + (get_local 0) + (i32.const 8) + (i32.add) + (set_local 8) + (get_local 0) + (i32.load align=4 offset=8) + (set_local 3) + (br 2) + (end) + (i32.const 0) + (set_local 0) + (block emptyblock) + (get_local 3) + (i32.const 8) + (i32.shr_u) + (tee_local 8) + (i32.eqz) + (br_if 0) + (i32.const 31) + (set_local 0) + (get_local 3) + (i32.const 16777215) + (i32.gt_u) + (br_if 0) + (get_local 3) + (i32.const 38) + (get_local 8) + (i32.clz) + (tee_local 0) + (i32.sub) + (i32.const 31) + (i32.and) + (i32.shr_u) + (i32.const 1) + (i32.and) + (i32.const 31) + (get_local 0) + (i32.sub) + (i32.const 1) + (i32.shl) + (i32.or) + (set_local 0) + (end) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=28) + (get_local 2) + (i64.const 0) + (i64.store align=4 offset=16) + (get_local 0) + (i32.const 2) + (i32.shl) + (i32.const 4228) + (i32.add) + (set_local 8) + (i32.const 0) + (i32.load align=4 offset=3960) + (tee_local 5) + (i32.const 1) + (get_local 0) + (i32.const 31) + (i32.and) + (i32.shl) + (tee_local 4) + (i32.and) + (i32.eqz) + (br_if 2) + (get_local 8) + (i32.load align=4) + (tee_local 5) + (i32.load align=4 offset=4) + (i32.const -8) + (i32.and) + (get_local 3) + (i32.ne) + (br_if 3) + (get_local 5) + (set_local 0) + (br 4) + (end) + (i32.const 0) + (get_local 8) + (get_local 3) + (i32.or) + (i32.store align=4 offset=3956) + (get_local 0) + (i32.const 8) + (i32.add) + (set_local 8) + (get_local 0) + (set_local 3) + (end) + (get_local 8) + (get_local 2) + (i32.store align=4) + (get_local 3) + (get_local 2) + (i32.store align=4 offset=12) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 2) + (get_local 3) + (i32.store align=4 offset=8) + (br 5) + (end) + (get_local 8) + (get_local 2) + (i32.store align=4) + (i32.const 0) + (get_local 5) + (get_local 4) + (i32.or) + (i32.store align=4 offset=3960) + (get_local 2) + (get_local 8) + (i32.store align=4 offset=24) + (br 3) + (end) + (get_local 3) + (i32.const 0) + (i32.const 25) + (get_local 0) + (i32.const 1) + (i32.shr_u) + (i32.sub) + (i32.const 31) + (i32.and) + (get_local 0) + (i32.const 31) + (i32.eq) + (select) + (i32.shl) + (set_local 8) + (loop emptyblock) + (get_local 5) + (get_local 8) + (i32.const 29) + (i32.shr_u) + (i32.const 4) + (i32.and) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 4) + (i32.load align=4) + (tee_local 0) + (i32.eqz) + (br_if 2) + (get_local 8) + (i32.const 1) + (i32.shl) + (set_local 8) + (get_local 0) + (set_local 5) + (get_local 0) + (i32.load align=4 offset=4) + (i32.const -8) + (i32.and) + (get_local 3) + (i32.ne) + (br_if 0) + (end) + (end) + (get_local 0) + (i32.load align=4 offset=8) + (tee_local 3) + (get_local 2) + (i32.store align=4 offset=12) + (get_local 0) + (get_local 2) + (i32.store align=4 offset=8) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 2) + (get_local 3) + (i32.store align=4 offset=8) + (get_local 2) + (i32.const 0) + (i32.store align=4 offset=24) + (br 2) + (end) + (get_local 4) + (get_local 2) + (i32.store align=4) + (get_local 2) + (get_local 5) + (i32.store align=4 offset=24) + (end) + (get_local 2) + (get_local 2) + (i32.store align=4 offset=12) + (get_local 2) + (get_local 2) + (i32.store align=4 offset=8) + (end) + (get_local 7) + (i32.const 8) + (i32.add) + (return) + (end) + (i32.const 1) + (set_local 10) + (end) + (loop emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 10) + (br_table [Ref(space=label,index=0,name=None), Ref(space=label,index=1,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=3,name=None), Ref(space=label,index=8,name=None), Ref(space=label,index=9,name=None), Ref(space=label,index=11,name=None), Ref(space=label,index=12,name=None), Ref(space=label,index=13,name=None), Ref(space=label,index=14,name=None), Ref(space=label,index=16,name=None), Ref(space=label,index=18,name=None), Ref(space=label,index=19,name=None), Ref(space=label,index=20,name=None), Ref(space=label,index=22,name=None), Ref(space=label,index=23,name=None), Ref(space=label,index=24,name=None), Ref(space=label,index=21,name=None), Ref(space=label,index=17,name=None), Ref(space=label,index=10,name=None), Ref(space=label,index=15,name=None), Ref(space=label,index=4,name=None), Ref(space=label,index=5,name=None), Ref(space=label,index=6,name=None), Ref(space=label,index=7,name=None), Ref(space=label,index=7,name=None)]) + (end) + (get_local 0) + (i32.load align=4 offset=4) + (i32.const -8) + (i32.and) + (get_local 8) + (i32.sub) + (tee_local 7) + (get_local 2) + (get_local 7) + (get_local 2) + (i32.lt_u) + (tee_local 7) + (select) + (set_local 2) + (get_local 0) + (get_local 3) + (get_local 7) + (select) + (set_local 3) + (get_local 0) + (tee_local 7) + (i32.load align=4 offset=16) + (tee_local 0) + (br_if 24) + (i32.const 1) + (set_local 10) + (br 46) + (end) + (get_local 7) + (i32.const 20) + (i32.add) + (i32.load align=4) + (tee_local 0) + (br_if 24) + (i32.const 2) + (set_local 10) + (br 45) + (end) + (get_local 3) + (i32.load align=4 offset=24) + (set_local 9) + (get_local 3) + (i32.load align=4 offset=12) + (tee_local 0) + (get_local 3) + (i32.eq) + (br_if 24) + (i32.const 3) + (set_local 10) + (br 44) + (end) + (get_local 3) + (i32.load align=4 offset=8) + (tee_local 7) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 0) + (get_local 7) + (i32.store align=4 offset=8) + (get_local 9) + (br_if 25) + (br 24) + (end) + (get_local 3) + (i32.const 20) + (i32.add) + (tee_local 0) + (get_local 3) + (i32.const 16) + (i32.add) + (get_local 0) + (i32.load align=4) + (select) + (tee_local 7) + (i32.load align=4) + (tee_local 0) + (i32.eqz) + (br_if 41) + (i32.const 22) + (set_local 10) + (br 42) + (end) + (get_local 7) + (set_local 5) + (get_local 0) + (i32.const 20) + (i32.add) + (tee_local 7) + (get_local 0) + (i32.const 16) + (i32.add) + (get_local 7) + (i32.load align=4) + (select) + (tee_local 7) + (i32.load align=4) + (tee_local 0) + (br_if 39) + (i32.const 23) + (set_local 10) + (br 41) + (end) + (get_local 5) + (i32.load align=4) + (set_local 0) + (get_local 5) + (i32.const 0) + (i32.store align=4) + (get_local 9) + (br_if 24) + (br 23) + (end) + (i32.const 0) + (set_local 0) + (get_local 9) + (i32.eqz) + (br_if 24) + (i32.const 4) + (set_local 10) + (br 39) + (end) + (get_local 3) + (i32.load align=4 offset=28) + (tee_local 5) + (i32.const 2) + (i32.shl) + (i32.const 4228) + (i32.add) + (tee_local 7) + (i32.load align=4) + (get_local 3) + (i32.eq) + (br_if 24) + (i32.const 5) + (set_local 10) + (br 38) + (end) + (get_local 9) + (i32.const 16) + (i32.add) + (get_local 9) + (i32.load align=4 offset=16) + (get_local 3) + (i32.ne) + (i32.const 2) + (i32.shl) + (i32.add) + (get_local 0) + (i32.store align=4) + (get_local 0) + (br_if 25) + (br 24) + (end) + (get_local 7) + (get_local 0) + (i32.store align=4) + (get_local 0) + (i32.eqz) + (br_if 25) + (i32.const 6) + (set_local 10) + (br 36) + (end) + (get_local 0) + (get_local 9) + (i32.store align=4 offset=24) + (get_local 3) + (i32.load align=4 offset=16) + (tee_local 7) + (i32.eqz) + (br_if 25) + (i32.const 7) + (set_local 10) + (br 35) + (end) + (get_local 0) + (get_local 7) + (i32.store align=4 offset=16) + (get_local 7) + (get_local 0) + (i32.store align=4 offset=24) + (i32.const 8) + (set_local 10) + (br 34) + (end) + (get_local 3) + (i32.const 20) + (i32.add) + (i32.load align=4) + (tee_local 7) + (i32.eqz) + (br_if 24) + (i32.const 9) + (set_local 10) + (br 33) + (end) + (get_local 0) + (i32.const 20) + (i32.add) + (get_local 7) + (i32.store align=4) + (get_local 7) + (get_local 0) + (i32.store align=4 offset=24) + (br 24) + (end) + (i32.const 0) + (get_local 4) + (i32.const -2) + (get_local 5) + (i32.rotl) + (i32.and) + (i32.store align=4 offset=3960) + (i32.const 10) + (set_local 10) + (br 31) + (end) + (get_local 2) + (i32.const 16) + (i32.ge_u) + (br_if 23) + (i32.const 18) + (set_local 10) + (br 30) + (end) + (get_local 3) + (get_local 2) + (get_local 8) + (i32.add) + (tee_local 0) + (i32.const 3) + (i32.or) + (i32.store align=4 offset=4) + (get_local 3) + (get_local 0) + (i32.add) + (tee_local 0) + (get_local 0) + (i32.load align=4 offset=4) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (br 26) + (end) + (get_local 3) + (get_local 8) + (i32.const 3) + (i32.or) + (i32.store align=4 offset=4) + (get_local 3) + (get_local 8) + (i32.add) + (tee_local 8) + (get_local 2) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 8) + (get_local 2) + (i32.add) + (get_local 2) + (i32.store align=4) + (i32.const 0) + (i32.load align=4 offset=4356) + (tee_local 0) + (i32.eqz) + (br_if 22) + (i32.const 12) + (set_local 10) + (br 28) + (end) + (get_local 0) + (i32.const 3) + (i32.shr_u) + (tee_local 5) + (i32.const 3) + (i32.shl) + (i32.const 3964) + (i32.add) + (set_local 7) + (i32.const 0) + (i32.load align=4 offset=4364) + (set_local 0) + (i32.const 0) + (i32.load align=4 offset=3956) + (tee_local 4) + (i32.const 1) + (get_local 5) + (i32.const 31) + (i32.and) + (i32.shl) + (tee_local 5) + (i32.and) + (i32.eqz) + (br_if 22) + (i32.const 13) + (set_local 10) + (br 27) + (end) + (get_local 7) + (i32.load align=4 offset=8) + (set_local 5) + (br 22) + (end) + (i32.const 0) + (get_local 4) + (get_local 5) + (i32.or) + (i32.store align=4 offset=3956) + (get_local 7) + (set_local 5) + (i32.const 14) + (set_local 10) + (br 25) + (end) + (get_local 7) + (i32.const 8) + (i32.add) + (get_local 0) + (i32.store align=4) + (get_local 5) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 0) + (get_local 7) + (i32.store align=4 offset=12) + (get_local 0) + (get_local 5) + (i32.store align=4 offset=8) + (i32.const 15) + (set_local 10) + (br 24) + (end) + (i32.const 0) + (get_local 8) + (i32.store align=4 offset=4364) + (i32.const 0) + (get_local 2) + (i32.store align=4 offset=4356) + (i32.const 16) + (set_local 10) + (br 23) + (end) + (get_local 3) + (i32.const 8) + (i32.add) + (return) + (end) + (i32.const 0) + (set_local 10) + (br 21) + (end) + (i32.const 0) + (set_local 10) + (br 20) + (end) + (i32.const 21) + (set_local 10) + (br 19) + (end) + (i32.const 10) + (set_local 10) + (br 18) + (end) + (i32.const 4) + (set_local 10) + (br 17) + (end) + (i32.const 10) + (set_local 10) + (br 16) + (end) + (i32.const 4) + (set_local 10) + (br 15) + (end) + (i32.const 10) + (set_local 10) + (br 14) + (end) + (i32.const 19) + (set_local 10) + (br 13) + (end) + (i32.const 10) + (set_local 10) + (br 12) + (end) + (i32.const 6) + (set_local 10) + (br 11) + (end) + (i32.const 20) + (set_local 10) + (br 10) + (end) + (i32.const 8) + (set_local 10) + (br 9) + (end) + (i32.const 10) + (set_local 10) + (br 8) + (end) + (i32.const 10) + (set_local 10) + (br 7) + (end) + (i32.const 11) + (set_local 10) + (br 6) + (end) + (i32.const 15) + (set_local 10) + (br 5) + (end) + (i32.const 17) + (set_local 10) + (br 4) + (end) + (i32.const 14) + (set_local 10) + (br 3) + (end) + (i32.const 16) + (set_local 10) + (br 2) + (end) + (i32.const 22) + (set_local 10) + (br 1) + (end) + (i32.const 24) + (set_local 10) + (br 0) + (end) + (unreachable) + (end) + (i32.const 0) + (get_local 7) + (i32.const 0) + (i32.load align=4 offset=4400) + (tee_local 0) + (get_local 7) + (get_local 0) + (i32.le_u) + (select) + (i32.store align=4 offset=4400) + (get_local 7) + (get_local 4) + (i32.add) + (set_local 3) + (i32.const 4380) + (set_local 0) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (loop emptyblock) + (get_local 0) + (i32.load align=4) + (get_local 3) + (i32.eq) + (br_if 1) + (get_local 0) + (i32.load align=4 offset=8) + (tee_local 0) + (br_if 0) + (br 2) + (end) + (unreachable) + (end) + (get_local 0) + (i32.load align=4 offset=12) + (i32.eqz) + (br_if 1) + (end) + (i32.const 4380) + (set_local 0) + (block emptyblock) + (loop emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4) + (tee_local 3) + (get_local 2) + (i32.gt_u) + (br_if 0) + (get_local 3) + (get_local 0) + (i32.load align=4 offset=4) + (i32.add) + (tee_local 3) + (get_local 2) + (i32.gt_u) + (br_if 2) + (end) + (get_local 0) + (i32.load align=4 offset=8) + (set_local 0) + (br 0) + (end) + (unreachable) + (end) + (get_local 7) + (get_local 4) + (i32.const -40) + (i32.add) + (tee_local 0) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 7) + (get_local 0) + (i32.add) + (i32.const 40) + (i32.store align=4 offset=4) + (i32.const 0) + (get_local 7) + (i32.store align=4 offset=4368) + (i32.const 0) + (i32.const 2097152) + (i32.store align=4 offset=4396) + (i32.const 0) + (get_local 0) + (i32.store align=4 offset=4360) + (get_local 2) + (get_local 3) + (i32.const -32) + (i32.add) + (i32.const -8) + (i32.and) + (i32.const -8) + (i32.add) + (tee_local 0) + (get_local 0) + (get_local 2) + (i32.const 16) + (i32.add) + (i32.lt_u) + (select) + (tee_local 5) + (i32.const 27) + (i32.store align=4 offset=4) + (i32.const 0) + (i64.load align=4 offset=4380) + (set_local 11) + (get_local 5) + (i32.const 16) + (i32.add) + (i32.const 0) + (i64.load align=4 offset=4388) + (tee_local 12) + (i64.store align=4) + (get_local 9) + (i32.const 8) + (i32.add) + (get_local 12) + (i64.store align=8) + (get_local 5) + (get_local 11) + (i64.store align=4 offset=8) + (get_local 9) + (get_local 11) + (i64.store align=8) + (i32.const 0) + (get_local 4) + (i32.store align=4 offset=4384) + (i32.const 0) + (get_local 7) + (i32.store align=4 offset=4380) + (i32.const 0) + (get_local 5) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=4388) + (i32.const 0) + (i32.const 0) + (i32.store align=4 offset=4392) + (get_local 5) + (i32.const 28) + (i32.add) + (set_local 0) + (loop emptyblock) + (get_local 0) + (i32.const 7) + (i32.store align=4) + (get_local 0) + (i32.const 4) + (i32.add) + (tee_local 0) + (get_local 3) + (i32.lt_u) + (br_if 0) + (end) + (get_local 5) + (get_local 2) + (i32.eq) + (br_if 9) + (get_local 5) + (get_local 5) + (i32.load align=4 offset=4) + (i32.const -2) + (i32.and) + (i32.store align=4 offset=4) + (get_local 2) + (get_local 5) + (get_local 2) + (i32.sub) + (tee_local 7) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 5) + (get_local 7) + (i32.store align=4) + (block emptyblock) + (get_local 7) + (i32.const 255) + (i32.gt_u) + (br_if 0) + (get_local 7) + (i32.const 3) + (i32.shr_u) + (tee_local 3) + (i32.const 3) + (i32.shl) + (i32.const 3964) + (i32.add) + (set_local 0) + (i32.const 0) + (i32.load align=4 offset=3956) + (tee_local 7) + (i32.const 1) + (get_local 3) + (i32.const 31) + (i32.and) + (i32.shl) + (tee_local 3) + (i32.and) + (i32.eqz) + (br_if 2) + (get_local 0) + (i32.load align=4 offset=8) + (set_local 3) + (br 3) + (end) + (i32.const 0) + (set_local 0) + (block emptyblock) + (get_local 7) + (i32.const 8) + (i32.shr_u) + (tee_local 3) + (i32.eqz) + (br_if 0) + (i32.const 31) + (set_local 0) + (get_local 7) + (i32.const 16777215) + (i32.gt_u) + (br_if 0) + (get_local 7) + (i32.const 38) + (get_local 3) + (i32.clz) + (tee_local 0) + (i32.sub) + (i32.const 31) + (i32.and) + (i32.shr_u) + (i32.const 1) + (i32.and) + (i32.const 31) + (get_local 0) + (i32.sub) + (i32.const 1) + (i32.shl) + (i32.or) + (set_local 0) + (end) + (get_local 2) + (i64.const 0) + (i64.store align=4 offset=16) + (get_local 2) + (i32.const 28) + (i32.add) + (get_local 0) + (i32.store align=4) + (get_local 0) + (i32.const 2) + (i32.shl) + (i32.const 4228) + (i32.add) + (set_local 3) + (i32.const 0) + (i32.load align=4 offset=3960) + (tee_local 5) + (i32.const 1) + (get_local 0) + (i32.const 31) + (i32.and) + (i32.shl) + (tee_local 4) + (i32.and) + (i32.eqz) + (br_if 3) + (get_local 3) + (i32.load align=4) + (tee_local 5) + (i32.load align=4 offset=4) + (i32.const -8) + (i32.and) + (get_local 7) + (i32.ne) + (br_if 4) + (get_local 5) + (set_local 0) + (br 5) + (end) + (get_local 0) + (get_local 7) + (i32.store align=4) + (get_local 0) + (get_local 0) + (i32.load align=4 offset=4) + (get_local 4) + (i32.add) + (i32.store align=4 offset=4) + (get_local 7) + (get_local 8) + (i32.const 3) + (i32.or) + (i32.store align=4 offset=4) + (get_local 7) + (get_local 8) + (i32.add) + (set_local 0) + (get_local 3) + (get_local 7) + (i32.sub) + (get_local 8) + (i32.sub) + (set_local 2) + (get_local 3) + (i32.const 0) + (i32.load align=4 offset=4368) + (i32.eq) + (br_if 5) + (get_local 3) + (i32.const 0) + (i32.load align=4 offset=4364) + (i32.eq) + (br_if 6) + (get_local 3) + (i32.load align=4 offset=4) + (tee_local 8) + (i32.const 3) + (i32.and) + (i32.const 1) + (i32.ne) + (br_if 15) + (get_local 8) + (i32.const -8) + (i32.and) + (tee_local 9) + (i32.const 255) + (i32.gt_u) + (br_if 10) + (get_local 3) + (i32.load align=4 offset=12) + (tee_local 5) + (get_local 3) + (i32.load align=4 offset=8) + (tee_local 4) + (i32.eq) + (br_if 11) + (get_local 4) + (get_local 5) + (i32.store align=4 offset=12) + (get_local 5) + (get_local 4) + (i32.store align=4 offset=8) + (br 14) + (end) + (i32.const 0) + (get_local 7) + (get_local 3) + (i32.or) + (i32.store align=4 offset=3956) + (get_local 0) + (set_local 3) + (end) + (get_local 0) + (i32.const 8) + (i32.add) + (get_local 2) + (i32.store align=4) + (get_local 3) + (get_local 2) + (i32.store align=4 offset=12) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 2) + (get_local 3) + (i32.store align=4 offset=8) + (br 6) + (end) + (get_local 3) + (get_local 2) + (i32.store align=4) + (i32.const 0) + (get_local 5) + (get_local 4) + (i32.or) + (i32.store align=4 offset=3960) + (get_local 2) + (i32.const 24) + (i32.add) + (get_local 3) + (i32.store align=4) + (get_local 2) + (get_local 2) + (i32.store align=4 offset=8) + (get_local 2) + (get_local 2) + (i32.store align=4 offset=12) + (br 5) + (end) + (get_local 7) + (i32.const 0) + (i32.const 25) + (get_local 0) + (i32.const 1) + (i32.shr_u) + (i32.sub) + (i32.const 31) + (i32.and) + (get_local 0) + (i32.const 31) + (i32.eq) + (select) + (i32.shl) + (set_local 3) + (loop emptyblock) + (get_local 5) + (get_local 3) + (i32.const 29) + (i32.shr_u) + (i32.const 4) + (i32.and) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 4) + (i32.load align=4) + (tee_local 0) + (i32.eqz) + (br_if 4) + (get_local 3) + (i32.const 1) + (i32.shl) + (set_local 3) + (get_local 0) + (set_local 5) + (get_local 0) + (i32.load align=4 offset=4) + (i32.const -8) + (i32.and) + (get_local 7) + (i32.ne) + (br_if 0) + (end) + (end) + (get_local 0) + (i32.load align=4 offset=8) + (tee_local 3) + (get_local 2) + (i32.store align=4 offset=12) + (get_local 0) + (get_local 2) + (i32.store align=4 offset=8) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 2) + (get_local 3) + (i32.store align=4 offset=8) + (get_local 2) + (i32.const 24) + (i32.add) + (i32.const 0) + (i32.store align=4) + (br 3) + (end) + (i32.const 0) + (get_local 0) + (i32.store align=4 offset=4368) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4360) + (get_local 2) + (i32.add) + (tee_local 2) + (i32.store align=4 offset=4360) + (get_local 0) + (get_local 2) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (br 10) + (end) + (get_local 0) + (i32.const 0) + (i32.load align=4 offset=4356) + (get_local 2) + (i32.add) + (tee_local 2) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (i32.const 0) + (get_local 0) + (i32.store align=4 offset=4364) + (i32.const 0) + (get_local 2) + (i32.store align=4 offset=4356) + (get_local 0) + (get_local 2) + (i32.add) + (get_local 2) + (i32.store align=4) + (br 9) + (end) + (get_local 4) + (get_local 2) + (i32.store align=4) + (get_local 2) + (i32.const 24) + (i32.add) + (get_local 5) + (i32.store align=4) + (get_local 2) + (get_local 2) + (i32.store align=4 offset=12) + (get_local 2) + (get_local 2) + (i32.store align=4 offset=8) + (end) + (i32.const 0) + (set_local 2) + (i32.const 0) + (i32.load align=4 offset=4360) + (tee_local 0) + (get_local 8) + (i32.le_u) + (br_if 0) + (i32.const 0) + (get_local 0) + (get_local 8) + (i32.sub) + (tee_local 2) + (i32.store align=4 offset=4360) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4368) + (tee_local 0) + (get_local 8) + (i32.add) + (tee_local 3) + (i32.store align=4 offset=4368) + (get_local 3) + (get_local 2) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 0) + (get_local 8) + (i32.const 3) + (i32.or) + (i32.store align=4 offset=4) + (get_local 0) + (i32.const 8) + (i32.add) + (return) + (end) + (get_local 2) + (return) + (end) + (get_local 3) + (i32.load align=4 offset=24) + (set_local 6) + (get_local 3) + (i32.load align=4 offset=12) + (tee_local 8) + (get_local 3) + (i32.eq) + (br_if 1) + (get_local 3) + (i32.load align=4 offset=8) + (tee_local 5) + (get_local 8) + (i32.store align=4 offset=12) + (get_local 8) + (get_local 5) + (i32.store align=4 offset=8) + (get_local 6) + (br_if 2) + (br 3) + (end) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=3956) + (i32.const -2) + (get_local 8) + (i32.const 3) + (i32.shr_u) + (i32.rotl) + (i32.and) + (i32.store align=4 offset=3956) + (br 2) + (end) + (block emptyblock) + (get_local 3) + (i32.const 20) + (i32.add) + (get_local 3) + (i32.const 16) + (i32.add) + (get_local 3) + (i32.load align=4 offset=20) + (select) + (tee_local 5) + (i32.load align=4) + (tee_local 8) + (i32.eqz) + (br_if 0) + (loop emptyblock) + (get_local 5) + (set_local 4) + (get_local 8) + (i32.const 20) + (i32.add) + (tee_local 5) + (get_local 8) + (i32.const 16) + (i32.add) + (get_local 5) + (i32.load align=4) + (select) + (tee_local 5) + (i32.load align=4) + (tee_local 8) + (br_if 0) + (end) + (get_local 4) + (i32.load align=4) + (set_local 8) + (get_local 4) + (i32.const 0) + (i32.store align=4) + (get_local 6) + (br_if 1) + (br 2) + (end) + (i32.const 0) + (set_local 8) + (get_local 6) + (i32.eqz) + (br_if 1) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 3) + (i32.load align=4 offset=28) + (tee_local 4) + (i32.const 2) + (i32.shl) + (i32.const 4228) + (i32.add) + (tee_local 5) + (i32.load align=4) + (get_local 3) + (i32.eq) + (br_if 0) + (get_local 6) + (i32.const 16) + (i32.add) + (get_local 6) + (i32.load align=4 offset=16) + (get_local 3) + (i32.ne) + (i32.const 2) + (i32.shl) + (i32.add) + (get_local 8) + (i32.store align=4) + (get_local 8) + (br_if 1) + (br 3) + (end) + (get_local 5) + (get_local 8) + (i32.store align=4) + (get_local 8) + (i32.eqz) + (br_if 1) + (end) + (get_local 8) + (get_local 6) + (i32.store align=4 offset=24) + (block emptyblock) + (get_local 3) + (i32.load align=4 offset=16) + (tee_local 5) + (i32.eqz) + (br_if 0) + (get_local 8) + (get_local 5) + (i32.store align=4 offset=16) + (get_local 5) + (get_local 8) + (i32.store align=4 offset=24) + (end) + (get_local 3) + (i32.load align=4 offset=20) + (tee_local 5) + (i32.eqz) + (br_if 1) + (get_local 8) + (i32.const 20) + (i32.add) + (get_local 5) + (i32.store align=4) + (get_local 5) + (get_local 8) + (i32.store align=4 offset=24) + (br 1) + (end) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=3960) + (i32.const -2) + (get_local 4) + (i32.rotl) + (i32.and) + (i32.store align=4 offset=3960) + (end) + (get_local 9) + (get_local 2) + (i32.add) + (set_local 2) + (get_local 3) + (get_local 9) + (i32.add) + (set_local 3) + (end) + (get_local 3) + (get_local 3) + (i32.load align=4 offset=4) + (i32.const -2) + (i32.and) + (i32.store align=4 offset=4) + (get_local 0) + (get_local 2) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 0) + (get_local 2) + (i32.add) + (get_local 2) + (i32.store align=4) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.const 255) + (i32.gt_u) + (br_if 0) + (get_local 2) + (i32.const 3) + (i32.shr_u) + (tee_local 3) + (i32.const 3) + (i32.shl) + (i32.const 3964) + (i32.add) + (set_local 2) + (i32.const 0) + (i32.load align=4 offset=3956) + (tee_local 8) + (i32.const 1) + (get_local 3) + (i32.const 31) + (i32.and) + (i32.shl) + (tee_local 3) + (i32.and) + (i32.eqz) + (br_if 1) + (get_local 2) + (i32.const 8) + (i32.add) + (set_local 8) + (get_local 2) + (i32.load align=4 offset=8) + (set_local 3) + (br 2) + (end) + (i32.const 0) + (set_local 3) + (block emptyblock) + (get_local 2) + (i32.const 8) + (i32.shr_u) + (tee_local 8) + (i32.eqz) + (br_if 0) + (i32.const 31) + (set_local 3) + (get_local 2) + (i32.const 16777215) + (i32.gt_u) + (br_if 0) + (get_local 2) + (i32.const 38) + (get_local 8) + (i32.clz) + (tee_local 3) + (i32.sub) + (i32.const 31) + (i32.and) + (i32.shr_u) + (i32.const 1) + (i32.and) + (i32.const 31) + (get_local 3) + (i32.sub) + (i32.const 1) + (i32.shl) + (i32.or) + (set_local 3) + (end) + (get_local 0) + (get_local 3) + (i32.store align=4 offset=28) + (get_local 0) + (i64.const 0) + (i64.store align=4 offset=16) + (get_local 3) + (i32.const 2) + (i32.shl) + (i32.const 4228) + (i32.add) + (set_local 8) + (i32.const 0) + (i32.load align=4 offset=3960) + (tee_local 5) + (i32.const 1) + (get_local 3) + (i32.const 31) + (i32.and) + (i32.shl) + (tee_local 4) + (i32.and) + (i32.eqz) + (br_if 2) + (get_local 8) + (i32.load align=4) + (tee_local 5) + (i32.load align=4 offset=4) + (i32.const -8) + (i32.and) + (get_local 2) + (i32.ne) + (br_if 3) + (get_local 5) + (set_local 3) + (br 4) + (end) + (i32.const 0) + (get_local 8) + (get_local 3) + (i32.or) + (i32.store align=4 offset=3956) + (get_local 2) + (i32.const 8) + (i32.add) + (set_local 8) + (get_local 2) + (set_local 3) + (end) + (get_local 8) + (get_local 0) + (i32.store align=4) + (get_local 3) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 0) + (get_local 2) + (i32.store align=4 offset=12) + (get_local 0) + (get_local 3) + (i32.store align=4 offset=8) + (br 5) + (end) + (get_local 8) + (get_local 0) + (i32.store align=4) + (i32.const 0) + (get_local 5) + (get_local 4) + (i32.or) + (i32.store align=4 offset=3960) + (get_local 0) + (get_local 8) + (i32.store align=4 offset=24) + (br 3) + (end) + (get_local 2) + (i32.const 0) + (i32.const 25) + (get_local 3) + (i32.const 1) + (i32.shr_u) + (i32.sub) + (i32.const 31) + (i32.and) + (get_local 3) + (i32.const 31) + (i32.eq) + (select) + (i32.shl) + (set_local 8) + (loop emptyblock) + (get_local 5) + (get_local 8) + (i32.const 29) + (i32.shr_u) + (i32.const 4) + (i32.and) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 4) + (i32.load align=4) + (tee_local 3) + (i32.eqz) + (br_if 2) + (get_local 8) + (i32.const 1) + (i32.shl) + (set_local 8) + (get_local 3) + (set_local 5) + (get_local 3) + (i32.load align=4 offset=4) + (i32.const -8) + (i32.and) + (get_local 2) + (i32.ne) + (br_if 0) + (end) + (end) + (get_local 3) + (i32.load align=4 offset=8) + (tee_local 2) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 3) + (get_local 0) + (i32.store align=4 offset=8) + (get_local 0) + (get_local 3) + (i32.store align=4 offset=12) + (get_local 0) + (get_local 2) + (i32.store align=4 offset=8) + (get_local 0) + (i32.const 0) + (i32.store align=4 offset=24) + (br 2) + (end) + (get_local 4) + (get_local 0) + (i32.store align=4) + (get_local 0) + (get_local 5) + (i32.store align=4 offset=24) + (end) + (get_local 0) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 0) + (get_local 0) + (i32.store align=4 offset=8) + (end) + (get_local 7) + (i32.const 8) + (i32.add) + ) + (func 108 (type 5) (local i32 i32 i32 i32 i32) + (get_local 0) + (get_local 1) + (i32.add) + (set_local 6) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (tee_local 5) + (i32.const 1) + (i32.and) + (br_if 0) + (get_local 5) + (i32.const 3) + (i32.and) + (i32.eqz) + (br_if 1) + (get_local 0) + (i32.load align=4) + (tee_local 5) + (get_local 1) + (i32.add) + (set_local 1) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (get_local 5) + (i32.sub) + (tee_local 0) + (i32.const 0) + (i32.load align=4 offset=4364) + (i32.eq) + (br_if 0) + (get_local 5) + (i32.const 255) + (i32.gt_u) + (br_if 1) + (get_local 0) + (i32.load align=4 offset=12) + (tee_local 4) + (get_local 0) + (i32.load align=4 offset=8) + (tee_local 3) + (i32.eq) + (br_if 2) + (get_local 3) + (get_local 4) + (i32.store align=4 offset=12) + (get_local 4) + (get_local 3) + (i32.store align=4 offset=8) + (br 5) + (end) + (get_local 6) + (i32.load align=4 offset=4) + (tee_local 5) + (i32.const 3) + (i32.and) + (i32.const 3) + (i32.ne) + (br_if 4) + (i32.const 0) + (get_local 1) + (i32.store align=4 offset=4356) + (get_local 6) + (i32.const 4) + (i32.add) + (get_local 5) + (i32.const -2) + (i32.and) + (i32.store align=4) + (get_local 0) + (get_local 1) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 0) + (get_local 1) + (i32.add) + (get_local 1) + (i32.store align=4) + (return) + (end) + (get_local 0) + (i32.load align=4 offset=24) + (set_local 2) + (get_local 0) + (i32.load align=4 offset=12) + (tee_local 5) + (get_local 0) + (i32.eq) + (br_if 1) + (get_local 0) + (i32.load align=4 offset=8) + (tee_local 4) + (get_local 5) + (i32.store align=4 offset=12) + (get_local 5) + (get_local 4) + (i32.store align=4 offset=8) + (get_local 2) + (br_if 2) + (br 3) + (end) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=3956) + (i32.const -2) + (get_local 5) + (i32.const 3) + (i32.shr_u) + (i32.rotl) + (i32.and) + (i32.store align=4 offset=3956) + (br 2) + (end) + (block emptyblock) + (get_local 0) + (i32.const 20) + (i32.add) + (get_local 0) + (i32.const 16) + (i32.add) + (get_local 0) + (i32.load align=4 offset=20) + (select) + (tee_local 4) + (i32.load align=4) + (tee_local 5) + (i32.eqz) + (br_if 0) + (loop emptyblock) + (get_local 4) + (set_local 3) + (get_local 5) + (i32.const 20) + (i32.add) + (tee_local 4) + (get_local 5) + (i32.const 16) + (i32.add) + (get_local 4) + (i32.load align=4) + (select) + (tee_local 4) + (i32.load align=4) + (tee_local 5) + (br_if 0) + (end) + (get_local 3) + (i32.load align=4) + (set_local 5) + (get_local 3) + (i32.const 0) + (i32.store align=4) + (get_local 2) + (br_if 1) + (br 2) + (end) + (i32.const 0) + (set_local 5) + (get_local 2) + (i32.eqz) + (br_if 1) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=28) + (tee_local 3) + (i32.const 2) + (i32.shl) + (i32.const 4228) + (i32.add) + (tee_local 4) + (i32.load align=4) + (get_local 0) + (i32.eq) + (br_if 0) + (get_local 2) + (i32.const 16) + (i32.add) + (get_local 2) + (i32.load align=4 offset=16) + (get_local 0) + (i32.ne) + (i32.const 2) + (i32.shl) + (i32.add) + (get_local 5) + (i32.store align=4) + (get_local 5) + (br_if 1) + (br 3) + (end) + (get_local 4) + (get_local 5) + (i32.store align=4) + (get_local 5) + (i32.eqz) + (br_if 1) + (end) + (get_local 5) + (get_local 2) + (i32.store align=4 offset=24) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=16) + (tee_local 4) + (i32.eqz) + (br_if 0) + (get_local 5) + (get_local 4) + (i32.store align=4 offset=16) + (get_local 4) + (get_local 5) + (i32.store align=4 offset=24) + (end) + (get_local 0) + (i32.load align=4 offset=20) + (tee_local 4) + (i32.eqz) + (br_if 1) + (get_local 5) + (i32.const 20) + (i32.add) + (get_local 4) + (i32.store align=4) + (get_local 4) + (get_local 5) + (i32.store align=4 offset=24) + (br 1) + (end) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=3960) + (i32.const -2) + (get_local 3) + (i32.rotl) + (i32.and) + (i32.store align=4 offset=3960) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 6) + (i32.load align=4 offset=4) + (tee_local 5) + (i32.const 2) + (i32.and) + (br_if 0) + (get_local 6) + (i32.const 0) + (i32.load align=4 offset=4368) + (i32.eq) + (br_if 1) + (get_local 6) + (i32.const 0) + (i32.load align=4 offset=4364) + (i32.eq) + (br_if 2) + (get_local 5) + (i32.const -8) + (i32.and) + (tee_local 4) + (get_local 1) + (i32.add) + (set_local 1) + (get_local 4) + (i32.const 255) + (i32.gt_u) + (br_if 3) + (get_local 6) + (i32.load align=4 offset=12) + (tee_local 4) + (get_local 6) + (i32.load align=4 offset=8) + (tee_local 6) + (i32.eq) + (br_if 4) + (get_local 6) + (get_local 4) + (i32.store align=4 offset=12) + (get_local 4) + (get_local 6) + (i32.store align=4 offset=8) + (br 7) + (end) + (get_local 6) + (i32.const 4) + (i32.add) + (get_local 5) + (i32.const -2) + (i32.and) + (i32.store align=4) + (get_local 0) + (get_local 1) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 0) + (get_local 1) + (i32.add) + (get_local 1) + (i32.store align=4) + (br 7) + (end) + (i32.const 0) + (get_local 0) + (i32.store align=4 offset=4368) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4360) + (get_local 1) + (i32.add) + (tee_local 1) + (i32.store align=4 offset=4360) + (get_local 0) + (get_local 1) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 0) + (i32.const 0) + (i32.load align=4 offset=4364) + (i32.ne) + (br_if 7) + (i32.const 0) + (i32.const 0) + (i32.store align=4 offset=4356) + (i32.const 0) + (i32.const 0) + (i32.store align=4 offset=4364) + (return) + (end) + (i32.const 0) + (get_local 0) + (i32.store align=4 offset=4364) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4356) + (get_local 1) + (i32.add) + (tee_local 1) + (i32.store align=4 offset=4356) + (get_local 0) + (get_local 1) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 0) + (get_local 1) + (i32.add) + (get_local 1) + (i32.store align=4) + (return) + (end) + (get_local 6) + (i32.load align=4 offset=24) + (set_local 2) + (get_local 6) + (i32.load align=4 offset=12) + (tee_local 5) + (get_local 6) + (i32.eq) + (br_if 1) + (get_local 6) + (i32.load align=4 offset=8) + (tee_local 4) + (get_local 5) + (i32.store align=4 offset=12) + (get_local 5) + (get_local 4) + (i32.store align=4 offset=8) + (get_local 2) + (br_if 2) + (br 3) + (end) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=3956) + (i32.const -2) + (get_local 5) + (i32.const 3) + (i32.shr_u) + (i32.rotl) + (i32.and) + (i32.store align=4 offset=3956) + (br 2) + (end) + (block emptyblock) + (get_local 6) + (i32.const 20) + (i32.add) + (get_local 6) + (i32.const 16) + (i32.add) + (get_local 6) + (i32.load align=4 offset=20) + (select) + (tee_local 4) + (i32.load align=4) + (tee_local 5) + (i32.eqz) + (br_if 0) + (loop emptyblock) + (get_local 4) + (set_local 3) + (get_local 5) + (i32.const 20) + (i32.add) + (tee_local 4) + (get_local 5) + (i32.const 16) + (i32.add) + (get_local 4) + (i32.load align=4) + (select) + (tee_local 4) + (i32.load align=4) + (tee_local 5) + (br_if 0) + (end) + (get_local 3) + (i32.load align=4) + (set_local 5) + (get_local 3) + (i32.const 0) + (i32.store align=4) + (get_local 2) + (br_if 1) + (br 2) + (end) + (i32.const 0) + (set_local 5) + (get_local 2) + (i32.eqz) + (br_if 1) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 6) + (i32.load align=4 offset=28) + (tee_local 3) + (i32.const 2) + (i32.shl) + (i32.const 4228) + (i32.add) + (tee_local 4) + (i32.load align=4) + (get_local 6) + (i32.eq) + (br_if 0) + (get_local 2) + (i32.const 16) + (i32.add) + (get_local 2) + (i32.load align=4 offset=16) + (get_local 6) + (i32.ne) + (i32.const 2) + (i32.shl) + (i32.add) + (get_local 5) + (i32.store align=4) + (get_local 5) + (br_if 1) + (br 3) + (end) + (get_local 4) + (get_local 5) + (i32.store align=4) + (get_local 5) + (i32.eqz) + (br_if 1) + (end) + (get_local 5) + (get_local 2) + (i32.store align=4 offset=24) + (block emptyblock) + (get_local 6) + (i32.load align=4 offset=16) + (tee_local 4) + (i32.eqz) + (br_if 0) + (get_local 5) + (get_local 4) + (i32.store align=4 offset=16) + (get_local 4) + (get_local 5) + (i32.store align=4 offset=24) + (end) + (get_local 6) + (i32.load align=4 offset=20) + (tee_local 6) + (i32.eqz) + (br_if 1) + (get_local 5) + (i32.const 20) + (i32.add) + (get_local 6) + (i32.store align=4) + (get_local 6) + (get_local 5) + (i32.store align=4 offset=24) + (br 1) + (end) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=3960) + (i32.const -2) + (get_local 3) + (i32.rotl) + (i32.and) + (i32.store align=4 offset=3960) + (end) + (get_local 0) + (get_local 1) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 0) + (get_local 1) + (i32.add) + (get_local 1) + (i32.store align=4) + (get_local 0) + (i32.const 0) + (i32.load align=4 offset=4364) + (i32.ne) + (br_if 0) + (i32.const 0) + (get_local 1) + (i32.store align=4 offset=4356) + (return) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.const 255) + (i32.gt_u) + (br_if 0) + (get_local 1) + (i32.const 3) + (i32.shr_u) + (tee_local 6) + (i32.const 3) + (i32.shl) + (i32.const 3964) + (i32.add) + (set_local 1) + (i32.const 0) + (i32.load align=4 offset=3956) + (tee_local 5) + (i32.const 1) + (get_local 6) + (i32.const 31) + (i32.and) + (i32.shl) + (tee_local 6) + (i32.and) + (i32.eqz) + (br_if 1) + (get_local 1) + (i32.load align=4 offset=8) + (set_local 6) + (br 2) + (end) + (i32.const 0) + (set_local 6) + (block emptyblock) + (get_local 1) + (i32.const 8) + (i32.shr_u) + (tee_local 5) + (i32.eqz) + (br_if 0) + (i32.const 31) + (set_local 6) + (get_local 1) + (i32.const 16777215) + (i32.gt_u) + (br_if 0) + (get_local 1) + (i32.const 38) + (get_local 5) + (i32.clz) + (tee_local 6) + (i32.sub) + (i32.const 31) + (i32.and) + (i32.shr_u) + (i32.const 1) + (i32.and) + (i32.const 31) + (get_local 6) + (i32.sub) + (i32.const 1) + (i32.shl) + (i32.or) + (set_local 6) + (end) + (get_local 0) + (i64.const 0) + (i64.store align=4 offset=16) + (get_local 0) + (i32.const 28) + (i32.add) + (get_local 6) + (i32.store align=4) + (get_local 6) + (i32.const 2) + (i32.shl) + (i32.const 4228) + (i32.add) + (set_local 5) + (i32.const 0) + (i32.load align=4 offset=3960) + (tee_local 4) + (i32.const 1) + (get_local 6) + (i32.const 31) + (i32.and) + (i32.shl) + (tee_local 3) + (i32.and) + (i32.eqz) + (br_if 2) + (get_local 5) + (i32.load align=4) + (tee_local 4) + (i32.load align=4 offset=4) + (i32.const -8) + (i32.and) + (get_local 1) + (i32.ne) + (br_if 3) + (get_local 4) + (set_local 6) + (br 4) + (end) + (i32.const 0) + (get_local 5) + (get_local 6) + (i32.or) + (i32.store align=4 offset=3956) + (get_local 1) + (set_local 6) + (end) + (get_local 1) + (i32.const 8) + (i32.add) + (get_local 0) + (i32.store align=4) + (get_local 6) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 0) + (get_local 1) + (i32.store align=4 offset=12) + (get_local 0) + (get_local 6) + (i32.store align=4 offset=8) + (return) + (end) + (get_local 5) + (get_local 0) + (i32.store align=4) + (i32.const 0) + (get_local 4) + (get_local 3) + (i32.or) + (i32.store align=4 offset=3960) + (get_local 0) + (i32.const 24) + (i32.add) + (get_local 5) + (i32.store align=4) + (get_local 0) + (get_local 0) + (i32.store align=4 offset=8) + (get_local 0) + (get_local 0) + (i32.store align=4 offset=12) + (return) + (end) + (get_local 1) + (i32.const 0) + (i32.const 25) + (get_local 6) + (i32.const 1) + (i32.shr_u) + (i32.sub) + (i32.const 31) + (i32.and) + (get_local 6) + (i32.const 31) + (i32.eq) + (select) + (i32.shl) + (set_local 5) + (loop emptyblock) + (get_local 4) + (get_local 5) + (i32.const 29) + (i32.shr_u) + (i32.const 4) + (i32.and) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 3) + (i32.load align=4) + (tee_local 6) + (i32.eqz) + (br_if 2) + (get_local 5) + (i32.const 1) + (i32.shl) + (set_local 5) + (get_local 6) + (set_local 4) + (get_local 6) + (i32.load align=4 offset=4) + (i32.const -8) + (i32.and) + (get_local 1) + (i32.ne) + (br_if 0) + (end) + (end) + (get_local 6) + (i32.load align=4 offset=8) + (tee_local 1) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 6) + (get_local 0) + (i32.store align=4 offset=8) + (get_local 0) + (get_local 6) + (i32.store align=4 offset=12) + (get_local 0) + (get_local 1) + (i32.store align=4 offset=8) + (get_local 0) + (i32.const 24) + (i32.add) + (i32.const 0) + (i32.store align=4) + (return) + (end) + (get_local 3) + (get_local 0) + (i32.store align=4) + (get_local 0) + (i32.const 24) + (i32.add) + (get_local 4) + (i32.store align=4) + (get_local 0) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 0) + (get_local 0) + (i32.store align=4 offset=8) + (end) + ) + (func 109 (type 2) (local i32 i32 i32 i32 i32 i32) + (get_local 0) + (i32.const -8) + (i32.add) + (tee_local 3) + (get_local 0) + (i32.const -4) + (i32.add) + (i32.load align=4) + (tee_local 5) + (i32.const -8) + (i32.and) + (tee_local 0) + (i32.add) + (set_local 6) + (block emptyblock) + (block emptyblock) + (get_local 5) + (i32.const 1) + (i32.and) + (br_if 0) + (get_local 5) + (i32.const 3) + (i32.and) + (i32.eqz) + (br_if 1) + (get_local 3) + (i32.load align=4) + (tee_local 5) + (get_local 0) + (i32.add) + (set_local 0) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 3) + (get_local 5) + (i32.sub) + (tee_local 3) + (i32.const 0) + (i32.load align=4 offset=4364) + (i32.eq) + (br_if 0) + (get_local 5) + (i32.const 255) + (i32.gt_u) + (br_if 1) + (get_local 3) + (i32.load align=4 offset=12) + (tee_local 4) + (get_local 3) + (i32.load align=4 offset=8) + (tee_local 2) + (i32.eq) + (br_if 2) + (get_local 2) + (get_local 4) + (i32.store align=4 offset=12) + (get_local 4) + (get_local 2) + (i32.store align=4 offset=8) + (br 5) + (end) + (get_local 6) + (i32.load align=4 offset=4) + (tee_local 5) + (i32.const 3) + (i32.and) + (i32.const 3) + (i32.ne) + (br_if 4) + (i32.const 0) + (get_local 0) + (i32.store align=4 offset=4356) + (get_local 6) + (i32.const 4) + (i32.add) + (get_local 5) + (i32.const -2) + (i32.and) + (i32.store align=4) + (get_local 3) + (get_local 0) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 3) + (get_local 0) + (i32.add) + (get_local 0) + (i32.store align=4) + (return) + (end) + (get_local 3) + (i32.load align=4 offset=24) + (set_local 1) + (get_local 3) + (i32.load align=4 offset=12) + (tee_local 5) + (get_local 3) + (i32.eq) + (br_if 1) + (get_local 3) + (i32.load align=4 offset=8) + (tee_local 4) + (get_local 5) + (i32.store align=4 offset=12) + (get_local 5) + (get_local 4) + (i32.store align=4 offset=8) + (get_local 1) + (br_if 2) + (br 3) + (end) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=3956) + (i32.const -2) + (get_local 5) + (i32.const 3) + (i32.shr_u) + (i32.rotl) + (i32.and) + (i32.store align=4 offset=3956) + (br 2) + (end) + (block emptyblock) + (get_local 3) + (i32.const 20) + (i32.add) + (get_local 3) + (i32.const 16) + (i32.add) + (get_local 3) + (i32.load align=4 offset=20) + (select) + (tee_local 4) + (i32.load align=4) + (tee_local 5) + (i32.eqz) + (br_if 0) + (loop emptyblock) + (get_local 4) + (set_local 2) + (get_local 5) + (i32.const 20) + (i32.add) + (tee_local 4) + (get_local 5) + (i32.const 16) + (i32.add) + (get_local 4) + (i32.load align=4) + (select) + (tee_local 4) + (i32.load align=4) + (tee_local 5) + (br_if 0) + (end) + (get_local 2) + (i32.load align=4) + (set_local 5) + (get_local 2) + (i32.const 0) + (i32.store align=4) + (get_local 1) + (br_if 1) + (br 2) + (end) + (i32.const 0) + (set_local 5) + (get_local 1) + (i32.eqz) + (br_if 1) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 3) + (i32.load align=4 offset=28) + (tee_local 2) + (i32.const 2) + (i32.shl) + (i32.const 4228) + (i32.add) + (tee_local 4) + (i32.load align=4) + (get_local 3) + (i32.eq) + (br_if 0) + (get_local 1) + (i32.const 16) + (i32.add) + (get_local 1) + (i32.load align=4 offset=16) + (get_local 3) + (i32.ne) + (i32.const 2) + (i32.shl) + (i32.add) + (get_local 5) + (i32.store align=4) + (get_local 5) + (br_if 1) + (br 3) + (end) + (get_local 4) + (get_local 5) + (i32.store align=4) + (get_local 5) + (i32.eqz) + (br_if 1) + (end) + (get_local 5) + (get_local 1) + (i32.store align=4 offset=24) + (block emptyblock) + (get_local 3) + (i32.load align=4 offset=16) + (tee_local 4) + (i32.eqz) + (br_if 0) + (get_local 5) + (get_local 4) + (i32.store align=4 offset=16) + (get_local 4) + (get_local 5) + (i32.store align=4 offset=24) + (end) + (get_local 3) + (i32.load align=4 offset=20) + (tee_local 4) + (i32.eqz) + (br_if 1) + (get_local 5) + (i32.const 20) + (i32.add) + (get_local 4) + (i32.store align=4) + (get_local 4) + (get_local 5) + (i32.store align=4 offset=24) + (br 1) + (end) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=3960) + (i32.const -2) + (get_local 2) + (i32.rotl) + (i32.and) + (i32.store align=4 offset=3960) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 6) + (i32.load align=4 offset=4) + (tee_local 5) + (i32.const 2) + (i32.and) + (br_if 0) + (get_local 6) + (i32.const 0) + (i32.load align=4 offset=4368) + (i32.eq) + (br_if 1) + (get_local 6) + (i32.const 0) + (i32.load align=4 offset=4364) + (i32.eq) + (br_if 2) + (get_local 5) + (i32.const -8) + (i32.and) + (tee_local 4) + (get_local 0) + (i32.add) + (set_local 0) + (get_local 4) + (i32.const 255) + (i32.gt_u) + (br_if 3) + (get_local 6) + (i32.load align=4 offset=12) + (tee_local 4) + (get_local 6) + (i32.load align=4 offset=8) + (tee_local 6) + (i32.eq) + (br_if 4) + (get_local 6) + (get_local 4) + (i32.store align=4 offset=12) + (get_local 4) + (get_local 6) + (i32.store align=4 offset=8) + (br 7) + (end) + (get_local 6) + (i32.const 4) + (i32.add) + (get_local 5) + (i32.const -2) + (i32.and) + (i32.store align=4) + (get_local 3) + (get_local 0) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 3) + (get_local 0) + (i32.add) + (get_local 0) + (i32.store align=4) + (br 7) + (end) + (i32.const 0) + (get_local 3) + (i32.store align=4 offset=4368) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4360) + (get_local 0) + (i32.add) + (tee_local 0) + (i32.store align=4 offset=4360) + (get_local 3) + (get_local 0) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (block emptyblock) + (get_local 3) + (i32.const 0) + (i32.load align=4 offset=4364) + (i32.ne) + (br_if 0) + (i32.const 0) + (i32.const 0) + (i32.store align=4 offset=4356) + (i32.const 0) + (i32.const 0) + (i32.store align=4 offset=4364) + (end) + (i32.const 0) + (i32.load align=4 offset=4396) + (tee_local 5) + (get_local 0) + (i32.ge_u) + (br_if 7) + (block emptyblock) + (get_local 0) + (i32.const 41) + (i32.lt_u) + (br_if 0) + (i32.const 4380) + (set_local 0) + (loop emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4) + (tee_local 6) + (get_local 3) + (i32.gt_u) + (br_if 0) + (get_local 6) + (get_local 0) + (i32.load align=4 offset=4) + (i32.add) + (get_local 3) + (i32.gt_u) + (br_if 2) + (end) + (get_local 0) + (i32.load align=4 offset=8) + (tee_local 0) + (br_if 0) + (end) + (end) + (i32.const 0) + (set_local 3) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=4388) + (tee_local 0) + (i32.eqz) + (br_if 0) + (i32.const 0) + (set_local 3) + (loop emptyblock) + (get_local 3) + (i32.const 1) + (i32.add) + (set_local 3) + (get_local 0) + (i32.load align=4 offset=8) + (tee_local 0) + (br_if 0) + (end) + (end) + (i32.const 0) + (get_local 3) + (i32.const 4095) + (get_local 3) + (i32.const 4095) + (i32.gt_u) + (select) + (i32.store align=4 offset=4404) + (i32.const 0) + (i32.load align=4 offset=4360) + (get_local 5) + (i32.le_u) + (br_if 7) + (i32.const 0) + (i32.const -1) + (i32.store align=4 offset=4396) + (return) + (end) + (i32.const 0) + (get_local 3) + (i32.store align=4 offset=4364) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4356) + (get_local 0) + (i32.add) + (tee_local 0) + (i32.store align=4 offset=4356) + (get_local 3) + (get_local 0) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 3) + (get_local 0) + (i32.add) + (get_local 0) + (i32.store align=4) + (return) + (end) + (get_local 6) + (i32.load align=4 offset=24) + (set_local 1) + (get_local 6) + (i32.load align=4 offset=12) + (tee_local 5) + (get_local 6) + (i32.eq) + (br_if 1) + (get_local 6) + (i32.load align=4 offset=8) + (tee_local 4) + (get_local 5) + (i32.store align=4 offset=12) + (get_local 5) + (get_local 4) + (i32.store align=4 offset=8) + (get_local 1) + (br_if 2) + (br 3) + (end) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=3956) + (i32.const -2) + (get_local 5) + (i32.const 3) + (i32.shr_u) + (i32.rotl) + (i32.and) + (i32.store align=4 offset=3956) + (br 2) + (end) + (block emptyblock) + (get_local 6) + (i32.const 20) + (i32.add) + (get_local 6) + (i32.const 16) + (i32.add) + (get_local 6) + (i32.load align=4 offset=20) + (select) + (tee_local 4) + (i32.load align=4) + (tee_local 5) + (i32.eqz) + (br_if 0) + (loop emptyblock) + (get_local 4) + (set_local 2) + (get_local 5) + (i32.const 20) + (i32.add) + (tee_local 4) + (get_local 5) + (i32.const 16) + (i32.add) + (get_local 4) + (i32.load align=4) + (select) + (tee_local 4) + (i32.load align=4) + (tee_local 5) + (br_if 0) + (end) + (get_local 2) + (i32.load align=4) + (set_local 5) + (get_local 2) + (i32.const 0) + (i32.store align=4) + (get_local 1) + (br_if 1) + (br 2) + (end) + (i32.const 0) + (set_local 5) + (get_local 1) + (i32.eqz) + (br_if 1) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 6) + (i32.load align=4 offset=28) + (tee_local 2) + (i32.const 2) + (i32.shl) + (i32.const 4228) + (i32.add) + (tee_local 4) + (i32.load align=4) + (get_local 6) + (i32.eq) + (br_if 0) + (get_local 1) + (i32.const 16) + (i32.add) + (get_local 1) + (i32.load align=4 offset=16) + (get_local 6) + (i32.ne) + (i32.const 2) + (i32.shl) + (i32.add) + (get_local 5) + (i32.store align=4) + (get_local 5) + (br_if 1) + (br 3) + (end) + (get_local 4) + (get_local 5) + (i32.store align=4) + (get_local 5) + (i32.eqz) + (br_if 1) + (end) + (get_local 5) + (get_local 1) + (i32.store align=4 offset=24) + (block emptyblock) + (get_local 6) + (i32.load align=4 offset=16) + (tee_local 4) + (i32.eqz) + (br_if 0) + (get_local 5) + (get_local 4) + (i32.store align=4 offset=16) + (get_local 4) + (get_local 5) + (i32.store align=4 offset=24) + (end) + (get_local 6) + (i32.load align=4 offset=20) + (tee_local 6) + (i32.eqz) + (br_if 1) + (get_local 5) + (i32.const 20) + (i32.add) + (get_local 6) + (i32.store align=4) + (get_local 6) + (get_local 5) + (i32.store align=4 offset=24) + (br 1) + (end) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=3960) + (i32.const -2) + (get_local 2) + (i32.rotl) + (i32.and) + (i32.store align=4 offset=3960) + (end) + (get_local 3) + (get_local 0) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 3) + (get_local 0) + (i32.add) + (get_local 0) + (i32.store align=4) + (get_local 3) + (i32.const 0) + (i32.load align=4 offset=4364) + (i32.ne) + (br_if 0) + (i32.const 0) + (get_local 0) + (i32.store align=4 offset=4356) + (return) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.const 255) + (i32.gt_u) + (br_if 0) + (get_local 0) + (i32.const 3) + (i32.shr_u) + (tee_local 6) + (i32.const 3) + (i32.shl) + (i32.const 3964) + (i32.add) + (set_local 0) + (i32.const 0) + (i32.load align=4 offset=3956) + (tee_local 5) + (i32.const 1) + (get_local 6) + (i32.const 31) + (i32.and) + (i32.shl) + (tee_local 6) + (i32.and) + (i32.eqz) + (br_if 1) + (get_local 0) + (i32.load align=4 offset=8) + (set_local 6) + (br 2) + (end) + (i32.const 0) + (set_local 6) + (block emptyblock) + (get_local 0) + (i32.const 8) + (i32.shr_u) + (tee_local 5) + (i32.eqz) + (br_if 0) + (i32.const 31) + (set_local 6) + (get_local 0) + (i32.const 16777215) + (i32.gt_u) + (br_if 0) + (get_local 0) + (i32.const 38) + (get_local 5) + (i32.clz) + (tee_local 6) + (i32.sub) + (i32.const 31) + (i32.and) + (i32.shr_u) + (i32.const 1) + (i32.and) + (i32.const 31) + (get_local 6) + (i32.sub) + (i32.const 1) + (i32.shl) + (i32.or) + (set_local 6) + (end) + (get_local 3) + (i64.const 0) + (i64.store align=4 offset=16) + (get_local 3) + (i32.const 28) + (i32.add) + (get_local 6) + (i32.store align=4) + (get_local 6) + (i32.const 2) + (i32.shl) + (i32.const 4228) + (i32.add) + (set_local 5) + (i32.const 0) + (i32.load align=4 offset=3960) + (tee_local 4) + (i32.const 1) + (get_local 6) + (i32.const 31) + (i32.and) + (i32.shl) + (tee_local 2) + (i32.and) + (i32.eqz) + (br_if 2) + (get_local 5) + (i32.load align=4) + (tee_local 4) + (i32.load align=4 offset=4) + (i32.const -8) + (i32.and) + (get_local 0) + (i32.ne) + (br_if 3) + (get_local 4) + (set_local 6) + (br 4) + (end) + (i32.const 0) + (get_local 5) + (get_local 6) + (i32.or) + (i32.store align=4 offset=3956) + (get_local 0) + (set_local 6) + (end) + (get_local 0) + (i32.const 8) + (i32.add) + (get_local 3) + (i32.store align=4) + (get_local 6) + (get_local 3) + (i32.store align=4 offset=12) + (get_local 3) + (get_local 0) + (i32.store align=4 offset=12) + (get_local 3) + (get_local 6) + (i32.store align=4 offset=8) + (return) + (end) + (get_local 5) + (get_local 3) + (i32.store align=4) + (i32.const 0) + (get_local 4) + (get_local 2) + (i32.or) + (i32.store align=4 offset=3960) + (get_local 3) + (i32.const 24) + (i32.add) + (get_local 5) + (i32.store align=4) + (get_local 3) + (get_local 3) + (i32.store align=4 offset=8) + (get_local 3) + (get_local 3) + (i32.store align=4 offset=12) + (br 3) + (end) + (get_local 0) + (i32.const 0) + (i32.const 25) + (get_local 6) + (i32.const 1) + (i32.shr_u) + (i32.sub) + (i32.const 31) + (i32.and) + (get_local 6) + (i32.const 31) + (i32.eq) + (select) + (i32.shl) + (set_local 5) + (loop emptyblock) + (get_local 4) + (get_local 5) + (i32.const 29) + (i32.shr_u) + (i32.const 4) + (i32.and) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 2) + (i32.load align=4) + (tee_local 6) + (i32.eqz) + (br_if 2) + (get_local 5) + (i32.const 1) + (i32.shl) + (set_local 5) + (get_local 6) + (set_local 4) + (get_local 6) + (i32.load align=4 offset=4) + (i32.const -8) + (i32.and) + (get_local 0) + (i32.ne) + (br_if 0) + (end) + (end) + (get_local 6) + (i32.load align=4 offset=8) + (tee_local 0) + (get_local 3) + (i32.store align=4 offset=12) + (get_local 6) + (get_local 3) + (i32.store align=4 offset=8) + (get_local 3) + (get_local 6) + (i32.store align=4 offset=12) + (get_local 3) + (get_local 0) + (i32.store align=4 offset=8) + (get_local 3) + (i32.const 24) + (i32.add) + (i32.const 0) + (i32.store align=4) + (br 1) + (end) + (get_local 2) + (get_local 3) + (i32.store align=4) + (get_local 3) + (i32.const 24) + (i32.add) + (get_local 4) + (i32.store align=4) + (get_local 3) + (get_local 3) + (i32.store align=4 offset=12) + (get_local 3) + (get_local 3) + (i32.store align=4 offset=8) + (end) + (i32.const 0) + (set_local 3) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4404) + (i32.const -1) + (i32.add) + (tee_local 0) + (i32.store align=4 offset=4404) + (get_local 0) + (br_if 0) + (block emptyblock) + (i32.const 0) + (i32.load align=4 offset=4388) + (tee_local 0) + (i32.eqz) + (br_if 0) + (i32.const 0) + (set_local 3) + (loop emptyblock) + (get_local 3) + (i32.const 1) + (i32.add) + (set_local 3) + (get_local 0) + (i32.load align=4 offset=8) + (tee_local 0) + (br_if 0) + (end) + (end) + (i32.const 0) + (get_local 3) + (i32.const 4095) + (get_local 3) + (i32.const 4095) + (i32.gt_u) + (select) + (i32.store align=4 offset=4404) + (end) + ) + (func 110 (type 6) (local i32 i32 i32 i32 i32) + (i32.const 0) + (set_local 6) + (block emptyblock) + (i32.const -64) + (get_local 0) + (i32.const 16) + (get_local 0) + (i32.const 16) + (i32.gt_u) + (select) + (tee_local 0) + (i32.sub) + (get_local 1) + (i32.le_u) + (br_if 0) + (get_local 0) + (i32.const 16) + (get_local 1) + (i32.const 11) + (i32.add) + (i32.const -8) + (i32.and) + (get_local 1) + (i32.const 11) + (i32.lt_u) + (select) + (tee_local 2) + (i32.add) + (i32.const 12) + (i32.add) + (call 107) + (tee_local 1) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const -8) + (i32.add) + (set_local 6) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 1) + (get_local 0) + (i32.const -1) + (i32.add) + (tee_local 3) + (i32.and) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const -4) + (i32.add) + (tee_local 4) + (i32.load align=4) + (tee_local 5) + (i32.const -8) + (i32.and) + (get_local 3) + (get_local 1) + (i32.add) + (i32.const 0) + (get_local 0) + (i32.sub) + (i32.and) + (i32.const -8) + (i32.add) + (tee_local 1) + (get_local 1) + (get_local 0) + (i32.add) + (get_local 1) + (get_local 6) + (i32.sub) + (i32.const 16) + (i32.gt_u) + (select) + (tee_local 0) + (get_local 6) + (i32.sub) + (tee_local 1) + (i32.sub) + (set_local 3) + (get_local 5) + (i32.const 3) + (i32.and) + (i32.eqz) + (br_if 1) + (get_local 0) + (get_local 3) + (get_local 0) + (i32.load align=4 offset=4) + (i32.const 1) + (i32.and) + (i32.or) + (i32.const 2) + (i32.or) + (i32.store align=4 offset=4) + (get_local 0) + (get_local 3) + (i32.add) + (tee_local 3) + (get_local 3) + (i32.load align=4 offset=4) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 4) + (get_local 1) + (get_local 4) + (i32.load align=4) + (i32.const 1) + (i32.and) + (i32.or) + (i32.const 2) + (i32.or) + (i32.store align=4) + (get_local 6) + (get_local 1) + (i32.add) + (tee_local 3) + (get_local 3) + (i32.load align=4 offset=4) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 6) + (get_local 1) + (call 108) + (br 2) + (end) + (get_local 6) + (set_local 0) + (br 1) + (end) + (get_local 6) + (i32.load align=4) + (set_local 6) + (get_local 0) + (get_local 3) + (i32.store align=4 offset=4) + (get_local 0) + (get_local 6) + (get_local 1) + (i32.add) + (i32.store align=4) + (end) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (tee_local 1) + (i32.const 3) + (i32.and) + (i32.eqz) + (br_if 0) + (get_local 1) + (i32.const -8) + (i32.and) + (tee_local 6) + (get_local 2) + (i32.const 16) + (i32.add) + (i32.le_u) + (br_if 0) + (get_local 0) + (i32.const 4) + (i32.add) + (get_local 2) + (get_local 1) + (i32.const 1) + (i32.and) + (i32.or) + (i32.const 2) + (i32.or) + (i32.store align=4) + (get_local 0) + (get_local 2) + (i32.add) + (tee_local 1) + (get_local 6) + (get_local 2) + (i32.sub) + (tee_local 6) + (i32.const 3) + (i32.or) + (i32.store align=4 offset=4) + (get_local 1) + (get_local 6) + (i32.add) + (tee_local 2) + (get_local 2) + (i32.load align=4 offset=4) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 1) + (get_local 6) + (call 108) + (end) + (get_local 0) + (i32.const 8) + (i32.add) + (set_local 6) + (end) + (get_local 6) + ) + (func 111 (type 4) (local i32 i32 i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 8) + (i32.store align=4 offset=4) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (tee_local 7) + (get_local 0) + (i32.load align=4 offset=8) + (tee_local 3) + (i32.sub) + (get_local 2) + (i32.ge_u) + (br_if 0) + (get_local 3) + (get_local 2) + (i32.add) + (tee_local 6) + (get_local 3) + (i32.lt_u) + (br_if 4) + (get_local 6) + (get_local 7) + (i32.const 1) + (i32.shl) + (tee_local 4) + (get_local 6) + (get_local 4) + (i32.ge_u) + (select) + (tee_local 4) + (i32.const -1) + (i32.le_s) + (br_if 5) + (get_local 7) + (i32.eqz) + (br_if 1) + (get_local 0) + (i32.load align=4) + (get_local 7) + (i32.const 1) + (get_local 4) + (i32.const 1) + (get_local 8) + (call 145) + (tee_local 5) + (get_local 8) + (i32.load align=4) + (get_local 5) + (select) + (set_local 7) + (get_local 5) + (i32.eqz) + (i32.eqz) + (br_if 2) + (br 6) + (end) + (get_local 3) + (get_local 2) + (i32.add) + (set_local 6) + (get_local 0) + (i32.load align=4) + (set_local 7) + (br 2) + (end) + (block emptyblock) + (block emptyblock) + (get_local 4) + (call 107) + (tee_local 7) + (i32.eqz) + (br_if 0) + (get_local 7) + (set_local 5) + (br 1) + (end) + (get_local 8) + (get_local 4) + (i32.store align=4 offset=4) + (get_local 8) + (get_local 7) + (i32.store align=4) + (get_local 8) + (i32.const 1) + (i32.store align=4 offset=8) + (i32.const 0) + (set_local 5) + (end) + (get_local 5) + (get_local 7) + (get_local 5) + (select) + (set_local 7) + (get_local 5) + (i32.eqz) + (br_if 4) + (end) + (get_local 0) + (get_local 7) + (i32.store align=4) + (get_local 0) + (i32.const 4) + (i32.add) + (get_local 4) + (i32.store align=4) + (end) + (get_local 0) + (i32.const 8) + (i32.add) + (get_local 6) + (i32.store align=4) + (get_local 7) + (get_local 3) + (i32.add) + (get_local 1) + (get_local 2) + (call 112) + (drop) + (i32.const 0) + (get_local 8) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (return) + (end) + (i32.const 4480) + (i32.const 17) + (call 143) + (unreachable) + (end) + (i32.const 4452) + (call 139) + (unreachable) + (end) + (unreachable) + (unreachable) + ) + (func 112 (type 0) (local i32) + (block emptyblock) + (get_local 2) + (i32.eqz) + (br_if 0) + (get_local 0) + (set_local 3) + (loop emptyblock) + (get_local 3) + (get_local 1) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 1) + (i32.const 1) + (i32.add) + (set_local 1) + (get_local 3) + (i32.const 1) + (i32.add) + (set_local 3) + (get_local 2) + (i32.const -1) + (i32.add) + (tee_local 2) + (br_if 0) + (end) + (end) + (get_local 0) + ) + (func 113 (type 0) (local i32) + (block emptyblock) + (block emptyblock) + (get_local 1) + (get_local 0) + (i32.ge_u) + (br_if 0) + (get_local 2) + (i32.eqz) + (br_if 1) + (loop emptyblock) + (get_local 0) + (get_local 2) + (i32.add) + (i32.const -1) + (i32.add) + (get_local 1) + (get_local 2) + (i32.add) + (i32.const -1) + (i32.add) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 2) + (i32.const -1) + (i32.add) + (tee_local 2) + (br_if 0) + (br 2) + (end) + (unreachable) + (end) + (get_local 2) + (i32.eqz) + (br_if 0) + (get_local 0) + (set_local 3) + (loop emptyblock) + (get_local 3) + (get_local 1) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 1) + (i32.const 1) + (i32.add) + (set_local 1) + (get_local 3) + (i32.const 1) + (i32.add) + (set_local 3) + (get_local 2) + (i32.const -1) + (i32.add) + (tee_local 2) + (br_if 0) + (end) + (end) + (get_local 0) + ) + (func 114 (type 6) (local i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 5) + (i32.store align=4 offset=4) + (i32.const 39) + (set_local 4) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4) + (tee_local 0) + (i32.const 10000) + (i32.lt_u) + (br_if 0) + (i32.const 39) + (set_local 4) + (loop emptyblock) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.add) + (tee_local 2) + (i32.const -2) + (i32.add) + (get_local 0) + (i32.const 10000) + (i32.rem_u) + (tee_local 3) + (i32.const 100) + (i32.rem_u) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (get_local 2) + (i32.const -4) + (i32.add) + (get_local 3) + (i32.const 100) + (i32.div_u) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (get_local 4) + (i32.const -4) + (i32.add) + (set_local 4) + (get_local 0) + (i32.const 99999999) + (i32.gt_u) + (set_local 2) + (get_local 0) + (i32.const 10000) + (i32.div_u) + (tee_local 3) + (set_local 0) + (get_local 2) + (br_if 0) + (br 2) + (end) + (unreachable) + (end) + (get_local 0) + (set_local 3) + (end) + (block emptyblock) + (get_local 3) + (i32.const 100) + (i32.lt_s) + (br_if 0) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.const -2) + (i32.add) + (tee_local 4) + (i32.add) + (get_local 3) + (i32.const 100) + (i32.rem_u) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (get_local 3) + (i32.const 100) + (i32.div_u) + (set_local 3) + (end) + (block emptyblock) + (block emptyblock) + (get_local 3) + (i32.const 9) + (i32.gt_s) + (br_if 0) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.const -1) + (i32.add) + (tee_local 0) + (i32.add) + (get_local 3) + (i32.const 48) + (i32.add) + (i32.store8 align=1) + (br 1) + (end) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.const -2) + (i32.add) + (tee_local 0) + (i32.add) + (get_local 3) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (end) + (get_local 1) + (i32.const 1) + (i32.const 4752) + (i32.const 0) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 0) + (i32.add) + (i32.const 39) + (get_local 0) + (i32.sub) + (call 122) + (set_local 0) + (i32.const 0) + (get_local 5) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=4) + (get_local 0) + ) + (func 115 (type 6) (local i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 5) + (i32.store align=4 offset=4) + (i32.const 39) + (set_local 4) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4) + (tee_local 0) + (i32.const 10000) + (i32.lt_u) + (br_if 0) + (i32.const 39) + (set_local 4) + (loop emptyblock) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.add) + (tee_local 2) + (i32.const -2) + (i32.add) + (get_local 0) + (i32.const 10000) + (i32.rem_u) + (tee_local 3) + (i32.const 100) + (i32.rem_u) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (get_local 2) + (i32.const -4) + (i32.add) + (get_local 3) + (i32.const 100) + (i32.div_u) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (get_local 4) + (i32.const -4) + (i32.add) + (set_local 4) + (get_local 0) + (i32.const 99999999) + (i32.gt_u) + (set_local 2) + (get_local 0) + (i32.const 10000) + (i32.div_u) + (tee_local 3) + (set_local 0) + (get_local 2) + (br_if 0) + (br 2) + (end) + (unreachable) + (end) + (get_local 0) + (set_local 3) + (end) + (block emptyblock) + (get_local 3) + (i32.const 100) + (i32.lt_s) + (br_if 0) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.const -2) + (i32.add) + (tee_local 4) + (i32.add) + (get_local 3) + (i32.const 100) + (i32.rem_u) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (get_local 3) + (i32.const 100) + (i32.div_u) + (set_local 3) + (end) + (block emptyblock) + (block emptyblock) + (get_local 3) + (i32.const 9) + (i32.gt_s) + (br_if 0) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.const -1) + (i32.add) + (tee_local 0) + (i32.add) + (get_local 3) + (i32.const 48) + (i32.add) + (i32.store8 align=1) + (br 1) + (end) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.const -2) + (i32.add) + (tee_local 0) + (i32.add) + (get_local 3) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (end) + (get_local 1) + (i32.const 1) + (i32.const 4752) + (i32.const 0) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 0) + (i32.add) + (i32.const 39) + (get_local 0) + (i32.sub) + (call 122) + (set_local 0) + (i32.const 0) + (get_local 5) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=4) + (get_local 0) + ) + (func 116 (type 6) (local i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 5) + (i32.store align=4 offset=4) + (i32.const 39) + (set_local 4) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4) + (tee_local 0) + (i32.const 10000) + (i32.lt_u) + (br_if 0) + (i32.const 39) + (set_local 4) + (loop emptyblock) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.add) + (tee_local 2) + (i32.const -2) + (i32.add) + (get_local 0) + (i32.const 10000) + (i32.rem_u) + (tee_local 3) + (i32.const 100) + (i32.rem_u) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (get_local 2) + (i32.const -4) + (i32.add) + (get_local 3) + (i32.const 100) + (i32.div_u) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (get_local 4) + (i32.const -4) + (i32.add) + (set_local 4) + (get_local 0) + (i32.const 99999999) + (i32.gt_u) + (set_local 2) + (get_local 0) + (i32.const 10000) + (i32.div_u) + (tee_local 3) + (set_local 0) + (get_local 2) + (br_if 0) + (br 2) + (end) + (unreachable) + (end) + (get_local 0) + (set_local 3) + (end) + (block emptyblock) + (get_local 3) + (i32.const 100) + (i32.lt_s) + (br_if 0) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.const -2) + (i32.add) + (tee_local 4) + (i32.add) + (get_local 3) + (i32.const 100) + (i32.rem_u) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (get_local 3) + (i32.const 100) + (i32.div_u) + (set_local 3) + (end) + (block emptyblock) + (block emptyblock) + (get_local 3) + (i32.const 9) + (i32.gt_s) + (br_if 0) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.const -1) + (i32.add) + (tee_local 0) + (i32.add) + (get_local 3) + (i32.const 48) + (i32.add) + (i32.store8 align=1) + (br 1) + (end) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.const -2) + (i32.add) + (tee_local 0) + (i32.add) + (get_local 3) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (end) + (get_local 1) + (i32.const 1) + (i32.const 4752) + (i32.const 0) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 0) + (i32.add) + (i32.const 39) + (get_local 0) + (i32.sub) + (call 122) + (set_local 0) + (i32.const 0) + (get_local 5) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=4) + (get_local 0) + ) + (func 117 (type 0) + (get_local 0) + (i32.load align=4) + (get_local 1) + (get_local 2) + (call 132) + ) + (func 118 (type 6) (local i32 i32 i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 7) + (i32.store align=4 offset=4) + (get_local 0) + (i32.load align=4) + (set_local 0) + (i32.const 0) + (set_local 3) + (get_local 7) + (i32.const 0) + (i32.store align=4 offset=12) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.const 127) + (i32.gt_u) + (br_if 0) + (get_local 7) + (get_local 1) + (i32.store8 align=1 offset=12) + (i32.const 1) + (set_local 6) + (br 1) + (end) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.const 2048) + (i32.ge_u) + (br_if 0) + (i32.const 2) + (set_local 6) + (i32.const 1) + (set_local 5) + (i32.const 192) + (set_local 4) + (i32.const 31) + (set_local 2) + (br 1) + (end) + (block emptyblock) + (get_local 1) + (i32.const 65535) + (i32.gt_u) + (br_if 0) + (get_local 7) + (get_local 1) + (i32.const 12) + (i32.shr_u) + (i32.const 15) + (i32.and) + (i32.const 224) + (i32.or) + (i32.store8 align=1 offset=12) + (i32.const 3) + (set_local 6) + (i32.const 2) + (set_local 5) + (i32.const 128) + (set_local 4) + (i32.const 1) + (set_local 3) + (i32.const 63) + (set_local 2) + (br 1) + (end) + (get_local 7) + (get_local 1) + (i32.const 18) + (i32.shr_u) + (i32.const 240) + (i32.or) + (i32.store8 align=1 offset=12) + (i32.const 63) + (set_local 2) + (i32.const 128) + (set_local 4) + (get_local 7) + (get_local 1) + (i32.const 12) + (i32.shr_u) + (i32.const 63) + (i32.and) + (i32.const 128) + (i32.or) + (i32.store8 align=1 offset=13) + (i32.const 4) + (set_local 6) + (i32.const 3) + (set_local 5) + (i32.const 2) + (set_local 3) + (end) + (get_local 7) + (i32.const 12) + (i32.add) + (get_local 3) + (i32.add) + (get_local 2) + (get_local 1) + (i32.const 6) + (i32.shr_u) + (i32.and) + (get_local 4) + (i32.or) + (i32.store8 align=1) + (get_local 7) + (i32.const 12) + (i32.add) + (get_local 5) + (i32.add) + (get_local 1) + (i32.const 63) + (i32.and) + (i32.const 128) + (i32.or) + (i32.store8 align=1) + (end) + (get_local 0) + (get_local 7) + (i32.const 12) + (i32.add) + (get_local 6) + (call 132) + (set_local 1) + (i32.const 0) + (get_local 7) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (get_local 1) + ) + (func 119 (type 6) (local i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 64) + (i32.sub) + (tee_local 4) + (i32.store align=4 offset=4) + (get_local 0) + (i32.load align=4) + (set_local 0) + (get_local 4) + (i32.const 8) + (i32.add) + (i32.const 16) + (i32.add) + (tee_local 2) + (get_local 1) + (i32.const 16) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 4) + (i32.const 8) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 3) + (get_local 1) + (i32.const 8) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 4) + (get_local 1) + (i64.load align=4) + (i64.store align=8 offset=8) + (get_local 4) + (get_local 0) + (i32.store align=4 offset=36) + (get_local 4) + (i32.const 40) + (i32.add) + (i32.const 16) + (i32.add) + (get_local 2) + (i64.load align=8) + (i64.store align=8) + (get_local 4) + (i32.const 40) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 3) + (i64.load align=8) + (i64.store align=8) + (get_local 4) + (get_local 4) + (i64.load align=8 offset=8) + (i64.store align=8 offset=40) + (get_local 4) + (i32.const 36) + (i32.add) + (i32.const 5236) + (get_local 4) + (i32.const 40) + (i32.add) + (call 121) + (set_local 1) + (i32.const 0) + (get_local 4) + (i32.const 64) + (i32.add) + (i32.store align=4 offset=4) + (get_local 1) + ) + (func 120 (type 6) (local i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 5) + (i32.store align=4 offset=4) + (i32.const 39) + (set_local 4) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4) + (tee_local 0) + (i32.const 10000) + (i32.lt_u) + (br_if 0) + (i32.const 39) + (set_local 4) + (loop emptyblock) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.add) + (tee_local 2) + (i32.const -2) + (i32.add) + (get_local 0) + (i32.const 10000) + (i32.rem_u) + (tee_local 3) + (i32.const 100) + (i32.rem_u) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (get_local 2) + (i32.const -4) + (i32.add) + (get_local 3) + (i32.const 100) + (i32.div_u) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (get_local 4) + (i32.const -4) + (i32.add) + (set_local 4) + (get_local 0) + (i32.const 99999999) + (i32.gt_u) + (set_local 2) + (get_local 0) + (i32.const 10000) + (i32.div_u) + (tee_local 3) + (set_local 0) + (get_local 2) + (br_if 0) + (br 2) + (end) + (unreachable) + (end) + (get_local 0) + (set_local 3) + (end) + (block emptyblock) + (get_local 3) + (i32.const 100) + (i32.lt_s) + (br_if 0) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.const -2) + (i32.add) + (tee_local 4) + (i32.add) + (get_local 3) + (i32.const 100) + (i32.rem_u) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (get_local 3) + (i32.const 100) + (i32.div_u) + (set_local 3) + (end) + (block emptyblock) + (block emptyblock) + (get_local 3) + (i32.const 9) + (i32.gt_s) + (br_if 0) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.const -1) + (i32.add) + (tee_local 0) + (i32.add) + (get_local 3) + (i32.const 48) + (i32.add) + (i32.store8 align=1) + (br 1) + (end) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 4) + (i32.const -2) + (i32.add) + (tee_local 0) + (i32.add) + (get_local 3) + (i32.const 1) + (i32.shl) + (i32.const 4548) + (i32.add) + (i32.load16_u align=2) + (i32.store16 align=1) + (end) + (get_local 1) + (i32.const 1) + (i32.const 4752) + (i32.const 0) + (get_local 5) + (i32.const 9) + (i32.add) + (get_local 0) + (i32.add) + (i32.const 39) + (get_local 0) + (i32.sub) + (call 122) + (set_local 0) + (i32.const 0) + (get_local 5) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=4) + (get_local 0) + ) + (func 121 (type 0) (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i64) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 64) + (i32.sub) + (tee_local 13) + (i32.store align=4 offset=4) + (get_local 13) + (i64.const 137438953472) + (i64.store align=8) + (get_local 13) + (i32.const 0) + (i32.store align=4 offset=8) + (get_local 13) + (i32.const 0) + (i32.store align=4 offset=16) + (get_local 2) + (i32.const 20) + (i32.add) + (i32.load align=4) + (set_local 5) + (get_local 13) + (i32.const 3) + (i32.store8 align=1 offset=48) + (get_local 2) + (i32.load align=4 offset=16) + (set_local 6) + (get_local 13) + (get_local 0) + (i32.store align=4 offset=24) + (get_local 13) + (i32.const 28) + (i32.add) + (tee_local 7) + (get_local 1) + (i32.store align=4) + (get_local 13) + (get_local 6) + (i32.store align=4 offset=32) + (get_local 13) + (i32.const 36) + (i32.add) + (tee_local 8) + (get_local 6) + (get_local 5) + (i32.const 3) + (i32.shl) + (tee_local 0) + (i32.add) + (i32.store align=4) + (get_local 13) + (get_local 6) + (i32.store align=4 offset=40) + (get_local 13) + (i32.const 44) + (i32.add) + (tee_local 9) + (get_local 5) + (i32.store align=4) + (get_local 13) + (get_local 2) + (i32.load align=4) + (tee_local 1) + (i32.store align=4 offset=56) + (get_local 13) + (get_local 1) + (get_local 2) + (i32.load align=4 offset=4) + (i32.const 3) + (i32.shl) + (tee_local 4) + (i32.add) + (tee_local 3) + (i32.store align=4 offset=60) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.load align=4 offset=8) + (tee_local 5) + (i32.eqz) + (br_if 0) + (get_local 5) + (i32.const 28) + (i32.add) + (set_local 0) + (get_local 5) + (get_local 2) + (i32.const 12) + (i32.add) + (i32.load align=4) + (i32.const 36) + (i32.mul) + (i32.add) + (set_local 4) + (get_local 13) + (i32.const 24) + (i32.add) + (set_local 2) + (get_local 13) + (i32.const 48) + (i32.add) + (set_local 10) + (get_local 13) + (i32.const 40) + (i32.add) + (set_local 11) + (loop emptyblock) + (get_local 5) + (get_local 4) + (i32.eq) + (br_if 2) + (get_local 13) + (i32.load align=4 offset=56) + (tee_local 6) + (get_local 3) + (i32.eq) + (br_if 4) + (get_local 13) + (get_local 6) + (i32.const 8) + (i32.add) + (tee_local 1) + (i32.store align=4 offset=56) + (get_local 2) + (i32.load align=4) + (get_local 6) + (i32.load align=4) + (get_local 6) + (i32.load align=4 offset=4) + (get_local 7) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 3) + (get_local 10) + (get_local 5) + (i32.const 32) + (i32.add) + (i32.load8_u align=1) + (i32.store8 align=1) + (get_local 13) + (get_local 5) + (i32.load align=4 offset=8) + (i32.store align=4 offset=4) + (get_local 13) + (get_local 5) + (i32.const 12) + (i32.add) + (i32.load align=4) + (i32.store align=4) + (i64.const 0) + (set_local 14) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 5) + (i32.const 24) + (i32.add) + (i32.load align=4) + (tee_local 6) + (i32.const 1) + (i32.eq) + (br_if 0) + (get_local 6) + (i32.const 3) + (i32.eq) + (br_if 1) + (get_local 6) + (i32.const 2) + (i32.ne) + (br_if 2) + (get_local 13) + (i32.const 32) + (i32.add) + (tee_local 6) + (i32.load align=4) + (tee_local 12) + (get_local 8) + (i32.load align=4) + (i32.eq) + (br_if 4) + (get_local 6) + (get_local 12) + (i32.const 8) + (i32.add) + (i32.store align=4) + (get_local 12) + (i32.load align=4 offset=4) + (i32.const 14) + (i32.ne) + (br_if 5) + (get_local 12) + (i32.load align=4) + (i32.load align=4) + (set_local 6) + (br 3) + (end) + (get_local 0) + (i32.load align=4) + (tee_local 12) + (get_local 9) + (i32.load align=4) + (tee_local 6) + (i32.ge_u) + (br_if 13) + (get_local 11) + (i32.load align=4) + (get_local 12) + (i32.const 3) + (i32.shl) + (i32.add) + (tee_local 12) + (i32.load align=4 offset=4) + (i32.const 14) + (i32.ne) + (br_if 4) + (get_local 12) + (i32.load align=4) + (i32.load align=4) + (set_local 6) + (br 2) + (end) + (br 3) + (end) + (get_local 0) + (i32.load align=4) + (set_local 6) + (end) + (i64.const 1) + (set_local 14) + (br 1) + (end) + (end) + (get_local 13) + (i32.const 8) + (i32.add) + (get_local 6) + (i64.extend_u/i32) + (i64.const 32) + (i64.shl) + (get_local 14) + (i64.or) + (i64.store align=8) + (i64.const 0) + (set_local 14) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 5) + (i32.const 16) + (i32.add) + (i32.load align=4) + (tee_local 6) + (i32.const 1) + (i32.eq) + (br_if 0) + (get_local 6) + (i32.const 3) + (i32.eq) + (br_if 1) + (get_local 6) + (i32.const 2) + (i32.ne) + (br_if 2) + (get_local 13) + (i32.const 32) + (i32.add) + (tee_local 6) + (i32.load align=4) + (tee_local 12) + (get_local 8) + (i32.load align=4) + (i32.eq) + (br_if 4) + (get_local 6) + (get_local 12) + (i32.const 8) + (i32.add) + (i32.store align=4) + (get_local 12) + (i32.load align=4 offset=4) + (i32.const 14) + (i32.ne) + (br_if 5) + (get_local 12) + (i32.load align=4) + (i32.load align=4) + (set_local 6) + (br 3) + (end) + (get_local 0) + (i32.const -8) + (i32.add) + (i32.load align=4) + (tee_local 12) + (get_local 9) + (i32.load align=4) + (tee_local 6) + (i32.ge_u) + (br_if 14) + (get_local 11) + (i32.load align=4) + (get_local 12) + (i32.const 3) + (i32.shl) + (i32.add) + (tee_local 12) + (i32.load align=4 offset=4) + (i32.const 14) + (i32.ne) + (br_if 4) + (get_local 12) + (i32.load align=4) + (i32.load align=4) + (set_local 6) + (br 2) + (end) + (br 3) + (end) + (get_local 0) + (i32.const -8) + (i32.add) + (i32.load align=4) + (set_local 6) + (end) + (i64.const 1) + (set_local 14) + (br 1) + (end) + (end) + (get_local 13) + (i32.const 16) + (i32.add) + (get_local 6) + (i64.extend_u/i32) + (i64.const 32) + (i64.shl) + (get_local 14) + (i64.or) + (i64.store align=8) + (block emptyblock) + (block emptyblock) + (get_local 5) + (i32.load align=4) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 0) + (i32.const -24) + (i32.add) + (i32.load align=4) + (tee_local 6) + (get_local 9) + (i32.load align=4) + (tee_local 12) + (i32.ge_u) + (br_if 8) + (get_local 11) + (i32.load align=4) + (get_local 6) + (i32.const 3) + (i32.shl) + (i32.add) + (set_local 6) + (br 1) + (end) + (get_local 13) + (i32.const 32) + (i32.add) + (tee_local 12) + (i32.load align=4) + (tee_local 6) + (get_local 8) + (i32.load align=4) + (i32.eq) + (br_if 8) + (get_local 12) + (get_local 6) + (i32.const 8) + (i32.add) + (i32.store align=4) + (end) + (get_local 5) + (i32.const 36) + (i32.add) + (set_local 5) + (get_local 0) + (i32.const 36) + (i32.add) + (set_local 0) + (get_local 6) + (i32.load align=4) + (get_local 13) + (get_local 6) + (i32.load align=4 offset=4) + (call_indirect (type 6)) + (i32.eqz) + (br_if 0) + (br 3) + (end) + (unreachable) + (end) + (get_local 13) + (i32.const 24) + (i32.add) + (set_local 9) + (loop emptyblock) + (get_local 0) + (i32.eqz) + (br_if 1) + (get_local 4) + (i32.eqz) + (br_if 1) + (get_local 13) + (get_local 1) + (i32.const 8) + (i32.add) + (tee_local 5) + (i32.store align=4 offset=56) + (get_local 9) + (i32.load align=4) + (get_local 1) + (i32.load align=4) + (get_local 1) + (i32.const 4) + (i32.add) + (i32.load align=4) + (get_local 7) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 2) + (get_local 0) + (i32.const -8) + (i32.add) + (set_local 0) + (get_local 4) + (i32.const -8) + (i32.add) + (set_local 4) + (get_local 6) + (i32.load align=4) + (set_local 2) + (get_local 6) + (i32.load align=4 offset=4) + (set_local 8) + (get_local 5) + (set_local 1) + (get_local 6) + (i32.const 8) + (i32.add) + (set_local 6) + (get_local 2) + (get_local 13) + (get_local 8) + (call_indirect (type 6)) + (i32.eqz) + (br_if 0) + (br 2) + (end) + (unreachable) + (end) + (get_local 1) + (get_local 3) + (i32.eq) + (br_if 1) + (get_local 13) + (get_local 1) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=56) + (get_local 13) + (i32.const 24) + (i32.add) + (i32.load align=4) + (get_local 1) + (i32.load align=4) + (get_local 1) + (i32.load align=4 offset=4) + (get_local 13) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (i32.eqz) + (br_if 1) + (end) + (i32.const 1) + (set_local 5) + (br 1) + (end) + (i32.const 0) + (set_local 5) + (end) + (i32.const 0) + (get_local 13) + (i32.const 64) + (i32.add) + (i32.store align=4 offset=4) + (get_local 5) + (return) + (end) + (i32.const 4792) + (get_local 6) + (get_local 12) + (call 140) + (unreachable) + (end) + (i32.const 4768) + (call 139) + (unreachable) + (end) + (i32.const 4752) + (get_local 12) + (get_local 6) + (call 140) + (unreachable) + (end) + (i32.const 4752) + (get_local 12) + (get_local 6) + (call 140) + (unreachable) + ) + (func 122 (type 15) (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 17) + (i32.store align=4 offset=4) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.eqz) + (br_if 0) + (i32.const 43) + (i32.const 1114112) + (get_local 0) + (i32.load align=4) + (tee_local 7) + (i32.const 1) + (i32.and) + (tee_local 1) + (select) + (set_local 6) + (get_local 1) + (get_local 5) + (i32.add) + (set_local 8) + (br 1) + (end) + (get_local 5) + (i32.const 1) + (i32.add) + (set_local 8) + (get_local 0) + (i32.load align=4) + (set_local 7) + (i32.const 45) + (set_local 6) + (end) + (i32.const 0) + (set_local 12) + (block emptyblock) + (get_local 7) + (i32.const 4) + (i32.and) + (i32.eqz) + (br_if 0) + (block emptyblock) + (block emptyblock) + (get_local 3) + (i32.eqz) + (br_if 0) + (i32.const 0) + (set_local 13) + (get_local 3) + (set_local 12) + (get_local 2) + (set_local 1) + (loop emptyblock) + (get_local 1) + (i32.load8_u align=1) + (i32.const 192) + (i32.and) + (i32.const 128) + (i32.eq) + (get_local 13) + (i32.add) + (set_local 13) + (get_local 1) + (i32.const 1) + (i32.add) + (set_local 1) + (get_local 12) + (i32.const -1) + (i32.add) + (tee_local 12) + (br_if 0) + (br 2) + (end) + (unreachable) + (end) + (i32.const 0) + (set_local 13) + (end) + (get_local 8) + (get_local 3) + (i32.add) + (get_local 13) + (i32.sub) + (set_local 8) + (i32.const 1) + (set_local 12) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=8) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 0) + (i32.const 12) + (i32.add) + (i32.load align=4) + (tee_local 13) + (get_local 8) + (i32.le_u) + (br_if 1) + (get_local 7) + (i32.const 8) + (i32.and) + (br_if 2) + (get_local 13) + (get_local 8) + (i32.sub) + (set_local 9) + (i32.const 1) + (get_local 0) + (i32.load8_u align=1 offset=48) + (tee_local 1) + (get_local 1) + (i32.const 3) + (i32.eq) + (select) + (i32.const 3) + (i32.and) + (tee_local 1) + (i32.const 2) + (i32.eq) + (br_if 6) + (get_local 1) + (i32.eqz) + (br_if 7) + (get_local 9) + (set_local 14) + (i32.const 0) + (set_local 9) + (br 8) + (end) + (get_local 6) + (i32.const 1114112) + (i32.eq) + (br_if 13) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (set_local 13) + (get_local 0) + (i32.load align=4 offset=24) + (set_local 8) + (i32.const 0) + (set_local 1) + (get_local 17) + (i32.const 0) + (i32.store align=4 offset=12) + (get_local 6) + (i32.const 127) + (i32.gt_u) + (br_if 2) + (get_local 17) + (get_local 6) + (i32.store8 align=1 offset=12) + (i32.const 1) + (set_local 7) + (br 12) + (end) + (get_local 6) + (i32.const 1114112) + (i32.eq) + (br_if 18) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (set_local 13) + (get_local 0) + (i32.load align=4 offset=24) + (set_local 8) + (i32.const 0) + (set_local 1) + (get_local 17) + (i32.const 0) + (i32.store align=4 offset=12) + (get_local 6) + (i32.const 127) + (i32.gt_u) + (br_if 2) + (get_local 17) + (get_local 6) + (i32.store8 align=1 offset=12) + (i32.const 1) + (set_local 7) + (br 17) + (end) + (get_local 0) + (i32.const 1) + (i32.store8 align=1 offset=48) + (get_local 0) + (i32.const 48) + (i32.store align=4 offset=4) + (get_local 6) + (i32.const 1114112) + (i32.eq) + (br_if 24) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (set_local 7) + (get_local 0) + (i32.load align=4 offset=24) + (set_local 14) + (i32.const 0) + (set_local 1) + (get_local 17) + (i32.const 0) + (i32.store align=4 offset=12) + (get_local 6) + (i32.const 127) + (i32.gt_u) + (br_if 6) + (get_local 17) + (get_local 6) + (i32.store8 align=1 offset=12) + (i32.const 1) + (set_local 11) + (br 23) + (end) + (get_local 6) + (i32.const 2048) + (i32.ge_u) + (br_if 1) + (i32.const 2) + (set_local 7) + (i32.const 1) + (set_local 14) + (i32.const 192) + (set_local 11) + (br 8) + (end) + (get_local 6) + (i32.const 2048) + (i32.ge_u) + (br_if 5) + (i32.const 2) + (set_local 7) + (i32.const 1) + (set_local 14) + (i32.const 192) + (set_local 11) + (br 13) + (end) + (get_local 6) + (i32.const 65535) + (i32.gt_u) + (br_if 5) + (get_local 17) + (i32.const 224) + (i32.store8 align=1 offset=12) + (i32.const 3) + (set_local 7) + (i32.const 2) + (set_local 14) + (i32.const 128) + (set_local 11) + (i32.const 1) + (set_local 1) + (br 6) + (end) + (get_local 9) + (i32.const 1) + (i32.shr_u) + (set_local 14) + (get_local 9) + (i32.const 1) + (i32.add) + (i32.const 1) + (i32.shr_u) + (set_local 9) + (br 1) + (end) + (i32.const 0) + (set_local 14) + (end) + (i32.const 0) + (set_local 13) + (get_local 17) + (i32.const 0) + (i32.store align=4 offset=8) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (tee_local 1) + (i32.const 127) + (i32.gt_u) + (br_if 0) + (get_local 17) + (get_local 1) + (i32.store8 align=1 offset=8) + (i32.const 1) + (set_local 7) + (br 15) + (end) + (get_local 1) + (i32.const 2048) + (i32.ge_u) + (br_if 6) + (i32.const 2) + (set_local 7) + (i32.const 1) + (set_local 8) + (i32.const 192) + (set_local 11) + (i32.const 31) + (set_local 10) + (br 13) + (end) + (get_local 6) + (i32.const 2048) + (i32.ge_u) + (br_if 6) + (i32.const 2) + (set_local 11) + (i32.const 1) + (set_local 9) + (i32.const 192) + (set_local 10) + (br 15) + (end) + (get_local 6) + (i32.const 65535) + (i32.gt_u) + (br_if 6) + (get_local 17) + (i32.const 224) + (i32.store8 align=1 offset=12) + (i32.const 3) + (set_local 7) + (i32.const 2) + (set_local 14) + (i32.const 128) + (set_local 11) + (i32.const 1) + (set_local 1) + (br 7) + (end) + (i32.const 128) + (set_local 11) + (get_local 17) + (get_local 6) + (i32.const 12) + (i32.shr_u) + (i32.const 128) + (i32.or) + (i32.store8 align=1 offset=13) + (get_local 17) + (get_local 6) + (i32.const 18) + (i32.shr_u) + (i32.const 240) + (i32.or) + (i32.store8 align=1 offset=12) + (i32.const 4) + (set_local 7) + (i32.const 3) + (set_local 14) + (i32.const 2) + (set_local 1) + (end) + (get_local 17) + (i32.const 12) + (i32.add) + (get_local 1) + (i32.add) + (get_local 11) + (i32.store8 align=1) + (get_local 17) + (i32.const 12) + (i32.add) + (get_local 14) + (i32.add) + (get_local 6) + (i32.const 128) + (i32.or) + (i32.store8 align=1) + (end) + (i32.const 1) + (set_local 1) + (get_local 8) + (get_local 17) + (i32.const 12) + (i32.add) + (get_local 7) + (get_local 13) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 20) + (end) + (block emptyblock) + (get_local 12) + (i32.eqz) + (br_if 0) + (i32.const 1) + (set_local 1) + (get_local 0) + (i32.const 24) + (i32.add) + (i32.load align=4) + (get_local 2) + (get_local 3) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 20) + (end) + (get_local 0) + (i32.const 24) + (i32.add) + (i32.load align=4) + (get_local 4) + (get_local 5) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (set_local 1) + (br 19) + (end) + (get_local 1) + (i32.const 65535) + (i32.gt_u) + (br_if 5) + (get_local 17) + (get_local 1) + (i32.const 12) + (i32.shr_u) + (i32.const 15) + (i32.and) + (i32.const 224) + (i32.or) + (i32.store8 align=1 offset=8) + (i32.const 3) + (set_local 7) + (i32.const 2) + (set_local 8) + (i32.const 128) + (set_local 11) + (i32.const 1) + (set_local 13) + (i32.const 63) + (set_local 10) + (br 6) + (end) + (get_local 6) + (i32.const 65535) + (i32.gt_u) + (br_if 7) + (get_local 17) + (i32.const 224) + (i32.store8 align=1 offset=12) + (i32.const 3) + (set_local 11) + (i32.const 2) + (set_local 9) + (i32.const 128) + (set_local 10) + (i32.const 1) + (set_local 1) + (br 8) + (end) + (i32.const 128) + (set_local 11) + (get_local 17) + (get_local 6) + (i32.const 12) + (i32.shr_u) + (i32.const 128) + (i32.or) + (i32.store8 align=1 offset=13) + (get_local 17) + (get_local 6) + (i32.const 18) + (i32.shr_u) + (i32.const 240) + (i32.or) + (i32.store8 align=1 offset=12) + (i32.const 4) + (set_local 7) + (i32.const 3) + (set_local 14) + (i32.const 2) + (set_local 1) + (end) + (get_local 17) + (i32.const 12) + (i32.add) + (get_local 1) + (i32.add) + (get_local 11) + (i32.store8 align=1) + (get_local 17) + (i32.const 12) + (i32.add) + (get_local 14) + (i32.add) + (get_local 6) + (i32.const 128) + (i32.or) + (i32.store8 align=1) + (end) + (i32.const 1) + (set_local 1) + (get_local 8) + (get_local 17) + (i32.const 12) + (i32.add) + (get_local 7) + (get_local 13) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 14) + (end) + (block emptyblock) + (get_local 12) + (i32.eqz) + (br_if 0) + (i32.const 1) + (set_local 1) + (get_local 0) + (i32.const 24) + (i32.add) + (i32.load align=4) + (get_local 2) + (get_local 3) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 14) + (end) + (get_local 0) + (i32.const 24) + (i32.add) + (i32.load align=4) + (get_local 4) + (get_local 5) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (set_local 1) + (br 13) + (end) + (get_local 17) + (get_local 1) + (i32.const 18) + (i32.shr_u) + (i32.const 240) + (i32.or) + (i32.store8 align=1 offset=8) + (i32.const 63) + (set_local 10) + (i32.const 128) + (set_local 11) + (get_local 17) + (get_local 1) + (i32.const 12) + (i32.shr_u) + (i32.const 63) + (i32.and) + (i32.const 128) + (i32.or) + (i32.store8 align=1 offset=9) + (i32.const 4) + (set_local 7) + (i32.const 3) + (set_local 8) + (i32.const 2) + (set_local 13) + (end) + (get_local 17) + (i32.const 8) + (i32.add) + (get_local 13) + (i32.add) + (get_local 10) + (get_local 1) + (i32.const 6) + (i32.shr_u) + (i32.and) + (get_local 11) + (i32.or) + (i32.store8 align=1) + (get_local 17) + (i32.const 8) + (i32.add) + (get_local 8) + (i32.add) + (get_local 1) + (i32.const 63) + (i32.and) + (i32.const 128) + (i32.or) + (i32.store8 align=1) + (end) + (get_local 0) + (i32.load align=4 offset=24) + (set_local 8) + (i32.const 0) + (set_local 1) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (tee_local 10) + (i32.const 12) + (i32.add) + (set_local 11) + (block emptyblock) + (loop emptyblock) + (get_local 1) + (get_local 14) + (i32.ge_u) + (br_if 1) + (get_local 1) + (i32.const 1) + (i32.add) + (tee_local 13) + (get_local 1) + (i32.lt_u) + (br_if 1) + (get_local 13) + (set_local 1) + (get_local 8) + (get_local 17) + (i32.const 8) + (i32.add) + (get_local 7) + (get_local 11) + (i32.load align=4) + (call_indirect (type 0)) + (i32.eqz) + (br_if 0) + (br 10) + (end) + (unreachable) + (end) + (get_local 6) + (i32.const 1114112) + (i32.eq) + (br_if 7) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (set_local 1) + (get_local 0) + (i32.const 24) + (i32.add) + (i32.load align=4) + (set_local 13) + (i32.const 0) + (set_local 11) + (get_local 17) + (i32.const 0) + (i32.store align=4 offset=12) + (block emptyblock) + (get_local 6) + (i32.const 127) + (i32.gt_u) + (br_if 0) + (get_local 17) + (get_local 6) + (i32.store8 align=1 offset=12) + (i32.const 1) + (set_local 14) + (br 7) + (end) + (block emptyblock) + (get_local 6) + (i32.const 2048) + (i32.ge_u) + (br_if 0) + (i32.const 2) + (set_local 14) + (i32.const 1) + (set_local 16) + (i32.const 192) + (set_local 15) + (br 6) + (end) + (get_local 6) + (i32.const 65535) + (i32.gt_u) + (br_if 4) + (get_local 17) + (i32.const 224) + (i32.store8 align=1 offset=12) + (i32.const 3) + (set_local 14) + (i32.const 2) + (set_local 16) + (i32.const 128) + (set_local 15) + (i32.const 1) + (set_local 11) + (br 5) + (end) + (i32.const 128) + (set_local 10) + (get_local 17) + (get_local 6) + (i32.const 12) + (i32.shr_u) + (i32.const 128) + (i32.or) + (i32.store8 align=1 offset=13) + (get_local 17) + (get_local 6) + (i32.const 18) + (i32.shr_u) + (i32.const 240) + (i32.or) + (i32.store8 align=1 offset=12) + (i32.const 4) + (set_local 11) + (i32.const 3) + (set_local 9) + (i32.const 2) + (set_local 1) + (end) + (get_local 17) + (i32.const 12) + (i32.add) + (get_local 1) + (i32.add) + (get_local 10) + (i32.store8 align=1) + (get_local 17) + (i32.const 12) + (i32.add) + (get_local 9) + (i32.add) + (get_local 6) + (i32.const 128) + (i32.or) + (i32.store8 align=1) + (end) + (i32.const 1) + (set_local 1) + (get_local 14) + (get_local 17) + (i32.const 12) + (i32.add) + (get_local 11) + (get_local 7) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 7) + (end) + (block emptyblock) + (get_local 12) + (i32.eqz) + (br_if 0) + (i32.const 1) + (set_local 1) + (get_local 0) + (i32.const 24) + (i32.add) + (i32.load align=4) + (get_local 2) + (get_local 3) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 7) + (end) + (i32.const 0) + (set_local 1) + (get_local 17) + (i32.const 0) + (i32.store align=4 offset=12) + (get_local 17) + (i32.const 48) + (i32.store8 align=1 offset=12) + (get_local 13) + (get_local 8) + (i32.sub) + (set_local 12) + (get_local 0) + (i32.const 24) + (i32.add) + (i32.load align=4) + (set_local 6) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (tee_local 3) + (i32.const 12) + (i32.add) + (set_local 0) + (block emptyblock) + (loop emptyblock) + (get_local 1) + (get_local 12) + (i32.ge_u) + (br_if 1) + (get_local 1) + (i32.const 1) + (i32.add) + (tee_local 13) + (get_local 1) + (i32.lt_u) + (br_if 1) + (get_local 13) + (set_local 1) + (get_local 6) + (get_local 17) + (i32.const 12) + (i32.add) + (i32.const 1) + (get_local 0) + (i32.load align=4) + (call_indirect (type 0)) + (i32.eqz) + (br_if 0) + (br 6) + (end) + (unreachable) + (end) + (get_local 6) + (get_local 4) + (get_local 5) + (get_local 3) + (i32.const 12) + (i32.add) + (i32.load align=4) + (call_indirect (type 0)) + (br_if 4) + (i32.const 0) + (set_local 1) + (br 6) + (end) + (i32.const 128) + (set_local 15) + (get_local 17) + (get_local 6) + (i32.const 12) + (i32.shr_u) + (i32.const 128) + (i32.or) + (i32.store8 align=1 offset=13) + (get_local 17) + (get_local 6) + (i32.const 18) + (i32.shr_u) + (i32.const 240) + (i32.or) + (i32.store8 align=1 offset=12) + (i32.const 4) + (set_local 14) + (i32.const 3) + (set_local 16) + (i32.const 2) + (set_local 11) + (end) + (get_local 17) + (i32.const 12) + (i32.add) + (get_local 11) + (i32.add) + (get_local 15) + (i32.store8 align=1) + (get_local 17) + (i32.const 12) + (i32.add) + (get_local 16) + (i32.add) + (get_local 6) + (i32.const 128) + (i32.or) + (i32.store8 align=1) + (end) + (get_local 13) + (get_local 17) + (i32.const 12) + (i32.add) + (get_local 14) + (get_local 1) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 1) + (end) + (block emptyblock) + (get_local 12) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.const 24) + (i32.add) + (i32.load align=4) + (get_local 2) + (get_local 3) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 1) + (end) + (get_local 8) + (get_local 4) + (get_local 5) + (get_local 10) + (i32.const 12) + (i32.add) + (i32.load align=4) + (tee_local 12) + (call_indirect (type 0)) + (br_if 0) + (i32.const 0) + (set_local 1) + (loop emptyblock) + (get_local 1) + (get_local 9) + (i32.ge_u) + (br_if 2) + (get_local 1) + (i32.const 1) + (i32.add) + (tee_local 13) + (get_local 1) + (i32.lt_u) + (br_if 2) + (get_local 13) + (set_local 1) + (get_local 8) + (get_local 17) + (i32.const 8) + (i32.add) + (get_local 7) + (get_local 12) + (call_indirect (type 0)) + (i32.eqz) + (br_if 0) + (end) + (end) + (i32.const 1) + (set_local 1) + (br 1) + (end) + (i32.const 0) + (set_local 1) + (end) + (i32.const 0) + (get_local 17) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (get_local 1) + ) + (func 123 (type 0) (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 14) + (i32.store align=4 offset=4) + (get_local 0) + (i32.load align=4 offset=16) + (set_local 12) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=8) + (tee_local 3) + (i32.const 1) + (i32.ne) + (br_if 0) + (get_local 12) + (br_if 1) + (br 16) + (end) + (get_local 12) + (i32.eqz) + (br_if 1) + (end) + (get_local 1) + (get_local 2) + (i32.add) + (set_local 4) + (get_local 0) + (i32.const 20) + (i32.add) + (i32.load align=4) + (tee_local 8) + (i32.eqz) + (br_if 1) + (get_local 2) + (i32.eqz) + (br_if 12) + (get_local 1) + (i32.const 1) + (i32.add) + (set_local 13) + (get_local 1) + (i32.load8_s align=1) + (tee_local 12) + (i32.const -1) + (i32.gt_s) + (br_if 8) + (get_local 2) + (i32.const 1) + (i32.ne) + (br_if 2) + (i32.const 0) + (set_local 7) + (get_local 4) + (set_local 10) + (br 3) + (end) + (get_local 0) + (i32.load align=4 offset=24) + (get_local 1) + (get_local 2) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (set_local 12) + (br 17) + (end) + (get_local 2) + (i32.eqz) + (br_if 9) + (get_local 1) + (i32.load8_s align=1) + (tee_local 12) + (i32.const -1) + (i32.gt_s) + (br_if 9) + (i32.const 0) + (set_local 8) + (get_local 4) + (set_local 13) + (block emptyblock) + (get_local 2) + (i32.const 1) + (i32.eq) + (br_if 0) + (get_local 1) + (i32.const 2) + (i32.add) + (set_local 13) + (get_local 1) + (i32.const 1) + (i32.add) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 8) + (end) + (get_local 12) + (i32.const 255) + (i32.and) + (i32.const 223) + (i32.le_u) + (br_if 9) + (get_local 13) + (get_local 4) + (i32.eq) + (br_if 2) + (get_local 13) + (i32.const 1) + (i32.add) + (set_local 10) + (get_local 13) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 13) + (br 3) + (end) + (get_local 1) + (i32.const 1) + (i32.add) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 7) + (get_local 1) + (i32.const 2) + (i32.add) + (tee_local 13) + (set_local 10) + (end) + (get_local 12) + (i32.const 255) + (i32.and) + (i32.const 223) + (i32.le_u) + (br_if 4) + (block emptyblock) + (block emptyblock) + (get_local 10) + (get_local 4) + (i32.eq) + (br_if 0) + (get_local 10) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 5) + (get_local 10) + (i32.const 1) + (i32.add) + (tee_local 13) + (set_local 10) + (br 1) + (end) + (i32.const 0) + (set_local 5) + (get_local 4) + (set_local 10) + (end) + (get_local 12) + (i32.const 255) + (i32.and) + (i32.const 240) + (i32.lt_u) + (br_if 4) + (get_local 12) + (i32.const 31) + (i32.and) + (set_local 12) + (get_local 5) + (i32.const 255) + (i32.and) + (get_local 7) + (i32.const 255) + (i32.and) + (i32.const 6) + (i32.shl) + (i32.or) + (set_local 7) + (get_local 10) + (get_local 4) + (i32.eq) + (br_if 2) + (get_local 10) + (i32.const 1) + (i32.add) + (set_local 13) + (get_local 10) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 10) + (br 3) + (end) + (i32.const 0) + (set_local 13) + (get_local 4) + (set_local 10) + (end) + (get_local 12) + (i32.const 255) + (i32.and) + (i32.const 240) + (i32.lt_u) + (br_if 5) + (get_local 12) + (i32.const 255) + (i32.and) + (set_local 12) + (get_local 13) + (i32.const 255) + (i32.and) + (get_local 8) + (i32.const 255) + (i32.and) + (i32.const 6) + (i32.shl) + (i32.or) + (set_local 13) + (get_local 10) + (get_local 4) + (i32.eq) + (br_if 3) + (get_local 10) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 8) + (br 4) + (end) + (i32.const 0) + (set_local 10) + (end) + (get_local 7) + (i32.const 6) + (i32.shl) + (get_local 12) + (i32.const 18) + (i32.shl) + (i32.const 1835008) + (i32.and) + (i32.or) + (get_local 10) + (i32.const 255) + (i32.and) + (i32.or) + (i32.const 1114112) + (i32.eq) + (br_if 4) + (end) + (block emptyblock) + (block emptyblock) + (get_local 8) + (i32.eqz) + (br_if 0) + (get_local 13) + (get_local 1) + (i32.sub) + (set_local 12) + (loop emptyblock) + (get_local 12) + (set_local 10) + (get_local 13) + (tee_local 12) + (get_local 4) + (i32.eq) + (br_if 6) + (get_local 12) + (i32.const 1) + (i32.add) + (set_local 13) + (block emptyblock) + (get_local 12) + (i32.load8_s align=1) + (tee_local 7) + (i32.const -1) + (i32.gt_s) + (br_if 0) + (block emptyblock) + (block emptyblock) + (get_local 13) + (get_local 4) + (i32.eq) + (br_if 0) + (get_local 12) + (i32.const 1) + (i32.add) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 6) + (get_local 12) + (i32.const 2) + (i32.add) + (tee_local 13) + (set_local 5) + (br 1) + (end) + (i32.const 0) + (set_local 6) + (get_local 4) + (set_local 5) + (end) + (get_local 7) + (i32.const 255) + (i32.and) + (tee_local 9) + (i32.const 223) + (i32.le_u) + (br_if 0) + (block emptyblock) + (block emptyblock) + (get_local 5) + (get_local 4) + (i32.eq) + (br_if 0) + (get_local 5) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 11) + (get_local 5) + (i32.const 1) + (i32.add) + (tee_local 13) + (set_local 5) + (get_local 9) + (i32.const 240) + (i32.ge_u) + (br_if 1) + (br 2) + (end) + (i32.const 0) + (set_local 11) + (get_local 4) + (set_local 5) + (get_local 9) + (i32.const 240) + (i32.lt_u) + (br_if 1) + (end) + (get_local 7) + (i32.const 31) + (i32.and) + (set_local 7) + (get_local 11) + (i32.const 255) + (i32.and) + (get_local 6) + (i32.const 255) + (i32.and) + (i32.const 6) + (i32.shl) + (i32.or) + (set_local 9) + (block emptyblock) + (block emptyblock) + (get_local 5) + (get_local 4) + (i32.eq) + (br_if 0) + (get_local 5) + (i32.const 1) + (i32.add) + (set_local 13) + (get_local 5) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 5) + (br 1) + (end) + (i32.const 0) + (set_local 5) + (end) + (get_local 9) + (i32.const 6) + (i32.shl) + (get_local 7) + (i32.const 18) + (i32.shl) + (i32.const 1835008) + (i32.and) + (i32.or) + (get_local 5) + (i32.const 255) + (i32.and) + (i32.or) + (i32.const 1114112) + (i32.eq) + (br_if 7) + (end) + (get_local 13) + (get_local 12) + (i32.sub) + (get_local 10) + (i32.add) + (set_local 12) + (get_local 8) + (i32.const -1) + (i32.add) + (tee_local 8) + (br_if 0) + (end) + (get_local 10) + (i32.eqz) + (br_if 1) + (br 6) + (end) + (i32.const 0) + (set_local 10) + (i32.const 0) + (br_if 5) + (end) + (get_local 10) + (set_local 2) + (get_local 3) + (br_if 5) + (br 6) + (end) + (i32.const 0) + (set_local 8) + (end) + (get_local 13) + (i32.const 6) + (i32.shl) + (get_local 12) + (i32.const 18) + (i32.shl) + (i32.const 1835008) + (i32.and) + (i32.or) + (get_local 8) + (i32.const 255) + (i32.and) + (i32.or) + (i32.const 1114112) + (i32.eq) + (br_if 1) + (end) + (i32.const 0) + (set_local 2) + (end) + (get_local 3) + (i32.eqz) + (br_if 2) + (br 1) + (end) + (block emptyblock) + (get_local 10) + (get_local 2) + (i32.eq) + (br_if 0) + (get_local 10) + (get_local 2) + (i32.ge_u) + (br_if 6) + (get_local 1) + (get_local 10) + (i32.add) + (i32.load8_s align=1) + (i32.const -65) + (i32.le_s) + (br_if 6) + (end) + (get_local 10) + (set_local 2) + (get_local 3) + (i32.eqz) + (br_if 1) + (end) + (get_local 0) + (i32.const 12) + (i32.add) + (i32.load align=4) + (set_local 10) + (get_local 2) + (i32.eqz) + (br_if 1) + (get_local 1) + (get_local 2) + (i32.add) + (set_local 8) + (i32.const 0) + (set_local 13) + (get_local 1) + (set_local 12) + (loop emptyblock) + (get_local 12) + (i32.load8_u align=1) + (i32.const 192) + (i32.and) + (i32.const 128) + (i32.eq) + (get_local 13) + (i32.add) + (set_local 13) + (get_local 8) + (get_local 12) + (i32.const 1) + (i32.add) + (tee_local 12) + (i32.ne) + (br_if 0) + (br 3) + (end) + (unreachable) + (end) + (get_local 0) + (i32.load align=4 offset=24) + (get_local 1) + (get_local 2) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (set_local 12) + (br 2) + (end) + (i32.const 0) + (set_local 13) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 2) + (get_local 13) + (i32.sub) + (get_local 10) + (i32.ge_u) + (br_if 0) + (i32.const 0) + (set_local 13) + (block emptyblock) + (get_local 2) + (i32.eqz) + (br_if 0) + (get_local 1) + (get_local 2) + (i32.add) + (set_local 8) + (i32.const 0) + (set_local 13) + (get_local 1) + (set_local 12) + (loop emptyblock) + (get_local 12) + (i32.load8_u align=1) + (i32.const 192) + (i32.and) + (i32.const 128) + (i32.eq) + (get_local 13) + (i32.add) + (set_local 13) + (get_local 8) + (get_local 12) + (i32.const 1) + (i32.add) + (tee_local 12) + (i32.ne) + (br_if 0) + (end) + (end) + (get_local 13) + (get_local 2) + (i32.sub) + (get_local 10) + (i32.add) + (set_local 7) + (i32.const 0) + (get_local 0) + (i32.load8_u align=1 offset=48) + (tee_local 12) + (get_local 12) + (i32.const 3) + (i32.eq) + (select) + (i32.const 3) + (i32.and) + (tee_local 12) + (i32.const 2) + (i32.eq) + (br_if 1) + (get_local 12) + (i32.eqz) + (br_if 2) + (get_local 7) + (set_local 4) + (i32.const 0) + (set_local 7) + (br 3) + (end) + (get_local 0) + (i32.load align=4 offset=24) + (get_local 1) + (get_local 2) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (set_local 12) + (br 3) + (end) + (get_local 7) + (i32.const 1) + (i32.shr_u) + (set_local 4) + (get_local 7) + (i32.const 1) + (i32.add) + (i32.const 1) + (i32.shr_u) + (set_local 7) + (br 1) + (end) + (i32.const 0) + (set_local 4) + (end) + (i32.const 0) + (set_local 13) + (get_local 14) + (i32.const 0) + (i32.store align=4 offset=12) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4 offset=4) + (tee_local 12) + (i32.const 127) + (i32.gt_u) + (br_if 0) + (get_local 14) + (get_local 12) + (i32.store8 align=1 offset=12) + (i32.const 1) + (set_local 10) + (br 1) + (end) + (block emptyblock) + (block emptyblock) + (get_local 12) + (i32.const 2048) + (i32.ge_u) + (br_if 0) + (i32.const 2) + (set_local 10) + (i32.const 1) + (set_local 8) + (i32.const 192) + (set_local 5) + (i32.const 31) + (set_local 9) + (br 1) + (end) + (block emptyblock) + (get_local 12) + (i32.const 65535) + (i32.gt_u) + (br_if 0) + (get_local 14) + (get_local 12) + (i32.const 12) + (i32.shr_u) + (i32.const 15) + (i32.and) + (i32.const 224) + (i32.or) + (i32.store8 align=1 offset=12) + (i32.const 3) + (set_local 10) + (i32.const 2) + (set_local 8) + (i32.const 128) + (set_local 5) + (i32.const 1) + (set_local 13) + (i32.const 63) + (set_local 9) + (br 1) + (end) + (get_local 14) + (get_local 12) + (i32.const 18) + (i32.shr_u) + (i32.const 240) + (i32.or) + (i32.store8 align=1 offset=12) + (i32.const 63) + (set_local 9) + (i32.const 128) + (set_local 5) + (get_local 14) + (get_local 12) + (i32.const 12) + (i32.shr_u) + (i32.const 63) + (i32.and) + (i32.const 128) + (i32.or) + (i32.store8 align=1 offset=13) + (i32.const 4) + (set_local 10) + (i32.const 3) + (set_local 8) + (i32.const 2) + (set_local 13) + (end) + (get_local 14) + (i32.const 12) + (i32.add) + (get_local 13) + (i32.add) + (get_local 9) + (get_local 12) + (i32.const 6) + (i32.shr_u) + (i32.and) + (get_local 5) + (i32.or) + (i32.store8 align=1) + (get_local 14) + (i32.const 12) + (i32.add) + (get_local 8) + (i32.add) + (get_local 12) + (i32.const 63) + (i32.and) + (i32.const 128) + (i32.or) + (i32.store8 align=1) + (end) + (get_local 0) + (i32.load align=4 offset=24) + (set_local 8) + (i32.const 0) + (set_local 12) + (get_local 0) + (i32.const 28) + (i32.add) + (i32.load align=4) + (tee_local 5) + (i32.const 12) + (i32.add) + (set_local 0) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (loop emptyblock) + (get_local 12) + (get_local 4) + (i32.ge_u) + (br_if 1) + (get_local 12) + (i32.const 1) + (i32.add) + (tee_local 13) + (get_local 12) + (i32.lt_u) + (br_if 1) + (get_local 13) + (set_local 12) + (get_local 8) + (get_local 14) + (i32.const 12) + (i32.add) + (get_local 10) + (get_local 0) + (i32.load align=4) + (call_indirect (type 0)) + (i32.eqz) + (br_if 0) + (br 2) + (end) + (unreachable) + (end) + (get_local 8) + (get_local 1) + (get_local 2) + (get_local 5) + (i32.const 12) + (i32.add) + (i32.load align=4) + (tee_local 0) + (call_indirect (type 0)) + (br_if 0) + (i32.const 0) + (set_local 12) + (loop emptyblock) + (get_local 12) + (get_local 7) + (i32.ge_u) + (br_if 2) + (get_local 12) + (i32.const 1) + (i32.add) + (tee_local 13) + (get_local 12) + (i32.lt_u) + (br_if 2) + (get_local 13) + (set_local 12) + (get_local 8) + (get_local 14) + (i32.const 12) + (i32.add) + (get_local 10) + (get_local 0) + (call_indirect (type 0)) + (i32.eqz) + (br_if 0) + (end) + (end) + (i32.const 1) + (set_local 12) + (br 1) + (end) + (i32.const 0) + (set_local 12) + (end) + (i32.const 0) + (get_local 14) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (get_local 12) + (return) + (end) + (get_local 1) + (get_local 2) + (i32.const 0) + (get_local 10) + (call 144) + (unreachable) + ) + (func 124 (type 0) (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i64) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.load align=4 offset=24) + (tee_local 3) + (i32.const 34) + (get_local 2) + (i32.const 28) + (i32.add) + (i32.load align=4) + (tee_local 2) + (i32.load align=4 offset=16) + (tee_local 4) + (call_indirect (type 6)) + (br_if 0) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.eqz) + (br_if 0) + (get_local 0) + (get_local 1) + (i32.add) + (set_local 5) + (get_local 2) + (i32.const 12) + (i32.add) + (set_local 6) + (get_local 0) + (set_local 2) + (i32.const 0) + (set_local 16) + (i32.const 0) + (set_local 7) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (loop emptyblock) + (get_local 2) + (set_local 8) + (get_local 2) + (i32.const 1) + (i32.add) + (set_local 14) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.load8_s align=1) + (tee_local 9) + (i32.const -1) + (i32.le_s) + (br_if 0) + (get_local 9) + (i32.const 255) + (i32.and) + (set_local 9) + (br 1) + (end) + (block emptyblock) + (block emptyblock) + (get_local 14) + (get_local 5) + (i32.eq) + (br_if 0) + (get_local 14) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 12) + (get_local 2) + (i32.const 2) + (i32.add) + (tee_local 2) + (set_local 14) + (br 1) + (end) + (i32.const 0) + (set_local 12) + (get_local 5) + (set_local 2) + (end) + (get_local 9) + (i32.const 31) + (i32.and) + (set_local 13) + (get_local 12) + (i32.const 255) + (i32.and) + (set_local 12) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 9) + (i32.const 255) + (i32.and) + (tee_local 9) + (i32.const 223) + (i32.le_u) + (br_if 0) + (get_local 2) + (get_local 5) + (i32.eq) + (br_if 1) + (get_local 2) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 15) + (get_local 2) + (i32.const 1) + (i32.add) + (tee_local 14) + (set_local 10) + (br 2) + (end) + (get_local 12) + (get_local 13) + (i32.const 6) + (i32.shl) + (i32.or) + (set_local 9) + (br 2) + (end) + (i32.const 0) + (set_local 15) + (get_local 5) + (set_local 10) + (end) + (get_local 15) + (i32.const 255) + (i32.and) + (get_local 12) + (i32.const 6) + (i32.shl) + (i32.or) + (set_local 12) + (block emptyblock) + (get_local 9) + (i32.const 240) + (i32.lt_u) + (br_if 0) + (get_local 10) + (get_local 5) + (i32.eq) + (br_if 2) + (get_local 10) + (i32.const 1) + (i32.add) + (set_local 2) + (get_local 10) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 9) + (br 3) + (end) + (get_local 12) + (get_local 13) + (i32.const 12) + (i32.shl) + (i32.or) + (set_local 9) + (end) + (get_local 14) + (set_local 2) + (br 2) + (end) + (i32.const 0) + (set_local 9) + (get_local 14) + (set_local 2) + (end) + (get_local 12) + (i32.const 6) + (i32.shl) + (get_local 13) + (i32.const 18) + (i32.shl) + (i32.const 1835008) + (i32.and) + (i32.or) + (get_local 9) + (i32.const 255) + (i32.and) + (i32.or) + (tee_local 9) + (i32.const 1114112) + (i32.eq) + (br_if 2) + (end) + (i32.const 2) + (set_local 14) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 9) + (i32.const -9) + (i32.add) + (tee_local 10) + (i32.const 30) + (i32.gt_u) + (br_if 0) + (i32.const 116) + (set_local 13) + (i32.const 9) + (set_local 12) + (block emptyblock) + (get_local 10) + (br_table [Ref(space=label,index=9,name=None), Ref(space=label,index=0,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=3,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=6,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=6,name=None), Ref(space=label,index=9,name=None)]) + (end) + (i32.const 110) + (set_local 13) + (br 3) + (end) + (get_local 9) + (i32.const 92) + (i32.eq) + (br_if 4) + (end) + (get_local 9) + (i32.const 65535) + (i32.gt_u) + (br_if 2) + (i32.const 1) + (set_local 14) + (get_local 9) + (i32.const 5488) + (i32.const 41) + (i32.const 5584) + (i32.const 304) + (i32.const 5888) + (i32.const 326) + (call 138) + (i32.eqz) + (br_if 4) + (br 3) + (end) + (i32.const 114) + (set_local 13) + (end) + (get_local 9) + (set_local 12) + (br 4) + (end) + (block emptyblock) + (get_local 9) + (i32.const 131072) + (i32.ge_u) + (br_if 0) + (i32.const 1) + (set_local 14) + (get_local 9) + (i32.const 6224) + (i32.const 33) + (i32.const 6304) + (i32.const 150) + (i32.const 6464) + (i32.const 360) + (call 138) + (br_if 1) + (br 2) + (end) + (get_local 9) + (i32.const -918000) + (i32.add) + (i32.const 196112) + (i32.lt_u) + (br_if 1) + (i32.const 1) + (set_local 14) + (get_local 9) + (i32.const -195102) + (i32.add) + (i32.const 722657) + (i32.gt_u) + (get_local 9) + (i32.const -191457) + (i32.add) + (i32.const 3102) + (i32.gt_u) + (get_local 9) + (i32.const -183970) + (i32.add) + (i32.const 13) + (i32.gt_u) + (get_local 9) + (i32.const 2097150) + (i32.and) + (i32.const 178206) + (i32.ne) + (get_local 9) + (i32.const -173783) + (i32.add) + (i32.const 40) + (i32.gt_u) + (get_local 9) + (i32.const -177973) + (i32.add) + (i32.const 10) + (i32.gt_u) + (i32.and) + (i32.and) + (i32.and) + (i32.and) + (i32.and) + (i32.eqz) + (br_if 1) + (end) + (get_local 9) + (set_local 12) + (br 1) + (end) + (get_local 9) + (i32.const 1) + (i32.or) + (i32.clz) + (i32.const 2) + (i32.shr_u) + (i32.const 7) + (i32.xor) + (i64.extend_u/i32) + (i64.const 21474836480) + (i64.or) + (set_local 17) + (i32.const 3) + (set_local 14) + (get_local 9) + (set_local 12) + (end) + (get_local 9) + (set_local 13) + (end) + (block emptyblock) + (get_local 14) + (i32.const 3) + (i32.and) + (tee_local 9) + (i32.const 1) + (i32.eq) + (br_if 0) + (block emptyblock) + (get_local 9) + (i32.const 3) + (i32.ne) + (br_if 0) + (get_local 17) + (i64.const 32) + (i64.shr_u) + (i32.wrap/i64) + (i32.const 255) + (i32.and) + (i32.const 4) + (i32.xor) + (i32.const 2) + (i32.shl) + (i32.const 7120) + (i32.add) + (i32.load align=4) + (get_local 17) + (i32.wrap/i64) + (i32.add) + (i32.const 1) + (i32.eq) + (br_if 1) + (end) + (get_local 7) + (get_local 16) + (i32.lt_u) + (br_if 5) + (block emptyblock) + (get_local 16) + (i32.eqz) + (br_if 0) + (get_local 16) + (get_local 1) + (i32.eq) + (br_if 0) + (get_local 16) + (get_local 1) + (i32.ge_u) + (br_if 6) + (get_local 0) + (get_local 16) + (i32.add) + (i32.load8_s align=1) + (i32.const -65) + (i32.le_s) + (br_if 6) + (end) + (block emptyblock) + (get_local 7) + (i32.eqz) + (br_if 0) + (get_local 7) + (get_local 1) + (i32.eq) + (br_if 0) + (get_local 7) + (get_local 1) + (i32.ge_u) + (br_if 6) + (get_local 0) + (get_local 7) + (i32.add) + (i32.load8_s align=1) + (i32.const -65) + (i32.le_s) + (br_if 6) + (end) + (get_local 3) + (get_local 0) + (get_local 16) + (i32.add) + (get_local 7) + (get_local 16) + (i32.sub) + (get_local 6) + (i32.load align=4) + (call_indirect (type 0)) + (br_if 4) + (get_local 17) + (i64.const 32) + (i64.shr_u) + (i32.wrap/i64) + (set_local 16) + (get_local 17) + (i32.wrap/i64) + (set_local 15) + (block emptyblock) + (loop emptyblock) + (get_local 16) + (set_local 9) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 14) + (i32.const 3) + (i32.and) + (tee_local 16) + (i32.const 1) + (i32.eq) + (br_if 0) + (get_local 16) + (i32.const 2) + (i32.eq) + (br_if 1) + (get_local 16) + (i32.const 3) + (i32.ne) + (br_if 7) + (i32.const 4) + (set_local 16) + (get_local 9) + (i32.const 7) + (i32.and) + (i32.const -1) + (i32.add) + (tee_local 11) + (i32.const 4) + (i32.gt_u) + (br_if 7) + (i32.const 92) + (set_local 10) + (block emptyblock) + (get_local 11) + (br_table [Ref(space=label,index=0,name=None), Ref(space=label,index=4,name=None), Ref(space=label,index=5,name=None), Ref(space=label,index=6,name=None), Ref(space=label,index=3,name=None), Ref(space=label,index=0,name=None)]) + (end) + (i32.const 0) + (set_local 16) + (get_local 3) + (i32.const 125) + (get_local 4) + (call_indirect (type 6)) + (i32.eqz) + (br_if 6) + (br 11) + (end) + (i32.const 0) + (set_local 14) + (get_local 9) + (set_local 16) + (get_local 3) + (get_local 13) + (get_local 4) + (call_indirect (type 6)) + (i32.eqz) + (br_if 5) + (br 10) + (end) + (i32.const 92) + (set_local 10) + (i32.const 1) + (set_local 14) + (get_local 9) + (set_local 16) + (end) + (get_local 3) + (get_local 10) + (get_local 4) + (call_indirect (type 6)) + (i32.eqz) + (br_if 3) + (br 8) + (end) + (get_local 9) + (i32.const 1) + (get_local 15) + (select) + (set_local 16) + (get_local 15) + (i32.const 2) + (i32.shl) + (set_local 9) + (get_local 15) + (i32.const -1) + (i32.add) + (i32.const 0) + (get_local 15) + (select) + (set_local 15) + (get_local 3) + (i32.const 48) + (i32.const 87) + (get_local 13) + (get_local 9) + (i32.const 28) + (i32.and) + (i32.shr_u) + (i32.const 15) + (i32.and) + (tee_local 9) + (i32.const 10) + (i32.lt_u) + (select) + (get_local 9) + (i32.add) + (get_local 4) + (call_indirect (type 6)) + (i32.eqz) + (br_if 2) + (br 7) + (end) + (i32.const 2) + (set_local 16) + (get_local 3) + (i32.const 123) + (get_local 4) + (call_indirect (type 6)) + (i32.eqz) + (br_if 1) + (br 6) + (end) + (i32.const 3) + (set_local 16) + (get_local 3) + (i32.const 117) + (get_local 4) + (call_indirect (type 6)) + (i32.eqz) + (br_if 0) + (br 5) + (end) + (unreachable) + (end) + (i32.const 1) + (set_local 14) + (block emptyblock) + (get_local 12) + (i32.const 128) + (i32.lt_u) + (br_if 0) + (i32.const 2) + (set_local 14) + (get_local 12) + (i32.const 2048) + (i32.lt_u) + (br_if 0) + (i32.const 3) + (i32.const 4) + (get_local 12) + (i32.const 65536) + (i32.lt_u) + (select) + (set_local 14) + (end) + (get_local 14) + (get_local 7) + (i32.add) + (set_local 16) + (end) + (get_local 7) + (get_local 8) + (i32.sub) + (get_local 2) + (i32.add) + (set_local 7) + (get_local 2) + (get_local 5) + (i32.ne) + (br_if 0) + (end) + (end) + (get_local 16) + (i32.eqz) + (br_if 4) + (get_local 16) + (get_local 1) + (i32.eq) + (br_if 4) + (block emptyblock) + (get_local 16) + (get_local 1) + (i32.ge_u) + (br_if 0) + (get_local 0) + (get_local 16) + (i32.add) + (tee_local 2) + (i32.load8_s align=1) + (i32.const -65) + (i32.gt_s) + (br_if 6) + (end) + (get_local 0) + (get_local 1) + (get_local 16) + (get_local 1) + (call 144) + (unreachable) + (end) + (i32.const 1) + (return) + (end) + (i32.const 1) + (return) + (end) + (get_local 0) + (get_local 1) + (get_local 16) + (get_local 7) + (call 144) + (unreachable) + (end) + (get_local 2) + (i32.const 12) + (i32.add) + (set_local 6) + (i32.const 0) + (set_local 16) + (end) + (get_local 0) + (get_local 16) + (i32.add) + (set_local 2) + (end) + (get_local 3) + (get_local 2) + (get_local 1) + (get_local 16) + (i32.sub) + (get_local 6) + (i32.load align=4) + (call_indirect (type 0)) + (i32.eqz) + (br_if 1) + (end) + (i32.const 1) + (return) + (end) + (get_local 3) + (i32.const 34) + (get_local 4) + (call_indirect (type 6)) + ) + (func 125 (type 6) (local i32 i32 i32 i32 i32 i32 i32 i64) + (i32.const 1) + (set_local 6) + (block emptyblock) + (get_local 1) + (i32.load align=4 offset=24) + (tee_local 2) + (i32.const 39) + (get_local 1) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=16) + (tee_local 3) + (call_indirect (type 6)) + (br_if 0) + (i32.const 2) + (set_local 6) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 0) + (i32.load align=4) + (tee_local 1) + (i32.const -9) + (i32.add) + (tee_local 0) + (i32.const 30) + (i32.gt_u) + (br_if 0) + (i32.const 116) + (set_local 5) + (block emptyblock) + (get_local 0) + (br_table [Ref(space=label,index=9,name=None), Ref(space=label,index=0,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=3,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=6,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=2,name=None), Ref(space=label,index=6,name=None), Ref(space=label,index=9,name=None)]) + (end) + (i32.const 110) + (set_local 5) + (br 8) + (end) + (get_local 1) + (i32.const 92) + (i32.eq) + (br_if 4) + (end) + (get_local 1) + (i32.const 65535) + (i32.gt_u) + (br_if 1) + (get_local 1) + (i32.const 5488) + (i32.const 41) + (i32.const 5584) + (i32.const 304) + (i32.const 5888) + (i32.const 326) + (call 138) + (br_if 2) + (br 4) + (end) + (i32.const 114) + (set_local 5) + (br 5) + (end) + (block emptyblock) + (get_local 1) + (i32.const 131072) + (i32.ge_u) + (br_if 0) + (get_local 1) + (i32.const 6224) + (i32.const 33) + (i32.const 6304) + (i32.const 150) + (i32.const 6464) + (i32.const 360) + (call 138) + (br_if 1) + (br 3) + (end) + (get_local 1) + (i32.const -918000) + (i32.add) + (i32.const 196112) + (i32.lt_u) + (br_if 2) + (get_local 1) + (i32.const -195102) + (i32.add) + (i32.const 722657) + (i32.gt_u) + (get_local 1) + (i32.const -191457) + (i32.add) + (i32.const 3102) + (i32.gt_u) + (get_local 1) + (i32.const -183970) + (i32.add) + (i32.const 13) + (i32.gt_u) + (get_local 1) + (i32.const 2097150) + (i32.and) + (i32.const 178206) + (i32.ne) + (get_local 1) + (i32.const -173783) + (i32.add) + (i32.const 40) + (i32.gt_u) + (get_local 1) + (i32.const -177973) + (i32.add) + (i32.const 10) + (i32.gt_u) + (i32.and) + (i32.and) + (i32.and) + (i32.and) + (i32.and) + (i32.eqz) + (br_if 2) + (end) + (i32.const 1) + (set_local 6) + (end) + (br 1) + (end) + (get_local 1) + (i32.const 1) + (i32.or) + (i32.clz) + (i32.const 2) + (i32.shr_u) + (i32.const 7) + (i32.xor) + (i64.extend_u/i32) + (i64.const 21474836480) + (i64.or) + (set_local 9) + (i32.const 3) + (set_local 6) + (end) + (get_local 1) + (set_local 5) + (end) + (get_local 9) + (i64.const 32) + (i64.shr_u) + (i32.wrap/i64) + (set_local 1) + (get_local 9) + (i32.wrap/i64) + (set_local 7) + (block emptyblock) + (block emptyblock) + (loop emptyblock) + (get_local 1) + (set_local 0) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 6) + (i32.const 3) + (i32.and) + (tee_local 1) + (i32.const 1) + (i32.eq) + (br_if 0) + (get_local 1) + (i32.const 2) + (i32.eq) + (br_if 1) + (get_local 1) + (i32.const 3) + (i32.ne) + (br_if 8) + (i32.const 4) + (set_local 1) + (get_local 0) + (i32.const 7) + (i32.and) + (i32.const -1) + (i32.add) + (tee_local 4) + (i32.const 4) + (i32.gt_u) + (br_if 8) + (i32.const 92) + (set_local 8) + (block emptyblock) + (get_local 4) + (br_table [Ref(space=label,index=0,name=None), Ref(space=label,index=4,name=None), Ref(space=label,index=5,name=None), Ref(space=label,index=6,name=None), Ref(space=label,index=3,name=None), Ref(space=label,index=0,name=None)]) + (end) + (i32.const 0) + (set_local 1) + (get_local 2) + (i32.const 125) + (get_local 3) + (call_indirect (type 6)) + (i32.eqz) + (br_if 6) + (br 7) + (end) + (i32.const 0) + (set_local 6) + (get_local 0) + (set_local 1) + (get_local 2) + (get_local 5) + (get_local 3) + (call_indirect (type 6)) + (i32.eqz) + (br_if 5) + (br 6) + (end) + (i32.const 92) + (set_local 8) + (i32.const 1) + (set_local 6) + (get_local 0) + (set_local 1) + (end) + (get_local 2) + (get_local 8) + (get_local 3) + (call_indirect (type 6)) + (i32.eqz) + (br_if 3) + (br 4) + (end) + (get_local 0) + (i32.const 1) + (get_local 7) + (select) + (set_local 1) + (get_local 7) + (i32.const 2) + (i32.shl) + (set_local 0) + (get_local 7) + (i32.const -1) + (i32.add) + (i32.const 0) + (get_local 7) + (select) + (set_local 7) + (get_local 2) + (i32.const 48) + (i32.const 87) + (get_local 5) + (get_local 0) + (i32.const 28) + (i32.and) + (i32.shr_u) + (i32.const 15) + (i32.and) + (tee_local 0) + (i32.const 10) + (i32.lt_u) + (select) + (get_local 0) + (i32.add) + (get_local 3) + (call_indirect (type 6)) + (i32.eqz) + (br_if 2) + (br 3) + (end) + (i32.const 2) + (set_local 1) + (get_local 2) + (i32.const 123) + (get_local 3) + (call_indirect (type 6)) + (i32.eqz) + (br_if 1) + (br 2) + (end) + (i32.const 3) + (set_local 1) + (get_local 2) + (i32.const 117) + (get_local 3) + (call_indirect (type 6)) + (i32.eqz) + (br_if 0) + (end) + (end) + (i32.const 1) + (return) + (end) + (get_local 2) + (i32.const 39) + (get_local 3) + (call_indirect (type 6)) + (set_local 6) + (end) + (get_local 6) + ) + (func 126 (type 6) + (get_local 0) + (i32.load align=4) + (get_local 1) + (get_local 0) + (i32.load align=4 offset=4) + (i32.load align=4 offset=12) + (call_indirect (type 6)) + ) + (func 127 (type 6) + (get_local 1) + (get_local 0) + (i32.load align=4) + (get_local 0) + (i32.load align=4 offset=4) + (call 123) + ) + (func 128 (type 5) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 2) + (i32.store align=4 offset=4) + (get_local 2) + (get_local 0) + (i32.store align=4) + (get_local 2) + (get_local 1) + (i32.store align=4 offset=4) + (get_local 2) + (i32.const 32) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 15) + (i32.store align=4) + (get_local 2) + (i32.const 15) + (i32.store align=4 offset=36) + (get_local 2) + (get_local 2) + (i32.const 4) + (i32.add) + (i32.store align=4 offset=40) + (get_local 2) + (i32.const 6944) + (i32.store align=4 offset=16) + (get_local 2) + (i32.const 2) + (i32.store align=4 offset=12) + (get_local 2) + (get_local 2) + (i32.store align=4 offset=32) + (get_local 2) + (i32.const 4928) + (i32.store align=4 offset=8) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 2) + (get_local 2) + (i32.const 32) + (i32.add) + (i32.store align=4 offset=24) + (get_local 2) + (i32.const 28) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.const 4944) + (call 141) + (unreachable) + ) + (func 129 (type 5) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 2) + (i32.store align=4 offset=4) + (get_local 2) + (get_local 0) + (i32.store align=4) + (get_local 2) + (get_local 1) + (i32.store align=4 offset=4) + (get_local 2) + (i32.const 32) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 15) + (i32.store align=4) + (get_local 2) + (i32.const 15) + (i32.store align=4 offset=36) + (get_local 2) + (get_local 2) + (i32.const 4) + (i32.add) + (i32.store align=4 offset=40) + (get_local 2) + (i32.const 6944) + (i32.store align=4 offset=16) + (get_local 2) + (i32.const 2) + (i32.store align=4 offset=12) + (get_local 2) + (get_local 2) + (i32.store align=4 offset=32) + (get_local 2) + (i32.const 5060) + (i32.store align=4 offset=8) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 2) + (get_local 2) + (i32.const 32) + (i32.add) + (i32.store align=4 offset=24) + (get_local 2) + (i32.const 28) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.const 5076) + (call 141) + (unreachable) + ) + (func 130 (type 6) + (get_local 1) + (i32.load align=4 offset=24) + (i32.const 5152) + (i32.const 11) + (get_local 1) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + ) + (func 131 (type 6) + (get_local 1) + (i32.load align=4 offset=24) + (i32.const 5168) + (i32.const 14) + (get_local 1) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + ) + (func 132 (type 0) (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) + (block emptyblock) + (get_local 2) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.load8_u align=1 offset=4) + (set_local 11) + (get_local 0) + (i32.const 4) + (i32.add) + (set_local 8) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (loop emptyblock) + (block emptyblock) + (get_local 11) + (i32.const 255) + (i32.and) + (i32.eqz) + (br_if 0) + (get_local 0) + (i32.load align=4) + (tee_local 4) + (i32.load align=4 offset=24) + (i32.const 5184) + (i32.const 4) + (get_local 4) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 2) + (end) + (get_local 1) + (get_local 2) + (i32.add) + (set_local 3) + (i32.const 0) + (set_local 12) + (get_local 1) + (set_local 4) + (block emptyblock) + (block emptyblock) + (loop emptyblock) + (get_local 12) + (set_local 13) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 4) + (get_local 3) + (i32.eq) + (br_if 0) + (get_local 4) + (i32.const 1) + (i32.add) + (set_local 11) + (get_local 4) + (i32.load8_s align=1) + (tee_local 12) + (i32.const -1) + (i32.le_s) + (br_if 1) + (get_local 12) + (i32.const 255) + (i32.and) + (set_local 7) + (br 2) + (end) + (get_local 13) + (set_local 12) + (get_local 4) + (set_local 11) + (br 2) + (end) + (block emptyblock) + (block emptyblock) + (get_local 11) + (get_local 3) + (i32.eq) + (br_if 0) + (get_local 11) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 9) + (get_local 4) + (i32.const 2) + (i32.add) + (tee_local 7) + (set_local 11) + (br 1) + (end) + (i32.const 0) + (set_local 9) + (get_local 3) + (set_local 7) + (end) + (get_local 12) + (i32.const 31) + (i32.and) + (set_local 6) + (get_local 9) + (i32.const 255) + (i32.and) + (set_local 9) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 12) + (i32.const 255) + (i32.and) + (tee_local 12) + (i32.const 223) + (i32.le_u) + (br_if 0) + (get_local 7) + (get_local 3) + (i32.eq) + (br_if 1) + (get_local 7) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 10) + (get_local 7) + (i32.const 1) + (i32.add) + (tee_local 11) + (set_local 7) + (br 2) + (end) + (get_local 9) + (get_local 6) + (i32.const 6) + (i32.shl) + (i32.or) + (set_local 7) + (br 2) + (end) + (i32.const 0) + (set_local 10) + (get_local 3) + (set_local 7) + (end) + (get_local 10) + (i32.const 255) + (i32.and) + (get_local 9) + (i32.const 6) + (i32.shl) + (i32.or) + (set_local 9) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 12) + (i32.const 240) + (i32.lt_u) + (br_if 0) + (get_local 7) + (get_local 3) + (i32.eq) + (br_if 1) + (get_local 7) + (i32.const 1) + (i32.add) + (set_local 11) + (get_local 7) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 12) + (br 2) + (end) + (get_local 9) + (get_local 6) + (i32.const 12) + (i32.shl) + (i32.or) + (set_local 7) + (br 2) + (end) + (i32.const 0) + (set_local 12) + (end) + (get_local 9) + (i32.const 6) + (i32.shl) + (get_local 6) + (i32.const 18) + (i32.shl) + (i32.const 1835008) + (i32.and) + (i32.or) + (get_local 12) + (i32.const 255) + (i32.and) + (i32.or) + (tee_local 7) + (i32.const 1114112) + (i32.ne) + (br_if 0) + (get_local 13) + (set_local 12) + (br 1) + (end) + (get_local 11) + (get_local 4) + (i32.sub) + (get_local 13) + (i32.add) + (set_local 12) + (get_local 7) + (i32.const 10) + (i32.ne) + (i32.const 3) + (i32.and) + (tee_local 7) + (i32.eqz) + (br_if 3) + (br 1) + (end) + (get_local 5) + (set_local 13) + (i32.const 2) + (i32.const 3) + (i32.and) + (tee_local 7) + (i32.eqz) + (br_if 2) + (end) + (get_local 11) + (set_local 4) + (get_local 13) + (set_local 5) + (get_local 7) + (i32.const 2) + (i32.ne) + (br_if 0) + (end) + (i32.const 0) + (set_local 11) + (get_local 8) + (i32.const 0) + (i32.store8 align=1) + (get_local 2) + (set_local 4) + (br 1) + (end) + (i32.const 1) + (set_local 11) + (get_local 8) + (i32.const 1) + (i32.store8 align=1) + (get_local 13) + (i32.const 1) + (i32.add) + (set_local 4) + (end) + (get_local 0) + (i32.load align=4) + (set_local 13) + (block emptyblock) + (get_local 4) + (i32.eqz) + (get_local 2) + (get_local 4) + (i32.eq) + (i32.or) + (tee_local 12) + (br_if 0) + (get_local 2) + (get_local 4) + (i32.le_u) + (br_if 3) + (get_local 1) + (get_local 4) + (i32.add) + (i32.load8_s align=1) + (i32.const -65) + (i32.le_s) + (br_if 3) + (end) + (get_local 13) + (i32.load align=4 offset=24) + (get_local 1) + (get_local 4) + (get_local 13) + (i32.const 28) + (i32.add) + (i32.load align=4) + (i32.load align=4 offset=12) + (call_indirect (type 0)) + (br_if 1) + (block emptyblock) + (block emptyblock) + (get_local 12) + (i32.eqz) + (br_if 0) + (get_local 1) + (get_local 4) + (i32.add) + (set_local 13) + (br 1) + (end) + (get_local 2) + (get_local 4) + (i32.le_u) + (br_if 4) + (get_local 1) + (get_local 4) + (i32.add) + (tee_local 13) + (i32.load8_s align=1) + (i32.const -65) + (i32.le_s) + (br_if 4) + (end) + (get_local 13) + (set_local 1) + (get_local 2) + (get_local 4) + (i32.sub) + (tee_local 2) + (br_if 0) + (end) + (i32.const 0) + (return) + (end) + (i32.const 1) + (return) + (end) + (get_local 1) + (get_local 2) + (i32.const 0) + (get_local 4) + (call 144) + (unreachable) + (end) + (get_local 1) + (get_local 2) + (get_local 4) + (get_local 2) + (call 144) + (unreachable) + (end) + (i32.const 0) + ) + (func 133 (type 2) + + ) + (func 134 (type 6) (local i32 i32 i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 16) + (i32.sub) + (tee_local 7) + (i32.store align=4 offset=4) + (i32.const 0) + (set_local 3) + (get_local 7) + (i32.const 0) + (i32.store align=4 offset=12) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.const 127) + (i32.gt_u) + (br_if 0) + (get_local 7) + (get_local 1) + (i32.store8 align=1 offset=12) + (i32.const 1) + (set_local 6) + (br 1) + (end) + (block emptyblock) + (block emptyblock) + (get_local 1) + (i32.const 2048) + (i32.ge_u) + (br_if 0) + (i32.const 2) + (set_local 6) + (i32.const 1) + (set_local 5) + (i32.const 192) + (set_local 4) + (i32.const 31) + (set_local 2) + (br 1) + (end) + (block emptyblock) + (get_local 1) + (i32.const 65535) + (i32.gt_u) + (br_if 0) + (get_local 7) + (get_local 1) + (i32.const 12) + (i32.shr_u) + (i32.const 15) + (i32.and) + (i32.const 224) + (i32.or) + (i32.store8 align=1 offset=12) + (i32.const 3) + (set_local 6) + (i32.const 2) + (set_local 5) + (i32.const 128) + (set_local 4) + (i32.const 1) + (set_local 3) + (i32.const 63) + (set_local 2) + (br 1) + (end) + (get_local 7) + (get_local 1) + (i32.const 18) + (i32.shr_u) + (i32.const 240) + (i32.or) + (i32.store8 align=1 offset=12) + (i32.const 63) + (set_local 2) + (i32.const 128) + (set_local 4) + (get_local 7) + (get_local 1) + (i32.const 12) + (i32.shr_u) + (i32.const 63) + (i32.and) + (i32.const 128) + (i32.or) + (i32.store8 align=1 offset=13) + (i32.const 4) + (set_local 6) + (i32.const 3) + (set_local 5) + (i32.const 2) + (set_local 3) + (end) + (get_local 7) + (i32.const 12) + (i32.add) + (get_local 3) + (i32.add) + (get_local 2) + (get_local 1) + (i32.const 6) + (i32.shr_u) + (i32.and) + (get_local 4) + (i32.or) + (i32.store8 align=1) + (get_local 7) + (i32.const 12) + (i32.add) + (get_local 5) + (i32.add) + (get_local 1) + (i32.const 63) + (i32.and) + (i32.const 128) + (i32.or) + (i32.store8 align=1) + (end) + (get_local 0) + (get_local 7) + (i32.const 12) + (i32.add) + (get_local 6) + (call 132) + (set_local 1) + (i32.const 0) + (get_local 7) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=4) + (get_local 1) + ) + (func 135 (type 6) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 32) + (i32.sub) + (tee_local 2) + (i32.store align=4 offset=4) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=4) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.const 16) + (i32.add) + (get_local 1) + (i32.const 16) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 1) + (i32.const 8) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 2) + (get_local 1) + (i64.load align=4) + (i64.store align=8 offset=8) + (get_local 2) + (i32.const 4) + (i32.add) + (i32.const 5236) + (get_local 2) + (i32.const 8) + (i32.add) + (call 121) + (set_local 1) + (i32.const 0) + (get_local 2) + (i32.const 32) + (i32.add) + (i32.store align=4 offset=4) + (get_local 1) + ) + (func 136 (type 2) + + ) + (func 137 (type 0) (local i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 80) + (i32.sub) + (tee_local 4) + (i32.store align=4 offset=4) + (get_local 4) + (get_local 2) + (i32.store align=4 offset=4) + (get_local 4) + (get_local 1) + (i32.store align=4) + (get_local 0) + (i32.load align=4 offset=4) + (set_local 1) + (i32.const 1) + (set_local 2) + (block emptyblock) + (get_local 0) + (i32.load8_u align=1 offset=8) + (br_if 0) + (get_local 4) + (i32.const 1) + (i32.store align=4 offset=12) + (get_local 4) + (i32.const 5200) + (i32.const 5280) + (get_local 1) + (select) + (i32.store align=4 offset=8) + (get_local 4) + (get_local 1) + (i32.const 0) + (i32.ne) + (i32.store align=4 offset=20) + (get_local 4) + (i32.const 5232) + (i32.const 5232) + (get_local 1) + (select) + (i32.store align=4 offset=16) + (block emptyblock) + (get_local 0) + (i32.load align=4) + (tee_local 2) + (i32.load8_u align=1) + (i32.const 4) + (i32.and) + (br_if 0) + (get_local 4) + (i32.const 32) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 11) + (i32.store align=4) + (get_local 4) + (i32.const 32) + (i32.add) + (i32.const 20) + (i32.add) + (i32.const 10) + (i32.store align=4) + (get_local 4) + (i32.const 11) + (i32.store align=4 offset=36) + (get_local 2) + (i32.const 28) + (i32.add) + (i32.load align=4) + (set_local 3) + (get_local 4) + (get_local 4) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=32) + (get_local 4) + (get_local 4) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=40) + (get_local 4) + (get_local 4) + (i32.store align=4 offset=48) + (get_local 2) + (i32.load align=4 offset=24) + (set_local 2) + (get_local 4) + (i32.const 56) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 3) + (i32.store align=4) + (get_local 4) + (i32.const 56) + (i32.add) + (i32.const 20) + (i32.add) + (i32.const 3) + (i32.store align=4) + (get_local 4) + (i32.const 3) + (i32.store align=4 offset=60) + (get_local 4) + (i32.const 5372) + (i32.store align=4 offset=56) + (get_local 4) + (i32.const 7288) + (i32.store align=4 offset=64) + (get_local 4) + (get_local 4) + (i32.const 32) + (i32.add) + (i32.store align=4 offset=72) + (get_local 2) + (get_local 3) + (get_local 4) + (i32.const 56) + (i32.add) + (call 121) + (set_local 2) + (br 1) + (end) + (get_local 4) + (i32.const 0) + (i32.store8 align=1 offset=28) + (get_local 4) + (get_local 2) + (i32.store align=4 offset=24) + (get_local 4) + (i32.const 32) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 10) + (i32.store align=4) + (get_local 4) + (i32.const 11) + (i32.store align=4 offset=36) + (get_local 4) + (i32.const 2) + (i32.store align=4 offset=60) + (get_local 4) + (get_local 4) + (i32.store align=4 offset=40) + (get_local 4) + (i32.const 5300) + (i32.store align=4 offset=64) + (get_local 4) + (get_local 4) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=32) + (get_local 4) + (i32.const 5284) + (i32.store align=4 offset=56) + (get_local 4) + (i32.const 56) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 4) + (get_local 4) + (i32.const 32) + (i32.add) + (i32.store align=4 offset=72) + (get_local 4) + (i32.const 76) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 4) + (i32.const 24) + (i32.add) + (i32.const 5204) + (get_local 4) + (i32.const 56) + (i32.add) + (call 121) + (set_local 2) + (end) + (get_local 0) + (i32.const 4) + (i32.add) + (get_local 1) + (i32.const 1) + (i32.add) + (i32.store align=4) + (get_local 0) + (i32.const 8) + (i32.add) + (get_local 2) + (i32.store8 align=1) + (i32.const 0) + (get_local 4) + (i32.const 80) + (i32.add) + (i32.store align=4 offset=4) + (get_local 0) + ) + (func 138 (type 16) (local i32 i32 i32 i32 i32 i32 i32) + (i32.const 1) + (set_local 13) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.eqz) + (br_if 0) + (get_local 1) + (get_local 2) + (i32.const 1) + (i32.shl) + (i32.add) + (set_local 8) + (get_local 0) + (i32.const 65280) + (i32.and) + (i32.const 8) + (i32.shr_u) + (set_local 7) + (i32.const 0) + (set_local 12) + (get_local 0) + (i32.const 255) + (i32.and) + (set_local 11) + (loop emptyblock) + (get_local 1) + (i32.const 2) + (i32.add) + (set_local 9) + (get_local 1) + (i32.load8_u align=1 offset=1) + (tee_local 2) + (get_local 12) + (i32.add) + (set_local 10) + (block emptyblock) + (block emptyblock) + (get_local 7) + (get_local 1) + (i32.load8_u align=1) + (tee_local 1) + (i32.ne) + (br_if 0) + (get_local 10) + (get_local 12) + (i32.lt_u) + (br_if 7) + (get_local 10) + (get_local 4) + (i32.gt_u) + (br_if 8) + (get_local 3) + (get_local 12) + (i32.add) + (set_local 1) + (loop emptyblock) + (get_local 2) + (i32.eqz) + (br_if 2) + (get_local 2) + (i32.const -1) + (i32.add) + (set_local 2) + (get_local 1) + (i32.load8_u align=1) + (set_local 12) + (get_local 1) + (i32.const 1) + (i32.add) + (set_local 1) + (get_local 12) + (get_local 11) + (i32.ne) + (br_if 0) + (br 5) + (end) + (unreachable) + (end) + (get_local 7) + (get_local 1) + (i32.lt_u) + (br_if 2) + (get_local 9) + (set_local 1) + (get_local 10) + (set_local 12) + (get_local 9) + (get_local 8) + (i32.ne) + (br_if 1) + (br 2) + (end) + (get_local 9) + (set_local 1) + (get_local 10) + (set_local 12) + (get_local 9) + (get_local 8) + (i32.ne) + (br_if 0) + (end) + (end) + (get_local 6) + (i32.eqz) + (br_if 1) + (get_local 5) + (get_local 6) + (i32.add) + (set_local 11) + (get_local 0) + (i32.const 65535) + (i32.and) + (set_local 12) + (get_local 5) + (i32.const 1) + (i32.add) + (set_local 2) + (i32.const 1) + (set_local 13) + (loop emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 5) + (i32.load8_u align=1) + (tee_local 1) + (i32.const 24) + (i32.shl) + (i32.const 24) + (i32.shr_s) + (tee_local 10) + (i32.const -1) + (i32.le_s) + (br_if 0) + (get_local 2) + (set_local 5) + (br 1) + (end) + (get_local 2) + (get_local 11) + (i32.eq) + (br_if 4) + (get_local 2) + (i32.const 1) + (i32.add) + (set_local 5) + (get_local 2) + (i32.load8_u align=1) + (get_local 10) + (i32.const 127) + (i32.and) + (i32.const 8) + (i32.shl) + (i32.or) + (set_local 1) + (end) + (get_local 12) + (get_local 1) + (i32.sub) + (tee_local 12) + (i32.const 0) + (i32.lt_s) + (br_if 2) + (get_local 13) + (i32.const 1) + (i32.xor) + (set_local 13) + (get_local 5) + (get_local 11) + (i32.eq) + (br_if 2) + (get_local 5) + (i32.const 1) + (i32.add) + (set_local 2) + (br 0) + (end) + (unreachable) + (end) + (i32.const 0) + (set_local 13) + (end) + (get_local 13) + (i32.const 1) + (i32.and) + (return) + (end) + (i32.const 6824) + (call 139) + (unreachable) + (end) + (get_local 12) + (get_local 10) + (call 129) + (unreachable) + (end) + (get_local 10) + (get_local 4) + (call 128) + (unreachable) + ) + (func 139 (type 2) (local i32 i64 i64 i64) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 1) + (i32.store align=4 offset=4) + (get_local 0) + (i64.load align=4 offset=16) + (set_local 2) + (get_local 0) + (i64.load align=4 offset=8) + (set_local 3) + (get_local 0) + (i64.load align=4) + (set_local 4) + (get_local 1) + (i32.const 20) + (i32.add) + (i32.const 0) + (i32.store align=4) + (get_local 1) + (get_local 4) + (i64.store align=8 offset=24) + (get_local 1) + (i32.const 1) + (i32.store align=4 offset=4) + (get_local 1) + (i32.const 0) + (i32.store align=4 offset=8) + (get_local 1) + (i32.const 7076) + (i32.store align=4 offset=16) + (get_local 1) + (get_local 1) + (i32.const 24) + (i32.add) + (i32.store align=4) + (get_local 1) + (get_local 3) + (i64.store align=8 offset=32) + (get_local 1) + (get_local 2) + (i64.store align=8 offset=40) + (get_local 1) + (get_local 1) + (i32.const 32) + (i32.add) + (call 141) + (unreachable) + ) + (func 140 (type 4) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 3) + (i32.store align=4 offset=4) + (get_local 3) + (get_local 1) + (i32.store align=4) + (get_local 3) + (get_local 2) + (i32.store align=4 offset=4) + (get_local 3) + (i32.const 32) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 15) + (i32.store align=4) + (get_local 3) + (i32.const 15) + (i32.store align=4 offset=36) + (get_local 3) + (get_local 3) + (i32.store align=4 offset=40) + (get_local 3) + (i32.const 6944) + (i32.store align=4 offset=16) + (get_local 3) + (i32.const 2) + (i32.store align=4 offset=12) + (get_local 3) + (get_local 3) + (i32.const 4) + (i32.add) + (i32.store align=4 offset=32) + (get_local 3) + (i32.const 6928) + (i32.store align=4 offset=8) + (get_local 3) + (i32.const 8) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 3) + (get_local 3) + (i32.const 32) + (i32.add) + (i32.store align=4 offset=24) + (get_local 3) + (i32.const 28) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 3) + (i32.const 8) + (i32.add) + (get_local 0) + (call 141) + (unreachable) + ) + (func 141 (type 5) (local i32 i32 i64 i64) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 64) + (i32.sub) + (tee_local 3) + (i32.store align=4 offset=4) + (get_local 1) + (i64.load align=4 offset=8) + (set_local 4) + (get_local 1) + (i64.load align=4) + (set_local 5) + (get_local 3) + (i32.const 16) + (i32.add) + (tee_local 1) + (get_local 0) + (i32.const 16) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 3) + (i32.const 8) + (i32.add) + (tee_local 2) + (get_local 0) + (i32.const 8) + (i32.add) + (i64.load align=4) + (i64.store align=8) + (get_local 3) + (get_local 0) + (i64.load align=4) + (i64.store align=8) + (get_local 3) + (i32.const 24) + (i32.add) + (i32.const 16) + (i32.add) + (get_local 1) + (i64.load align=8) + (i64.store align=8) + (get_local 3) + (i32.const 24) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 2) + (i64.load align=8) + (i64.store align=8) + (get_local 3) + (get_local 3) + (i64.load align=8) + (i64.store align=8 offset=24) + (get_local 3) + (get_local 5) + (i64.store align=8 offset=48) + (get_local 3) + (get_local 4) + (i64.store align=8 offset=56) + (get_local 3) + (i32.const 24) + (i32.add) + (get_local 3) + (i32.const 48) + (i32.add) + (call 76) + (unreachable) + ) + (func 142 (type 6) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 2) + (i32.store align=4 offset=4) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 16) + (i32.store align=4) + (get_local 2) + (i32.const 16) + (i32.store align=4 offset=12) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=8) + (get_local 2) + (get_local 0) + (i32.const 4) + (i32.add) + (i32.store align=4 offset=16) + (get_local 1) + (i32.const 28) + (i32.add) + (i32.load align=4) + (set_local 0) + (get_local 1) + (i32.load align=4 offset=24) + (set_local 1) + (get_local 2) + (i32.const 24) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 2) + (i32.const 44) + (i32.add) + (i32.const 2) + (i32.store align=4) + (get_local 2) + (i32.const 2) + (i32.store align=4 offset=28) + (get_local 2) + (i32.const 7092) + (i32.store align=4 offset=24) + (get_local 2) + (i32.const 6944) + (i32.store align=4 offset=32) + (get_local 2) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=40) + (get_local 1) + (get_local 0) + (get_local 2) + (i32.const 24) + (i32.add) + (call 121) + (set_local 1) + (i32.const 0) + (get_local 2) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=4) + (get_local 1) + ) + (func 143 (type 5) (local i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 2) + (i32.store align=4 offset=4) + (get_local 2) + (get_local 1) + (i32.store align=4 offset=12) + (get_local 2) + (get_local 0) + (i32.store align=4 offset=8) + (get_local 2) + (i32.const 28) + (i32.add) + (i32.const 1) + (i32.store align=4) + (get_local 2) + (i32.const 1) + (i32.store align=4 offset=20) + (get_local 2) + (i32.const 11) + (i32.store align=4 offset=44) + (get_local 2) + (i32.const 7160) + (i32.store align=4 offset=24) + (get_local 2) + (get_local 2) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=40) + (get_local 2) + (i32.const 7152) + (i32.store align=4 offset=16) + (get_local 2) + (get_local 2) + (i32.const 40) + (i32.add) + (i32.store align=4 offset=32) + (get_local 2) + (i32.const 36) + (i32.add) + (i32.const 1) + (i32.store align=4) + (get_local 2) + (i32.const 16) + (i32.add) + (i32.const 7196) + (call 141) + (unreachable) + ) + (func 144 (type 11) (local i32 i32 i32 i32 i32 i32) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 112) + (i32.sub) + (tee_local 9) + (i32.store align=4 offset=4) + (get_local 9) + (get_local 2) + (i32.store align=4 offset=8) + (get_local 9) + (get_local 3) + (i32.store align=4 offset=12) + (i32.const 0) + (set_local 5) + (get_local 1) + (set_local 6) + (block emptyblock) + (get_local 1) + (i32.const 257) + (i32.lt_u) + (br_if 0) + (i32.const 0) + (get_local 1) + (i32.sub) + (set_local 4) + (i32.const 256) + (set_local 7) + (block emptyblock) + (loop emptyblock) + (block emptyblock) + (get_local 7) + (get_local 1) + (i32.ge_u) + (br_if 0) + (get_local 0) + (get_local 7) + (i32.add) + (i32.load8_s align=1) + (i32.const -65) + (i32.gt_s) + (br_if 2) + (end) + (get_local 7) + (i32.const -1) + (i32.add) + (set_local 6) + (i32.const 1) + (set_local 5) + (get_local 7) + (i32.const 1) + (i32.eq) + (br_if 2) + (get_local 4) + (get_local 7) + (i32.add) + (set_local 8) + (get_local 6) + (set_local 7) + (get_local 8) + (i32.const 1) + (i32.ne) + (br_if 0) + (br 2) + (end) + (unreachable) + (end) + (i32.const 1) + (set_local 5) + (get_local 7) + (set_local 6) + (end) + (get_local 9) + (get_local 6) + (i32.store align=4 offset=20) + (get_local 9) + (get_local 0) + (i32.store align=4 offset=16) + (get_local 9) + (i32.const 5) + (i32.const 0) + (get_local 5) + (select) + (i32.store align=4 offset=28) + (get_local 9) + (i32.const 7248) + (i32.const 7264) + (get_local 5) + (select) + (i32.store align=4 offset=24) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 2) + (get_local 1) + (i32.gt_u) + (tee_local 7) + (br_if 0) + (get_local 3) + (get_local 1) + (i32.gt_u) + (br_if 0) + (get_local 2) + (get_local 3) + (i32.gt_u) + (br_if 1) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.eqz) + (br_if 0) + (get_local 2) + (get_local 1) + (i32.eq) + (br_if 0) + (get_local 2) + (get_local 1) + (i32.ge_u) + (br_if 1) + (get_local 0) + (get_local 2) + (i32.add) + (i32.load8_s align=1) + (i32.const -64) + (i32.lt_s) + (br_if 1) + (end) + (get_local 3) + (set_local 2) + (end) + (get_local 9) + (get_local 2) + (i32.store align=4 offset=32) + (get_local 2) + (i32.eqz) + (set_local 8) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.eqz) + (br_if 0) + (get_local 2) + (get_local 1) + (i32.eq) + (br_if 0) + (get_local 1) + (i32.const 1) + (i32.add) + (set_local 5) + (block emptyblock) + (loop emptyblock) + (block emptyblock) + (get_local 2) + (get_local 1) + (i32.ge_u) + (br_if 0) + (get_local 0) + (get_local 2) + (i32.add) + (i32.load8_s align=1) + (i32.const -64) + (i32.ge_s) + (br_if 2) + (end) + (get_local 2) + (i32.const -1) + (i32.add) + (set_local 7) + (get_local 2) + (i32.const 1) + (i32.eq) + (tee_local 8) + (br_if 3) + (get_local 5) + (get_local 2) + (i32.eq) + (set_local 6) + (get_local 7) + (set_local 2) + (get_local 6) + (i32.eqz) + (br_if 0) + (br 3) + (end) + (unreachable) + (end) + (i32.const 0) + (set_local 8) + (end) + (get_local 2) + (set_local 7) + (end) + (block emptyblock) + (block emptyblock) + (get_local 8) + (br_if 0) + (get_local 7) + (get_local 1) + (i32.eq) + (br_if 0) + (block emptyblock) + (get_local 7) + (get_local 1) + (i32.ge_u) + (br_if 0) + (get_local 0) + (get_local 7) + (i32.add) + (tee_local 2) + (i32.load8_s align=1) + (i32.const -65) + (i32.gt_s) + (br_if 2) + (end) + (get_local 0) + (get_local 1) + (get_local 7) + (get_local 1) + (call 144) + (unreachable) + (end) + (get_local 0) + (get_local 7) + (i32.add) + (set_local 2) + (end) + (get_local 2) + (get_local 0) + (get_local 7) + (i32.add) + (tee_local 8) + (get_local 1) + (get_local 7) + (i32.sub) + (i32.add) + (tee_local 6) + (i32.eq) + (br_if 2) + (i32.const 1) + (set_local 1) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.load8_s align=1) + (tee_local 2) + (i32.const -1) + (i32.le_s) + (br_if 0) + (get_local 2) + (i32.const 255) + (i32.and) + (set_local 2) + (br 1) + (end) + (i32.const 0) + (set_local 5) + (get_local 6) + (set_local 0) + (block emptyblock) + (get_local 8) + (i32.const 1) + (i32.add) + (tee_local 4) + (get_local 6) + (i32.eq) + (br_if 0) + (get_local 4) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 5) + (get_local 8) + (i32.const 2) + (i32.add) + (set_local 0) + (end) + (get_local 2) + (i32.const 31) + (i32.and) + (set_local 4) + (get_local 5) + (i32.const 255) + (i32.and) + (set_local 8) + (block emptyblock) + (block emptyblock) + (get_local 2) + (i32.const 255) + (i32.and) + (i32.const 223) + (i32.le_u) + (br_if 0) + (i32.const 0) + (set_local 5) + (get_local 6) + (set_local 3) + (block emptyblock) + (get_local 0) + (get_local 6) + (i32.eq) + (br_if 0) + (get_local 0) + (i32.const 1) + (i32.add) + (set_local 3) + (get_local 0) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 5) + (end) + (get_local 5) + (i32.const 255) + (i32.and) + (get_local 8) + (i32.const 6) + (i32.shl) + (i32.or) + (set_local 8) + (get_local 2) + (i32.const 255) + (i32.and) + (i32.const 240) + (i32.lt_u) + (br_if 1) + (i32.const 0) + (set_local 2) + (block emptyblock) + (get_local 3) + (get_local 6) + (i32.eq) + (br_if 0) + (get_local 3) + (i32.load8_u align=1) + (i32.const 63) + (i32.and) + (set_local 2) + (end) + (get_local 8) + (i32.const 6) + (i32.shl) + (get_local 4) + (i32.const 18) + (i32.shl) + (i32.const 1835008) + (i32.and) + (i32.or) + (get_local 2) + (i32.const 255) + (i32.and) + (i32.or) + (tee_local 2) + (i32.const 1114112) + (i32.eq) + (br_if 5) + (br 2) + (end) + (get_local 8) + (get_local 4) + (i32.const 6) + (i32.shl) + (i32.or) + (set_local 2) + (br 1) + (end) + (get_local 8) + (get_local 4) + (i32.const 12) + (i32.shl) + (i32.or) + (set_local 2) + (end) + (get_local 9) + (get_local 2) + (i32.store align=4 offset=36) + (block emptyblock) + (get_local 2) + (i32.const 128) + (i32.lt_u) + (br_if 0) + (i32.const 2) + (set_local 1) + (get_local 2) + (i32.const 2048) + (i32.lt_u) + (br_if 0) + (i32.const 3) + (i32.const 4) + (get_local 2) + (i32.const 65536) + (i32.lt_u) + (select) + (set_local 1) + (end) + (get_local 9) + (get_local 7) + (i32.store align=4 offset=40) + (get_local 9) + (get_local 1) + (get_local 7) + (i32.add) + (i32.store align=4 offset=44) + (get_local 9) + (i32.const 72) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 17) + (i32.store align=4) + (get_local 9) + (i32.const 72) + (i32.add) + (i32.const 20) + (i32.add) + (i32.const 18) + (i32.store align=4) + (get_local 9) + (i32.const 15) + (i32.store align=4 offset=76) + (get_local 9) + (get_local 9) + (i32.const 32) + (i32.add) + (i32.store align=4 offset=72) + (get_local 9) + (get_local 9) + (i32.const 36) + (i32.add) + (i32.store align=4 offset=80) + (get_local 9) + (get_local 9) + (i32.const 40) + (i32.add) + (i32.store align=4 offset=88) + (get_local 9) + (get_local 9) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=96) + (get_local 9) + (i32.const 100) + (i32.add) + (i32.const 11) + (i32.store align=4) + (get_local 9) + (get_local 9) + (i32.const 24) + (i32.add) + (i32.store align=4 offset=104) + (get_local 9) + (i32.const 108) + (i32.add) + (i32.const 11) + (i32.store align=4) + (get_local 9) + (i32.const 7628) + (i32.store align=4 offset=48) + (get_local 9) + (i32.const 5) + (i32.store align=4 offset=52) + (get_local 9) + (i32.const 7668) + (i32.store align=4 offset=56) + (get_local 9) + (i32.const 48) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 5) + (i32.store align=4) + (get_local 9) + (get_local 9) + (i32.const 72) + (i32.add) + (i32.store align=4 offset=64) + (get_local 9) + (i32.const 48) + (i32.add) + (i32.const 20) + (i32.add) + (i32.const 5) + (i32.store align=4) + (get_local 9) + (i32.const 48) + (i32.add) + (i32.const 7848) + (call 141) + (unreachable) + (end) + (get_local 9) + (get_local 2) + (get_local 3) + (get_local 7) + (select) + (i32.store align=4 offset=40) + (get_local 9) + (i32.const 72) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 11) + (i32.store align=4) + (get_local 9) + (i32.const 72) + (i32.add) + (i32.const 20) + (i32.add) + (i32.const 11) + (i32.store align=4) + (get_local 9) + (i32.const 15) + (i32.store align=4 offset=76) + (get_local 9) + (i32.const 3) + (i32.store align=4 offset=52) + (get_local 9) + (get_local 9) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=80) + (get_local 9) + (i32.const 7288) + (i32.store align=4 offset=56) + (get_local 9) + (get_local 9) + (i32.const 40) + (i32.add) + (i32.store align=4 offset=72) + (get_local 9) + (i32.const 7264) + (i32.store align=4 offset=48) + (get_local 9) + (get_local 9) + (i32.const 24) + (i32.add) + (i32.store align=4 offset=88) + (get_local 9) + (i32.const 48) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 3) + (i32.store align=4) + (get_local 9) + (get_local 9) + (i32.const 72) + (i32.add) + (i32.store align=4 offset=64) + (get_local 9) + (i32.const 48) + (i32.add) + (i32.const 20) + (i32.add) + (i32.const 3) + (i32.store align=4) + (get_local 9) + (i32.const 48) + (i32.add) + (i32.const 7396) + (call 141) + (unreachable) + (end) + (get_local 9) + (i32.const 72) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 15) + (i32.store align=4) + (get_local 9) + (i32.const 72) + (i32.add) + (i32.const 20) + (i32.add) + (i32.const 11) + (i32.store align=4) + (get_local 9) + (i32.const 15) + (i32.store align=4 offset=76) + (get_local 9) + (get_local 9) + (i32.const 8) + (i32.add) + (i32.store align=4 offset=72) + (get_local 9) + (get_local 9) + (i32.const 12) + (i32.add) + (i32.store align=4 offset=80) + (get_local 9) + (get_local 9) + (i32.const 16) + (i32.add) + (i32.store align=4 offset=88) + (get_local 9) + (get_local 9) + (i32.const 24) + (i32.add) + (i32.store align=4 offset=96) + (get_local 9) + (i32.const 100) + (i32.add) + (i32.const 11) + (i32.store align=4) + (get_local 9) + (i32.const 7412) + (i32.store align=4 offset=48) + (get_local 9) + (i32.const 4) + (i32.store align=4 offset=52) + (get_local 9) + (i32.const 7444) + (i32.store align=4 offset=56) + (get_local 9) + (i32.const 48) + (i32.add) + (i32.const 12) + (i32.add) + (i32.const 4) + (i32.store align=4) + (get_local 9) + (get_local 9) + (i32.const 72) + (i32.add) + (i32.store align=4 offset=64) + (get_local 9) + (i32.const 48) + (i32.add) + (i32.const 20) + (i32.add) + (i32.const 4) + (i32.store align=4) + (get_local 9) + (i32.const 48) + (i32.add) + (i32.const 7588) + (call 141) + (unreachable) + (end) + (i32.const 7604) + (call 139) + (unreachable) + ) + (func 145 (type 15) (local i32 i32 i32 i32 i32 i32 i32 i64) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=4) + (i32.const 48) + (i32.sub) + (tee_local 12) + (i32.store align=4 offset=4) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 2) + (get_local 4) + (i32.ne) + (br_if 0) + (get_local 2) + (i32.const 8) + (i32.le_u) + (br_if 1) + (get_local 2) + (get_local 3) + (call 110) + (tee_local 4) + (i32.eqz) + (br_if 2) + (get_local 4) + (get_local 0) + (get_local 1) + (get_local 3) + (get_local 1) + (get_local 3) + (i32.le_u) + (select) + (call 112) + (set_local 2) + (get_local 0) + (call 109) + (get_local 2) + (set_local 0) + (br 15) + (end) + (i32.const 1) + (set_local 4) + (i32.const 4416) + (set_local 3) + (i32.const 36) + (set_local 2) + (br 13) + (end) + (i32.const 0) + (set_local 4) + (get_local 3) + (i32.const -65) + (i32.gt_u) + (br_if 12) + (i32.const 16) + (get_local 3) + (i32.const 11) + (i32.add) + (i32.const -8) + (i32.and) + (get_local 3) + (i32.const 11) + (i32.lt_u) + (select) + (set_local 1) + (get_local 0) + (i32.const -4) + (i32.add) + (tee_local 7) + (i32.load align=4) + (tee_local 8) + (i32.const -8) + (i32.and) + (set_local 9) + (get_local 8) + (i32.const 3) + (i32.and) + (i32.eqz) + (br_if 1) + (get_local 0) + (i32.const -8) + (i32.add) + (set_local 6) + (get_local 9) + (get_local 1) + (i32.ge_u) + (br_if 2) + (get_local 6) + (get_local 9) + (i32.add) + (tee_local 10) + (i32.const 0) + (i32.load align=4 offset=4368) + (i32.eq) + (br_if 3) + (get_local 10) + (i32.const 0) + (i32.load align=4 offset=4364) + (i32.eq) + (br_if 4) + (get_local 10) + (i32.load align=4 offset=4) + (tee_local 8) + (i32.const 2) + (i32.and) + (br_if 5) + (get_local 8) + (i32.const -8) + (i32.and) + (tee_local 11) + (get_local 9) + (i32.add) + (tee_local 9) + (get_local 1) + (i32.lt_u) + (br_if 5) + (get_local 9) + (get_local 1) + (i32.sub) + (set_local 4) + (get_local 11) + (i32.const 255) + (i32.gt_u) + (br_if 7) + (get_local 10) + (i32.load align=4 offset=12) + (tee_local 2) + (get_local 10) + (i32.load align=4 offset=8) + (tee_local 3) + (i32.eq) + (br_if 8) + (get_local 3) + (get_local 2) + (i32.store align=4 offset=12) + (get_local 2) + (get_local 3) + (i32.store align=4 offset=8) + (br 11) + (end) + (i32.const 0) + (set_local 4) + (br 11) + (end) + (get_local 1) + (i32.const 256) + (i32.lt_u) + (br_if 3) + (get_local 9) + (get_local 1) + (i32.const 4) + (i32.or) + (i32.lt_u) + (br_if 3) + (get_local 9) + (get_local 1) + (i32.sub) + (i32.const 131073) + (i32.lt_u) + (br_if 11) + (br 3) + (end) + (get_local 9) + (get_local 1) + (i32.sub) + (tee_local 2) + (i32.const 16) + (i32.lt_u) + (br_if 10) + (get_local 7) + (get_local 1) + (get_local 8) + (i32.const 1) + (i32.and) + (i32.or) + (i32.const 2) + (i32.or) + (i32.store align=4) + (get_local 6) + (get_local 1) + (i32.add) + (tee_local 3) + (get_local 2) + (i32.const 3) + (i32.or) + (i32.store align=4 offset=4) + (get_local 3) + (get_local 2) + (i32.add) + (tee_local 5) + (get_local 5) + (i32.load align=4 offset=4) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 3) + (get_local 2) + (call 108) + (br 10) + (end) + (i32.const 0) + (i32.load align=4 offset=4360) + (get_local 9) + (i32.add) + (tee_local 9) + (get_local 1) + (i32.le_u) + (br_if 1) + (get_local 7) + (get_local 1) + (get_local 8) + (i32.const 1) + (i32.and) + (i32.or) + (i32.const 2) + (i32.or) + (i32.store align=4) + (i32.const 0) + (get_local 6) + (get_local 1) + (i32.add) + (tee_local 2) + (i32.store align=4 offset=4368) + (i32.const 0) + (get_local 9) + (get_local 1) + (i32.sub) + (tee_local 3) + (i32.store align=4 offset=4360) + (get_local 2) + (get_local 3) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (br 9) + (end) + (i32.const 0) + (i32.load align=4 offset=4356) + (get_local 9) + (i32.add) + (tee_local 9) + (get_local 1) + (i32.ge_u) + (br_if 1) + (end) + (get_local 3) + (call 107) + (tee_local 1) + (i32.eqz) + (br_if 6) + (get_local 1) + (get_local 0) + (get_local 7) + (i32.load align=4) + (tee_local 2) + (i32.const -8) + (i32.and) + (i32.const 4) + (i32.const 8) + (get_local 2) + (i32.const 3) + (i32.and) + (select) + (i32.sub) + (tee_local 2) + (get_local 3) + (get_local 2) + (get_local 3) + (i32.le_u) + (select) + (call 112) + (set_local 2) + (get_local 0) + (call 109) + (get_local 2) + (set_local 0) + (br 7) + (end) + (block emptyblock) + (block emptyblock) + (get_local 9) + (get_local 1) + (i32.sub) + (tee_local 2) + (i32.const 16) + (i32.ge_u) + (br_if 0) + (get_local 7) + (get_local 8) + (i32.const 1) + (i32.and) + (get_local 9) + (i32.or) + (i32.const 2) + (i32.or) + (i32.store align=4) + (get_local 6) + (get_local 9) + (i32.add) + (tee_local 2) + (get_local 2) + (i32.load align=4 offset=4) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (i32.const 0) + (set_local 2) + (i32.const 0) + (set_local 3) + (br 1) + (end) + (get_local 7) + (get_local 1) + (get_local 8) + (i32.const 1) + (i32.and) + (i32.or) + (i32.const 2) + (i32.or) + (i32.store align=4) + (get_local 6) + (get_local 1) + (i32.add) + (tee_local 3) + (get_local 2) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 3) + (get_local 2) + (i32.add) + (tee_local 5) + (get_local 2) + (i32.store align=4) + (get_local 5) + (get_local 5) + (i32.load align=4 offset=4) + (i32.const -2) + (i32.and) + (i32.store align=4 offset=4) + (end) + (i32.const 0) + (get_local 3) + (i32.store align=4 offset=4364) + (i32.const 0) + (get_local 2) + (i32.store align=4 offset=4356) + (br 6) + (end) + (get_local 10) + (i32.load align=4 offset=24) + (set_local 8) + (get_local 10) + (i32.load align=4 offset=12) + (tee_local 2) + (get_local 10) + (i32.eq) + (br_if 1) + (get_local 10) + (i32.load align=4 offset=8) + (tee_local 3) + (get_local 2) + (i32.store align=4 offset=12) + (get_local 2) + (get_local 3) + (i32.store align=4 offset=8) + (get_local 8) + (br_if 2) + (br 3) + (end) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=3956) + (i32.const -2) + (get_local 8) + (i32.const 3) + (i32.shr_u) + (i32.rotl) + (i32.and) + (i32.store align=4 offset=3956) + (br 2) + (end) + (block emptyblock) + (get_local 10) + (i32.const 20) + (i32.add) + (get_local 10) + (i32.const 16) + (i32.add) + (get_local 10) + (i32.load align=4 offset=20) + (select) + (tee_local 3) + (i32.load align=4) + (tee_local 2) + (i32.eqz) + (br_if 0) + (loop emptyblock) + (get_local 3) + (set_local 5) + (get_local 2) + (i32.const 20) + (i32.add) + (tee_local 3) + (get_local 2) + (i32.const 16) + (i32.add) + (get_local 3) + (i32.load align=4) + (select) + (tee_local 3) + (i32.load align=4) + (tee_local 2) + (br_if 0) + (end) + (get_local 5) + (i32.load align=4) + (set_local 2) + (get_local 5) + (i32.const 0) + (i32.store align=4) + (get_local 8) + (br_if 1) + (br 2) + (end) + (i32.const 0) + (set_local 2) + (get_local 8) + (i32.eqz) + (br_if 1) + (end) + (block emptyblock) + (block emptyblock) + (block emptyblock) + (get_local 10) + (i32.load align=4 offset=28) + (tee_local 5) + (i32.const 2) + (i32.shl) + (i32.const 4228) + (i32.add) + (tee_local 3) + (i32.load align=4) + (get_local 10) + (i32.eq) + (br_if 0) + (get_local 8) + (i32.const 16) + (i32.add) + (get_local 8) + (i32.load align=4 offset=16) + (get_local 10) + (i32.ne) + (i32.const 2) + (i32.shl) + (i32.add) + (get_local 2) + (i32.store align=4) + (get_local 2) + (br_if 1) + (br 3) + (end) + (get_local 3) + (get_local 2) + (i32.store align=4) + (get_local 2) + (i32.eqz) + (br_if 1) + (end) + (get_local 2) + (get_local 8) + (i32.store align=4 offset=24) + (block emptyblock) + (get_local 10) + (i32.load align=4 offset=16) + (tee_local 3) + (i32.eqz) + (br_if 0) + (get_local 2) + (get_local 3) + (i32.store align=4 offset=16) + (get_local 3) + (get_local 2) + (i32.store align=4 offset=24) + (end) + (get_local 10) + (i32.load align=4 offset=20) + (tee_local 3) + (i32.eqz) + (br_if 1) + (get_local 2) + (i32.const 20) + (i32.add) + (get_local 3) + (i32.store align=4) + (get_local 3) + (get_local 2) + (i32.store align=4 offset=24) + (br 1) + (end) + (i32.const 0) + (i32.const 0) + (i32.load align=4 offset=3960) + (i32.const -2) + (get_local 5) + (i32.rotl) + (i32.and) + (i32.store align=4 offset=3960) + (end) + (block emptyblock) + (get_local 4) + (i32.const 15) + (i32.gt_u) + (br_if 0) + (get_local 7) + (get_local 9) + (get_local 7) + (i32.load align=4) + (i32.const 1) + (i32.and) + (i32.or) + (i32.const 2) + (i32.or) + (i32.store align=4) + (get_local 6) + (get_local 9) + (i32.add) + (tee_local 2) + (get_local 2) + (i32.load align=4 offset=4) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (br 2) + (end) + (get_local 7) + (get_local 1) + (get_local 7) + (i32.load align=4) + (i32.const 1) + (i32.and) + (i32.or) + (i32.const 2) + (i32.or) + (i32.store align=4) + (get_local 6) + (get_local 1) + (i32.add) + (tee_local 2) + (get_local 4) + (i32.const 3) + (i32.or) + (i32.store align=4 offset=4) + (get_local 2) + (get_local 4) + (i32.add) + (tee_local 3) + (get_local 3) + (i32.load align=4 offset=4) + (i32.const 1) + (i32.or) + (i32.store align=4 offset=4) + (get_local 2) + (get_local 4) + (call 108) + (br 1) + (end) + (get_local 12) + (get_local 3) + (i32.store align=4 offset=16) + (get_local 12) + (get_local 4) + (i32.store align=4 offset=12) + (get_local 12) + (get_local 2) + (i32.store align=4 offset=20) + (get_local 12) + (i32.const 24) + (i32.add) + (i32.const 8) + (i32.add) + (tee_local 2) + (get_local 12) + (i32.load align=4 offset=20) + (i32.store align=4) + (get_local 12) + (get_local 12) + (i64.load align=4 offset=12) + (i64.store align=4 offset=24) + (get_local 12) + (i32.const 36) + (i32.add) + (i32.const 8) + (i32.add) + (get_local 2) + (i32.load align=4) + (tee_local 2) + (i32.store align=4) + (get_local 5) + (i32.const 8) + (i32.add) + (get_local 2) + (i32.store align=4) + (get_local 5) + (get_local 12) + (i64.load align=4 offset=24) + (tee_local 13) + (i64.store align=4) + (get_local 12) + (get_local 13) + (i64.store align=4 offset=36) + (i32.const 0) + (set_local 0) + (end) + (i32.const 0) + (get_local 12) + (i32.const 48) + (i32.add) + (i32.store align=4 offset=4) + (get_local 0) + ) + (func 146 (type 1) + (unreachable) + ) + (func 147 (type 1) (local i32 i32) + (get_local 0) + (get_local 1) + (call 33) + (drop) + ) + (data (i32.const 4) "\f0\1f\10\00") + (data (i32.const 16) "\61\73\73\65\72\74\69\6f\6e\20\66\61\69\6c\65\64\3a\20\69\6e\64\65\78\20\3c\20\6c\65\6e") + (data (i32.const 48) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\61\6c\6c\6f\63\2f\76\65\63\2e\72\73") + (data (i32.const 80) "\10\00\00\00\1d\00\00\00\30\00\00\00\1d\00\00\00\01\03\00\00\08\00\00\00") + (data (i32.const 112) "\63\61\6c\6c\65\64\20\60\4f\70\74\69\6f\6e\3a\3a\75\6e\77\72\61\70\28\29\60\20\6f\6e\20\61\20\60\4e\6f\6e\65\60\20\76\61\6c\75\65") + (data (i32.const 160) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\63\6f\72\65\2f\6f\70\74\69\6f\6e\2e\72\73") + (data (i32.const 192) "\70\00\00\00\2b\00\00\00\a0\00\00\00\1f\00\00\00\4f\01\00\00\14\00\00\00") + (data (i32.const 224) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\73\74\64\2f\73\79\73\2f\77\61\73\6d\2f\6d\75\74\65\78\2e\72\73") + (data (i32.const 264) "\e0\00\00\00\26\00\00\00\20\00\00\00\08\00\00\00") + (data (i32.const 288) "\63\61\6e\6e\6f\74\20\72\65\63\75\72\73\69\76\65\6c\79\20\61\63\71\75\69\72\65\20\6d\75\74\65\78") + (data (i32.const 320) "\13\00\00\00\04\00\00\00\04\00\00\00\14\00\00\00\15\00\00\00") + (data (i32.const 340) "\16\00\00\00\08\00\00\00\04\00\00\00\17\00\00\00") + (data (i32.const 368) "\63\61\6c\6c\65\64\20\60\52\65\73\75\6c\74\3a\3a\75\6e\77\72\61\70\28\29\60\20\6f\6e\20\61\6e\20\60\45\72\72\60\20\76\61\6c\75\65") + (data (i32.const 416) "\63\61\70\61\63\69\74\79\20\6f\76\65\72\66\6c\6f\77") + (data (i32.const 448) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\61\6c\6c\6f\63\2f\72\61\77\5f\76\65\63\2e\72\73") + (data (i32.const 496) "\3a\20") + (data (i32.const 500) "\f0\01\00\00\00\00\00\00\f0\01\00\00\02\00\00\00") + (data (i32.const 528) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\63\6f\72\65\2f\72\65\73\75\6c\74\2e\72\73") + (data (i32.const 560) "\10\02\00\00\1f\00\00\00\8a\03\00\00\04\00\00\00") + (data (i32.const 576) "\72\61\6e\64\5c\73\72\63\5c\6c\69\62\2e\72\73") + (data (i32.const 592) "\40\02\00\00\0f\00\00\00\fa\01\00\00\08\00\00\00") + (data (i32.const 608) "\52\6e\67\2e\67\65\6e\5f\72\61\6e\67\65\20\63\61\6c\6c\65\64\20\77\69\74\68\20\6c\6f\77\20\3e\3d\20\68\69\67\68") + (data (i32.const 648) "\a0\01\00\00\11\00\00\00\c0\01\00\00\21\00\00\00\ca\02\00\00\08\00\00\00") + (data (i32.const 672) "\30\00\00\00\1d\00\00\00\0f\06\00\00\0a\00\00\00") + (data (i32.const 688) "\50\6f\69\73\6f\6e\45\72\72\6f\72\20\7b\20\69\6e\6e\65\72\3a\20\2e\2e\20\7d") + (data (i32.const 720) "\73\72\63\5c\67\65\6f\6d\65\74\72\79\5c\70\6f\69\6e\74\2e\72\73") + (data (i32.const 744) "\d0\02\00\00\15\00\00\00\9c\00\00\00\08\00\00\00") + (data (i32.const 768) "\61\73\73\65\72\74\69\6f\6e\20\66\61\69\6c\65\64\3a\20\5f\72\68\73\20\21\3d\20\30\66\36\34") + (data (i32.const 808) "\70\03\00\00\00\00\00\00\70\03\00\00\02\00\00\00") + (data (i32.const 824) "\50\03\00\00\1f\00\00\00\8a\03\00\00\04\00\00\00") + (data (i32.const 848) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\63\6f\72\65\2f\72\65\73\75\6c\74\2e\72\73") + (data (i32.const 880) "\3a\20") + (data (i32.const 896) "\50\6f\69\73\6f\6e\45\72\72\6f\72\20\7b\20\69\6e\6e\65\72\3a\20\2e\2e\20\7d") + (data (i32.const 928) "\63\61\6e\6e\6f\74\20\72\65\63\75\72\73\69\76\65\6c\79\20\61\63\71\75\69\72\65\20\6d\75\74\65\78") + (data (i32.const 960) "\d0\03\00\00\26\00\00\00\20\00\00\00\08\00\00\00") + (data (i32.const 976) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\73\74\64\2f\73\79\73\2f\77\61\73\6d\2f\6d\75\74\65\78\2e\72\73") + (data (i32.const 1024) "\00") + (data (i32.const 1028) "\00\00\00\00") + (data (i32.const 1040) "\69\6e\74\65\72\6e\61\6c\20\65\72\72\6f\72\3a\20\65\6e\74\65\72\65\64\20\75\6e\72\65\61\63\68\61\62\6c\65\20\63\6f\64\65") + (data (i32.const 1080) "\50\04\00\00\2c\00\00\00\9a\00\00\00\0d\00\00\00") + (data (i32.const 1104) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\73\74\64\2f\73\79\73\5f\63\6f\6d\6d\6f\6e\2f\62\61\63\6b\74\72\61\63\65\2e\72\73") + (data (i32.const 1148) "\18\00\00\00\04\00\00\00\04\00\00\00\19\00\00\00\1a\00\00\00\1b\00\00\00") + (data (i32.const 1184) "\61\74\74\65\6d\70\74\65\64\20\74\6f\20\75\73\65\20\61\20\63\6f\6e\64\69\74\69\6f\6e\20\76\61\72\69\61\62\6c\65\20\77\69\74\68\20\74\77\6f\20\6d\75\74\65\78\65\73") + (data (i32.const 1240) "\f0\04\00\00\24\00\00\00\c3\01\00\00\11\00\00\00") + (data (i32.const 1264) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\73\74\64\2f\73\79\6e\63\2f\63\6f\6e\64\76\61\72\2e\72\73") + (data (i32.const 1312) "\53\74\72\69\6e\67\45\72\72\6f\72") + (data (i32.const 1324) "\1c\00\00\00\04\00\00\00\04\00\00\00\1d\00\00\00") + (data (i32.const 1340) "\1e\00\00\00\0c\00\00\00\04\00\00\00\1f\00\00\00\20\00\00\00\21\00\00\00\22\00\00\00\23\00\00\00") + (data (i32.const 1376) "\6f\70\65\72\61\74\69\6f\6e\20\6e\6f\74\20\73\75\70\70\6f\72\74\65\64\20\6f\6e\20\77\61\73\6d\20\79\65\74") + (data (i32.const 1424) "\4e\75\6c\45\72\72\6f\72") + (data (i32.const 1432) "\24\00\00\00\04\00\00\00\04\00\00\00\0d\00\00\00") + (data (i32.const 1448) "\25\00\00\00\04\00\00\00\04\00\00\00\26\00\00\00") + (data (i32.const 1472) "\75\73\65\20\6f\66\20\73\74\64\3a\3a\74\68\72\65\61\64\3a\3a\63\75\72\72\65\6e\74\28\29\20\69\73\20\6e\6f\74\20\70\6f\73\73\69\62\6c\65\20\61\66\74\65\72\20\74\68\65\20\74\68\72\65\61\64\27\73\20\6c\6f\63\61\6c\20\64\61\74\61\20\68\61\73\20\62\65\65\6e\20\64\65\73\74\72\6f\79\65\64") + (data (i32.const 1568) "\63\61\6c\6c\65\64\20\60\52\65\73\75\6c\74\3a\3a\75\6e\77\72\61\70\28\29\60\20\6f\6e\20\61\6e\20\60\45\72\72\60\20\76\61\6c\75\65") + (data (i32.const 1616) "\69\6e\63\6f\6e\73\69\73\74\65\6e\74\20\70\61\72\6b\20\73\74\61\74\65") + (data (i32.const 1640) "\80\06\00\00\22\00\00\00\1d\03\00\00\12\00\00\00") + (data (i32.const 1664) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\73\74\64\2f\74\68\72\65\61\64\2f\6d\6f\64\2e\72\73") + (data (i32.const 1712) "\74\68\72\65\61\64\20\6e\61\6d\65\20\6d\61\79\20\6e\6f\74\20\63\6f\6e\74\61\69\6e\20\69\6e\74\65\72\69\6f\72\20\6e\75\6c\6c\20\62\79\74\65\73") + (data (i32.const 1760) "\00") + (data (i32.const 1776) "\63\61\6e\6e\6f\74\20\72\65\63\75\72\73\69\76\65\6c\79\20\61\63\71\75\69\72\65\20\6d\75\74\65\78") + (data (i32.const 1808) "\80\07\00\00\26\00\00\00\20\00\00\00\08\00\00\00") + (data (i32.const 1824) "\00\00\00\00\00\00\00\00") + (data (i32.const 1840) "\66\61\69\6c\65\64\20\74\6f\20\67\65\6e\65\72\61\74\65\20\75\6e\69\71\75\65\20\74\68\72\65\61\64\20\49\44\3a\20\62\69\74\73\70\61\63\65\20\65\78\68\61\75\73\74\65\64") + (data (i32.const 1896) "\80\06\00\00\22\00\00\00\ad\03\00\00\10\00\00\00") + (data (i32.const 1920) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\73\74\64\2f\73\79\73\2f\77\61\73\6d\2f\6d\75\74\65\78\2e\72\73") + (data (i32.const 1968) "\69\6e\63\6f\6e\73\69\73\74\65\6e\74\20\73\74\61\74\65\20\69\6e\20\75\6e\70\61\72\6b") + (data (i32.const 1996) "\80\06\00\00\22\00\00\00\1f\04\00\00\15\00\00\00") + (data (i32.const 2012) "\80\06\00\00\22\00\00\00\28\04\00\00\15\00\00\00") + (data (i32.const 2032) "\63\61\70\61\63\69\74\79\20\6f\76\65\72\66\6c\6f\77") + (data (i32.const 2052) "\f0\07\00\00\11\00\00\00\20\08\00\00\21\00\00\00\ca\02\00\00\08\00\00\00") + (data (i32.const 2080) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\61\6c\6c\6f\63\2f\72\61\77\5f\76\65\63\2e\72\73") + (data (i32.const 2116) "\60\08\00\00\24\00\00\00\20\08\00\00\21\00\00\00\6d\02\00\00\08\00\00\00") + (data (i32.const 2144) "\54\72\69\65\64\20\74\6f\20\73\68\72\69\6e\6b\20\74\6f\20\61\20\6c\61\72\67\65\72\20\63\61\70\61\63\69\74\79") + (data (i32.const 2180) "\27\00\00\00\04\00\00\00\04\00\00\00\28\00\00\00\29\00\00\00\2a\00\00\00") + (data (i32.const 2208) "\63\61\6e\6e\6f\74\20\72\65\63\75\72\73\69\76\65\6c\79\20\61\63\71\75\69\72\65\20\6d\75\74\65\78") + (data (i32.const 2240) "\d0\08\00\00\26\00\00\00\20\00\00\00\08\00\00\00") + (data (i32.const 2256) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\73\74\64\2f\73\79\73\2f\77\61\73\6d\2f\6d\75\74\65\78\2e\72\73") + (data (i32.const 2296) "\00\00\00\00") + (data (i32.const 2304) "\61\73\73\65\72\74\69\6f\6e\20\66\61\69\6c\65\64\3a\20\71\75\65\75\65\20\61\73\20\75\73\69\7a\65\20\21\3d\20\31") + (data (i32.const 2344) "\40\09\00\00\2e\00\00\00\37\00\00\00\0c\00\00\00") + (data (i32.const 2368) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\73\74\64\2f\73\79\73\5f\63\6f\6d\6d\6f\6e\2f\61\74\5f\65\78\69\74\5f\69\6d\70\2e\72\73") + (data (i32.const 2416) "\00\00\00\00\2b\00\00\00") + (data (i32.const 2424) "\00\00\00\00") + (data (i32.const 2432) "\6d\61\69\6e") + (data (i32.const 2448) "\63\61\6e\27\74\20\62\6c\6f\63\6b\20\77\69\74\68\20\77\65\62\20\61\73\73\65\6d\62\6c\79") + (data (i32.const 2480) "\c0\09\00\00\28\00\00\00\21\00\00\00\08\00\00\00") + (data (i32.const 2496) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\73\74\64\2f\73\79\73\2f\77\61\73\6d\2f\63\6f\6e\64\76\61\72\2e\72\73") + (data (i32.const 2536) "\2c\00\00\00\04\00\00\00\04\00\00\00\2d\00\00\00") + (data (i32.const 2552) "\2e\00\00\00\0c\00\00\00\04\00\00\00\2f\00\00\00") + (data (i32.const 2568) "\d0\0b\00\00\32\00\00\00") + (data (i32.const 2576) "\00\00\00\00") + (data (i32.const 2592) "\72\77\6c\6f\63\6b\20\6c\6f\63\6b\65\64\20\66\6f\72\20\77\72\69\74\69\6e\67") + (data (i32.const 2620) "\a0\0b\00\00\27\00\00\00\21\00\00\00\0c\00\00\00") + (data (i32.const 2636) "\60\0a\00\00\2b\00\00\00") + (data (i32.const 2656) "\74\68\72\65\61\64\20\70\61\6e\69\63\6b\65\64\20\77\68\69\6c\65\20\70\61\6e\69\63\6b\69\6e\67\2e\20\61\62\6f\72\74\69\6e\67\2e\0a") + (data (i32.const 2704) "\3c\75\6e\6e\61\6d\65\64\3e") + (data (i32.const 2720) "\42\6f\78\3c\41\6e\79\3e") + (data (i32.const 2728) "\30\00\00\00\04\00\00\00\04\00\00\00\31\00\00\00\32\00\00\00\33\00\00\00\34\00\00\00\00\00\00\00") + (data (i32.const 2760) "\50\0b\00\00\08\00\00\00\60\0b\00\00\0f\00\00\00\70\0b\00\00\03\00\00\00\80\0b\00\00\01\00\00\00\80\0b\00\00\01\00\00\00\90\0b\00\00\01\00\00\00") + (data (i32.const 2816) "\01") + (data (i32.const 2820) "\10\0b\00\00\33\00\00\00") + (data (i32.const 2832) "\6e\6f\74\65\3a\20\52\75\6e\20\77\69\74\68\20\60\52\55\53\54\5f\42\41\43\4b\54\52\41\43\45\3d\31\60\20\66\6f\72\20\61\20\62\61\63\6b\74\72\61\63\65\2e\0a") + (data (i32.const 2896) "\74\68\72\65\61\64\20\27") + (data (i32.const 2912) "\27\20\70\61\6e\69\63\6b\65\64\20\61\74\20\27") + (data (i32.const 2928) "\27\2c\20") + (data (i32.const 2944) "\3a") + (data (i32.const 2960) "\0a") + (data (i32.const 2964) "\00\00\00\00\35\00\00\00") + (data (i32.const 2976) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\73\74\64\2f\73\79\73\2f\77\61\73\6d\2f\72\77\6c\6f\63\6b\2e\72\73") + (data (i32.const 3024) "\74\68\72\65\61\64\20\70\61\6e\69\63\6b\65\64\20\77\68\69\6c\65\20\70\72\6f\63\65\73\73\69\6e\67\20\70\61\6e\69\63\2e\20\61\62\6f\72\74\69\6e\67\2e\0a") + (data (i32.const 3076) "\00\00\00\00\36\00\00\00") + (data (i32.const 3084) "\37\00\00\00\08\00\00\00\04\00\00\00\38\00\00\00") + (data (i32.const 3104) "\41\63\63\65\73\73\45\72\72\6f\72") + (data (i32.const 3116) "\a0\0c\00\00\2b\00\00\00\d0\0c\00\00\1f\00\00\00\4f\01\00\00\14\00\00\00") + (data (i32.const 3152) "\61\6c\72\65\61\64\79\20\62\6f\72\72\6f\77\65\64") + (data (i32.const 3168) "\63\61\6e\6e\6f\74\20\61\63\63\65\73\73\20\61\20\54\4c\53\20\76\61\6c\75\65\20\64\75\72\69\6e\67\20\6f\72\20\61\66\74\65\72\20\69\74\20\69\73\20\64\65\73\74\72\6f\79\65\64") + (data (i32.const 3232) "\63\61\6c\6c\65\64\20\60\4f\70\74\69\6f\6e\3a\3a\75\6e\77\72\61\70\28\29\60\20\6f\6e\20\61\20\60\4e\6f\6e\65\60\20\76\61\6c\75\65") + (data (i32.const 3280) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\63\6f\72\65\2f\6f\70\74\69\6f\6e\2e\72\73") + (data (i32.const 3312) "\61\6c\72\65\61\64\79\20\6d\75\74\61\62\6c\79\20\62\6f\72\72\6f\77\65\64") + (data (i32.const 3344) "\61\73\73\65\72\74\69\6f\6e\20\66\61\69\6c\65\64\3a\20\63\2e\62\6f\72\72\6f\77\28\29\2e\69\73\5f\6e\6f\6e\65\28\29") + (data (i32.const 3384) "\50\0d\00\00\2e\00\00\00\2e\00\00\00\19\00\00\00") + (data (i32.const 3408) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\73\74\64\2f\73\79\73\5f\63\6f\6d\6d\6f\6e\2f\74\68\72\65\61\64\5f\69\6e\66\6f\2e\72\73") + (data (i32.const 3456) "\66\61\69\6c\65\64\20\74\6f\20\77\72\69\74\65\20\77\68\6f\6c\65\20\62\75\66\66\65\72") + (data (i32.const 3484) "\39\00\00\00\0c\00\00\00\04\00\00\00\3a\00\00\00\3b\00\00\00\3c\00\00\00") + (data (i32.const 3520) "\66\6f\72\6d\61\74\74\65\72\20\65\72\72\6f\72") + (data (i32.const 3536) "\3d\00\00\00\04\00\00\00\04\00\00\00\3e\00\00\00\3f\00\00\00") + (data (i32.const 3568) "\4f\6e\63\65\20\69\6e\73\74\61\6e\63\65\20\68\61\73\20\70\72\65\76\69\6f\75\73\6c\79\20\62\65\65\6e\20\70\6f\69\73\6f\6e\65\64") + (data (i32.const 3612) "\70\0e\00\00\21\00\00\00\3c\01\00\00\14\00\00\00") + (data (i32.const 3632) "\61\73\73\65\72\74\69\6f\6e\20\66\61\69\6c\65\64\3a\20\73\74\61\74\65\20\26\20\53\54\41\54\45\5f\4d\41\53\4b\20\3d\3d\20\52\55\4e\4e\49\4e\47") + (data (i32.const 3680) "\70\0e\00\00\21\00\00\00\60\01\00\00\14\00\00\00") + (data (i32.const 3696) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\73\74\64\2f\73\79\6e\63\2f\6f\6e\63\65\2e\72\73") + (data (i32.const 3732) "\02\00\00\00") + (data (i32.const 3736) "\30\0f\00\00\2d\00\00\00\60\0f\00\00\0c\00\00\00\70\0f\00\00\01\00\00\00") + (data (i32.const 3760) "\70\0e\00\00\21\00\00\00\92\01\00\00\08\00\00\00") + (data (i32.const 3776) "\e0\0e\00\00\2b\00\00\00\10\0f\00\00\1f\00\00\00\4f\01\00\00\14\00\00\00") + (data (i32.const 3808) "\63\61\6c\6c\65\64\20\60\4f\70\74\69\6f\6e\3a\3a\75\6e\77\72\61\70\28\29\60\20\6f\6e\20\61\20\60\4e\6f\6e\65\60\20\76\61\6c\75\65") + (data (i32.const 3856) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\63\6f\72\65\2f\6f\70\74\69\6f\6e\2e\72\73") + (data (i32.const 3888) "\61\73\73\65\72\74\69\6f\6e\20\66\61\69\6c\65\64\3a\20\60\28\6c\65\66\74\20\3d\3d\20\72\69\67\68\74\29\60\0a\20\20\6c\65\66\74\3a\20\60") + (data (i32.const 3936) "\60\2c\0a\20\72\69\67\68\74\3a\20\60") + (data (i32.const 3952) "\60") + (data (i32.const 3956) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4416) "\63\61\6e\6e\6f\74\20\63\68\61\6e\67\65\20\61\6c\69\67\6e\6d\65\6e\74\20\6f\6e\20\60\72\65\61\6c\6c\6f\63\60") + (data (i32.const 4452) "\80\11\00\00\11\00\00\00\a0\11\00\00\21\00\00\00\ca\02\00\00\08\00\00\00") + (data (i32.const 4480) "\63\61\70\61\63\69\74\79\20\6f\76\65\72\66\6c\6f\77") + (data (i32.const 4512) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\61\6c\6c\6f\63\2f\72\61\77\5f\76\65\63\2e\72\73") + (data (i32.const 4548) "\30\30\30\31\30\32\30\33\30\34\30\35\30\36\30\37\30\38\30\39\31\30\31\31\31\32\31\33\31\34\31\35\31\36\31\37\31\38\31\39\32\30\32\31\32\32\32\33\32\34\32\35\32\36\32\37\32\38\32\39\33\30\33\31\33\32\33\33\33\34\33\35\33\36\33\37\33\38\33\39\34\30\34\31\34\32\34\33\34\34\34\35\34\36\34\37\34\38\34\39\35\30\35\31\35\32\35\33\35\34\35\35\35\36\35\37\35\38\35\39\36\30\36\31\36\32\36\33\36\34\36\35\36\36\36\37\36\38\36\39\37\30\37\31\37\32\37\33\37\34\37\35\37\36\37\37\37\38\37\39\38\30\38\31\38\32\38\33\38\34\38\35\38\36\38\37\38\38\38\39\39\30\39\31\39\32\39\33\39\34\39\35\39\36\39\37\39\38\39\39") + (data (i32.const 4752) "\d0\12\00\00\20\00\00\00\13\04\00\00\11\00\00\00") + (data (i32.const 4768) "\f0\12\00\00\2b\00\00\00\20\13\00\00\1f\00\00\00\4f\01\00\00\14\00\00\00") + (data (i32.const 4792) "\d0\12\00\00\20\00\00\00\07\04\00\00\28\00\00\00") + (data (i32.const 4816) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\63\6f\72\65\2f\66\6d\74\2f\6d\6f\64\2e\72\73") + (data (i32.const 4848) "\63\61\6c\6c\65\64\20\60\4f\70\74\69\6f\6e\3a\3a\75\6e\77\72\61\70\28\29\60\20\6f\6e\20\61\20\60\4e\6f\6e\65\60\20\76\61\6c\75\65") + (data (i32.const 4896) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\63\6f\72\65\2f\6f\70\74\69\6f\6e\2e\72\73") + (data (i32.const 4928) "\90\13\00\00\06\00\00\00\a0\13\00\00\22\00\00\00") + (data (i32.const 4944) "\60\13\00\00\22\00\00\00\e9\02\00\00\04\00\00\00") + (data (i32.const 4960) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\63\6f\72\65\2f\73\6c\69\63\65\2f\6d\6f\64\2e\72\73") + (data (i32.const 5008) "\69\6e\64\65\78\20") + (data (i32.const 5024) "\20\6f\75\74\20\6f\66\20\72\61\6e\67\65\20\66\6f\72\20\73\6c\69\63\65\20\6f\66\20\6c\65\6e\67\74\68\20") + (data (i32.const 5060) "\f0\13\00\00\16\00\00\00\10\14\00\00\0d\00\00\00") + (data (i32.const 5076) "\60\13\00\00\22\00\00\00\ef\02\00\00\04\00\00\00") + (data (i32.const 5104) "\73\6c\69\63\65\20\69\6e\64\65\78\20\73\74\61\72\74\73\20\61\74\20") + (data (i32.const 5136) "\20\62\75\74\20\65\6e\64\73\20\61\74\20") + (data (i32.const 5152) "\42\6f\72\72\6f\77\45\72\72\6f\72") + (data (i32.const 5168) "\42\6f\72\72\6f\77\4d\75\74\45\72\72\6f\72") + (data (i32.const 5184) "\20\20\20\20") + (data (i32.const 5200) "\2c") + (data (i32.const 5204) "\40\00\00\00\08\00\00\00\04\00\00\00\41\00\00\00\42\00\00\00\43\00\00\00") + (data (i32.const 5232) "\20") + (data (i32.const 5236) "\44\00\00\00\04\00\00\00\04\00\00\00\45\00\00\00\46\00\00\00\47\00\00\00") + (data (i32.const 5264) "\0a") + (data (i32.const 5280) "\28") + (data (i32.const 5284) "\70\14\00\00\00\00\00\00\90\14\00\00\01\00\00\00") + (data (i32.const 5300) "\01\00\00\00\00\00\00\00\20\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\01\00\00\00\01\00\00\00\20\00\00\00\04\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00") + (data (i32.const 5372) "\70\14\00\00\00\00\00\00\70\14\00\00\00\00\00\00\70\14\00\00\00\00\00\00") + (data (i32.const 5408) "\29") + (data (i32.const 5424) "\2c\20") + (data (i32.const 5428) "\70\14\00\00\00\00\00\00\70\14\00\00\00\00\00\00") + (data (i32.const 5444) "\50\15\00\00\01\00\00\00") + (data (i32.const 5456) "\5b") + (data (i32.const 5472) "\5d") + (data (i32.const 5488) "\00\01\03\05\05\08\06\03\07\04\08\08\09\10\0a\1b\0b\19\0c\16\0d\12\0e\16\0f\04\10\03\12\12\13\09\16\01\17\05\18\02\19\03\1a\07\1d\01\1f\16\20\03\2b\05\2c\02\2d\0b\2e\01\30\03\31\03\32\02\a7\01\a8\02\a9\02\aa\04\ab\08\fa\02\fb\05\fd\04\fe\03\ff\09") + (data (i32.const 5584) "\ad\78\79\8b\8d\a2\30\57\58\60\88\8b\8c\90\1c\1d\dd\0e\0f\4b\4c\2e\2f\3f\5c\5d\5f\b5\e2\84\8d\8e\91\92\a9\b1\ba\bb\c5\c6\c9\ca\de\e4\e5\04\11\12\29\31\34\37\3a\3b\3d\49\4a\5d\84\8e\92\a9\b1\b4\ba\bb\c6\ca\ce\cf\e4\e5\00\04\0d\0e\11\12\29\31\34\3a\3b\45\46\49\4a\5e\64\65\84\91\9b\9d\c9\ce\cf\04\0d\11\29\45\49\57\64\65\84\8d\91\a9\b4\ba\bb\c5\c9\df\e4\e5\f0\04\0d\11\45\49\64\65\80\81\84\b2\bc\be\bf\d5\d7\f0\f1\83\85\86\89\8b\8c\98\a0\a4\a6\a8\a9\ac\ba\be\bf\c5\c7\ce\cf\da\db\48\98\bd\cd\c6\ce\cf\49\4e\4f\57\59\5e\5f\89\8e\8f\b1\b6\b7\bf\c1\c6\c7\d7\11\16\17\5b\5c\f6\f7\fe\ff\80\0d\6d\71\de\df\0e\0f\1f\6e\6f\1c\1d\5f\7d\7e\ae\af\fa\16\17\1e\1f\46\47\4e\4f\58\5a\5c\5e\7e\7f\b5\c5\d4\d5\dc\f0\f1\f5\72\73\8f\74\75\96\97\c9\2f\5f\26\2e\2f\a7\af\b7\bf\c7\cf\d7\df\9a\40\97\98\2f\30\8f\1f\ff\af\fe\ff\ce\ff\4e\4f\5a\5b\07\08\0f\10\27\2f\ee\ef\6e\6f\37\3d\3f\42\45\90\91\fe\ff\53\67\75\c8\c9\d0\d1\d8\d9\e7\fe\ff") + (data (i32.const 5888) "\00\20\5f\22\82\df\04\82\44\08\1b\05\05\11\81\ac\0e\3b\05\6b\35\1e\16\80\df\03\19\08\01\04\22\03\0a\04\34\04\07\03\01\07\06\07\10\0b\50\0f\12\07\55\08\02\04\1c\0a\09\03\08\03\07\03\02\03\03\03\0c\04\05\03\0b\06\01\0e\15\05\3a\03\11\07\06\05\10\08\56\07\02\07\15\0d\50\04\43\03\2d\03\01\04\11\06\0f\0c\3a\04\1d\25\0d\06\4c\20\6d\04\6a\25\80\c8\05\82\b0\03\1a\06\82\fd\03\59\07\15\0b\17\09\14\0c\14\0c\6a\06\0a\06\1a\06\58\08\2b\05\46\0a\2c\04\0c\04\01\03\31\0b\2c\04\1a\06\0b\03\80\ac\06\0a\06\1f\41\4c\04\2d\03\74\08\3c\03\0f\03\3c\37\08\08\2a\06\82\ff\11\18\08\2f\11\2d\03\20\10\21\0f\80\8c\04\82\97\19\0b\15\87\5a\03\16\19\04\10\80\f4\05\2f\05\3b\07\02\0e\18\09\80\aa\36\74\0c\80\d6\1a\0c\05\80\ff\05\80\b6\05\24\0c\9b\c6\0a\d2\2b\15\84\8d\03\37\09\81\5c\14\80\b8\08\80\b8\3f\35\04\0a\06\38\08\46\08\0c\06\74\0b\1e\03\5a\04\59\09\80\83\18\1c\0a\16\09\46\0a\80\8a\06\ab\a4\0c\17\04\31\a1\04\81\da\26\07\0c\05\05\80\a5\11\81\6d\10\78\28\2a\06\4c\04\80\8d\04\80\be\03\1b\03\0f\0d") + (data (i32.const 6224) "\00\06\01\01\03\01\04\02\08\08\09\02\0a\03\0b\02\10\01\11\04\12\05\13\12\14\02\15\02\1a\03\1c\05\1d\04\24\01\6a\03\6b\02\bc\02\d1\02\d4\0c\d5\09\d6\02\d7\02\da\01\e0\05\e8\02\ee\20\f0\04\f1\01\f9\01") + (data (i32.const 6304) "\0c\27\3b\3e\4e\4f\8f\9e\9e\9f\06\07\09\36\3d\3e\56\f3\d0\d1\04\14\18\56\57\bd\35\ce\cf\e0\12\87\89\8e\9e\04\0d\0e\11\12\29\31\34\3a\3b\45\46\49\4a\4e\4f\64\65\5a\5c\b6\b7\84\85\9d\09\37\90\91\a8\07\0a\3b\3e\6f\5f\ee\ef\5a\62\9a\9b\27\28\55\9d\a0\a1\a3\a4\a7\a8\ad\ba\bc\c4\06\0b\0c\15\1d\3a\3f\45\51\a6\a7\cc\cd\a0\07\19\1a\22\25\c5\c6\04\20\23\25\26\28\33\38\3a\48\4a\4c\50\53\55\56\58\5a\5c\5e\60\63\65\66\6b\73\78\7d\7f\8a\a4\aa\af\b0\c0\d0\2f\3f") + (data (i32.const 6464) "\5e\22\7b\05\03\04\2d\03\65\04\01\2f\2e\80\82\1d\03\31\0f\1c\04\24\09\1e\05\2b\05\44\04\0e\2a\80\aa\06\24\04\24\04\28\08\34\0b\01\80\90\81\37\09\16\0a\08\80\98\39\03\63\08\09\30\16\05\21\03\1b\05\01\40\38\04\4b\05\28\04\03\04\09\08\09\07\40\20\27\04\0c\09\36\03\3a\05\1a\07\04\0c\07\50\49\37\33\0d\33\07\06\81\60\1f\81\81\4e\04\1e\0f\43\0e\19\07\0a\06\44\0c\27\09\75\0b\3f\41\2a\06\3b\05\0a\06\51\06\01\05\10\03\05\80\8b\5e\22\48\08\0a\80\a6\5e\22\45\0b\0a\06\0d\13\38\08\0a\36\1a\03\0f\04\10\81\60\53\0c\01\81\00\48\08\53\1d\39\81\07\46\0a\1d\03\47\49\37\03\0e\08\0a\82\a6\83\9a\66\75\0b\80\c4\8a\bc\84\2f\8f\d1\82\47\a1\b9\82\39\07\2a\04\02\60\26\0a\46\0a\28\05\13\83\70\45\0b\2f\10\11\40\02\1e\97\ed\13\82\f3\a5\0d\81\1f\51\81\8c\89\04\6b\05\0d\03\09\07\10\93\60\80\f6\0a\73\08\6e\17\46\80\ba\57\09\12\80\8e\81\47\03\85\42\0f\15\85\50\2b\87\d5\80\d7\29\4b\05\0a\04\02\84\a0\3c\06\01\04\55\05\1b\34\02\81\0e\2c\04\64\0c\56\0a\0d\03\5c\04\3d\39\1d\0d\2c\04\09\07\02\0e\06\80\9a\83\d5\0b\0d\03\09\07\74\0c\55\2b\0c\04\38\08\0a\06\28\08\1e\52\0c\04\3d\03\1c\14\18\28\01\0f\17\86\19") + (data (i32.const 6824) "\c0\1a\00\00\2b\00\00\00\f0\1a\00\00\1f\00\00\00\4f\01\00\00\14\00\00\00") + (data (i32.const 6848) "\63\61\6c\6c\65\64\20\60\4f\70\74\69\6f\6e\3a\3a\75\6e\77\72\61\70\28\29\60\20\6f\6e\20\61\20\60\4e\6f\6e\65\60\20\76\61\6c\75\65") + (data (i32.const 6896) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\63\6f\72\65\2f\6f\70\74\69\6f\6e\2e\72\73") + (data (i32.const 6928) "\70\1b\00\00\20\00\00\00\90\1b\00\00\12\00\00\00") + (data (i32.const 6944) "\01\00\00\00\00\00\00\00\20\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\01\00\00\00\01\00\00\00\20\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00") + (data (i32.const 7024) "\69\6e\64\65\78\20\6f\75\74\20\6f\66\20\62\6f\75\6e\64\73\3a\20\74\68\65\20\6c\65\6e\20\69\73\20") + (data (i32.const 7056) "\20\62\75\74\20\74\68\65\20\69\6e\64\65\78\20\69\73\20") + (data (i32.const 7088) "\2e\2e") + (data (i32.const 7092) "\d0\1b\00\00\00\00\00\00\b0\1b\00\00\02\00\00\00") + (data (i32.const 7120) "\04\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 7152) "\f0\1b\00\00\00\00\00\00") + (data (i32.const 7160) "\01\00\00\00\00\00\00\00\20\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00") + (data (i32.const 7196) "\30\1c\00\00\1f\00\00\00\6a\03\00\00\04\00\00\00") + (data (i32.const 7216) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\63\6f\72\65\2f\6f\70\74\69\6f\6e\2e\72\73") + (data (i32.const 7248) "\5b\2e\2e\2e\5d") + (data (i32.const 7264) "\e0\1e\00\00\0b\00\00\00\d0\1f\00\00\16\00\00\00\40\1f\00\00\01\00\00\00") + (data (i32.const 7288) "\01\00\00\00\00\00\00\00\20\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\01\00\00\00\01\00\00\00\20\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\01\00\00\00\02\00\00\00\20\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00") + (data (i32.const 7396) "\c0\1e\00\00\20\00\00\00\aa\08\00\00\08\00\00\00") + (data (i32.const 7412) "\a0\1f\00\00\0e\00\00\00\b0\1f\00\00\04\00\00\00\c0\1f\00\00\10\00\00\00\40\1f\00\00\01\00\00\00") + (data (i32.const 7444) "\01\00\00\00\00\00\00\00\20\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\01\00\00\00\01\00\00\00\20\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\01\00\00\00\02\00\00\00\20\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\01\00\00\00\03\00\00\00\20\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00") + (data (i32.const 7588) "\c0\1e\00\00\20\00\00\00\ae\08\00\00\04\00\00\00") + (data (i32.const 7604) "\50\1f\00\00\2b\00\00\00\80\1f\00\00\1f\00\00\00\4f\01\00\00\14\00\00\00") + (data (i32.const 7628) "\e0\1e\00\00\0b\00\00\00\f0\1e\00\00\26\00\00\00\20\1f\00\00\08\00\00\00\30\1f\00\00\06\00\00\00\40\1f\00\00\01\00\00\00") + (data (i32.const 7668) "\01\00\00\00\00\00\00\00\20\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\01\00\00\00\01\00\00\00\20\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\01\00\00\00\02\00\00\00\20\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\01\00\00\00\03\00\00\00\20\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\01\00\00\00\04\00\00\00\20\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00") + (data (i32.const 7848) "\c0\1e\00\00\20\00\00\00\bb\08\00\00\04\00\00\00") + (data (i32.const 7872) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\63\6f\72\65\2f\73\74\72\2f\6d\6f\64\2e\72\73") + (data (i32.const 7904) "\62\79\74\65\20\69\6e\64\65\78\20") + (data (i32.const 7920) "\20\69\73\20\6e\6f\74\20\61\20\63\68\61\72\20\62\6f\75\6e\64\61\72\79\3b\20\69\74\20\69\73\20\69\6e\73\69\64\65\20") + (data (i32.const 7968) "\20\28\62\79\74\65\73\20") + (data (i32.const 7984) "\29\20\6f\66\20\60") + (data (i32.const 8000) "\60") + (data (i32.const 8016) "\63\61\6c\6c\65\64\20\60\4f\70\74\69\6f\6e\3a\3a\75\6e\77\72\61\70\28\29\60\20\6f\6e\20\61\20\60\4e\6f\6e\65\60\20\76\61\6c\75\65") + (data (i32.const 8064) "\2f\63\68\65\63\6b\6f\75\74\2f\73\72\63\2f\6c\69\62\63\6f\72\65\2f\6f\70\74\69\6f\6e\2e\72\73") + (data (i32.const 8096) "\62\65\67\69\6e\20\3c\3d\20\65\6e\64\20\28") + (data (i32.const 8112) "\20\3c\3d\20") + (data (i32.const 8128) "\29\20\77\68\65\6e\20\73\6c\69\63\69\6e\67\20\60") + (data (i32.const 8144) "\20\69\73\20\6f\75\74\20\6f\66\20\62\6f\75\6e\64\73\20\6f\66\20\60") +) diff --git a/docs/Winpython_checker.ipynb b/docs/Winpython_checker.ipynb index fb436ee..4443da7 100644 --- a/docs/Winpython_checker.ipynb +++ b/docs/Winpython_checker.ipynb @@ -205,7 +205,7 @@ "import seaborn as sns\n", "sns.set()\n", "df = sns.load_dataset(\"iris\")\n", - "sns.pairplot(df, hue=\"species\", size=1.5)" + "sns.pairplot(df, hue=\"species\", height=1.5)" ] }, { @@ -214,14 +214,18 @@ "metadata": {}, "outputs": [], "source": [ - "# altair 1.3 example\n", - "import altair as at\n", - "at.Chart(df).mark_bar().encode(\n", - " x=at.X('sepal_length', bin=at.Bin(maxbins=50)),\n", + "# altair-2.0.0 example\n", + "import altair as alt\n", + "\n", + "# Uncomment/run this line to enable Altair in JupyterLab/nteract:\n", + "#alt.renderers.enable('default') # api_v2\n", + "#alt.renderers.enable('notebook') # api_v2,if in Notebook\n", + "alt.Chart(df).mark_bar().encode(\n", + " x=alt.X('sepal_length', bin=alt.Bin(maxbins=50)),\n", " y='count(*):Q',\n", " color='species:N',\n", - " # column='species',\n", - ").configure_cell(width=200)" + " #column='species',\n", + ").interactive() # api_v1 .configure_cell(width=200)\n" ] }, { @@ -416,6 +420,10 @@ " signal = np.sin(2*np.pi*f1*times) + np.sin(2*np.pi*f2*times)\n", " print(f1, f2, abs(f1-f2))\n", " display(Audio(data=signal, rate=rate))\n", + " try:\n", + " plt.plot(signal); #plt.plot(v.result);\n", + " except:\n", + " pass\n", " return signal\n", "v = interactive(beat_freq, f1=(200.0,300.0), f2=(200.0,300.0))\n", "display(v)" @@ -460,26 +468,6 @@ " " ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# checking nbconvert \n", - "!jupyter nbconvert \"Beginner's FAQ.ipynb\" --to html" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "%%HTML\n", - "" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -670,23 +658,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Deep Learning: Theano" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Checking Theano\n", - "import theano.tensor as T\n", - "from theano import function\n", - "x = T.dmatrix('x')\n", - "y = T.dmatrix('y')\n", - "z = x + y\n", - "f = function([x, y], z)\n", - "f([[1, 2], [3, 4]], [[10, 20], [30, 40]])" + "## Deep Learning: see tutorial-first-neural-network-python-keras" ] }, { @@ -893,7 +865,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.3" + "version": "3.7.0" }, "widgets": { "state": { diff --git a/docs/bayesian_neural_network.ipynb b/docs/bayesian_neural_network.ipynb deleted file mode 100644 index 080af4a..0000000 --- a/docs/bayesian_neural_network.ipynb +++ /dev/null @@ -1,315 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Bayesian Neural Network in PyMC3\n", - "(c) 2016 by Thomas Wiecki" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "import sys, os\n", - "sys.path.insert(0, os.path.expanduser('~/work/git/github/taku-y/pymc3/'))\n", - "\n", - "%matplotlib inline\n", - "import pymc3 as pm\n", - "import theano.tensor as T\n", - "import theano\n", - "import sklearn\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "from sklearn import datasets\n", - "from sklearn.preprocessing import scale\n", - "from sklearn.cross_validation import train_test_split\n", - "from sklearn.datasets import make_moons, make_circles, make_classification\n", - "import seaborn as sns" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "#X, Y = datasets.make_blobs(n_samples=200, n_features=2, centers=2, cluster_std=3.0, \n", - "# center_box=(-5.0, 5.0), shuffle=True, random_state=None)\n", - "\n", - "X, Y = make_moons(noise=0.2, random_state=0, n_samples=1000)\n", - "X = scale(X)\n", - "X = X.astype('float32')\n", - "Y = Y.astype('float32')\n", - "X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=.5)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "plt.scatter(X[Y==0, 0], X[Y==0, 1])\n", - "plt.scatter(X[Y==1, 0], X[Y==1, 1], color='r')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "def Ordered(name, var, model=None):\n", - " order = T.constant(list(range(var.tag.test_value.shape[1])))\n", - " return pm.Potential(\n", - " name,\n", - " T.switch(T.eq(T.argsort(T.sum(var, axis=0)), order), 0, -np.inf),\n", - " model=model\n", - " )" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "# Turn inputs and outputs into shared variables so that we can change them later\n", - "import theano.tensor as tt\n", - "\n", - "# ann_input = tt.matrix()\n", - "# ann_input.tag.test_value = X_train\n", - "# ann_output = tt.vector()\n", - "# ann_output.tag.test_value = Y_train\n", - "\n", - "ann_input = theano.shared(X_train)\n", - "ann_output = theano.shared(Y_train)\n", - "\n", - "n_hidden = 5\n", - "\n", - "# Initialize random but sorted starting weights.\n", - "init_1 = np.random.randn(X.shape[1], n_hidden)\n", - "init_1 = init_1[:, np.argsort(init_1.sum(axis=0))]\n", - "init_2 = np.random.randn(n_hidden, n_hidden)\n", - "init_2 = init_2[:, np.argsort(init_2.sum(axis=0))]\n", - "init_out = np.random.randn(n_hidden)\n", - "init_out = init_out[np.argsort(init_out)]\n", - "\n", - " \n", - "with pm.Model() as neural_network:\n", - " # Weights from input to hidden layer\n", - " weights_in_1 = pm.Normal('w_in_1', 0, sd=1, shape=(X.shape[1], n_hidden), \n", - " testval=init_1)\n", - " \n", - " # Weights from 1st to 2nd layer\n", - " weights_1_2 = pm.Normal('w_1_2', 0, sd=1, shape=(n_hidden, n_hidden), \n", - " testval=init_2)\n", - " \n", - " # Weights from hidden layer to output\n", - " weights_2_out = pm.Normal('w_2_out', 0, sd=1, shape=(n_hidden,), \n", - " testval=init_out)\n", - "\n", - " # Build neural-network\n", - " a1 = T.dot(ann_input, weights_in_1)\n", - " act_1 = T.tanh(a1)\n", - " a2 = T.dot(act_1, weights_1_2)\n", - " act_2 = T.tanh(a2)\n", - " act_out = T.dot(act_2, weights_2_out)\n", - " \n", - " out = pm.Bernoulli('out', \n", - " T.nnet.sigmoid(act_out),\n", - " observed=ann_output)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Estimation with ADVI" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "minibatch_tensors = [ann_input, ann_output]\n", - "minibatch_RVs = [out]\n", - "\n", - "def create_minibatch(data):\n", - " rng = np.random.RandomState(0)\n", - " \n", - " while True:\n", - " ixs = rng.randint(len(data), size=100)\n", - " yield data[ixs]\n", - "\n", - "minibatches = [\n", - " create_minibatch(X_train), \n", - " create_minibatch(Y_train),\n", - "]\n", - "\n", - "total_size = len(Y_train)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "with neural_network:\n", - " # Run advi_minibatch\n", - " advi_fit = pm.variational.advi_minibatch(\n", - " n=40000, minibatch_tensors=minibatch_tensors, \n", - " minibatch_RVs=minibatch_RVs, minibatches=minibatches, \n", - " total_size=total_size, learning_rate=1e-2, epsilon=1.0, \n", - " n_mcsamples=1\n", - " )\n", - "plt.plot(advi_fit.elbo_vals)\n", - "trace_advi = pm.variational.sample_vp(advi_fit, 500, neural_network)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "# Replace shared variables with testing set\n", - "# (note that using this trick we could be streaming ADVI for big data)\n", - "ann_input.set_value(X_test)\n", - "ann_output.set_value(Y_test)\n", - "\n", - "# Creater posterior predictive samples\n", - "ppc = pm.sample_ppc(trace_advi, model=neural_network, samples=500)\n", - "pred = ppc['out'].mean(axis=0) > 0.5\n", - "\n", - "plt.scatter(X_test[Y_test==0, 0], X_test[Y_test==0, 1])\n", - "plt.scatter(X_test[Y_test==1, 0], X_test[Y_test==1, 1], color='r')\n", - "plt.title('Predicted labels in testing set')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "plt.scatter(X_test[pred==0, 0], X_test[pred==0, 1])\n", - "plt.scatter(X_test[pred==1, 0], X_test[pred==1, 1], color='r')\n", - "plt.title('Predicted labels in testing set')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "print('Accuracy = {}%'.format((Y_test == pred).mean() * 100))\n", - "sns.regplot(ppc['out'].mean(axis=0), Y_test, logistic=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Lets look at what the classifier has learned" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "grid = np.mgrid[-3:3:100j,-3:3:100j]\n", - "grid_2d = grid.reshape(2, -1).T.astype('float32')\n", - "dummy_out = np.ones(grid_2d.shape[0], dtype=np.int8)\n", - "\n", - "ann_input.set_value(grid_2d)\n", - "ann_output.set_value(dummy_out)\n", - "# Creater posterior predictive samples\n", - "ppc = pm.sample_ppc(trace_advi, model=neural_network, samples=5000)\n", - "pred_grid = ppc['out'].mean(axis=0)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "cmap = sns.diverging_palette(145, 280, s=85, l=25, as_cmap=True)\n", - "# plt.contourf(*grid, pred_grid.reshape(100, 100), cmap=cmap)\n", - "plt.contourf(grid[0], grid[1], pred_grid.reshape(100, 100), cmap=cmap)\n", - "plt.scatter(X_test[pred==0, 0], X_test[pred==0, 1], alpha=0.5)\n", - "plt.scatter(X_test[pred==1, 0], X_test[pred==1, 1], color='r', alpha=0.5)\n", - "#plt.title('Predicted labels in testing set')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.4.4" - }, - "widgets": { - "state": {}, - "version": "1.1.2" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/docs/dplyr_pandas.ipynb b/docs/dplyr_pandas.ipynb index 1916660..25e8124 100644 --- a/docs/dplyr_pandas.ipynb +++ b/docs/dplyr_pandas.ipynb @@ -63,9 +63,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# Downloading and unzipg a file, without R method :\n", @@ -91,9 +89,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# Some prep work to get the data from R and into pandas\n", @@ -117,9 +113,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "flights = pd.read_csv(\"flights.csv\", index_col=0)" @@ -128,9 +122,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# dim(flights) <--- The R code\n", @@ -140,9 +132,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# head(flights)\n", @@ -219,9 +209,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# filter(flights, month == 1, day == 1)\n", @@ -248,9 +236,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# flights[flights$month == 1 & flights$day == 1, ]\n", @@ -260,9 +246,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# slice(flights, 1:10)\n", @@ -279,9 +263,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# arrange(flights, year, month, day) \n", @@ -291,9 +273,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# arrange(flights, desc(arr_delay))\n", @@ -318,9 +298,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# select(flights, year, month, day) \n", @@ -330,9 +308,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# select(flights, year:day) \n", @@ -358,9 +334,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# select(flights, tail_num = tailnum)\n", @@ -377,9 +351,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# rename(flights, tail_num = tailnum)\n", @@ -419,9 +391,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# distinct(select(flights, tailnum))\n", @@ -438,9 +408,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# distinct(select(flights, origin, dest))\n", @@ -471,9 +439,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# mutate(flights,\n", @@ -487,9 +453,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# mutate(flights,\n", @@ -517,9 +481,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# transmute(flights,\n", @@ -541,9 +503,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# summarise(flights,\n", @@ -569,9 +529,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# sample_n(flights, 10)\n", @@ -581,9 +539,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# sample_frac(flights, 0.01)\n", @@ -600,9 +556,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# planes <- group_by(flights, tailnum)\n", @@ -644,9 +598,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "fig, ax = plt.subplots(figsize=(12, 6))\n", @@ -678,9 +630,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "smooth = sm.nonparametric.lowess(delay.delay, delay.dist, frac=1/8)\n", @@ -694,9 +644,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# destinations <- group_by(flights, dest)\n", @@ -724,9 +672,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "destinations = flights.groupby('dest')\n", @@ -752,9 +698,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# daily <- group_by(flights, year, month, day)\n", @@ -768,9 +712,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# (per_month <- summarise(per_day, flights = sum(flights)))\n", @@ -781,9 +723,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# (per_year <- summarise(per_month, flights = sum(flights)))\n", @@ -815,9 +755,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# flights %>%\n", @@ -917,9 +855,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.4.4" + "version": "3.6.2" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/docs/keras-intro_brianspiering.ipynb b/docs/keras-intro_brianspiering.ipynb new file mode 100644 index 0000000..2e15341 --- /dev/null +++ b/docs/keras-intro_brianspiering.ipynb @@ -0,0 +1,1284 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "

\n", + "
bit.ly/pybay-keras
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Who Am I?\n", + "-----\n", + "\n", + "
Brian Spiering
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "source": [ + "What Do I Do?\n", + "------\n", + "\n", + "
Professor @
\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Keras - Neural Networks for humans\n", + "------\n", + "\n", + "
\n", + "\n", + "A high-level, intuitive API for Deep Learning.\n", + "\n", + "Easy to define neural networks, then automatically handles execution.\n", + "\n", + "A simple, modular interface which allows focus on learning and enables fast experimentation" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Goals\n", + "-----\n", + "\n", + "- General introduction to Deep Learning\n", + "- Overview of keras library\n", + "- An end-to-end example in keras " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Anti-Goals\n", + "-----\n", + "\n", + "- Understanding of Deep Learning (there will be no equations)\n", + "- Building neural networks from scratch\n", + "- Complete survey of keras library" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Deep Learning 101\n", + "-----\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Deep Learning (DL) are Neural networks (NN) with >1 hidden layer\n", + "-------\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Neural Networks are Nodes & Edges\n", + "------\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Nonlinear function allows learning of nonlinear relationships\n", + "------\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Groups of nodes all the way down\n", + "------\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Deep Learning isn't magic, it is just very good at finding patterns\n", + "------\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Deep Learning has fewer steps than traditional Machine Learning\n", + "------\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "If you want to follow along…\n", + "-----\n", + "\n", + "GitHub repo: [bit.ly/pybay-keras](http://bit.ly/pybay-keras)\n", + "\n", + "If you want to type along…\n", + "------\n", + "\n", + "1. Run a local Jupyter Notebook\n", + "1. [Binder](https://mybinder.org/v2/gh/brianspiering/keras-intro/master): In-Browser Jupyter Notebook\n", + "1. [Colaboratory](https://colab.research.google.com/): \"Google Docs for Jupyter Notebooks\"" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "reset -fs" + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "import keras" + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [], + "source": [ + "# What is the backend / execution engine?" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "'tensorflow'" + ] + }, + "execution_count": 87, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "keras.backend.backend()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "
\n", + "\n", + "\"An open-source software library for Machine Intelligence\"\n", + "\n", + "Numerical computation using data flow graphs. " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "TensorFlow: A great backend\n", + "------\n", + "A __very__ flexible architecture which allows you to do almost any numerical operation.\n", + "\n", + "Then deploy the computation to CPUs or GPUs (one or more) across desktop, cloud, or mobile device. \n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "MNIST handwritten digit database:
The “Hello World!” of Computer Vision\n", + "------\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "
" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# Import data\n" + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "from keras.datasets import mnist" + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [], + "source": [ + "# Setup train and test splits\n" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "(x_train, y_train), (x_test, y_test) = mnist.load_data()" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "from random import randint\n", + "from matplotlib import pyplot\n", + "\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "pyplot.imshow(x_train[randint(0, x_train.shape[0])], cmap='gray_r');" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "source": [ + "Munge data\n", + "-----\n", + "\n", + "
\n", + "\n", + "Convert image matrix into vector to feed into first layer " + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# Munge Data\n", + "# Transform from matrix to vector, cast, and normalize" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "\n", + "image_size = 784 # 28 x 28\n", + "\n", + "x_train = x_train.reshape(x_train.shape[0], image_size) # Transform from matrix to vector\n", + "x_train = x_train.astype('float32') # Cast as 32 bit integers\n", + "x_train /= 255 # Normalize inputs from 0-255 to 0.0-1.0\n", + "\n", + "x_test = x_test.reshape(x_test.shape[0], image_size) # Transform from matrix to vector\n", + "x_test = x_test.astype('float32') # Cast as 32 bit integers\n", + "x_test /= 255 # Normalize inputs from 0-255 to 0.0-1.0" + ] + }, + { + "cell_type": "code", + "execution_count": 96, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# Convert class vectors to binary class matrices\n" + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "y_train = keras.utils.to_categorical(y_train, 10)\n", + "y_test = keras.utils.to_categorical(y_test, 10)" + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# Import the most common type of neural network\n" + ] + }, + { + "cell_type": "code", + "execution_count": 99, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "from keras.models import Sequential" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "source": [ + "RTFM - https://keras.io/layers/" + ] + }, + { + "cell_type": "code", + "execution_count": 100, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [], + "source": [ + "# Define model instance\n" + ] + }, + { + "cell_type": "code", + "execution_count": 101, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "model = Sequential()" + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# Import the most common type of network layer, fully interconnected\n" + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "from keras.layers import Dense" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "source": [ + "
" + ] + }, + { + "cell_type": "code", + "execution_count": 104, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# Define input layer\n" + ] + }, + { + "cell_type": "code", + "execution_count": 105, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "layer_input = Dense(units=512, # Number of nodes\n", + " activation='sigmoid', # The nonlinearity\n", + " input_shape=(image_size,)) \n", + "model.add(layer_input)" + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [], + "source": [ + "# Define another layer\n" + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "model.add(Dense(units=512, activation='sigmoid'))" + ] + }, + { + "cell_type": "code", + "execution_count": 108, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# Define output layers\n" + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "layer_output = Dense(units=10, # Number of digits (0-9)\n", + " activation='softmax') # Convert neural activation to probability of category\n", + "\n", + "model.add(layer_output)" + ] + }, + { + "cell_type": "code", + "execution_count": 110, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# Print summary\n" + ] + }, + { + "cell_type": "code", + "execution_count": 111, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "_________________________________________________________________\n", + "Layer (type) Output Shape Param # \n", + "=================================================================\n", + "dense_9 (Dense) (None, 512) 401920 \n", + "_________________________________________________________________\n", + "dense_10 (Dense) (None, 512) 262656 \n", + "_________________________________________________________________\n", + "dense_11 (Dense) (None, 10) 5130 \n", + "=================================================================\n", + "Total params: 669,706\n", + "Trainable params: 669,706\n", + "Non-trainable params: 0\n", + "_________________________________________________________________\n" + ] + } + ], + "source": [ + "model.summary()" + ] + }, + { + "cell_type": "code", + "execution_count": 112, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [], + "source": [ + "# Yes - we compile the model to run it\n" + ] + }, + { + "cell_type": "code", + "execution_count": 113, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "model.compile(loss='categorical_crossentropy', \n", + " optimizer='sgd',\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 114, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# Train the model\n" + ] + }, + { + "cell_type": "code", + "execution_count": 115, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train on 54000 samples, validate on 6000 samples\n", + "Epoch 1/5\n", + "54000/54000 [==============================] - 15s 285us/step - loss: 2.1522 - acc: 0.3213 - val_loss: 1.8987 - val_acc: 0.5315\n", + "Epoch 2/5\n", + "54000/54000 [==============================] - 14s 262us/step - loss: 1.5000 - acc: 0.6548 - val_loss: 1.0769 - val_acc: 0.7430\n", + "Epoch 3/5\n", + "54000/54000 [==============================] - 15s 285us/step - loss: 0.9003 - acc: 0.7860 - val_loss: 0.6709 - val_acc: 0.8560\n", + "Epoch 4/5\n", + "54000/54000 [==============================] - 14s 266us/step - loss: 0.6515 - acc: 0.8317 - val_loss: 0.5121 - val_acc: 0.8778\n", + "Epoch 5/5\n", + "54000/54000 [==============================] - 18s 340us/step - loss: 0.5385 - acc: 0.8549 - val_loss: 0.4268 - val_acc: 0.8940\n" + ] + } + ], + "source": [ + "training = model.fit(x_train, \n", + " y_train,\n", + " epochs=5, # Number of passes over complete dataset\n", + " verbose=True, \n", + " validation_split=0.1)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "
" + ] + }, + { + "cell_type": "code", + "execution_count": 116, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# Let's see how well our model performs\n" + ] + }, + { + "cell_type": "code", + "execution_count": 117, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10000/10000 [==============================] - 1s 106us/step\n", + "Test loss: 0.476\n", + "Test accuracy: 87.140%\n" + ] + } + ], + "source": [ + "loss, accuracy = model.evaluate(x_test, \n", + " y_test, \n", + " verbose=True)\n", + "print(f\"Test loss: {loss:.3}\")\n", + "print(f\"Test accuracy: {accuracy:.3%}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Keras' Other Features\n", + "-----\n", + "\n", + "- Common built-in functions (e.g., activation functions and optimitizers)\n", + "- Convolutional neural network (CNN or ConvNet)\n", + "- Recurrent neural network (RNN) & Long-short term memory (LSTM)\n", + "- Pre-trained models" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Summary\n", + "-----\n", + "\n", + "- Keras is designed for human beings, not computers.\n", + "- Easier to try out Deep Learning (focus on the __what__, not the __how__).\n", + "- Simple to define neural networks." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Futher Study - Keras\n", + "--------\n", + "\n", + "- [Keras docs](https://keras.io/)\n", + "- [Keras blog](https://blog.keras.io/)\n", + "- Keras courses\n", + " - [edX](https://www.edx.org/course/deep-learning-fundamentals-with-keras)\n", + " - [Coursera](https://www.coursera.org/lecture/ai/keras-overview-7GfN9)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Futher Study - Deep Learning\n", + "--------\n", + "\n", + "- Prerequisites: Linear Algebra, Probability, Machine Learning\n", + "- [fast.ai Course](http://www.fast.ai/)\n", + "- [Deep Learning Book](http://www.deeplearningbook.org/)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true, + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Bonus Material\n", + "--------" + ] + }, + { + "cell_type": "code", + "execution_count": 118, + "metadata": {}, + "outputs": [], + "source": [ + "# reset -fs" + ] + }, + { + "cell_type": "code", + "execution_count": 119, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# from keras import *" + ] + }, + { + "cell_type": "code", + "execution_count": 120, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# whos" + ] + }, + { + "cell_type": "code", + "execution_count": 121, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# from keras.datasets import fashion_mnist" + ] + }, + { + "cell_type": "code", + "execution_count": 122, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [], + "source": [ + "# # Setup train and test splits\n", + "# (x_train, y_train), (x_test, y_test) = fashion_mnist.load_data()" + ] + }, + { + "cell_type": "code", + "execution_count": 123, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# from random import randint\n", + "# from matplotlib import pyplot\n", + "\n", + "# %matplotlib inline" + ] + }, + { + "cell_type": "code", + "execution_count": 124, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# pyplot.imshow(x_train[randint(0, x_train.shape[0])], cmap='gray_r');" + ] + }, + { + "cell_type": "code", + "execution_count": 125, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# # Define CNN model\n", + "\n", + "# # Redefine input dimensions to make sure conv works\n", + "# img_rows, img_cols = 28, 28\n", + "# x_train = x_train.reshape(x_train.shape[0], img_rows, img_cols, 1)\n", + "# x_test = x_test.reshape(x_test.shape[0], img_rows, img_cols, 1)\n", + "# input_shape = (img_rows, img_cols, 1)" + ] + }, + { + "cell_type": "code", + "execution_count": 126, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# import keras" + ] + }, + { + "cell_type": "code", + "execution_count": 127, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [], + "source": [ + "# # Convert class vectors to binary class matrices\n", + "# y_train = keras.utils.to_categorical(y_train, 10)\n", + "# y_test = keras.utils.to_categorical(y_test, 10)" + ] + }, + { + "cell_type": "code", + "execution_count": 128, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# from keras.layers import Conv2D, Dense, Flatten, MaxPooling2D" + ] + }, + { + "cell_type": "code", + "execution_count": 129, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# # Define model\n", + "# model = Sequential()\n", + "# model.add(Conv2D(32, \n", + "# kernel_size=(3, 3),\n", + "# activation='sigmoid',\n", + "# input_shape=input_shape))\n", + "# model.add(Conv2D(64, (3, 3), activation='sigmoid'))\n", + "# model.add(MaxPooling2D(pool_size=(2, 2)))\n", + "# model.add(Flatten())\n", + "# model.add(Dense(128, activation='sigmoid'))\n", + "# model.add(Dense(10, activation='softmax'))" + ] + }, + { + "cell_type": "code", + "execution_count": 130, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# model.compile(loss='categorical_crossentropy', \n", + "# optimizer='adam',\n", + "# metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 131, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# # Define training\n", + "# training = model.fit(x_train, \n", + "# y_train,\n", + "# epochs=5,\n", + "# verbose=True, \n", + "# validation_split=0.1)" + ] + }, + { + "cell_type": "code", + "execution_count": 132, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "# loss, accuracy = model.evaluate(x_test, \n", + "# y_test, \n", + "# verbose=True)\n", + "# print(f\"Test loss: {loss:.3}\")\n", + "# print(f\"Test accuracy: {accuracy:.3%}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "What is `keras`? \n", + "-----\n", + "\n", + "
\n", + "\n", + "Keras (κέρας) means horn in Greek. " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "It is a reference to a literary image from ancient Greek and Latin literature.\n", + "\n", + "First found in the Odyssey, where dream spirits (Oneiroi, singular Oneiros) are divided between those who deceive men with false visions, who arrive to Earth through a gate of ivory, and those who announce a future that will come to pass, who arrive through a gate of horn. \n", + "\n", + "It's a play on the words κέρας (horn) / κραίνω (fulfill), and ἐλέφας (ivory) / ἐλεφαίρομαι (deceive)." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "source": [ + "[Source](https://keras.io/#why-this-name-keras)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "
" + ] + } + ], + "metadata": { + "celltoolbar": "Slideshow", + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.0" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/minesweeper.py b/docs/minesweeper.py new file mode 100644 index 0000000..26d70f6 --- /dev/null +++ b/docs/minesweeper.py @@ -0,0 +1,183 @@ +""" +Matplotlib Minesweeper +---------------------- +A simple Minesweeper implementation in matplotlib. + +Author: Jake Vanderplas , Dec. 2012 +License: BSD +""" +import numpy as np +from itertools import product +from scipy.signal import convolve2d +import matplotlib.pyplot as plt +from matplotlib.patches import RegularPolygon + + +class MineSweeper(object): + covered_color = '#DDDDDD' + uncovered_color = '#AAAAAA' + edge_color = '#888888' + count_colors = ['none', 'blue', 'green', 'red', 'darkblue', + 'darkred', 'darkgreen', 'black', 'black'] + flag_vertices = np.array([[0.25, 0.2], [0.25, 0.8], + [0.75, 0.65], [0.25, 0.5]]) + + @classmethod + def beginner(cls): + return cls(8, 8, 10) + + @classmethod + def intermediate(cls): + return cls(16, 16, 40) + + @classmethod + def expert(cls): + return cls(30, 16, 99) + + def __init__(self, width, height, nmines): + self.width, self.height, self.nmines = width, height, nmines + + # Create the figure and axes + self.fig = plt.figure(figsize=((width + 2) / 3., (height + 2) / 3.)) + self.ax = self.fig.add_axes((0.05, 0.05, 0.9, 0.9), + aspect='equal', frameon=False, + xlim=(-0.05, width + 0.05), + ylim=(-0.05, height + 0.05)) + for axis in (self.ax.xaxis, self.ax.yaxis): + axis.set_major_formatter(plt.NullFormatter()) + axis.set_major_locator(plt.NullLocator()) + + # Create the grid of squares + self.squares = np.array([[RegularPolygon((i + 0.5, j + 0.5), + numVertices=4, + radius=0.5 * np.sqrt(2), + orientation=np.pi / 4, + ec=self.edge_color, + fc=self.covered_color) + for j in range(height)] + for i in range(width)]) + [self.ax.add_patch(sq) for sq in self.squares.flat] + + # define internal state variables + self.mines = None + self.counts = None + self.clicked = np.zeros((self.width, self.height), dtype=bool) + self.flags = np.zeros((self.width, self.height), dtype=object) + self.game_over = False + + # Create event hook for mouse clicks + self.fig.canvas.mpl_connect('button_press_event', self._button_press) + + def _draw_mine(self, i, j): + self.ax.add_patch(plt.Circle((i + 0.5, j + 0.5), radius=0.25, + ec='black', fc='black')) + + def _draw_red_X(self, i, j): + self.ax.text(i + 0.5, j + 0.5, 'X', color='r', fontsize=20, + ha='center', va='center') + + def _toggle_mine_flag(self, i, j): + if self.clicked[i, j]: + pass + elif self.flags[i, j]: + self.ax.patches.remove(self.flags[i, j]) + self.flags[i, j] = None + else: + self.flags[i, j] = plt.Polygon(self.flag_vertices + [i, j], + fc='red', ec='black', lw=2) + self.ax.add_patch(self.flags[i, j]) + + def _reveal_unmarked_mines(self): + for (i, j) in zip(*np.where(self.mines & ~self.flags.astype(bool))): + self._draw_mine(i, j) + + def _cross_out_wrong_flags(self): + for (i, j) in zip(*np.where(~self.mines & self.flags.astype(bool))): + self._draw_red_X(i, j) + + def _mark_remaining_mines(self): + for (i, j) in zip(*np.where(self.mines & ~self.flags.astype(bool))): + self._toggle_mine_flag(i, j) + + def _setup_mines(self, i, j): + # randomly place mines on a grid, but not on space (i, j) + idx = np.concatenate([np.arange(i * self.height + j), + np.arange(i * self.height + j + 1, + self.width * self.height)]) + np.random.shuffle(idx) + self.mines = np.zeros((self.width, self.height), dtype=bool) + self.mines.flat[idx[:self.nmines]] = 1 + + # count the number of mines bordering each square + self.counts = convolve2d(self.mines.astype(complex), np.ones((3, 3)), + mode='same').real.astype(int) + + def _click_square(self, i, j): + # if this is the first click, then set up the mines + if self.mines is None: + self._setup_mines(i, j) + + # if there is a flag or square is already clicked, do nothing + if self.flags[i, j] or self.clicked[i, j]: + return + self.clicked[i, j] = True + + # hit a mine: game over + if self.mines[i, j]: + self.game_over = True + self._reveal_unmarked_mines() + self._draw_red_X(i, j) + self._cross_out_wrong_flags() + + # square with no surrounding mines: clear out all adjacent squares + elif self.counts[i, j] == 0: + self.squares[i, j].set_facecolor(self.uncovered_color) + for ii in range(max(0, i - 1), min(self.width, i + 2)): + for jj in range(max(0, j - 1), min(self.height, j + 2)): + self._click_square(ii, jj) + + # hit an empty square: reveal the number + else: + self.squares[i, j].set_facecolor(self.uncovered_color) + self.ax.text(i + 0.5, j + 0.5, str(self.counts[i, j]), + color=self.count_colors[self.counts[i, j]], + ha='center', va='center', fontsize=18, + fontweight='bold') + + # if all remaining squares are mines, mark them and end game + if self.mines.sum() == (~self.clicked).sum(): + self.game_over = True + self._mark_remaining_mines() + + def _button_press(self, event): + if self.game_over or (event.xdata is None) or (event.ydata is None): + return + i, j = map(int, (event.xdata, event.ydata)) + if (i < 0 or j < 0 or i >= self.width or j >= self.height): + return + + # left mouse button: reveal square. If the square is already clicked + # and the correct # of mines are marked, then clear surroundig squares + if event.button == 1: + if (self.clicked[i, j]): + flag_count = self.flags[max(0, i - 1):i + 2, + max(0, j - 1):j + 2].astype(bool).sum() + if self.counts[i, j] == flag_count: + for ii, jj in product(range(max(0, i - 1), + min(self.width, i + 2)), + range(max(0, j - 1), + min(self.height, j + 2))): + self._click_square(ii, jj) + else: + self._click_square(i, j) + + # right mouse button: mark/unmark flag + elif (event.button == 3) and (not self.clicked[i, j]): + self._toggle_mine_flag(i, j) + + self.fig.canvas.draw() + + +if __name__ == '__main__': + ms = MineSweeper.intermediate() + plt.show() diff --git a/docs/pandas_demo_from_jreback.ipynb b/docs/pandas_demo_from_jreback.ipynb index a4c463c..579049e 100644 --- a/docs/pandas_demo_from_jreback.ipynb +++ b/docs/pandas_demo_from_jreback.ipynb @@ -10,675 +10,9 @@ }, { "cell_type": "code", - "execution_count": 1, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " \n", - "\n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
\n", - " \n", - " sepal_length\n", - " \n", - " sepal_width\n", - " \n", - " petal_length\n", - " \n", - " petal_width\n", - " \n", - " species\n", - " \n", - "
\n", - " \n", - " 45\n", - " \n", - " \n", - " \n", - " \n", - " 4.8\n", - " \n", - " \n", - " \n", - " \n", - " 3.0\n", - " \n", - " \n", - " \n", - " \n", - " 1.4\n", - " \n", - " \n", - " \n", - " \n", - " 0.3\n", - " \n", - " \n", - " \n", - " \n", - " setosa\n", - " \n", - " \n", - "
\n", - " \n", - " 125\n", - " \n", - " \n", - " \n", - " \n", - " 7.2\n", - " \n", - " \n", - " \n", - " \n", - " 3.2\n", - " \n", - " \n", - " \n", - " \n", - " 6.0\n", - " \n", - " \n", - " \n", - " \n", - " 1.8\n", - " \n", - " \n", - " \n", - " \n", - " virginica\n", - " \n", - " \n", - "
\n", - " \n", - " 49\n", - " \n", - " \n", - " \n", - " \n", - " 5.0\n", - " \n", - " \n", - " \n", - " \n", - " 3.3\n", - " \n", - " \n", - " \n", - " \n", - " 1.4\n", - " \n", - " \n", - " \n", - " \n", - " 0.2\n", - " \n", - " \n", - " \n", - " \n", - " setosa\n", - " \n", - " \n", - "
\n", - " \n", - " 95\n", - " \n", - " \n", - " \n", - " \n", - " 5.7\n", - " \n", - " \n", - " \n", - " \n", - " 3.0\n", - " \n", - " \n", - " \n", - " \n", - " 4.2\n", - " \n", - " \n", - " \n", - " \n", - " 1.2\n", - " \n", - " \n", - " \n", - " \n", - " versicolor\n", - " \n", - " \n", - "
\n", - " \n", - " 84\n", - " \n", - " \n", - " \n", - " \n", - " 5.4\n", - " \n", - " \n", - " \n", - " \n", - " 3.0\n", - " \n", - " \n", - " \n", - " \n", - " 4.5\n", - " \n", - " \n", - " \n", - " \n", - " 1.5\n", - " \n", - " \n", - " \n", - " \n", - " versicolor\n", - " \n", - " \n", - "
\n", - " \n", - " 16\n", - " \n", - " \n", - " \n", - " \n", - " 5.4\n", - " \n", - " \n", - " \n", - " \n", - " 3.9\n", - " \n", - " \n", - " \n", - " \n", - " 1.3\n", - " \n", - " \n", - " \n", - " \n", - " 0.4\n", - " \n", - " \n", - " \n", - " \n", - " setosa\n", - " \n", - " \n", - "
\n", - " \n", - " 146\n", - " \n", - " \n", - " \n", - " \n", - " 6.3\n", - " \n", - " \n", - " \n", - " \n", - " 2.5\n", - " \n", - " \n", - " \n", - " \n", - " 5.0\n", - " \n", - " \n", - " \n", - " \n", - " 1.9\n", - " \n", - " \n", - " \n", - " \n", - " virginica\n", - " \n", - " \n", - "
\n", - " " - ], - "text/plain": [ - "" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "%matplotlib inline\n", "import pandas as pd\n", @@ -723,32 +57,9 @@ }, { "cell_type": "code", - "execution_count": 2, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\nSUVORK5CYII=\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "# assign = define new temporary columns (like 'mutate' in R language)\n", "(df\n", @@ -762,32 +73,9 @@ }, { "cell_type": "code", - "execution_count": 3, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtQAAAJ9CAYAAAAVPuXWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXd4XNW5r9/pM5oZ9V5GsuVeMLZlY5CLEucYEhyDsQUY\n25hjg7kJ+N6LSeBwCnkeznkSwkNCQnJzL5DDMTUUB0ISQndiwInBBp/YlhtuKqNRb1M1mnL/GE3Z\no5E0GhXL0nr/kXZZe6+91l5lvv2t7yfz+/1+BAKBQCAQCAQCQULIL3UGBAKBQCAQCASCyxkxoRYI\nBAKBQCAQCIaBmFALBAKBQCAQCATDQEyoBQKBQCAQCASCYSAm1AKBQCAQCAQCwTAQE2qBQCAQCAQC\ngWAYKMf6hh6PhwcffBCz2YxSqeTf//3fmTJlSuj4nj172Lt3L+np6QA88sgjlJSUjHU2BQKBQCAQ\nCASCuBjzCfX+/fvx+Xy88sor/PWvf+WJJ57gySefDB2vqqriscceY86cOWOdNYFAIBAIBAKBYMiM\n+YS6pKQEr9eL3+/HarWiUqkkx6uqqnjqqadobm6moqKCnTt3jnUWBQKBQCAQCASCuBnzCbVer6eu\nro7rrruOjo4OnnrqKcnx66+/ns2bN2MwGLjnnnvYv38/q1atGutsCgQCgUAgEAgEcTHmixL37NnD\nihUreO+99/j973/Pgw8+iNvtDh3ftm0bqampKJVKVq1axYkTJwa9plBPH5+Iehm/iLoZn4h6Gb+I\nuhmfiHoRjBfG3EKdkpKCUhm4rdFoxOPx4PP5ALDZbKxdu5Z33nkHrVbLwYMH2bhx46DXlMlkNDdb\nBzwnK8s46DnxnjfW1xrp+40V8dRLNPE+a6Lnj9d7BNOMFeOxzYzn+40VQ2kzQ3nHRrJsx8u5Y1kv\nMPT+bKL0TROhLwsyUdvBUK4pGD3GfEK9bds2/vmf/5nNmzfj8XjYvXs3H374IU6nk8rKSnbv3s3W\nrVvRaDRcffXVrFy5cqyzKBAIBAKBQCAQxM2YT6iTkpL42c9+1u/xdevWsW7dujHMkUAgEAgEAoFA\nkDhC2EUgEAgEAoFAIBgGYkItEAgEAoFAIBAMgzGfUHs8Hu6//35uvfVWtmzZwoULFyTH9+3bx8aN\nG7n11lt5/fXXxzp7AoFAIBAIBALBkBjzCXWkUuJ3v/tdnnjiidAxj8fDo48+yp49e3jhhRd49dVX\naWtrG+ssCgQCgUAgEAgEcTPmE+qBlBLPnTtHcXExBoMBlUrF4sWLOXTo0FhnUSAQCAQCgUAgiJtx\npZRos9kwGo2Sc63WocW/FAgEAoFAIBAIxhKZf4xlhh599FE0Gg333XcfjY2N3H777fzhD39ArVZz\n+vRpfvKTn/D0008D8KMf/YjFixezZs2ascyiYBLi93ppO3QYe3U1+uIS0peWIZOLNbuXO6JeLy2i\n/EcXUb5jjyhzQX+MK6XE0tJSqqur6erqQqvVcujQIXbs2BHXdcebCttIXutyVUqEweslmkulFOY+\ncZSLP/1paLtk927Uc64Y0XvEk2YsmejveXOzdUTqdbzVS5DxoLo22LkDlf9I5HWsGW8qhvJzJzj1\no8dC2yNZvomeH0wzloxlO4h+p2c99AC+0jkjev+RymuscwWjR8IT6qNHj/Lss8/S3t5OpJH7+eef\nHzDdYEqJDz30ENu3b8fv91NZWUl2dnaiWRQI4qa7trbP9mADk2D8I+r10iLKf3SxV1dLtkX5jj7R\n77S9uhpdnBNqwcQm4Qn1gw8+yJYtW5g2bRoymSzudIMpJVZUVFBRUZFotgSChNAWFUm2NVHbgssT\nUa+XFlH+o4u+uESyLcp39Il+p/XFxfguUV4E44uEJ9RarZbNmzePZF4EAvxeL+4TR+murUVbVIRq\n9jwA3CePx9xX02BGmVsQ2CdL3I9NNWsupju346qpRWcqQj1r7og8j+AS4PfRevAzrGcvoC0qouT7\n36P7YjWawkJ8disdr7+MLi+HGq8PZVbOsN8dQf8E21V3bR3aokLUM+fgPnGUnqYmFAoZLksDOpMJ\nzdJrQK641Nm9fPD7cJ88jrelkeI7t+Pu6EKl1+E8fQp/V2e4PHvPi+47Jz295eK2WFDpdbg7rWiL\nTfi9Prrr6pBPmwpTZ8bsF1Sz51Fy3324zp5BZTSGyln0IYIhT6jr6+sBmD17Nnv27GH16tUoFOGO\nMD8/f+RyJ5h0tB063MfnEohr33A+dbpPVVHz62fD10tOFZ9OL1PcJ4/3eTeM116P6+DHkjrOXLGc\nlhdeGva7I+if6HZlAmp+/SwF62+k5s3fRez3o1228hLk8PIk+h03bdtKzXMvhLd7yzNWWyC7fEzz\nOh4JlkvmiuXUf/Ip0Nsf9P5vYYAxRSYHmYyGP7wd2iX6EAEkMKHesmULMpkMv9/PwYMHJT7TMpmM\njz76aNBrvPnmm7zxxhvIZDK6u7s5deoUBw4cwGAwALBnzx727t1Leno6AI888gglJSVDzargMiSW\nT2A0/e0bTocmfD0nDjHrcvY8XFHvltflCh8XdT0qRNeF88JFANxRgl2umlq0y8YqV5c/fcq1rk6y\nHSzPWG1BEC6HYB8Q/T+A66vTqPv5eiXGC0Eshjyh3rdvHwAdHR2kpqZKjtVFNer+WL9+PevXrwcC\nk+WNGzeGJtMAVVVVPPbYY8yZIxz9JxuxfAKjPfQ1RUX4uzol+1Qpw1u9LHw9Jw6x6tJ98jiq5GTJ\nfoVWGzouGB2i60KdEqgDdWaG9DyTqIOhEF2u2qjF+8HyFP1abILlotBpQ/si/wfwdHTiPnk85kRZ\nlKsgFkOeUFssFvx+Pzt37uSZZ54JRfjwer3cddddvPvuu3Ff69ixY5w9e5aHH35Ysr+qqoqnnnqK\n5uZmKioq2Llz51CzKbhMSV9aRsnu3XTX1qIpKgpYCKDPPtu+D8hcsRyvy4VCq8Vjdw7rvqrZ82Le\nV3D5oZo9j1kPPUDn2QuhurS+/w4t+z+mYP2NuDs60BXk45fJKFmyVNT1KBJsV86q43gdDpo+/iTQ\nbr0+TNu24rI0oDUVoV0q3BCGQp9y/eTTwLvd1YVuSkmoPEW/FptgubgtFkx3bqen04qmpBhdkQnb\nmTMotFrav/wSVW5ezAl1ZLmmTJuCb+qsS/AUgvHGkCfUTz75JJ999hlNTU2SRYlKpXLI0Tmefvpp\n7r333j77r7/+ejZv3ozBYOCee+5h//79rFq1aqhZFVyGyORy1HOu6NOJRe/T5OVR/5vfhLaDftXD\nuHHM+wouQ2RyMpZdJYkNqy0qoqelFXOv327J7t0UrCofcnxdwRDpbVdajYpTP/oxAC2ffBryOdUO\nklzQDzHK1Vxn7uvLK/q12ESVS/A97PH6aH/p5dBp/VqeI9JnJBCnWzAxSVgp8emnnx6W5dhqtXLb\nbbfxhz/8oc8xm80WcgF5+eWX6ezs5Dvf+U7C9xJc3sRSpgJo+/xQ775i0pcuEWpVAkC8L+OB6DpI\nK1tE++EvRPmPML6eHhre/xBHdQ1JJSZy1/wDcuWY67Vd9oTe14vVKJONeJxO9AUF4j0VDImEW57b\n7eaXv/xlaFsmk6HVaiktLY3LUn3o0CGWLeu7CsVms7F27VreeecdtFotBw8eZOPGjYNeb7ypvo3k\ntSa7UmK/amulczAtu4rmZistrfZh3WMkzx9OmrFkor7nA70vutI5+ICWVvu4VeSbCEqJ/anJRZb/\nSOR1rBlv/Yb83AkuPP3r0LZfnyyUEgegv2fp732NZ1wZjXY4lHOFUuL4IeEJdU1NDdXV1Vx//fUA\nvP/++xgMBr744gs+//xzHnjggQHTX7hwgaKIzyl//OMfQ2qJu3fvZuvWrWg0Gq6++mpWrhThlCYz\n0SuqXV+dDsVV9a+4+hLlSjBeiX5fHMePIQMRb3os6I3v6zh+TLJbqMmNEFFxpT0Ws+SwiDaRGNF9\nRvuX/01St0f0GYIhkfCE+sKFC7z00kuo1WoAbr31VrZu3cqrr77KunXrBp1Q79ixQ7K9du3a0P/r\n1q1j3bp1iWZNMMGIXlHt6eik5ZNADFCN5gEQA7Ugguj3xed0cuGnPxWxYseAUHzflcsl+4Wa3MgQ\nHVd6yt13So6LaBOJEd1neB0O0WcIhkzCE+quri48Hk9oQt3T04PD4QAgQbdsgSAmkSuqlSoF9W/9\nHoU+ibRFi6SWBGIoKsawLsRUYxRWiMubCMudOj2Nok234G5tQ5lspOkv+wFhvRtpYrUjt8VC5orl\n+Lw+Cm66kR67g6S580hfumTwz+e9dThS6qcTDr8Pb0M9aUvKUBoMIJfjNFsCSomd1viieESpiIoy\nDhAcYxzHj+FzOuk8eZLMFctDX7f8CjndF6ulZSbeV0EUCU+oN2/ezIYNG6ioqMDn8/Hxxx+zZcsW\n9uzZw4wZM0Yyj4LJTsSK6p4TR/HaHRJVK957f0jqibHUGMVE6/Im2nIXfD8yVywnZfZsWj75VFjv\nRphY7Uil14WU5wBMd25HPeeKuBZ2xVL1E+0yjPvkcWpffiW0nbliOQ0fBXQh4i0rUcb90DvGyIAL\nvQqKofHl/Q8k28EyE2UpiCbhCfXtt9/OVVddxd/+9jfkcjlPPvkk06dP5+LFi9x2220Dph1MKXHf\nvn386le/QqlUsmHDBiorKxPNpmCCEWlJiGQo6omx1BhFR3h5E13/QdUzr8uFKi0tMNiJGLwjSjyq\npj2dVrTE91VIqM8NTH/vePBYqKyi/Kwjy1qU8cBExveOJFZZi7IURJPwhNrj8WCxWEJqiVVVVVRV\nVXHjjTcOmnYgpUSPx8Ojjz7KG2+8gUajYdOmTaxevTokQy6Y5PRaEmIpJSqSpcqd/VkkY6kxCi5v\non0ggyqICq2WpHnzxUA3CsSragrxfRUS6nMD0987DtKyGshyKsp4ECLieze+935od6yyFmUpiCbh\nCfX9999PfX09paWlyGThbjSeCXWQWEqJ586do7i4ODTBXrx4MYcOHeLaa69NNKuCCUhPr9tHpFKi\n5qpyMnbdhaumBq3JhGr23Jhp+1NjFIw//Pg43fUVZquFAmMeM5OnxzxPNXseRbfdiu3cOZIKC+mx\n2Sio3ICqZArqGWLR6kgQXRfXLFkUl6opxPdVKGgd9DaYUeQWiHYZhUT1sLAQm9+JIdOAprBI0tcN\nZDmNpSIq6Ev60rJAf/LVWZR6PSgUZK35BvbSXKoLdUzDJ95XQR8SnlCfPn2ad955RzKZHiqxlBJt\nNhtGYzhWol6vx2oVKkQCKbGUEk9bz/KL1rdAD7QeYZc1k1nJM/uk7U+NUTD+ON31Fb84/J+h7V1l\nO8jOKut7okyOMjef9pdfof2zQ0CvZW6mGORGiui60GjuZkocqqYQ51ehXutgllCwjE3EWpJTXaf5\nxeGXQAe0finp6wa0nMZQERX0RSYP9ydB2ras5oXO9+FwoB+alTxTvK8CCQlPqEtLS2lubiY7Ozuh\n9FarlYsXL7J06VLJfoPBgM1mC23b7XaSk5MHvV48AcvjDWo+Hq81kvcbSxLJTzxp/CuuRqN5AHt1\nNUklU7A11JN1rI7H8r6BxdZMa5KfNlcLWaUxJl8J5Gu0nuNScjm85/ubGgFIUulYmDeXcx3nyNnX\niqapE1VQ0Sw/HxQKPBYzU+6+c0gqZ+OxjoaSp9E4t7/zouvivxuqIBfKCq5APkh0A1/qQqbsvDOk\n6Je9dBFN+/7Su11M7ppvSBT+xmO9wPjpN/Y3NYbqweXpptnVTPnURchlcknfqC8uJm3xItq/+DKk\nAljjdKIvKCR9aRkyuTymsmh0uxmv9RFkNNpBXkQ5dmUZyO508B9181DnZGOrbSFz5aJQOY3XNisY\nWxKeULtcLq677jpmzJgRCp0H8Pzzz8eVvj+lxNLSUqqrq+nq6kKr1XLo0KE+MatjMd5U30byWpNd\nKbFfepUSL7z1FvXPht+7gvU34nvxd2Tsuovm7L7XEkqJAS6H9zxHmwPAwry5HKg5zFb5fJpffC10\nPHPFcmqff6nPKvyMXgXN4eYpeN5YMl5V16LrAuDDc5+GrHUDEa3o53V1U/PcC+FtrxftspVDzutY\nM176jRxtjqQevqg/RpY2K1wPEaqUlr9+3icCTu3zL4WjVfSnLDrM5xhLRqMdtLTaQ+XoOfAhlj3h\nL6IF62+kXva3gIVaKCUKekl4Qn333XcP68YDKSU+9NBDbN++Hb/fT2VlZcJWcMHEIJYfrcxPKAZo\nT1MzQCg2tbujg8yVy1G32Aa5smC8MzN5Ov9zyZ3U2epYnD+f3NPgjjgeGc0jWP+O48do1ahg6kwR\nF3YEmZE8jW0LKqnprKPctIQjluM4epyYrZZBJ9T2i1IfaldjU3gNhE5Lt6UBbT9pBVL8+AA/aoV6\n8Hrw++i+eF5S1j5vQGJHRKvoH5/Px6mu05itFkzGfDJr6wHpGCNvsIDwmxZEkPCEeunSpXzxxRec\nOXOGDRs28Pe//50lS5bEnX4gpcSKigoqKioSzZpgghHLj3ZqXXfIqlKwIRAxJm3RonDsUAIxcAWX\nNzLk+P1+3jj5LgBzU64gLeJ4ZDSPyPpvev8DERd2hDnTdZbn/v56aLvcVMaBmsMUGPMGTatMllrG\ntFmZ1Lz7XmjbtG3ryGV0ghPoD58NbQ9UD+6Tx5GDpF8sWB8IHCCiVfTP4fqjoTFnq3w++SkpQN8x\npiQ3D7LLL0keBeOPhCfUzz33HB9++CFNTU1cd911PPzww2zcuDEu9wyBoA8DqE6ZrRbJqWarhUJL\nd8jq0mOzU3THVly1daFzFPokfFYrHa+9hM5kQrP0GpArxvSRBIkR+UWiMDmfRmcTi/PnY1Al0ahQ\nk/Od28jo8OBr70ChN1C05Tb83d10t7WTuXI57V98idfuEJa2EcZsDVjpgr67aoWaO668menJpRJr\nXnGdk+7aOkkMZI/bTcH6G3G3taHOSMfd1SW1ULe2oTh1DL/XR01jvVCeG4Bgf6hXaLmZWeSd8rIs\n52t0ehycsZ6htqs+8CXPOA1vQz3u9g5Jeo/TScn37ge/H+f+D/C73eR+8zpUGeko8vInX1ScGHG7\nazrNocNpnV7czk5y1nwDZUoyCn1SYP+iRdj//t/U262oFi8T44sg8Qn1m2++yWuvvcbNN99MWloa\ne/fupbKyUkyoBQkxUOzUaMtLgTEPdGaJpSBzxXIig+CmLVpE3atha5oJf8hHUzC+ifwiEbS+BSk3\nldFg7cD9m49C+wrW34j5zd+FtoP+1MLSNrIk6wJW5kjfXQD/An/Icr1VPh//i+G6CbZjpUrNhYg6\nMt2+mYa3/hDaLlh/I9bPPpNa/8QXhpgE+8Ob/NNJfvF9goLu3VtWc7JQE6qbRzJuoPXlV8hcuVyS\nPm3hAlzdHmyHPgfoU+aT7UdMrLHHVFoQ2s7OyKV5j1ShEsLl1vzRPkx3esX4Ikh8Qi2XyyWLETUa\nDQpFfL/Qnn76afbt20dPTw+33XYbGzZsCB3bs2cPe/fuDQm5PPLII5SUlCSaTcFlwkB+fDOTp7Or\nbEevD3Uucpmc9tYGyflel4uuEyfIXLEcv1aNQi59tV01tWj7roEVjEMa7U2Um8pwebpRyqLq0dON\nodku2edua5Nsy5RKTFs2ibiwI0Twi0GbvY11s9bQ6eqSHDd3hb8gRddNsB17okKfuhqbJduOejP4\n/DHTCsL48SGXybl57rcp+LwWZ8QxQ7MdV25421VTA0D7F1+SuWI5cq2GpHlXkL50CRdefk2i/hdk\nMpZ5rLGnbOXNoTHH/qX0C6lMqQSfT7JPjC8CgIR/ii5dupQf//jHOJ1OPvzwQ77zne/EjNoRzeef\nf86RI0d45ZVXeOGFF7BYpC9rVVUVjz32GM8//zzPP/+8mExPEgby45MhZ1byTFYXVAAyfn7oGciX\nLlRVaLV47Q5aPvmUnhmmPtfTmoS18nJBp9ZyoOYwX9Qfw+P3So5plRrsWQbJPnWGVEVVnZpKUlHR\npLO0jRahLwYKOb8/9T4en7ROCpLDX5Ci6ybYjvVR/bguWvVPrUGhky5LFF8Y+nK66yt+fugZXqv6\nA/VG6aTOlqVHq9SEtrXFJoBQv5g0fwHquQuQyeVoi4pQ6LSizIk99shl4TFHZcqXHPd7PPj90rIX\n44sAhmGhfuCBB3jttdeYOXMmv/vd71i1ahW33nrroOk+/fRTZsyYwXe/+13sdjsPPPCA5HhVVRVP\nPfUUzc3NVFRUsHPnzkSzKLiMGEh1KtKn1ukN2GROp3sp33obrnoL2oICrGk6dOk6UtNzoK0buakI\n053bA5YDUxHapWLhyOWC1RWOznLEcpy1M76BxdbItPQpFOhy0bsspGy+le6mZrQF+fjVWgpv3khP\nRyfqrEzkKSmklS2mtd05wF0E8RL02a3vCnwVOmI5TrmpDLVCjSm5gMUZC0kuS8ZstZBpLKRAa8JV\nU4vOZEI9Yzaugx/TXWem+I6t9HR7UOp1eLrdFN+5HXenFVWKEY/dibqwAMPiJXgb64XyXD9ErifZ\nKz/Dvf9jE7KmdvTGVLTtLZisGRTOWku2IYd04zSM9xnorr6AKikJ16mTeBsstE4pQTVrLgaFHG9j\nA4V5eXjsDrTTZ0zKMpcoUEapR/rxUZXpY9r/uA1lcwfpulScDQ3oCgswzZiB88JFkooK0Sy55hI+\ngWC8MOQJdX19fej/lStXsnJl2G+oqamJ/Pz8WMlCtLe3U19fz1NPPUVtbS3f+c53ePfdd0PHr7/+\nejZv3ozBYOCee+5h//79rFq1aqjZFFxuDKCSJvWpDUSSuboWal94OXRO0e1bSC2d38cXLvVm4dd2\nuVFgDPchjh4n7a4Ovqg/xrysWRTVOrB9cZraKP/5lk8+DcTXfSkQK1aXkgxCDW5ECPrsanqtn44e\nJwdqDlNuKuO5v79Oclkys5JnMit5ZiCm8a/DEShMPW5JvGnTtq3URByP5SedVbFcKM/1Q+R6EofH\nRcu0THpsTaQ/F/bxnbvrLjLye8PnyWT0NLdgiWovhiXdgXIXSqISBcpoTnd9RYOzhYZU+LYtmZoX\nw2NOwfobaf5oHwAl6ZmTzlVG0JchT6i3bNmCTCbD7w/4uwWlx/1+PzKZjI8++mig5KSmplJaWopS\nqWTKlCloNBra2tpCPtPbtm3DYAh8Nly1ahUnTpyIa0I9HlXfRvJal6ti0nCUwoIKXmkXz/Ko4us4\nGxpAmcSMeRtxf3RSksbd0ABNTRTctB5nYyNyhRxvc2O/9x8vimeXkvH4nmdk6NF1q7ll3jpaHW0Y\n1Hoabc2Um8ro8bnxNrT08f2UqdUUbFiPXKdDdTKDnpZW7NXVmJZdNSJ5GmvGm+paWvqV2L23YLE1\nsmXBeppsrdh7HByxVAHQ6GxkRa8iaU1zgyR6h9NsllzLaTZTcNONOOst6PLzcZ05jVaj6qPONx7r\nBS59v5GRuQiNRom5qwGdUovL7aLUnYQ6osxdFgsy/Qkc5jpkfpAppK5PMqUSb0sjmelJgyokDuc5\nxpLRaAeZ6UmkHmtkXbOBnqZmfIoeyXF3Z0dovHE31JG7/CoUisGnVEIpceIy5An1vn37Bj3n1Vdf\n5ZZbbol5bPHixbzwwgvccccdNDY24nK5SEsLRJa12WysXbuWd955B61Wy8GDB9m4cWNc+Rpvqm8j\nea3JqpQYVPAKRHEIW2AKt2xAmZ8jSed1ukKrrjNXLKfl40/J3z415v2FUmKA8fieH7jwpSTmeLmp\njL/VfQnAorIFKHONKOqkkzS/2435t2+SuWI52StWYH7zd+iLi4VSYgLnxjrvVNdpnj3yamh78xXr\nef/ox6FtnVIXSiPXaCVRI4o2SccBtTEZ8xvSiCynfvRjiaV6vNYLjA+lxCmaUro1nlA7+Tf1Cmmc\n6ds3cfrRx8JfbqKifPg9HmRqDfWfHhxQIXG4zzGWjEY7qP/0IMaatlAEoT7l2OPB/Eag36l/+TW6\nM1LIWDCwa6FQSpzYJOxDPRCvvPJKvxPqiooKDh8+zMaNG/H7/Tz88MO8/fbbIZXE3bt3s3XrVjQa\nDVdffbXEpUQwMYilfIjfT9vRg9TXBfzY0ucvw22xkLliOT0Ou8TqRauVJqOCoi2bcFka0GRkYHn7\nT6HrBy2Y3Y1NWN/dizE5Hb/VGY6LKxi3mK2WUJxjl6ebbH0GN866Fr/XS9qFRlwtNpQpqRTddguu\npmb83W7avwxMuGVKJT1OJ6Y7t2M3m1F2e0Qs4xEgMuqKVqnF7rTyYMo/4Dc3oizKo8rZwamu08xM\nno67IxABJKgo193aSsFNN+Lu6sLf7cbZ1CS5ts/nI3PFchzHjyED/Ao5NftqRRzqgfD7MH5Vx/et\n83HnpuJpioqg0tCIQp+ETKkM/FWpKbhpPe729kA/e+gQqqxM5J2dpC0pQ6HT0v7Fl5MywgdIxyOT\nMZ+MC83U19WSnJSKx+kIvcs+ry/Q7zQ24Xf3hPqd4Hgjq7XQ2fxHfFY7hpmzxfs7CRmVCXXQHaQ/\nvve97/V7bN26daxbt26ksyQYR8RSPsy60ELrL54BwAawCwx6HfWffErRpluofS9sISvadAstv3mV\nWiDrf+1EpTDgtTtCx4PqebIuG5ouqN/7x9Cxkt27hbLVOKbAmCeJc/xF/THKTWUsbdOjOlkj8QUt\nuOlGibXT7/GgK8gf1EdXMDR0ai0HTobjTv9L2nXY/u/zAHQDU3dW8sSZ/2RX2Q5KDDqgr6Jc8R23\nU73n+T5WPl12djiG+PsfhKyqIOquP9wnj2P/v2G/9JStt+KIOK7OziZt0SL8Xg9pixaF/Hwh8EXA\na3cg94P59d9K9k/GCB8gHY8i46jbCIw1ke9y2wEouGk95jfeDKUPjjcamRLzK3sBaH77HfH+TkJG\nZUId9KsWCILEitQRxGy1YKyRhk901dSgVicD4KiukRyL3NY0daL6+rLQKm2ZUYe1q42cWzfQ8od3\nSLnySol12x0VplEwvpiRPA2Lw8Li/PlolVqOWI6TJNeR0emFCP9OhT4Jn9dLzppvINcl4bHZaDt4\nELlWGgY1lg5wAAAgAElEQVRsslrdRhKn2ymxUHtPStuQwtIKxkA7zu/oCigidkjV+Xzd3ZTs3o3b\nYsF053Y8didKtRKn2SxRt4z0jxd1F5vouMnu1vZwH6fV0tljR6lX4zz8d9IXLZScK9fpMG3ZhK26\nRtIvqjIzJ2WEDz8+znacD21Hx1G3X7iIKlnqJtFjt5FVsQo0KtQF+Vht7eTcugHHhZqQNdvrcuFt\nsICwUk8qRmVCfbnh9Xq5eDHQqNrbDbS12SgpmRq3UI1gcGJF6ghSYMxDW6wisivTmkxoVYGOTJub\nKzlfmxP2n+7OTiEpapW2AWg9egCv3YEuJ1tixTTduX0En0ow0pzpOsveE2H3nXJTGfNa5DS/+rrE\nupm2aBGWCKW9oOVNmy9V1ZysVreRRKfWSSzUXyu8TnJcUZgHnccpMOahTvFS89wLfSzR+pJifKVz\nQm00uD4iSNAyrYj4QSTqLjbRcZN70g10/em90HbbltVkmjJIt8/us4A3ad58tBoVXoezb784CSd+\np7u+ossdDtNpzzKgjjguV6n6lKHPETAInclSkjqvgBWlN3Dqo3dR1DdKrNnthw5TkpsnfhROIi7J\nhHogpcR9+/bxq1/9CqVSyYYNG6isrBz1/Fy8eJ6/3vc/yUtK4gJgcTjgiScpLZ0+6veeLETGTz1i\nOc7Nc7+Nx+MN+1DPnwa7wF1XizEtG1pskGek5Pvfw9mrgBi0wFg9TnxrV5KamoXt4gV8fj/p85ch\nk4V/AKXPXwa7wHX6vCQfPZ0iHNd4I/j1Yn9TI1aX1EKkVWhQNbTj6fUFzV9/A16nE6K8ymRqFaZt\nW9FevZKSjKyY8cwFQyPyqxKAXqHlJv90PHX15PzjZjo6W+jJTOZUtp9d03cwM3k6dvdFMlcsx+f1\nUXDTjfTYHSTNnUf60iW0tIbrNtrKKtfpKLnvPlAq0BUViLrrxe/30nb0IK6aGrTFJtLnL0M1ex5J\n39lCx/mz2LL0vKQ+xj/+j1uRmVvoyUvjHe/fqSgoIL8zD0ddIKqKw2zGUFqKevY80jONdBw/LrlP\nT6cVbT95mMiYrZZQXHWXpxtfeimZu6bgqqtFV1iEzg2ui9UUbd6E/WI1crmc9i+/RP/1FShlfpL+\ncoivatpIm7eUDrkC2clzkuuLryyTi1GZUBuN/a8kjVRKdDgcPPts2N/R4/Hw6KOP8sYbb6DRaNi0\naROrV68OhdQbLbxeX599bncP58591Wd/ScnUUc3LREUSP7XHSY4um1nJM8MnyCBjQTlywwlO/eix\n0O6S3btxTsmm65dhq2XbltWACvmLAR9AJ8AuJCusZTIFGQvK6VEZaX0/HMpRWL3GHwN9vXB5u2lI\nhulRvqDFd+6QnOd391Dz3AuUZGT1G89cMDSC9RKsk5v800l/8SOcBNqcfGclT9j2sytlR6gtq3rX\nPQQx3bkd9Zwr+oRji7ayJs2bH47ysfxqUXe9tB09GFpbYodQP2eZksqezvPgA1zw1+wuSFVzoGY/\n5aYyrmjRUPfq86HrZK5YjiI3H2RyZHI5uukzgbdDxydrv1hgzAvFVQe4Jn8p6QtmkvUNI+b9B7j4\ni75fUQBIMZD8wm9xAS4+xLvLFxhv5Ek0v/dBKM1kLdfJypAn1L/85S8HPH7vvffy/PPP93t8IKXE\nc+fOUVxcHIpDvXjxYg4dOsS111471GwOET8vX6EkKV0FgKNNSZ65FsuTPyMvKSl0VtBynZu7aJTz\nM/GYYSzl39K+hbu2DrWpkGxjaczz7NXVku3Oi1/x+Rw1c3ZW4q4x48pOxjuzCNOXdegjfAC7LRZY\n0Pd6ytlzydh1V8DCYzKhmj13NB5PMAzM1rBYVPDrRY/Hg0wB7371F06rNNyfO08SkcDe0kjmrruQ\nn76Iz+kMrbgXFqHEiPxKkKPNYWby9JBlOmjByzvhpjsiTdqFVv51xnV82X4Oq8fK4vSF9NidEt9c\njz22WuVA6nSCMK6amr7bC8rpcXfzYPI38Job8OZl8ELz31mQO5erCxdRZMzDd8Yi8efVFuSjnhXu\n+0T5B5iZPJ3/XbYD9ZmLqBra0V5sxT/fC/T9iuJP1qP69tdRFubhrm+UlK+quR38Pkm5unNTOZja\nSXZvBBwZk8+lZrIx5i4fAykl2mw2iXVbr9djtY6+pUKhUJA1Kw9jfioA1voOFAoFeUlJmAwibuNI\n0H70M7r+zx4AXIBqlypmzE59cYlk+1ySg/fOf8Z7QPmVAfGIA1Vv8R/Gr9P823dC5+Vvvz3mfU9b\nz/KL1rdAD7QeYZc1k+zsshF4IsFIkawLtzFHjxOdUotOCWfbL+LocbJBPo2G198InZO5Yjm0dnDG\n4GT6rKm0PvlM6JiwCCVGrMg7wa9KQQveioI1kjQylxvr/3mejC2r2eP7C/4FfhbEsFDHZAB1OkEY\npUmqPKwoDNTJzEZo/X9h1b5vblnNeW83crmcWqsFdZKb6dH+vPmF4fIW5Q+ADDnpF1po/X+/oZtA\nZA//Lj/Z37iuz1eUr9I8vOA7Dp3H+af8NdJINocOo803hcr0fKEm0J5aA4d3le2QfpEVTEiGPKG+\n9957Y+73+/3U1dUNmn4gpUSDwYDNFrFAwG4nOTk5rnwNR6mtvd3QZ19KShJtMc5NTzfEfb/h5muo\n5wzlvLEimJ/6Oumv/e66WrK+0Tev/owyZj30APbqatrS1Dxj3R/4rAmoFSrUisCSkZa2RoklTNHj\nJSNDz+H6o9R0mjGlFFBWcAWNTY2S6ze6GiX5GupzjHaasWS8KCW6m7sjokhoaHI00+1xhyyjOVUu\nghplCn0SmuwsHHV1THNncC5XwbLe90VfXEz60iUh94KRfL6x5FIoJe6P0U5umvNNNBolNR1mDGo9\nTR4fBffcjupMHTJXOP63odkOGWC2WZjv0krapb+7O3Tf0XqusWSs+43P8zWk76xEYWnFm5dBTaGW\n+VlGnC1dwbkaALmd8FtFFbOzpqGRqVDI5Pg1KmkEFYuZrFXlY/YcY8lw3q1YYxNA3oqr0Whij0UH\nUzqpMOokVmp3Qx3Z1yzhSOMJTrafllyz0RVWExVKiROXhC3UL774Ij/96U9xOsOf9AoLC/nggw8G\nSDWwUmJpaSnV1dV0dXWh1Wo5dOgQO3bsGPB6QYajitbWZuuzr7PTEeNMaG7uBM5I0hQVFVNbK3VV\nKCmZSm5uqlBK7M2PpqiIyFLWFBb1q2LoK52DrnQO1q7TOA6HV1jPy5gDwHvsx5icTsvvw3FU87dP\n7aOyt6tsBzlaqaJicHs8KJ7FSjOWjBelxAxNJi/XvBXaLjeVkZmUHrKMlqZcQVrvsbRFizD/tjcG\n7GdQmnMXvgWB98UHoYVvI92uxpJLoZQYq520ttiZoillSk6Ee1YWNMr30/mL/wrtsmXpwQcFhjy8\naqsk/nRQrXS0FOLGmrHuN5I1aTxhewOMgA12aXbQ3GxFmVcgSdeQEviSoFVqWNqmx/fC66EJd9D3\n15GZPOS6GM5zjCXDebdijU3Q25f0Mxb14OV8ur/PVwBbWhKPt/+pz1qQHG3OqLYDoZQ4Pkh4Qv3s\ns8/y1ltv8bOf/Yz77ruPzz//nAMHDgyabjClxIceeojt27fj9/uprKwkOzs70SyOCmZzHZ99776Q\nb7XF4aDwvvupe+Inkn3ex5+gqytFMvGezKH4QlE3en2Z069YFvM8n8/Hqa7TmK0WSoz5PKpZg9tc\njy4vH++hC2jz8vnfZXfRs/9zSbqu1ibMVqmPmtlq4esFK9lVtkOqyhgnfr+fEzUdNBwxk5eexOzi\nVGRMnhjrXp+fqup2ahttmHIMo/L8fnzIZLBxzrfo7LZiVBvoclk5XPd3bpm3jlZ7Gz59FrbblWib\nOpGRJEmvtrTH9J2fTATf0+HU04zkaWxbUInZZqHQmM+M5Gn48HK49UvMXRYKU/JZnL4QOQrO5ajI\n3lmJytKOsiiPUxlOthkqKctYREPr65Lr9lTX0S3/BN8318S+sd+H++RxumtrJ42Sabz15ccH+Pnm\ntK+RrDGQm5TL9N61J4G1IXfirKlBXphLXbaMO7SzcbidJJ2ul0wQZWoVeVtv5VSOkowBMxajLiZB\nKL14xqYZydO4e8Emik424a9vRqdKp8vrRGaQjufu2jowhNcd6BRaZmfMjGvciX4vVmT0/XIuGN8k\nPKHOyMigqKiImTNncubMGW666SZefPHFuNIOpJRYUVFBRUVFotkaE2L5VkfvizXxnsyh+IJRN4jh\nNx3J4fqjISvzv8lXYHlRquZl+c0rlOzejbW4hMjlThpTEQXGTMm1Cox5yJAzK3lmQv5rJ2o6+Mlv\njoS279+0kLnFaQOkmFh8XtUw6s9/uusrvmz6e2iVPQQs1CXpRWRrs1iZvZxTXaf5hedNSIfHFd+Q\npFfpNCOan8uRkXhPz3Sd5bm/hyfDxjIjXT1dkn3+BX6WZiwhPSmDJ2y/C1hNO46ya1rYP1RTLLX2\n+d1uqn/9n8jlMlRLpbGpIaD6FxmPejIomcZbXwG/9nAUrF1lO0IL2wJrQ34fWBvSDuXGMvKN+SzJ\nKKO16EBUHfRgeeEVZm+/HaQh/SXEqovJ4GMdz9h0puss2cfqaI4aj/xRv4M0pkJoOxr6ujYU3+no\n90KtUTEtV0yqLycSnlDrdDoOHjzIzJkz+fDDD5k/fz5dXV0jmbdRwe12c/HiBck+r9c7KvcSixqH\nQK91RHP+BLcbrmCv/Azy+hbJKcEA+50Xv+LklVlMv+d2PHUW1EUFpF1xFeky+bCt0ZFWo9pGqStQ\nbaMt5sAXK+1EoNrSGfpfr1XS0OagvsWOIUlFp9Wd8LNGq2a6PN0kqXRcVXAlcpkco9aAXqlDrVDz\nkfkvFCUXsKtsO022Jrr/ZpbEJHc1t0zK+LmRBN9TvVbJ4tk5VF1oo8vRg93hJj9TH1cdNdqbJGqI\njfYmrG4r5aYylCjINmZR3VmH1+9hSWYZu8p20OgKRwQJErT2yU+cxe/uCflZ286fx2BI7mP1jI6k\nEL09EYmur+Pn25BBn3qKjN0P8FVrLQ3nk1Dn12O21fO1kmuQy+ToVBocPS6aXS3MTJ7ebx14zA24\nTxylpsGMMrcgrrqYDBPqQfH7MHxVi9rSKtntdbnoOnGC3E2VdDo6UBbmcS5XxR2mm3F0O8nRZw/J\nMn38fBurFhZw+GQjdpeHaktnnwn1RB1rJgoJT6j/7d/+jddff51/+qd/Yu/evVx33XXs2rVrJPM2\nKnz48fv86qNnUKgDj+51e1g/ey0ios2lJdI6kgZs2LIaX560swiqqHVmann11B8BKJ9dxoGaP7HL\nmheyRI+UNdqUI+3MinJiWwtipc3Oim8x7XimJC8l9P/i2Tm89N5pVi4s4OMj5tD+RJ41Ou60Vqll\nYd5c/nzxb6Fzyk1lWHsc/P70+0DAOresI5WepHbM74RV4Uzbtib0bBOJ4Hu6eHaOpG5WLizg5Q/O\nxFVHOrVWooa4bUElKpWSd47+hXWz1vB61R9Dx/zz4Zqsq1lRWtbHdzNo7et2+qj+dXg9g7/bzYWf\n/rSP1TM6ksJkiNISq77e+6y6Tz1Fxu4HaG9So8qu5vXjvwcCbQTgowthn/WsskxmJc+MWQfa3JwB\nLdCTsS7iwX3yOI7/+yJJUeqfCq0Wr93BCUUb52drOFDzLuXGsmFbpoN9bHFE/9vfuRNlrJkoJDyh\nnj59Og888AAnT57knnvu4ec//zlyefyz0ptuuikUb7qwsJAf/vCHoWN79uxh7969IUGXRx55hJKS\nkkSzKkGhVJK/fAoqXSBaRI/TjaJTEVq9G8Tr9QbcNCKwOBzkxRCBEQyfaOtITqefo4s0LPvHLfTU\nN5CUlYWttYXkrRv4NN1F8JumyxOIjGu21g8rLFEsa/S1Swu5f9NCGtoc5KYnMacfa0CstBOBpXNz\nuX/TQmobbTjdHgCc3R7JOYk8a7Rq5toZq2lzdkjOcXm66XJZWZw/H61SS5ujheIGK86mJoo23YKr\noRFtfi7aa1Yl8GQTi9nFqdy/aSHHz0vjEgXrKp46srqk5zTZW/D4Aunbo+qm3tbIKc1pSczq6Bi7\nmqXXYMKP82I1aqMRZ1MTmSuX47ZYJJO4yRgPub/6iq6nmcnTQ1/cFD0p/PZ3Vsqvbw4dD/Z9kZxs\nOwMEfH7r5uSTc8dmfPWN6EwmPHanJCqFt8ECEVbqyVgX8RAcm9q/+JLMFcuRadSo83Ox2JpI3rIB\nT0s9ZbpUjii1oTo53XGWGcnTkDP4mqnoetepldy/aSFXzc2ltXXgsWWijDUThYQn1AcOHODBBx8k\nOzsbn89HV1cXP/vZz7jiisE/EbndboB+BWCqqqp47LHHmDNnTqLZGzYyGRKxFwgIvtwfrXksGBHc\nUdboxhQZLd0dPNR9mPuKV9H69G9Cx67cWcmfe//XKgM+tDr18D78x7JGy5AxtziNijLTgKuo47Vk\nX27I5YHnn1ucxonqdv4AJGmkXUYizxqtmmm2NpCZJFVD1So1ZOkz+Euv1frrad+i9uVXAGijV/kt\nJx8UYx5Kf9wRfE9lBCydQXS9dRVPHRUYpfGOu9xW6F0ol66Tts1cQ1afaDp9fszKFWiXrUTGx1T/\nOuwH3Ccu9SSMh9xffUXXU+T6jxPV7dhdR8g1hBfpa5V9+7wktY5fHP5Pti2oDPu/Z8KuOUsoreuW\nxE5uP3SYktw8EZt6EIJjk9fuoOWTT5HvrOTz9E6m1vnxvfjb0CRqw5bVnO8dj+xuO4dbv2RpxpJ+\nrhomevyYNzWducVpyOV9F6pO1LFmopDwaPSjH/2IX//618yaNQuAY8eO8YMf/IA33nhjkJRw6tQp\nHA4HO3bswOv1ct9997FgQXipflVVFU899RTNzc1UVFSwc+fORLPZh25XD51/a0eh6nX56PHgLvWA\nSnqeXC4Ve4Gw4MvoeFxPHoI+tC2OVuQKGY22Zgrz8sjYeQtySzOqogJOZTjRywIdirvGLHlR1Q3t\nVMy7mmStkWZbC+WmMtoc7YPfd4CoHUGrUW2jjaIcQ7/W6Fg+bPGmvRwJPu+Z2g5u/YcZ6DQKZpek\n0dbZnfCzzkyezs1zv02jtYnc5Bya7a1o5Go2zPkmHc4uDBo9CrmSLpeVctMSjliO462T+pMqU1OE\nBa0Xn8/HZ6ebqWmwccfaOfg8XjQaJXZHD/dvWhhXHUVG+cjSZdBkb8Xj7aFy7lrs3XYq566lwdZE\n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\nYSbhf+gfN09kgJTNAAAAAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "# pipe = like '%>%' in R language\n", "(df\n", @@ -800,796 +88,9 @@ }, { "cell_type": "code", - "execution_count": 4, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " \n", - "\n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
\n", - " \n", - " A\n", - " \n", - " B\n", - " \n", - " C\n", - " \n", - " D\n", - " \n", - " E\n", - " \n", - "
\n", - " \n", - " 0\n", - " \n", - " \n", - " \n", - " \n", - " 1.0\n", - " \n", - " \n", - " \n", - " \n", - " 1.329212\n", - " \n", - " \n", - " \n", - " \n", - " nan\n", - " \n", - " \n", - " \n", - " \n", - " -0.31628\n", - " \n", - " \n", - " \n", - " \n", - " -0.99081\n", - " \n", - " \n", - "
\n", - " \n", - " 1\n", - " \n", - " \n", - " \n", - " \n", - " 2.0\n", - " \n", - " \n", - " \n", - " \n", - " -1.070816\n", - " \n", - " \n", - " \n", - " \n", - " -1.438713\n", - " \n", - " \n", - " \n", - " \n", - " 0.564417\n", - " \n", - " \n", - " \n", - " \n", - " 0.295722\n", - " \n", - " \n", - "
\n", - " \n", - " 2\n", - " \n", - " \n", - " \n", - " \n", - " 3.0\n", - " \n", - " \n", - " \n", - " \n", - " -1.626404\n", - " \n", - " \n", - " \n", - " \n", - " 0.219565\n", - " \n", - " \n", - " \n", - " \n", - " 0.678805\n", - " \n", - " \n", - " \n", - " \n", - " 1.889273\n", - " \n", - " \n", - "
\n", - " \n", - " 3\n", - " \n", - " \n", - " \n", - " \n", - " 4.0\n", - " \n", - " \n", - " \n", - " \n", - " 0.961538\n", - " \n", - " \n", - " \n", - " \n", - " 0.104011\n", - " \n", - " \n", - " \n", - " \n", - " -0.481165\n", - " \n", - " \n", - " \n", - " \n", - " 0.850229\n", - " \n", - " \n", - "
\n", - " \n", - " 4\n", - " \n", - " \n", - " \n", - " \n", - " 5.0\n", - " \n", - " \n", - " \n", - " \n", - " 1.453425\n", - " \n", - " \n", - " \n", - " \n", - " 1.057737\n", - " \n", - " \n", - " \n", - " \n", - " 0.165562\n", - " \n", - " \n", - " \n", - " \n", - " 0.515018\n", - " \n", - " \n", - "
\n", - " \n", - " 5\n", - " \n", - " \n", - " \n", - " \n", - " 6.0\n", - " \n", - " \n", - " \n", - " \n", - " -1.336936\n", - " \n", - " \n", - " \n", - " \n", - " 0.562861\n", - " \n", - " \n", - " \n", - " \n", - " 1.392855\n", - " \n", - " \n", - " \n", - " \n", - " -0.063328\n", - " \n", - " \n", - "
\n", - " \n", - " 6\n", - " \n", - " \n", - " \n", - " \n", - " 7.0\n", - " \n", - " \n", - " \n", - " \n", - " 0.121668\n", - " \n", - " \n", - " \n", - " \n", - " 1.207603\n", - " \n", - " \n", - " \n", - " \n", - " -0.00204\n", - " \n", - " \n", - " \n", - " \n", - " 1.627796\n", - " \n", - " \n", - "
\n", - " \n", - " 7\n", - " \n", - " \n", - " \n", - " \n", - " 8.0\n", - " \n", - " \n", - " \n", - " \n", - " 0.354493\n", - " \n", - " \n", - " \n", - " \n", - " 1.037528\n", - " \n", - " \n", - " \n", - " \n", - " -0.385684\n", - " \n", - " \n", - " \n", - " \n", - " 0.519818\n", - " \n", - " \n", - "
\n", - " \n", - " 8\n", - " \n", - " \n", - " \n", - " \n", - " 9.0\n", - " \n", - " \n", - " \n", - " \n", - " 1.686583\n", - " \n", - " \n", - " \n", - " \n", - " -1.325963\n", - " \n", - " \n", - " \n", - " \n", - " 1.428984\n", - " \n", - " \n", - " \n", - " \n", - " -2.089354\n", - " \n", - " \n", - "
\n", - " \n", - " 9\n", - " \n", - " \n", - " \n", - " \n", - " 10.0\n", - " \n", - " \n", - " \n", - " \n", - " -0.12982\n", - " \n", - " \n", - " \n", - " \n", - " 0.631523\n", - " \n", - " \n", - " \n", - " \n", - " -0.586538\n", - " \n", - " \n", - " \n", - " \n", - " 0.29072\n", - " \n", - " \n", - "
\n", - " " - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "# Pandas interactive\n", "import pandas as pd\n", @@ -1617,419 +118,9 @@ }, { "cell_type": "code", - "execution_count": 5, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Hover to highlight.
\n", - " \n", - " A\n", - " \n", - " B\n", - " \n", - " C\n", - " \n", - " D\n", - " \n", - " E\n", - " \n", - "
\n", - " \n", - " 0\n", - " \n", - " \n", - " \n", - " \n", - " 1.0\n", - " \n", - " \n", - " \n", - " \n", - " 1.329212\n", - " \n", - " \n", - " \n", - " \n", - " nan\n", - " \n", - " \n", - " \n", - " \n", - " -0.31628\n", - " \n", - " \n", - " \n", - " \n", - " -0.99081\n", - " \n", - " \n", - "
\n", - " \n", - " 1\n", - " \n", - " \n", - " \n", - " \n", - " 2.0\n", - " \n", - " \n", - " \n", - " \n", - " -1.070816\n", - " \n", - " \n", - " \n", - " \n", - " -1.438713\n", - " \n", - " \n", - " \n", - " \n", - " 0.564417\n", - " \n", - " \n", - " \n", - " \n", - " 0.295722\n", - " \n", - " \n", - "
\n", - " \n", - " 2\n", - " \n", - " \n", - " \n", - " \n", - " 3.0\n", - " \n", - " \n", - " \n", - " \n", - " -1.626404\n", - " \n", - " \n", - " \n", - " \n", - " 0.219565\n", - " \n", - " \n", - " \n", - " \n", - " 0.678805\n", - " \n", - " \n", - " \n", - " \n", - " 1.889273\n", - " \n", - " \n", - "
\n", - " \n", - " 3\n", - " \n", - " \n", - " \n", - " \n", - " 4.0\n", - " \n", - " \n", - " \n", - " \n", - " 0.961538\n", - " \n", - " \n", - " \n", - " \n", - " 0.104011\n", - " \n", - " \n", - " \n", - " \n", - " -0.481165\n", - " \n", - " \n", - " \n", - " \n", - " 0.850229\n", - " \n", - " \n", - "
\n", - " \n", - " 4\n", - " \n", - " \n", - " \n", - " \n", - " 5.0\n", - " \n", - " \n", - " \n", - " \n", - " 1.453425\n", - " \n", - " \n", - " \n", - " \n", - " 1.057737\n", - " \n", - " \n", - " \n", - " \n", - " 0.165562\n", - " \n", - " \n", - " \n", - " \n", - " 0.515018\n", - " \n", - " \n", - "
\n", - " \n", - " 5\n", - " \n", - " \n", - " \n", - " \n", - " 6.0\n", - " \n", - " \n", - " \n", - " \n", - " -1.336936\n", - " \n", - " \n", - " \n", - " \n", - " 0.562861\n", - " \n", - " \n", - " \n", - " \n", - " 1.392855\n", - " \n", - " \n", - " \n", - " \n", - " -0.063328\n", - " \n", - " \n", - "
\n", - " \n", - " 6\n", - " \n", - " \n", - " \n", - " \n", - " 7.0\n", - " \n", - " \n", - " \n", - " \n", - " 0.121668\n", - " \n", - " \n", - " \n", - " \n", - " 1.207603\n", - " \n", - " \n", - " \n", - " \n", - " -0.00204\n", - " \n", - " \n", - " \n", - " \n", - " 1.627796\n", - " \n", - " \n", - "
\n", - " \n", - " 7\n", - " \n", - " \n", - " \n", - " \n", - " 8.0\n", - " \n", - " \n", - " \n", - " \n", - " 0.354493\n", - " \n", - " \n", - " \n", - " \n", - " 1.037528\n", - " \n", - " \n", - " \n", - " \n", - " -0.385684\n", - " \n", - " \n", - " \n", - " \n", - " 0.519818\n", - " \n", - " \n", - "
\n", - " \n", - " 8\n", - " \n", - " \n", - " \n", - " \n", - " 9.0\n", - " \n", - " \n", - " \n", - " \n", - " 1.686583\n", - " \n", - " \n", - " \n", - " \n", - " -1.325963\n", - " \n", - " \n", - " \n", - " \n", - " 1.428984\n", - " \n", - " \n", - " \n", - " \n", - " -2.089354\n", - " \n", - " \n", - "
\n", - " \n", - " 9\n", - " \n", - " \n", - " \n", - " \n", - " 10.0\n", - " \n", - " \n", - " \n", - " \n", - " -0.12982\n", - " \n", - " \n", - " \n", - " \n", - " 0.631523\n", - " \n", - " \n", - " \n", - " \n", - " -0.586538\n", - " \n", - " \n", - " \n", - " \n", - " 0.29072\n", - " \n", - " \n", - "
\n", - " " - ], - "text/plain": [ - "" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "from IPython.display import HTML\n", "\n", @@ -2064,9 +155,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [] } @@ -2087,9 +176,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.4.4" + "version": "3.6.2" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/docs/pima-indians-diabetes.data b/docs/pima-indians-diabetes.data new file mode 100644 index 0000000..982aab8 --- /dev/null +++ b/docs/pima-indians-diabetes.data @@ -0,0 +1,768 @@ +6,148,72,35,0,33.6,0.627,50,1 +1,85,66,29,0,26.6,0.351,31,0 +8,183,64,0,0,23.3,0.672,32,1 +1,89,66,23,94,28.1,0.167,21,0 +0,137,40,35,168,43.1,2.288,33,1 +5,116,74,0,0,25.6,0.201,30,0 +3,78,50,32,88,31.0,0.248,26,1 +10,115,0,0,0,35.3,0.134,29,0 +2,197,70,45,543,30.5,0.158,53,1 +8,125,96,0,0,0.0,0.232,54,1 +4,110,92,0,0,37.6,0.191,30,0 +10,168,74,0,0,38.0,0.537,34,1 +10,139,80,0,0,27.1,1.441,57,0 +1,189,60,23,846,30.1,0.398,59,1 +5,166,72,19,175,25.8,0.587,51,1 +7,100,0,0,0,30.0,0.484,32,1 +0,118,84,47,230,45.8,0.551,31,1 +7,107,74,0,0,29.6,0.254,31,1 +1,103,30,38,83,43.3,0.183,33,0 +1,115,70,30,96,34.6,0.529,32,1 +3,126,88,41,235,39.3,0.704,27,0 +8,99,84,0,0,35.4,0.388,50,0 +7,196,90,0,0,39.8,0.451,41,1 +9,119,80,35,0,29.0,0.263,29,1 +11,143,94,33,146,36.6,0.254,51,1 +10,125,70,26,115,31.1,0.205,41,1 +7,147,76,0,0,39.4,0.257,43,1 +1,97,66,15,140,23.2,0.487,22,0 +13,145,82,19,110,22.2,0.245,57,0 +5,117,92,0,0,34.1,0.337,38,0 +5,109,75,26,0,36.0,0.546,60,0 +3,158,76,36,245,31.6,0.851,28,1 +3,88,58,11,54,24.8,0.267,22,0 +6,92,92,0,0,19.9,0.188,28,0 +10,122,78,31,0,27.6,0.512,45,0 +4,103,60,33,192,24.0,0.966,33,0 +11,138,76,0,0,33.2,0.420,35,0 +9,102,76,37,0,32.9,0.665,46,1 +2,90,68,42,0,38.2,0.503,27,1 +4,111,72,47,207,37.1,1.390,56,1 +3,180,64,25,70,34.0,0.271,26,0 +7,133,84,0,0,40.2,0.696,37,0 +7,106,92,18,0,22.7,0.235,48,0 +9,171,110,24,240,45.4,0.721,54,1 +7,159,64,0,0,27.4,0.294,40,0 +0,180,66,39,0,42.0,1.893,25,1 +1,146,56,0,0,29.7,0.564,29,0 +2,71,70,27,0,28.0,0.586,22,0 +7,103,66,32,0,39.1,0.344,31,1 +7,105,0,0,0,0.0,0.305,24,0 +1,103,80,11,82,19.4,0.491,22,0 +1,101,50,15,36,24.2,0.526,26,0 +5,88,66,21,23,24.4,0.342,30,0 +8,176,90,34,300,33.7,0.467,58,1 +7,150,66,42,342,34.7,0.718,42,0 +1,73,50,10,0,23.0,0.248,21,0 +7,187,68,39,304,37.7,0.254,41,1 +0,100,88,60,110,46.8,0.962,31,0 +0,146,82,0,0,40.5,1.781,44,0 +0,105,64,41,142,41.5,0.173,22,0 +2,84,0,0,0,0.0,0.304,21,0 +8,133,72,0,0,32.9,0.270,39,1 +5,44,62,0,0,25.0,0.587,36,0 +2,141,58,34,128,25.4,0.699,24,0 +7,114,66,0,0,32.8,0.258,42,1 +5,99,74,27,0,29.0,0.203,32,0 +0,109,88,30,0,32.5,0.855,38,1 +2,109,92,0,0,42.7,0.845,54,0 +1,95,66,13,38,19.6,0.334,25,0 +4,146,85,27,100,28.9,0.189,27,0 +2,100,66,20,90,32.9,0.867,28,1 +5,139,64,35,140,28.6,0.411,26,0 +13,126,90,0,0,43.4,0.583,42,1 +4,129,86,20,270,35.1,0.231,23,0 +1,79,75,30,0,32.0,0.396,22,0 +1,0,48,20,0,24.7,0.140,22,0 +7,62,78,0,0,32.6,0.391,41,0 +5,95,72,33,0,37.7,0.370,27,0 +0,131,0,0,0,43.2,0.270,26,1 +2,112,66,22,0,25.0,0.307,24,0 +3,113,44,13,0,22.4,0.140,22,0 +2,74,0,0,0,0.0,0.102,22,0 +7,83,78,26,71,29.3,0.767,36,0 +0,101,65,28,0,24.6,0.237,22,0 +5,137,108,0,0,48.8,0.227,37,1 +2,110,74,29,125,32.4,0.698,27,0 +13,106,72,54,0,36.6,0.178,45,0 +2,100,68,25,71,38.5,0.324,26,0 +15,136,70,32,110,37.1,0.153,43,1 +1,107,68,19,0,26.5,0.165,24,0 +1,80,55,0,0,19.1,0.258,21,0 +4,123,80,15,176,32.0,0.443,34,0 +7,81,78,40,48,46.7,0.261,42,0 +4,134,72,0,0,23.8,0.277,60,1 +2,142,82,18,64,24.7,0.761,21,0 +6,144,72,27,228,33.9,0.255,40,0 +2,92,62,28,0,31.6,0.130,24,0 +1,71,48,18,76,20.4,0.323,22,0 +6,93,50,30,64,28.7,0.356,23,0 +1,122,90,51,220,49.7,0.325,31,1 +1,163,72,0,0,39.0,1.222,33,1 +1,151,60,0,0,26.1,0.179,22,0 +0,125,96,0,0,22.5,0.262,21,0 +1,81,72,18,40,26.6,0.283,24,0 +2,85,65,0,0,39.6,0.930,27,0 +1,126,56,29,152,28.7,0.801,21,0 +1,96,122,0,0,22.4,0.207,27,0 +4,144,58,28,140,29.5,0.287,37,0 +3,83,58,31,18,34.3,0.336,25,0 +0,95,85,25,36,37.4,0.247,24,1 +3,171,72,33,135,33.3,0.199,24,1 +8,155,62,26,495,34.0,0.543,46,1 +1,89,76,34,37,31.2,0.192,23,0 +4,76,62,0,0,34.0,0.391,25,0 +7,160,54,32,175,30.5,0.588,39,1 +4,146,92,0,0,31.2,0.539,61,1 +5,124,74,0,0,34.0,0.220,38,1 +5,78,48,0,0,33.7,0.654,25,0 +4,97,60,23,0,28.2,0.443,22,0 +4,99,76,15,51,23.2,0.223,21,0 +0,162,76,56,100,53.2,0.759,25,1 +6,111,64,39,0,34.2,0.260,24,0 +2,107,74,30,100,33.6,0.404,23,0 +5,132,80,0,0,26.8,0.186,69,0 +0,113,76,0,0,33.3,0.278,23,1 +1,88,30,42,99,55.0,0.496,26,1 +3,120,70,30,135,42.9,0.452,30,0 +1,118,58,36,94,33.3,0.261,23,0 +1,117,88,24,145,34.5,0.403,40,1 +0,105,84,0,0,27.9,0.741,62,1 +4,173,70,14,168,29.7,0.361,33,1 +9,122,56,0,0,33.3,1.114,33,1 +3,170,64,37,225,34.5,0.356,30,1 +8,84,74,31,0,38.3,0.457,39,0 +2,96,68,13,49,21.1,0.647,26,0 +2,125,60,20,140,33.8,0.088,31,0 +0,100,70,26,50,30.8,0.597,21,0 +0,93,60,25,92,28.7,0.532,22,0 +0,129,80,0,0,31.2,0.703,29,0 +5,105,72,29,325,36.9,0.159,28,0 +3,128,78,0,0,21.1,0.268,55,0 +5,106,82,30,0,39.5,0.286,38,0 +2,108,52,26,63,32.5,0.318,22,0 +10,108,66,0,0,32.4,0.272,42,1 +4,154,62,31,284,32.8,0.237,23,0 +0,102,75,23,0,0.0,0.572,21,0 +9,57,80,37,0,32.8,0.096,41,0 +2,106,64,35,119,30.5,1.400,34,0 +5,147,78,0,0,33.7,0.218,65,0 +2,90,70,17,0,27.3,0.085,22,0 +1,136,74,50,204,37.4,0.399,24,0 +4,114,65,0,0,21.9,0.432,37,0 +9,156,86,28,155,34.3,1.189,42,1 +1,153,82,42,485,40.6,0.687,23,0 +8,188,78,0,0,47.9,0.137,43,1 +7,152,88,44,0,50.0,0.337,36,1 +2,99,52,15,94,24.6,0.637,21,0 +1,109,56,21,135,25.2,0.833,23,0 +2,88,74,19,53,29.0,0.229,22,0 +17,163,72,41,114,40.9,0.817,47,1 +4,151,90,38,0,29.7,0.294,36,0 +7,102,74,40,105,37.2,0.204,45,0 +0,114,80,34,285,44.2,0.167,27,0 +2,100,64,23,0,29.7,0.368,21,0 +0,131,88,0,0,31.6,0.743,32,1 +6,104,74,18,156,29.9,0.722,41,1 +3,148,66,25,0,32.5,0.256,22,0 +4,120,68,0,0,29.6,0.709,34,0 +4,110,66,0,0,31.9,0.471,29,0 +3,111,90,12,78,28.4,0.495,29,0 +6,102,82,0,0,30.8,0.180,36,1 +6,134,70,23,130,35.4,0.542,29,1 +2,87,0,23,0,28.9,0.773,25,0 +1,79,60,42,48,43.5,0.678,23,0 +2,75,64,24,55,29.7,0.370,33,0 +8,179,72,42,130,32.7,0.719,36,1 +6,85,78,0,0,31.2,0.382,42,0 +0,129,110,46,130,67.1,0.319,26,1 +5,143,78,0,0,45.0,0.190,47,0 +5,130,82,0,0,39.1,0.956,37,1 +6,87,80,0,0,23.2,0.084,32,0 +0,119,64,18,92,34.9,0.725,23,0 +1,0,74,20,23,27.7,0.299,21,0 +5,73,60,0,0,26.8,0.268,27,0 +4,141,74,0,0,27.6,0.244,40,0 +7,194,68,28,0,35.9,0.745,41,1 +8,181,68,36,495,30.1,0.615,60,1 +1,128,98,41,58,32.0,1.321,33,1 +8,109,76,39,114,27.9,0.640,31,1 +5,139,80,35,160,31.6,0.361,25,1 +3,111,62,0,0,22.6,0.142,21,0 +9,123,70,44,94,33.1,0.374,40,0 +7,159,66,0,0,30.4,0.383,36,1 +11,135,0,0,0,52.3,0.578,40,1 +8,85,55,20,0,24.4,0.136,42,0 +5,158,84,41,210,39.4,0.395,29,1 +1,105,58,0,0,24.3,0.187,21,0 +3,107,62,13,48,22.9,0.678,23,1 +4,109,64,44,99,34.8,0.905,26,1 +4,148,60,27,318,30.9,0.150,29,1 +0,113,80,16,0,31.0,0.874,21,0 +1,138,82,0,0,40.1,0.236,28,0 +0,108,68,20,0,27.3,0.787,32,0 +2,99,70,16,44,20.4,0.235,27,0 +6,103,72,32,190,37.7,0.324,55,0 +5,111,72,28,0,23.9,0.407,27,0 +8,196,76,29,280,37.5,0.605,57,1 +5,162,104,0,0,37.7,0.151,52,1 +1,96,64,27,87,33.2,0.289,21,0 +7,184,84,33,0,35.5,0.355,41,1 +2,81,60,22,0,27.7,0.290,25,0 +0,147,85,54,0,42.8,0.375,24,0 +7,179,95,31,0,34.2,0.164,60,0 +0,140,65,26,130,42.6,0.431,24,1 +9,112,82,32,175,34.2,0.260,36,1 +12,151,70,40,271,41.8,0.742,38,1 +5,109,62,41,129,35.8,0.514,25,1 +6,125,68,30,120,30.0,0.464,32,0 +5,85,74,22,0,29.0,1.224,32,1 +5,112,66,0,0,37.8,0.261,41,1 +0,177,60,29,478,34.6,1.072,21,1 +2,158,90,0,0,31.6,0.805,66,1 +7,119,0,0,0,25.2,0.209,37,0 +7,142,60,33,190,28.8,0.687,61,0 +1,100,66,15,56,23.6,0.666,26,0 +1,87,78,27,32,34.6,0.101,22,0 +0,101,76,0,0,35.7,0.198,26,0 +3,162,52,38,0,37.2,0.652,24,1 +4,197,70,39,744,36.7,2.329,31,0 +0,117,80,31,53,45.2,0.089,24,0 +4,142,86,0,0,44.0,0.645,22,1 +6,134,80,37,370,46.2,0.238,46,1 +1,79,80,25,37,25.4,0.583,22,0 +4,122,68,0,0,35.0,0.394,29,0 +3,74,68,28,45,29.7,0.293,23,0 +4,171,72,0,0,43.6,0.479,26,1 +7,181,84,21,192,35.9,0.586,51,1 +0,179,90,27,0,44.1,0.686,23,1 +9,164,84,21,0,30.8,0.831,32,1 +0,104,76,0,0,18.4,0.582,27,0 +1,91,64,24,0,29.2,0.192,21,0 +4,91,70,32,88,33.1,0.446,22,0 +3,139,54,0,0,25.6,0.402,22,1 +6,119,50,22,176,27.1,1.318,33,1 +2,146,76,35,194,38.2,0.329,29,0 +9,184,85,15,0,30.0,1.213,49,1 +10,122,68,0,0,31.2,0.258,41,0 +0,165,90,33,680,52.3,0.427,23,0 +9,124,70,33,402,35.4,0.282,34,0 +1,111,86,19,0,30.1,0.143,23,0 +9,106,52,0,0,31.2,0.380,42,0 +2,129,84,0,0,28.0,0.284,27,0 +2,90,80,14,55,24.4,0.249,24,0 +0,86,68,32,0,35.8,0.238,25,0 +12,92,62,7,258,27.6,0.926,44,1 +1,113,64,35,0,33.6,0.543,21,1 +3,111,56,39,0,30.1,0.557,30,0 +2,114,68,22,0,28.7,0.092,25,0 +1,193,50,16,375,25.9,0.655,24,0 +11,155,76,28,150,33.3,1.353,51,1 +3,191,68,15,130,30.9,0.299,34,0 +3,141,0,0,0,30.0,0.761,27,1 +4,95,70,32,0,32.1,0.612,24,0 +3,142,80,15,0,32.4,0.200,63,0 +4,123,62,0,0,32.0,0.226,35,1 +5,96,74,18,67,33.6,0.997,43,0 +0,138,0,0,0,36.3,0.933,25,1 +2,128,64,42,0,40.0,1.101,24,0 +0,102,52,0,0,25.1,0.078,21,0 +2,146,0,0,0,27.5,0.240,28,1 +10,101,86,37,0,45.6,1.136,38,1 +2,108,62,32,56,25.2,0.128,21,0 +3,122,78,0,0,23.0,0.254,40,0 +1,71,78,50,45,33.2,0.422,21,0 +13,106,70,0,0,34.2,0.251,52,0 +2,100,70,52,57,40.5,0.677,25,0 +7,106,60,24,0,26.5,0.296,29,1 +0,104,64,23,116,27.8,0.454,23,0 +5,114,74,0,0,24.9,0.744,57,0 +2,108,62,10,278,25.3,0.881,22,0 +0,146,70,0,0,37.9,0.334,28,1 +10,129,76,28,122,35.9,0.280,39,0 +7,133,88,15,155,32.4,0.262,37,0 +7,161,86,0,0,30.4,0.165,47,1 +2,108,80,0,0,27.0,0.259,52,1 +7,136,74,26,135,26.0,0.647,51,0 +5,155,84,44,545,38.7,0.619,34,0 +1,119,86,39,220,45.6,0.808,29,1 +4,96,56,17,49,20.8,0.340,26,0 +5,108,72,43,75,36.1,0.263,33,0 +0,78,88,29,40,36.9,0.434,21,0 +0,107,62,30,74,36.6,0.757,25,1 +2,128,78,37,182,43.3,1.224,31,1 +1,128,48,45,194,40.5,0.613,24,1 +0,161,50,0,0,21.9,0.254,65,0 +6,151,62,31,120,35.5,0.692,28,0 +2,146,70,38,360,28.0,0.337,29,1 +0,126,84,29,215,30.7,0.520,24,0 +14,100,78,25,184,36.6,0.412,46,1 +8,112,72,0,0,23.6,0.840,58,0 +0,167,0,0,0,32.3,0.839,30,1 +2,144,58,33,135,31.6,0.422,25,1 +5,77,82,41,42,35.8,0.156,35,0 +5,115,98,0,0,52.9,0.209,28,1 +3,150,76,0,0,21.0,0.207,37,0 +2,120,76,37,105,39.7,0.215,29,0 +10,161,68,23,132,25.5,0.326,47,1 +0,137,68,14,148,24.8,0.143,21,0 +0,128,68,19,180,30.5,1.391,25,1 +2,124,68,28,205,32.9,0.875,30,1 +6,80,66,30,0,26.2,0.313,41,0 +0,106,70,37,148,39.4,0.605,22,0 +2,155,74,17,96,26.6,0.433,27,1 +3,113,50,10,85,29.5,0.626,25,0 +7,109,80,31,0,35.9,1.127,43,1 +2,112,68,22,94,34.1,0.315,26,0 +3,99,80,11,64,19.3,0.284,30,0 +3,182,74,0,0,30.5,0.345,29,1 +3,115,66,39,140,38.1,0.150,28,0 +6,194,78,0,0,23.5,0.129,59,1 +4,129,60,12,231,27.5,0.527,31,0 +3,112,74,30,0,31.6,0.197,25,1 +0,124,70,20,0,27.4,0.254,36,1 +13,152,90,33,29,26.8,0.731,43,1 +2,112,75,32,0,35.7,0.148,21,0 +1,157,72,21,168,25.6,0.123,24,0 +1,122,64,32,156,35.1,0.692,30,1 +10,179,70,0,0,35.1,0.200,37,0 +2,102,86,36,120,45.5,0.127,23,1 +6,105,70,32,68,30.8,0.122,37,0 +8,118,72,19,0,23.1,1.476,46,0 +2,87,58,16,52,32.7,0.166,25,0 +1,180,0,0,0,43.3,0.282,41,1 +12,106,80,0,0,23.6,0.137,44,0 +1,95,60,18,58,23.9,0.260,22,0 +0,165,76,43,255,47.9,0.259,26,0 +0,117,0,0,0,33.8,0.932,44,0 +5,115,76,0,0,31.2,0.343,44,1 +9,152,78,34,171,34.2,0.893,33,1 +7,178,84,0,0,39.9,0.331,41,1 +1,130,70,13,105,25.9,0.472,22,0 +1,95,74,21,73,25.9,0.673,36,0 +1,0,68,35,0,32.0,0.389,22,0 +5,122,86,0,0,34.7,0.290,33,0 +8,95,72,0,0,36.8,0.485,57,0 +8,126,88,36,108,38.5,0.349,49,0 +1,139,46,19,83,28.7,0.654,22,0 +3,116,0,0,0,23.5,0.187,23,0 +3,99,62,19,74,21.8,0.279,26,0 +5,0,80,32,0,41.0,0.346,37,1 +4,92,80,0,0,42.2,0.237,29,0 +4,137,84,0,0,31.2,0.252,30,0 +3,61,82,28,0,34.4,0.243,46,0 +1,90,62,12,43,27.2,0.580,24,0 +3,90,78,0,0,42.7,0.559,21,0 +9,165,88,0,0,30.4,0.302,49,1 +1,125,50,40,167,33.3,0.962,28,1 +13,129,0,30,0,39.9,0.569,44,1 +12,88,74,40,54,35.3,0.378,48,0 +1,196,76,36,249,36.5,0.875,29,1 +5,189,64,33,325,31.2,0.583,29,1 +5,158,70,0,0,29.8,0.207,63,0 +5,103,108,37,0,39.2,0.305,65,0 +4,146,78,0,0,38.5,0.520,67,1 +4,147,74,25,293,34.9,0.385,30,0 +5,99,54,28,83,34.0,0.499,30,0 +6,124,72,0,0,27.6,0.368,29,1 +0,101,64,17,0,21.0,0.252,21,0 +3,81,86,16,66,27.5,0.306,22,0 +1,133,102,28,140,32.8,0.234,45,1 +3,173,82,48,465,38.4,2.137,25,1 +0,118,64,23,89,0.0,1.731,21,0 +0,84,64,22,66,35.8,0.545,21,0 +2,105,58,40,94,34.9,0.225,25,0 +2,122,52,43,158,36.2,0.816,28,0 +12,140,82,43,325,39.2,0.528,58,1 +0,98,82,15,84,25.2,0.299,22,0 +1,87,60,37,75,37.2,0.509,22,0 +4,156,75,0,0,48.3,0.238,32,1 +0,93,100,39,72,43.4,1.021,35,0 +1,107,72,30,82,30.8,0.821,24,0 +0,105,68,22,0,20.0,0.236,22,0 +1,109,60,8,182,25.4,0.947,21,0 +1,90,62,18,59,25.1,1.268,25,0 +1,125,70,24,110,24.3,0.221,25,0 +1,119,54,13,50,22.3,0.205,24,0 +5,116,74,29,0,32.3,0.660,35,1 +8,105,100,36,0,43.3,0.239,45,1 +5,144,82,26,285,32.0,0.452,58,1 +3,100,68,23,81,31.6,0.949,28,0 +1,100,66,29,196,32.0,0.444,42,0 +5,166,76,0,0,45.7,0.340,27,1 +1,131,64,14,415,23.7,0.389,21,0 +4,116,72,12,87,22.1,0.463,37,0 +4,158,78,0,0,32.9,0.803,31,1 +2,127,58,24,275,27.7,1.600,25,0 +3,96,56,34,115,24.7,0.944,39,0 +0,131,66,40,0,34.3,0.196,22,1 +3,82,70,0,0,21.1,0.389,25,0 +3,193,70,31,0,34.9,0.241,25,1 +4,95,64,0,0,32.0,0.161,31,1 +6,137,61,0,0,24.2,0.151,55,0 +5,136,84,41,88,35.0,0.286,35,1 +9,72,78,25,0,31.6,0.280,38,0 +5,168,64,0,0,32.9,0.135,41,1 +2,123,48,32,165,42.1,0.520,26,0 +4,115,72,0,0,28.9,0.376,46,1 +0,101,62,0,0,21.9,0.336,25,0 +8,197,74,0,0,25.9,1.191,39,1 +1,172,68,49,579,42.4,0.702,28,1 +6,102,90,39,0,35.7,0.674,28,0 +1,112,72,30,176,34.4,0.528,25,0 +1,143,84,23,310,42.4,1.076,22,0 +1,143,74,22,61,26.2,0.256,21,0 +0,138,60,35,167,34.6,0.534,21,1 +3,173,84,33,474,35.7,0.258,22,1 +1,97,68,21,0,27.2,1.095,22,0 +4,144,82,32,0,38.5,0.554,37,1 +1,83,68,0,0,18.2,0.624,27,0 +3,129,64,29,115,26.4,0.219,28,1 +1,119,88,41,170,45.3,0.507,26,0 +2,94,68,18,76,26.0,0.561,21,0 +0,102,64,46,78,40.6,0.496,21,0 +2,115,64,22,0,30.8,0.421,21,0 +8,151,78,32,210,42.9,0.516,36,1 +4,184,78,39,277,37.0,0.264,31,1 +0,94,0,0,0,0.0,0.256,25,0 +1,181,64,30,180,34.1,0.328,38,1 +0,135,94,46,145,40.6,0.284,26,0 +1,95,82,25,180,35.0,0.233,43,1 +2,99,0,0,0,22.2,0.108,23,0 +3,89,74,16,85,30.4,0.551,38,0 +1,80,74,11,60,30.0,0.527,22,0 +2,139,75,0,0,25.6,0.167,29,0 +1,90,68,8,0,24.5,1.138,36,0 +0,141,0,0,0,42.4,0.205,29,1 +12,140,85,33,0,37.4,0.244,41,0 +5,147,75,0,0,29.9,0.434,28,0 +1,97,70,15,0,18.2,0.147,21,0 +6,107,88,0,0,36.8,0.727,31,0 +0,189,104,25,0,34.3,0.435,41,1 +2,83,66,23,50,32.2,0.497,22,0 +4,117,64,27,120,33.2,0.230,24,0 +8,108,70,0,0,30.5,0.955,33,1 +4,117,62,12,0,29.7,0.380,30,1 +0,180,78,63,14,59.4,2.420,25,1 +1,100,72,12,70,25.3,0.658,28,0 +0,95,80,45,92,36.5,0.330,26,0 +0,104,64,37,64,33.6,0.510,22,1 +0,120,74,18,63,30.5,0.285,26,0 +1,82,64,13,95,21.2,0.415,23,0 +2,134,70,0,0,28.9,0.542,23,1 +0,91,68,32,210,39.9,0.381,25,0 +2,119,0,0,0,19.6,0.832,72,0 +2,100,54,28,105,37.8,0.498,24,0 +14,175,62,30,0,33.6,0.212,38,1 +1,135,54,0,0,26.7,0.687,62,0 +5,86,68,28,71,30.2,0.364,24,0 +10,148,84,48,237,37.6,1.001,51,1 +9,134,74,33,60,25.9,0.460,81,0 +9,120,72,22,56,20.8,0.733,48,0 +1,71,62,0,0,21.8,0.416,26,0 +8,74,70,40,49,35.3,0.705,39,0 +5,88,78,30,0,27.6,0.258,37,0 +10,115,98,0,0,24.0,1.022,34,0 +0,124,56,13,105,21.8,0.452,21,0 +0,74,52,10,36,27.8,0.269,22,0 +0,97,64,36,100,36.8,0.600,25,0 +8,120,0,0,0,30.0,0.183,38,1 +6,154,78,41,140,46.1,0.571,27,0 +1,144,82,40,0,41.3,0.607,28,0 +0,137,70,38,0,33.2,0.170,22,0 +0,119,66,27,0,38.8,0.259,22,0 +7,136,90,0,0,29.9,0.210,50,0 +4,114,64,0,0,28.9,0.126,24,0 +0,137,84,27,0,27.3,0.231,59,0 +2,105,80,45,191,33.7,0.711,29,1 +7,114,76,17,110,23.8,0.466,31,0 +8,126,74,38,75,25.9,0.162,39,0 +4,132,86,31,0,28.0,0.419,63,0 +3,158,70,30,328,35.5,0.344,35,1 +0,123,88,37,0,35.2,0.197,29,0 +4,85,58,22,49,27.8,0.306,28,0 +0,84,82,31,125,38.2,0.233,23,0 +0,145,0,0,0,44.2,0.630,31,1 +0,135,68,42,250,42.3,0.365,24,1 +1,139,62,41,480,40.7,0.536,21,0 +0,173,78,32,265,46.5,1.159,58,0 +4,99,72,17,0,25.6,0.294,28,0 +8,194,80,0,0,26.1,0.551,67,0 +2,83,65,28,66,36.8,0.629,24,0 +2,89,90,30,0,33.5,0.292,42,0 +4,99,68,38,0,32.8,0.145,33,0 +4,125,70,18,122,28.9,1.144,45,1 +3,80,0,0,0,0.0,0.174,22,0 +6,166,74,0,0,26.6,0.304,66,0 +5,110,68,0,0,26.0,0.292,30,0 +2,81,72,15,76,30.1,0.547,25,0 +7,195,70,33,145,25.1,0.163,55,1 +6,154,74,32,193,29.3,0.839,39,0 +2,117,90,19,71,25.2,0.313,21,0 +3,84,72,32,0,37.2,0.267,28,0 +6,0,68,41,0,39.0,0.727,41,1 +7,94,64,25,79,33.3,0.738,41,0 +3,96,78,39,0,37.3,0.238,40,0 +10,75,82,0,0,33.3,0.263,38,0 +0,180,90,26,90,36.5,0.314,35,1 +1,130,60,23,170,28.6,0.692,21,0 +2,84,50,23,76,30.4,0.968,21,0 +8,120,78,0,0,25.0,0.409,64,0 +12,84,72,31,0,29.7,0.297,46,1 +0,139,62,17,210,22.1,0.207,21,0 +9,91,68,0,0,24.2,0.200,58,0 +2,91,62,0,0,27.3,0.525,22,0 +3,99,54,19,86,25.6,0.154,24,0 +3,163,70,18,105,31.6,0.268,28,1 +9,145,88,34,165,30.3,0.771,53,1 +7,125,86,0,0,37.6,0.304,51,0 +13,76,60,0,0,32.8,0.180,41,0 +6,129,90,7,326,19.6,0.582,60,0 +2,68,70,32,66,25.0,0.187,25,0 +3,124,80,33,130,33.2,0.305,26,0 +6,114,0,0,0,0.0,0.189,26,0 +9,130,70,0,0,34.2,0.652,45,1 +3,125,58,0,0,31.6,0.151,24,0 +3,87,60,18,0,21.8,0.444,21,0 +1,97,64,19,82,18.2,0.299,21,0 +3,116,74,15,105,26.3,0.107,24,0 +0,117,66,31,188,30.8,0.493,22,0 +0,111,65,0,0,24.6,0.660,31,0 +2,122,60,18,106,29.8,0.717,22,0 +0,107,76,0,0,45.3,0.686,24,0 +1,86,66,52,65,41.3,0.917,29,0 +6,91,0,0,0,29.8,0.501,31,0 +1,77,56,30,56,33.3,1.251,24,0 +4,132,0,0,0,32.9,0.302,23,1 +0,105,90,0,0,29.6,0.197,46,0 +0,57,60,0,0,21.7,0.735,67,0 +0,127,80,37,210,36.3,0.804,23,0 +3,129,92,49,155,36.4,0.968,32,1 +8,100,74,40,215,39.4,0.661,43,1 +3,128,72,25,190,32.4,0.549,27,1 +10,90,85,32,0,34.9,0.825,56,1 +4,84,90,23,56,39.5,0.159,25,0 +1,88,78,29,76,32.0,0.365,29,0 +8,186,90,35,225,34.5,0.423,37,1 +5,187,76,27,207,43.6,1.034,53,1 +4,131,68,21,166,33.1,0.160,28,0 +1,164,82,43,67,32.8,0.341,50,0 +4,189,110,31,0,28.5,0.680,37,0 +1,116,70,28,0,27.4,0.204,21,0 +3,84,68,30,106,31.9,0.591,25,0 +6,114,88,0,0,27.8,0.247,66,0 +1,88,62,24,44,29.9,0.422,23,0 +1,84,64,23,115,36.9,0.471,28,0 +7,124,70,33,215,25.5,0.161,37,0 +1,97,70,40,0,38.1,0.218,30,0 +8,110,76,0,0,27.8,0.237,58,0 +11,103,68,40,0,46.2,0.126,42,0 +11,85,74,0,0,30.1,0.300,35,0 +6,125,76,0,0,33.8,0.121,54,1 +0,198,66,32,274,41.3,0.502,28,1 +1,87,68,34,77,37.6,0.401,24,0 +6,99,60,19,54,26.9,0.497,32,0 +0,91,80,0,0,32.4,0.601,27,0 +2,95,54,14,88,26.1,0.748,22,0 +1,99,72,30,18,38.6,0.412,21,0 +6,92,62,32,126,32.0,0.085,46,0 +4,154,72,29,126,31.3,0.338,37,0 +0,121,66,30,165,34.3,0.203,33,1 +3,78,70,0,0,32.5,0.270,39,0 +2,130,96,0,0,22.6,0.268,21,0 +3,111,58,31,44,29.5,0.430,22,0 +2,98,60,17,120,34.7,0.198,22,0 +1,143,86,30,330,30.1,0.892,23,0 +1,119,44,47,63,35.5,0.280,25,0 +6,108,44,20,130,24.0,0.813,35,0 +2,118,80,0,0,42.9,0.693,21,1 +10,133,68,0,0,27.0,0.245,36,0 +2,197,70,99,0,34.7,0.575,62,1 +0,151,90,46,0,42.1,0.371,21,1 +6,109,60,27,0,25.0,0.206,27,0 +12,121,78,17,0,26.5,0.259,62,0 +8,100,76,0,0,38.7,0.190,42,0 +8,124,76,24,600,28.7,0.687,52,1 +1,93,56,11,0,22.5,0.417,22,0 +8,143,66,0,0,34.9,0.129,41,1 +6,103,66,0,0,24.3,0.249,29,0 +3,176,86,27,156,33.3,1.154,52,1 +0,73,0,0,0,21.1,0.342,25,0 +11,111,84,40,0,46.8,0.925,45,1 +2,112,78,50,140,39.4,0.175,24,0 +3,132,80,0,0,34.4,0.402,44,1 +2,82,52,22,115,28.5,1.699,25,0 +6,123,72,45,230,33.6,0.733,34,0 +0,188,82,14,185,32.0,0.682,22,1 +0,67,76,0,0,45.3,0.194,46,0 +1,89,24,19,25,27.8,0.559,21,0 +1,173,74,0,0,36.8,0.088,38,1 +1,109,38,18,120,23.1,0.407,26,0 +1,108,88,19,0,27.1,0.400,24,0 +6,96,0,0,0,23.7,0.190,28,0 +1,124,74,36,0,27.8,0.100,30,0 +7,150,78,29,126,35.2,0.692,54,1 +4,183,0,0,0,28.4,0.212,36,1 +1,124,60,32,0,35.8,0.514,21,0 +1,181,78,42,293,40.0,1.258,22,1 +1,92,62,25,41,19.5,0.482,25,0 +0,152,82,39,272,41.5,0.270,27,0 +1,111,62,13,182,24.0,0.138,23,0 +3,106,54,21,158,30.9,0.292,24,0 +3,174,58,22,194,32.9,0.593,36,1 +7,168,88,42,321,38.2,0.787,40,1 +6,105,80,28,0,32.5,0.878,26,0 +11,138,74,26,144,36.1,0.557,50,1 +3,106,72,0,0,25.8,0.207,27,0 +6,117,96,0,0,28.7,0.157,30,0 +2,68,62,13,15,20.1,0.257,23,0 +9,112,82,24,0,28.2,1.282,50,1 +0,119,0,0,0,32.4,0.141,24,1 +2,112,86,42,160,38.4,0.246,28,0 +2,92,76,20,0,24.2,1.698,28,0 +6,183,94,0,0,40.8,1.461,45,0 +0,94,70,27,115,43.5,0.347,21,0 +2,108,64,0,0,30.8,0.158,21,0 +4,90,88,47,54,37.7,0.362,29,0 +0,125,68,0,0,24.7,0.206,21,0 +0,132,78,0,0,32.4,0.393,21,0 +5,128,80,0,0,34.6,0.144,45,0 +4,94,65,22,0,24.7,0.148,21,0 +7,114,64,0,0,27.4,0.732,34,1 +0,102,78,40,90,34.5,0.238,24,0 +2,111,60,0,0,26.2,0.343,23,0 +1,128,82,17,183,27.5,0.115,22,0 +10,92,62,0,0,25.9,0.167,31,0 +13,104,72,0,0,31.2,0.465,38,1 +5,104,74,0,0,28.8,0.153,48,0 +2,94,76,18,66,31.6,0.649,23,0 +7,97,76,32,91,40.9,0.871,32,1 +1,100,74,12,46,19.5,0.149,28,0 +0,102,86,17,105,29.3,0.695,27,0 +4,128,70,0,0,34.3,0.303,24,0 +6,147,80,0,0,29.5,0.178,50,1 +4,90,0,0,0,28.0,0.610,31,0 +3,103,72,30,152,27.6,0.730,27,0 +2,157,74,35,440,39.4,0.134,30,0 +1,167,74,17,144,23.4,0.447,33,1 +0,179,50,36,159,37.8,0.455,22,1 +11,136,84,35,130,28.3,0.260,42,1 +0,107,60,25,0,26.4,0.133,23,0 +1,91,54,25,100,25.2,0.234,23,0 +1,117,60,23,106,33.8,0.466,27,0 +5,123,74,40,77,34.1,0.269,28,0 +2,120,54,0,0,26.8,0.455,27,0 +1,106,70,28,135,34.2,0.142,22,0 +2,155,52,27,540,38.7,0.240,25,1 +2,101,58,35,90,21.8,0.155,22,0 +1,120,80,48,200,38.9,1.162,41,0 +11,127,106,0,0,39.0,0.190,51,0 +3,80,82,31,70,34.2,1.292,27,1 +10,162,84,0,0,27.7,0.182,54,0 +1,199,76,43,0,42.9,1.394,22,1 +8,167,106,46,231,37.6,0.165,43,1 +9,145,80,46,130,37.9,0.637,40,1 +6,115,60,39,0,33.7,0.245,40,1 +1,112,80,45,132,34.8,0.217,24,0 +4,145,82,18,0,32.5,0.235,70,1 +10,111,70,27,0,27.5,0.141,40,1 +6,98,58,33,190,34.0,0.430,43,0 +9,154,78,30,100,30.9,0.164,45,0 +6,165,68,26,168,33.6,0.631,49,0 +1,99,58,10,0,25.4,0.551,21,0 +10,68,106,23,49,35.5,0.285,47,0 +3,123,100,35,240,57.3,0.880,22,0 +8,91,82,0,0,35.6,0.587,68,0 +6,195,70,0,0,30.9,0.328,31,1 +9,156,86,0,0,24.8,0.230,53,1 +0,93,60,0,0,35.3,0.263,25,0 +3,121,52,0,0,36.0,0.127,25,1 +2,101,58,17,265,24.2,0.614,23,0 +2,56,56,28,45,24.2,0.332,22,0 +0,162,76,36,0,49.6,0.364,26,1 +0,95,64,39,105,44.6,0.366,22,0 +4,125,80,0,0,32.3,0.536,27,1 +5,136,82,0,0,0.0,0.640,69,0 +2,129,74,26,205,33.2,0.591,25,0 +3,130,64,0,0,23.1,0.314,22,0 +1,107,50,19,0,28.3,0.181,29,0 +1,140,74,26,180,24.1,0.828,23,0 +1,144,82,46,180,46.1,0.335,46,1 +8,107,80,0,0,24.6,0.856,34,0 +13,158,114,0,0,42.3,0.257,44,1 +2,121,70,32,95,39.1,0.886,23,0 +7,129,68,49,125,38.5,0.439,43,1 +2,90,60,0,0,23.5,0.191,25,0 +7,142,90,24,480,30.4,0.128,43,1 +3,169,74,19,125,29.9,0.268,31,1 +0,99,0,0,0,25.0,0.253,22,0 +4,127,88,11,155,34.5,0.598,28,0 +4,118,70,0,0,44.5,0.904,26,0 +2,122,76,27,200,35.9,0.483,26,0 +6,125,78,31,0,27.6,0.565,49,1 +1,168,88,29,0,35.0,0.905,52,1 +2,129,0,0,0,38.5,0.304,41,0 +4,110,76,20,100,28.4,0.118,27,0 +6,80,80,36,0,39.8,0.177,28,0 +10,115,0,0,0,0.0,0.261,30,1 +2,127,46,21,335,34.4,0.176,22,0 +9,164,78,0,0,32.8,0.148,45,1 +2,93,64,32,160,38.0,0.674,23,1 +3,158,64,13,387,31.2,0.295,24,0 +5,126,78,27,22,29.6,0.439,40,0 +10,129,62,36,0,41.2,0.441,38,1 +0,134,58,20,291,26.4,0.352,21,0 +3,102,74,0,0,29.5,0.121,32,0 +7,187,50,33,392,33.9,0.826,34,1 +3,173,78,39,185,33.8,0.970,31,1 +10,94,72,18,0,23.1,0.595,56,0 +1,108,60,46,178,35.5,0.415,24,0 +5,97,76,27,0,35.6,0.378,52,1 +4,83,86,19,0,29.3,0.317,34,0 +1,114,66,36,200,38.1,0.289,21,0 +1,149,68,29,127,29.3,0.349,42,1 +5,117,86,30,105,39.1,0.251,42,0 +1,111,94,0,0,32.8,0.265,45,0 +4,112,78,40,0,39.4,0.236,38,0 +1,116,78,29,180,36.1,0.496,25,0 +0,141,84,26,0,32.4,0.433,22,0 +2,175,88,0,0,22.9,0.326,22,0 +2,92,52,0,0,30.1,0.141,22,0 +3,130,78,23,79,28.4,0.323,34,1 +8,120,86,0,0,28.4,0.259,22,1 +2,174,88,37,120,44.5,0.646,24,1 +2,106,56,27,165,29.0,0.426,22,0 +2,105,75,0,0,23.3,0.560,53,0 +4,95,60,32,0,35.4,0.284,28,0 +0,126,86,27,120,27.4,0.515,21,0 +8,65,72,23,0,32.0,0.600,42,0 +2,99,60,17,160,36.6,0.453,21,0 +1,102,74,0,0,39.5,0.293,42,1 +11,120,80,37,150,42.3,0.785,48,1 +3,102,44,20,94,30.8,0.400,26,0 +1,109,58,18,116,28.5,0.219,22,0 +9,140,94,0,0,32.7,0.734,45,1 +13,153,88,37,140,40.6,1.174,39,0 +12,100,84,33,105,30.0,0.488,46,0 +1,147,94,41,0,49.3,0.358,27,1 +1,81,74,41,57,46.3,1.096,32,0 +3,187,70,22,200,36.4,0.408,36,1 +6,162,62,0,0,24.3,0.178,50,1 +4,136,70,0,0,31.2,1.182,22,1 +1,121,78,39,74,39.0,0.261,28,0 +3,108,62,24,0,26.0,0.223,25,0 +0,181,88,44,510,43.3,0.222,26,1 +8,154,78,32,0,32.4,0.443,45,1 +1,128,88,39,110,36.5,1.057,37,1 +7,137,90,41,0,32.0,0.391,39,0 +0,123,72,0,0,36.3,0.258,52,1 +1,106,76,0,0,37.5,0.197,26,0 +6,190,92,0,0,35.5,0.278,66,1 +2,88,58,26,16,28.4,0.766,22,0 +9,170,74,31,0,44.0,0.403,43,1 +9,89,62,0,0,22.5,0.142,33,0 +10,101,76,48,180,32.9,0.171,63,0 +2,122,70,27,0,36.8,0.340,27,0 +5,121,72,23,112,26.2,0.245,30,0 +1,126,60,0,0,30.1,0.349,47,1 +1,93,70,31,0,30.4,0.315,23,0 diff --git a/docs/seaborn_demo_from_jakevdp.ipynb b/docs/seaborn_demo_from_jakevdp.ipynb index b04f231..816c6cf 100644 --- a/docs/seaborn_demo_from_jakevdp.ipynb +++ b/docs/seaborn_demo_from_jakevdp.ipynb @@ -10,9 +10,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "from __future__ import print_function, division\n", @@ -26,9 +24,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "plt.style.use('ggplot')\n", @@ -39,9 +35,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import seaborn as sns\n", @@ -52,24 +46,21 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "data = np.random.multivariate_normal([0, 0], [[5, 2], [2, 2]], size=2000)\n", "data = pd.DataFrame(data, columns=['x', 'y'])\n", "\n", "for col in 'xy':\n", - " plt.hist(data[col], normed=True, alpha=0.5)" + " plt.hist(data[col], density=True, alpha=0.5)\n", + " # old Matplotlib would be plt.hist(data[col], normed=True, alpha=0.5)" ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "for col in 'xy':\n", @@ -79,9 +70,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "sns.distplot(data['x']);" @@ -90,20 +79,16 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ - "sns.kdeplot(data);" + "sns.kdeplot(data.x, data.y); # formerly sns.kdeplot(data)" ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "with sns.axes_style('white'):\n", @@ -113,9 +98,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "with sns.axes_style('white'):\n", @@ -125,9 +108,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "iris = sns.load_dataset(\"iris\")\n", @@ -137,9 +118,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "tips = sns.load_dataset('tips')\n", @@ -149,9 +128,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "tips['tip_pct'] = 100 * tips['tip'] / tips['total_bill']\n", @@ -163,9 +140,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "with sns.axes_style(style='ticks'):\n", @@ -176,9 +151,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "with sns.axes_style('white'):\n", @@ -188,9 +161,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "sns.jointplot(\"total_bill\", \"tip\", data=tips, kind='reg');" @@ -199,9 +170,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "planets = sns.load_dataset('planets')\n", @@ -211,9 +180,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "with sns.axes_style('white'):\n", @@ -224,9 +191,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "with sns.axes_style('white'):\n", @@ -245,9 +210,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [] } @@ -268,9 +231,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.4.4" + "version": "3.5.4" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/docs/test_data_access.ipynb b/docs/test_data_access.ipynb index 3b701da..b918b18 100644 --- a/docs/test_data_access.ipynb +++ b/docs/test_data_access.ipynb @@ -14,9 +14,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# pyodbc \n", @@ -32,9 +30,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# odbc to EXCEL .xls via pyodbc (beware 32/64 bit driver and pytho version must match)\n", @@ -56,9 +52,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# odbc to ACCESS .mdb via pyodbc (beware 32/64 bit driver and python version must match)\n", @@ -79,9 +73,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# pythonnet\n", @@ -101,9 +93,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# odbc to EXCEL .xls via pythonnet\n", @@ -133,9 +123,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# odbc to ACCESS .mdb via pythonnet\n", @@ -166,9 +154,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# DAO via pythonnet: works ONLY if you have the 32 (or 64 bit) driver.\n", @@ -202,9 +188,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [] } @@ -225,9 +209,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.0" + "version": "3.6.2" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/docs/tutorial-first-neural-network-python-keras.ipynb b/docs/tutorial-first-neural-network-python-keras.ipynb new file mode 100644 index 0000000..1da90bd --- /dev/null +++ b/docs/tutorial-first-neural-network-python-keras.ipynb @@ -0,0 +1,1122 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# https://machinelearningmastery.com/tutorial-first-neural-network-python-keras/" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from keras.models import Sequential\n", + "from keras.layers import Dense\n", + "import numpy\n", + "# fix random seed for reproducibility\n", + "numpy.random.seed(7)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "#load pima indians dataset\n", + "dataset = numpy.loadtxt(\"pima-indians-diabetes.data\", delimiter=\",\")\n", + "# split into input (X) and output (Y) variables\n", + "X = dataset[:,0:8]\n", + "Y = dataset[:,8]" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "# create model\n", + "model = Sequential()\n", + "model.add(Dense(12, input_dim=8, activation='relu'))\n", + "model.add(Dense(8, activation='relu'))\n", + "model.add(Dense(1, activation='sigmoid'))" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "# Compile model\n", + "model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/150\n", + "768/768 [==============================] - 1s 2ms/step - loss: 3.7106 - acc: 0.5977\n", + "Epoch 2/150\n", + "768/768 [==============================] - 0s 358us/step - loss: 0.9376 - acc: 0.5924\n", + "Epoch 3/150\n", + "768/768 [==============================] - 0s 311us/step - loss: 0.7478 - acc: 0.6445\n", + "Epoch 4/150\n", + "768/768 [==============================] - 0s 224us/step - loss: 0.7121 - acc: 0.6549\n", + "Epoch 5/150\n", + "768/768 [==============================] - 0s 174us/step - loss: 0.6842 - acc: 0.6680\n", + "Epoch 6/150\n", + "768/768 [==============================] - 0s 257us/step - loss: 0.6522 - acc: 0.6797\n", + "Epoch 7/150\n", + "768/768 [==============================] - 0s 254us/step - loss: 0.6496 - acc: 0.6836\n", + "Epoch 8/150\n", + "768/768 [==============================] - 0s 307us/step - loss: 0.6380 - acc: 0.6875\n", + "Epoch 9/150\n", + "768/768 [==============================] - 0s 215us/step - loss: 0.6238 - acc: 0.6953\n", + "Epoch 10/150\n", + "768/768 [==============================] - 0s 184us/step - loss: 0.6288 - acc: 0.6771\n", + "Epoch 11/150\n", + "768/768 [==============================] - 0s 316us/step - loss: 0.6433 - acc: 0.6745\n", + "Epoch 12/150\n", + "768/768 [==============================] - 0s 273us/step - loss: 0.6400 - acc: 0.6732\n", + "Epoch 13/150\n", + "768/768 [==============================] - 0s 241us/step - loss: 0.6262 - acc: 0.6719\n", + "Epoch 14/150\n", + "768/768 [==============================] - 0s 302us/step - loss: 0.6179 - acc: 0.7018\n", + "Epoch 15/150\n", + "768/768 [==============================] - 0s 327us/step - loss: 0.6020 - acc: 0.6953\n", + "Epoch 16/150\n", + "768/768 [==============================] - 0s 244us/step - loss: 0.5877 - acc: 0.7018\n", + "Epoch 17/150\n", + "768/768 [==============================] - 0s 277us/step - loss: 0.5848 - acc: 0.6992\n", + "Epoch 18/150\n", + "768/768 [==============================] - 0s 202us/step - loss: 0.6008 - acc: 0.6849\n", + "Epoch 19/150\n", + "768/768 [==============================] - 0s 180us/step - loss: 0.5807 - acc: 0.7070\n", + "Epoch 20/150\n", + "768/768 [==============================] - 0s 275us/step - loss: 0.5811 - acc: 0.7174\n", + "Epoch 21/150\n", + "768/768 [==============================] - 0s 189us/step - loss: 0.5688 - acc: 0.7161\n", + "Epoch 22/150\n", + "768/768 [==============================] - 0s 214us/step - loss: 0.5824 - acc: 0.6966\n", + "Epoch 23/150\n", + "768/768 [==============================] - 0s 197us/step - loss: 0.5743 - acc: 0.7122\n", + "Epoch 24/150\n", + "768/768 [==============================] - 0s 172us/step - loss: 0.5677 - acc: 0.7344\n", + "Epoch 25/150\n", + "768/768 [==============================] - 0s 177us/step - loss: 0.5580 - acc: 0.7370\n", + "Epoch 26/150\n", + "768/768 [==============================] - 0s 197us/step - loss: 0.5708 - acc: 0.7031\n", + "Epoch 27/150\n", + "768/768 [==============================] - 0s 246us/step - loss: 0.5558 - acc: 0.7214\n", + "Epoch 28/150\n", + "768/768 [==============================] - 0s 288us/step - loss: 0.5559 - acc: 0.7344\n", + "Epoch 29/150\n", + "768/768 [==============================] - 0s 323us/step - loss: 0.5742 - acc: 0.7135\n", + "Epoch 30/150\n", + "768/768 [==============================] - 0s 188us/step - loss: 0.5613 - acc: 0.7214\n", + "Epoch 31/150\n", + "768/768 [==============================] - 0s 176us/step - loss: 0.5690 - acc: 0.7148\n", + "Epoch 32/150\n", + "768/768 [==============================] - 0s 171us/step - loss: 0.5655 - acc: 0.7096\n", + "Epoch 33/150\n", + "768/768 [==============================] - 0s 171us/step - loss: 0.5539 - acc: 0.7174\n", + "Epoch 34/150\n", + "768/768 [==============================] - 0s 176us/step - loss: 0.5528 - acc: 0.7305\n", + "Epoch 35/150\n", + "768/768 [==============================] - 0s 288us/step - loss: 0.5540 - acc: 0.7148\n", + "Epoch 36/150\n", + "768/768 [==============================] - 0s 224us/step - loss: 0.5627 - acc: 0.7096\n", + "Epoch 37/150\n", + "768/768 [==============================] - 0s 241us/step - loss: 0.5357 - acc: 0.7344\n", + "Epoch 38/150\n", + "768/768 [==============================] - 0s 301us/step - loss: 0.5459 - acc: 0.7135\n", + "Epoch 39/150\n", + "768/768 [==============================] - 0s 198us/step - loss: 0.5491 - acc: 0.7227\n", + "Epoch 40/150\n", + "768/768 [==============================] - 0s 216us/step - loss: 0.5494 - acc: 0.7174\n", + "Epoch 41/150\n", + "768/768 [==============================] - 0s 340us/step - loss: 0.5454 - acc: 0.7292\n", + "Epoch 42/150\n", + "768/768 [==============================] - 0s 293us/step - loss: 0.5388 - acc: 0.7396\n", + "Epoch 43/150\n", + "768/768 [==============================] - 0s 202us/step - loss: 0.5336 - acc: 0.7422\n", + "Epoch 44/150\n", + "768/768 [==============================] - 0s 329us/step - loss: 0.5353 - acc: 0.7448\n", + "Epoch 45/150\n", + "768/768 [==============================] - 0s 431us/step - loss: 0.5333 - acc: 0.7578\n", + "Epoch 46/150\n", + "768/768 [==============================] - 0s 346us/step - loss: 0.5293 - acc: 0.7578\n", + "Epoch 47/150\n", + "768/768 [==============================] - 0s 230us/step - loss: 0.5340 - acc: 0.7396\n", + "Epoch 48/150\n", + "768/768 [==============================] - 0s 234us/step - loss: 0.5353 - acc: 0.7370\n", + "Epoch 49/150\n", + "768/768 [==============================] - 0s 250us/step - loss: 0.5355 - acc: 0.7474\n", + "Epoch 50/150\n", + "768/768 [==============================] - 0s 251us/step - loss: 0.5275 - acc: 0.7409\n", + "Epoch 51/150\n", + "768/768 [==============================] - 0s 299us/step - loss: 0.5295 - acc: 0.7474\n", + "Epoch 52/150\n", + "768/768 [==============================] - 0s 255us/step - loss: 0.5306 - acc: 0.7422\n", + "Epoch 53/150\n", + "768/768 [==============================] - 0s 266us/step - loss: 0.5377 - acc: 0.7422\n", + "Epoch 54/150\n", + "768/768 [==============================] - 0s 234us/step - loss: 0.5384 - acc: 0.7279\n", + "Epoch 55/150\n", + "768/768 [==============================] - 0s 240us/step - loss: 0.5231 - acc: 0.7487\n", + "Epoch 56/150\n", + "768/768 [==============================] - 0s 237us/step - loss: 0.5281 - acc: 0.7435\n", + "Epoch 57/150\n", + "768/768 [==============================] - 0s 280us/step - loss: 0.5323 - acc: 0.7383\n", + "Epoch 58/150\n", + "768/768 [==============================] - 0s 242us/step - loss: 0.5233 - acc: 0.7539\n", + "Epoch 59/150\n", + "768/768 [==============================] - 0s 245us/step - loss: 0.5130 - acc: 0.7617\n", + "Epoch 60/150\n", + "768/768 [==============================] - 0s 238us/step - loss: 0.5341 - acc: 0.7370\n", + "Epoch 61/150\n", + "768/768 [==============================] - 0s 241us/step - loss: 0.5265 - acc: 0.7370\n", + "Epoch 62/150\n", + "768/768 [==============================] - 0s 232us/step - loss: 0.5177 - acc: 0.7487\n", + "Epoch 63/150\n", + "768/768 [==============================] - 0s 220us/step - loss: 0.5449 - acc: 0.7357\n", + "Epoch 64/150\n", + "768/768 [==============================] - 0s 260us/step - loss: 0.5319 - acc: 0.7422\n", + "Epoch 65/150\n", + "768/768 [==============================] - 0s 246us/step - loss: 0.5236 - acc: 0.7422\n", + "Epoch 66/150\n", + "768/768 [==============================] - 0s 294us/step - loss: 0.5078 - acc: 0.7487\n", + "Epoch 67/150\n", + "768/768 [==============================] - 0s 253us/step - loss: 0.5167 - acc: 0.7448\n", + "Epoch 68/150\n", + "768/768 [==============================] - 0s 253us/step - loss: 0.5143 - acc: 0.7526\n", + "Epoch 69/150\n", + "768/768 [==============================] - 0s 286us/step - loss: 0.5138 - acc: 0.7500\n", + "Epoch 70/150\n", + "768/768 [==============================] - 0s 264us/step - loss: 0.5377 - acc: 0.7240\n", + "Epoch 71/150\n", + "768/768 [==============================] - 0s 280us/step - loss: 0.5180 - acc: 0.7409\n", + "Epoch 72/150\n", + "768/768 [==============================] - 0s 219us/step - loss: 0.5176 - acc: 0.7448\n", + "Epoch 73/150\n", + "768/768 [==============================] - 0s 245us/step - loss: 0.5164 - acc: 0.7461\n", + "Epoch 74/150\n", + "768/768 [==============================] - 0s 221us/step - loss: 0.5108 - acc: 0.7604\n", + "Epoch 75/150\n", + "768/768 [==============================] - 0s 238us/step - loss: 0.5095 - acc: 0.7617\n", + "Epoch 76/150\n", + "768/768 [==============================] - 0s 232us/step - loss: 0.5119 - acc: 0.7513\n", + "Epoch 77/150\n", + "768/768 [==============================] - 0s 296us/step - loss: 0.5169 - acc: 0.7617\n", + "Epoch 78/150\n", + "768/768 [==============================] - 0s 316us/step - loss: 0.5131 - acc: 0.7474\n", + "Epoch 79/150\n", + "768/768 [==============================] - 0s 223us/step - loss: 0.5138 - acc: 0.7461\n", + "Epoch 80/150\n", + "768/768 [==============================] - 0s 259us/step - loss: 0.5105 - acc: 0.7565\n", + "Epoch 81/150\n", + "768/768 [==============================] - 0s 275us/step - loss: 0.5056 - acc: 0.7695\n", + "Epoch 82/150\n", + "768/768 [==============================] - 0s 228us/step - loss: 0.5060 - acc: 0.7513\n", + "Epoch 83/150\n", + "768/768 [==============================] - 0s 238us/step - loss: 0.5030 - acc: 0.7591\n", + "Epoch 84/150\n", + "768/768 [==============================] - 0s 228us/step - loss: 0.4995 - acc: 0.7526\n", + "Epoch 85/150\n", + "768/768 [==============================] - 0s 230us/step - loss: 0.5063 - acc: 0.7461\n", + "Epoch 86/150\n", + "768/768 [==============================] - 0s 210us/step - loss: 0.5064 - acc: 0.7474\n", + "Epoch 87/150\n", + "768/768 [==============================] - 0s 221us/step - loss: 0.4992 - acc: 0.7526\n", + "Epoch 88/150\n", + "768/768 [==============================] - 0s 250us/step - loss: 0.5010 - acc: 0.7643\n", + "Epoch 89/150\n", + "768/768 [==============================] - 0s 216us/step - loss: 0.5045 - acc: 0.7682\n", + "Epoch 90/150\n", + "768/768 [==============================] - 0s 233us/step - loss: 0.5102 - acc: 0.7513\n", + "Epoch 91/150\n", + "768/768 [==============================] - 0s 246us/step - loss: 0.5022 - acc: 0.7526\n", + "Epoch 92/150\n", + "768/768 [==============================] - 0s 286us/step - loss: 0.5057 - acc: 0.7396\n", + "Epoch 93/150\n", + "768/768 [==============================] - 0s 227us/step - loss: 0.4981 - acc: 0.7656\n", + "Epoch 94/150\n", + "768/768 [==============================] - 0s 227us/step - loss: 0.4992 - acc: 0.7656\n", + "Epoch 95/150\n", + "768/768 [==============================] - 0s 258us/step - loss: 0.5040 - acc: 0.7500\n", + "Epoch 96/150\n", + "768/768 [==============================] - 0s 212us/step - loss: 0.4908 - acc: 0.7669\n", + "Epoch 97/150\n", + "768/768 [==============================] - 0s 245us/step - loss: 0.5004 - acc: 0.7747\n", + "Epoch 98/150\n", + "768/768 [==============================] - 0s 210us/step - loss: 0.4905 - acc: 0.7617\n", + "Epoch 99/150\n", + "768/768 [==============================] - 0s 260us/step - loss: 0.4914 - acc: 0.7630\n", + "Epoch 100/150\n", + "768/768 [==============================] - 0s 232us/step - loss: 0.4845 - acc: 0.7773\n", + "Epoch 101/150\n", + "768/768 [==============================] - 0s 217us/step - loss: 0.4897 - acc: 0.7773\n", + "Epoch 102/150\n", + "768/768 [==============================] - 0s 225us/step - loss: 0.4984 - acc: 0.7578\n", + "Epoch 103/150\n", + "768/768 [==============================] - 0s 246us/step - loss: 0.4987 - acc: 0.7539\n", + "Epoch 104/150\n", + "768/768 [==============================] - 0s 212us/step - loss: 0.4918 - acc: 0.7839\n", + "Epoch 105/150\n", + "768/768 [==============================] - 0s 238us/step - loss: 0.5303 - acc: 0.7422\n", + "Epoch 106/150\n", + "768/768 [==============================] - 0s 215us/step - loss: 0.4976 - acc: 0.7656\n", + "Epoch 107/150\n", + "768/768 [==============================] - 0s 233us/step - loss: 0.4922 - acc: 0.7708\n", + "Epoch 108/150\n", + "768/768 [==============================] - 0s 293us/step - loss: 0.4982 - acc: 0.7695\n", + "Epoch 109/150\n", + "768/768 [==============================] - 0s 268us/step - loss: 0.4874 - acc: 0.7695\n", + "Epoch 110/150\n", + "768/768 [==============================] - 0s 194us/step - loss: 0.4906 - acc: 0.7682\n", + "Epoch 111/150\n", + "768/768 [==============================] - 0s 228us/step - loss: 0.4833 - acc: 0.7812\n", + "Epoch 112/150\n", + "768/768 [==============================] - 0s 249us/step - loss: 0.4916 - acc: 0.7773\n", + "Epoch 113/150\n", + "768/768 [==============================] - 0s 309us/step - loss: 0.4938 - acc: 0.7630\n", + "Epoch 114/150\n", + "768/768 [==============================] - 0s 358us/step - loss: 0.4911 - acc: 0.7604\n", + "Epoch 115/150\n", + "768/768 [==============================] - 0s 410us/step - loss: 0.4905 - acc: 0.7760\n", + "Epoch 116/150\n", + "768/768 [==============================] - 0s 327us/step - loss: 0.4944 - acc: 0.7721\n", + "Epoch 117/150\n", + "768/768 [==============================] - 0s 445us/step - loss: 0.4917 - acc: 0.7604\n", + "Epoch 118/150\n", + "768/768 [==============================] - 0s 293us/step - loss: 0.4894 - acc: 0.7826\n", + "Epoch 119/150\n", + "768/768 [==============================] - 0s 203us/step - loss: 0.4829 - acc: 0.7695\n", + "Epoch 120/150\n", + "768/768 [==============================] - 0s 307us/step - loss: 0.4927 - acc: 0.7786\n", + "Epoch 121/150\n", + "768/768 [==============================] - 0s 367us/step - loss: 0.4924 - acc: 0.7721\n", + "Epoch 122/150\n", + "768/768 [==============================] - 0s 194us/step - loss: 0.4862 - acc: 0.7721\n", + "Epoch 123/150\n", + "768/768 [==============================] - 0s 182us/step - loss: 0.4838 - acc: 0.7656\n", + "Epoch 124/150\n", + "768/768 [==============================] - 0s 181us/step - loss: 0.4831 - acc: 0.7708\n", + "Epoch 125/150\n", + "768/768 [==============================] - 0s 184us/step - loss: 0.4874 - acc: 0.7852\n", + "Epoch 126/150\n", + "768/768 [==============================] - 0s 181us/step - loss: 0.4817 - acc: 0.7786\n", + "Epoch 127/150\n", + "768/768 [==============================] - 0s 177us/step - loss: 0.4903 - acc: 0.7682\n", + "Epoch 128/150\n", + "768/768 [==============================] - 0s 172us/step - loss: 0.4721 - acc: 0.7786\n", + "Epoch 129/150\n", + "768/768 [==============================] - 0s 176us/step - loss: 0.4813 - acc: 0.7721\n", + "Epoch 130/150\n", + "768/768 [==============================] - 0s 172us/step - loss: 0.4749 - acc: 0.7865\n", + "Epoch 131/150\n", + "768/768 [==============================] - 0s 172us/step - loss: 0.4815 - acc: 0.7773\n", + "Epoch 132/150\n", + "768/768 [==============================] - 0s 174us/step - loss: 0.4805 - acc: 0.7839\n", + "Epoch 133/150\n", + "768/768 [==============================] - 0s 171us/step - loss: 0.4839 - acc: 0.7721\n", + "Epoch 134/150\n", + "768/768 [==============================] - 0s 174us/step - loss: 0.4837 - acc: 0.7734\n", + "Epoch 135/150\n", + "768/768 [==============================] - 0s 177us/step - loss: 0.4780 - acc: 0.7773\n", + "Epoch 136/150\n", + "768/768 [==============================] - 0s 172us/step - loss: 0.4739 - acc: 0.7786\n", + "Epoch 137/150\n", + "768/768 [==============================] - 0s 173us/step - loss: 0.4673 - acc: 0.7786\n", + "Epoch 138/150\n", + "768/768 [==============================] - 0s 172us/step - loss: 0.4806 - acc: 0.7839\n", + "Epoch 139/150\n", + "768/768 [==============================] - 0s 177us/step - loss: 0.4656 - acc: 0.7917\n", + "Epoch 140/150\n", + "768/768 [==============================] - 0s 172us/step - loss: 0.4834 - acc: 0.7773\n", + "Epoch 141/150\n", + "768/768 [==============================] - 0s 172us/step - loss: 0.4743 - acc: 0.7839\n", + "Epoch 142/150\n", + "768/768 [==============================] - 0s 176us/step - loss: 0.4836 - acc: 0.7708\n", + "Epoch 143/150\n", + "768/768 [==============================] - 0s 310us/step - loss: 0.4769 - acc: 0.7734\n", + "Epoch 144/150\n", + "768/768 [==============================] - 0s 333us/step - loss: 0.4772 - acc: 0.7747\n", + "Epoch 145/150\n", + "768/768 [==============================] - 0s 245us/step - loss: 0.4890 - acc: 0.7643\n", + "Epoch 146/150\n", + "768/768 [==============================] - 0s 229us/step - loss: 0.4942 - acc: 0.7669\n", + "Epoch 147/150\n", + "768/768 [==============================] - 0s 194us/step - loss: 0.4846 - acc: 0.7773\n", + "Epoch 148/150\n", + "768/768 [==============================] - 0s 180us/step - loss: 0.4715 - acc: 0.7773\n", + "Epoch 149/150\n", + "768/768 [==============================] - 0s 181us/step - loss: 0.4752 - acc: 0.7695\n", + "Epoch 150/150\n", + "768/768 [==============================] - 0s 184us/step - loss: 0.4776 - acc: 0.7721\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Fit the model\n", + "model.fit(X, Y, epochs=150, batch_size=10)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "768/768 [==============================] - 0s 94us/step\n", + "\n", + "acc: 79.82%\n" + ] + } + ], + "source": [ + "# evaluate the model\n", + "scores = model.evaluate(X, Y)\n", + "print(\"\\n%s: %.2f%%\" % (model.metrics_names[1], scores[1]*100))" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/150\n", + "768/768 [==============================] - 1s 2ms/step - loss: 3.7104 - acc: 0.5977\n", + "Epoch 2/150\n", + "768/768 [==============================] - 0s 411us/step - loss: 0.9374 - acc: 0.5938\n", + "Epoch 3/150\n", + "768/768 [==============================] - 0s 250us/step - loss: 0.7478 - acc: 0.6445\n", + "Epoch 4/150\n", + "768/768 [==============================] - 0s 421us/step - loss: 0.7120 - acc: 0.6549\n", + "Epoch 5/150\n", + "768/768 [==============================] - 0s 333us/step - loss: 0.6839 - acc: 0.6667\n", + "Epoch 6/150\n", + "768/768 [==============================] - 0s 201us/step - loss: 0.6520 - acc: 0.6771\n", + "Epoch 7/150\n", + "768/768 [==============================] - 0s 174us/step - loss: 0.6505 - acc: 0.6810\n", + "Epoch 8/150\n", + "768/768 [==============================] - 0s 188us/step - loss: 0.6392 - acc: 0.6862\n", + "Epoch 9/150\n", + "768/768 [==============================] - 0s 211us/step - loss: 0.6249 - acc: 0.6953\n", + "Epoch 10/150\n", + "768/768 [==============================] - 0s 172us/step - loss: 0.6308 - acc: 0.6784\n", + "Epoch 11/150\n", + "768/768 [==============================] - 0s 178us/step - loss: 0.6498 - acc: 0.6719\n", + "Epoch 12/150\n", + "768/768 [==============================] - 0s 174us/step - loss: 0.6399 - acc: 0.6758\n", + "Epoch 13/150\n", + "768/768 [==============================] - 0s 197us/step - loss: 0.6252 - acc: 0.6745\n", + "Epoch 14/150\n", + "768/768 [==============================] - 0s 185us/step - loss: 0.6177 - acc: 0.7005\n", + "Epoch 15/150\n", + "768/768 [==============================] - 0s 260us/step - loss: 0.6019 - acc: 0.6953\n", + "Epoch 16/150\n", + "768/768 [==============================] - 0s 180us/step - loss: 0.5883 - acc: 0.7005\n", + "Epoch 17/150\n", + "768/768 [==============================] - 0s 171us/step - loss: 0.5838 - acc: 0.6992\n", + "Epoch 18/150\n", + "768/768 [==============================] - 0s 182us/step - loss: 0.6003 - acc: 0.6875\n", + "Epoch 19/150\n", + "768/768 [==============================] - 0s 313us/step - loss: 0.5797 - acc: 0.7135\n", + "Epoch 20/150\n", + "768/768 [==============================] - 0s 305us/step - loss: 0.5794 - acc: 0.7227\n", + "Epoch 21/150\n", + "768/768 [==============================] - 0s 264us/step - loss: 0.5690 - acc: 0.7148\n", + "Epoch 22/150\n", + "768/768 [==============================] - 0s 177us/step - loss: 0.5812 - acc: 0.7005\n", + "Epoch 23/150\n", + "768/768 [==============================] - 0s 171us/step - loss: 0.5739 - acc: 0.7135\n", + "Epoch 24/150\n", + "768/768 [==============================] - 0s 172us/step - loss: 0.5681 - acc: 0.7331\n", + "Epoch 25/150\n", + "768/768 [==============================] - 0s 173us/step - loss: 0.5573 - acc: 0.7357\n", + "Epoch 26/150\n", + "768/768 [==============================] - 0s 172us/step - loss: 0.5707 - acc: 0.7018\n", + "Epoch 27/150\n", + "768/768 [==============================] - 0s 171us/step - loss: 0.5557 - acc: 0.7253\n", + "Epoch 28/150\n", + "768/768 [==============================] - 0s 173us/step - loss: 0.5553 - acc: 0.7318\n", + "Epoch 29/150\n", + "768/768 [==============================] - 0s 188us/step - loss: 0.5738 - acc: 0.7201\n", + "Epoch 30/150\n", + "768/768 [==============================] - 0s 172us/step - loss: 0.5611 - acc: 0.7227\n", + "Epoch 31/150\n", + "768/768 [==============================] - 0s 172us/step - loss: 0.5681 - acc: 0.7174\n", + "Epoch 32/150\n", + "768/768 [==============================] - 0s 177us/step - loss: 0.5637 - acc: 0.7161\n", + "Epoch 33/150\n", + "768/768 [==============================] - 0s 174us/step - loss: 0.5515 - acc: 0.7214\n", + "Epoch 34/150\n", + "768/768 [==============================] - 0s 173us/step - loss: 0.5510 - acc: 0.7331\n", + "Epoch 35/150\n", + "768/768 [==============================] - 0s 178us/step - loss: 0.5508 - acc: 0.7240\n", + "Epoch 36/150\n", + "768/768 [==============================] - 0s 335us/step - loss: 0.5597 - acc: 0.7057\n", + "Epoch 37/150\n", + "768/768 [==============================] - 0s 220us/step - loss: 0.5371 - acc: 0.7331\n", + "Epoch 38/150\n", + "768/768 [==============================] - 0s 177us/step - loss: 0.5406 - acc: 0.7227\n", + "Epoch 39/150\n", + "768/768 [==============================] - 0s 171us/step - loss: 0.5447 - acc: 0.7214\n", + "Epoch 40/150\n", + "768/768 [==============================] - 0s 174us/step - loss: 0.5439 - acc: 0.7240\n", + "Epoch 41/150\n", + "768/768 [==============================] - 0s 290us/step - loss: 0.5435 - acc: 0.7357\n", + "Epoch 42/150\n", + "768/768 [==============================] - 0s 223us/step - loss: 0.5363 - acc: 0.7370\n", + "Epoch 43/150\n", + "768/768 [==============================] - 0s 210us/step - loss: 0.5320 - acc: 0.7513\n", + "Epoch 44/150\n", + "768/768 [==============================] - 0s 174us/step - loss: 0.5325 - acc: 0.7396\n", + "Epoch 45/150\n", + "768/768 [==============================] - 0s 174us/step - loss: 0.5308 - acc: 0.7539\n", + "Epoch 46/150\n", + "768/768 [==============================] - 0s 210us/step - loss: 0.5292 - acc: 0.7500\n", + "Epoch 47/150\n", + "768/768 [==============================] - 0s 197us/step - loss: 0.5329 - acc: 0.7357\n", + "Epoch 48/150\n", + "768/768 [==============================] - 0s 220us/step - loss: 0.5326 - acc: 0.7448\n", + "Epoch 49/150\n", + "768/768 [==============================] - 0s 276us/step - loss: 0.5327 - acc: 0.7500\n", + "Epoch 50/150\n", + "768/768 [==============================] - 0s 182us/step - loss: 0.5270 - acc: 0.7396\n", + "Epoch 51/150\n", + "768/768 [==============================] - 0s 276us/step - loss: 0.5271 - acc: 0.7500\n", + "Epoch 52/150\n", + "768/768 [==============================] - 0s 346us/step - loss: 0.5286 - acc: 0.7448\n", + "Epoch 53/150\n", + "768/768 [==============================] - 0s 240us/step - loss: 0.5378 - acc: 0.7435\n", + "Epoch 54/150\n", + "768/768 [==============================] - 0s 174us/step - loss: 0.5365 - acc: 0.7318\n", + "Epoch 55/150\n", + "768/768 [==============================] - 0s 172us/step - loss: 0.5221 - acc: 0.7500\n", + "Epoch 56/150\n", + "768/768 [==============================] - 0s 172us/step - loss: 0.5292 - acc: 0.7409\n", + "Epoch 57/150\n", + "768/768 [==============================] - 0s 309us/step - loss: 0.5305 - acc: 0.7370\n", + "Epoch 58/150\n", + "768/768 [==============================] - 0s 331us/step - loss: 0.5231 - acc: 0.7513\n", + "Epoch 59/150\n", + "768/768 [==============================] - 0s 302us/step - loss: 0.5121 - acc: 0.7630\n", + "Epoch 60/150\n", + "768/768 [==============================] - 0s 357us/step - loss: 0.5331 - acc: 0.7331\n", + "Epoch 61/150\n", + "768/768 [==============================] - 0s 448us/step - loss: 0.5277 - acc: 0.7383\n", + "Epoch 62/150\n", + "768/768 [==============================] - 0s 290us/step - loss: 0.5173 - acc: 0.7565\n", + "Epoch 63/150\n", + "768/768 [==============================] - 0s 258us/step - loss: 0.5453 - acc: 0.7331\n", + "Epoch 64/150\n", + "768/768 [==============================] - 0s 241us/step - loss: 0.5307 - acc: 0.7448\n", + "Epoch 65/150\n", + "768/768 [==============================] - 0s 228us/step - loss: 0.5197 - acc: 0.7474\n", + "Epoch 66/150\n", + "768/768 [==============================] - 0s 257us/step - loss: 0.5057 - acc: 0.7500\n", + "Epoch 67/150\n", + "768/768 [==============================] - 0s 247us/step - loss: 0.5159 - acc: 0.7422\n", + "Epoch 68/150\n", + "768/768 [==============================] - 0s 212us/step - loss: 0.5139 - acc: 0.7565\n", + "Epoch 69/150\n", + "768/768 [==============================] - 0s 257us/step - loss: 0.5119 - acc: 0.7513\n", + "Epoch 70/150\n", + "768/768 [==============================] - 0s 266us/step - loss: 0.5364 - acc: 0.7188\n", + "Epoch 71/150\n", + "768/768 [==============================] - 0s 233us/step - loss: 0.5171 - acc: 0.7396\n", + "Epoch 72/150\n", + "768/768 [==============================] - 0s 241us/step - loss: 0.5171 - acc: 0.7513\n", + "Epoch 73/150\n", + "768/768 [==============================] - 0s 246us/step - loss: 0.5161 - acc: 0.7500\n", + "Epoch 74/150\n", + "768/768 [==============================] - 0s 224us/step - loss: 0.5096 - acc: 0.7604\n", + "Epoch 75/150\n", + "768/768 [==============================] - 0s 259us/step - loss: 0.5089 - acc: 0.7578\n", + "Epoch 76/150\n", + "768/768 [==============================] - 0s 228us/step - loss: 0.5100 - acc: 0.7526\n", + "Epoch 77/150\n", + "768/768 [==============================] - 0s 238us/step - loss: 0.5152 - acc: 0.7604\n", + "Epoch 78/150\n", + "768/768 [==============================] - 0s 297us/step - loss: 0.5117 - acc: 0.7500\n", + "Epoch 79/150\n", + "768/768 [==============================] - 0s 267us/step - loss: 0.5129 - acc: 0.7448\n", + "Epoch 80/150\n", + "768/768 [==============================] - 0s 225us/step - loss: 0.5107 - acc: 0.7578\n", + "Epoch 81/150\n", + "768/768 [==============================] - 0s 266us/step - loss: 0.5062 - acc: 0.7669\n", + "Epoch 82/150\n", + "768/768 [==============================] - 0s 270us/step - loss: 0.5038 - acc: 0.7539\n", + "Epoch 83/150\n", + "768/768 [==============================] - 0s 241us/step - loss: 0.4990 - acc: 0.7591\n", + "Epoch 84/150\n", + "768/768 [==============================] - 0s 258us/step - loss: 0.4976 - acc: 0.7591\n", + "Epoch 85/150\n", + "768/768 [==============================] - 0s 237us/step - loss: 0.5046 - acc: 0.7487\n", + "Epoch 86/150\n", + "768/768 [==============================] - 0s 228us/step - loss: 0.5052 - acc: 0.7487\n", + "Epoch 87/150\n", + "768/768 [==============================] - 0s 232us/step - loss: 0.4980 - acc: 0.7565\n", + "Epoch 88/150\n", + "768/768 [==============================] - 0s 309us/step - loss: 0.5011 - acc: 0.7604\n", + "Epoch 89/150\n", + "768/768 [==============================] - 0s 281us/step - loss: 0.5046 - acc: 0.7734\n", + "Epoch 90/150\n", + "768/768 [==============================] - 0s 220us/step - loss: 0.5077 - acc: 0.7552\n", + "Epoch 91/150\n", + "768/768 [==============================] - 0s 236us/step - loss: 0.5025 - acc: 0.7565\n", + "Epoch 92/150\n", + "768/768 [==============================] - 0s 227us/step - loss: 0.5046 - acc: 0.7448\n", + "Epoch 93/150\n", + "768/768 [==============================] - 0s 238us/step - loss: 0.4970 - acc: 0.7721\n", + "Epoch 94/150\n", + "768/768 [==============================] - 0s 230us/step - loss: 0.4990 - acc: 0.7656\n", + "Epoch 95/150\n", + "768/768 [==============================] - 0s 251us/step - loss: 0.5025 - acc: 0.7500\n", + "Epoch 96/150\n", + "768/768 [==============================] - 0s 236us/step - loss: 0.4905 - acc: 0.7695\n", + "Epoch 97/150\n", + "768/768 [==============================] - 0s 233us/step - loss: 0.4975 - acc: 0.7747\n", + "Epoch 98/150\n", + "768/768 [==============================] - 0s 260us/step - loss: 0.4887 - acc: 0.7656\n", + "Epoch 99/150\n", + "768/768 [==============================] - 0s 234us/step - loss: 0.4900 - acc: 0.7721\n", + "Epoch 100/150\n", + "768/768 [==============================] - 0s 216us/step - loss: 0.4846 - acc: 0.7760\n", + "Epoch 101/150\n", + "768/768 [==============================] - 0s 201us/step - loss: 0.4900 - acc: 0.7773\n", + "Epoch 102/150\n", + "768/768 [==============================] - 0s 221us/step - loss: 0.4988 - acc: 0.7552\n", + "Epoch 103/150\n", + "768/768 [==============================] - 0s 232us/step - loss: 0.4997 - acc: 0.7565\n", + "Epoch 104/150\n", + "768/768 [==============================] - 0s 246us/step - loss: 0.4911 - acc: 0.7865\n", + "Epoch 105/150\n", + "768/768 [==============================] - 0s 249us/step - loss: 0.5291 - acc: 0.7487\n", + "Epoch 106/150\n", + "768/768 [==============================] - 0s 233us/step - loss: 0.4943 - acc: 0.7747\n", + "Epoch 107/150\n", + "768/768 [==============================] - 0s 206us/step - loss: 0.4912 - acc: 0.7721\n", + "Epoch 108/150\n", + "768/768 [==============================] - 0s 225us/step - loss: 0.5003 - acc: 0.7630\n", + "Epoch 109/150\n", + "768/768 [==============================] - 0s 305us/step - loss: 0.4852 - acc: 0.7669\n", + "Epoch 110/150\n", + "768/768 [==============================] - 0s 193us/step - loss: 0.4900 - acc: 0.7656\n", + "Epoch 111/150\n", + "768/768 [==============================] - 0s 250us/step - loss: 0.4838 - acc: 0.7786\n", + "Epoch 112/150\n", + "768/768 [==============================] - 0s 241us/step - loss: 0.4958 - acc: 0.7708\n", + "Epoch 113/150\n", + "768/768 [==============================] - 0s 240us/step - loss: 0.4955 - acc: 0.7604\n", + "Epoch 114/150\n", + "768/768 [==============================] - 0s 227us/step - loss: 0.4927 - acc: 0.7604\n", + "Epoch 115/150\n", + "768/768 [==============================] - 0s 199us/step - loss: 0.4912 - acc: 0.7695\n", + "Epoch 116/150\n", + "768/768 [==============================] - 0s 207us/step - loss: 0.4928 - acc: 0.7721\n", + "Epoch 117/150\n", + "768/768 [==============================] - 0s 199us/step - loss: 0.4901 - acc: 0.7604\n", + "Epoch 118/150\n", + "768/768 [==============================] - 0s 186us/step - loss: 0.4889 - acc: 0.7786\n", + "Epoch 119/150\n", + "768/768 [==============================] - 0s 223us/step - loss: 0.4811 - acc: 0.7630\n", + "Epoch 120/150\n", + "768/768 [==============================] - 0s 225us/step - loss: 0.4934 - acc: 0.7721\n", + "Epoch 121/150\n", + "768/768 [==============================] - 0s 185us/step - loss: 0.4924 - acc: 0.7734\n", + "Epoch 122/150\n", + "768/768 [==============================] - 0s 216us/step - loss: 0.4843 - acc: 0.7826\n", + "Epoch 123/150\n", + "768/768 [==============================] - 0s 198us/step - loss: 0.4804 - acc: 0.7682\n", + "Epoch 124/150\n", + "768/768 [==============================] - 0s 211us/step - loss: 0.4831 - acc: 0.7760\n", + "Epoch 125/150\n", + "768/768 [==============================] - 0s 199us/step - loss: 0.4878 - acc: 0.7812\n", + "Epoch 126/150\n", + "768/768 [==============================] - 0s 227us/step - loss: 0.4795 - acc: 0.7826\n", + "Epoch 127/150\n", + "768/768 [==============================] - 0s 199us/step - loss: 0.4900 - acc: 0.7682\n", + "Epoch 128/150\n", + "768/768 [==============================] - 0s 211us/step - loss: 0.4723 - acc: 0.7721\n", + "Epoch 129/150\n", + "768/768 [==============================] - 0s 207us/step - loss: 0.4819 - acc: 0.7695\n", + "Epoch 130/150\n", + "768/768 [==============================] - 0s 219us/step - loss: 0.4749 - acc: 0.7878\n", + "Epoch 131/150\n", + "768/768 [==============================] - 0s 227us/step - loss: 0.4827 - acc: 0.7656\n", + "Epoch 132/150\n", + "768/768 [==============================] - 0s 228us/step - loss: 0.4809 - acc: 0.7839\n", + "Epoch 133/150\n", + "768/768 [==============================] - 0s 216us/step - loss: 0.4828 - acc: 0.7708\n", + "Epoch 134/150\n", + "768/768 [==============================] - 0s 210us/step - loss: 0.4847 - acc: 0.7747\n", + "Epoch 135/150\n", + "768/768 [==============================] - 0s 219us/step - loss: 0.4776 - acc: 0.7747\n", + "Epoch 136/150\n", + "768/768 [==============================] - 0s 201us/step - loss: 0.4738 - acc: 0.7786\n", + "Epoch 137/150\n", + "768/768 [==============================] - 0s 215us/step - loss: 0.4691 - acc: 0.7773\n", + "Epoch 138/150\n", + "768/768 [==============================] - 0s 214us/step - loss: 0.4804 - acc: 0.7812\n", + "Epoch 139/150\n", + "768/768 [==============================] - 0s 228us/step - loss: 0.4651 - acc: 0.7930\n", + "Epoch 140/150\n", + "768/768 [==============================] - 0s 199us/step - loss: 0.4825 - acc: 0.7826\n", + "Epoch 141/150\n", + "768/768 [==============================] - 0s 214us/step - loss: 0.4743 - acc: 0.7799\n", + "Epoch 142/150\n", + "768/768 [==============================] - 0s 249us/step - loss: 0.4843 - acc: 0.7721\n", + "Epoch 143/150\n", + "768/768 [==============================] - 0s 193us/step - loss: 0.4758 - acc: 0.7734\n", + "Epoch 144/150\n", + "768/768 [==============================] - 0s 214us/step - loss: 0.4767 - acc: 0.7734\n", + "Epoch 145/150\n", + "768/768 [==============================] - 0s 220us/step - loss: 0.4900 - acc: 0.7630\n", + "Epoch 146/150\n", + "768/768 [==============================] - 0s 216us/step - loss: 0.4935 - acc: 0.7669\n", + "Epoch 147/150\n", + "768/768 [==============================] - 0s 221us/step - loss: 0.4839 - acc: 0.7747\n", + "Epoch 148/150\n", + "768/768 [==============================] - 0s 220us/step - loss: 0.4724 - acc: 0.7695\n", + "Epoch 149/150\n", + "768/768 [==============================] - 0s 221us/step - loss: 0.4742 - acc: 0.7682\n", + "Epoch 150/150\n", + "768/768 [==============================] - 0s 233us/step - loss: 0.4776 - acc: 0.7695\n", + "768/768 [==============================] - 0s 134us/step\n", + "\n", + "acc: 79.43%\n" + ] + } + ], + "source": [ + "#all in one cell \n", + "# Create your first MLP in Keras\n", + "from keras.models import Sequential\n", + "from keras.layers import Dense\n", + "import numpy\n", + "# fix random seed for reproducibility\n", + "numpy.random.seed(7)\n", + "# load pima indians dataset\n", + "dataset = numpy.loadtxt(\"pima-indians-diabetes.data\", delimiter=\",\")\n", + "# split into input (X) and output (Y) variables\n", + "X = dataset[:,0:8]\n", + "Y = dataset[:,8]\n", + "# create model\n", + "model = Sequential()\n", + "model.add(Dense(12, input_dim=8, activation='relu'))\n", + "model.add(Dense(8, activation='relu'))\n", + "model.add(Dense(1, activation='sigmoid'))\n", + "# Compile model\n", + "model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])\n", + "# Fit the model\n", + "model.fit(X, Y, epochs=150, batch_size=10)\n", + "# evaluate the model\n", + "scores = model.evaluate(X, Y)\n", + "print(\"\\n%s: %.2f%%\" % (model.metrics_names[1], scores[1]*100))" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/150\n", + " - 1s - loss: 0.6771 - acc: 0.6510\n", + "Epoch 2/150\n", + " - 0s - loss: 0.6586 - acc: 0.6510\n", + "Epoch 3/150\n", + " - 0s - loss: 0.6470 - acc: 0.6510\n", + "Epoch 4/150\n", + " - 0s - loss: 0.6393 - acc: 0.6510\n", + "Epoch 5/150\n", + " - 0s - loss: 0.6320 - acc: 0.6510\n", + "Epoch 6/150\n", + " - 0s - loss: 0.6188 - acc: 0.6510\n", + "Epoch 7/150\n", + " - 0s - loss: 0.6194 - acc: 0.6510\n", + "Epoch 8/150\n", + " - 0s - loss: 0.6135 - acc: 0.6510\n", + "Epoch 9/150\n", + " - 0s - loss: 0.6087 - acc: 0.6510\n", + "Epoch 10/150\n", + " - 0s - loss: 0.6164 - acc: 0.6510\n", + "Epoch 11/150\n", + " - 0s - loss: 0.6052 - acc: 0.6510\n", + "Epoch 12/150\n", + " - 0s - loss: 0.6034 - acc: 0.6510\n", + "Epoch 13/150\n", + " - 0s - loss: 0.6004 - acc: 0.6510\n", + "Epoch 14/150\n", + " - 0s - loss: 0.6033 - acc: 0.6510\n", + "Epoch 15/150\n", + " - 0s - loss: 0.5989 - acc: 0.6510\n", + "Epoch 16/150\n", + " - 0s - loss: 0.6000 - acc: 0.6510\n", + "Epoch 17/150\n", + " - 0s - loss: 0.5995 - acc: 0.6510\n", + "Epoch 18/150\n", + " - 0s - loss: 0.6007 - acc: 0.6510\n", + "Epoch 19/150\n", + " - 0s - loss: 0.5972 - acc: 0.6510\n", + "Epoch 20/150\n", + " - 0s - loss: 0.5982 - acc: 0.6510\n", + "Epoch 21/150\n", + " - 0s - loss: 0.5950 - acc: 0.6510\n", + "Epoch 22/150\n", + " - 0s - loss: 0.5936 - acc: 0.6510\n", + "Epoch 23/150\n", + " - 0s - loss: 0.5930 - acc: 0.6510\n", + "Epoch 24/150\n", + " - 0s - loss: 0.5989 - acc: 0.6510\n", + "Epoch 25/150\n", + " - 0s - loss: 0.5956 - acc: 0.6510\n", + "Epoch 26/150\n", + " - 0s - loss: 0.6006 - acc: 0.6510\n", + "Epoch 27/150\n", + " - 0s - loss: 0.5949 - acc: 0.6510\n", + "Epoch 28/150\n", + " - 0s - loss: 0.5905 - acc: 0.6510\n", + "Epoch 29/150\n", + " - 0s - loss: 0.5927 - acc: 0.6510\n", + "Epoch 30/150\n", + " - 0s - loss: 0.5909 - acc: 0.6510\n", + "Epoch 31/150\n", + " - 0s - loss: 0.5900 - acc: 0.6510\n", + "Epoch 32/150\n", + " - 0s - loss: 0.5903 - acc: 0.6510\n", + "Epoch 33/150\n", + " - 0s - loss: 0.5844 - acc: 0.6510\n", + "Epoch 34/150\n", + " - 0s - loss: 0.5894 - acc: 0.6510\n", + "Epoch 35/150\n", + " - 0s - loss: 0.5916 - acc: 0.6510\n", + "Epoch 36/150\n", + " - 0s - loss: 0.5834 - acc: 0.6510\n", + "Epoch 37/150\n", + " - 0s - loss: 0.5824 - acc: 0.6510\n", + "Epoch 38/150\n", + " - 0s - loss: 0.5923 - acc: 0.6510\n", + "Epoch 39/150\n", + " - 0s - loss: 0.5833 - acc: 0.6471\n", + "Epoch 40/150\n", + " - 0s - loss: 0.5869 - acc: 0.6693\n", + "Epoch 41/150\n", + " - 0s - loss: 0.5820 - acc: 0.6953\n", + "Epoch 42/150\n", + " - 0s - loss: 0.5807 - acc: 0.7070\n", + "Epoch 43/150\n", + " - 0s - loss: 0.5787 - acc: 0.7122\n", + "Epoch 44/150\n", + " - 0s - loss: 0.5865 - acc: 0.7031\n", + "Epoch 45/150\n", + " - 0s - loss: 0.5788 - acc: 0.7096\n", + "Epoch 46/150\n", + " - 0s - loss: 0.5774 - acc: 0.7018\n", + "Epoch 47/150\n", + " - 0s - loss: 0.5782 - acc: 0.7148\n", + "Epoch 48/150\n", + " - 0s - loss: 0.5752 - acc: 0.7070\n", + "Epoch 49/150\n", + " - 0s - loss: 0.5744 - acc: 0.7122\n", + "Epoch 50/150\n", + " - 0s - loss: 0.5740 - acc: 0.7174\n", + "Epoch 51/150\n", + " - 0s - loss: 0.5731 - acc: 0.7174\n", + "Epoch 52/150\n", + " - 0s - loss: 0.5706 - acc: 0.7135\n", + "Epoch 53/150\n", + " - 0s - loss: 0.5729 - acc: 0.7122\n", + "Epoch 54/150\n", + " - 0s - loss: 0.5707 - acc: 0.7096\n", + "Epoch 55/150\n", + " - 0s - loss: 0.5728 - acc: 0.7057\n", + "Epoch 56/150\n", + " - 0s - loss: 0.5710 - acc: 0.7109\n", + "Epoch 57/150\n", + " - 0s - loss: 0.5678 - acc: 0.7083\n", + "Epoch 58/150\n", + " - 0s - loss: 0.5725 - acc: 0.7096\n", + "Epoch 59/150\n", + " - 0s - loss: 0.5668 - acc: 0.7044\n", + "Epoch 60/150\n", + " - 0s - loss: 0.5690 - acc: 0.7057\n", + "Epoch 61/150\n", + " - 0s - loss: 0.5662 - acc: 0.7083\n", + "Epoch 62/150\n", + " - 0s - loss: 0.5680 - acc: 0.7201\n", + "Epoch 63/150\n", + " - 0s - loss: 0.5712 - acc: 0.7096\n", + "Epoch 64/150\n", + " - 0s - loss: 0.5658 - acc: 0.7174\n", + "Epoch 65/150\n", + " - 0s - loss: 0.5630 - acc: 0.7109\n", + "Epoch 66/150\n", + " - 0s - loss: 0.5588 - acc: 0.7135\n", + "Epoch 67/150\n", + " - 0s - loss: 0.5586 - acc: 0.7135\n", + "Epoch 68/150\n", + " - 0s - loss: 0.5603 - acc: 0.7083\n", + "Epoch 69/150\n", + " - 0s - loss: 0.5559 - acc: 0.7279\n", + "Epoch 70/150\n", + " - 0s - loss: 0.5609 - acc: 0.7109\n", + "Epoch 71/150\n", + " - 0s - loss: 0.5571 - acc: 0.7044\n", + "Epoch 72/150\n", + " - 0s - loss: 0.5556 - acc: 0.7096\n", + "Epoch 73/150\n", + " - 0s - loss: 0.5501 - acc: 0.7148\n", + "Epoch 74/150\n", + " - 0s - loss: 0.5577 - acc: 0.6992\n", + "Epoch 75/150\n", + " - 0s - loss: 0.5540 - acc: 0.7201\n", + "Epoch 76/150\n", + " - 0s - loss: 0.5508 - acc: 0.7227\n", + "Epoch 77/150\n", + " - 0s - loss: 0.5504 - acc: 0.7253\n", + "Epoch 78/150\n", + " - 0s - loss: 0.5465 - acc: 0.7292\n", + "Epoch 79/150\n", + " - 0s - loss: 0.5498 - acc: 0.7174\n", + "Epoch 80/150\n", + " - 0s - loss: 0.5448 - acc: 0.7266\n", + "Epoch 81/150\n", + " - 0s - loss: 0.5427 - acc: 0.7305\n", + "Epoch 82/150\n", + " - 0s - loss: 0.5529 - acc: 0.7174\n", + "Epoch 83/150\n", + " - 0s - loss: 0.5524 - acc: 0.7109\n", + "Epoch 84/150\n", + " - 0s - loss: 0.5451 - acc: 0.7187\n", + "Epoch 85/150\n", + " - 0s - loss: 0.5465 - acc: 0.7201\n", + "Epoch 86/150\n", + " - 0s - loss: 0.5498 - acc: 0.7266\n", + "Epoch 87/150\n", + " - 0s - loss: 0.5405 - acc: 0.7253\n", + "Epoch 88/150\n", + " - 0s - loss: 0.5399 - acc: 0.7201\n", + "Epoch 89/150\n", + " - 0s - loss: 0.5583 - acc: 0.7318\n", + "Epoch 90/150\n", + " - 0s - loss: 0.5416 - acc: 0.7253\n", + "Epoch 91/150\n", + " - 0s - loss: 0.5391 - acc: 0.7266\n", + "Epoch 92/150\n", + " - 0s - loss: 0.5405 - acc: 0.7266\n", + "Epoch 93/150\n", + " - 0s - loss: 0.5402 - acc: 0.7174\n", + "Epoch 94/150\n", + " - 0s - loss: 0.5392 - acc: 0.7357\n", + "Epoch 95/150\n", + " - 0s - loss: 0.5359 - acc: 0.7214\n", + "Epoch 96/150\n", + " - 0s - loss: 0.5413 - acc: 0.7357\n", + "Epoch 97/150\n", + " - 0s - loss: 0.5401 - acc: 0.7266\n", + "Epoch 98/150\n", + " - 0s - loss: 0.5332 - acc: 0.7305\n", + "Epoch 99/150\n", + " - 0s - loss: 0.5274 - acc: 0.7409\n", + "Epoch 100/150\n", + " - 0s - loss: 0.5339 - acc: 0.7279\n", + "Epoch 101/150\n", + " - 0s - loss: 0.5313 - acc: 0.7279\n", + "Epoch 102/150\n", + " - 0s - loss: 0.5323 - acc: 0.7409\n", + "Epoch 103/150\n", + " - 0s - loss: 0.5404 - acc: 0.7227\n", + "Epoch 104/150\n", + " - 0s - loss: 0.5351 - acc: 0.7344\n", + "Epoch 105/150\n", + " - 0s - loss: 0.5287 - acc: 0.7318\n", + "Epoch 106/150\n", + " - 0s - loss: 0.5291 - acc: 0.7305\n", + "Epoch 107/150\n", + " - 0s - loss: 0.5335 - acc: 0.7409\n", + "Epoch 108/150\n", + " - 0s - loss: 0.5314 - acc: 0.7331\n", + "Epoch 109/150\n", + " - 0s - loss: 0.5269 - acc: 0.7383\n", + "Epoch 110/150\n", + " - 0s - loss: 0.5249 - acc: 0.7422\n", + "Epoch 111/150\n", + " - 0s - loss: 0.5323 - acc: 0.7383\n", + "Epoch 112/150\n", + " - 0s - loss: 0.5241 - acc: 0.7396\n", + "Epoch 113/150\n", + " - 0s - loss: 0.5236 - acc: 0.7409\n", + "Epoch 114/150\n", + " - 0s - loss: 0.5257 - acc: 0.7435\n", + "Epoch 115/150\n", + " - 0s - loss: 0.5204 - acc: 0.7435\n", + "Epoch 116/150\n", + " - 0s - loss: 0.5213 - acc: 0.7422\n", + "Epoch 117/150\n", + " - 0s - loss: 0.5189 - acc: 0.7461\n", + "Epoch 118/150\n", + " - 0s - loss: 0.5240 - acc: 0.7435\n", + "Epoch 119/150\n", + " - 0s - loss: 0.5125 - acc: 0.7448\n", + "Epoch 120/150\n", + " - 0s - loss: 0.5154 - acc: 0.7435\n", + "Epoch 121/150\n", + " - 0s - loss: 0.5159 - acc: 0.7565\n", + "Epoch 122/150\n", + " - 0s - loss: 0.5131 - acc: 0.7578\n", + "Epoch 123/150\n", + " - 0s - loss: 0.5104 - acc: 0.7474\n", + "Epoch 124/150\n", + " - 0s - loss: 0.5059 - acc: 0.7617\n", + "Epoch 125/150\n", + " - 0s - loss: 0.5067 - acc: 0.7448\n", + "Epoch 126/150\n", + " - 0s - loss: 0.5088 - acc: 0.7227\n", + "Epoch 127/150\n", + " - 0s - loss: 0.5109 - acc: 0.7539\n", + "Epoch 128/150\n", + " - 0s - loss: 0.5037 - acc: 0.7708\n", + "Epoch 129/150\n", + " - 0s - loss: 0.5129 - acc: 0.7591\n", + "Epoch 130/150\n", + " - 0s - loss: 0.4990 - acc: 0.7656\n", + "Epoch 131/150\n", + " - 0s - loss: 0.4970 - acc: 0.7617\n", + "Epoch 132/150\n", + " - 0s - loss: 0.4951 - acc: 0.7656\n", + "Epoch 133/150\n", + " - 0s - loss: 0.5020 - acc: 0.7565\n", + "Epoch 134/150\n", + " - 0s - loss: 0.5000 - acc: 0.7721\n", + "Epoch 135/150\n", + " - 0s - loss: 0.4927 - acc: 0.7617\n", + "Epoch 136/150\n", + " - 0s - loss: 0.4975 - acc: 0.7578\n", + "Epoch 137/150\n", + " - 0s - loss: 0.5046 - acc: 0.7643\n", + "Epoch 138/150\n", + " - 0s - loss: 0.4963 - acc: 0.7643\n", + "Epoch 139/150\n", + " - 0s - loss: 0.4869 - acc: 0.7643\n", + "Epoch 140/150\n", + " - 0s - loss: 0.4884 - acc: 0.7591\n", + "Epoch 141/150\n", + " - 0s - loss: 0.4879 - acc: 0.7630\n", + "Epoch 142/150\n", + " - 0s - loss: 0.4911 - acc: 0.7617\n", + "Epoch 143/150\n", + " - 0s - loss: 0.4841 - acc: 0.7721\n", + "Epoch 144/150\n", + " - 0s - loss: 0.4856 - acc: 0.7708\n", + "Epoch 145/150\n", + " - 0s - loss: 0.4869 - acc: 0.7760\n", + "Epoch 146/150\n", + " - 0s - loss: 0.4883 - acc: 0.7682\n", + "Epoch 147/150\n", + " - 0s - loss: 0.4831 - acc: 0.7747\n", + "Epoch 148/150\n", + " - 0s - loss: 0.4880 - acc: 0.7852\n", + "Epoch 149/150\n", + " - 0s - loss: 0.4779 - acc: 0.7721\n", + "Epoch 150/150\n", + " - 0s - loss: 0.4756 - acc: 0.7669\n", + "[1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0]\n" + ] + } + ], + "source": [ + "# Create first network with Keras\n", + "from keras.models import Sequential\n", + "from keras.layers import Dense\n", + "import numpy\n", + "# fix random seed for reproducibility\n", + "seed = 7\n", + "numpy.random.seed(seed)\n", + "# load pima indians dataset\n", + "dataset = numpy.loadtxt(\"pima-indians-diabetes.data\", delimiter=\",\")\n", + "# split into input (X) and output (Y) variables\n", + "X = dataset[:,0:8]\n", + "Y = dataset[:,8]\n", + "# create model\n", + "model = Sequential()\n", + "model.add(Dense(12, input_dim=8, kernel_initializer='uniform', activation='relu'))\n", + "model.add(Dense(8, kernel_initializer='uniform', activation='relu'))\n", + "model.add(Dense(1, kernel_initializer='uniform', activation='sigmoid'))\n", + "# Compile model\n", + "model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])\n", + "# Fit the model\n", + "model.fit(X, Y, epochs=150, batch_size=10, verbose=2)\n", + "# calculate predictions\n", + "predictions = model.predict(X)\n", + "# round predictions\n", + "rounded = [round(x[0]) for x in predictions]\n", + "print(rounded)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}