packages feed

circle-packing 0.1.0.4 → 0.1.0.5

raw patch · 8 files changed

+55217/−4 lines, 8 filesdep ~basePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: base

API changes (from Hackage documentation)

Files

circle-packing.cabal view
@@ -1,5 +1,5 @@ name:                circle-packing-version:             0.1.0.4+version:             0.1.0.5 synopsis:            Simple heuristic for packing discs of varying radii in a circle description:         Given a number of circles with their radii, this packags                      tries to arrange them tightly, without overlap and forming a@@ -11,6 +11,9 @@                      compared to the state of the art in research. Nevertheless                      it is simple to use and gives visually acceptable results.                      .+                     You can explore the algorithm live at+                     <http://darcs.nomeata.de/circle-packing/ghcjs/ghcjs-demo.html>.+                     .                      Contributions of better algorithms are welcome. license:             BSD3 license-file:        LICENSE@@ -32,12 +35,18 @@                      haste/haste-demo.js                      haste/haste-demo.html                      haste/helpers.js+                     ghcjs/ghcjs-demo.jsexe/out.js+                     ghcjs/ghcjs-demo.jsexe/rts.js+                     ghcjs/ghcjs-demo.jsexe/lib.js+                     ghcjs/ghcjs-demo.hs+                     ghcjs/ghcjs-demo.html + library   exposed-modules:   Optimisation.CirclePacking   build-depends:     base == 4.2.* || == 4.3.* || == 4.4.* ||                           == 4.5.* || == 4.6.* || == 4.7.* ||-                          == 4.8.*+                          == 4.8.* || == 4.9.*   ghc-options:       -Wall  source-repository head
fay/fay-demo.html view
@@ -13,7 +13,7 @@     This is a small live demonstration of the Haskell library <a href="http://hackage.haskell.org/package/circle-packing"><tt>circle-packing</tt></a> by <a href="http://www.joachim-breitner.de/">Joachim Breitner</a>:<br/>      Given a number of circles with their radii, this packags tries to arrange them tightly, without overlap and forming a large circle.<br/> Finding the optimal solution is NP hard, so only heuristics are feasible. This particular implementation is neither very good nor very fast, compared to the state of the art in research. Nevertheless it is simple to use and gives visually acceptable results.<br/>-    This particular demonstration uses the <a href="http://fay-lang.org/">Fay compiler</a> to generate JavaScript code from <a href="../Optimisation/CirclePacking.hs">the original Haskell code</a> and some <a href="fay-demo.hs">code to address the HTML5 canvas</a>, so although it runs in your browser, this <em>is</em> the Haskell code at work. There is an analougous <a href="../haste/haste-demo.html">demo based the Haste compiler</a>.+    This particular demonstration uses the <a href="http://fay-lang.org/">Fay compiler</a> to generate JavaScript code from <a href="../Optimisation/CirclePacking.hs">the original Haskell code</a> and some <a href="fay-demo.hs">code to address the HTML5 canvas</a>, so although it runs in your browser, this <em>is</em> the Haskell code at work. There is an analougous <a href="../haste/haste-demo.html">demo based the Haste compiler</a> and one using <a href="../ghcjs/ghcjs-demo.html">GHC-JS</a>.     </p>   </div>   </body>
+ ghcjs/ghcjs-demo.hs view
@@ -0,0 +1,78 @@+{-# LANGUAGE EmptyDataDecls    #-}++module Main (main) where++import Control.Applicative+import Control.Monad+import Control.Monad.Trans+import Optimisation.CirclePacking++import JavaScript.Canvas+import GHCJS.Types+import GHCJS.Foreign+import GHCJS.DOM+import GHCJS.DOM.Document+import GHCJS.DOM.Event+import GHCJS.DOM.EventM+import GHCJS.DOM.Element+import GHCJS.DOM.HTMLInputElement+import GHCJS.DOM.HTMLCanvasElement+import GHCJS.Marshal+import Control.Concurrent++-- | Main entry point.+main :: IO()+main = start++colors = ["Green","Silver", "Lime", "Gray", "Olive", "Yellow", "Maroon", "Navy", "Red", "Blue", "Purple", "Teal", "Fuchsia", "Aqua"]++start :: IO ()+start = do+  Just doc <- currentDocument+  Just input <- documentGetElementById doc "input"+  elementOnchange input (lift update)+  elementOnkeyup input (lift update)++  update++update :: IO ()+update = do+  Just doc <- currentDocument+  Just canvas' <- documentGetElementById doc "can"+  let canvas = castToHTMLCanvasElement canvas'++  w <- fromIntegral <$> htmlCanvasElementGetWidth canvas+  h <- fromIntegral <$> htmlCanvasElementGetHeight canvas++  context <- getContext . castRef =<< toJSRef canvas+  clearRect 0 0 w h context++  Just i' <- documentGetElementById doc "input"+  let i = castToHTMLInputElement i'+  value <- htmlInputElementGetValue i+  let radii = map read (words value)++  let colored = zip radii (cycle colors)+  let packed = packCircles fst colored++  forM_ packed $ \res -> case res of+    ((r,c),(x,y)) -> do+        fillStyleNamed c context+        fillCircle context (x + w/2) (y + h/2) r++fillCircle :: Context -> Double -> Double -> Double -> IO ()+fillCircle ctx x y r = do+  beginPath ctx+  arc x y r 0.0 (2.0 * pi) True ctx+  closePath ctx+  fill ctx+++-- JavaScript.Canvas.fillStyle does not allow for color names, so create our+-- own function here+foreign import javascript unsafe "$2.fillStyle = $1" js_fillStyleNamed :: JSString -> Context -> IO ()+fillStyleNamed :: String -> Context -> IO ()+fillStyleNamed f ctx = js_fillStyleNamed (toJSString f) ctx+{-# INLINE fillStyleNamed #-}++
+ ghcjs/ghcjs-demo.html view
@@ -0,0 +1,24 @@+<!doctype html>+<html>+  <head>+    <title>Demonstrating circle-packing</title>+    <script language="javascript" src="ghcjs-demo.jsexe/rts.js"></script>+    <script language="javascript" src="ghcjs-demo.jsexe/lib.js"></script>+    <script language="javascript" src="ghcjs-demo.jsexe/out.js"></script>++  </head>+  <body id="body" style="margin:0;padding:0">+  <div align="center">+    <canvas width="800" height="500" id="can"></canvas><br/>+    <input style="width: 800px" id="input" value="50 32 30 30 40 35 5 20 43 18 12"/><br/>+    <p style="width: 800px; text-align:justify; font-family:sans; font-size:80%">++    This is a small live demonstration of the Haskell library <a href="http://hackage.haskell.org/package/circle-packing"><tt>circle-packing</tt></a> by <a href="http://www.joachim-breitner.de/">Joachim Breitner</a>:<br/> +    Given a number of circles with their radii, this packags tries to arrange them tightly, without overlap and forming a large circle.<br/>+Finding the optimal solution is NP hard, so only heuristics are feasible. This particular implementation is neither very good nor very fast, compared to the state of the art in research. Nevertheless it is simple to use and gives visually acceptable results.<br/>+    This particular demonstration uses <a href="https://github.com/ghcjs/ghcjs">GHC-JS</a> (from June 2015, using GHC-7.8.4) to generate JavaScript code from <a href="../Optimisation/CirclePacking.hs">the original Haskell code</a> and some <a href="ghcjs-demo.hs">code to address the HTML5 canvas</a>, so although it runs in your browser, this <em>is</em> the Haskell code at work. There is an analougous <a href="../fay/fay-demo.html">demo based the Fay compiler</a>, and one  <a href="../haste/haste-demo.html">using haste</a>.+    </p>+  </div>+  <script language="javascript" defer>h$main(h$mainZCMainzimain);</script>+  </body>+</html>
+ ghcjs/ghcjs-demo.jsexe/lib.js view
@@ -0,0 +1,2090 @@+/* Copyright (C) 1991-2014 Free Software Foundation, Inc.+   This file is part of the GNU C Library.++   The GNU C Library is free software; you can redistribute it and/or+   modify it under the terms of the GNU Lesser General Public+   License as published by the Free Software Foundation; either+   version 2.1 of the License, or (at your option) any later version.++   The GNU C Library is distributed in the hope that it will be useful,+   but WITHOUT ANY WARRANTY; without even the implied warranty of+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+   Lesser General Public License for more details.++   You should have received a copy of the GNU Lesser General Public+   License along with the GNU C Library; if not, see+   <http://www.gnu.org/licenses/>.  */+/* This header is separate from features.h so that the compiler can+   include it implicitly at the start of every compilation.  It must+   not itself include <features.h> or any other header that includes+   <features.h> because the implicit include comes before any feature+   test macros that may be defined in a source file before it first+   explicitly includes a system header.  GCC knows the name of this+   header in order to preinclude it.  */+/* glibc's intent is to support the IEC 559 math functionality, real+   and complex.  If the GCC (4.9 and later) predefined macros+   specifying compiler intent are available, use them to determine+   whether the overall intent is to support these features; otherwise,+   presume an older compiler has intent to support these features and+   define these macros by default.  */+/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) /+   Unicode 6.0.  */+/* We do not support C11 <threads.h>.  */+// translated from bytestring cbits/fpstring.c+function h$fps_reverse(a_v, a_o, b_v, b_o, n) {+    if(n > 0) {+        var au8 = a_v.u8, bu8 = b_v.u8;+        for(var i=0;i<n;i++) {+            au8[a_o+n-i-1] = bu8[b_o+i];+        }+    }+}+function h$fps_intersperse(a_v,a_o,b_v,b_o,n,c) {+    if(n > 0) {+        var au8 = a_v.u8, bu8 = b_v.u8, dst_o = a_o;+        for(var i=0;i<n-1;i++) {+            au8[dst_o] = bu8[b_o+i];+            au8[dst_o+1] = c;+            dst_o += 2;+        }+        au8[dst_o] = bu8[b_o+n-1];+    }+}+function h$fps_maximum(a_v,a_o,n) {+    if(n > 0) {+        var au8 = a_v.u8, max = au8[a_o];+        for(var i=1;i<n;i++) {+            var c = au8[a_o+i];+            if(c > max) { max = c; }+        }+        return max;+    }+    return 0;+}+function h$fps_minimum(a_v,a_o,n) {+    if(n > 0) {+        var au8 = a_v.u8, min = a_v.u8[a_o];+        for(var i=1;i<n;i++) {+            var c = au8[a_o+i];+            if(c < min) { min = c; }+        }+        return min;+    }+    return 255;+}+function h$fps_count(a_v,a_o,n,c) {+    if(n > 0) {+        var au8 = a_v.u8, count = 0;+        for(var i=0;i<n;i++) {+            if(au8[a_o+i] === c) { count++; }+        }+        return count|0;+    }+    return 0;+}+function h$fps_memcpy_offsets(dst_d, dst_o, dst_off+                              , src_d, src_o, src_off, n) {+    return memcpy(dst_d, dst_o + dst_off, src_d, src_o + src_off, n);+}+// translated from bytestring cbits/itoa.c+var h$_hs_bytestring_digits = [48,49,50,51,52,53,54,55,56,57,97,98,99,100,101,102]; // 0123456789abcdef+var h$_hs_bytestring_l10 = goog.math.Long.fromBits(10, 0);+var h$_hs_bytestring_b10 = h$bigFromInt(10);+// signed integers+function h$_hs_bytestring_int_dec(x, buf_d, buf_o) {+    var c, ptr = buf_o, next_free, x_tmp;+    var bu8 = buf_d.u8;+    // we cannot negate directly as  0 - (minBound :: Int) = minBound+    if(x < 0) {+        bu8[ptr++] = 45; // '-'+        buf_o++;+        x_tmp = x;+        x = (x / 10) | 0;+        bu8[ptr++] = h$_hs_bytestring_digits[x * 10 - x_tmp];+        if(x === 0) {+            h$ret1 = ptr;+            return buf_d;+        } else {+            x = -x;+        }+    }+    // encode positive number as little-endian decimal+    do {+        x_tmp = x;+        x = (x / 10) | 0;+        bu8[ptr++] = h$_hs_bytestring_digits[x_tmp - x * 10];+    } while (x);+    next_free = ptr--;+    while(buf_o < ptr) {+        c = bu8[ptr];+        bu8[ptr--] = bu8[buf_o];+        bu8[buf_o++] = c;+    }+    h$ret1 = next_free;+    return buf_d;+}+// signed long long ints (64 bit integers)+function h$_hs_bytestring_long_long_int_dec(x_a, x_b, buf_d, buf_o) {+    var l10 = h$_hs_bytestring_l10;+    var x = goog.math.Long.fromBits(x_b, x_a);+    var c, ptr = buf_o, next_free;+    var bu8 = buf_d.u8;+    // we cannot negate directly as  0 - (minBound :: Int) = minBound+    if(x.isNegative()) {+        bu8[ptr++] = 45; // '-';+        buf_o++;+        x_tmp = x;+        x = x.div(l10);+        bu8[ptr++] = h$_hs_bytestring_digits[x.multiply(l10).subtract(x_tmp).getLowBits()];+        if(x.isZero()) {+            h$ret1 = ptr;+            return buf_d;+        } else {+            x = x.negate();+        }+    }+    // encode positive number as little-endian decimal+    do {+        x_tmp = x;+        x = x.div(l10);+        bu8[ptr++] = h$_hs_bytestring_digits[x_tmp.subtract(x.multiply(l10))];+    } while (!x.isZero());+    // reverse written digits+    next_free = ptr--;+    while(buf_o < ptr) {+        c = bu8[ptr];+        bu8[ptr--] = bu8[buf_o];+        bu8[buf_o++] = c;+    }+    h$ret1 = next_free;+    return buf_d;+}+// unsigned integers+function h$_hs_bytestring_uint_dec(x, buf_d, buf_o) {+    var c, ptr = buf_o, next_free;+    var bu8 = buf_d.u8;+    var x_tmp;+    if(x < 0) x += 4294967296;+    do {+        x_tmp = x;+        x = (x / 10) | 0;+        bu8[ptr++] = h$_hs_bytestring_digits[x_tmp - x * 10];+    } while(x);+    next_free = ptr--;+    while(buf_o < ptr) {+        c = bu8[ptr];+        bu8[ptr--] = bu8[buf_o];+        bu8[buf_o++] = c;+    }+    h$ret1 = next_free;+    return buf_d;+}+function h$_hs_bytestring_long_long_uint_dec(x_a, x_b, buf_d, buf_o) {+    var b10 = h$_hs_bytestring_b10;+    var c, ptr = buf_o, next_free;+    var bu8 = buf_d.u8;+    var x = h$bigFromWord64(x_a, x_b), x_tmp;+    // encode positive number as little-endian decimal+    do {+        x_tmp = x;+        x = x.divide(b10);+        bu8[ptr++] = h$_hs_bytestring_digits[x_tmp.subtract(x.multiply(b10))];+    } while(x.signum() !== 0);+    // reverse written digits;+    next_free = ptr--;+    while(buf_o < ptr) {+        c = bu8[ptr];+        bu8[ptr--] = bu8[buf_o];+        bu8[buf_o++] = c;+    }+    h$ret1 = next_free;+    return buf_d;+}+// Padded, decimal, positive integers for the decimal output of bignums+///////////////////////////////////////////////////////////////////////+// Padded (9 digits), decimal, positive int:+// We will use it with numbers that fit in 31 bits; i.e., numbers smaller than+// 10^9, as "31 * log 2 / log 10 = 9.33"+function h$_hs_bytestring_int_dec_padded9(x, buf_d, buf_o) {+    var max_width_int32_dec = 9;+    var ptr = buf_o + max_width_int32_dec;+    var bu8 = buf_d.u8;+    var x_tmp;+    // encode positive number as little-endian decimal+    do {+        x_tmp = x;+        x = (x / 10) | 0;+        bu8[--ptr] = h$_hs_bytestring_digits[x_tmp - x * 10];+    } while(x);+    // pad beginning+    while (buf_o < ptr) { bu8[--ptr] = 48; }+}+// Padded (19 digits), decimal, positive long long int:+// We will use it with numbers that fit in 63 bits; i.e., numbers smaller than+// 10^18, as "63 * log 2 / log 10 = 18.96"+function h$_hs_bytestring_long_long_int_dec_padded18(x_a, x_b, buf_d, buf_o) {+    var l10 = h$_hs_bytestring_l10;+    var max_width_int64_dec = 18;+    var ptr = buf_o + max_width_int64_dec;+    var bu8 = buf_d.u8;+    var x = goog.math.Long.fromBits(x_b, x_a);+    // encode positive number as little-endian decimal+    do {+        x_tmp = x;+        x = x.div(l10);+        bu8[--ptr] = h$_hs_bytestring_digits[x_tmp.subtract(x.multiply(l10))];+    } while (!x.isZero());+    // pad beginning+    while (buf_o < ptr) { bu8[--ptr] = 48; }+}+///////////////////////+// Hexadecimal encoding+///////////////////////+// unsigned ints (32 bit words)+function h$_hs_bytestring_uint_hex(x, buf_d, buf_o) {+    var c, ptr = buf_o, next_free;+    var bu8 = buf_d.u8;+    // write hex representation in reverse order+    do {+        bu8[ptr++] = h$_hs_bytestring_digits[x & 0xf];+        x >>>= 4;+    } while(x);+    // invert written digits+    next_free = ptr--;+    while(buf_o < ptr) {+        c = bu8[ptr];+        bu8[ptr--] = bu8[buf_o];+        bu8[buf_o++] = c;+    }+    h$ret1 = next_free;+    return buf_d;+}+// unsigned long ints (64 bit words)+function h$_hs_bytestring_long_long_uint_hex(x_a, x_b, buf_d, buf_o) {+    // write hex representation in reverse order+    var c, ptr = buf_o, next_free;+    var bu8 = buf_d.u8;+    if(x_a === 0 && x_b === 0) {+        bu8[ptr++] = 48; // '0'+    } else {+        while(x_b !== 0) {+            bu8[ptr++] = h$_hs_bytestring_digits[x_b & 0xf];+            x_b >>>= 4;+        }+        while(x_a !== 0) {+            bu8[ptr++] = h$_hs_bytestring_digits[x_a & 0xf];+            x_a >>>= 4;+        }+    }+    // invert written digits+    next_free = ptr--;+    while(buf_o < ptr) {+        c = bu8[ptr];+        bu8[ptr--] = bu8[buf_o];+        bu8[buf_o++] = c;+    }+    h$ret1 = next_free;+    return buf_d;+}+/* Copyright (C) 1991-2014 Free Software Foundation, Inc.+   This file is part of the GNU C Library.++   The GNU C Library is free software; you can redistribute it and/or+   modify it under the terms of the GNU Lesser General Public+   License as published by the Free Software Foundation; either+   version 2.1 of the License, or (at your option) any later version.++   The GNU C Library is distributed in the hope that it will be useful,+   but WITHOUT ANY WARRANTY; without even the implied warranty of+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+   Lesser General Public License for more details.++   You should have received a copy of the GNU Lesser General Public+   License along with the GNU C Library; if not, see+   <http://www.gnu.org/licenses/>.  */+/* This header is separate from features.h so that the compiler can+   include it implicitly at the start of every compilation.  It must+   not itself include <features.h> or any other header that includes+   <features.h> because the implicit include comes before any feature+   test macros that may be defined in a source file before it first+   explicitly includes a system header.  GCC knows the name of this+   header in order to preinclude it.  */+/* glibc's intent is to support the IEC 559 math functionality, real+   and complex.  If the GCC (4.9 and later) predefined macros+   specifying compiler intent are available, use them to determine+   whether the overall intent is to support these features; otherwise,+   presume an older compiler has intent to support these features and+   define these macros by default.  */+/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) /+   Unicode 6.0.  */+/* We do not support C11 <threads.h>.  */+// Copyright 2011 The Closure Library Authors. All Rights Reserved.+//+// Licensed under the Apache License, Version 2.0 (the "License");+// you may not use this file except in compliance with the License.+// You may obtain a copy of the License at+//+//      http://www.apache.org/licenses/LICENSE-2.0+//+// Unless required by applicable law or agreed to in writing, software+// distributed under the License is distributed on an "AS-IS" BASIS,+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.+// See the License for the specific language governing permissions and+// limitations under the License.+/**+ * @fileoverview Abstract cryptographic hash interface.+ *+ * See goog.crypt.Sha1 and goog.crypt.Md5 for sample implementations.+ *+ */+goog.provide('goog.crypt.Hash');+/**+ * Create a cryptographic hash instance.+ *+ * @constructor+ * @struct+ */+goog.crypt.Hash = function() {+  /**+   * The block size for the hasher.+   * @type {number}+   */+  this.blockSize = -1;+};+/**+ * Resets the internal accumulator.+ */+goog.crypt.Hash.prototype.reset = goog.abstractMethod;+/**+ * Adds a byte array (array with values in [0-255] range) or a string (might+ * only contain 8-bit, i.e., Latin1 characters) to the internal accumulator.+ *+ * Many hash functions operate on blocks of data and implement optimizations+ * when a full chunk of data is readily available. Hence it is often preferable+ * to provide large chunks of data (a kilobyte or more) than to repeatedly+ * call the update method with few tens of bytes. If this is not possible, or+ * not feasible, it might be good to provide data in multiplies of hash block+ * size (often 64 bytes). Please see the implementation and performance tests+ * of your favourite hash.+ *+ * @param {Array<number>|Uint8Array|string} bytes Data used for the update.+ * @param {number=} opt_length Number of bytes to use.+ */+goog.crypt.Hash.prototype.update = goog.abstractMethod;+/**+ * @return {!Array<number>} The finalized hash computed+ *     from the internal accumulator.+ */+goog.crypt.Hash.prototype.digest = goog.abstractMethod;+/* Copyright (C) 1991-2014 Free Software Foundation, Inc.+   This file is part of the GNU C Library.++   The GNU C Library is free software; you can redistribute it and/or+   modify it under the terms of the GNU Lesser General Public+   License as published by the Free Software Foundation; either+   version 2.1 of the License, or (at your option) any later version.++   The GNU C Library is distributed in the hope that it will be useful,+   but WITHOUT ANY WARRANTY; without even the implied warranty of+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+   Lesser General Public License for more details.++   You should have received a copy of the GNU Lesser General Public+   License along with the GNU C Library; if not, see+   <http://www.gnu.org/licenses/>.  */+/* This header is separate from features.h so that the compiler can+   include it implicitly at the start of every compilation.  It must+   not itself include <features.h> or any other header that includes+   <features.h> because the implicit include comes before any feature+   test macros that may be defined in a source file before it first+   explicitly includes a system header.  GCC knows the name of this+   header in order to preinclude it.  */+/* glibc's intent is to support the IEC 559 math functionality, real+   and complex.  If the GCC (4.9 and later) predefined macros+   specifying compiler intent are available, use them to determine+   whether the overall intent is to support these features; otherwise,+   presume an older compiler has intent to support these features and+   define these macros by default.  */+/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) /+   Unicode 6.0.  */+/* We do not support C11 <threads.h>.  */+// Copyright 2011 The Closure Library Authors. All Rights Reserved.+//+// Licensed under the Apache License, Version 2.0 (the "License");+// you may not use this file except in compliance with the License.+// You may obtain a copy of the License at+//+//      http://www.apache.org/licenses/LICENSE-2.0+//+// Unless required by applicable law or agreed to in writing, software+// distributed under the License is distributed on an "AS-IS" BASIS,+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.+// See the License for the specific language governing permissions and+// limitations under the License.+/**+ * @fileoverview MD5 cryptographic hash.+ * Implementation of http://tools.ietf.org/html/rfc1321 with common+ * optimizations and tweaks (see http://en.wikipedia.org/wiki/MD5).+ *+ * Usage:+ *   var md5 = new goog.crypt.Md5();+ *   md5.update(bytes);+ *   var hash = md5.digest();+ *+ * Performance:+ *   Chrome 23              ~680 Mbit/s+ *   Chrome 13 (in a VM)    ~250 Mbit/s+ *   Firefox 6.0 (in a VM)  ~100 Mbit/s+ *   IE9 (in a VM)           ~27 Mbit/s+ *   Firefox 3.6             ~15 Mbit/s+ *   IE8 (in a VM)           ~13 Mbit/s+ *+ */+goog.provide('goog.crypt.Md5');+goog.require('goog.crypt.Hash');+/**+ * MD5 cryptographic hash constructor.+ * @constructor+ * @extends {goog.crypt.Hash}+ * @final+ * @struct+ */+goog.crypt.Md5 = function() {+  goog.crypt.Md5.base(this, 'constructor');+  this.blockSize = 512 / 8;+  /**+   * Holds the current values of accumulated A-D variables (MD buffer).+   * @type {!Array<number>}+   * @private+   */+  this.chain_ = new Array(4);+  /**+   * A buffer holding the data until the whole block can be processed.+   * @type {!Array<number>}+   * @private+   */+  this.block_ = new Array(this.blockSize);+  /**+   * The length of yet-unprocessed data as collected in the block.+   * @type {number}+   * @private+   */+  this.blockLength_ = 0;+  /**+   * The total length of the message so far.+   * @type {number}+   * @private+   */+  this.totalLength_ = 0;+  this.reset();+};+goog.inherits(goog.crypt.Md5, goog.crypt.Hash);+/**+ * Integer rotation constants used by the abbreviated implementation.+ * They are hardcoded in the unrolled implementation, so it is left+ * here commented out.+ * @type {Array<number>}+ * @private+ *+goog.crypt.Md5.S_ = [+  7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22,+  5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20,+  4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23,+  6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21+];+ */+/**+ * Sine function constants used by the abbreviated implementation.+ * They are hardcoded in the unrolled implementation, so it is left+ * here commented out.+ * @type {Array<number>}+ * @private+ *+goog.crypt.Md5.T_ = [+  0xd76aa478, 0xe8c7b756, 0x242070db, 0xc1bdceee,+  0xf57c0faf, 0x4787c62a, 0xa8304613, 0xfd469501,+  0x698098d8, 0x8b44f7af, 0xffff5bb1, 0x895cd7be,+  0x6b901122, 0xfd987193, 0xa679438e, 0x49b40821,+  0xf61e2562, 0xc040b340, 0x265e5a51, 0xe9b6c7aa,+  0xd62f105d, 0x02441453, 0xd8a1e681, 0xe7d3fbc8,+  0x21e1cde6, 0xc33707d6, 0xf4d50d87, 0x455a14ed,+  0xa9e3e905, 0xfcefa3f8, 0x676f02d9, 0x8d2a4c8a,+  0xfffa3942, 0x8771f681, 0x6d9d6122, 0xfde5380c,+  0xa4beea44, 0x4bdecfa9, 0xf6bb4b60, 0xbebfbc70,+  0x289b7ec6, 0xeaa127fa, 0xd4ef3085, 0x04881d05,+  0xd9d4d039, 0xe6db99e5, 0x1fa27cf8, 0xc4ac5665,+  0xf4292244, 0x432aff97, 0xab9423a7, 0xfc93a039,+  0x655b59c3, 0x8f0ccc92, 0xffeff47d, 0x85845dd1,+  0x6fa87e4f, 0xfe2ce6e0, 0xa3014314, 0x4e0811a1,+  0xf7537e82, 0xbd3af235, 0x2ad7d2bb, 0xeb86d391+];+ */+/** @override */+goog.crypt.Md5.prototype.reset = function() {+  this.chain_[0] = 0x67452301;+  this.chain_[1] = 0xefcdab89;+  this.chain_[2] = 0x98badcfe;+  this.chain_[3] = 0x10325476;+  this.blockLength_ = 0;+  this.totalLength_ = 0;+};+/**+ * Internal compress helper function. It takes a block of data (64 bytes)+ * and updates the accumulator.+ * @param {Array<number>|Uint8Array|string} buf The block to compress.+ * @param {number=} opt_offset Offset of the block in the buffer.+ * @private+ */+goog.crypt.Md5.prototype.compress_ = function(buf, opt_offset) {+  if (!opt_offset) {+    opt_offset = 0;+  }+  // We allocate the array every time, but it's cheap in practice.+  var X = new Array(16);+  // Get 16 little endian words. It is not worth unrolling this for Chrome 11.+  if (goog.isString(buf)) {+    for (var i = 0; i < 16; ++i) {+      X[i] = (buf.charCodeAt(opt_offset++)) |+             (buf.charCodeAt(opt_offset++) << 8) |+             (buf.charCodeAt(opt_offset++) << 16) |+             (buf.charCodeAt(opt_offset++) << 24);+    }+  } else {+    for (var i = 0; i < 16; ++i) {+      X[i] = (buf[opt_offset++]) |+             (buf[opt_offset++] << 8) |+             (buf[opt_offset++] << 16) |+             (buf[opt_offset++] << 24);+    }+  }+  var A = this.chain_[0];+  var B = this.chain_[1];+  var C = this.chain_[2];+  var D = this.chain_[3];+  var sum = 0;+  /*+   * This is an abbreviated implementation, it is left here commented out for+   * reference purposes. See below for an unrolled version in use.+   *+  var f, n, tmp;+  for (var i = 0; i < 64; ++i) {++    if (i < 16) {+      f = (D ^ (B & (C ^ D)));+      n = i;+    } else if (i < 32) {+      f = (C ^ (D & (B ^ C)));+      n = (5 * i + 1) % 16;+    } else if (i < 48) {+      f = (B ^ C ^ D);+      n = (3 * i + 5) % 16;+    } else {+      f = (C ^ (B | (~D)));+      n = (7 * i) % 16;+    }++    tmp = D;+    D = C;+    C = B;+    sum = (A + f + goog.crypt.Md5.T_[i] + X[n]) & 0xffffffff;+    B += ((sum << goog.crypt.Md5.S_[i]) & 0xffffffff) |+         (sum >>> (32 - goog.crypt.Md5.S_[i]));+    A = tmp;+  }+   */+  /*+   * This is an unrolled MD5 implementation, which gives ~30% speedup compared+   * to the abbreviated implementation above, as measured on Chrome 11. It is+   * important to keep 32-bit croppings to minimum and inline the integer+   * rotation.+   */+  sum = (A + (D ^ (B & (C ^ D))) + X[0] + 0xd76aa478) & 0xffffffff;+  A = B + (((sum << 7) & 0xffffffff) | (sum >>> 25));+  sum = (D + (C ^ (A & (B ^ C))) + X[1] + 0xe8c7b756) & 0xffffffff;+  D = A + (((sum << 12) & 0xffffffff) | (sum >>> 20));+  sum = (C + (B ^ (D & (A ^ B))) + X[2] + 0x242070db) & 0xffffffff;+  C = D + (((sum << 17) & 0xffffffff) | (sum >>> 15));+  sum = (B + (A ^ (C & (D ^ A))) + X[3] + 0xc1bdceee) & 0xffffffff;+  B = C + (((sum << 22) & 0xffffffff) | (sum >>> 10));+  sum = (A + (D ^ (B & (C ^ D))) + X[4] + 0xf57c0faf) & 0xffffffff;+  A = B + (((sum << 7) & 0xffffffff) | (sum >>> 25));+  sum = (D + (C ^ (A & (B ^ C))) + X[5] + 0x4787c62a) & 0xffffffff;+  D = A + (((sum << 12) & 0xffffffff) | (sum >>> 20));+  sum = (C + (B ^ (D & (A ^ B))) + X[6] + 0xa8304613) & 0xffffffff;+  C = D + (((sum << 17) & 0xffffffff) | (sum >>> 15));+  sum = (B + (A ^ (C & (D ^ A))) + X[7] + 0xfd469501) & 0xffffffff;+  B = C + (((sum << 22) & 0xffffffff) | (sum >>> 10));+  sum = (A + (D ^ (B & (C ^ D))) + X[8] + 0x698098d8) & 0xffffffff;+  A = B + (((sum << 7) & 0xffffffff) | (sum >>> 25));+  sum = (D + (C ^ (A & (B ^ C))) + X[9] + 0x8b44f7af) & 0xffffffff;+  D = A + (((sum << 12) & 0xffffffff) | (sum >>> 20));+  sum = (C + (B ^ (D & (A ^ B))) + X[10] + 0xffff5bb1) & 0xffffffff;+  C = D + (((sum << 17) & 0xffffffff) | (sum >>> 15));+  sum = (B + (A ^ (C & (D ^ A))) + X[11] + 0x895cd7be) & 0xffffffff;+  B = C + (((sum << 22) & 0xffffffff) | (sum >>> 10));+  sum = (A + (D ^ (B & (C ^ D))) + X[12] + 0x6b901122) & 0xffffffff;+  A = B + (((sum << 7) & 0xffffffff) | (sum >>> 25));+  sum = (D + (C ^ (A & (B ^ C))) + X[13] + 0xfd987193) & 0xffffffff;+  D = A + (((sum << 12) & 0xffffffff) | (sum >>> 20));+  sum = (C + (B ^ (D & (A ^ B))) + X[14] + 0xa679438e) & 0xffffffff;+  C = D + (((sum << 17) & 0xffffffff) | (sum >>> 15));+  sum = (B + (A ^ (C & (D ^ A))) + X[15] + 0x49b40821) & 0xffffffff;+  B = C + (((sum << 22) & 0xffffffff) | (sum >>> 10));+  sum = (A + (C ^ (D & (B ^ C))) + X[1] + 0xf61e2562) & 0xffffffff;+  A = B + (((sum << 5) & 0xffffffff) | (sum >>> 27));+  sum = (D + (B ^ (C & (A ^ B))) + X[6] + 0xc040b340) & 0xffffffff;+  D = A + (((sum << 9) & 0xffffffff) | (sum >>> 23));+  sum = (C + (A ^ (B & (D ^ A))) + X[11] + 0x265e5a51) & 0xffffffff;+  C = D + (((sum << 14) & 0xffffffff) | (sum >>> 18));+  sum = (B + (D ^ (A & (C ^ D))) + X[0] + 0xe9b6c7aa) & 0xffffffff;+  B = C + (((sum << 20) & 0xffffffff) | (sum >>> 12));+  sum = (A + (C ^ (D & (B ^ C))) + X[5] + 0xd62f105d) & 0xffffffff;+  A = B + (((sum << 5) & 0xffffffff) | (sum >>> 27));+  sum = (D + (B ^ (C & (A ^ B))) + X[10] + 0x02441453) & 0xffffffff;+  D = A + (((sum << 9) & 0xffffffff) | (sum >>> 23));+  sum = (C + (A ^ (B & (D ^ A))) + X[15] + 0xd8a1e681) & 0xffffffff;+  C = D + (((sum << 14) & 0xffffffff) | (sum >>> 18));+  sum = (B + (D ^ (A & (C ^ D))) + X[4] + 0xe7d3fbc8) & 0xffffffff;+  B = C + (((sum << 20) & 0xffffffff) | (sum >>> 12));+  sum = (A + (C ^ (D & (B ^ C))) + X[9] + 0x21e1cde6) & 0xffffffff;+  A = B + (((sum << 5) & 0xffffffff) | (sum >>> 27));+  sum = (D + (B ^ (C & (A ^ B))) + X[14] + 0xc33707d6) & 0xffffffff;+  D = A + (((sum << 9) & 0xffffffff) | (sum >>> 23));+  sum = (C + (A ^ (B & (D ^ A))) + X[3] + 0xf4d50d87) & 0xffffffff;+  C = D + (((sum << 14) & 0xffffffff) | (sum >>> 18));+  sum = (B + (D ^ (A & (C ^ D))) + X[8] + 0x455a14ed) & 0xffffffff;+  B = C + (((sum << 20) & 0xffffffff) | (sum >>> 12));+  sum = (A + (C ^ (D & (B ^ C))) + X[13] + 0xa9e3e905) & 0xffffffff;+  A = B + (((sum << 5) & 0xffffffff) | (sum >>> 27));+  sum = (D + (B ^ (C & (A ^ B))) + X[2] + 0xfcefa3f8) & 0xffffffff;+  D = A + (((sum << 9) & 0xffffffff) | (sum >>> 23));+  sum = (C + (A ^ (B & (D ^ A))) + X[7] + 0x676f02d9) & 0xffffffff;+  C = D + (((sum << 14) & 0xffffffff) | (sum >>> 18));+  sum = (B + (D ^ (A & (C ^ D))) + X[12] + 0x8d2a4c8a) & 0xffffffff;+  B = C + (((sum << 20) & 0xffffffff) | (sum >>> 12));+  sum = (A + (B ^ C ^ D) + X[5] + 0xfffa3942) & 0xffffffff;+  A = B + (((sum << 4) & 0xffffffff) | (sum >>> 28));+  sum = (D + (A ^ B ^ C) + X[8] + 0x8771f681) & 0xffffffff;+  D = A + (((sum << 11) & 0xffffffff) | (sum >>> 21));+  sum = (C + (D ^ A ^ B) + X[11] + 0x6d9d6122) & 0xffffffff;+  C = D + (((sum << 16) & 0xffffffff) | (sum >>> 16));+  sum = (B + (C ^ D ^ A) + X[14] + 0xfde5380c) & 0xffffffff;+  B = C + (((sum << 23) & 0xffffffff) | (sum >>> 9));+  sum = (A + (B ^ C ^ D) + X[1] + 0xa4beea44) & 0xffffffff;+  A = B + (((sum << 4) & 0xffffffff) | (sum >>> 28));+  sum = (D + (A ^ B ^ C) + X[4] + 0x4bdecfa9) & 0xffffffff;+  D = A + (((sum << 11) & 0xffffffff) | (sum >>> 21));+  sum = (C + (D ^ A ^ B) + X[7] + 0xf6bb4b60) & 0xffffffff;+  C = D + (((sum << 16) & 0xffffffff) | (sum >>> 16));+  sum = (B + (C ^ D ^ A) + X[10] + 0xbebfbc70) & 0xffffffff;+  B = C + (((sum << 23) & 0xffffffff) | (sum >>> 9));+  sum = (A + (B ^ C ^ D) + X[13] + 0x289b7ec6) & 0xffffffff;+  A = B + (((sum << 4) & 0xffffffff) | (sum >>> 28));+  sum = (D + (A ^ B ^ C) + X[0] + 0xeaa127fa) & 0xffffffff;+  D = A + (((sum << 11) & 0xffffffff) | (sum >>> 21));+  sum = (C + (D ^ A ^ B) + X[3] + 0xd4ef3085) & 0xffffffff;+  C = D + (((sum << 16) & 0xffffffff) | (sum >>> 16));+  sum = (B + (C ^ D ^ A) + X[6] + 0x04881d05) & 0xffffffff;+  B = C + (((sum << 23) & 0xffffffff) | (sum >>> 9));+  sum = (A + (B ^ C ^ D) + X[9] + 0xd9d4d039) & 0xffffffff;+  A = B + (((sum << 4) & 0xffffffff) | (sum >>> 28));+  sum = (D + (A ^ B ^ C) + X[12] + 0xe6db99e5) & 0xffffffff;+  D = A + (((sum << 11) & 0xffffffff) | (sum >>> 21));+  sum = (C + (D ^ A ^ B) + X[15] + 0x1fa27cf8) & 0xffffffff;+  C = D + (((sum << 16) & 0xffffffff) | (sum >>> 16));+  sum = (B + (C ^ D ^ A) + X[2] + 0xc4ac5665) & 0xffffffff;+  B = C + (((sum << 23) & 0xffffffff) | (sum >>> 9));+  sum = (A + (C ^ (B | (~D))) + X[0] + 0xf4292244) & 0xffffffff;+  A = B + (((sum << 6) & 0xffffffff) | (sum >>> 26));+  sum = (D + (B ^ (A | (~C))) + X[7] + 0x432aff97) & 0xffffffff;+  D = A + (((sum << 10) & 0xffffffff) | (sum >>> 22));+  sum = (C + (A ^ (D | (~B))) + X[14] + 0xab9423a7) & 0xffffffff;+  C = D + (((sum << 15) & 0xffffffff) | (sum >>> 17));+  sum = (B + (D ^ (C | (~A))) + X[5] + 0xfc93a039) & 0xffffffff;+  B = C + (((sum << 21) & 0xffffffff) | (sum >>> 11));+  sum = (A + (C ^ (B | (~D))) + X[12] + 0x655b59c3) & 0xffffffff;+  A = B + (((sum << 6) & 0xffffffff) | (sum >>> 26));+  sum = (D + (B ^ (A | (~C))) + X[3] + 0x8f0ccc92) & 0xffffffff;+  D = A + (((sum << 10) & 0xffffffff) | (sum >>> 22));+  sum = (C + (A ^ (D | (~B))) + X[10] + 0xffeff47d) & 0xffffffff;+  C = D + (((sum << 15) & 0xffffffff) | (sum >>> 17));+  sum = (B + (D ^ (C | (~A))) + X[1] + 0x85845dd1) & 0xffffffff;+  B = C + (((sum << 21) & 0xffffffff) | (sum >>> 11));+  sum = (A + (C ^ (B | (~D))) + X[8] + 0x6fa87e4f) & 0xffffffff;+  A = B + (((sum << 6) & 0xffffffff) | (sum >>> 26));+  sum = (D + (B ^ (A | (~C))) + X[15] + 0xfe2ce6e0) & 0xffffffff;+  D = A + (((sum << 10) & 0xffffffff) | (sum >>> 22));+  sum = (C + (A ^ (D | (~B))) + X[6] + 0xa3014314) & 0xffffffff;+  C = D + (((sum << 15) & 0xffffffff) | (sum >>> 17));+  sum = (B + (D ^ (C | (~A))) + X[13] + 0x4e0811a1) & 0xffffffff;+  B = C + (((sum << 21) & 0xffffffff) | (sum >>> 11));+  sum = (A + (C ^ (B | (~D))) + X[4] + 0xf7537e82) & 0xffffffff;+  A = B + (((sum << 6) & 0xffffffff) | (sum >>> 26));+  sum = (D + (B ^ (A | (~C))) + X[11] + 0xbd3af235) & 0xffffffff;+  D = A + (((sum << 10) & 0xffffffff) | (sum >>> 22));+  sum = (C + (A ^ (D | (~B))) + X[2] + 0x2ad7d2bb) & 0xffffffff;+  C = D + (((sum << 15) & 0xffffffff) | (sum >>> 17));+  sum = (B + (D ^ (C | (~A))) + X[9] + 0xeb86d391) & 0xffffffff;+  B = C + (((sum << 21) & 0xffffffff) | (sum >>> 11));+  this.chain_[0] = (this.chain_[0] + A) & 0xffffffff;+  this.chain_[1] = (this.chain_[1] + B) & 0xffffffff;+  this.chain_[2] = (this.chain_[2] + C) & 0xffffffff;+  this.chain_[3] = (this.chain_[3] + D) & 0xffffffff;+};+/** @override */+goog.crypt.Md5.prototype.update = function(bytes, opt_length) {+  if (!goog.isDef(opt_length)) {+    opt_length = bytes.length;+  }+  var lengthMinusBlock = opt_length - this.blockSize;+  // Copy some object properties to local variables in order to save on access+  // time from inside the loop (~10% speedup was observed on Chrome 11).+  var block = this.block_;+  var blockLength = this.blockLength_;+  var i = 0;+  // The outer while loop should execute at most twice.+  while (i < opt_length) {+    // When we have no data in the block to top up, we can directly process the+    // input buffer (assuming it contains sufficient data). This gives ~30%+    // speedup on Chrome 14 and ~70% speedup on Firefox 6.0, but requires that+    // the data is provided in large chunks (or in multiples of 64 bytes).+    if (blockLength == 0) {+      while (i <= lengthMinusBlock) {+        this.compress_(bytes, i);+        i += this.blockSize;+      }+    }+    if (goog.isString(bytes)) {+      while (i < opt_length) {+        block[blockLength++] = bytes.charCodeAt(i++);+        if (blockLength == this.blockSize) {+          this.compress_(block);+          blockLength = 0;+          // Jump to the outer loop so we use the full-block optimization.+          break;+        }+      }+    } else {+      while (i < opt_length) {+        block[blockLength++] = bytes[i++];+        if (blockLength == this.blockSize) {+          this.compress_(block);+          blockLength = 0;+          // Jump to the outer loop so we use the full-block optimization.+          break;+        }+      }+    }+  }+  this.blockLength_ = blockLength;+  this.totalLength_ += opt_length;+};+/** @override */+goog.crypt.Md5.prototype.digest = function() {+  // This must accommodate at least 1 padding byte (0x80), 8 bytes of+  // total bitlength, and must end at a 64-byte boundary.+  var pad = new Array((this.blockLength_ < 56 ?+                       this.blockSize :+                       this.blockSize * 2) - this.blockLength_);+  // Add padding: 0x80 0x00*+  pad[0] = 0x80;+  for (var i = 1; i < pad.length - 8; ++i) {+    pad[i] = 0;+  }+  // Add the total number of bits, little endian 64-bit integer.+  var totalBits = this.totalLength_ * 8;+  for (var i = pad.length - 8; i < pad.length; ++i) {+    pad[i] = totalBits & 0xff;+    totalBits /= 0x100; // Don't use bit-shifting here!+  }+  this.update(pad);+  var digest = new Array(16);+  var n = 0;+  for (var i = 0; i < 4; ++i) {+    for (var j = 0; j < 32; j += 8) {+      digest[n++] = (this.chain_[i] >>> j) & 0xff;+    }+  }+  return digest;+};+/* Copyright (C) 1991-2014 Free Software Foundation, Inc.+   This file is part of the GNU C Library.++   The GNU C Library is free software; you can redistribute it and/or+   modify it under the terms of the GNU Lesser General Public+   License as published by the Free Software Foundation; either+   version 2.1 of the License, or (at your option) any later version.++   The GNU C Library is distributed in the hope that it will be useful,+   but WITHOUT ANY WARRANTY; without even the implied warranty of+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+   Lesser General Public License for more details.++   You should have received a copy of the GNU Lesser General Public+   License along with the GNU C Library; if not, see+   <http://www.gnu.org/licenses/>.  */+/* This header is separate from features.h so that the compiler can+   include it implicitly at the start of every compilation.  It must+   not itself include <features.h> or any other header that includes+   <features.h> because the implicit include comes before any feature+   test macros that may be defined in a source file before it first+   explicitly includes a system header.  GCC knows the name of this+   header in order to preinclude it.  */+/* glibc's intent is to support the IEC 559 math functionality, real+   and complex.  If the GCC (4.9 and later) predefined macros+   specifying compiler intent are available, use them to determine+   whether the overall intent is to support these features; otherwise,+   presume an older compiler has intent to support these features and+   define these macros by default.  */+/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) /+   Unicode 6.0.  */+/* We do not support C11 <threads.h>.  */+/* include/HsBaseConfig.h.  Generated from HsBaseConfig.h.in by configure.  */+/* include/HsBaseConfig.h.in.  Generated from configure.ac by autoheader.  */+/* The value of E2BIG. */+/* The value of EACCES. */+/* The value of EADDRINUSE. */+/* The value of EADDRNOTAVAIL. */+/* The value of EADV. */+/* The value of EAFNOSUPPORT. */+/* The value of EAGAIN. */+/* The value of EALREADY. */+/* The value of EBADF. */+/* The value of EBADMSG. */+/* The value of EBADRPC. */+/* The value of EBUSY. */+/* The value of ECHILD. */+/* The value of ECOMM. */+/* The value of ECONNABORTED. */+/* The value of ECONNREFUSED. */+/* The value of ECONNRESET. */+/* The value of EDEADLK. */+/* The value of EDESTADDRREQ. */+/* The value of EDIRTY. */+/* The value of EDOM. */+/* The value of EDQUOT. */+/* The value of EEXIST. */+/* The value of EFAULT. */+/* The value of EFBIG. */+/* The value of EFTYPE. */+/* The value of EHOSTDOWN. */+/* The value of EHOSTUNREACH. */+/* The value of EIDRM. */+/* The value of EILSEQ. */+/* The value of EINPROGRESS. */+/* The value of EINTR. */+/* The value of EINVAL. */+/* The value of EIO. */+/* The value of EISCONN. */+/* The value of EISDIR. */+/* The value of ELOOP. */+/* The value of EMFILE. */+/* The value of EMLINK. */+/* The value of EMSGSIZE. */+/* The value of EMULTIHOP. */+/* The value of ENAMETOOLONG. */+/* The value of ENETDOWN. */+/* The value of ENETRESET. */+/* The value of ENETUNREACH. */+/* The value of ENFILE. */+/* The value of ENOBUFS. */+/* The value of ENOCIGAR. */+/* The value of ENODATA. */+/* The value of ENODEV. */+/* The value of ENOENT. */+/* The value of ENOEXEC. */+/* The value of ENOLCK. */+/* The value of ENOLINK. */+/* The value of ENOMEM. */+/* The value of ENOMSG. */+/* The value of ENONET. */+/* The value of ENOPROTOOPT. */+/* The value of ENOSPC. */+/* The value of ENOSR. */+/* The value of ENOSTR. */+/* The value of ENOSYS. */+/* The value of ENOTBLK. */+/* The value of ENOTCONN. */+/* The value of ENOTDIR. */+/* The value of ENOTEMPTY. */+/* The value of ENOTSOCK. */+/* The value of ENOTSUP. */+/* The value of ENOTTY. */+/* The value of ENXIO. */+/* The value of EOPNOTSUPP. */+/* The value of EPERM. */+/* The value of EPFNOSUPPORT. */+/* The value of EPIPE. */+/* The value of EPROCLIM. */+/* The value of EPROCUNAVAIL. */+/* The value of EPROGMISMATCH. */+/* The value of EPROGUNAVAIL. */+/* The value of EPROTO. */+/* The value of EPROTONOSUPPORT. */+/* The value of EPROTOTYPE. */+/* The value of ERANGE. */+/* The value of EREMCHG. */+/* The value of EREMOTE. */+/* The value of EROFS. */+/* The value of ERPCMISMATCH. */+/* The value of ERREMOTE. */+/* The value of ESHUTDOWN. */+/* The value of ESOCKTNOSUPPORT. */+/* The value of ESPIPE. */+/* The value of ESRCH. */+/* The value of ESRMNT. */+/* The value of ESTALE. */+/* The value of ETIME. */+/* The value of ETIMEDOUT. */+/* The value of ETOOMANYREFS. */+/* The value of ETXTBSY. */+/* The value of EUSERS. */+/* The value of EWOULDBLOCK. */+/* The value of EXDEV. */+/* The value of O_BINARY. */+/* The value of SIGINT. */+/* Define to 1 if you have the `clock_gettime' function. */+/* #undef HAVE_CLOCK_GETTIME */+/* Define to 1 if you have the <ctype.h> header file. */+/* Define if you have epoll support. */+/* #undef HAVE_EPOLL */+/* Define to 1 if you have the `epoll_ctl' function. */+/* #undef HAVE_EPOLL_CTL */+/* Define to 1 if you have the <errno.h> header file. */+/* Define to 1 if you have the `eventfd' function. */+/* #undef HAVE_EVENTFD */+/* Define to 1 if you have the <fcntl.h> header file. */+/* Define to 1 if you have the `ftruncate' function. */+/* Define to 1 if you have the `getclock' function. */+/* #undef HAVE_GETCLOCK */+/* Define to 1 if you have the `getrusage' function. */+/* Define to 1 if you have the <inttypes.h> header file. */+/* Define to 1 if you have the `iswspace' function. */+/* Define to 1 if you have the `kevent' function. */+/* Define to 1 if you have the `kevent64' function. */+/* Define if you have kqueue support. */+/* Define to 1 if you have the <langinfo.h> header file. */+/* Define to 1 if you have libcharset. */+/* Define to 1 if you have the `rt' library (-lrt). */+/* #undef HAVE_LIBRT */+/* Define to 1 if you have the <limits.h> header file. */+/* Define to 1 if the system has the type `long long'. */+/* Define to 1 if you have the `lstat' function. */+/* Define to 1 if you have the <memory.h> header file. */+/* Define if you have poll support. */+/* Define to 1 if you have the <poll.h> header file. */+/* Define to 1 if you have the <signal.h> header file. */+/* Define to 1 if you have the <stdint.h> header file. */+/* Define to 1 if you have the <stdlib.h> header file. */+/* Define to 1 if you have the <strings.h> header file. */+/* Define to 1 if you have the <string.h> header file. */+/* Define to 1 if you have the <sys/epoll.h> header file. */+/* #undef HAVE_SYS_EPOLL_H */+/* Define to 1 if you have the <sys/eventfd.h> header file. */+/* #undef HAVE_SYS_EVENTFD_H */+/* Define to 1 if you have the <sys/event.h> header file. */+/* Define to 1 if you have the <sys/resource.h> header file. */+/* Define to 1 if you have the <sys/select.h> header file. */+/* Define to 1 if you have the <sys/stat.h> header file. */+/* Define to 1 if you have the <sys/syscall.h> header file. */+/* Define to 1 if you have the <sys/timeb.h> header file. */+/* Define to 1 if you have the <sys/timers.h> header file. */+/* #undef HAVE_SYS_TIMERS_H */+/* Define to 1 if you have the <sys/times.h> header file. */+/* Define to 1 if you have the <sys/time.h> header file. */+/* Define to 1 if you have the <sys/types.h> header file. */+/* Define to 1 if you have the <sys/utsname.h> header file. */+/* Define to 1 if you have the <sys/wait.h> header file. */+/* Define to 1 if you have the <termios.h> header file. */+/* Define to 1 if you have the `times' function. */+/* Define to 1 if you have the <time.h> header file. */+/* Define to 1 if you have the <unistd.h> header file. */+/* Define to 1 if you have the <utime.h> header file. */+/* Define to 1 if you have the <wctype.h> header file. */+/* Define to 1 if you have the <windows.h> header file. */+/* #undef HAVE_WINDOWS_H */+/* Define to 1 if you have the <winsock.h> header file. */+/* #undef HAVE_WINSOCK_H */+/* Define to 1 if you have the `_chsize' function. */+/* #undef HAVE__CHSIZE */+/* Define to Haskell type for cc_t */+/* Define to Haskell type for char */+/* Define to Haskell type for clock_t */+/* Define to Haskell type for dev_t */+/* Define to Haskell type for double */+/* Define to Haskell type for float */+/* Define to Haskell type for gid_t */+/* Define to Haskell type for ino_t */+/* Define to Haskell type for int */+/* Define to Haskell type for intmax_t */+/* Define to Haskell type for intptr_t */+/* Define to Haskell type for long */+/* Define to Haskell type for long long */+/* Define to Haskell type for mode_t */+/* Define to Haskell type for nlink_t */+/* Define to Haskell type for off_t */+/* Define to Haskell type for pid_t */+/* Define to Haskell type for ptrdiff_t */+/* Define to Haskell type for rlim_t */+/* Define to Haskell type for short */+/* Define to Haskell type for signed char */+/* Define to Haskell type for sig_atomic_t */+/* Define to Haskell type for size_t */+/* Define to Haskell type for speed_t */+/* Define to Haskell type for ssize_t */+/* Define to Haskell type for suseconds_t */+/* Define to Haskell type for tcflag_t */+/* Define to Haskell type for time_t */+/* Define to Haskell type for uid_t */+/* Define to Haskell type for uintmax_t */+/* Define to Haskell type for uintptr_t */+/* Define to Haskell type for unsigned char */+/* Define to Haskell type for unsigned int */+/* Define to Haskell type for unsigned long */+/* Define to Haskell type for unsigned long long */+/* Define to Haskell type for unsigned short */+/* Define to Haskell type for useconds_t */+/* Define to Haskell type for wchar_t */+/* Define to the address where bug reports for this package should be sent. */+/* Define to the full name of this package. */+/* Define to the full name and version of this package. */+/* Define to the one symbol short name of this package. */+/* Define to the home page for this package. */+/* Define to the version of this package. */+/* The size of `kev.filter', as computed by sizeof. */+/* The size of `kev.flags', as computed by sizeof. */+/* The size of `struct MD5Context', as computed by sizeof. */+/* Define to 1 if you have the ANSI C header files. */+/* Number of bits in a file offset, on hosts where this is settable. */+/* #undef _FILE_OFFSET_BITS */+/* Define for large files, on AIX-style hosts. */+/* #undef _LARGE_FILES */+// #define GHCJS_TRACE_IO 1+function h$base_access(file, file_off, mode, c) {+    ;+    if(h$isNode) {+        h$fs.stat(fd, function(err, fs) {+            if(err) {+                h$handleErrnoC(err, -1, 0, c);+            } else {+                c(mode & fs.mode); // fixme is this ok?+            }+        });+    } else+        h$unsupported(-1, c);+}+function h$base_chmod(file, file_off, mode, c) {+    ;+    if(h$isNode) {+        h$fs.chmod(h$decodeUtf8z(file, file_off), mode, function(err) {+            h$handleErrnoC(err, -1, 0, c);+        });+    } else+        h$unsupported(-1, c);+}+function h$base_close(fd, c) {+    ;+    var fdo = h$base_fds[fd];+    if(fdo && fdo.close) {+        fdo.close(fd, fdo, c);+    } else {+        h$errno = 22;+        c(-1);+    }+}+function h$base_dup(fd, something, c) {+    throw "h$base_dup";+}+function h$base_dup2(fd, c) {+    throw "h$base_dup2";+}+function h$base_fstat(fd, stat, stat_off, c) {+    ;+    if(h$isNode) {+        h$fs.fstat(fd, function(err, fs) {+            if(err) {+                h$handlErrnoC(err, -1, 0, c);+            } else {+                h$base_fillStat(fs, stat, stat_off);+                c(0);+            }+        });+    } else+        h$unsupported(-1, c);+}+function h$base_isatty(fd) {+    ;+    if(h$isNode) {+        if(fd === 0) return process.stdin.isTTY?1:0;+        if(fd === 1) return process.stdout.isTTY?1:0;+        if(fd === 2) return process.stderr.isTTY?1:0;+    }+    if(fd === 1 || fd === 2) return 1;+    return 0;+}+function h$base_lseek(fd, pos_1, pos_2, whence, c) {+    ;+    if(h$isNode) {+        var p = goog.math.Long.fromBits(pos_2, pos_1), p1;+        var o = h$base_fds[fd];+        if(!o) {+            h$errno = CONST_BADF;+            c(-1,-1);+        } else {+            switch(whence) {+            case 0: /* SET */+                o.pos = p.toNumber();+                c(p.getHighBits(), p.getLowBits());+                break;+            case 1: /* CUR */+                o.pos += p.toNumber();+                p1 = goog.math.Long.fromNumber(o.pos);+                c(p1.getHighBits(), p1.getLowBits());+                break;+            case 2: /* END */+                h$fs.fstat(fd, function(err, fs) {+                    if(err) {+                        h$setErrno(err);+                        c(-1,-1);+                    } else {+                        o.pos = fs.size + p.toNumber();+                        p1 = goog.math.Long.fromNumber(o.pos);+                        c(p1.getHighBits(), p1.getLowBits());+                    }+                });+                break;+            default:+                h$errno = 22;+                c(-1,-1);+            }+        }+    } else {+        h$unsupported();+        c(-1, -1);+    }+}+function h$base_lstat(file, file_off, stat, stat_off, c) {+    ;+    if(h$isNode) {+        h$fs.lstat(h$decodeUtf8z(file, file_off), function(err, fs) {+            if(err) {+                h$handleErrnoC(err, -1, 0, c);+            } else {+                h$base_fillStat(fs, stat, stat_off);+                c(0);+            }+        });+    } else+        h$unsupported(-1, c);+}+function h$base_open(file, file_off, how, mode, c) {+    if(h$isNode) {+        var flags, off;+        var fp = h$decodeUtf8z(file, file_off);+        var acc = how & h$base_o_accmode;+        // passing a number lets node.js use it directly as the flags (undocumented)+        if(acc === h$base_o_rdonly) {+            flags = h$processConstants['O_RDONLY'];+        } else if(acc === h$base_o_wronly) {+            flags = h$processConstants['O_WRONLY'];+        } else { // r+w+            flags = h$processConstants['O_RDWR'];+        }+        off = (how & h$base_o_append) ? -1 : 0;+        flags = flags | ((how & h$base_o_trunc) ? h$processConstants['O_TRUNC'] : 0)+                      | ((how & h$base_o_creat) ? h$processConstants['O_CREAT'] : 0)+                      | ((how & h$base_o_excl) ? h$processConstants['O_EXCL'] : 0)+                      | ((how & h$base_o_append) ? h$processConstants['O_APPEND'] : 0);+        h$fs.open(fp, flags, mode, function(err, fd) {+            if(err) {+                h$handleErrnoC(err, -1, 0, c);+            } else {+                var f = function(p) {+                    h$base_fds[fd] = { read: h$base_readFile+                                       , write: h$base_writeFile+                                       , close: h$base_closeFile+                                       , pos: p+                                     };+                    c(fd);+                }+                if(off === -1) {+                    h$fs.stat(fp, function(err, fs) {+                        if(err) h$handleErrnoC(err, -1, 0, c); else f(fs.size);+                    });+                } else {+                    f(0);+                }+            }+        });+    } else+        h$unsupported(-1, c);+}+function h$base_read(fd, buf, buf_off, n, c) {+    ;+    var fdo = h$base_fds[fd];+    if(fdo && fdo.read) {+        fdo.read(fd, fdo, buf, buf_off, n, c);+    } else {+        h$errno = 22;+        c(-1);+    }+}+function h$base_stat(file, file_off, stat, stat_off, c) {+    ;+    if(h$isNode) {+        h$fs.stat(h$decodeUtf8z(file, file_off), function(err, fs) {+            if(err) {+                h$handlErrnoC(err, -1, 0, c);+            } else {+                h$base_fillStat(fs, stat, stat_off);+                c(0);+            }+        });+    } else+        h$unsupported(-1, c);+}+function h$base_umask(mode) {+    ;+    if(h$isNode) return process.umask(mode);+    return 0;+}+function h$base_write(fd, buf, buf_off, n, c) {+    ;+    var fdo = h$base_fds[fd];+    if(fdo && fdo.write) {+        fdo.write(fd, fdo, buf, buf_off, n, c);+    } else {+        h$errno = 22;+        c(-1);+    }+}+function h$base_ftruncate(fd, pos_1, pos_2, c) {+    ;+    if(h$isNode) {+        h$fs.ftruncate(fd, goog.math.Long.fromBits(pos_2, pos_1).toNumber(), function(err) {+            h$handleErrnoC(err, -1, 0, c);+        });+    } else+        h$unsupported(-1, c);+}+function h$base_unlink(file, file_off, c) {+    ;+    if(h$isNode) {+        h$fs.unlink(h$decodeUtf8z(file, file_off), function(err) {+            h$handleErrnoC(err, -1, 0, c);+        });+    } else+        h$unsupported(-1, c);+}+function h$base_getpid() {+    ;+    if(h$isNode) return process.pid;+    return 0;+}+function h$base_link(file1, file1_off, file2, file2_off, c) {+    ;+    if(h$isNode) {+        h$fs.link(h$decodeUtf8z(file1, file1_off), h$decodeUtf8z(file2, file2_off), function(err) {+            h$handleErrnoC(err, -1, 0, c);+        });+    } else+        h$unsupported(-1, c);+}+function h$base_mkfifo(file, file_off, mode, c) {+    throw "h$base_mkfifo";+}+function h$base_sigemptyset(sigset, sigset_off) {+    return 0;+    // throw "h$base_sigemptyset";+}+function h$base_sigaddset(sigset, sigset_off, sig) {+    return 0;+    // throw "h$base_sigaddset";+}+function h$base_sigprocmask(sig, sigset1, sigset1_off, sigset2, sigset2_off) {+    return 0;+    // throw "h$base_sigprocmask";+}+function h$base_tcgetattr(attr, termios, termios_off) {+    return 0;+}+function h$base_tcsetattr(attr, val, termios, termios_off) {+    return 0;+}+function h$base_utime(file, file_off, timbuf, timbuf_off, c) {+    ;+    if(h$isNode) {+        h$fs.fstat(h$decodeUtf8z(file, file_off), function(err, fs) {+            if(err) {+                h$handleErrnoC(err, 0, -1, c); // fixme+            } else {+                var atime = goog.math.Long.fromNumber(fs.atime.getTime());+                var mtime = goog.math.Long.fromNumber(fs.mtime.getTime());+                var ctime = goog.math.Long.fromNumber(fs.ctime.getTime());+                timbuf.i3[0] = atime.getHighBits();+                timbuf.i3[1] = atime.getLowBits();+                timbuf.i3[2] = mtime.getHighBits();+                timbuf.i3[3] = mtime.getLowBits();+                timbuf.i3[4] = ctime.getHighBits();+                timbuf.i3[5] = ctime.getLowBits();+                c(0);+            }+        });+    } else+        h$unsupported(-1, c);+}+function h$base_waitpid(pid, stat, stat_off, options, c) {+    throw "h$base_waitpid";+}+/** @const */ var h$base_o_rdonly = 0x00000;+/** @const */ var h$base_o_wronly = 0x00001;+/** @const */ var h$base_o_rdwr = 0x00002;+/** @const */ var h$base_o_accmode = 0x00003;+/** @const */ var h$base_o_append = 0x00008;+/** @const */ var h$base_o_creat = 0x00200;+/** @const */ var h$base_o_trunc = 0x00400;+/** @const */ var h$base_o_excl = 0x00800;+/** @const */ var h$base_o_noctty = 0x20000;+/** @const */ var h$base_o_nonblock = 0x00004;+/** @const */ var h$base_o_binary = 0x00000;+function h$base_c_s_isreg(mode) {+    return 1;+}+function h$base_c_s_ischr(mode) {+    return 0;+}+function h$base_c_s_isblk(mode) {+    return 0;+}+function h$base_c_s_isdir(mode) {+    return 0; // fixme+}+function h$base_c_s_isfifo(mode) {+    return 0;+}+function h$base_fillStat(fs, b, off) {+    if(off%4) throw "h$base_fillStat: not aligned";+    var o = off>>2;+    b.i3[o+0] = fs.mode;+    var s = goog.math.Long.fromNumber(fs.size);+    b.i3[o+1] = s.getHighBits();+    b.i3[o+2] = s.getLowBits();+    b.i3[o+3] = 0; // fixme+    b.i3[o+4] = 0; // fixme+    b.i3[o+5] = fs.dev;+    var i = goog.math.Long.fromNumber(fs.ino);+    b.i3[o+6] = i.getHighBits();+    b.i3[o+7] = i.getLowBits();+    b.i3[o+8] = fs.uid;+    b.i3[o+9] = fs.gid;+}+// [mode,size1,size2,mtime1,mtime2,dev,ino1,ino2,uid,gid] all 32 bit+/** @const */ var h$base_sizeof_stat = 40;+function h$base_st_mtime(stat, stat_off) {+    h$ret1 = stat.i3[(stat_off>>2)+4];+    return stat.i3[(stat_off>>2)+3];+}+function h$base_st_size(stat, stat_off) {+    h$ret1 = stat.i3[(stat_off>>2)+2];+    return stat.i3[(stat_off>>2)+1];+}+function h$base_st_mode(stat, stat_off) {+    return stat.i3[stat_off>>2];+}+function h$base_st_dev(stat, stat_off) {+    return stat.i3[(stat_off>>2)+5];+}+function h$base_st_ino(stat, stat_off) {+    h$ret1 = stat.i3[(stat_off>>2)+7];+    return stat.i3[(stat_off>>2)+6];+}+/** @const */ var h$base_echo = 1;+/** @const */ var h$base_tcsanow = 2;+/** @const */ var h$base_icanon = 4;+/** @const */ var h$base_vmin = 8;+/** @const */ var h$base_vtime = 16;+/** @const */ var h$base_sigttou = 0;+/** @const */ var h$base_sig_block = 0;+/** @const */ var h$base_sig_setmask = 0;+/** @const */ var h$base_f_getfl = 0;+/** @const */ var h$base_f_setfl = 0;+/** @const */ var h$base_f_setfd = 0;+/** @const */ var h$base_fd_cloexec = 0;+/** @const */ var h$base_sizeof_termios = 4;+/** @const */ var h$base_sizeof_sigset_t = 4;+/** @const */ var h$base_lflag = 0;+function h$base_poke_lflag(termios, termios_off, flag) {+    return 0;+}+function h$base_ptr_c_cc(termios, termios_off) {+    h$ret1 = 0;+    return h$newByteArray(8);+}+/** @const */ var h$base_default_buffer_size = 32768;+function h$base_c_s_issock(mode) {+    return 0; // fixme+}+/** @const */ var h$base_SEEK_SET = 0;+/** @const */ var h$base_SEEK_CUR = 1;+/** @const */ var h$base_SEEK_END = 2;+function h$base_set_saved_termios(a, b, c) {+    h$ret1 = 0+    return null;+}+function h$base_get_saved_termios(r) {+    h$ret1 = 0;+    return null;+}+// fixme+function h$lockFile(fd, dev, ino, for_writing) {+    ;+    return 0;+}+function h$unlockFile(fd) {+    ;+    return 0;+}+// engine-dependent setup+var h$base_readStdin , h$base_writeStderr, h$base_writeStdout;+var h$base_closeStdin = null, h$base_closeStderr = null, h$base_closeStdout = null;+var h$base_readFile, h$base_writeFile, h$base_closeFile;+var h$base_stdin_waiting = new h$Queue();+var h$base_stdin_chunk = { buf: null+                           , pos: 0+                           , processing: false+                           };+var h$base_stdin_eof = false;+var h$base_process_stdin = function() {+    var c = h$base_stdin_chunk;+    var q = h$base_stdin_waiting;+    if(!q.length() || c.processing) return;+    c.processing = true;+    if(!c.buf) { c.pos = 0; c.buf = process.stdin.read(); }+    while(c.buf && q.length()) {+        var x = q.dequeue();+        var n = Math.min(c.buf.length - c.pos, x.n);+        for(var i=0;i<n;i++) {+            x.buf.u8[i+x.off] = c.buf[c.pos+i];+        }+        c.pos += n;+        x.c(n);+        if(c.pos >= c.buf.length) c.buf = null;+        if(!c.buf && q.length()) { c.pos = 0; c.buf = process.stdin.read(); }+    }+    while(h$base_stdin_eof && q.length()) q.dequeue().c(0);+    c.processing = false;+}+if(h$isNode) {+    h$base_closeFile = function(fd, fdo, c) {+        h$fs.close(fd, function(err) {+            delete h$base_fds[fd];+            h$handleErrnoC(err, -1, 0, c);+        });+    }+    h$base_readFile = function(fd, fdo, buf, buf_offset, n, c) {+        var pos = typeof fdo.pos === 'number' ? fdo.pos : null;+        ;+        h$fs.read(fd, new Buffer(n), 0, n, pos, function(err, bytesRead, nbuf) {+            if(err) {+                h$setErrno(err);+                c(-1);+            } else {+                for(var i=bytesRead-1;i>=0;i--) buf.u8[buf_offset+i] = nbuf[i];+                if(typeof fdo.pos === 'number') fdo.pos += bytesRead;+                c(bytesRead);+            }+        });+    }+    h$base_readStdin = function(fd, fdo, buf, buf_offset, n, c) {+        ;+        h$base_stdin_waiting.enqueue({buf: buf, off: buf_offset, n: n, c: c});+        h$base_process_stdin();+    }+    h$base_closeStdin = function(fd, fdo, c) {+        ;+        // process.stdin.close(); fixme+        c(0);+    }+    h$base_writeFile = function(fd, fdo, buf, buf_offset, n, c) {+        var pos = typeof fdo.pos === 'number' ? fdo.pos : null;+        ;+        var nbuf = new Buffer(n);+        for(var i=0;i<n;i++) nbuf[i] = buf.u8[i+buf_offset];+        if(typeof fdo.pos === 'number') fdo.pos += n;+        h$fs.write(fd, nbuf, 0, n, pos, function(err, bytesWritten) {+            ;+            if(err) {+                h$setErrno(err);+                if(typeof fdo.pos === 'number') fdo.pos -= n;+                if(h$errno === 35)+                    setTimeout(function() { h$base_writeFile(fd, fdo, buf, buf_offset, n, c); }, 20);+                else c(-1);+            } else {+                if(typeof fdo.pos === 'number') fdo.pos += bytesWritten - n;+                c(bytesWritten);+            }+        });+    }+    h$base_writeStdout = function(fd, fdo, buf, buf_offset, n, c) {+        ;+        h$base_writeFile(1, fdo, buf, buf_offset, n, c);+    }+    h$base_closeStdout = function(fd, fdo, c) {+        ;+ // not actually closed, fixme?+        c(0);+    }+    h$base_writeStderr = function(fd, fdo, buf, buf_offset, n, c) {+        ;+        h$base_writeFile(2, fdo, buf, buf_offset, n, c);+    }+    h$base_closeStderr = function(fd, fdo, c) {+        ;+ // not actually closed, fixme?+        c(0);+    }+    process.stdin.on('readable', h$base_process_stdin);+    process.stdin.on('end', function() { h$base_stdin_eof = true; h$base_process_stdin(); });+} else if (h$isJsShell) {+    h$base_readStdin = function(fd, fdo, buf, buf_offset, n, c) {+        c(0);+    }+    h$base_writeStdout = function(fd, fdo, buf, buf_offset, n, c) {+        putstr(h$decodeUtf8(buf, n, buf_offset));+        c(n);+    }+    h$base_writeStderr = function(fd, fdo, buf, buf_offset, n, c) {+        printErr(h$decodeUtf8(buf, n, buf_offset));+        c(n);+    }+} else if(h$isJsCore) {+    h$base_readStdin = function(fd, fdo, buf, buf_offset, n, c) {+ c(0);+    }+    var h$base_stdoutLeftover = { f: print, val: null };+    var h$base_stderrLeftover = { f: debug, val: null };+    var h$base_writeWithLeftover = function(buf, n, buf_offset, c, lo) {+ var lines = h$decodeUtf8(buf, n, buf_offset).split(/\r?\n/);+ if(lines.length === 1) {+     if(lines[0].length) {+  if(lo.val !== null) lo.val += lines[0];+  else lo.val = lines[0];+     }+ } else {+            lo.f(((lo.val !== null) ? lo.val : '') + lines[0]);+     for(var i=1;i<lines.length-1;i++) lo.f(lines[i]);+     if(lines[lines.length-1].length) lo.val = lines[lines.length-1];+     else lo.val = null;+ }+ c(n);+    }+    h$base_writeStdout = function(fd, fdo, buf, buf_offset, n, c) {+ h$base_writeWithLeftover(buf, n, buf_offset, c, h$base_stdoutLeftover);+    }+    h$base_writeStderr = function(fd, fdo, buf, buf_offset, n, c) {+ // writing to stderr not supported, write to stdout+ h$base_writeWithLeftover(buf, n, buf_offset, c, h$base_stderrLeftover);+    }+} else { // browser / fallback+    h$base_readStdin = function(fd, fdo, buf, buf_offset, n, c) {+        c(0);+    }+    h$base_writeStdout = function(fd, fdo, buf, buf_offset, n, c) {+        console.log(h$decodeUtf8(buf, n, buf_offset));+        c(n);+    }+    h$base_writeStderr = function(fd, fdo, buf, buf_offset, n, c) {+        console.log(h$decodeUtf8(buf, n, buf_offset));+        c(n);+    }+}+var h$base_stdin_fd = { read: h$base_readStdin, close: h$base_closeStdin };+var h$base_stdout_fd = { write: h$base_writeStdout, close: h$base_closeStdout };+var h$base_stderr_fd = { write: h$base_writeStderr, close: h$base_closeStderr };+var h$base_fdN = -1; // negative file descriptors are 'virtual'+var h$base_fds = [h$base_stdin_fd, h$base_stdout_fd, h$base_stderr_fd];+function h$shutdownHaskellAndExit(code, fast) {+    if(h$isNode) {+        process.exit(code);+    } else if(h$isJsShell) {+        quit(code);+    } else if(h$isJsCore) {+ if(h$base_stdoutLeftover.val !== null) print(h$base_stdoutLeftover.val);+ if(h$base_stderrLeftover.val !== null) debug(h$base_stderrLeftover.val);+ // jsc does not support returning a nonzero value, print it instead+ if(code !== 0) debug("GHCJS JSC exit status: " + code);+ quit();+    }+}+// RAND_MAX = 32767+function h$rand() {+  return (32768 * Math.random()) & 32767;+}+/* Copyright (C) 1991-2014 Free Software Foundation, Inc.+   This file is part of the GNU C Library.++   The GNU C Library is free software; you can redistribute it and/or+   modify it under the terms of the GNU Lesser General Public+   License as published by the Free Software Foundation; either+   version 2.1 of the License, or (at your option) any later version.++   The GNU C Library is distributed in the hope that it will be useful,+   but WITHOUT ANY WARRANTY; without even the implied warranty of+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+   Lesser General Public License for more details.++   You should have received a copy of the GNU Lesser General Public+   License along with the GNU C Library; if not, see+   <http://www.gnu.org/licenses/>.  */+/* This header is separate from features.h so that the compiler can+   include it implicitly at the start of every compilation.  It must+   not itself include <features.h> or any other header that includes+   <features.h> because the implicit include comes before any feature+   test macros that may be defined in a source file before it first+   explicitly includes a system header.  GCC knows the name of this+   header in order to preinclude it.  */+/* glibc's intent is to support the IEC 559 math functionality, real+   and complex.  If the GCC (4.9 and later) predefined macros+   specifying compiler intent are available, use them to determine+   whether the overall intent is to support these features; otherwise,+   presume an older compiler has intent to support these features and+   define these macros by default.  */+/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) /+   Unicode 6.0.  */+/* We do not support C11 <threads.h>.  */+// JS Objects stuff+function h$isFloat (n) {+  return n===+n && n!==(n|0);+}+function h$isInteger (n) {+  return n===+n && n===(n|0);+}+/*+        -- 0 - null, 1 - integer,+        -- 2 - float, 3 - bool,+        -- 4 - string, 5 - array+        -- 6 - object+*/+function h$typeOf(o) {+    if (!(o instanceof Object)) {+        if (o == null) {+            return 0;+        } else if (typeof o == 'number') {+            if (h$isInteger(o)) {+                return 1;+            } else {+                return 2;+            }+        } else if (typeof o == 'boolean') {+            return 3;+        } else {+            return 4;+        }+    } else {+        if (Object.prototype.toString.call(o) == '[object Array]') {+            // it's an array+            return 5;+        } else if (!o) {+            // null +            return 0;+        } else {+            // it's an object+            return 6;+        }+    }+}+function h$listprops(o) {+    if (!(o instanceof Object)) {+        return [];+    }+    var l = [];+    for (var prop in o) {+        l.push(prop);+    }+    return l;+}+function h$flattenObj(o) {+    var l = [];+    for (var prop in o) {+        l.push([prop, o[prop]]);+    }+    return l;+}+/* Copyright (C) 1991-2014 Free Software Foundation, Inc.+   This file is part of the GNU C Library.++   The GNU C Library is free software; you can redistribute it and/or+   modify it under the terms of the GNU Lesser General Public+   License as published by the Free Software Foundation; either+   version 2.1 of the License, or (at your option) any later version.++   The GNU C Library is distributed in the hope that it will be useful,+   but WITHOUT ANY WARRANTY; without even the implied warranty of+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+   Lesser General Public License for more details.++   You should have received a copy of the GNU Lesser General Public+   License along with the GNU C Library; if not, see+   <http://www.gnu.org/licenses/>.  */+/* This header is separate from features.h so that the compiler can+   include it implicitly at the start of every compilation.  It must+   not itself include <features.h> or any other header that includes+   <features.h> because the implicit include comes before any feature+   test macros that may be defined in a source file before it first+   explicitly includes a system header.  GCC knows the name of this+   header in order to preinclude it.  */+/* glibc's intent is to support the IEC 559 math functionality, real+   and complex.  If the GCC (4.9 and later) predefined macros+   specifying compiler intent are available, use them to determine+   whether the overall intent is to support these features; otherwise,+   presume an older compiler has intent to support these features and+   define these macros by default.  */+/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) /+   Unicode 6.0.  */+/* We do not support C11 <threads.h>.  */+function h$ghcjs_setLineDash(arr, ctx) {+    if (typeof ctx.setLineDash !== 'undefined' ) {+        ctx.setLineDash(arr);+    } else if (typeof ctx.mozDash !== 'undefined' ) {+        ctx.mozDash = arr;+    }+};+function h$ghcjs_lineDashOffset(off, ctx) {+    if (typeof ctx.setLineDash !== 'undefined' ) {+        ctx.lineDashOffset = off;+    } else if (typeof ctx.mozDash !== 'undefined' ) {+        ctx.mozDashOffset = off;+    }+};+/* Copyright (C) 1991-2014 Free Software Foundation, Inc.+   This file is part of the GNU C Library.++   The GNU C Library is free software; you can redistribute it and/or+   modify it under the terms of the GNU Lesser General Public+   License as published by the Free Software Foundation; either+   version 2.1 of the License, or (at your option) any later version.++   The GNU C Library is distributed in the hope that it will be useful,+   but WITHOUT ANY WARRANTY; without even the implied warranty of+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+   Lesser General Public License for more details.++   You should have received a copy of the GNU Lesser General Public+   License along with the GNU C Library; if not, see+   <http://www.gnu.org/licenses/>.  */+/* This header is separate from features.h so that the compiler can+   include it implicitly at the start of every compilation.  It must+   not itself include <features.h> or any other header that includes+   <features.h> because the implicit include comes before any feature+   test macros that may be defined in a source file before it first+   explicitly includes a system header.  GCC knows the name of this+   header in order to preinclude it.  */+/* glibc's intent is to support the IEC 559 math functionality, real+   and complex.  If the GCC (4.9 and later) predefined macros+   specifying compiler intent are available, use them to determine+   whether the overall intent is to support these features; otherwise,+   presume an older compiler has intent to support these features and+   define these macros by default.  */+/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) /+   Unicode 6.0.  */+/* We do not support C11 <threads.h>.  */+function h$ghcjs_currentWindow() {+  return window;+};+function h$ghcjs_currentDocument() {+  return document;+};+/* Copyright (C) 1991-2014 Free Software Foundation, Inc.+   This file is part of the GNU C Library.++   The GNU C Library is free software; you can redistribute it and/or+   modify it under the terms of the GNU Lesser General Public+   License as published by the Free Software Foundation; either+   version 2.1 of the License, or (at your option) any later version.++   The GNU C Library is distributed in the hope that it will be useful,+   but WITHOUT ANY WARRANTY; without even the implied warranty of+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+   Lesser General Public License for more details.++   You should have received a copy of the GNU Lesser General Public+   License along with the GNU C Library; if not, see+   <http://www.gnu.org/licenses/>.  */+/* This header is separate from features.h so that the compiler can+   include it implicitly at the start of every compilation.  It must+   not itself include <features.h> or any other header that includes+   <features.h> because the implicit include comes before any feature+   test macros that may be defined in a source file before it first+   explicitly includes a system header.  GCC knows the name of this+   header in order to preinclude it.  */+/* glibc's intent is to support the IEC 559 math functionality, real+   and complex.  If the GCC (4.9 and later) predefined macros+   specifying compiler intent are available, use them to determine+   whether the overall intent is to support these features; otherwise,+   presume an older compiler has intent to support these features and+   define these macros by default.  */+/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) /+   Unicode 6.0.  */+/* We do not support C11 <threads.h>.  */+/* FNV-1 hash+ *+ * The FNV-1 hash description: http://isthe.com/chongo/tech/comp/fnv/+ * The FNV-1 hash is public domain: http://isthe.com/chongo/tech/comp/fnv/#public_domain+ */+function h$hashable_fnv_hash_offset(str_a, o, len, hash) {+  return h$hashable_fnv_hash(str_a, o, len, hash);+}+function h$hashable_fnv_hash(str_d, str_o, len, hash) {+  if(len > 0) {+    var d = str_d.u8;+    for(var i=0;i<len;i++) {+      hash = h$mulInt32(hash, 16777619) ^ d[str_o+i];+    }+  }+  return hash;+}+// int hashable_getRandomBytes(unsigned char *dest, int nbytes)+function h$hashable_getRandomBytes(dest_d, dest_o, len) {+  if(len > 0) {+    var d = dest_d.u8;+    for(var i=0;i<len;i++) {+      d[dest_o+i] = Math.floor(Math.random() * 256);+    }+  }+  return len;+}+/* Copyright (C) 1991-2014 Free Software Foundation, Inc.+   This file is part of the GNU C Library.++   The GNU C Library is free software; you can redistribute it and/or+   modify it under the terms of the GNU Lesser General Public+   License as published by the Free Software Foundation; either+   version 2.1 of the License, or (at your option) any later version.++   The GNU C Library is distributed in the hope that it will be useful,+   but WITHOUT ANY WARRANTY; without even the implied warranty of+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+   Lesser General Public License for more details.++   You should have received a copy of the GNU Lesser General Public+   License along with the GNU C Library; if not, see+   <http://www.gnu.org/licenses/>.  */+/* This header is separate from features.h so that the compiler can+   include it implicitly at the start of every compilation.  It must+   not itself include <features.h> or any other header that includes+   <features.h> because the implicit include comes before any feature+   test macros that may be defined in a source file before it first+   explicitly includes a system header.  GCC knows the name of this+   header in order to preinclude it.  */+/* glibc's intent is to support the IEC 559 math functionality, real+   and complex.  If the GCC (4.9 and later) predefined macros+   specifying compiler intent are available, use them to determine+   whether the overall intent is to support these features; otherwise,+   presume an older compiler has intent to support these features and+   define these macros by default.  */+/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) /+   Unicode 6.0.  */+/* We do not support C11 <threads.h>.  */+function h$_hs_text_memcpy(dst_v,dst_o2,src_v,src_o2,n) {+  return h$memcpy(dst_v,2*dst_o2,src_v,2*src_o2,2*n);+}+function h$_hs_text_memcmp(a_v,a_o2,b_v,b_o2,n) {+  return h$memcmp(a_v,2*a_o2,b_v,2*b_o2,2*n);+}+// decoder below adapted from cbits/cbits.c in the text package+var h$_text_UTF8_ACCEPT = 0;+var h$_text_UTF8_REJECT = 12+var h$_text_utf8d =+   [+  /*+   * The first part of the table maps bytes to character classes that+   * to reduce the size of the transition table and create bitmasks.+   */+   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,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,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,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,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,+   1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,+   7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,+   8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,+  10,3,3,3,3,3,3,3,3,3,3,3,3,4,3,3, 11,6,6,6,5,8,8,8,8,8,8,8,8,8,8,8,+  /*+   * The second part is a transition table that maps a combination of+   * a state of the automaton and a character class to a state.+   */+   0,12,24,36,60,96,84,12,12,12,48,72, 12,12,12,12,12,12,12,12,12,12,12,12,+  12, 0,12,12,12,12,12, 0,12, 0,12,12, 12,24,12,12,12,12,12,24,12,24,12,12,+  12,12,12,12,12,12,12,24,12,12,12,12, 12,24,12,12,12,12,12,12,12,24,12,12,+  12,12,12,12,12,12,12,36,12,36,12,12, 12,36,12,12,12,12,12,36,12,36,12,12,+  12,36,12,12,12,12,12,12,12,12,12,12];+/*+ * A best-effort decoder. Runs until it hits either end of input or+ * the start of an invalid byte sequence.+ *+ * At exit, updates *destoff with the next offset to write to, and+ * returns the next source offset to read from.+ */+function h$_hs_text_decode_utf8_internal ( dest_v+                                         , destoff_v, destoff_o+                                         , src_v, src_o+                                         , src_end_v, src_end_o+                                         , s+                                         ) {+  if(src_v === null || src_end_v === null) {+    h$ret1 = src_end_o;+    return null;+  }+  var dsto = destoff_v.dv.getUint32(destoff_o,true) << 1;+  var srco = src_o;+  var state = s.state;+  var codepoint = s.codepoint;+  var ddv = dest_v.dv;+  var sdv = src_v.dv;+  function decode(b) {+    var type = h$_text_utf8d[b];+    codepoint = (state !== h$_text_UTF8_ACCEPT) ?+      (b & 0x3f) | (codepoint << 6) :+      (0xff >>> type) & b;+    state = h$_text_utf8d[256 + state + type];+    return state;+  }+  while (srco < src_end_o) {+    if(decode(sdv.getUint8(srco++)) !== h$_text_UTF8_ACCEPT) {+      if(state !== h$_text_UTF8_REJECT) {+        continue;+      } else {+        break;+      }+    }+    if (codepoint <= 0xffff) {+      ddv.setUint16(dsto,codepoint,true);+      dsto += 2;+    } else {+      ddv.setUint16(dsto,(0xD7C0 + (codepoint >>> 10)),true);+      ddv.setUint16(dsto+2,(0xDC00 + (codepoint & 0x3FF)),true);+      dsto += 4;+    }+    s.last = srco;+  }+  s.state = state;+  s.codepoint = codepoint;+  destoff_v.dv.setUint32(destoff_o,dsto>>1,true);+  h$ret1 = srco;+  return src_v;+}+function h$_hs_text_decode_utf8_state( dest_v+                                     , destoff_v, destoff_o+                                     , src_v, src_o+                                     , srcend_v, srcend_o+                                     , codepoint0_v, codepoint0_o+                                     , state0_v, state0_o+                                     ) {+  var s = { state: state0_v.dv.getUint32(state0_o, true)+          , codepoint: codepoint0_v.dv.getUint32(codepoint0_o, true)+          , last: src_o+          };+  var ret = h$_hs_text_decode_utf8_internal ( dest_v+                                            , destoff_v, destoff_o+                                            , src_v.arr[src_o][0], src_v.arr[src_o][1]+                                            , srcend_v, srcend_o+                                            , s+                                            );+  src_v.arr[src_o][1] = s.last;+  state0_v.dv.setUint32(state0_o, s.state, true);+  codepoint0_v.dv.setUint32(codepoint0_o, s.codepoint, true);+  if(s.state === h$_text_UTF8_REJECT)+    h$ret1--;+  return ret;+}+function h$_hs_text_decode_utf8( dest_v+                               , destoff_v, destoff_o+                               , src_v, src_o+                               , srcend_v, srcend_o+                               ) {+  /* Back up if we have an incomplete or invalid encoding */+  var s = { state: h$_text_UTF8_ACCEPT+          , codepoint: 0+          , last: src_o+          };+  var ret = h$_hs_text_decode_utf8_internal ( dest_v+                                            , destoff_v, destoff_o+                                            , src_v, src_o+                                            , srcend_v, srcend_o+                                            , s+                                            );+  if (s.state !== h$_text_UTF8_ACCEPT)+    h$ret1--;+  return ret;+}+/*+ * The ISO 8859-1 (aka latin-1) code points correspond exactly to the first 256 unicode+ * code-points, therefore we can trivially convert from a latin-1 encoded bytestring to+ * an UTF16 array+ */+function h$_hs_text_decode_latin1(dest_d, src_d, src_o, srcend_d, srcend_o) {+  var p = src_o;+  var d = 0;+  var su8 = src_d.u8;+  var su3 = src_d.u3;+  var du1 = dest_d.u1;+  // consume unaligned prefix+  while(p != srcend_o && p & 3) {+    du1[d++] = su8[p++];+  }+  // iterate over 32-bit aligned loads+  if(su3) {+    while (p < srcend_o - 3) {+      var w = su3[p>>2];+      du1[d++] = w & 0xff;+      du1[d++] = (w >>> 8) & 0xff;+      du1[d++] = (w >>> 16) & 0xff;+      du1[d++] = (w >>> 32) & 0xff;+      p += 4;+    }+  }+  // handle unaligned suffix+  while (p != srcend_o)+    du1[d++] = su8[p++];+}+function h$_hs_text_encode_utf8(destp_v, destp_o, src_v, srcoff, srclen) {+  var dest_v = destp_v.arr[destp_o][0];+  var dest_o = destp_v.arr[destp_o][1];+  var src = srcoff;+  var dest = dest_o;+  var srcend = src + srclen;+  var srcu1 = src_v.u1;+  if(!srcu1) throw "h$_hs_text_encode_utf8: invalid alignment for source";+  var srcu3 = src_v.u3;+  var destu8 = dest_v.u8;+  while(src < srcend) {+    // run of (aligned) ascii characters+    while(srcu3 && !(src & 1) && srcend - src >= 2) {+      var w = srcu3[src>>1];+      if(w & 0xFF80FF80) break;+      destu8[dest++] = w & 0xFFFF;+      destu8[dest++] = w >>> 16;+      src += 2;+    }+    while(src < srcend) {+      var w = srcu1[src++];+      if(w <= 0x7F) {+        destu8[dest++] = w;+        break; // go back to a stream of ASCII+      } else if(w <= 0x7FF) {+        destu8[dest++] = (w >> 6) | 0xC0;+        destu8[dest++] = (w & 0x3f) | 0x80;+      } else if(w < 0xD800 || w > 0xDBFF) {+        destu8[dest++] = (w >>> 12) | 0xE0;+        destu8[dest++] = ((w >> 6) & 0x3F) | 0x80;+        destu8[dest++] = (w & 0x3F) | 0x80;+      } else {+        var c = ((w - 0xD800) << 10) + (srcu1[src++] - 0xDC00) + 0x10000;+        destu8[dest++] = (c >>> 18) | 0xF0;+        destu8[dest++] = ((c >> 12) & 0x3F) | 0x80;+        destu8[dest++] = ((c >> 6) & 0x3F) | 0x80;+        destu8[dest++] = (c & 0x3F) | 0x80;+      }+    }+  }+  destp_v.arr[destp_o][1] = dest;+}
+ ghcjs/ghcjs-demo.jsexe/out.js view
@@ -0,0 +1,32104 @@+function h$ghczmprimZCGHCziTypesziGT_con_e()+{+  return h$stack[h$sp];+};+function h$ghczmprimZCGHCziTypesziEQ_con_e()+{+  return h$stack[h$sp];+};+function h$ghczmprimZCGHCziTypesziLT_con_e()+{+  return h$stack[h$sp];+};+function h$ghczmprimZCGHCziTypesziTrue_con_e()+{+  return h$stack[h$sp];+};+function h$ghczmprimZCGHCziTypesziZMZN_con_e()+{+  return h$stack[h$sp];+};+function h$ghczmprimZCGHCziTypesziIzh_con_e()+{+  return h$stack[h$sp];+};+function h$ghczmprimZCGHCziTypesziIzh_e()+{+  h$r1 = h$r2;+  return h$stack[h$sp];+};+function h$ghczmprimZCGHCziTypesziFalse_con_e()+{+  return h$stack[h$sp];+};+function h$ghczmprimZCGHCziTypesziDzh_con_e()+{+  return h$stack[h$sp];+};+function h$ghczmprimZCGHCziTypesziDzh_e()+{+  h$r1 = h$r2;+  return h$stack[h$sp];+};+function h$ghczmprimZCGHCziTypesziZC_con_e()+{+  return h$stack[h$sp];+};+function h$ghczmprimZCGHCziTypesziZC_e()+{+  h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$r2, h$r3);+  return h$stack[h$sp];+};+function h$ghczmprimZCGHCziTypesziCzh_con_e()+{+  return h$stack[h$sp];+};+function h$ghczmprimZCGHCziTypesziCzh_e()+{+  h$r1 = h$r2;+  return h$stack[h$sp];+};+function h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e()+{+  return h$stack[h$sp];+};+function h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_e()+{+  h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$r2, h$r3, h$r4);+  return h$stack[h$sp];+};+function h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e()+{+  return h$stack[h$sp];+};+function h$ghczmprimZCGHCziTupleziZLz2cUZR_e()+{+  h$r1 = h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, h$r2, h$r3);+  return h$stack[h$sp];+};+function h$ghczmprimZCGHCziTupleziZLZR_con_e()+{+  return h$stack[h$sp];+};+function h$ghczmprimZCGHCziIntWord64ziintToInt64zh_e()+{+  var a = h$hs_intToInt64(h$r2);+  h$r1 = a;+  h$r2 = h$ret1;+  return h$stack[h$sp];+};+function h$$e()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$r1 = true;+  }+  else+  {+    h$r1 = false;+  };+  return h$stack[h$sp];+};+function h$$d()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var e = a;+  if((b === e))+  {+    h$l3(d, c, h$ghczmprimZCGHCziClasseszizdfEqZMZNzuzdszdczeze);+    return h$ap_2_2_fast();+  }+  else+  {+    h$r1 = false;+  };+  return h$stack[h$sp];+};+function h$$c()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  h$sp -= 4;+  h$pp9(a, h$$d);+  return h$e(b);+};+function h$$b()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  h$sp -= 3;+  if((a.f.a === 1))+  {+    h$r1 = false;+  }+  else+  {+    var c = a.d1;+    h$pp13(c, a.d2, h$$c);+    return h$e(b);+  };+  return h$stack[h$sp];+};+function h$$a()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$p1(h$$e);+    return h$e(b);+  }+  else+  {+    var c = a.d1;+    h$p3(c, a.d2, h$$b);+    return h$e(b);+  };+};+function h$ghczmprimZCGHCziClasseszizdfEqZMZNzuzdszdczeze_e()+{+  h$p2(h$r3, h$$a);+  return h$e(h$r2);+};+function h$$g()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var d = a;+  if((c <= d))+  {+    h$r1 = a;+  }+  else+  {+    h$r1 = b;+  };+  return h$stack[h$sp];+};+function h$$f()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p3(a, a, h$$g);+  return h$e(b);+};+function h$ghczmprimZCGHCziClasseszizdfOrdIntzuzdcmax_e()+{+  h$p2(h$r3, h$$f);+  return h$e(h$r2);+};+function h$$i()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var d = a;+  if((c <= d))+  {+    h$r1 = b;+  }+  else+  {+    h$r1 = a;+  };+  return h$stack[h$sp];+};+function h$$h()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p3(a, a, h$$i);+  return h$e(b);+};+function h$ghczmprimZCGHCziClasseszizdfOrdIntzuzdcmin_e()+{+  h$p2(h$r3, h$$h);+  return h$e(h$r2);+};+function h$$j()+{+  var a = h$r1;+  --h$sp;+  if(a)+  {+    h$r1 = false;+  }+  else+  {+    h$r1 = true;+  };+  return h$stack[h$sp];+};+function h$ghczmprimZCGHCziClasseszizdfEqZMZNzuzdszdczsze_e()+{+  h$p1(h$$j);+  h$r1 = h$ghczmprimZCGHCziClasseszizdfEqZMZNzuzdszdczeze;+  return h$ap_2_2_fast();+};+function h$$l()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  var d = ((b === c) ? 1 : 0);+  h$r1 = (d ? true : false);+  return h$stack[h$sp];+};+function h$$k()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$l);+  return h$e(b);+};+function h$ghczmprimZCGHCziClasseszizdfEqCharzuzdczeze_e()+{+  h$p2(h$r3, h$$k);+  return h$e(h$r2);+};+function h$$n()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  var d = ((b !== c) ? 1 : 0);+  h$r1 = (d ? true : false);+  return h$stack[h$sp];+};+function h$$m()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$n);+  return h$e(b);+};+function h$ghczmprimZCGHCziClasseszizdfEqCharzuzdczsze_e()+{+  h$p2(h$r3, h$$m);+  return h$e(h$r2);+};+function h$ghczmprimZCGHCziClassesziDZCOrd_con_e()+{+  return h$stack[h$sp];+};+function h$ghczmprimZCGHCziClassesziDZCOrd_e()+{+  h$r1 = h$c8(h$ghczmprimZCGHCziClassesziDZCOrd_con_e, h$r2, h$r3, h$r4, h$r5, h$r6, h$r7, h$r8, h$r9);+  return h$stack[h$sp];+};+function h$ghczmprimZCGHCziClassesziDZCEq_con_e()+{+  return h$stack[h$sp];+};+function h$ghczmprimZCGHCziClassesziDZCEq_e()+{+  h$r1 = h$c2(h$ghczmprimZCGHCziClassesziDZCEq_con_e, h$r2, h$r3);+  return h$stack[h$sp];+};+function h$ghczmprimZCGHCziClasseszimodIntzh_e()+{+  var a = h$r2;+  var b = h$r3;+  var c = (a % b);+  if((a > 0))+  {+    if((b < 0))+    {+      var d = c;+      if((d === 0))+      {+        h$r1 = 0;+      }+      else+      {+        h$r1 = ((d + b) | 0);+      };+    }+    else+    {+      if((a < 0))+      {+        if((b > 0))+        {+          var e = c;+          if((e === 0))+          {+            h$r1 = 0;+          }+          else+          {+            h$r1 = ((e + b) | 0);+          };+        }+        else+        {+          h$r1 = c;+        };+      }+      else+      {+        h$r1 = c;+      };+    };+  }+  else+  {+    if((a < 0))+    {+      if((b > 0))+      {+        var f = c;+        if((f === 0))+        {+          h$r1 = 0;+        }+        else+        {+          h$r1 = ((f + b) | 0);+        };+      }+      else+      {+        h$r1 = c;+      };+    }+    else+    {+      h$r1 = c;+    };+  };+  return h$stack[h$sp];+};+function h$ghczmprimZCGHCziClasseszidivIntzh_e()+{+  var a = h$r2;+  var b = h$r3;+  if((a > 0))+  {+    if((b < 0))+    {+      var c = ((a - 1) | 0);+      var d = ((c / b) | 0);+      h$r1 = ((d - 1) | 0);+    }+    else+    {+      if((a < 0))+      {+        if((b > 0))+        {+          var e = ((a + 1) | 0);+          var f = ((e / b) | 0);+          h$r1 = ((f - 1) | 0);+        }+        else+        {+          h$r1 = ((a / b) | 0);+        };+      }+      else+      {+        h$r1 = ((a / b) | 0);+      };+    };+  }+  else+  {+    if((a < 0))+    {+      if((b > 0))+      {+        var g = ((a + 1) | 0);+        var h = ((g / b) | 0);+        h$r1 = ((h - 1) | 0);+      }+      else+      {+        h$r1 = ((a / b) | 0);+      };+    }+    else+    {+      h$r1 = ((a / b) | 0);+    };+  };+  return h$stack[h$sp];+};+function h$ghczmprimZCGHCziClasseszicompareIntzh_e()+{+  var a = h$r2;+  var b = h$r3;+  if((a < b))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziLT;+  }+  else+  {+    if((a === b))+    {+      h$r1 = h$ghczmprimZCGHCziTypesziEQ;+    }+    else+    {+      h$r1 = h$ghczmprimZCGHCziTypesziGT;+    };+  };+  return h$stack[h$sp];+};+function h$$p()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(a, b, h$ghczmprimZCGHCziClasseszicompareIntzh);+  return h$ap_2_2_fast();+};+function h$$o()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$p);+  return h$e(b);+};+function h$ghczmprimZCGHCziClasseszicompareInt_e()+{+  h$p2(h$r3, h$$o);+  return h$e(h$r2);+};+function h$$r()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  var d = ((b <= c) ? 1 : 0);+  h$r1 = (d ? true : false);+  return h$stack[h$sp];+};+function h$$q()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$r);+  return h$e(b);+};+function h$ghczmprimZCGHCziClasseszileInt_e()+{+  h$p2(h$r3, h$$q);+  return h$e(h$r2);+};+function h$$t()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  var d = ((b < c) ? 1 : 0);+  h$r1 = (d ? true : false);+  return h$stack[h$sp];+};+function h$$s()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$t);+  return h$e(b);+};+function h$ghczmprimZCGHCziClassesziltInt_e()+{+  h$p2(h$r3, h$$s);+  return h$e(h$r2);+};+function h$$v()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  var d = ((b >= c) ? 1 : 0);+  h$r1 = (d ? true : false);+  return h$stack[h$sp];+};+function h$$u()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$v);+  return h$e(b);+};+function h$ghczmprimZCGHCziClasseszigeInt_e()+{+  h$p2(h$r3, h$$u);+  return h$e(h$r2);+};+function h$$x()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  var d = ((b > c) ? 1 : 0);+  h$r1 = (d ? true : false);+  return h$stack[h$sp];+};+function h$$w()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$x);+  return h$e(b);+};+function h$ghczmprimZCGHCziClasseszigtInt_e()+{+  h$p2(h$r3, h$$w);+  return h$e(h$r2);+};+function h$$z()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  var d = ((b !== c) ? 1 : 0);+  h$r1 = (d ? true : false);+  return h$stack[h$sp];+};+function h$$y()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$z);+  return h$e(b);+};+function h$ghczmprimZCGHCziClasseszineInt_e()+{+  h$p2(h$r3, h$$y);+  return h$e(h$r2);+};+function h$$B()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  var d = ((b === c) ? 1 : 0);+  h$r1 = (d ? true : false);+  return h$stack[h$sp];+};+function h$$A()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$B);+  return h$e(b);+};+function h$ghczmprimZCGHCziClasseszieqInt_e()+{+  h$p2(h$r3, h$$A);+  return h$e(h$r2);+};+function h$$C()+{+  var a = h$r1;+  --h$sp;+  h$r1 = a.d1;+  return h$ap_0_0_fast();+};+function h$ghczmprimZCGHCziClasseszizeze_e()+{+  h$p1(h$$C);+  return h$e(h$r2);+};+function h$$E()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(((b + 1) | 0), a);+  return h$ap_1_1_fast();+};+function h$$D()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = b.d3;+  var f = h$r2;+  var g = a.u8[(c + f)];+  if((g === 0))+  {+    return h$e(d);+  }+  else+  {+    h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, g, h$c2(h$$E, e, f));+  };+  return h$stack[h$sp];+};+function h$ghczmprimZCGHCziCStringziunpackAppendCStringzh_e()+{+  var a = h$r3;+  var b = h$r4;+  var c = h$c(h$$D);+  c.d1 = h$r2;+  c.d2 = h$d3(a, b, c);+  h$l2(0, c);+  return h$ap_1_1_fast();+};+function h$$G()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(((b + 1) | 0), a);+  return h$ap_1_1_fast();+};+function h$$F()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = h$r2;+  var f = a.u8[(c + e)];+  if((f === 0))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, f, h$c2(h$$G, d, e));+  };+  return h$stack[h$sp];+};+function h$ghczmprimZCGHCziCStringziunpackCStringzh_e()+{+  var a = h$r3;+  var b = h$c(h$$F);+  b.d1 = h$r2;+  b.d2 = h$d2(a, b);+  h$l2(0, b);+  return h$ap_1_1_fast();+};+function h$$I()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(((b + 1) | 0), a);+  return h$ap_1_1_fast();+};+function h$$H()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = b.d3;+  var f = b.d4;+  var g = h$r2;+  var h = a.u8[(c + g)];+  if((h === 0))+  {+    h$r1 = e;+    return h$ap_0_0_fast();+  }+  else+  {+    h$l3(h$c2(h$$I, f, g), h, d);+    return h$ap_2_2_fast();+  };+};+function h$ghczmprimZCGHCziCStringziunpackFoldrCStringzh_e()+{+  var a = h$r3;+  var b = h$r4;+  var c = h$r5;+  var d = h$c(h$$H);+  d.d1 = h$r2;+  d.d2 = h$d4(a, b, c, d);+  h$l2(0, d);+  return h$ap_1_1_fast();+};+function h$$N()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(((b + 4) | 0), a);+  return h$ap_1_1_fast();+};+function h$$M()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(((b + 3) | 0), a);+  return h$ap_1_1_fast();+};+function h$$L()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(((b + 2) | 0), a);+  return h$ap_1_1_fast();+};+function h$$K()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(((b + 1) | 0), a);+  return h$ap_1_1_fast();+};+function h$$J()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = h$r2;+  var f = a.u8[(c + e)];+  if((f === 0))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    if((f <= 127))+    {+      h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, f, h$c2(h$$K, d, e));+    }+    else+    {+      if((f <= 223))+      {+        var g = h$c2(h$$L, d, e);+        var h = ((e + 1) | 0);+        var i = a.u8[(c + h)];+        var j = ((i - 128) | 0);+        var k = f;+        var l = ((k - 192) | 0);+        var m = (l << 6);+        h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, ((m + j) | 0), g);+      }+      else+      {+        if((f <= 239))+        {+          var n = h$c2(h$$M, d, e);+          var o = ((e + 2) | 0);+          var p = a.u8[(c + o)];+          var q = ((e + 1) | 0);+          var r = a.u8[(c + q)];+          var s = p;+          var t = ((s - 128) | 0);+          var u = r;+          var v = ((u - 128) | 0);+          var w = (v << 6);+          var x = f;+          var y = ((x - 224) | 0);+          var z = (y << 12);+          var A = ((z + w) | 0);+          h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, ((A + t) | 0), n);+        }+        else+        {+          var B = h$c2(h$$N, d, e);+          var C = ((e + 3) | 0);+          var D = a.u8[(c + C)];+          var E = ((e + 2) | 0);+          var F = a.u8[(c + E)];+          var G = ((e + 1) | 0);+          var H = a.u8[(c + G)];+          var I = D;+          var J = ((I - 128) | 0);+          var K = F;+          var L = ((K - 128) | 0);+          var M = (L << 6);+          var N = H;+          var O = ((N - 128) | 0);+          var P = (O << 12);+          var Q = f;+          var R = ((Q - 240) | 0);+          var S = (R << 18);+          var T = ((S + P) | 0);+          var U = ((T + M) | 0);+          h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, ((U + J) | 0), B);+        };+      };+    };+  };+  return h$stack[h$sp];+};+function h$ghczmprimZCGHCziCStringziunpackCStringUtf8zh_e()+{+  var a = h$r3;+  var b = h$c(h$$J);+  b.d1 = h$r2;+  b.d2 = h$d2(a, b);+  h$l2(0, b);+  return h$ap_1_1_fast();+};+function h$ghcjszmprimZCGHCJSziPrimziInternalziblockedIndefinitelyOnSTM_e()+{+  h$bh();+  h$l2(h$baseZCGHCziIOziExceptionziBlockedIndefinitelyOnSTM,+  h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnSTMzuzdctoException);+  return h$ap_1_1_fast();+};+function h$ghcjszmprimZCGHCJSziPrimziInternalziblockedIndefinitelyOnMVar_e()+{+  h$bh();+  h$l2(h$baseZCGHCziIOziExceptionziBlockedIndefinitelyOnMVar,+  h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnMVarzuzdctoException);+  return h$ap_1_1_fast();+};+function h$ghcjszmprimZCGHCJSziPrimziInternalziwouldBlock_e()+{+  h$l2(h$c1(h$ghcjszmprimZCGHCJSziPrimziWouldBlockException_con_e, h$r2),+  h$ghcjszmprimZCGHCJSziPrimzizdfExceptionWouldBlockExceptionzuzdctoException);+  return h$ap_1_1_fast();+};+function h$$P()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l2(a, h$ghcjszmprimZCGHCJSziPrimzigetProp1);+  return h$ap_1_1_fast();+};+function h$$O()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  }+  else+  {+    var b = a.d1;+    h$p2(a.d2, h$$P);+    h$r1 = b;+    return h$ap_0_0_fast();+  };+  return h$stack[h$sp];+};+function h$ghcjszmprimZCGHCJSziPrimzigetProp1_e()+{+  h$p1(h$$O);+  return h$e(h$r2);+};+function h$ghcjszmprimZCGHCJSziPrimzizdfExceptionWouldBlockExceptionzuzdctoException_e()+{+  h$r1 = h$c2(h$baseZCGHCziExceptionziSomeException_con_e, h$ghcjszmprimZCGHCJSziPrimzizdfExceptionWouldBlockException,+  h$r2);+  return h$stack[h$sp];+};+function h$ghcjszmprimZCGHCJSziPrimzizdfExceptionJSExceptionzuzdctoException_e()+{+  h$r1 = h$c2(h$baseZCGHCziExceptionziSomeException_con_e, h$ghcjszmprimZCGHCJSziPrimzizdfExceptionJSException, h$r2);+  return h$stack[h$sp];+};+function h$$R()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$l4(c, a.d1, b, h$ghcjszmprimZCGHCJSziPrimzizdwzdcshowsPrec);+  return h$ap_3_3_fast();+};+function h$$Q()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  h$sp -= 3;+  h$pp5(a, h$$R);+  return h$e(b);+};+function h$ghcjszmprimZCGHCJSziPrimzizdfShowWouldBlockExceptionzuzdcshowsPrec_e()+{+  h$p3(h$r3, h$r4, h$$Q);+  return h$e(h$r2);+};+function h$$S()+{+  var a = h$r1;+  --h$sp;+  h$l4(h$ghczmprimZCGHCziTypesziZMZN, a.d1, 0, h$ghcjszmprimZCGHCJSziPrimzizdwzdcshowsPrec);+  return h$ap_3_3_fast();+};+function h$ghcjszmprimZCGHCJSziPrimzizdfShowWouldBlockExceptionzuzdcshow_e()+{+  h$p1(h$$S);+  return h$e(h$r2);+};+var h$ghcjszmprimZCGHCJSziPrimzizdfShowWouldBlockException2 = h$strta("WouldBlockException ");+function h$$V()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l3(h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$baseZCGHCziShowzizdfShowChar1, b), a, h$baseZCGHCziShowzishowLitString);+  return h$ap_2_2_fast();+};+function h$$U()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l3(h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$baseZCGHCziShowzizdfShowChar1, h$c2(h$ghczmprimZCGHCziTypesziZC_con_e,+  h$baseZCGHCziShowzishows12, b)), a, h$baseZCGHCziShowzishowLitString);+  return h$ap_2_2_fast();+};+function h$$T()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l3(h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$baseZCGHCziShowzizdfShowChar1, h$c2(h$$U, a, b)),+  h$ghcjszmprimZCGHCJSziPrimzizdfShowWouldBlockException2, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+function h$ghcjszmprimZCGHCJSziPrimzizdwzdcshowsPrec_e()+{+  var a = h$r2;+  var b = h$r3;+  var c = h$r4;+  if((a >= 11))+  {+    h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$baseZCGHCziShowzishows13, h$c2(h$$T, b, c));+  }+  else+  {+    h$l3(h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$baseZCGHCziShowzizdfShowChar1, h$c2(h$$V, b, c)),+    h$ghcjszmprimZCGHCJSziPrimzizdfShowWouldBlockException2, h$baseZCGHCziBasezizpzp);+    return h$ap_2_2_fast();+  };+  return h$stack[h$sp];+};+function h$$W()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l4(b, a.d1, 0, h$ghcjszmprimZCGHCJSziPrimzizdwzdcshowsPrec);+  return h$ap_3_3_fast();+};+function h$ghcjszmprimZCGHCJSziPrimzizdfShowWouldBlockException1_e()+{+  h$p2(h$r3, h$$W);+  return h$e(h$r2);+};+function h$ghcjszmprimZCGHCJSziPrimzizdfShowWouldBlockExceptionzuzdcshowList_e()+{+  h$l4(h$r3, h$r2, h$ghcjszmprimZCGHCJSziPrimzizdfShowWouldBlockException1, h$baseZCGHCziShowzishowListzuzu);+  return h$baseZCGHCziShowzishowListzuzu_e;+};+var h$ghcjszmprimZCGHCJSziPrimzizdfExceptionWouldBlockExceptionzuww5 = h$strta("WouldBlockException");+function h$ghcjszmprimZCGHCJSziPrimzizdfExceptionWouldBlockExceptionzuzdctypeRepzh_e()+{+  return h$e(h$ghcjszmprimZCGHCJSziPrimzizdfExceptionWouldBlockException1);+};+function h$$Y()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l4(b, h$ghcjszmprimZCGHCJSziPrimzizdfExceptionWouldBlockExceptionzuzdctypeRepzh, a, h$baseZCDataziTypeablezicast);+  return h$baseZCDataziTypeablezicast_e;+};+function h$$X()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  h$p2(a.d2, h$$Y);+  h$l2(b, h$baseZCGHCziExceptionzizdp1Exception);+  return h$baseZCGHCziExceptionzizdp1Exception_e;+};+function h$ghcjszmprimZCGHCJSziPrimzizdfExceptionWouldBlockExceptionzuzdcfromException_e()+{+  h$p1(h$$X);+  return h$e(h$r2);+};+function h$$aa()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l3(a, b, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+function h$$Z()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(h$c2(h$$aa, b, a.d2), h$ghczmprimZCGHCziTypesziZC, h$ghcjszmprimZCGHCJSziPrimzizdfShowJSException2);+  return h$ap_2_2_fast();+};+function h$ghcjszmprimZCGHCJSziPrimzizdfShowJSExceptionzuzdcshowsPrec_e()+{+  h$p2(h$r4, h$$Z);+  return h$e(h$r3);+};+function h$$ab()+{+  var a = h$r1;+  --h$sp;+  h$l3(a.d2, h$ghczmprimZCGHCziTypesziZC, h$ghcjszmprimZCGHCJSziPrimzizdfShowJSException2);+  return h$ap_2_2_fast();+};+function h$ghcjszmprimZCGHCJSziPrimzizdfShowJSExceptionzuzdcshow_e()+{+  h$p1(h$$ab);+  return h$e(h$r2);+};+var h$$ghcjszmprimzm0zi1zi0zi0ZCGHCJSziPrim_V = h$str("JavaScript exception: ");+function h$ghcjszmprimZCGHCJSziPrimzizdfShowJSException2_e()+{+  h$r5 = h$r3;+  h$r4 = h$r2;+  h$r3 = 0;+  h$r2 = h$$ghcjszmprimzm0zi1zi0zi0ZCGHCJSziPrim_V();+  h$r1 = h$ghczmprimZCGHCziCStringziunpackFoldrCStringzh;+  return h$ap_3_4_fast();+};+function h$$ad()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l3(a, b, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+function h$$ac()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(h$c2(h$$ad, b, a.d2), h$ghczmprimZCGHCziTypesziZC, h$ghcjszmprimZCGHCJSziPrimzizdfShowJSException2);+  return h$ap_2_2_fast();+};+function h$ghcjszmprimZCGHCJSziPrimzizdfShowJSException1_e()+{+  h$p2(h$r3, h$$ac);+  return h$e(h$r2);+};+function h$ghcjszmprimZCGHCJSziPrimzizdfShowJSExceptionzuzdcshowList_e()+{+  h$l4(h$r3, h$r2, h$ghcjszmprimZCGHCJSziPrimzizdfShowJSException1, h$baseZCGHCziShowzishowListzuzu);+  return h$baseZCGHCziShowzishowListzuzu_e;+};+var h$ghcjszmprimZCGHCJSziPrimzizdfExceptionJSExceptionzuww3 = h$strta("ghcjs-prim-0.1.0.0");+var h$ghcjszmprimZCGHCJSziPrimzizdfExceptionJSException4 = h$strta("GHCJS.Prim");+var h$ghcjszmprimZCGHCJSziPrimzizdfExceptionJSException3 = h$strta("JSException");+function h$ghcjszmprimZCGHCJSziPrimzizdfExceptionJSExceptionzuzdctypeRepzh_e()+{+  return h$e(h$ghcjszmprimZCGHCJSziPrimzizdfExceptionJSException1);+};+function h$$af()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l4(b, h$ghcjszmprimZCGHCJSziPrimzizdfExceptionJSExceptionzuzdctypeRepzh, a, h$baseZCDataziTypeablezicast);+  return h$baseZCDataziTypeablezicast_e;+};+function h$$ae()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  h$p2(a.d2, h$$af);+  h$l2(b, h$baseZCGHCziExceptionzizdp1Exception);+  return h$baseZCGHCziExceptionzizdp1Exception_e;+};+function h$ghcjszmprimZCGHCJSziPrimzizdfExceptionJSExceptionzuzdcfromException_e()+{+  h$p1(h$$ae);+  return h$e(h$r2);+};+function h$ghcjszmprimZCGHCJSziPrimziWouldBlockException_con_e()+{+  return h$stack[h$sp];+};+function h$ghcjszmprimZCGHCJSziPrimziWouldBlockException_e()+{+  h$r1 = h$c1(h$ghcjszmprimZCGHCJSziPrimziWouldBlockException_con_e, h$r2);+  return h$stack[h$sp];+};+function h$ghcjszmprimZCGHCJSziPrimziJSException_con_e()+{+  return h$stack[h$sp];+};+function h$ghcjszmprimZCGHCJSziPrimziJSException_e()+{+  h$r1 = h$c2(h$ghcjszmprimZCGHCJSziPrimziJSException_con_e, h$r2, h$r3);+  return h$stack[h$sp];+};+function h$ghcjszmprimZCGHCJSziPrimziJSRef_con_e()+{+  return h$stack[h$sp];+};+function h$ghcjszmprimZCGHCJSziPrimziJSRef_e()+{+  h$r1 = h$c1(h$ghcjszmprimZCGHCJSziPrimziJSRef_con_e, h$r2);+  return h$stack[h$sp];+};+function h$$ah()+{+  var a = h$r1;+  --h$sp;+  var b = h$fromHsString(a);+  h$r1 = h$c1(h$ghcjszmprimZCGHCJSziPrimziJSRef_con_e, b);+  return h$stack[h$sp];+};+function h$$ag()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p1(h$$ah);+  return h$e(a);+};+function h$ghcjszmprimZCGHCJSziPrimzitoJSString_e()+{+  h$p2(h$r2, h$$ag);+  h$r1 = h$ghcjszmprimZCGHCJSziPrimzigetProp1;+  return h$ap_1_1_fast();+};+function h$ghcjszmprimZCGHCJSziPrimzifromJSString_e()+{+  h$r1 = h$ghcjszmprimZCGHCJSziPrimzijszufromJSString;+  return h$ap_1_1_fast();+};+function h$$ai()+{+  var a = h$r1;+  --h$sp;+  var b = h$toHsString(a.d1);+  h$r1 = b;+  return h$stack[h$sp];+};+function h$ghcjszmprimZCGHCJSziPrimzijszufromJSString_e()+{+  h$p1(h$$ai);+  return h$e(h$r2);+};+function h$$aj()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    var c = h$integer_cmm_int2Integerzh(a.d1);+    h$l3(b, h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, c, h$ret1),+    h$integerzmgmpZCGHCziIntegerziTypezishiftRInteger);+    return h$ap_2_2_fast();+  }+  else+  {+    var d = a.d1;+    var e = h$integer_cmm_fdivQ2ExpIntegerzh(d, a.d2, b);+    h$r1 = h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, 0, e);+  };+  return h$stack[h$sp];+};+function h$integerzmgmpZCGHCziIntegerziTypezishiftRInteger_e()+{+  h$p2(h$r3, h$$aj);+  return h$e(h$r2);+};+function h$$ak()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    var c = h$integer_cmm_int2Integerzh(a.d1);+    h$l3(b, h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, c, h$ret1),+    h$integerzmgmpZCGHCziIntegerziTypezishiftLInteger);+    return h$ap_2_2_fast();+  }+  else+  {+    var d = a.d1;+    var e = h$integer_cmm_mul2ExpIntegerzh(d, a.d2, b);+    h$r1 = h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, 0, e);+  };+  return h$stack[h$sp];+};+function h$integerzmgmpZCGHCziIntegerziTypezishiftLInteger_e()+{+  h$p2(h$r3, h$$ak);+  return h$e(h$r2);+};+function h$$an()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    var c = a.d1;+    var d = b;+    h$r1 = h$c1(h$integerzmgmpZCGHCziIntegerziTypeziSzh_con_e, (d & c));+  }+  else+  {+    var e = h$integer_cmm_int2Integerzh(b);+    h$l3(a, h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, e, h$ret1), h$integerzmgmpZCGHCziIntegerziTypeziandInteger);+    return h$ap_2_2_fast();+  };+  return h$stack[h$sp];+};+function h$$am()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  if((a.f.a === 1))+  {+    var e = h$integer_cmm_int2Integerzh(a.d1);+    h$l3(h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, e, h$ret1), b, h$integerzmgmpZCGHCziIntegerziTypeziandInteger);+    return h$ap_2_2_fast();+  }+  else+  {+    var f = a.d1;+    var g = h$integer_cmm_andIntegerzh(c, d, f, a.d2);+    h$r1 = h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, 0, g);+  };+  return h$stack[h$sp];+};+function h$$al()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$p2(a.d1, h$$an);+    return h$e(b);+  }+  else+  {+    var c = a.d1;+    h$p4(a, c, a.d2, h$$am);+    return h$e(b);+  };+};+function h$integerzmgmpZCGHCziIntegerziTypeziandInteger_e()+{+  h$p2(h$r3, h$$al);+  return h$e(h$r2);+};+function h$$aq()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    var c = a.d1;+    var d = ((b / c) | 0);+    h$r1 = h$c1(h$integerzmgmpZCGHCziIntegerziTypeziSzh_con_e, d);+    h$r2 = h$c1(h$integerzmgmpZCGHCziIntegerziTypeziSzh_con_e, (b - (c * d)));+  }+  else+  {+    var e = h$integer_cmm_int2Integerzh(b);+    h$l3(a, h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, e, h$ret1),+    h$integerzmgmpZCGHCziIntegerziTypeziquotRemInteger);+    return h$ap_2_2_fast();+  };+  return h$stack[h$sp];+};+function h$$ap()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if((a.f.a === 1))+  {+    var d = a.d1;+    if((d < 0))+    {+      var e = h$integer_cmm_quotRemIntegerWordzh(b, c, (-d | 0));+      var f = e;+      var g = h$ret1;+      var h = f.negate();+      h$r1 = h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, 0, h);+      h$r2 = h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, 0, g);+    }+    else+    {+      var i = h$integer_cmm_quotRemIntegerWordzh(b, c, d);+      h$r1 = h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, 0, i);+      h$r2 = h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, 0, h$ret1);+    };+  }+  else+  {+    var j = a.d1;+    var k = h$integer_cmm_quotRemIntegerzh(b, c, j, a.d2);+    h$r1 = h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, 0, k);+    h$r2 = h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, 0, h$ret1);+  };+  return h$stack[h$sp];+};+function h$$ao()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    var c = a.d1;+    if((c === (-2147483648)))+    {+      h$l3(b, h$integerzmgmpZCGHCziIntegerziTypeziminIntAsBig, h$integerzmgmpZCGHCziIntegerziTypeziquotRemInteger);+      return h$ap_2_2_fast();+    }+    else+    {+      h$p2(c, h$$aq);+      return h$e(b);+    };+  }+  else+  {+    var d = a.d1;+    h$p3(d, a.d2, h$$ap);+    return h$e(b);+  };+};+function h$integerzmgmpZCGHCziIntegerziTypeziquotRemInteger_e()+{+  h$p2(h$r3, h$$ao);+  return h$e(h$r2);+};+function h$$at()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    var c = a.d1;+    h$r1 = h$c1(h$integerzmgmpZCGHCziIntegerziTypeziSzh_con_e, (b % c));+  }+  else+  {+    var d = h$integer_cmm_int2Integerzh(b);+    h$l3(a, h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, d, h$ret1), h$integerzmgmpZCGHCziIntegerziTypeziremInteger);+    return h$ap_2_2_fast();+  };+  return h$stack[h$sp];+};+function h$$as()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if((a.f.a === 1))+  {+    var d = a.d1;+    if((d < 0))+    {+      var e = h$integer_cmm_remIntegerWordzh(b, c, (-d | 0));+      h$r1 = h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, 0, e);+    }+    else+    {+      var f = h$integer_cmm_remIntegerWordzh(b, c, d);+      h$r1 = h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, 0, f);+    };+  }+  else+  {+    var g = a.d1;+    var h = h$integer_cmm_remIntegerzh(b, c, g, a.d2);+    h$r1 = h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, 0, h);+  };+  return h$stack[h$sp];+};+function h$$ar()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    var c = a.d1;+    if((c === (-2147483648)))+    {+      h$l3(b, h$integerzmgmpZCGHCziIntegerziTypeziminIntAsBig, h$integerzmgmpZCGHCziIntegerziTypeziremInteger);+      return h$ap_2_2_fast();+    }+    else+    {+      h$p2(c, h$$at);+      return h$e(b);+    };+  }+  else+  {+    var d = a.d1;+    h$p3(d, a.d2, h$$as);+    return h$e(b);+  };+};+function h$integerzmgmpZCGHCziIntegerziTypeziremInteger_e()+{+  h$p2(h$r3, h$$ar);+  return h$e(h$r2);+};+function h$$aw()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    var c = a.d1;+    h$r1 = h$c1(h$integerzmgmpZCGHCziIntegerziTypeziSzh_con_e, ((b / c) | 0));+  }+  else+  {+    var d = h$integer_cmm_int2Integerzh(b);+    h$l3(a, h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, d, h$ret1),+    h$integerzmgmpZCGHCziIntegerziTypeziquotInteger);+    return h$ap_2_2_fast();+  };+  return h$stack[h$sp];+};+function h$$av()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if((a.f.a === 1))+  {+    var d = a.d1;+    if((d < 0))+    {+      var e = h$integer_cmm_quotIntegerWordzh(b, c, (-d | 0));+      var f = e.negate();+      h$r1 = h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, 0, f);+    }+    else+    {+      var g = h$integer_cmm_quotIntegerWordzh(b, c, d);+      h$r1 = h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, 0, g);+    };+  }+  else+  {+    var h = a.d1;+    var i = h$integer_cmm_quotIntegerzh(b, c, h, a.d2);+    h$r1 = h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, 0, i);+  };+  return h$stack[h$sp];+};+function h$$au()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    var c = a.d1;+    if((c === (-2147483648)))+    {+      h$l3(b, h$integerzmgmpZCGHCziIntegerziTypeziminIntAsBig, h$integerzmgmpZCGHCziIntegerziTypeziquotInteger);+      return h$ap_2_2_fast();+    }+    else+    {+      h$p2(c, h$$aw);+      return h$e(b);+    };+  }+  else+  {+    var d = a.d1;+    h$p3(d, a.d2, h$$av);+    return h$e(b);+  };+};+function h$integerzmgmpZCGHCziIntegerziTypeziquotInteger_e()+{+  h$p2(h$r3, h$$au);+  return h$e(h$r2);+};+function h$$az()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    var c = a.d1;+    var d;+    var e = (b - c);+    d = (e | 0);+    var f = d;+    var g = ((d != e) ? 1 : 0);+    if((g === 0))+    {+      h$r1 = h$c1(h$integerzmgmpZCGHCziIntegerziTypeziSzh_con_e, f);+    }+    else+    {+      var h = h$integer_cmm_int2Integerzh(b);+      var i = h$integer_cmm_minusIntegerIntzh(h, h$ret1, c);+      h$r1 = h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, 0, i);+    };+  }+  else+  {+    var j = a.d2;+    var k = b;+    if((k === 0))+    {+      var l = j.negate();+      h$r1 = h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, 0, l);+    }+    else+    {+      var m = h$integer_cmm_int2Integerzh(k);+      h$l3(a, h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, m, h$ret1),+      h$integerzmgmpZCGHCziIntegerziTypeziminusInteger);+      return h$ap_2_2_fast();+    };+  };+  return h$stack[h$sp];+};+function h$$ay()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  if((a.f.a === 1))+  {+    var e = a.d1;+    if((e === 0))+    {+      h$r1 = b;+    }+    else+    {+      var f = h$integer_cmm_minusIntegerIntzh(c, d, e);+      h$r1 = h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, 0, f);+    };+  }+  else+  {+    var g = a.d1;+    var h = h$integer_cmm_minusIntegerzh(c, d, g, a.d2);+    h$r1 = h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, 0, h);+  };+  return h$stack[h$sp];+};+function h$$ax()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$p2(a.d1, h$$az);+    return h$e(b);+  }+  else+  {+    var c = a.d1;+    h$p4(a, c, a.d2, h$$ay);+    return h$e(b);+  };+};+function h$integerzmgmpZCGHCziIntegerziTypeziminusInteger_e()+{+  h$p2(h$r3, h$$ax);+  return h$e(h$r2);+};+function h$$aC()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if((a.f.a === 1))+  {+    var d = a.d1;+    var e;+    var f = (c + d);+    e = (f | 0);+    var g = e;+    var h = ((e != f) ? 1 : 0);+    if((h === 0))+    {+      h$r1 = h$c1(h$integerzmgmpZCGHCziIntegerziTypeziSzh_con_e, g);+    }+    else+    {+      var i = h$integer_cmm_int2Integerzh(c);+      var j = h$integer_cmm_plusIntegerIntzh(i, h$ret1, d);+      h$r1 = h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, 0, j);+    };+  }+  else+  {+    h$l3(b, a, h$integerzmgmpZCGHCziIntegerziTypeziplusInteger);+    return h$ap_2_2_fast();+  };+  return h$stack[h$sp];+};+function h$$aB()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  if((a.f.a === 1))+  {+    var e = a.d1;+    if((e === 0))+    {+      h$r1 = b;+    }+    else+    {+      var f = h$integer_cmm_plusIntegerIntzh(c, d, e);+      h$r1 = h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, 0, f);+    };+  }+  else+  {+    var g = a.d1;+    var h = h$integer_cmm_plusIntegerzh(c, d, g, a.d2);+    h$r1 = h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, 0, h);+  };+  return h$stack[h$sp];+};+function h$$aA()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$p3(a, a.d1, h$$aC);+    return h$e(b);+  }+  else+  {+    var c = a.d1;+    h$p4(a, c, a.d2, h$$aB);+    return h$e(b);+  };+};+function h$integerzmgmpZCGHCziIntegerziTypeziplusInteger_e()+{+  h$p2(h$r3, h$$aA);+  return h$e(h$r2);+};+function h$$aF()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    var c = a.d1;+    var d;+    var e = (b * c);+    d = ((e === (e | 0)) ? 0 : 1);+    if((d === 0))+    {+      h$r1 = h$c1(h$integerzmgmpZCGHCziIntegerziTypeziSzh_con_e, h$mulInt32(b, c));+    }+    else+    {+      var f = h$integer_cmm_int2Integerzh(b);+      var g = h$integer_cmm_timesIntegerIntzh(f, h$ret1, c);+      h$r1 = h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, 0, g);+    };+  }+  else+  {+    var h = a.d1;+    switch (b)+    {+      case ((-1)):+        h$l2(a, h$integerzmgmpZCGHCziIntegerziTypezinegateInteger);+        return h$ap_1_1_fast();+      case (0):+        return h$e(h$$bi);+      case (1):+        h$r1 = a;+        break;+      default:+        var i = h$integer_cmm_timesIntegerIntzh(h, a.d2, b);+        h$r1 = h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, 0, i);+    };+  };+  return h$stack[h$sp];+};+function h$$aE()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  if((a.f.a === 1))+  {+    h$l3(b, a, h$integerzmgmpZCGHCziIntegerziTypezitimesInteger);+    return h$ap_2_2_fast();+  }+  else+  {+    var e = a.d1;+    var f = h$integer_cmm_timesIntegerzh(c, d, e, a.d2);+    h$r1 = h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, 0, f);+  };+  return h$stack[h$sp];+};+function h$$aD()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$p2(a.d1, h$$aF);+    return h$e(b);+  }+  else+  {+    var c = a.d1;+    h$p4(a, c, a.d2, h$$aE);+    return h$e(b);+  };+};+function h$integerzmgmpZCGHCziIntegerziTypezitimesInteger_e()+{+  h$p2(h$r3, h$$aD);+  return h$e(h$r2);+};+function h$$aO()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$integerzmgmpZCGHCziIntegerziTypeziSzh_con_e, a);+  return h$stack[h$sp];+};+function h$$aN()+{+  var a = h$stack[(h$sp - 4)];+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 5;+  if(h$r1)+  {+    h$l2(a, h$integerzmgmpZCGHCziIntegerziTypeziabsInteger);+    return h$ap_1_1_fast();+  }+  else+  {+    var e = h$integer_cmm_gcdIntegerIntzh(b, c, d);+    h$r1 = h$c1(h$integerzmgmpZCGHCziIntegerziTypeziSzh_con_e, e);+  };+  return h$stack[h$sp];+};+function h$$aM()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if((a.f.a === 1))+  {+    h$p1(h$$aO);+    h$l3(a.d1, b, h$integerzmgmpZCGHCziIntegerziTypezigcdInt);+    return h$ap_2_2_fast();+  }+  else+  {+    var c = a.d1;+    var d = a.d2;+    var e = b;+    if((e === 0))+    {+      h$l2(a, h$integerzmgmpZCGHCziIntegerziTypeziabsInteger);+      return h$ap_1_1_fast();+    }+    else+    {+      var f = h$integer_cmm_cmpIntegerIntzh(c, d, 0);+      var g = f;+      if((g === 0))+      {+        h$r1 = 1;+        h$pp14(c, d, e);+        ++h$sp;+        return h$$aN;+      }+      else+      {+        h$r1 = 0;+        h$pp14(c, d, e);+        ++h$sp;+        return h$$aN;+      };+    };+  };+};+function h$$aL()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  if((a.f.a === 1))+  {+    h$l3(b, a, h$integerzmgmpZCGHCziIntegerziTypezigcdInteger);+    return h$ap_2_2_fast();+  }+  else+  {+    var e = a.d1;+    var f = h$integer_cmm_gcdIntegerzh(c, d, e, a.d2);+    h$r1 = h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, 0, f);+  };+  return h$stack[h$sp];+};+function h$$aK()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$p3(a, a.d1, h$$aM);+    return h$e(b);+  }+  else+  {+    var c = a.d1;+    h$p4(a, c, a.d2, h$$aL);+    return h$e(b);+  };+};+function h$$aJ()+{+  var a = h$stack[(h$sp - 2)];+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$p2(b, h$$aK);+  return h$e(a);+};+function h$$aI()+{+  var a = h$r1;+  --h$sp;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    var c = a.d1;+    if((c === (-2147483648)))+    {+      h$l3(h$integerzmgmpZCGHCziIntegerziTypeziminIntAsBig, b, h$integerzmgmpZCGHCziIntegerziTypezigcdInteger);+      return h$ap_2_2_fast();+    }+    else+    {+      h$sp += 2;+      ++h$sp;+      return h$$aJ;+    };+  }+  else+  {+    h$sp += 2;+    ++h$sp;+    return h$$aJ;+  };+};+function h$$aH()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$sp += 2;+  h$p1(h$$aI);+  return h$e(a);+};+function h$$aG()+{+  var a = h$r1;+  --h$sp;+  var b = h$stack[h$sp];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    var c = a.d1;+    if((c === (-2147483648)))+    {+      h$l3(b, h$integerzmgmpZCGHCziIntegerziTypeziminIntAsBig, h$integerzmgmpZCGHCziIntegerziTypezigcdInteger);+      return h$ap_2_2_fast();+    }+    else+    {+      h$sp += 2;+      ++h$sp;+      return h$$aH;+    };+  }+  else+  {+    h$sp += 2;+    ++h$sp;+    return h$$aH;+  };+};+function h$integerzmgmpZCGHCziIntegerziTypezigcdInteger_e()+{+  h$p2(h$r2, h$r3);+  h$p1(h$$aG);+  return h$e(h$r2);+};+function h$$aP()+{+  h$bh();+  h$l3(h$$bj, h$$bg, h$integerzmgmpZCGHCziIntegerziTypeziplusInteger);+  return h$ap_2_2_fast();+};+function h$integerzmgmpZCGHCziIntegerziTypeziabsInt_e()+{+  var a = h$r2;+  if((a < 0))+  {+    h$r1 = (-a | 0);+  }+  else+  {+    h$r1 = a;+  };+  return h$stack[h$sp];+};+function h$integerzmgmpZCGHCziIntegerziTypezigcdInt_e()+{+  var a = h$r3;+  var b = h$r2;+  if((b === 0))+  {+    h$l2(a, h$integerzmgmpZCGHCziIntegerziTypeziabsInt);+    return h$ap_1_1_fast();+  }+  else+  {+    var c = a;+    if((c === 0))+    {+      if((b < 0))+      {+        h$r1 = (-b | 0);+      }+      else+      {+        h$r1 = b;+      };+    }+    else+    {+      if((c < 0))+      {+        if((b < 0))+        {+          var d = (-c | 0);+          h$r1 = h$integer_cmm_gcdIntzh((-b | 0), d);+        }+        else+        {+          h$r1 = h$integer_cmm_gcdIntzh(b, (-c | 0));+        };+      }+      else+      {+        if((b < 0))+        {+          h$r1 = h$integer_cmm_gcdIntzh((-b | 0), c);+        }+        else+        {+          h$r1 = h$integer_cmm_gcdIntzh(b, c);+        };+      };+    };+  };+  return h$stack[h$sp];+};+function h$integerzmgmpZCGHCziIntegerziTypeziminIntAsBig_e()+{+  h$bh();+  var a = h$integer_cmm_int2Integerzh((-2147483648));+  h$r1 = h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, a, h$ret1);+  return h$stack[h$sp];+};+function h$integerzmgmpZCGHCziIntegerziTypeziencodeDoublezh_e()+{+  var a = h$integer_cbits_encodeDouble(h$r2, h$r3, h$r4);+  h$r1 = a;+  return h$stack[h$sp];+};+function h$integerzmgmpZCGHCziIntegerziTypeziintzuencodeDoublezh_e()+{+  var a = h$__int_encodeDouble(h$r2, h$r3);+  h$r1 = a;+  return h$stack[h$sp];+};+function h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e()+{+  return h$stack[h$sp];+};+function h$integerzmgmpZCGHCziIntegerziTypeziJzh_e()+{+  h$r1 = h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, h$r2, h$r3);+  return h$stack[h$sp];+};+function h$integerzmgmpZCGHCziIntegerziTypeziSzh_con_e()+{+  return h$stack[h$sp];+};+function h$integerzmgmpZCGHCziIntegerziTypeziSzh_e()+{+  h$r1 = h$c1(h$integerzmgmpZCGHCziIntegerziTypeziSzh_con_e, h$r2);+  return h$stack[h$sp];+};+function h$integerzmgmpZCGHCziIntegerziTypeziint64ToInteger_e()+{+  var a = h$r2;+  var b = h$r3;+  var c = h$hs_intToInt64(2147483647);+  if(h$hs_leInt64(a, b, c, h$ret1))+  {+    var d = h$hs_intToInt64((-2147483648));+    if(h$hs_geInt64(a, b, d, h$ret1))+    {+      h$l2(h$hs_int64ToInt(a, b), h$integerzmgmpZCGHCziIntegerziTypezismallInteger);+      return h$ap_1_1_fast();+    }+    else+    {+      var e = h$integer_cmm_int64ToIntegerzh(a, b);+      h$r1 = h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, e, h$ret1);+    };+  }+  else+  {+    var f = h$integer_cmm_int64ToIntegerzh(a, b);+    h$r1 = h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, f, h$ret1);+  };+  return h$stack[h$sp];+};+function h$$aQ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$l3(b, a.d1, h$integerzmgmpZCGHCziIntegerziTypeziintzuencodeDoublezh);+    return h$ap_2_2_fast();+  }+  else+  {+    var c = a.d1;+    h$l4(b, a.d2, c, h$integerzmgmpZCGHCziIntegerziTypeziencodeDoublezh);+    return h$ap_3_3_fast();+  };+};+function h$integerzmgmpZCGHCziIntegerziTypeziencodeDoubleInteger_e()+{+  h$p2(h$r3, h$$aQ);+  return h$e(h$r2);+};+function h$$aR()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$r1 = a.d1;+  }+  else+  {+    var b = a.d1;+    var c = h$integer_cbits_encodeDouble(b, a.d2, 0);+    h$r1 = c;+  };+  return h$stack[h$sp];+};+function h$integerzmgmpZCGHCziIntegerziTypezidoubleFromInteger_e()+{+  h$p1(h$$aR);+  return h$e(h$r2);+};+function h$$aU()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    var c = a.d1;+    if((b === c))+    {+      h$r1 = h$ghczmprimZCGHCziTypesziEQ;+    }+    else+    {+      if((b <= c))+      {+        h$r1 = h$ghczmprimZCGHCziTypesziLT;+      }+      else+      {+        h$r1 = h$ghczmprimZCGHCziTypesziGT;+      };+    };+  }+  else+  {+    var d = a.d1;+    var e = h$integer_cmm_cmpIntegerIntzh(d, a.d2, b);+    if((e > 0))+    {+      h$r1 = h$ghczmprimZCGHCziTypesziLT;+    }+    else+    {+      if((e < 0))+      {+        h$r1 = h$ghczmprimZCGHCziTypesziGT;+      }+      else+      {+        h$r1 = h$ghczmprimZCGHCziTypesziEQ;+      };+    };+  };+  return h$stack[h$sp];+};+function h$$aT()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if((a.f.a === 1))+  {+    var d = h$integer_cmm_cmpIntegerIntzh(b, c, a.d1);+    if((d < 0))+    {+      h$r1 = h$ghczmprimZCGHCziTypesziLT;+    }+    else+    {+      if((d > 0))+      {+        h$r1 = h$ghczmprimZCGHCziTypesziGT;+      }+      else+      {+        h$r1 = h$ghczmprimZCGHCziTypesziEQ;+      };+    };+  }+  else+  {+    var e = a.d1;+    var f = h$integer_cmm_cmpIntegerzh(b, c, e, a.d2);+    if((f < 0))+    {+      h$r1 = h$ghczmprimZCGHCziTypesziLT;+    }+    else+    {+      if((f > 0))+      {+        h$r1 = h$ghczmprimZCGHCziTypesziGT;+      }+      else+      {+        h$r1 = h$ghczmprimZCGHCziTypesziEQ;+      };+    };+  };+  return h$stack[h$sp];+};+function h$$aS()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$p2(a.d1, h$$aU);+    return h$e(b);+  }+  else+  {+    var c = a.d1;+    h$p3(c, a.d2, h$$aT);+    return h$e(b);+  };+};+function h$integerzmgmpZCGHCziIntegerziTypezicompareInteger_e()+{+  h$p2(h$r3, h$$aS);+  return h$e(h$r2);+};+function h$$aX()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    var c = a.d1;+    h$r1 = ((b >= c) ? 1 : 0);+  }+  else+  {+    var d = a.d1;+    var e = h$integer_cmm_cmpIntegerIntzh(d, a.d2, b);+    h$r1 = ((e <= 0) ? 1 : 0);+  };+  return h$stack[h$sp];+};+function h$$aW()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if((a.f.a === 1))+  {+    var d = h$integer_cmm_cmpIntegerIntzh(b, c, a.d1);+    h$r1 = ((d >= 0) ? 1 : 0);+  }+  else+  {+    var e = a.d1;+    var f = h$integer_cmm_cmpIntegerzh(b, c, e, a.d2);+    h$r1 = ((f >= 0) ? 1 : 0);+  };+  return h$stack[h$sp];+};+function h$$aV()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$p2(a.d1, h$$aX);+    return h$e(b);+  }+  else+  {+    var c = a.d1;+    h$p3(c, a.d2, h$$aW);+    return h$e(b);+  };+};+function h$integerzmgmpZCGHCziIntegerziTypezigeIntegerzh_e()+{+  h$p2(h$r3, h$$aV);+  return h$e(h$r2);+};+function h$$a0()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    var c = a.d1;+    h$r1 = ((b < c) ? 1 : 0);+  }+  else+  {+    var d = a.d1;+    var e = h$integer_cmm_cmpIntegerIntzh(d, a.d2, b);+    h$r1 = ((e > 0) ? 1 : 0);+  };+  return h$stack[h$sp];+};+function h$$aZ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if((a.f.a === 1))+  {+    var d = h$integer_cmm_cmpIntegerIntzh(b, c, a.d1);+    h$r1 = ((d < 0) ? 1 : 0);+  }+  else+  {+    var e = a.d1;+    var f = h$integer_cmm_cmpIntegerzh(b, c, e, a.d2);+    h$r1 = ((f < 0) ? 1 : 0);+  };+  return h$stack[h$sp];+};+function h$$aY()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$p2(a.d1, h$$a0);+    return h$e(b);+  }+  else+  {+    var c = a.d1;+    h$p3(c, a.d2, h$$aZ);+    return h$e(b);+  };+};+function h$integerzmgmpZCGHCziIntegerziTypeziltIntegerzh_e()+{+  h$p2(h$r3, h$$aY);+  return h$e(h$r2);+};+function h$$a3()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    var c = a.d1;+    h$r1 = ((b > c) ? 1 : 0);+  }+  else+  {+    var d = a.d1;+    var e = h$integer_cmm_cmpIntegerIntzh(d, a.d2, b);+    h$r1 = ((e < 0) ? 1 : 0);+  };+  return h$stack[h$sp];+};+function h$$a2()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if((a.f.a === 1))+  {+    var d = h$integer_cmm_cmpIntegerIntzh(b, c, a.d1);+    h$r1 = ((d > 0) ? 1 : 0);+  }+  else+  {+    var e = a.d1;+    var f = h$integer_cmm_cmpIntegerzh(b, c, e, a.d2);+    h$r1 = ((f > 0) ? 1 : 0);+  };+  return h$stack[h$sp];+};+function h$$a1()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$p2(a.d1, h$$a3);+    return h$e(b);+  }+  else+  {+    var c = a.d1;+    h$p3(c, a.d2, h$$a2);+    return h$e(b);+  };+};+function h$integerzmgmpZCGHCziIntegerziTypezigtIntegerzh_e()+{+  h$p2(h$r3, h$$a1);+  return h$e(h$r2);+};+function h$$a6()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    var c = a.d1;+    h$r1 = ((b <= c) ? 1 : 0);+  }+  else+  {+    var d = a.d1;+    var e = h$integer_cmm_cmpIntegerIntzh(d, a.d2, b);+    h$r1 = ((e >= 0) ? 1 : 0);+  };+  return h$stack[h$sp];+};+function h$$a5()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if((a.f.a === 1))+  {+    var d = h$integer_cmm_cmpIntegerIntzh(b, c, a.d1);+    h$r1 = ((d <= 0) ? 1 : 0);+  }+  else+  {+    var e = a.d1;+    var f = h$integer_cmm_cmpIntegerzh(b, c, e, a.d2);+    h$r1 = ((f <= 0) ? 1 : 0);+  };+  return h$stack[h$sp];+};+function h$$a4()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$p2(a.d1, h$$a6);+    return h$e(b);+  }+  else+  {+    var c = a.d1;+    h$p3(c, a.d2, h$$a5);+    return h$e(b);+  };+};+function h$integerzmgmpZCGHCziIntegerziTypezileIntegerzh_e()+{+  h$p2(h$r3, h$$a4);+  return h$e(h$r2);+};+function h$$a7()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    var b = a.d1;+    if((b < 0))+    {+      return h$e(h$$bh);+    }+    else+    {+      var c = b;+      if((c === 0))+      {+        return h$e(h$$bi);+      }+      else+      {+        return h$e(h$$bj);+      };+    };+  }+  else+  {+    var d = a.d1;+    var e = h$integer_cmm_cmpIntegerIntzh(d, a.d2, 0);+    if((e > 0))+    {+      return h$e(h$$bj);+    }+    else+    {+      var f = e;+      if((f === 0))+      {+        return h$e(h$$bi);+      }+      else+      {+        return h$e(h$$bh);+      };+    };+  };+};+function h$integerzmgmpZCGHCziIntegerziTypezisignumInteger_e()+{+  h$p1(h$$a7);+  return h$e(h$r2);+};+function h$$a8()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    var b = a.d1;+    if((b === (-2147483648)))+    {+      return h$e(h$$bf);+    }+    else+    {+      if((b >= 0))+      {+        h$r1 = a;+      }+      else+      {+        h$r1 = h$c1(h$integerzmgmpZCGHCziIntegerziTypeziSzh_con_e, (-b | 0));+      };+    };+  }+  else+  {+    var c = a.d2;+    var d = c.abs();+    h$r1 = h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, 0, d);+  };+  return h$stack[h$sp];+};+function h$integerzmgmpZCGHCziIntegerziTypeziabsInteger_e()+{+  h$p1(h$$a8);+  return h$e(h$r2);+};+function h$$bb()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    var c = a.d1;+    h$r1 = ((b === c) ? 1 : 0);+  }+  else+  {+    var d = a.d1;+    var e = h$integer_cmm_cmpIntegerIntzh(d, a.d2, b);+    if((e === 0))+    {+      h$r1 = 1;+    }+    else+    {+      h$r1 = 0;+    };+  };+  return h$stack[h$sp];+};+function h$$ba()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if((a.f.a === 1))+  {+    var d = h$integer_cmm_cmpIntegerIntzh(b, c, a.d1);+    if((d === 0))+    {+      h$r1 = 1;+    }+    else+    {+      h$r1 = 0;+    };+  }+  else+  {+    var e = a.d1;+    var f = h$integer_cmm_cmpIntegerzh(b, c, e, a.d2);+    if((f === 0))+    {+      h$r1 = 1;+    }+    else+    {+      h$r1 = 0;+    };+  };+  return h$stack[h$sp];+};+function h$$a9()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$p2(a.d1, h$$bb);+    return h$e(b);+  }+  else+  {+    var c = a.d1;+    h$p3(c, a.d2, h$$ba);+    return h$e(b);+  };+};+function h$integerzmgmpZCGHCziIntegerziTypezieqIntegerzh_e()+{+  h$p2(h$r3, h$$a9);+  return h$e(h$r2);+};+function h$$bc()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    var b = a.d1;+    if((b === (-2147483648)))+    {+      return h$e(h$$bf);+    }+    else+    {+      h$r1 = h$c1(h$integerzmgmpZCGHCziIntegerziTypeziSzh_con_e, (-b | 0));+    };+  }+  else+  {+    var c = a.d2;+    var d = c.negate();+    h$r1 = h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, 0, d);+  };+  return h$stack[h$sp];+};+function h$integerzmgmpZCGHCziIntegerziTypezinegateInteger_e()+{+  h$p1(h$$bc);+  return h$e(h$r2);+};+function h$$bd()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$l2(a.d1, h$ghczmprimZCGHCziIntWord64ziintToInt64zh);+    return h$ghczmprimZCGHCziIntWord64ziintToInt64zh_e;+  }+  else+  {+    var b = a.d1;+    h$l3(a.d2, b, h$integerzmgmpZCGHCziIntegerziGMPziPrimziintegerToInt64zh);+    return h$integerzmgmpZCGHCziIntegerziGMPziPrimziintegerToInt64zh_e;+  };+};+function h$integerzmgmpZCGHCziIntegerziTypeziintegerToInt64_e()+{+  h$p1(h$$bd);+  return h$e(h$r2);+};+function h$$be()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$r1 = a.d1;+  }+  else+  {+    var b = a.d1;+    h$r1 = h$integer_cmm_integer2Intzh(b, a.d2);+  };+  return h$stack[h$sp];+};+function h$integerzmgmpZCGHCziIntegerziTypeziintegerToInt_e()+{+  h$p1(h$$be);+  return h$e(h$r2);+};+function h$integerzmgmpZCGHCziIntegerziTypezismallInteger_e()+{+  h$r1 = h$c1(h$integerzmgmpZCGHCziIntegerziTypeziSzh_con_e, h$r2);+  return h$stack[h$sp];+};+function h$$bk()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var d = a.d1;+  var e = c;+  var f = d.dv.getInt8(e, true);+  h$r1 = ((b - f) | 0);+  return h$stack[h$sp];+};+function h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziintegerLog2zhzugo_e()+{+  var a = h$r2;+  var b = h$r3;+  var c = (b >>> 8);+  if((c === 0))+  {+    h$p3(a, b, h$$bk);+    return h$e(h$$bB);+  }+  else+  {+    h$l3(c, ((a + 8) | 0), h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziintegerLog2zhzugo);+    return h$ap_2_2_fast();+  };+};+function h$$bp()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l3(a, b, h$integerzmgmpZCGHCziIntegerziTypezishiftRInteger);+  return h$ap_2_2_fast();+};+function h$$bo()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  if(a)+  {+    h$r1 = c;+    h$r2 = h$mulInt32(2, d);+  }+  else+  {+    var e = h$mulInt32(2, d);+    h$r1 = h$c2(h$$bp, b, c);+    h$r2 = ((e + 1) | 0);+  };+  return h$stack[h$sp];+};+function h$$bn()+{+  var a;+  var b;+  a = h$r1;+  b = h$r2;+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$pp14(a, b, h$$bo);+  h$l3(c, a, h$integerzmgmpZCGHCziIntegerziTypeziltIntegerzh);+  return h$ap_2_2_fast();+};+function h$$bm()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 5;+  h$pp5(c, h$$bn);+  h$l4(d, a, b, h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziintegerLog2zhzustep);+  return h$ap_3_3_fast();+};+function h$$bl()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  if(a)+  {+    h$r1 = b;+    h$r2 = 0;+  }+  else+  {+    h$pp24(h$mulInt32(2, d), h$$bm);+    h$l3(d, c, h$integerzmgmpZCGHCziIntegerziTypezishiftLInteger);+    return h$ap_2_2_fast();+  };+  return h$stack[h$sp];+};+function h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziintegerLog2zhzustep_e()+{+  h$p4(h$r2, h$r3, h$r4, h$$bl);+  h$r1 = h$integerzmgmpZCGHCziIntegerziTypeziltIntegerzh;+  return h$ap_2_2_fast();+};+function h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziBA_con_e()+{+  return h$stack[h$sp];+};+function h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziBA_e()+{+  h$r1 = h$c1(h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziBA_con_e, h$r2);+  return h$stack[h$sp];+};+function h$$bs()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = h$r2;+  var d = h$r3;+  var e = h$r4;+  if((e === 256))+  {+  }+  else+  {+    if((e < c))+    {+      a.dv.setInt8(e, d, false);+      h$l4(((e + 1) | 0), d, c, b);+      return h$ap_4_3_fast();+    }+    else+    {+      h$l4(e, ((d - 1) | 0), h$mulInt32(2, c), b);+      return h$ap_4_3_fast();+    };+  };+  return h$stack[h$sp];+};+function h$$br()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c1(h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziBA_con_e, a);+  return h$stack[h$sp];+};+function h$$bq()+{+  h$bh();+  var a = h$newByteArray(256);+  a.dv.setInt8(0, 9, false);+  var b = h$c(h$$bs);+  b.d1 = a;+  b.d2 = b;+  h$p2(a, h$$br);+  h$l4(1, 8, 2, b);+  return h$ap_4_3_fast();+};+function h$$by()+{+  var a = h$r1;+  --h$sp;+  if(a)+  {+    h$r1 = 0;+  }+  else+  {+    h$r1 = 1;+  };+  return h$stack[h$sp];+};+function h$$bx()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if(a)+  {+    h$r1 = 2;+  }+  else+  {+    h$p1(h$$by);+    h$l3(c, b, h$integerzmgmpZCGHCziIntegerziTypezigtIntegerzh);+    return h$ap_2_2_fast();+  };+  return h$stack[h$sp];+};+function h$$bw()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$pp6(a, h$$bx);+  h$l3(a, b, h$integerzmgmpZCGHCziIntegerziTypeziltIntegerzh);+  return h$ap_2_2_fast();+};+function h$$bv()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$p2(c, h$$bw);+  h$l3(a, b, h$integerzmgmpZCGHCziIntegerziTypeziandInteger);+  return h$ap_2_2_fast();+};+function h$$bu()+{+  var a = h$r1;+  h$sp -= 3;+  h$pp4(h$$bv);+  h$l3(h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziintegerLog2IsPowerOf2zh1, a,+  h$integerzmgmpZCGHCziIntegerziTypeziminusInteger);+  return h$ap_2_2_fast();+};+function h$$bt()+{+  var a = h$r1;+  h$sp -= 2;+  h$pp6(a, h$$bu);+  h$l3(a, a, h$integerzmgmpZCGHCziIntegerziTypeziplusInteger);+  return h$ap_2_2_fast();+};+function h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziroundingModezh_e()+{+  h$p2(h$r2, h$$bt);+  h$l2(h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziintegerLog2IsPowerOf2zh1,+  h$integerzmgmpZCGHCziIntegerziTypezishiftLInteger);+  return h$ap_2_2_fast();+};+function h$$bA()+{+  var a = h$r2;+  --h$sp;+  h$r1 = a;+  return h$stack[h$sp];+};+function h$$bz()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$l3(a.d1, 8, h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziintegerLog2zhzugo);+    return h$ap_2_2_fast();+  }+  else+  {+    h$p1(h$$bA);+    h$l4(1, h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziintegerLog2zh1, a,+    h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziintegerLog2zhzustep);+    return h$ap_3_3_fast();+  };+};+function h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziintegerLog2zh_e()+{+  h$p1(h$$bz);+  return h$e(h$r2);+};+function h$integerzmgmpZCGHCziIntegerziGMPziPrimziintegerToInt64zh_e()+{+  var a = h$hs_integerToInt64(h$r2, h$r3);+  h$r1 = a;+  h$r2 = h$ret1;+  return h$stack[h$sp];+};+function h$baseZCUnsafeziCoerceziunsafeCoerce1_e()+{+  h$r1 = h$r2;+  return h$ap_0_0_fast();+};+function h$$bG()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$l4(c, a, b, h$baseZCTextziReadziLexzinumberToFixedzuzdsval);+  return h$ap_3_3_fast();+};+function h$$bF()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 4;+  h$pp6(c, h$$bG);+  h$l3(b, a, h$integerzmgmpZCGHCziIntegerziTypeziplusInteger);+  return h$ap_2_2_fast();+};+function h$$bE()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  h$sp -= 4;+  h$pp10(a, h$$bF);+  h$l3(b, c, h$integerzmgmpZCGHCziIntegerziTypezitimesInteger);+  return h$ap_2_2_fast();+};+function h$$bD()+{+  var a = h$r1;+  h$sp -= 4;+  h$pp8(h$$bE);+  h$l2(a, h$integerzmgmpZCGHCziIntegerziTypezismallInteger);+  return h$ap_1_1_fast();+};+function h$$bC()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if((a.f.a === 1))+  {+    return h$e(b);+  }+  else+  {+    var c = a.d1;+    h$pp12(a.d2, h$$bD);+    return h$e(c);+  };+};+function h$baseZCTextziReadziLexzinumberToFixedzuzdsval_e()+{+  h$p3(h$r2, h$r3, h$$bC);+  return h$e(h$r4);+};+function h$$bV()+{+  var a = h$r1;+  --h$sp;+  h$r1 = a;+  h$r2 = h$baseZCGHCziRealzizdfEnumRatio1;+  return h$stack[h$sp];+};+function h$$bU()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p1(h$$bV);+  h$l3(a, b, h$integerzmgmpZCGHCziIntegerziTypezitimesInteger);+  return h$ap_2_2_fast();+};+function h$$bT()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(b, a, h$baseZCGHCziRealzizdwzdsreduce);+  return h$baseZCGHCziRealzizdwzdsreduce_e;+};+function h$$bS()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$p2(c, h$$bT);+  h$l3(a, b, h$integerzmgmpZCGHCziIntegerziTypezitimesInteger);+  return h$ap_2_2_fast();+};+function h$$bR()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$pp6(a, h$$bS);+  h$l2(b, h$integerzmgmpZCGHCziIntegerziTypezisignumInteger);+  return h$ap_1_1_fast();+};+function h$$bQ()+{+  var a = h$r1;+  h$sp -= 2;+  h$pp6(a, h$$bR);+  h$l2(a, h$integerzmgmpZCGHCziIntegerziTypeziabsInteger);+  return h$ap_1_1_fast();+};+function h$$bP()+{+  var a = h$r1;+  h$sp -= 2;+  h$pp2(h$$bQ);+  h$l3(a, h$baseZCTextziReadziLexzinumberToFixed1, h$baseZCGHCziRealzizczuzdszc2);+  return h$baseZCGHCziRealzizczuzdszc2_e;+};+function h$$bO()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if(a)+  {+    h$p2(c, h$$bP);+    h$l2(b, h$integerzmgmpZCGHCziIntegerziTypezinegateInteger);+    return h$ap_1_1_fast();+  }+  else+  {+    h$p2(c, h$$bU);+    h$l3(b, h$baseZCTextziReadziLexzinumberToFixed1, h$baseZCGHCziRealzizczuzdszc2);+    return h$baseZCGHCziRealzizczuzdszc2_e;+  };+};+function h$$bN()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$l4(c, a, b, h$$it);+  return h$ap_3_3_fast();+};+function h$$bM()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 4;+  h$pp6(c, h$$bN);+  h$l3(b, a, h$integerzmgmpZCGHCziIntegerziTypeziplusInteger);+  return h$ap_2_2_fast();+};+function h$$bL()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  h$sp -= 4;+  h$pp10(a, h$$bM);+  h$l3(h$baseZCTextziReadziLexzinumberToFixed1, b, h$integerzmgmpZCGHCziIntegerziTypezitimesInteger);+  return h$ap_2_2_fast();+};+function h$$bK()+{+  var a = h$r1;+  h$sp -= 4;+  h$pp8(h$$bL);+  h$l2(a, h$integerzmgmpZCGHCziIntegerziTypezismallInteger);+  return h$ap_1_1_fast();+};+function h$$bJ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  h$sp -= 4;+  h$pp9(a, h$$bK);+  return h$e(b);+};+function h$$bI()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  h$sp -= 3;+  if((a.f.a === 1))+  {+    h$pp4(h$$bO);+    h$l3(h$baseZCTextziReadziLexzinumberToFixed2, b, h$integerzmgmpZCGHCziIntegerziTypeziltIntegerzh);+    return h$ap_2_2_fast();+  }+  else+  {+    var c = a.d1;+    h$pp13(c, a.d2, h$$bJ);+    h$l3(h$$kZ, b, h$integerzmgmpZCGHCziIntegerziTypeziminusInteger);+    return h$ap_2_2_fast();+  };+};+function h$$bH()+{+  h$p3(h$r2, h$r3, h$$bI);+  return h$e(h$r4);+};+function h$$ca()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$$iu);+  return h$ap_1_1_fast();+};+function h$$b9()+{+  h$l2(h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, h$r2, true), h$r1.d1);+  return h$ap_1_1_fast();+};+function h$$b8()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$c1(h$$b9, a), h$baseZCTextziReadziLexzilexChar2);+  return h$ap_1_1_fast();+};+function h$$b7()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  if((c === 92))+  {+    return h$e(b);+  }+  else+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$b6()+{+  h$p2(h$r1.d1, h$$b7);+  return h$e(h$r2);+};+function h$$b5()+{+  h$r1 = h$r1.d1;+  return h$stack[h$sp];+};+function h$$b4()+{+  h$r3 = h$r1.d1;+  h$r1 = h$baseZCTextziParserCombinatorsziReadPziskipSpaceszuskip;+  return h$ap_2_2_fast();+};+function h$$b3()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if(a)+  {+    h$r1 = b;+  }+  else+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$b2()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var d = a;+  if((d === 38))+  {+    return h$e(b);+  }+  else+  {+    h$p2(c, h$$b3);+    h$l2(a, h$baseZCGHCziUnicodeziisSpace);+    return h$ap_1_1_fast();+  };+};+function h$$b1()+{+  var a = h$r1.d1;+  h$p3(a, h$r1.d2, h$$b2);+  return h$e(h$r2);+};+function h$$b0()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var d = a;+  if((d === 92))+  {+    return h$e(c);+  }+  else+  {+    h$l2(h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, a, false), b);+    return h$ap_1_1_fast();+  };+};+function h$$bZ()+{+  var a = h$r1.d1;+  h$p3(a, h$r1.d2, h$$b0);+  return h$e(h$r2);+};+function h$$bY()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  if((c === 92))+  {+    h$r1 = b;+  }+  else+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$bX()+{+  h$p2(h$r1.d1, h$$bY);+  return h$e(h$r2);+};+function h$$bW()+{+  var a = h$c1(h$$ca, h$r2);+  var b = h$c1(h$baseZCTextziParserCombinatorsziReadPziGet_con_e, h$c1(h$$b6, a));+  h$l3(h$c1(h$baseZCTextziParserCombinatorsziReadPziGet_con_e, h$c2(h$$bZ, h$r2, h$c1(h$$b8, h$r2))),+  h$c1(h$baseZCTextziParserCombinatorsziReadPziGet_con_e, h$c1(h$$bX,+  h$c1(h$baseZCTextziParserCombinatorsziReadPziGet_con_e, h$c2(h$$b1, a,+  h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, h$c1(h$$b4, h$c1(h$$b5, b))))))),+  h$baseZCTextziParserCombinatorsziReadPzizdfMonadPlusPzuzdcmplus);+  return h$ap_2_2_fast();+};+function h$$cj()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$ghczmprimZCGHCziTypesziZMZN, a);+  return h$ap_1_1_fast();+};+function h$$ci()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(h$c1(h$baseZCTextziReadziLexziString_con_e, h$c1(h$$cj, a)), b);+  return h$ap_1_1_fast();+};+function h$$ch()+{+  var a = h$r1.d1;+  h$l2(h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$r1.d2, h$r2), a);+  return h$ap_1_1_fast();+};+function h$$cg()+{+  var a = h$r1.d1;+  h$l2(h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$r1.d2, h$r2), a);+  return h$ap_1_1_fast();+};+function h$$cf()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 2)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 5;+  if(a)+  {+    h$l3(c, h$c2(h$$cg, b, e), h$$iv);+    return h$ap_2_2_fast();+  }+  else+  {+    return h$e(d);+  };+};+function h$$ce()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 5;+  var e = a;+  if((e === 34))+  {+    h$pp24(a, h$$cf);+    return h$e(d);+  }+  else+  {+    h$l3(c, h$c2(h$$ch, b, a), h$$iv);+    return h$ap_2_2_fast();+  };+};+function h$$cd()+{+  var a = h$r1;+  h$sp -= 4;+  var b = a.d1;+  h$pp24(a.d2, h$$ce);+  return h$e(b);+};+function h$$cc()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$p4(a, c, b.d2, h$$cd);+  return h$e(h$r2);+};+function h$$cb()+{+  h$l2(h$c3(h$$cc, h$r2, h$r3, h$c2(h$$ci, h$r2, h$r3)), h$$iu);+  return h$ap_1_1_fast();+};+function h$$cl()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$ck()+{+  h$p1(h$$cl);+  h$r1 = h$$ix;+  return h$ap_1_1_fast();+};+function h$$cr()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$l2(h$c1(h$baseZCTextziReadziLexziNumber_con_e, h$c3(h$baseZCTextziReadziLexziMkDecimal_con_e, c, b.d2, h$r2)), a);+  return h$ap_1_1_fast();+};+function h$$cq()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$cp()+{+  var a = h$r1.d1;+  h$p1(h$$cq);+  h$l4(h$c3(h$$cr, a, h$r1.d2, h$r2), h$$iy, h$$iA, h$baseZCTextziParserCombinatorsziReadPzizdwa);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa_e;+};+function h$$co()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$cn()+{+  h$p1(h$$co);+  h$l4(h$c2(h$$cp, h$r1.d1, h$r2), h$$iz, h$$kS, h$baseZCTextziParserCombinatorsziReadPzizdwa);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa_e;+};+function h$$cm()+{+  h$l3(h$c1(h$$cn, h$r2), h$$kU, h$$kX);+  return h$ap_2_2_fast();+};+function h$$cs()+{+  var a = h$r2;+  h$l2(h$baseZCDataziMaybeziNothing, a);+  return h$ap_1_1_fast();+};+function h$$ct()+{+  var a = h$r2;+  h$l2(h$baseZCDataziMaybeziNothing, a);+  return h$ap_1_1_fast();+};+function h$$cP()+{+  var a = h$r1.d1;+  h$bh();+  h$l4(a, h$baseZCTextziReadziLexzinumberToFixed2, h$baseZCTextziReadziLexzinumberToFixed1,+  h$baseZCTextziReadziLexzinumberToFixedzuzdsval);+  return h$ap_3_3_fast();+};+function h$$cO()+{+  h$l2(h$c1(h$baseZCDataziMaybeziJust_con_e, h$c1(h$$cP, h$r2)), h$r1.d1);+  return h$ap_1_1_fast();+};+function h$$cN()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$cM()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$cN);+  h$l3(h$c1(h$$cO, a), h$$kU, h$$kX);+  return h$ap_2_2_fast();+};+function h$$cL()+{+  var a = h$r1.d1;+  h$bh();+  h$l4(a, h$baseZCTextziReadziLexzinumberToFixed2, h$baseZCTextziReadziLexzinumberToFixed1,+  h$baseZCTextziReadziLexzinumberToFixedzuzdsval);+  return h$ap_3_3_fast();+};+function h$$cK()+{+  h$l2(h$c1(h$baseZCDataziMaybeziJust_con_e, h$c1(h$$cL, h$r2)), h$r1.d1);+  return h$ap_1_1_fast();+};+function h$$cJ()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$cI()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  if((c === 43))+  {+    h$p1(h$$cJ);+    h$l3(h$c1(h$$cK, b), h$$kU, h$$kX);+    return h$ap_2_2_fast();+  }+  else+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$cH()+{+  h$p2(h$r1.d1, h$$cI);+  return h$e(h$r2);+};+function h$$cG()+{+  var a = h$r1;+  --h$sp;+  h$l2(a, h$integerzmgmpZCGHCziIntegerziTypezinegateInteger);+  return h$ap_1_1_fast();+};+function h$$cF()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$cG);+  h$l4(a, h$baseZCTextziReadziLexzinumberToFixed2, h$baseZCTextziReadziLexzinumberToFixed1,+  h$baseZCTextziReadziLexzinumberToFixedzuzdsval);+  return h$ap_3_3_fast();+};+function h$$cE()+{+  h$l2(h$c1(h$baseZCDataziMaybeziJust_con_e, h$c1(h$$cF, h$r2)), h$r1.d1);+  return h$ap_1_1_fast();+};+function h$$cD()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$cC()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  if((c === 45))+  {+    h$p1(h$$cD);+    h$l3(h$c1(h$$cE, b), h$$kU, h$$kX);+    return h$ap_2_2_fast();+  }+  else+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$cB()+{+  h$p2(h$r1.d1, h$$cC);+  return h$e(h$r2);+};+function h$$cA()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(b, a, h$baseZCTextziParserCombinatorsziReadPzizdfMonadPlusPzuzdcmplus);+  return h$ap_2_2_fast();+};+function h$$cz()+{+  var a = h$r1.d1;+  h$bh();+  h$p2(h$c1(h$$cM, a), h$$cA);+  h$l3(h$c1(h$baseZCTextziParserCombinatorsziReadPziGet_con_e, h$c1(h$$cH, a)),+  h$c1(h$baseZCTextziParserCombinatorsziReadPziGet_con_e, h$c1(h$$cB, a)),+  h$baseZCTextziParserCombinatorsziReadPzizdfMonadPlusPzuzdcmplus);+  return h$ap_2_2_fast();+};+function h$$cy()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  if((c === 69))+  {+    return h$e(b);+  }+  else+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$cx()+{+  h$p2(h$r1.d1, h$$cy);+  return h$e(h$r2);+};+function h$$cw()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  if((c === 101))+  {+    return h$e(b);+  }+  else+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$cv()+{+  h$p2(h$r1.d1, h$$cw);+  return h$e(h$r2);+};+function h$$cu()+{+  var a = h$c1(h$$cz, h$r2);+  h$l3(h$c1(h$baseZCTextziParserCombinatorsziReadPziGet_con_e, h$c1(h$$cx, a)),+  h$c1(h$baseZCTextziParserCombinatorsziReadPziGet_con_e, h$c1(h$$cv, a)),+  h$baseZCTextziParserCombinatorsziReadPzizdfMonadPlusPzuzdcmplus);+  return h$ap_2_2_fast();+};+function h$$cQ()+{+  var a = h$r2;+  h$l2(h$$kU, a);+  return h$ap_1_1_fast();+};+function h$$cR()+{+  h$bh();+  h$l2(h$$kL, h$baseZCTextziParserCombinatorsziReadPzichoice);+  return h$ap_1_1_fast();+};+function h$$cV()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$iI, a);+  return h$ap_1_1_fast();+};+function h$$cU()+{+  return h$e(h$r1.d1);+};+function h$$cT()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$cS()+{+  h$p1(h$$cT);+  h$l3(h$c1(h$$cU, h$c1(h$$cV, h$r2)), h$$iJ, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$iJ = h$strta("DEL");+function h$$cZ()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$iM, a);+  return h$ap_1_1_fast();+};+function h$$cY()+{+  return h$e(h$r1.d1);+};+function h$$cX()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$cW()+{+  h$p1(h$$cX);+  h$l3(h$c1(h$$cY, h$c1(h$$cZ, h$r2)), h$$iN, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$iN = h$strta("SP");+function h$$c3()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$iQ, a);+  return h$ap_1_1_fast();+};+function h$$c2()+{+  return h$e(h$r1.d1);+};+function h$$c1()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$c0()+{+  h$p1(h$$c1);+  h$l3(h$c1(h$$c2, h$c1(h$$c3, h$r2)), h$$iR, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$iR = h$strta("US");+function h$$c7()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$iU, a);+  return h$ap_1_1_fast();+};+function h$$c6()+{+  return h$e(h$r1.d1);+};+function h$$c5()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$c4()+{+  h$p1(h$$c5);+  h$l3(h$c1(h$$c6, h$c1(h$$c7, h$r2)), h$$iV, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$iV = h$strta("RS");+function h$$db()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$iY, a);+  return h$ap_1_1_fast();+};+function h$$da()+{+  return h$e(h$r1.d1);+};+function h$$c9()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$c8()+{+  h$p1(h$$c9);+  h$l3(h$c1(h$$da, h$c1(h$$db, h$r2)), h$$iZ, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$iZ = h$strta("GS");+function h$$df()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$i2, a);+  return h$ap_1_1_fast();+};+function h$$de()+{+  return h$e(h$r1.d1);+};+function h$$dd()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$dc()+{+  h$p1(h$$dd);+  h$l3(h$c1(h$$de, h$c1(h$$df, h$r2)), h$$i3, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$i3 = h$strta("FS");+function h$$dj()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$i6, a);+  return h$ap_1_1_fast();+};+function h$$di()+{+  return h$e(h$r1.d1);+};+function h$$dh()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$dg()+{+  h$p1(h$$dh);+  h$l3(h$c1(h$$di, h$c1(h$$dj, h$r2)), h$$i7, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$i7 = h$strta("ESC");+function h$$dn()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$ja, a);+  return h$ap_1_1_fast();+};+function h$$dm()+{+  return h$e(h$r1.d1);+};+function h$$dl()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$dk()+{+  h$p1(h$$dl);+  h$l3(h$c1(h$$dm, h$c1(h$$dn, h$r2)), h$$jb, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$jb = h$strta("SUB");+function h$$ds()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$je, a);+  return h$ap_1_1_fast();+};+function h$$dr()+{+  return h$e(h$r1.d1);+};+function h$$dq()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$dp()+{+  h$p1(h$$dq);+  h$l3(h$c1(h$$dr, h$c1(h$$ds, h$r2)), h$$jf, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$jf = h$strta("EM");+function h$$dw()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$ji, a);+  return h$ap_1_1_fast();+};+function h$$dv()+{+  return h$e(h$r1.d1);+};+function h$$du()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$dt()+{+  h$p1(h$$du);+  h$l3(h$c1(h$$dv, h$c1(h$$dw, h$r2)), h$$jj, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$jj = h$strta("CAN");+function h$$dA()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$jm, a);+  return h$ap_1_1_fast();+};+function h$$dz()+{+  return h$e(h$r1.d1);+};+function h$$dy()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$dx()+{+  h$p1(h$$dy);+  h$l3(h$c1(h$$dz, h$c1(h$$dA, h$r2)), h$$jn, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$jn = h$strta("ETB");+function h$$dE()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$jq, a);+  return h$ap_1_1_fast();+};+function h$$dD()+{+  return h$e(h$r1.d1);+};+function h$$dC()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$dB()+{+  h$p1(h$$dC);+  h$l3(h$c1(h$$dD, h$c1(h$$dE, h$r2)), h$$jr, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$jr = h$strta("SYN");+function h$$dI()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$ju, a);+  return h$ap_1_1_fast();+};+function h$$dH()+{+  return h$e(h$r1.d1);+};+function h$$dG()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$dF()+{+  h$p1(h$$dG);+  h$l3(h$c1(h$$dH, h$c1(h$$dI, h$r2)), h$$jv, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$jv = h$strta("NAK");+function h$$dM()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$jy, a);+  return h$ap_1_1_fast();+};+function h$$dL()+{+  return h$e(h$r1.d1);+};+function h$$dK()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$dJ()+{+  h$p1(h$$dK);+  h$l3(h$c1(h$$dL, h$c1(h$$dM, h$r2)), h$$jz, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$jz = h$strta("DC4");+function h$$dQ()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$jC, a);+  return h$ap_1_1_fast();+};+function h$$dP()+{+  return h$e(h$r1.d1);+};+function h$$dO()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$dN()+{+  h$p1(h$$dO);+  h$l3(h$c1(h$$dP, h$c1(h$$dQ, h$r2)), h$$jD, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$jD = h$strta("DC3");+function h$$dU()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$jG, a);+  return h$ap_1_1_fast();+};+function h$$dT()+{+  return h$e(h$r1.d1);+};+function h$$dS()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$dR()+{+  h$p1(h$$dS);+  h$l3(h$c1(h$$dT, h$c1(h$$dU, h$r2)), h$$jH, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$jH = h$strta("DC2");+function h$$dY()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$jK, a);+  return h$ap_1_1_fast();+};+function h$$dX()+{+  return h$e(h$r1.d1);+};+function h$$dW()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$dV()+{+  h$p1(h$$dW);+  h$l3(h$c1(h$$dX, h$c1(h$$dY, h$r2)), h$$jL, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$jL = h$strta("DC1");+function h$$d2()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$jO, a);+  return h$ap_1_1_fast();+};+function h$$d1()+{+  return h$e(h$r1.d1);+};+function h$$d0()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$dZ()+{+  h$p1(h$$d0);+  h$l3(h$c1(h$$d1, h$c1(h$$d2, h$r2)), h$$jP, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$jP = h$strta("DLE");+function h$$d6()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$jS, a);+  return h$ap_1_1_fast();+};+function h$$d5()+{+  return h$e(h$r1.d1);+};+function h$$d4()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$d3()+{+  h$p1(h$$d4);+  h$l3(h$c1(h$$d5, h$c1(h$$d6, h$r2)), h$$jT, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$jT = h$strta("SI");+function h$$ea()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$jW, a);+  return h$ap_1_1_fast();+};+function h$$d9()+{+  return h$e(h$r1.d1);+};+function h$$d8()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$d7()+{+  h$p1(h$$d8);+  h$l3(h$c1(h$$d9, h$c1(h$$ea, h$r2)), h$$jX, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$jX = h$strta("CR");+function h$$ee()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$j0, a);+  return h$ap_1_1_fast();+};+function h$$ed()+{+  return h$e(h$r1.d1);+};+function h$$ec()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$eb()+{+  h$p1(h$$ec);+  h$l3(h$c1(h$$ed, h$c1(h$$ee, h$r2)), h$$j1, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$j1 = h$strta("FF");+function h$$ei()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$j4, a);+  return h$ap_1_1_fast();+};+function h$$eh()+{+  return h$e(h$r1.d1);+};+function h$$eg()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$ef()+{+  h$p1(h$$eg);+  h$l3(h$c1(h$$eh, h$c1(h$$ei, h$r2)), h$$j5, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$j5 = h$strta("VT");+function h$$em()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$j8, a);+  return h$ap_1_1_fast();+};+function h$$el()+{+  return h$e(h$r1.d1);+};+function h$$ek()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$ej()+{+  h$p1(h$$ek);+  h$l3(h$c1(h$$el, h$c1(h$$em, h$r2)), h$$j9, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$j9 = h$strta("LF");+function h$$eq()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$kc, a);+  return h$ap_1_1_fast();+};+function h$$ep()+{+  return h$e(h$r1.d1);+};+function h$$eo()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$en()+{+  h$p1(h$$eo);+  h$l3(h$c1(h$$ep, h$c1(h$$eq, h$r2)), h$$kd, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$kd = h$strta("HT");+function h$$eu()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$kg, a);+  return h$ap_1_1_fast();+};+function h$$et()+{+  return h$e(h$r1.d1);+};+function h$$es()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$er()+{+  h$p1(h$$es);+  h$l3(h$c1(h$$et, h$c1(h$$eu, h$r2)), h$$kh, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$kh = h$strta("BS");+function h$$ey()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$kk, a);+  return h$ap_1_1_fast();+};+function h$$ex()+{+  return h$e(h$r1.d1);+};+function h$$ew()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$ev()+{+  h$p1(h$$ew);+  h$l3(h$c1(h$$ex, h$c1(h$$ey, h$r2)), h$$kl, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$kl = h$strta("BEL");+function h$$eC()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$ko, a);+  return h$ap_1_1_fast();+};+function h$$eB()+{+  return h$e(h$r1.d1);+};+function h$$eA()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$ez()+{+  h$p1(h$$eA);+  h$l3(h$c1(h$$eB, h$c1(h$$eC, h$r2)), h$$kp, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$kp = h$strta("ACK");+function h$$eG()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$ks, a);+  return h$ap_1_1_fast();+};+function h$$eF()+{+  return h$e(h$r1.d1);+};+function h$$eE()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$eD()+{+  h$p1(h$$eE);+  h$l3(h$c1(h$$eF, h$c1(h$$eG, h$r2)), h$$kt, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$kt = h$strta("ENQ");+function h$$eK()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$kw, a);+  return h$ap_1_1_fast();+};+function h$$eJ()+{+  return h$e(h$r1.d1);+};+function h$$eI()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$eH()+{+  h$p1(h$$eI);+  h$l3(h$c1(h$$eJ, h$c1(h$$eK, h$r2)), h$$kx, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$kx = h$strta("EOT");+function h$$eO()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$kA, a);+  return h$ap_1_1_fast();+};+function h$$eN()+{+  return h$e(h$r1.d1);+};+function h$$eM()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$eL()+{+  h$p1(h$$eM);+  h$l3(h$c1(h$$eN, h$c1(h$$eO, h$r2)), h$$kB, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$kB = h$strta("ETX");+function h$$eS()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$kE, a);+  return h$ap_1_1_fast();+};+function h$$eR()+{+  return h$e(h$r1.d1);+};+function h$$eQ()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$eP()+{+  h$p1(h$$eQ);+  h$l3(h$c1(h$$eR, h$c1(h$$eS, h$r2)), h$$kF, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$kF = h$strta("STX");+function h$$eW()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$kI, a);+  return h$ap_1_1_fast();+};+function h$$eV()+{+  return h$e(h$r1.d1);+};+function h$$eU()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$eT()+{+  h$p1(h$$eU);+  h$l3(h$c1(h$$eV, h$c1(h$$eW, h$r2)), h$$kJ, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$kJ = h$strta("NUL");+function h$$eY()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$eX()+{+  h$p1(h$$eY);+  h$l4(h$r2, h$$kM, h$$kP, h$baseZCTextziParserCombinatorsziReadPzizdwa);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa_e;+};+function h$$e2()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$kN, a);+  return h$ap_1_1_fast();+};+function h$$e1()+{+  return h$e(h$r1.d1);+};+function h$$e0()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$eZ()+{+  h$p1(h$$e0);+  h$l3(h$c1(h$$e1, h$c1(h$$e2, h$r2)), h$$kO, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$kO = h$strta("SO");+function h$$e6()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$kQ, a);+  return h$ap_1_1_fast();+};+function h$$e5()+{+  return h$e(h$r1.d1);+};+function h$$e4()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$e3()+{+  h$p1(h$$e4);+  h$l3(h$c1(h$$e5, h$c1(h$$e6, h$r2)), h$$kR, h$baseZCTextziParserCombinatorsziReadPzizdwa6);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa6_e;+};+var h$$kR = h$strta("SOH");+function h$$e8()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziGet_con_e, a);+  return h$stack[h$sp];+};+function h$$e7()+{+  h$p1(h$$e8);+  h$r1 = h$$kT;+  return h$ap_1_1_fast();+};+function h$$fd()+{+  h$l2(h$c1(h$baseZCDataziMaybeziJust_con_e, h$r2), h$r1.d1);+  return h$ap_1_1_fast();+};+function h$$fc()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$fb()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  if((c === 46))+  {+    h$p1(h$$fc);+    h$l3(b, h$$kU, h$$kX);+    return h$ap_2_2_fast();+  }+  else+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$fa()+{+  h$p2(h$r1.d1, h$$fb);+  return h$e(h$r2);+};+function h$$e9()+{+  h$r1 = h$c1(h$$fa, h$c1(h$$fd, h$r2));+  return h$stack[h$sp];+};+function h$$ff()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziGet_con_e, a);+  return h$stack[h$sp];+};+function h$$fe()+{+  h$p1(h$$ff);+  h$r1 = h$$kW;+  return h$ap_1_1_fast();+};+function h$$fq()+{+  h$l2(h$c1(h$baseZCTextziReadziLexziNumber_con_e, h$c2(h$baseZCTextziReadziLexziMkNumber_con_e, h$$lx, h$r2)), h$r1.d1);+  return h$ap_1_1_fast();+};+function h$$fp()+{+  h$l2(h$c1(h$baseZCTextziReadziLexziNumber_con_e, h$c2(h$baseZCTextziReadziLexziMkNumber_con_e, h$$lw, h$r2)), h$r1.d1);+  return h$ap_1_1_fast();+};+function h$$fo()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$fn()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$fm()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$fl()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$fk()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  switch (a)+  {+    case (79):+      h$p1(h$$fo);+      h$l3(b, h$$lx, h$$kX);+      return h$ap_2_2_fast();+    case (88):+      h$p1(h$$fn);+      h$l3(c, h$$lw, h$$kX);+      return h$ap_2_2_fast();+    case (111):+      h$p1(h$$fm);+      h$l3(b, h$$lx, h$$kX);+      return h$ap_2_2_fast();+    case (120):+      h$p1(h$$fl);+      h$l3(c, h$$lw, h$$kX);+      return h$ap_2_2_fast();+    default:+      h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$fj()+{+  var a = h$r1.d1;+  h$p3(a, h$r1.d2, h$$fk);+  return h$e(h$r2);+};+function h$$fi()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  if((c === 48))+  {+    h$r1 = b;+  }+  else+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$fh()+{+  h$p2(h$r1.d1, h$$fi);+  return h$e(h$r2);+};+function h$$fg()+{+  h$r1 = h$c1(h$$fh, h$c1(h$baseZCTextziParserCombinatorsziReadPziGet_con_e, h$c2(h$$fj, h$c1(h$$fq, h$r2), h$c1(h$$fp,+  h$r2))));+  return h$stack[h$sp];+};+function h$$f4()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$ghczmprimZCGHCziTypesziZMZN, a);+  return h$ap_1_1_fast();+};+function h$$f3()+{+  var a = h$r2;+  h$l2(h$r1.d1, a);+  return h$ap_1_1_fast();+};+function h$$f2()+{+  var a = h$r1.d1;+  h$l2(h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$r1.d2, h$r2), a);+  return h$ap_1_1_fast();+};+function h$$f1()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  h$bh();+  h$l3(h$c2(h$$f2, c, b.d3), d, a);+  return h$ap_2_2_fast();+};+function h$$f0()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(b, a);+  return h$ap_1_1_fast();+};+function h$$fZ()+{+  return h$e(h$r1.d1);+};+function h$$fY()+{+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziGet_con_e, h$c1(h$$fZ, h$c2(h$$f0, h$r1.d1, h$r2)));+  return h$stack[h$sp];+};+function h$$fX()+{+  var a = h$stack[(h$sp - 3)];+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 4;+  h$r1 = h$c1(h$$fY, h$c4(h$$f1, b, c, a, h$r1));+  return h$stack[h$sp];+};+function h$$fW()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$ghczmprimZCGHCziTypesziZMZN, a);+  return h$ap_1_1_fast();+};+function h$$fV()+{+  var a = h$r2;+  h$l2(h$r1.d1, a);+  return h$ap_1_1_fast();+};+function h$$fU()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$ghczmprimZCGHCziTypesziZMZN, a);+  return h$ap_1_1_fast();+};+function h$$fT()+{+  var a = h$r2;+  h$l2(h$r1.d1, a);+  return h$ap_1_1_fast();+};+function h$$fS()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$ghczmprimZCGHCziTypesziZMZN, a);+  return h$ap_1_1_fast();+};+function h$$fR()+{+  var a = h$r2;+  h$l2(h$r1.d1, a);+  return h$ap_1_1_fast();+};+function h$$fQ()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$ghczmprimZCGHCziTypesziZMZN, a);+  return h$ap_1_1_fast();+};+function h$$fP()+{+  var a = h$r2;+  h$l2(h$r1.d1, a);+  return h$ap_1_1_fast();+};+function h$$fO()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$ghczmprimZCGHCziTypesziZMZN, a);+  return h$ap_1_1_fast();+};+function h$$fN()+{+  var a = h$r2;+  h$l2(h$r1.d1, a);+  return h$ap_1_1_fast();+};+function h$$fM()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$ghczmprimZCGHCziTypesziZMZN, a);+  return h$ap_1_1_fast();+};+function h$$fL()+{+  var a = h$r2;+  h$l2(h$r1.d1, a);+  return h$ap_1_1_fast();+};+function h$$fK()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$ghczmprimZCGHCziTypesziZMZN, a);+  return h$ap_1_1_fast();+};+function h$$fJ()+{+  var a = h$r2;+  h$l2(h$r1.d1, a);+  return h$ap_1_1_fast();+};+function h$$fI()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$ghczmprimZCGHCziTypesziZMZN, a);+  return h$ap_1_1_fast();+};+function h$$fH()+{+  var a = h$r2;+  h$l2(h$r1.d1, a);+  return h$ap_1_1_fast();+};+function h$$fG()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$ghczmprimZCGHCziTypesziZMZN, a);+  return h$ap_1_1_fast();+};+function h$$fF()+{+  var a = h$r2;+  h$l2(h$r1.d1, a);+  return h$ap_1_1_fast();+};+function h$$fE()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$ghczmprimZCGHCziTypesziZMZN, a);+  return h$ap_1_1_fast();+};+function h$$fD()+{+  var a = h$r2;+  h$l2(h$r1.d1, a);+  return h$ap_1_1_fast();+};+function h$$fC()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$ghczmprimZCGHCziTypesziZMZN, a);+  return h$ap_1_1_fast();+};+function h$$fB()+{+  var a = h$r2;+  h$l2(h$r1.d1, a);+  return h$ap_1_1_fast();+};+function h$$fA()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$ghczmprimZCGHCziTypesziZMZN, a);+  return h$ap_1_1_fast();+};+function h$$fz()+{+  var a = h$r2;+  h$l2(h$r1.d1, a);+  return h$ap_1_1_fast();+};+function h$$fy()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 5;+  var e = a;+  switch (b)+  {+    case (8):+      if((48 <= e))+      {+        if((e <= 55))+        {+          var f = e;+          h$r1 = ((f - 48) | 0);+          h$sp += 3;+          h$stack[(h$sp - 2)] = d;+          ++h$sp;+          return h$$fX;+        }+        else+        {+          h$r1 = h$c1(h$$fT, h$c1(h$$fU, c));+        };+      }+      else+      {+        h$r1 = h$c1(h$$fV, h$c1(h$$fW, c));+      };+      break;+    case (10):+      if((48 <= e))+      {+        if((e <= 57))+        {+          var g = e;+          h$r1 = ((g - 48) | 0);+          h$sp += 3;+          h$stack[(h$sp - 2)] = d;+          ++h$sp;+          return h$$fX;+        }+        else+        {+          h$r1 = h$c1(h$$fP, h$c1(h$$fQ, c));+        };+      }+      else+      {+        h$r1 = h$c1(h$$fR, h$c1(h$$fS, c));+      };+      break;+    case (16):+      if((48 <= e))+      {+        if((e <= 57))+        {+          var h = e;+          h$r1 = ((h - 48) | 0);+          h$sp += 3;+          h$stack[(h$sp - 2)] = d;+          ++h$sp;+          return h$$fX;+        }+        else+        {+          if((97 <= e))+          {+            if((e <= 102))+            {+              var i = e;+              var j = ((i - 97) | 0);+              h$r1 = ((j + 10) | 0);+              h$sp += 3;+              h$stack[(h$sp - 2)] = d;+              ++h$sp;+              return h$$fX;+            }+            else+            {+              if((65 <= e))+              {+                if((e <= 70))+                {+                  var k = e;+                  var l = ((k - 65) | 0);+                  h$r1 = ((l + 10) | 0);+                  h$sp += 3;+                  h$stack[(h$sp - 2)] = d;+                  ++h$sp;+                  return h$$fX;+                }+                else+                {+                  h$r1 = h$c1(h$$fz, h$c1(h$$fA, c));+                };+              }+              else+              {+                h$r1 = h$c1(h$$fB, h$c1(h$$fC, c));+              };+            };+          }+          else+          {+            if((65 <= e))+            {+              if((e <= 70))+              {+                var m = e;+                var n = ((m - 65) | 0);+                h$r1 = ((n + 10) | 0);+                h$sp += 3;+                h$stack[(h$sp - 2)] = d;+                ++h$sp;+                return h$$fX;+              }+              else+              {+                h$r1 = h$c1(h$$fD, h$c1(h$$fE, c));+              };+            }+            else+            {+              h$r1 = h$c1(h$$fF, h$c1(h$$fG, c));+            };+          };+        };+      }+      else+      {+        if((97 <= e))+        {+          if((e <= 102))+          {+            var o = e;+            var p = ((o - 97) | 0);+            h$r1 = ((p + 10) | 0);+            h$sp += 3;+            h$stack[(h$sp - 2)] = d;+            ++h$sp;+            return h$$fX;+          }+          else+          {+            if((65 <= e))+            {+              if((e <= 70))+              {+                var q = e;+                var r = ((q - 65) | 0);+                h$r1 = ((r + 10) | 0);+                h$sp += 3;+                h$stack[(h$sp - 2)] = d;+                ++h$sp;+                return h$$fX;+              }+              else+              {+                h$r1 = h$c1(h$$fH, h$c1(h$$fI, c));+              };+            }+            else+            {+              h$r1 = h$c1(h$$fJ, h$c1(h$$fK, c));+            };+          };+        }+        else+        {+          if((65 <= e))+          {+            if((e <= 70))+            {+              var s = e;+              var t = ((s - 65) | 0);+              h$r1 = ((t + 10) | 0);+              h$sp += 3;+              h$stack[(h$sp - 2)] = d;+              ++h$sp;+              return h$$fX;+            }+            else+            {+              h$r1 = h$c1(h$$fL, h$c1(h$$fM, c));+            };+          }+          else+          {+            h$r1 = h$c1(h$$fN, h$c1(h$$fO, c));+          };+        };+      };+      break;+    default:+      return h$e(h$baseZCTextziReadziLexzireadDecP2);+  };+  return h$stack[h$sp];+};+function h$$fx()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  h$sp -= 5;+  h$pp17(a, h$$fy);+  return h$e(b);+};+function h$$fw()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 4;+  if((a.f.a === 1))+  {+    h$r1 = h$c1(h$$f3, h$c1(h$$f4, c));+  }+  else+  {+    var d = a.d1;+    h$pp25(d, a.d2, h$$fx);+    return h$e(b);+  };+  return h$stack[h$sp];+};+function h$$fv()+{+  var a = h$r1.d1;+  h$p4(a, h$r1.d2, h$r3, h$$fw);+  return h$e(h$r2);+};+function h$$fu()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  }+  else+  {+    h$l2(a, b);+    return h$ap_1_1_fast();+  };+  return h$stack[h$sp];+};+function h$$ft()+{+  h$p2(h$r1.d1, h$$fu);+  return h$e(h$r2);+};+function h$$fs()+{+  var a = h$r1.d1;+  h$r4 = h$r1.d2;+  h$r3 = h$baseZCGHCziBaseziid;+  h$r1 = a;+  return h$ap_3_3_fast();+};+function h$$fr()+{+  var a = h$r3;+  var b = h$c(h$$fv);+  b.d1 = h$r2;+  b.d2 = b;+  h$r1 = h$c2(h$$fs, b, h$c1(h$$ft, a));+  return h$stack[h$sp];+};+var h$$kY = h$strta("valDig: Bad base");+var h$$k0 = h$strta(",;()[]{}`");+function h$$f5()+{+  h$l4(h$$k2, h$r2, h$ghczmprimZCGHCziClasseszizdfEqChar, h$baseZCGHCziListzielem);+  return h$ap_3_3_fast();+};+var h$$k2 = h$strta("!@#$%&*+.\/<=>?\\^|:-~");+var h$$k3 = h$strta("=>");+var h$$lb = h$strta("->");+var h$$ld = h$strta("<-");+var h$$lo = h$strta("::");+var h$$lq = h$strta("..");+function h$$f7()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if(a)+  {+    h$r1 = true;+  }+  else+  {+    h$l4(h$$lt, b, h$ghczmprimZCGHCziClasseszizdfEqChar, h$baseZCGHCziListzielem);+    return h$ap_3_3_fast();+  };+  return h$stack[h$sp];+};+function h$$f6()+{+  h$p2(h$r2, h$$f7);+  h$r1 = h$baseZCGHCziUnicodeziisAlphaNum;+  return h$ap_1_1_fast();+};+var h$$lt = h$strta("_'");+function h$$f9()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziGet_con_e, a);+  return h$stack[h$sp];+};+function h$$f8()+{+  h$p1(h$$f9);+  h$r1 = h$$lv;+  return h$ap_1_1_fast();+};+function h$$ge()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$lx, a);+  return h$ap_1_1_fast();+};+function h$$gd()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$lw, a);+  return h$ap_1_1_fast();+};+function h$$gc()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  switch (a)+  {+    case (79):+      return h$e(b);+    case (88):+      return h$e(c);+    case (111):+      return h$e(b);+    case (120):+      return h$e(c);+    default:+      h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$gb()+{+  var a = h$r1.d1;+  h$p3(a, h$r1.d2, h$$gc);+  return h$e(h$r2);+};+function h$$ga()+{+  h$r1 = h$c2(h$$gb, h$c1(h$$ge, h$r2), h$c1(h$$gd, h$r2));+  return h$stack[h$sp];+};+function h$baseZCTextziReadziLexzireadDecP2_e()+{+  h$bh();+  h$l2(h$$kY, h$baseZCGHCziErrzierror);+  return h$ap_1_1_fast();+};+function h$$gB()+{+  var a = h$r1;+  --h$sp;+  h$l2(a, h$integerzmgmpZCGHCziIntegerziTypezismallInteger);+  return h$ap_1_1_fast();+};+function h$$gA()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$gB);+  return h$e(a);+};+function h$$gz()+{+  var a = h$r1;+  --h$sp;+  h$l3(h$$kZ, a, h$baseZCGHCziRealzizdwzdsreduce);+  return h$baseZCGHCziRealzizdwzdsreduce_e;+};+function h$$gy()+{+  var a = h$r1;+  --h$sp;+  h$p1(h$$gz);+  h$l3(h$$kZ, a, h$integerzmgmpZCGHCziIntegerziTypezitimesInteger);+  return h$ap_2_2_fast();+};+function h$$gx()+{+  var a = h$r1;+  --h$sp;+  h$l3(h$$kZ, a, h$baseZCGHCziRealzizdwzdsreduce);+  return h$baseZCGHCziRealzizdwzdsreduce_e;+};+function h$$gw()+{+  var a = h$r1;+  --h$sp;+  h$p1(h$$gx);+  h$l3(h$$kZ, a, h$integerzmgmpZCGHCziIntegerziTypezitimesInteger);+  return h$ap_2_2_fast();+};+function h$$gv()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(b, a, h$baseZCGHCziRealzizdwzdsreduce);+  return h$baseZCGHCziRealzizdwzdsreduce_e;+};+function h$$gu()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$p2(c, h$$gv);+  h$l3(b, a, h$integerzmgmpZCGHCziIntegerziTypezitimesInteger);+  return h$ap_2_2_fast();+};+function h$$gt()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  h$sp -= 3;+  h$pp5(a, h$$gu);+  h$l4(b, h$baseZCTextziReadziLexzinumberToFixed2, h$baseZCTextziReadziLexzinumberToFixed1,+  h$baseZCTextziReadziLexzinumberToFixedzuzdsval);+  return h$ap_3_3_fast();+};+function h$$gs()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$pp6(a, h$$gt);+  h$l2(b, h$integerzmgmpZCGHCziIntegerziTypezisignumInteger);+  return h$ap_1_1_fast();+};+function h$$gr()+{+  var a = h$r1;+  h$sp -= 2;+  h$pp6(a, h$$gs);+  h$l2(a, h$integerzmgmpZCGHCziIntegerziTypeziabsInteger);+  return h$ap_1_1_fast();+};+function h$$gq()+{+  var a = h$r1;+  h$sp -= 2;+  h$pp2(h$$gr);+  h$l3(a, h$baseZCTextziReadziLexzinumberToFixed1, h$baseZCGHCziRealzizczuzdszc2);+  return h$baseZCGHCziRealzizczuzdszc2_e;+};+function h$$gp()+{+  var a = h$r1;+  --h$sp;+  h$l3(h$$kZ, a, h$baseZCGHCziRealzizdwzdsreduce);+  return h$baseZCGHCziRealzizdwzdsreduce_e;+};+function h$$go()+{+  var a = h$r1;+  --h$sp;+  h$p1(h$$gp);+  h$l3(h$$kZ, a, h$integerzmgmpZCGHCziIntegerziTypezitimesInteger);+  return h$ap_2_2_fast();+};+function h$$gn()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p1(h$$go);+  h$l3(b, a, h$integerzmgmpZCGHCziIntegerziTypezitimesInteger);+  return h$ap_2_2_fast();+};+function h$$gm()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$gn);+  h$l4(b, h$baseZCTextziReadziLexzinumberToFixed2, h$baseZCTextziReadziLexzinumberToFixed1,+  h$baseZCTextziReadziLexzinumberToFixedzuzdsval);+  return h$ap_3_3_fast();+};+function h$$gl()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if(a)+  {+    h$pp2(h$$gm);+    h$l3(b, h$baseZCTextziReadziLexzinumberToFixed1, h$baseZCGHCziRealzizczuzdszc2);+    return h$baseZCGHCziRealzizczuzdszc2_e;+  }+  else+  {+    h$pp2(h$$gq);+    h$l2(b, h$integerzmgmpZCGHCziIntegerziTypezinegateInteger);+    return h$ap_1_1_fast();+  };+};+function h$$gk()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$p1(h$$gw);+    h$l4(b, h$baseZCTextziReadziLexzinumberToFixed2, h$baseZCTextziReadziLexzinumberToFixed1,+    h$baseZCTextziReadziLexzinumberToFixedzuzdsval);+    return h$ap_3_3_fast();+  }+  else+  {+    var c = a.d1;+    h$pp6(c, h$$gl);+    h$l3(h$baseZCTextziReadziLexzinumberToFixed2, c, h$integerzmgmpZCGHCziIntegerziTypezigeIntegerzh);+    return h$ap_2_2_fast();+  };+};+function h$$gj()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l4(b, a, h$baseZCTextziReadziLexzinumberToFixed2, h$$it);+  return h$ap_3_3_fast();+};+function h$$gi()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$l4(c, a, b, h$$it);+  return h$ap_3_3_fast();+};+function h$$gh()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if((a.f.a === 1))+  {+    h$p2(c, h$$gj);+    h$l4(b, h$baseZCTextziReadziLexzinumberToFixed2, h$baseZCTextziReadziLexzinumberToFixed1,+    h$baseZCTextziReadziLexzinumberToFixedzuzdsval);+    return h$ap_3_3_fast();+  }+  else+  {+    h$pp5(a.d1, h$$gi);+    h$l4(b, h$baseZCTextziReadziLexzinumberToFixed2, h$baseZCTextziReadziLexzinumberToFixed1,+    h$baseZCTextziReadziLexzinumberToFixedzuzdsval);+    return h$ap_3_3_fast();+  };+};+function h$$gg()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if((a.f.a === 1))+  {+    h$pp2(h$$gk);+    return h$e(b);+  }+  else+  {+    h$pp6(a.d1, h$$gh);+    return h$e(b);+  };+};+function h$$gf()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    var b = a.d1;+    h$p1(h$$gy);+    h$l4(a.d2, h$baseZCTextziReadziLexzinumberToFixed2, h$c1(h$$gA, b), h$baseZCTextziReadziLexzinumberToFixedzuzdsval);+    return h$ap_3_3_fast();+  }+  else+  {+    var c = a.d1;+    var d = a.d2;+    var e = d.d1;+    h$p3(c, d.d2, h$$gg);+    return h$e(e);+  };+};+function h$baseZCTextziReadziLexzizdwnumberToRational_e()+{+  h$p1(h$$gf);+  return h$e(h$r2);+};+function h$baseZCTextziReadziLexzinumberToRangedRational1_e()+{+  h$l3(h$r2, h$baseZCTextziReadziLexzizdfShowLexeme2, h$ghczmprimZCGHCziClasseszieqInt);+  return h$ghczmprimZCGHCziClasseszieqInt_e;+};+function h$$gV()+{+  var a;+  var b;+  a = h$r1;+  b = h$r2;+  --h$sp;+  h$r1 = h$c2(h$baseZCGHCziRealziZCzv_con_e, a, b);+  return h$stack[h$sp];+};+function h$$gU()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$gV);+  h$l2(a, h$baseZCTextziReadziLexzizdwnumberToRational);+  return h$ap_1_1_fast();+};+function h$$gT()+{+  var a;+  var b;+  a = h$r1;+  b = h$r2;+  --h$sp;+  h$r1 = h$c2(h$baseZCGHCziRealziZCzv_con_e, a, b);+  return h$stack[h$sp];+};+function h$$gS()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$gT);+  h$l2(a, h$baseZCTextziReadziLexzizdwnumberToRational);+  return h$ap_1_1_fast();+};+function h$$gR()+{+  var a;+  var b;+  a = h$r1;+  b = h$r2;+  --h$sp;+  h$r1 = h$c2(h$baseZCGHCziRealziZCzv_con_e, a, b);+  return h$stack[h$sp];+};+function h$$gQ()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$gR);+  h$l2(a, h$baseZCTextziReadziLexzizdwnumberToRational);+  return h$ap_1_1_fast();+};+function h$$gP()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var d = a;+  var e = ((d - 3) | 0);+  if((c < e))+  {+    return h$e(h$baseZCTextziReadziLexzinumberToRangedRational2);+  }+  else+  {+    h$r1 = h$c1(h$baseZCDataziMaybeziJust_con_e, h$c1(h$$gQ, b));+  };+  return h$stack[h$sp];+};+function h$$gO()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 2)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 5;+  var f = a;+  var g = ((e + c) | 0);+  var h = ((f + 3) | 0);+  if((g > h))+  {+    h$r1 = h$baseZCDataziMaybeziNothing;+  }+  else+  {+    h$p3(d, g, h$$gP);+    return h$e(b);+  };+  return h$stack[h$sp];+};+function h$$gN()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  h$sp -= 5;+  h$pp18(a, h$$gO);+  return h$e(b);+};+function h$$gM()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 5;+  h$pp24(h$r1, h$$gN);+  h$l2(a, h$integerzmgmpZCGHCziIntegerziTypeziintegerToInt);+  return h$ap_1_1_fast();+};+function h$$gL()+{+  var a = h$r1;+  --h$sp;+  h$sp -= 4;+  h$r1 = (-a | 0);+  h$sp += 4;+  ++h$sp;+  return h$$gM;+};+function h$$gK()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$sp -= 4;+  if((a.f.a === 1))+  {+    return h$e(h$baseZCTextziReadziLexzinumberToRangedRational2);+  }+  else+  {+    h$sp += 4;+    h$p1(h$$gL);+    h$l3(0, b, h$baseZCGHCziListzizdwlenAcc);+    return h$ap_2_2_fast();+  };+};+function h$$gJ()+{+  var a;+  var b;+  a = h$r1;+  b = h$r2;+  --h$sp;+  h$sp -= 4;+  var c = a;+  var d = b;+  h$sp += 4;+  h$p2(c, h$$gK);+  return h$e(d);+};+function h$$gI()+{+  var a = h$r1;+  --h$sp;+  h$sp -= 4;+  if((a.f.a === 1))+  {+    return h$e(h$baseZCTextziReadziLexzinumberToRangedRational2);+  }+  else+  {+    var b = a.d1;+    h$sp += 4;+    h$p1(h$$gJ);+    h$l3(b, h$baseZCTextziReadziLexzinumberToRangedRational1, h$baseZCGHCziListzizdwspan);+    return h$ap_2_2_fast();+  };+};+function h$$gH()+{+  var a = h$r1;+  --h$sp;+  h$sp -= 4;+  h$r1 = a;+  h$sp += 4;+  ++h$sp;+  return h$$gM;+};+function h$$gG()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$sp -= 4;+  if((a.f.a === 1))+  {+    h$sp += 4;+    h$p1(h$$gI);+    return h$e(b);+  }+  else+  {+    h$sp += 4;+    h$p1(h$$gH);+    h$l3(0, a, h$baseZCGHCziListzizdwlenAcc);+    return h$ap_2_2_fast();+  };+};+function h$$gF()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 7;+  if(a)+  {+    h$r1 = h$baseZCDataziMaybeziNothing;+  }+  else+  {+    h$pp8(c);+    h$pp2(h$$gG);+    h$l3(b, h$baseZCTextziReadziLexzinumberToRangedRational1, h$baseZCGHCziListzidropWhile);+    return h$ap_2_2_fast();+  };+  return h$stack[h$sp];+};+function h$$gE()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 7;+  if(a)+  {+    h$r1 = h$baseZCDataziMaybeziNothing;+  }+  else+  {+    h$pp64(h$$gF);+    h$l3(h$baseZCTextziReadziLexzinumberToRangedRational4, b, h$integerzmgmpZCGHCziIntegerziTypeziltIntegerzh);+    return h$ap_2_2_fast();+  };+  return h$stack[h$sp];+};+function h$$gD()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  h$sp -= 6;+  if((a.f.a === 1))+  {+    h$r1 = h$c1(h$baseZCDataziMaybeziJust_con_e, h$c1(h$$gS, b));+  }+  else+  {+    var c = a.d1;+    h$pp96(c, h$$gE);+    h$l3(h$baseZCTextziReadziLexzinumberToRangedRational5, c, h$integerzmgmpZCGHCziIntegerziTypezigtIntegerzh);+    return h$ap_2_2_fast();+  };+  return h$stack[h$sp];+};+function h$$gC()+{+  var a = h$r1;+  h$sp -= 3;+  if((a.f.a === 1))+  {+    h$r1 = h$c1(h$baseZCDataziMaybeziJust_con_e, h$c1(h$$gU, a));+  }+  else+  {+    var b = a.d1;+    var c = a.d2;+    h$pp60(a, b, c.d1, h$$gD);+    return h$e(c.d2);+  };+  return h$stack[h$sp];+};+function h$baseZCTextziReadziLexzizdwnumberToRangedRational_e()+{+  h$p3(h$r2, h$r3, h$$gC);+  return h$e(h$r4);+};+function h$$hN()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$kk, a);+  return h$ap_1_1_fast();+};+function h$$hM()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$kg, a);+  return h$ap_1_1_fast();+};+function h$$hL()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$kc, a);+  return h$ap_1_1_fast();+};+function h$$hK()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$j8, a);+  return h$ap_1_1_fast();+};+function h$$hJ()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$j4, a);+  return h$ap_1_1_fast();+};+function h$$hI()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$j0, a);+  return h$ap_1_1_fast();+};+function h$$hH()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$jW, a);+  return h$ap_1_1_fast();+};+function h$$hG()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$li, a);+  return h$ap_1_1_fast();+};+function h$$hF()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$iB, a);+  return h$ap_1_1_fast();+};+function h$$hE()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$iC, a);+  return h$ap_1_1_fast();+};+function h$$hD()+{+  var a = h$r1;+  --h$sp;+  h$l2(a, h$integerzmgmpZCGHCziIntegerziTypezismallInteger);+  return h$ap_1_1_fast();+};+function h$$hC()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$hD);+  return h$e(a);+};+function h$$hB()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  if((((b >>> 1) < 557055) || (((b >>> 1) == 557055) && ((b & 1) <= 1))))+  {+    h$r1 = a;+  }+  else+  {+    h$l2(a, h$baseZCGHCziCharzichr2);+    return h$ap_1_1_fast();+  };+  return h$stack[h$sp];+};+function h$$hA()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$hB);+  h$l2(a, h$integerzmgmpZCGHCziIntegerziTypeziintegerToInt);+  return h$ap_1_1_fast();+};+function h$$hz()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if(a)+  {+    h$l2(h$c1(h$$hA, c), b);+    return h$ap_1_1_fast();+  }+  else+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$hy()+{+  var a = h$r1;+  h$sp -= 2;+  h$pp6(a, h$$hz);+  h$l3(h$$iD, a, h$integerzmgmpZCGHCziIntegerziTypezileIntegerzh);+  return h$ap_2_2_fast();+};+function h$$hx()+{+  h$p2(h$r1.d1, h$$hy);+  h$l4(h$r2, h$baseZCTextziReadziLexzinumberToFixed2, h$r1.d2, h$baseZCTextziReadziLexzinumberToFixedzuzdsval);+  return h$ap_3_3_fast();+};+function h$$hw()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$hv()+{+  h$p1(h$$hw);+  h$r3 = h$c2(h$$hx, h$r1.d1, h$c1(h$$hC, h$r2));+  h$r1 = h$$kX;+  return h$ap_2_2_fast();+};+function h$$hu()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$iQ, a);+  return h$ap_1_1_fast();+};+function h$$ht()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$iU, a);+  return h$ap_1_1_fast();+};+function h$$hs()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$iY, a);+  return h$ap_1_1_fast();+};+function h$$hr()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$i2, a);+  return h$ap_1_1_fast();+};+function h$$hq()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$i6, a);+  return h$ap_1_1_fast();+};+function h$$hp()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$ja, a);+  return h$ap_1_1_fast();+};+function h$$ho()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$je, a);+  return h$ap_1_1_fast();+};+function h$$hn()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$ji, a);+  return h$ap_1_1_fast();+};+function h$$hm()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$jm, a);+  return h$ap_1_1_fast();+};+function h$$hl()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$jq, a);+  return h$ap_1_1_fast();+};+function h$$hk()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$ju, a);+  return h$ap_1_1_fast();+};+function h$$hj()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$jy, a);+  return h$ap_1_1_fast();+};+function h$$hi()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$jC, a);+  return h$ap_1_1_fast();+};+function h$$hh()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$jG, a);+  return h$ap_1_1_fast();+};+function h$$hg()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$jK, a);+  return h$ap_1_1_fast();+};+function h$$hf()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$jO, a);+  return h$ap_1_1_fast();+};+function h$$he()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$jS, a);+  return h$ap_1_1_fast();+};+function h$$hd()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$kN, a);+  return h$ap_1_1_fast();+};+function h$$hc()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$ko, a);+  return h$ap_1_1_fast();+};+function h$$hb()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$ks, a);+  return h$ap_1_1_fast();+};+function h$$ha()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$kw, a);+  return h$ap_1_1_fast();+};+function h$$g9()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$kA, a);+  return h$ap_1_1_fast();+};+function h$$g8()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$kE, a);+  return h$ap_1_1_fast();+};+function h$$g7()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$kQ, a);+  return h$ap_1_1_fast();+};+function h$$g6()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$$kI, a);+  return h$ap_1_1_fast();+};+function h$$g5()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 32)];+  var c = h$stack[(h$sp - 31)];+  var d = h$stack[(h$sp - 30)];+  var e = h$stack[(h$sp - 29)];+  var f = h$stack[(h$sp - 28)];+  var g = h$stack[(h$sp - 27)];+  var h = h$stack[(h$sp - 26)];+  var i = h$stack[(h$sp - 25)];+  var j = h$stack[(h$sp - 24)];+  var k = h$stack[(h$sp - 23)];+  var l = h$stack[(h$sp - 22)];+  var m = h$stack[(h$sp - 21)];+  var n = h$stack[(h$sp - 20)];+  var o = h$stack[(h$sp - 19)];+  var p = h$stack[(h$sp - 18)];+  var q = h$stack[(h$sp - 17)];+  var r = h$stack[(h$sp - 16)];+  var s = h$stack[(h$sp - 15)];+  var t = h$stack[(h$sp - 14)];+  var u = h$stack[(h$sp - 13)];+  var v = h$stack[(h$sp - 12)];+  var w = h$stack[(h$sp - 11)];+  var x = h$stack[(h$sp - 10)];+  var y = h$stack[(h$sp - 9)];+  var z = h$stack[(h$sp - 8)];+  var A = h$stack[(h$sp - 7)];+  var B = h$stack[(h$sp - 6)];+  var C = h$stack[(h$sp - 5)];+  var D = h$stack[(h$sp - 4)];+  var E = h$stack[(h$sp - 3)];+  var F = h$stack[(h$sp - 2)];+  var G = h$stack[(h$sp - 1)];+  h$sp -= 33;+  switch (a)+  {+    case (64):+      return h$e(G);+    case (65):+      return h$e(F);+    case (66):+      return h$e(E);+    case (67):+      return h$e(D);+    case (68):+      return h$e(C);+    case (69):+      return h$e(B);+    case (70):+      return h$e(A);+    case (71):+      return h$e(b);+    case (72):+      return h$e(c);+    case (73):+      return h$e(d);+    case (74):+      return h$e(e);+    case (75):+      return h$e(f);+    case (76):+      return h$e(g);+    case (77):+      return h$e(h);+    case (78):+      return h$e(z);+    case (79):+      return h$e(y);+    case (80):+      return h$e(x);+    case (81):+      return h$e(w);+    case (82):+      return h$e(v);+    case (83):+      return h$e(u);+    case (84):+      return h$e(t);+    case (85):+      return h$e(s);+    case (86):+      return h$e(r);+    case (87):+      return h$e(q);+    case (88):+      return h$e(p);+    case (89):+      return h$e(o);+    case (90):+      return h$e(n);+    case (91):+      return h$e(m);+    case (92):+      return h$e(l);+    case (93):+      return h$e(k);+    case (94):+      return h$e(j);+    case (95):+      return h$e(i);+    default:+      h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$g4()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = b.d3;+  var f = b.d4;+  var g = b.d5;+  var h = b.d6;+  var i = b.d7;+  var j = b.d8;+  var k = b.d9;+  var l = b.d10;+  var m = b.d11;+  var n = b.d12;+  var o = b.d13;+  var p = b.d14;+  var q = b.d15;+  var r = b.d16;+  var s = b.d17;+  var t = b.d18;+  var u = b.d19;+  var v = b.d20;+  var w = b.d21;+  var x = b.d22;+  var y = b.d23;+  var z = b.d24;+  var A = b.d25;+  var B = b.d26;+  var C = b.d27;+  var D = b.d28;+  var E = b.d29;+  var F = b.d30;+  var G = b.d31;+  var H = h$r2;+  h$sp += 33;+  h$stack[(h$sp - 32)] = a;+  h$stack[(h$sp - 31)] = c;+  h$stack[(h$sp - 30)] = d;+  h$stack[(h$sp - 29)] = e;+  h$stack[(h$sp - 28)] = f;+  h$stack[(h$sp - 27)] = g;+  h$stack[(h$sp - 26)] = h;+  h$stack[(h$sp - 25)] = i;+  h$stack[(h$sp - 24)] = j;+  h$stack[(h$sp - 23)] = k;+  h$stack[(h$sp - 22)] = l;+  h$stack[(h$sp - 21)] = m;+  h$stack[(h$sp - 20)] = n;+  h$stack[(h$sp - 19)] = o;+  h$stack[(h$sp - 18)] = p;+  h$stack[(h$sp - 17)] = q;+  h$stack[(h$sp - 16)] = r;+  h$stack[(h$sp - 15)] = s;+  h$stack[(h$sp - 14)] = t;+  h$stack[(h$sp - 13)] = u;+  h$stack[(h$sp - 12)] = v;+  h$stack[(h$sp - 11)] = w;+  h$stack[(h$sp - 10)] = x;+  h$stack[(h$sp - 9)] = y;+  h$stack[(h$sp - 8)] = z;+  h$stack[(h$sp - 7)] = A;+  h$stack[(h$sp - 6)] = B;+  h$stack[(h$sp - 5)] = C;+  h$stack[(h$sp - 4)] = D;+  h$stack[(h$sp - 3)] = E;+  h$stack[(h$sp - 2)] = F;+  h$stack[(h$sp - 1)] = G;+  h$stack[h$sp] = h$$g5;+  return h$e(H);+};+function h$$g3()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$$iF);+  return h$ap_1_1_fast();+};+function h$$g2()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  if((c === 94))+  {+    h$r1 = b;+  }+  else+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$g1()+{+  h$p2(h$r1.d1, h$$g2);+  return h$e(h$r2);+};+function h$$g0()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = b.d3;+  var f = b.d4;+  var g = b.d5;+  var h = b.d6;+  h$bh();+  h$l3(h$c1(h$$g3, a), h$c1(h$baseZCTextziParserCombinatorsziReadPziGet_con_e, h$c1(h$$g1,+  h$c1(h$baseZCTextziParserCombinatorsziReadPziGet_con_e, { d1: c, d2: { d1: d, d10: h$c1(h$$hr, a), d11: h$c1(h$$hq, a),+                                                                         d12: h$c1(h$$hp, a), d13: h$c1(h$$ho, a), d14: h$c1(h$$hn, a),+                                                                         d15: h$c1(h$$hm, a), d16: h$c1(h$$hl, a), d17: h$c1(h$$hk, a),+                                                                         d18: h$c1(h$$hj, a), d19: h$c1(h$$hi, a), d2: e, d20: h$c1(h$$hh, a),+                                                                         d21: h$c1(h$$hg, a), d22: h$c1(h$$hf, a), d23: h$c1(h$$he, a),+                                                                         d24: h$c1(h$$hd, a), d25: h$c1(h$$hc, a), d26: h$c1(h$$hb, a),+                                                                         d27: h$c1(h$$ha, a), d28: h$c1(h$$g9, a), d29: h$c1(h$$g8, a), d3: f,+                                                                         d30: h$c1(h$$g7, a), d31: h$c1(h$$g6, a), d4: g, d5: h, d6: b.d7,+                                                                         d7: h$c1(h$$hu, a), d8: h$c1(h$$ht, a), d9: h$c1(h$$hs, a)+                                                                       }, f: h$$g4, m: 0+                                                          }))), h$baseZCTextziParserCombinatorsziReadPzizdfMonadPlusPzuzdcmplus);+  return h$ap_2_2_fast();+};+function h$$gZ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 8)];+  var c = h$stack[(h$sp - 7)];+  var d = h$stack[(h$sp - 6)];+  var e = h$stack[(h$sp - 5)];+  var f = h$stack[(h$sp - 4)];+  var g = h$stack[(h$sp - 3)];+  var h = h$stack[(h$sp - 2)];+  var i = h$stack[(h$sp - 1)];+  h$sp -= 9;+  h$l3(h$c8(h$$g0, b, c, d, e, f, g, h, i), h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a),+  h$baseZCTextziParserCombinatorsziReadPzizdfMonadPlusPzuzdcmplus);+  return h$ap_2_2_fast();+};+function h$$gY()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = b.d3;+  var f = b.d4;+  var g = b.d5;+  var h = b.d6;+  h$bh();+  h$p9(a, c, d, e, f, g, h, b.d7, h$$gZ);+  h$l4(h$c1(h$$hv, a), h$$iE, h$$lu, h$baseZCTextziParserCombinatorsziReadPzizdwa);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa_e;+};+function h$$gX()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 10)];+  var c = h$stack[(h$sp - 9)];+  var d = h$stack[(h$sp - 8)];+  var e = h$stack[(h$sp - 7)];+  var f = h$stack[(h$sp - 6)];+  var g = h$stack[(h$sp - 5)];+  var h = h$stack[(h$sp - 4)];+  var i = h$stack[(h$sp - 3)];+  var j = h$stack[(h$sp - 2)];+  var k = h$stack[(h$sp - 1)];+  h$sp -= 11;+  switch (a)+  {+    case (34):+      return h$e(k);+    case (39):+      return h$e(j);+    case (92):+      return h$e(i);+    case (97):+      return h$e(b);+    case (98):+      return h$e(c);+    case (102):+      return h$e(g);+    case (110):+      return h$e(e);+    case (114):+      return h$e(h);+    case (116):+      return h$e(d);+    case (118):+      return h$e(f);+    default:+      h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$gW()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = b.d3;+  var f = b.d4;+  var g = b.d5;+  var h = b.d6;+  var i = b.d7;+  var j = b.d8;+  h$p11(a, c, d, e, f, g, h, i, j, b.d9, h$$gX);+  return h$e(h$r2);+};+function h$baseZCTextziReadziLexzilexChar2_e()+{+  var a = h$c1(h$$hN, h$r2);+  var b = h$c1(h$$hM, h$r2);+  var c = h$c1(h$$hL, h$r2);+  var d = h$c1(h$$hK, h$r2);+  var e = h$c1(h$$hJ, h$r2);+  var f = h$c1(h$$hI, h$r2);+  var g = h$c1(h$$hH, h$r2);+  h$l3(h$c8(h$$gY, h$r2, a, b, c, d, e, f, g), h$c1(h$baseZCTextziParserCombinatorsziReadPziGet_con_e, h$c10(h$$gW, a, b,+  c, d, e, f, g, h$c1(h$$hG, h$r2), h$c1(h$$hF, h$r2), h$c1(h$$hE, h$r2))),+  h$baseZCTextziParserCombinatorsziReadPzizdfMonadPlusPzuzdcmplus);+  return h$ap_2_2_fast();+};+function h$$is()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$baseZCTextziReadziLexziEOF, a);+  return h$ap_1_1_fast();+};+function h$$ir()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(h$c1(h$baseZCTextziReadziLexziChar_con_e, b), a);+  return h$ap_1_1_fast();+};+function h$$iq()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  if((c === 39))+  {+    return h$e(b);+  }+  else+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$ip()+{+  h$p2(h$r1.d1, h$$iq);+  return h$e(h$r2);+};+function h$$io()+{+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziGet_con_e, h$c1(h$$ip, h$c2(h$$ir, h$r1.d1, h$r2)));+  return h$stack[h$sp];+};+function h$$im()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$c1(h$$io, a), h$baseZCTextziReadziLexzilexChar2);+  return h$ap_1_1_fast();+};+function h$$il()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(h$c1(h$baseZCTextziReadziLexziChar_con_e, b), a);+  return h$ap_1_1_fast();+};+function h$$ik()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  if((c === 39))+  {+    return h$e(b);+  }+  else+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$ij()+{+  h$p2(h$r1.d1, h$$ik);+  return h$e(h$r2);+};+function h$$ii()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  switch (a)+  {+    case (39):+      h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+      break;+    case (92):+      return h$e(c);+    default:+      h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziGet_con_e, h$c1(h$$ij, h$c2(h$$il, b, a)));+  };+  return h$stack[h$sp];+};+function h$$ih()+{+  var a = h$r1.d1;+  h$p3(a, h$r1.d2, h$$ii);+  return h$e(h$r2);+};+function h$$ig()+{+  var a = h$r1.d1;+  h$bh();+  h$l3(a, h$baseZCGHCziBaseziid, h$$iv);+  return h$ap_2_2_fast();+};+function h$$ie()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$id()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$ie);+  h$l4(a, h$$iw, h$$kV, h$baseZCTextziParserCombinatorsziReadPzizdwa);+  return h$baseZCTextziParserCombinatorsziReadPzizdwa_e;+};+function h$$ic()+{+  var a = h$r1.d1;+  h$l2(h$c1(h$baseZCTextziReadziLexziIdent_con_e, h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$r1.d2, h$r2)), a);+  return h$ap_1_1_fast();+};+function h$$ib()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$ia()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  if((c === 95))+  {+    h$p1(h$$ib);+    h$l3(h$c2(h$$ic, b, a), h$$ls, h$baseZCTextziParserCombinatorsziReadPzizdwa3);+    return h$baseZCTextziParserCombinatorsziReadPzizdwa3_e;+  }+  else+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$h9()+{+  var a = h$r1.d1;+  h$l2(h$c1(h$baseZCTextziReadziLexziIdent_con_e, h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$r1.d2, h$r2)), a);+  return h$ap_1_1_fast();+};+function h$$h8()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$h7()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if(a)+  {+    h$p1(h$$h8);+    h$l3(h$c2(h$$h9, b, c), h$$ls, h$baseZCTextziParserCombinatorsziReadPzizdwa3);+    return h$baseZCTextziParserCombinatorsziReadPzizdwa3_e;+  }+  else+  {+    h$pp2(h$$ia);+    return h$e(c);+  };+};+function h$$h6()+{+  h$p3(h$r1.d1, h$r2, h$$h7);+  h$r1 = h$baseZCGHCziUnicodeziisAlpha;+  return h$ap_1_1_fast();+};+function h$$h5()+{+  var a = h$r1.d1;+  h$bh();+  h$l3(h$c1(h$$id, a), h$c1(h$baseZCTextziParserCombinatorsziReadPziGet_con_e, h$c1(h$$h6, a)),+  h$baseZCTextziParserCombinatorsziReadPzizdfMonadPlusPzuzdcmplus);+  return h$ap_2_2_fast();+};+function h$$h4()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if(a)+  {+    h$l2(h$c1(h$baseZCTextziReadziLexziPunc_con_e, c), b);+    return h$ap_1_1_fast();+  }+  else+  {+    h$l2(h$c1(h$baseZCTextziReadziLexziSymbol_con_e, c), b);+    return h$ap_1_1_fast();+  };+};+function h$$h3()+{+  var a = h$r1.d1;+  var b = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$r1.d2, h$r2);+  h$p3(a, b, h$$h4);+  h$l4(h$$lr, b, h$ghczmprimZCGHCziClasseszizdfEqZMZNzuzdszdfEqZMZN, h$baseZCGHCziListzielem);+  return h$ap_3_3_fast();+};+function h$$h2()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$h1()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if(a)+  {+    h$p1(h$$h2);+    h$l3(h$c2(h$$h3, b, c), h$$k1, h$baseZCTextziParserCombinatorsziReadPzizdwa3);+    return h$baseZCTextziParserCombinatorsziReadPzizdwa3_e;+  }+  else+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$h0()+{+  h$p3(h$r1.d1, h$r2, h$$h1);+  h$l4(h$$k2, h$r2, h$ghczmprimZCGHCziClasseszizdfEqChar, h$baseZCGHCziListzielem);+  return h$ap_3_3_fast();+};+function h$$hZ()+{+  var a = h$r1.d1;+  h$bh();+  h$l3(h$c1(h$$h5, a), h$c1(h$baseZCTextziParserCombinatorsziReadPziGet_con_e, h$c1(h$$h0, a)),+  h$baseZCTextziParserCombinatorsziReadPzizdfMonadPlusPzuzdcmplus);+  return h$ap_2_2_fast();+};+function h$$hY()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if(a)+  {+    h$l2(h$c1(h$baseZCTextziReadziLexziPunc_con_e, h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, c,+    h$ghczmprimZCGHCziTypesziZMZN)), b);+    return h$ap_1_1_fast();+  }+  else+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$hX()+{+  h$p3(h$r1.d1, h$r2, h$$hY);+  h$l4(h$$k0, h$r2, h$ghczmprimZCGHCziClasseszizdfEqChar, h$baseZCGHCziListzielem);+  return h$ap_3_3_fast();+};+function h$$hW()+{+  var a = h$r1.d1;+  h$bh();+  h$l3(h$c1(h$$hZ, a), h$c1(h$baseZCTextziParserCombinatorsziReadPziGet_con_e, h$c1(h$$hX, a)),+  h$baseZCTextziParserCombinatorsziReadPzizdfMonadPlusPzuzdcmplus);+  return h$ap_2_2_fast();+};+function h$$hV()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  if((c === 34))+  {+    return h$e(b);+  }+  else+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$hU()+{+  h$p2(h$r1.d1, h$$hV);+  return h$e(h$r2);+};+function h$$hT()+{+  var a = h$r1.d1;+  h$bh();+  h$l3(h$c1(h$$hW, a), h$c1(h$baseZCTextziParserCombinatorsziReadPziGet_con_e, h$c1(h$$hU, h$c1(h$$ig, a))),+  h$baseZCTextziParserCombinatorsziReadPzizdfMonadPlusPzuzdcmplus);+  return h$ap_2_2_fast();+};+function h$$hS()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  if((c === 39))+  {+    h$r1 = b;+  }+  else+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$hR()+{+  h$p2(h$r1.d1, h$$hS);+  return h$e(h$r2);+};+function h$$hQ()+{+  var a = h$r1.d1;+  h$bh();+  h$l3(h$c1(h$$hT, a), h$c1(h$baseZCTextziParserCombinatorsziReadPziGet_con_e, h$c1(h$$hR,+  h$c1(h$baseZCTextziParserCombinatorsziReadPziGet_con_e, h$c2(h$$ih, a, h$c1(h$$im, a))))),+  h$baseZCTextziParserCombinatorsziReadPzizdfMonadPlusPzuzdcmplus);+  return h$ap_2_2_fast();+};+function h$$hP()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    return h$e(b);+  }+  else+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$hO()+{+  h$p2(h$r1.d1, h$$hP);+  return h$e(h$r2);+};+function h$baseZCTextziReadziLexziexpect2_e()+{+  h$l3(h$c1(h$$hQ, h$r2), h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, h$c1(h$$hO, h$c1(h$$is, h$r2))),+  h$baseZCTextziParserCombinatorsziReadPzizdfMonadPlusPzuzdcmplus);+  return h$ap_2_2_fast();+};+function h$baseZCTextziReadziLexziEOF_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCTextziReadziLexziNumber_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCTextziReadziLexziNumber_e()+{+  h$r1 = h$c1(h$baseZCTextziReadziLexziNumber_con_e, h$r2);+  return h$stack[h$sp];+};+function h$baseZCTextziReadziLexziSymbol_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCTextziReadziLexziSymbol_e()+{+  h$r1 = h$c1(h$baseZCTextziReadziLexziSymbol_con_e, h$r2);+  return h$stack[h$sp];+};+function h$baseZCTextziReadziLexziIdent_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCTextziReadziLexziIdent_e()+{+  h$r1 = h$c1(h$baseZCTextziReadziLexziIdent_con_e, h$r2);+  return h$stack[h$sp];+};+function h$baseZCTextziReadziLexziPunc_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCTextziReadziLexziPunc_e()+{+  h$r1 = h$c1(h$baseZCTextziReadziLexziPunc_con_e, h$r2);+  return h$stack[h$sp];+};+function h$baseZCTextziReadziLexziString_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCTextziReadziLexziString_e()+{+  h$r1 = h$c1(h$baseZCTextziReadziLexziString_con_e, h$r2);+  return h$stack[h$sp];+};+function h$baseZCTextziReadziLexziChar_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCTextziReadziLexziChar_e()+{+  h$r1 = h$c1(h$baseZCTextziReadziLexziChar_con_e, h$r2);+  return h$stack[h$sp];+};+function h$baseZCTextziReadziLexziMkDecimal_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCTextziReadziLexziMkDecimal_e()+{+  h$r1 = h$c3(h$baseZCTextziReadziLexziMkDecimal_con_e, h$r2, h$r3, h$r4);+  return h$stack[h$sp];+};+function h$baseZCTextziReadziLexziMkNumber_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCTextziReadziLexziMkNumber_e()+{+  h$r1 = h$c2(h$baseZCTextziReadziLexziMkNumber_con_e, h$r2, h$r3);+  return h$stack[h$sp];+};+function h$$lB()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$baseZCTextziReadzireadEither6);+  return h$ap_1_1_fast();+};+function h$$lA()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if((a.f.a === 1))+  {+    h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, c, h$c1(h$$lB, b));+  }+  else+  {+    h$l2(b, h$baseZCTextziReadzireadEither6);+    return h$ap_1_1_fast();+  };+  return h$stack[h$sp];+};+function h$$lz()+{+  var a = h$r1;+  h$sp -= 2;+  h$pp6(a.d1, h$$lA);+  return h$e(a.d2);+};+function h$$ly()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    var b = a.d1;+    h$p2(a.d2, h$$lz);+    return h$e(b);+  };+  return h$stack[h$sp];+};+function h$baseZCTextziReadzireadEither6_e()+{+  h$p1(h$$ly);+  return h$e(h$r2);+};+function h$$lD()+{+  h$r1 = h$r1.d1;+  return h$stack[h$sp];+};+function h$$lC()+{+  h$r3 = h$r1.d1;+  h$r1 = h$baseZCTextziParserCombinatorsziReadPziskipSpaceszuskip;+  return h$ap_2_2_fast();+};+function h$baseZCTextziReadzireadEither5_e()+{+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, h$c1(h$$lC, h$c1(h$$lD,+  h$c2(h$baseZCTextziParserCombinatorsziReadPziResult_con_e, h$r2, h$baseZCTextziParserCombinatorsziReadPziFail))));+  return h$stack[h$sp];+};+var h$baseZCTextziReadzireadEither4 = h$strta("Prelude.read: no parse");+var h$baseZCTextziReadzireadEither2 = h$strta("Prelude.read: ambiguous parse");+function h$$lI()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$r1 = b;+    return h$ap_0_0_fast();+  }+  else+  {+    h$l2(h$baseZCTextziReadzireadEither2, h$baseZCGHCziErrzierror);+    return h$ap_1_1_fast();+  };+};+function h$$lH()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$l2(h$baseZCTextziReadzireadEither4, h$baseZCGHCziErrzierror);+    return h$ap_1_1_fast();+  }+  else+  {+    h$p2(a.d1, h$$lI);+    return h$e(a.d2);+  };+};+function h$$lG()+{+  var a = h$r1;+  --h$sp;+  h$p1(h$$lH);+  h$l2(a, h$baseZCTextziReadzireadEither6);+  return h$ap_1_1_fast();+};+function h$$lF()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p1(h$$lG);+  h$l3(b, a, h$baseZCTextziParserCombinatorsziReadPzirun);+  return h$ap_2_2_fast();+};+function h$$lE()+{+  var a = h$r1;+  h$sp -= 2;+  var b = a.d2;+  h$pp2(h$$lF);+  h$l3(h$baseZCTextziReadzireadEither5, h$baseZCTextziParserCombinatorsziReadPrecziminPrec, b.d2);+  return h$ap_2_2_fast();+};+function h$baseZCTextziReadziread_e()+{+  h$p2(h$r3, h$$lE);+  return h$e(h$r2);+};++function h$$lN()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(b, a, h$baseZCTextziParserCombinatorsziReadPzirun);+  return h$ap_2_2_fast();+};+function h$$lM()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    var c = a.d1;+    h$p2(a.d2, h$$lN);+    h$l2(c, b);+    return h$ap_1_1_fast();+  };+  return h$stack[h$sp];+};+function h$$lL()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(b, a, h$baseZCTextziParserCombinatorsziReadPzirun);+  return h$ap_2_2_fast();+};+function h$$lK()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l3(a, b, h$baseZCTextziParserCombinatorsziReadPzirun);+  return h$ap_2_2_fast();+};+function h$$lJ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  switch (a.f.a)+  {+    case (1):+      h$p2(a.d1, h$$lM);+      return h$e(b);+    case (2):+      h$pp2(h$$lL);+      h$l2(b, a.d1);+      return h$ap_1_1_fast();+    case (3):+      h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+      break;+    case (4):+      var c = a.d1;+      h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, c, b), h$c2(h$$lK, b, a.+      d2));+      break;+    default:+      return h$e(a.d1);+  };+  return h$stack[h$sp];+};+function h$baseZCTextziParserCombinatorsziReadPzirun_e()+{+  h$p2(h$r3, h$$lJ);+  return h$e(h$r2);+};+function h$$mk()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(b, a);+  return h$ap_1_1_fast();+};+function h$$mj()+{+  var a = h$r1.d1;+  h$l3(h$c2(h$$mk, h$r1.d2, h$r2), a, h$baseZCTextziParserCombinatorsziReadPzizdfMonadPlusPzuzdcmplus);+  return h$ap_2_2_fast();+};+function h$$mi()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(b, a, h$baseZCTextziParserCombinatorsziReadPzizdfMonadPlusPzuzdcmplus);+  return h$ap_2_2_fast();+};+function h$$mh()+{+  var a = h$r1.d1;+  h$p2(h$r1.d2, h$$mi);+  h$r1 = a;+  return h$ap_1_1_fast();+};+function h$$mg()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(b, a);+  return h$ap_1_1_fast();+};+function h$$mf()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(b, a, h$baseZCTextziParserCombinatorsziReadPzizdfMonadPlusPzuzdcmplus);+  return h$ap_2_2_fast();+};+function h$$me()+{+  var a = h$r1.d1;+  h$p2(h$c2(h$$mg, h$r1.d2, h$r2), h$$mf);+  h$r1 = a;+  return h$ap_1_1_fast();+};+function h$$md()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(b, a, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+function h$$mc()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$p2(b.d1, h$$md);+  h$l3(b.d2, a, h$baseZCTextziParserCombinatorsziReadPzirun);+  return h$ap_2_2_fast();+};+function h$$mb()+{+  var a = h$r1.d1;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziFinal_con_e, h$c3(h$$mc, a, h$r1.d2, h$r2));+  return h$stack[h$sp];+};+function h$$ma()+{+  var a = h$stack[(h$sp - 2)];+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var c = b;+  if((c.f.a === 5))+  {+    h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, h$c2(h$$mb, a, c.d1));+  }+  else+  {+    var d = a;+    if((d.f.a === 2))+    {+      var e = d.d1;+      var f = c;+      if((f.f.a === 1))+      {+        h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, h$c2(h$$mh, e, f));+      }+      else+      {+        h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, h$c2(h$$me, e, f.d1));+      };+    }+    else+    {+      var g = c;+      if((g.f.a === 1))+      {+        return h$e(h$$nk);+      }+      else+      {+        h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, h$c2(h$$mj, d, g.d1));+      };+    };+  };+  return h$stack[h$sp];+};+function h$$l9()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(b, a, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+function h$$l8()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$pp2(h$$l9);+  h$l3(b, a, h$baseZCTextziParserCombinatorsziReadPzirun);+  return h$ap_2_2_fast();+};+function h$$l7()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  h$bh();+  h$p3(c, d, h$$l8);+  h$l2(d, a);+  return h$ap_1_1_fast();+};+function h$$l6()+{+  var a = h$r1.d1;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziFinal_con_e, h$c3(h$$l7, a, h$r1.d2, h$r2));+  return h$stack[h$sp];+};+function h$$l5()+{+  var a = h$r1.d1;+  h$l3(h$r1.d2, a, h$baseZCTextziParserCombinatorsziReadPzirun);+  return h$ap_2_2_fast();+};+function h$$l4()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$bh();+  h$l3(h$c2(h$$l5, c, b.d2), a, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+function h$$l3()+{+  var a = h$r1.d1;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziFinal_con_e, h$c3(h$$l4, a, h$r1.d2, h$r2));+  return h$stack[h$sp];+};+function h$$l2()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(b, a, h$baseZCTextziParserCombinatorsziReadPzirun);+  return h$ap_2_2_fast();+};+function h$$l1()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$p2(b, h$$l2);+  h$l2(b, a);+  return h$ap_1_1_fast();+};+function h$$l0()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$bh();+  h$l3(h$c2(h$$l1, c, b.d2), a, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+function h$$lZ()+{+  var a = h$r1.d1;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziFinal_con_e, h$c3(h$$l0, a, h$r1.d2, h$r2));+  return h$stack[h$sp];+};+function h$$lY()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l3(b, a, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+function h$$lX()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 3))+  {+    h$r1 = b;+  }+  else+  {+    var c = b;+    if((c.f.a === 3))+    {+      h$r1 = a;+    }+    else+    {+      var d = a;+      switch (d.f.a)+      {+        case (2):+          var e = d.d1;+          var f = c;+          if((f.f.a === 5))+          {+            h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, h$c2(h$$l6, e, f.d1));+          }+          else+          {+            h$p2(a, c);+            ++h$sp;+            return h$$ma;+          };+          break;+        case (5):+          var g = d.d1;+          var h = c;+          switch (h.f.a)+          {+            case (1):+              h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, h$c2(h$$l3, g, h));+              break;+            case (2):+              h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, h$c2(h$$lZ, g, h.d1));+              break;+            default:+              h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziFinal_con_e, h$c2(h$$lY, g, h.d1));+          };+          break;+        default:+          h$p2(a, c);+          ++h$sp;+          return h$$ma;+      };+    };+  };+  return h$stack[h$sp];+};+function h$$lW()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l3(b, a, h$baseZCTextziParserCombinatorsziReadPzizdfMonadPlusPzuzdcmplus);+  return h$ap_2_2_fast();+};+function h$$lV()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 4))+  {+    var c = a.d1;+    h$r1 = h$c2(h$baseZCTextziParserCombinatorsziReadPziResult_con_e, c, h$c2(h$$lW, b, a.d2));+  }+  else+  {+    h$p2(a, h$$lX);+    return h$e(b);+  };+  return h$stack[h$sp];+};+function h$$lU()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$pp2(h$$lV);+  return h$e(a);+};+function h$$lT()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(b, a);+  return h$ap_1_1_fast();+};+function h$$lS()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(b, a, h$baseZCTextziParserCombinatorsziReadPzizdfMonadPlusPzuzdcmplus);+  return h$ap_2_2_fast();+};+function h$$lR()+{+  var a = h$r1.d1;+  h$p2(h$c2(h$$lT, h$r1.d2, h$r2), h$$lS);+  h$r1 = a;+  return h$ap_1_1_fast();+};+function h$$lQ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziGet_con_e, h$c2(h$$lR, b, a.d1));+  }+  else+  {+    h$sp += 2;+    ++h$sp;+    return h$$lU;+  };+  return h$stack[h$sp];+};+function h$$lP()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l3(a, b, h$baseZCTextziParserCombinatorsziReadPzizdfMonadPlusPzuzdcmplus);+  return h$ap_2_2_fast();+};+function h$$lO()+{+  var a = h$r1;+  --h$sp;+  var b = h$stack[h$sp];+  h$sp -= 2;+  switch (a.f.a)+  {+    case (1):+      var c = a.d1;+      h$sp += 2;+      h$p2(c, h$$lQ);+      return h$e(b);+    case (4):+      var d = a.d1;+      h$r1 = h$c2(h$baseZCTextziParserCombinatorsziReadPziResult_con_e, d, h$c2(h$$lP, b, a.d2));+      break;+    default:+      h$sp += 2;+      ++h$sp;+      return h$$lU;+  };+  return h$stack[h$sp];+};+function h$baseZCTextziParserCombinatorsziReadPzizdfMonadPlusPzuzdcmplus_e()+{+  h$p2(h$r2, h$r3);+  h$p1(h$$lO);+  return h$e(h$r2);+};+function h$$my()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(b, a, h$baseZCTextziParserCombinatorsziReadPzizdfMonadPzuzdczgzgze);+  return h$ap_2_2_fast();+};+function h$$mx()+{+  h$p2(h$r1.d1, h$$my);+  h$r1 = h$r1.d2;+  return h$ap_1_1_fast();+};+function h$$mw()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(b, a, h$baseZCTextziParserCombinatorsziReadPzizdfMonadPzuzdczgzgze);+  return h$ap_2_2_fast();+};+function h$$mv()+{+  h$p2(h$r1.d1, h$$mw);+  h$r1 = h$r1.d2;+  return h$ap_1_1_fast();+};+function h$$mu()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l3(a, b, h$baseZCTextziParserCombinatorsziReadPzizdfMonadPzuzdczgzgze);+  return h$ap_2_2_fast();+};+function h$$mt()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(b, a, h$baseZCTextziParserCombinatorsziReadPzizdfMonadPlusPzuzdcmplus);+  return h$ap_2_2_fast();+};+function h$$ms()+{+  var a = h$r1.d1;+  h$l2(h$r1.d2, a);+  return h$ap_1_1_fast();+};+function h$$mr()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(b, a, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+function h$$mq()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$p2(c, h$$mr);+  h$l3(b, a, h$baseZCTextziParserCombinatorsziReadPzirun);+  return h$ap_2_2_fast();+};+function h$$mp()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var e = a.d1;+  h$p3(a.d2, h$c2(h$$ms, c, d), h$$mq);+  h$l2(e, b);+  return h$ap_1_1_fast();+};+function h$$mo()+{+  var a = h$r1;+  h$sp -= 3;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    var b = a.d1;+    h$pp12(a.d2, h$$mp);+    return h$e(b);+  };+  return h$stack[h$sp];+};+function h$$mn()+{+  var a = h$r1.d1;+  h$p3(a, h$r1.d2, h$$mo);+  return h$e(h$r2);+};+function h$$mm()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  }+  else+  {+    h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziFinal_con_e, a);+  };+  return h$stack[h$sp];+};+function h$$ml()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  switch (a.f.a)+  {+    case (1):+      h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziGet_con_e, h$c2(h$$mx, b, a.d1));+      break;+    case (2):+      h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, h$c2(h$$mv, b, a.d1));+      break;+    case (3):+      h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+      break;+    case (4):+      var c = a.d1;+      h$p2(h$c2(h$$mu, b, a.d2), h$$mt);+      h$l2(c, b);+      return h$ap_1_1_fast();+    default:+      var d = a.d1;+      var e = h$c(h$$mn);+      e.d1 = b;+      e.d2 = e;+      h$p1(h$$mm);+      h$l2(d, e);+      return h$ap_1_1_fast();+  };+  return h$stack[h$sp];+};+function h$baseZCTextziParserCombinatorsziReadPzizdfMonadPzuzdczgzgze_e()+{+  h$p2(h$r3, h$$ml);+  return h$e(h$r2);+};+function h$$mE()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$baseZCTextziParserCombinatorsziReadPzichoice);+  return h$ap_1_1_fast();+};+function h$$mD()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(b, a);+  return h$ap_1_1_fast();+};+function h$$mC()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(b, a, h$baseZCTextziParserCombinatorsziReadPzizdfMonadPlusPzuzdcmplus);+  return h$ap_2_2_fast();+};+function h$$mB()+{+  var a = h$r1.d1;+  h$p2(h$c2(h$$mD, h$r1.d2, h$r2), h$$mC);+  h$r1 = a;+  return h$ap_1_1_fast();+};+function h$$mA()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$r1 = b;+    return h$ap_0_0_fast();+  }+  else+  {+    h$r1 = h$c2(h$$mB, b, h$c1(h$$mE, a));+  };+  return h$stack[h$sp];+};+function h$$mz()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPzipfail1;+    return h$ap_0_0_fast();+  }+  else+  {+    h$p2(a.d1, h$$mA);+    return h$e(a.d2);+  };+};+function h$baseZCTextziParserCombinatorsziReadPzichoice_e()+{+  h$p1(h$$mz);+  return h$e(h$r2);+};+function h$$mK()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$baseZCTextziParserCombinatorsziReadPziskipSpaceszuskip);+  return h$ap_1_1_fast();+};+function h$$mJ()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(b, a);+  return h$ap_1_1_fast();+};+function h$$mI()+{+  return h$e(h$r1.d1);+};+function h$$mH()+{+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziGet_con_e, h$c1(h$$mI, h$c2(h$$mJ, h$r1.d1, h$r2)));+  return h$stack[h$sp];+};+function h$$mG()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if(a)+  {+    h$r1 = h$c1(h$$mH, h$c1(h$$mK, b));+  }+  else+  {+    h$r1 = h$$nj;+    return h$ap_0_0_fast();+  };+  return h$stack[h$sp];+};+function h$$mF()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$r1 = h$$nj;+    return h$ap_0_0_fast();+  }+  else+  {+    var b = a.d1;+    h$p2(a.d2, h$$mG);+    h$l2(b, h$baseZCGHCziUnicodeziisSpace);+    return h$ap_1_1_fast();+  };+};+function h$baseZCTextziParserCombinatorsziReadPziskipSpaceszuskip_e()+{+  h$p1(h$$mF);+  return h$e(h$r2);+};+function h$$mM()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l3(a, ((b - 1) | 0), h$baseZCTextziParserCombinatorsziReadPzizlzpzp2);+  return h$ap_2_2_fast();+};+function h$$mL()+{+  return h$e(h$r1.d1);+};+function h$baseZCTextziParserCombinatorsziReadPzizlzpzp2_e()+{+  var a = h$r3;+  var b = h$r2;+  if((b === 0))+  {+    h$l2(h$ghczmprimZCGHCziTupleziZLZR, a);+    return h$ap_1_1_fast();+  }+  else+  {+    h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziGet_con_e, h$c1(h$$mL, h$c2(h$$mM, a, b)));+  };+  return h$stack[h$sp];+};+function h$$mN()+{+  var a = h$r2;+  h$l2(h$ghczmprimZCGHCziTupleziZLZR, a);+  return h$ap_1_1_fast();+};+var h$$baseZCTextziParserCombinatorsziReadP_Y = h$str("Text\/ParserCombinators\/ReadP.hs:(120,3)-(143,60)|function mplus");+function h$$mO()+{+  h$bh();+  h$r3 = 0;+  h$r2 = h$$baseZCTextziParserCombinatorsziReadP_Y();+  h$r1 = h$baseZCControlziExceptionziBasezipatError;+  return h$ap_1_2_fast();+};+function h$baseZCTextziParserCombinatorsziReadPzistring2_e()+{+  h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  return h$stack[h$sp];+};+function h$$mZ()+{+  var a = h$r2;+  h$l2(h$r1.d1, a);+  return h$ap_1_1_fast();+};+function h$$mY()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$bh();+  h$l3(b.d2, c, a);+  return h$ap_2_2_fast();+};+function h$$mX()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(b, a);+  return h$ap_1_1_fast();+};+function h$$mW()+{+  return h$e(h$r1.d1);+};+function h$$mV()+{+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziGet_con_e, h$c1(h$$mW, h$c2(h$$mX, h$r1.d1, h$r2)));+  return h$stack[h$sp];+};+function h$$mU()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 2)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 5;+  var f = a;+  if((b === f))+  {+    h$r1 = h$c1(h$$mV, h$c3(h$$mY, c, d, e));+  }+  else+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPzistring2;+    return h$ap_0_0_fast();+  };+  return h$stack[h$sp];+};+function h$$mT()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  h$sp -= 5;+  h$pp17(a, h$$mU);+  return h$e(b);+};+function h$$mS()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  h$sp -= 4;+  if((a.f.a === 1))+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPzistring2;+    return h$ap_0_0_fast();+  }+  else+  {+    var c = a.d1;+    h$pp25(c, a.d2, h$$mT);+    return h$e(b);+  };+};+function h$$mR()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 4;+  if((a.f.a === 1))+  {+    h$r1 = b;+  }+  else+  {+    var d = a.d1;+    h$pp13(d, a.d2, h$$mS);+    return h$e(c);+  };+  return h$stack[h$sp];+};+function h$$mQ()+{+  var a = h$r1.d1;+  h$p4(a, h$r1.d2, h$r3, h$$mR);+  return h$e(h$r2);+};+function h$$mP()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$l4(b.d1, h$r2, a, b.d2);+  return h$ap_3_3_fast();+};+function h$baseZCTextziParserCombinatorsziReadPzizdwa6_e()+{+  var a = h$r2;+  var b = h$r3;+  var c = h$c(h$$mQ);+  c.d1 = h$c1(h$$mZ, h$r2);+  c.d2 = c;+  h$r1 = h$c3(h$$mP, a, b, c);+  return h$stack[h$sp];+};+function h$baseZCTextziParserCombinatorsziReadPzimunch3_e()+{+  var a = h$r2;+  h$l2(h$ghczmprimZCGHCziTypesziZMZN, a);+  return h$ap_1_1_fast();+};+function h$$m8()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(b, a);+  return h$ap_1_1_fast();+};+function h$$m7()+{+  h$l2(h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$r1.d1, h$r2), h$r1.d2);+  return h$ap_1_1_fast();+};+function h$$m6()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$bh();+  h$l2(h$c2(h$$m7, a, b.d2), c);+  return h$ap_1_1_fast();+};+function h$$m5()+{+  return h$e(h$r1.d1);+};+function h$$m4()+{+  var a = h$r1.d1;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziGet_con_e, h$c1(h$$m5, h$c3(h$$m6, a, h$r1.d2, h$r2)));+  return h$stack[h$sp];+};+function h$$m3()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  if(a)+  {+    h$r1 = h$c2(h$$m4, b, h$c2(h$$m8, c, d));+  }+  else+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPzimunch3;+    return h$ap_0_0_fast();+  };+  return h$stack[h$sp];+};+function h$$m2()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  h$sp -= 3;+  if((a.f.a === 1))+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPzimunch3;+    return h$ap_0_0_fast();+  }+  else+  {+    var c = a.d1;+    h$pp13(c, a.d2, h$$m3);+    h$l2(c, b);+    return h$ap_1_1_fast();+  };+};+function h$$m1()+{+  var a = h$r1.d1;+  h$p3(a, h$r1.d2, h$$m2);+  return h$e(h$r2);+};+function h$$m0()+{+  h$r3 = h$r1.d1;+  h$r1 = h$r1.d2;+  return h$ap_2_2_fast();+};+function h$baseZCTextziParserCombinatorsziReadPzizdwa3_e()+{+  var a = h$r3;+  var b = h$c(h$$m1);+  b.d1 = h$r2;+  b.d2 = b;+  h$r1 = h$c2(h$$m0, a, b);+  return h$stack[h$sp];+};+function h$$ni()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$baseZCTextziParserCombinatorsziReadPzizdfMonadPzuzdcreturn, a);+  return h$ap_1_1_fast();+};+function h$$nh()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  h$l4(d, b, a, c);+  return h$ap_3_3_fast();+};+function h$$ng()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 5;+  if((a.f.a === 1))+  {+    h$r1 = b;+    return h$ap_0_0_fast();+  }+  else+  {+    var e = a.d1;+    var f = a.d2;+    h$pp13(f, ((d + 1) | 0), h$$nh);+    h$l2(e, c);+    return h$ap_1_1_fast();+  };+};+function h$$nf()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  h$l4(b, d, a, c);+  return h$ap_3_3_fast();+};+function h$$ne()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l3(b, a, h$baseZCTextziParserCombinatorsziReadPzizdfMonadPzuzdczgzgze);+  return h$ap_2_2_fast();+};+function h$$nd()+{+  return h$e(h$r1.d1);+};+function h$$nc()+{+  var a = h$r1.d1;+  h$l3(h$c1(h$$nd, h$c2(h$$ne, h$r1.d2, h$r2)), a, h$baseZCTextziParserCombinatorsziReadPzizlzpzp2);+  return h$ap_2_2_fast();+};+function h$$nb()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 5;+  switch (a.f.a)+  {+    case (1):+      h$pp20(a.d1, h$$ng);+      return h$e(c);+    case (2):+      h$pp9(d, h$$nf);+      h$l2(c, a.d1);+      return h$ap_1_1_fast();+    case (3):+      h$r1 = b;+      return h$ap_0_0_fast();+    case (4):+      h$r1 = h$c2(h$$nc, d, a);+      break;+    default:+      h$l2(a, h$baseZCTextziParserCombinatorsziReadPzizdfMonadPzuzdczgzgze);+      return h$ap_1_1_fast();+  };+  return h$stack[h$sp];+};+function h$$na()+{+  var a = h$r1.d1;+  h$p5(a, h$r1.d2, h$r3, h$r4, h$$nb);+  return h$e(h$r2);+};+function h$$m9()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$l5(a, 0, h$r2, b.d1, b.d2);+  return h$ap_4_4_fast();+};+function h$baseZCTextziParserCombinatorsziReadPzizdwa_e()+{+  var a = h$r4;+  var b = h$c1(h$$ni, h$r2);+  var c = h$c(h$$na);+  c.d1 = h$r3;+  c.d2 = c;+  h$r1 = h$c3(h$$m9, a, b, c);+  return h$stack[h$sp];+};+function h$baseZCTextziParserCombinatorsziReadPzipfail1_e()+{+  h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  return h$stack[h$sp];+};+function h$baseZCTextziParserCombinatorsziReadPzizdfMonadPzuzdcreturn_e()+{+  h$r1 = h$c2(h$baseZCTextziParserCombinatorsziReadPziResult_con_e, h$r2, h$baseZCTextziParserCombinatorsziReadPziFail);+  return h$stack[h$sp];+};+function h$baseZCTextziParserCombinatorsziReadPziFinal_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCTextziParserCombinatorsziReadPziFinal_e()+{+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziFinal_con_e, h$r2);+  return h$stack[h$sp];+};+function h$baseZCTextziParserCombinatorsziReadPziResult_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCTextziParserCombinatorsziReadPziResult_e()+{+  h$r1 = h$c2(h$baseZCTextziParserCombinatorsziReadPziResult_con_e, h$r2, h$r3);+  return h$stack[h$sp];+};+function h$baseZCTextziParserCombinatorsziReadPziFail_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCTextziParserCombinatorsziReadPziLook_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCTextziParserCombinatorsziReadPziLook_e()+{+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, h$r2);+  return h$stack[h$sp];+};+function h$baseZCTextziParserCombinatorsziReadPziGet_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCTextziParserCombinatorsziReadPziGet_e()+{+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziGet_con_e, h$r2);+  return h$stack[h$sp];+};+var h$$n2 = h$strta("sigprocmask");+var h$$n3 = h$strta("sigaddset");+var h$$n4 = h$strta("sigemptyset");+var h$$n5 = h$strta("tcSetAttr");+function h$baseZCSystemziPosixziInternalszisetEcho2_e()+{+  h$bh();+  var a = h$base_echo;+  var b = (a | 0);+  var c = (b | 0);+  h$r1 = (c ^ (-1));+  return h$stack[h$sp];+};+function h$$np()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var e = a;+  var f = (d | 0);+  h$base_poke_lflag(b, c, (f & e));+  h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  return h$stack[h$sp];+};+function h$$no()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var e = a;+  var f = (d | 0);+  h$base_poke_lflag(b, c, (f | e));+  h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  return h$stack[h$sp];+};+function h$$nn()+{+  var a = h$r1;+  h$sp -= 4;+  if(a)+  {+    h$pp8(h$$no);+    return h$e(h$baseZCSystemziPosixziInternalszigetEcho3);+  }+  else+  {+    h$pp8(h$$np);+    return h$e(h$baseZCSystemziPosixziInternalszisetEcho2);+  };+};+function h$$nm()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a.d1;+  var d = a.d2;+  var e = h$base_lflag(c, d);+  h$p4(c, d, e, h$$nn);+  return h$e(b);+};+function h$$nl()+{+  h$p2(h$r1.d1, h$$nm);+  return h$e(h$r2);+};+function h$baseZCSystemziPosixziInternalszisetEcho1_e()+{+  h$r3 = h$c1(h$$nl, h$r3);+  h$r1 = h$baseZCSystemziPosixziInternalszigetEcho4;+  return h$ap_3_2_fast();+};+function h$baseZCSystemziPosixziInternalszisetCooked5_e()+{+  h$bh();+  var a = h$base_vmin;+  h$r1 = (a | 0);+  return h$stack[h$sp];+};+function h$baseZCSystemziPosixziInternalszisetCooked4_e()+{+  h$bh();+  var a = h$base_vtime;+  h$r1 = (a | 0);+  return h$stack[h$sp];+};+function h$baseZCSystemziPosixziInternalszisetCooked3_e()+{+  h$bh();+  var a = h$base_icanon;+  var b = (a | 0);+  var c = (b | 0);+  h$r1 = (c ^ (-1));+  return h$stack[h$sp];+};+function h$baseZCSystemziPosixziInternalszisetCooked2_e()+{+  h$bh();+  var a = h$base_icanon;+  var b = (a | 0);+  h$r1 = (b | 0);+  return h$stack[h$sp];+};+function h$$ny()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var d = a;+  var e;+  var f;+  e = b;+  f = (c + d);+  e.u8[(f + 0)] = 0;+  h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  return h$stack[h$sp];+};+function h$$nx()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var d = a;+  var e;+  var f;+  e = b;+  f = (c + d);+  e.u8[(f + 0)] = 1;+  h$pp4(h$$ny);+  return h$e(h$baseZCSystemziPosixziInternalszisetCooked4);+};+function h$$nw()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if(a)+  {+    h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  }+  else+  {+    var d = h$base_ptr_c_cc(c, b);+    h$p3(d, h$ret_1, h$$nx);+    return h$e(h$baseZCSystemziPosixziInternalszisetCooked5);+  };+  return h$stack[h$sp];+};+function h$$nv()+{+  var a = h$stack[(h$sp - 3)];+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 4;+  h$base_poke_lflag(b, c, h$r1);+  h$pp5(c, h$$nw);+  return h$e(a);+};+function h$$nu()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$sp -= 3;+  var c = a;+  var d = (b | 0);+  h$r1 = (d & c);+  h$sp += 3;+  ++h$sp;+  return h$$nv;+};+function h$$nt()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$sp -= 3;+  var c = a;+  var d = (b | 0);+  h$r1 = (d | c);+  h$sp += 3;+  ++h$sp;+  return h$$nv;+};+function h$$ns()+{+  var a = h$r1;+  h$sp -= 2;+  h$sp -= 3;+  if(a)+  {+    h$sp += 3;+    h$pp2(h$$nt);+    return h$e(h$baseZCSystemziPosixziInternalszisetCooked2);+  }+  else+  {+    h$sp += 3;+    h$pp2(h$$nu);+    return h$e(h$baseZCSystemziPosixziInternalszisetCooked3);+  };+};+function h$$nr()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a.d1;+  var d = a.d2;+  var e = h$base_lflag(c, d);+  h$pp6(c, d);+  h$p2(e, h$$ns);+  return h$e(b);+};+function h$$nq()+{+  h$p2(h$r1.d1, h$$nr);+  return h$e(h$r2);+};+function h$baseZCSystemziPosixziInternalszisetCooked1_e()+{+  h$r3 = h$c1(h$$nq, h$r3);+  h$r1 = h$baseZCSystemziPosixziInternalszigetEcho4;+  return h$ap_3_2_fast();+};+function h$$nN()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var d = h$base_tcgetattr(a, b, c);+  var e = d;+  h$r1 = (e | 0);+  return h$stack[h$sp];+};+function h$$nM()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$p3(c, b.d2, h$$nN);+  return h$e(a);+};+function h$$nL()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = h$base_tcsanow;+  var f = h$base_tcsetattr(d, (e | 0), a, c);+  var g = f;+  h$r1 = (g | 0);+  return h$stack[h$sp];+};+function h$$nK()+{+  var a = h$r1;+  --h$sp;+  h$l2(a, h$baseZCGHCziIOziExceptionziioError);+  return h$ap_2_1_fast();+};+function h$$nJ()+{+  var a = h$stack[(h$sp - 5)];+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  h$sp -= 6;+  var d = h$base_sig_setmask;+  var e = h$base_sigprocmask((d | 0), a, b, null, 0);+  var f = e;+  var g = (f | 0);+  if((g === (-1)))+  {+    var h = h$__hscore_get_errno();+    var i = h;+    h$p1(h$$nK);+    h$l5(h$baseZCDataziMaybeziNothing, h$baseZCDataziMaybeziNothing, (i | 0), h$$n2,+    h$baseZCForeignziCziErrorzierrnoToIOError);+    return h$ap_4_4_fast();+  }+  else+  {+    h$r1 = c;+  };+  return h$stack[h$sp];+};+function h$$nI()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 7)];+  var c = h$stack[(h$sp - 6)];+  var d = h$stack[(h$sp - 5)];+  var e = h$stack[(h$sp - 2)];+  var f = h$stack[(h$sp - 1)];+  h$sp -= 8;+  h$pp39(e, f, a, h$$nJ);+  h$l4(h$c3(h$$nL, b, c, d), h$$n5, h$baseZCSystemziPosixziInternalszifdFileSizzezupred,+  h$baseZCForeignziCziErrorzithrowErrnoIfMinus1Retry2);+  return h$ap_4_3_fast();+};+function h$$nH()+{+  var a = h$r1;+  --h$sp;+  h$l2(a, h$baseZCGHCziIOziExceptionziioError);+  return h$ap_2_1_fast();+};+function h$$nG()+{+  var a = h$r1;+  --h$sp;+  h$l2(a, h$baseZCGHCziIOziExceptionziioError);+  return h$ap_2_1_fast();+};+function h$$nF()+{+  var a = h$r1;+  --h$sp;+  h$l2(a, h$baseZCGHCziIOziExceptionziioError);+  return h$ap_2_1_fast();+};+function h$$nE()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = b.d3;+  var f = h$newByteArray(h$base_sizeof_sigset_t);+  var g = h$newByteArray(h$base_sizeof_sigset_t);+  var h;+  var i;+  h = f;+  i = 0;+  var j = h$base_sigemptyset(f, 0);+  var k = j;+  var l = (k | 0);+  if((l === (-1)))+  {+    var m = h$__hscore_get_errno();+    var n = m;+    h$p1(h$$nF);+    h$l5(h$baseZCDataziMaybeziNothing, h$baseZCDataziMaybeziNothing, (n | 0), h$$n4,+    h$baseZCForeignziCziErrorzierrnoToIOError);+    return h$ap_4_4_fast();+  }+  else+  {+    var o = h$base_sigttou;+    var p = h$base_sigaddset(h, i, (o | 0));+    var q = p;+    var r = (q | 0);+    if((r === (-1)))+    {+      var s = h$__hscore_get_errno();+      var t = s;+      h$p1(h$$nG);+      h$l5(h$baseZCDataziMaybeziNothing, h$baseZCDataziMaybeziNothing, (t | 0), h$$n3,+      h$baseZCForeignziCziErrorzierrnoToIOError);+      return h$ap_4_4_fast();+    }+    else+    {+      var u = h$base_sig_block;+      var v;+      var w;+      v = g;+      w = 0;+      var x = h$base_sigprocmask((u | 0), h, i, v, w);+      var y = x;+      var z = (y | 0);+      if((z === (-1)))+      {+        var A = h$__hscore_get_errno();+        var B = A;+        h$p1(h$$nH);+        h$l5(h$baseZCDataziMaybeziNothing, h$baseZCDataziMaybeziNothing, (B | 0), h$$n2,+        h$baseZCForeignziCziErrorzierrnoToIOError);+        return h$ap_4_4_fast();+      }+      else+      {+        h$p8(c, d, e, f, g, v, w, h$$nI);+        h$l2(h$c2(h$baseZCGHCziPtrziPtr_con_e, c, d), a);+        return h$ap_2_1_fast();+      };+    };+  };+};+function h$$nD()+{+  var a = h$r1;+  h$sp -= 2;+  h$r1 = a;+  return h$stack[h$sp];+};+function h$$nC()+{+  var a = h$r1;+  h$sp -= 2;+  h$r1 = a;+  return h$stack[h$sp];+};+function h$$nB()+{+  var a = h$r1;+  h$sp -= 2;+  h$r1 = a;+  return h$stack[h$sp];+};+function h$$nA()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 5)];+  var c = h$stack[(h$sp - 4)];+  var d = h$stack[(h$sp - 3)];+  var e = h$stack[(h$sp - 2)];+  var f = h$stack[(h$sp - 1)];+  h$sp -= 6;+  var g = a;+  var h = h$c4(h$$nE, c, f, b, a);+  if((g <= 2))+  {+    var i = h$__hscore_get_saved_termios(g);+    var j = i;+    var k = h$ret1;+    if(((j === null) && (k === 0)))+    {+      var l = d;+      var m = h$malloc((l | 0));+      var n = m;+      var o = h$ret1;+      if(((n === null) && (o === 0)))+      {+        h$l2(h$baseZCForeignziMarshalziAlloczimallocBytes2, h$baseZCGHCziIOziExceptionziioError);+        return h$ap_2_1_fast();+      }+      else+      {+        var p = d;+        var q = h$memcpy(n, o, f, b, (p | 0));+        h$__hscore_set_saved_termios(g, n, o);+        h$p2(e, h$$nB);+        h$r1 = h;+        return h$ap_1_0_fast();+      };+    }+    else+    {+      h$p2(e, h$$nC);+      h$r1 = h;+      return h$ap_1_0_fast();+    };+  }+  else+  {+    h$p2(e, h$$nD);+    h$r1 = h;+    return h$ap_1_0_fast();+  };+};+function h$$nz()+{+  var a = h$stack[(h$sp - 6)];+  var b = h$stack[(h$sp - 1)];+  h$sp -= 7;+  h$pp33(b, h$$nA);+  return h$e(a);+};+function h$baseZCSystemziPosixziInternalszigetEcho4_e()+{+  var a = h$newByteArray(h$base_sizeof_termios);+  h$p7(h$r2, h$r3, h$base_sizeof_termios, a, a, 0, h$$nz);+  h$l4(h$c3(h$$nM, h$r2, a, 0), h$$n5, h$baseZCSystemziPosixziInternalszifdFileSizzezupred,+  h$baseZCForeignziCziErrorzithrowErrnoIfMinus1Retry2);+  return h$ap_4_3_fast();+};+function h$baseZCSystemziPosixziInternalszigetEcho3_e()+{+  h$bh();+  var a = h$base_echo;+  var b = (a | 0);+  h$r1 = (b | 0);+  return h$stack[h$sp];+};+function h$$nQ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  var d = (b | 0);+  var e = (d & c);+  if((e === 0))+  {+    h$r1 = false;+  }+  else+  {+    h$r1 = true;+  };+  return h$stack[h$sp];+};+function h$$nP()+{+  var a = h$r1.d1;+  h$bh();+  h$p2(a, h$$nQ);+  return h$e(h$baseZCSystemziPosixziInternalszigetEcho3);+};+function h$$nO()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  var c = h$base_lflag(b, a.d2);+  h$r1 = h$c1(h$$nP, c);+  return h$stack[h$sp];+};+function h$baseZCSystemziPosixziInternalszigetEcho2_e()+{+  h$p1(h$$nO);+  return h$e(h$r2);+};+var h$baseZCSystemziPosixziInternalsziioezuunknownfiletype2 = h$strta("fdType");+var h$baseZCSystemziPosixziInternalsziioezuunknownfiletype1 = h$strta("unknown file type");+function h$$nV()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  h$r1 = (b | 0);+  return h$stack[h$sp];+};+function h$$nU()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var d = a;+  h$p1(h$$nV);+  try+  {+    var e;+    var f = { mv: null+            };+    e = h$mkForeignCallback(f);+    h$base_fstat(d, b, c, e);+    if((f.mv === null))+    {+      f.mv = new h$MVar();+      ++h$sp;+      h$stack[h$sp] = h$unboxFFIResult;+      return h$takeMVar(f.mv);+    }+    else+    {+      var g = f.mv;+      h$r1 = g[0];+    };+  }+  catch(h$SystemziPosixziInternals_id_108_0)+  {+    return h$throwJSException(h$SystemziPosixziInternals_id_108_0);+  };+  return h$stack[h$sp];+};+function h$$nT()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$p3(c, b.d2, h$$nU);+  return h$e(a);+};+function h$$nS()+{+  var a = h$stack[(h$sp - 2)];+  var b = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var c = h$r1;+  var d = h$base_st_dev(a, b);+  var e = d;+  var f;+  var g;+  f = h$base_st_ino(a, b);+  var h = h$c2(h$baseZCGHCziWordziW64zh_con_e, f, g);+  h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, c, (e | 0), h);+  return h$stack[h$sp];+};+function h$$nR()+{+  var a = h$stack[(h$sp - 2)];+  var b = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var c = h$base_st_mode(a, b);+  var d = c;+  var e = (d & 65535);+  var f = h$base_c_s_isdir(e);+  var g = f;+  var h = (g | 0);+  if((h === 0))+  {+    var i = h$base_c_s_isfifo(e);+    var j = i;+    var k = (j | 0);+    if((k === 0))+    {+      var l = h$base_c_s_issock(e);+      var m = l;+      var n = (m | 0);+      if((n === 0))+      {+        var o = h$base_c_s_ischr(e);+        var p = o;+        var q = (p | 0);+        if((q === 0))+        {+          var r = h$base_c_s_isreg(e);+          var s = r;+          var t = (s | 0);+          if((t === 0))+          {+            var u = h$base_c_s_isblk(e);+            var v = u;+            var w = (v | 0);+            if((w === 0))+            {+              h$l2(h$baseZCSystemziPosixziInternalsziioezuunknownfiletype, h$baseZCGHCziIOziExceptionziioError);+              return h$ap_2_1_fast();+            }+            else+            {+              h$r1 = h$baseZCGHCziIOziDeviceziRawDevice;+              h$sp += 3;+              ++h$sp;+              return h$$nS;+            };+          }+          else+          {+            h$r1 = h$baseZCGHCziIOziDeviceziRegularFile;+            h$sp += 3;+            ++h$sp;+            return h$$nS;+          };+        }+        else+        {+          h$r1 = h$baseZCGHCziIOziDeviceziStream;+          h$sp += 3;+          ++h$sp;+          return h$$nS;+        };+      }+      else+      {+        h$r1 = h$baseZCGHCziIOziDeviceziStream;+        h$sp += 3;+        ++h$sp;+        return h$$nS;+      };+    }+    else+    {+      h$r1 = h$baseZCGHCziIOziDeviceziStream;+      h$sp += 3;+      ++h$sp;+      return h$$nS;+    };+  }+  else+  {+    h$r1 = h$baseZCGHCziIOziDeviceziDirectory;+    h$sp += 3;+    ++h$sp;+    return h$$nS;+  };+};+function h$baseZCSystemziPosixziInternalszifdStat1_e()+{+  var a = h$newByteArray(h$base_sizeof_stat);+  h$p4(a, a, 0, h$$nR);+  h$l4(h$c3(h$$nT, h$r2, a, 0), h$baseZCSystemziPosixziInternalsziioezuunknownfiletype2,+  h$baseZCSystemziPosixziInternalszifdFileSizzezupred, h$baseZCForeignziCziErrorzithrowErrnoIfMinus1Retry2);+  return h$ap_4_3_fast();+};+function h$$nW()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  if((b === (-1)))+  {+    h$r1 = true;+  }+  else+  {+    h$r1 = false;+  };+  return h$stack[h$sp];+};+function h$baseZCSystemziPosixziInternalszifdFileSizzezupred_e()+{+  h$p1(h$$nW);+  return h$e(h$r2);+};+var h$baseZCSystemziPosixziInternalszifdFileSizzezuloc = h$strta("fileSize");+function h$$n1()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  h$r1 = (b | 0);+  return h$stack[h$sp];+};+function h$$n0()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var d = a;+  h$p1(h$$n1);+  try+  {+    var e;+    var f = { mv: null+            };+    e = h$mkForeignCallback(f);+    h$base_fstat(d, b, c, e);+    if((f.mv === null))+    {+      f.mv = new h$MVar();+      ++h$sp;+      h$stack[h$sp] = h$unboxFFIResult;+      return h$takeMVar(f.mv);+    }+    else+    {+      var g = f.mv;+      h$r1 = g[0];+    };+  }+  catch(h$SystemziPosixziInternals_id_114_0)+  {+    return h$throwJSException(h$SystemziPosixziInternals_id_114_0);+  };+  return h$stack[h$sp];+};+function h$$nZ()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$p3(c, b.d2, h$$n0);+  return h$e(a);+};+function h$$nY()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l3(b, a, h$integerzmgmpZCGHCziIntegerziTypeziint64ToInteger);+  return h$ap_1_2_fast();+};+function h$$nX()+{+  var a = h$stack[(h$sp - 2)];+  var b = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var c = h$base_st_mode(a, b);+  var d = c;+  var e = h$base_c_s_isreg((d & 65535));+  var f = e;+  var g = (f | 0);+  if((g === 0))+  {+    h$r1 = h$baseZCSystemziPosixziInternalszifdFileSizze2;+  }+  else+  {+    var h = h$base_st_size(a, b);+    h$r1 = h$c2(h$$nY, h, h$ret1);+  };+  return h$stack[h$sp];+};+function h$baseZCSystemziPosixziInternalszifdFileSizze1_e()+{+  var a = h$newByteArray(h$base_sizeof_stat);+  h$p4(a, a, 0, h$$nX);+  h$l4(h$c3(h$$nZ, h$r2, a, 0), h$baseZCSystemziPosixziInternalszifdFileSizzezuloc,+  h$baseZCSystemziPosixziInternalszifdFileSizzezupred, h$baseZCForeignziCziErrorzithrowErrnoIfMinus1Retry2);+  return h$ap_4_3_fast();+};+function h$baseZCGHCziWordziW32zh_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziWordziW32zh_e()+{+  h$r1 = h$r2;+  return h$stack[h$sp];+};+function h$baseZCGHCziWordziW64zh_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziWordziW64zh_e()+{+  h$r1 = h$c2(h$baseZCGHCziWordziW64zh_con_e, h$r2, h$r3);+  return h$stack[h$sp];+};+function h$baseZCGHCziUnicodezizdwisSpace_e()+{+  switch (h$r2)+  {+    case (9):+      h$r1 = true;+      break;+    case (10):+      h$r1 = true;+      break;+    case (11):+      h$r1 = true;+      break;+    case (12):+      h$r1 = true;+      break;+    case (13):+      h$r1 = true;+      break;+    case (32):+      h$r1 = true;+      break;+    case (160):+      h$r1 = true;+      break;+    default:+      var a = h$r2;+      var b = h$u_iswspace((a | 0));+      var c = b;+      var d = (c | 0);+      if((d === 0))+      {+        h$r1 = false;+      }+      else+      {+        h$r1 = true;+      };+  };+  return h$stack[h$sp];+};+function h$$n6()+{+  var a = h$r1;+  --h$sp;+  h$l2(a, h$baseZCGHCziUnicodezizdwisSpace);+  return h$ap_1_1_fast();+};+function h$baseZCGHCziUnicodeziisSpace_e()+{+  h$p1(h$$n6);+  return h$e(h$r2);+};+function h$$n7()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  var c = h$u_iswalpha((b | 0));+  var d = c;+  var e = (d | 0);+  if((e === 0))+  {+    h$r1 = false;+  }+  else+  {+    h$r1 = true;+  };+  return h$stack[h$sp];+};+function h$baseZCGHCziUnicodeziisAlpha_e()+{+  h$p1(h$$n7);+  return h$e(h$r2);+};+function h$$n8()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  var c = h$u_iswalnum((b | 0));+  var d = c;+  var e = (d | 0);+  if((e === 0))+  {+    h$r1 = false;+  }+  else+  {+    h$r1 = true;+  };+  return h$stack[h$sp];+};+function h$baseZCGHCziUnicodeziisAlphaNum_e()+{+  h$p1(h$$n8);+  return h$e(h$r2);+};+function h$$n9()+{+  h$l3(h$r1.d1, h$$oY, h$$oU);+  return h$ap_3_2_fast();+};+function h$baseZCGHCziTopHandlerzirunIO2_e()+{+  h$r1 = h$baseZCGHCziTopHandlerzirunIO3;+  return h$ap_2_1_fast();+};+function h$baseZCGHCziTopHandlerzirunIO3_e()+{+  return h$catch(h$c1(h$$n9, h$r2), h$baseZCGHCziTopHandlerzirunIO2);+};+function h$$oO()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l2(h$$oX, a);+  return h$ap_2_1_fast();+};+function h$$oN()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var c = a.d1;+  h$pp2(h$$oO);+  h$l2(b, c.val);+  return h$ap_2_1_fast();+};+function h$$oM()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l2(h$$oX, a);+  return h$ap_2_1_fast();+};+function h$$oL()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var c = a.d1;+  h$pp2(h$$oM);+  h$l2(b, c.val);+  return h$ap_2_1_fast();+};+function h$$oK()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l2(h$$oX, a);+  return h$ap_2_1_fast();+};+function h$$oJ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var c = a.d1;+  h$pp2(h$$oK);+  h$l2(b, c.val);+  return h$ap_2_1_fast();+};+function h$$oI()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l2(h$$oX, a);+  return h$ap_2_1_fast();+};+function h$$oH()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var c = a.d1;+  h$pp2(h$$oI);+  h$l2(b, c.val);+  return h$ap_2_1_fast();+};+function h$$oG()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l2(h$$oX, a);+  return h$ap_2_1_fast();+};+function h$$oF()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var c = a.d1;+  h$pp2(h$$oG);+  h$l2(b, c.val);+  return h$ap_2_1_fast();+};+function h$$oE()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l2(h$$oX, a);+  return h$ap_2_1_fast();+};+function h$$oD()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var c = a.d1;+  h$pp2(h$$oE);+  h$l2(b, c.val);+  return h$ap_2_1_fast();+};+function h$$oC()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l2(h$$oX, a);+  return h$ap_2_1_fast();+};+function h$$oB()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var c = a.d1;+  h$pp2(h$$oC);+  h$l2(b, c.val);+  return h$ap_2_1_fast();+};+function h$$oA()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l2(h$$oX, a);+  return h$ap_2_1_fast();+};+function h$$oz()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var c = a.d1;+  h$pp2(h$$oA);+  h$l2(b, c.val);+  return h$ap_2_1_fast();+};+function h$$oy()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l2(h$$oX, a);+  return h$ap_2_1_fast();+};+function h$$ox()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var c = a.d1;+  h$pp2(h$$oy);+  h$l2(b, c.val);+  return h$ap_2_1_fast();+};+function h$$ow()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 4;+  if((a.f.a === 1))+  {+    var d = a.d2;+    if((c === d))+    {+      h$l2(h$$oW, b);+      return h$ap_2_1_fast();+    }+    else+    {+      h$pp4(h$$oz);+      return h$e(h$baseZCGHCziConcziSyncziuncaughtExceptionHandler);+    };+  }+  else+  {+    h$pp4(h$$ox);+    return h$e(h$baseZCGHCziConcziSyncziuncaughtExceptionHandler);+  };+};+function h$$ov()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l2(h$$oX, a);+  return h$ap_2_1_fast();+};+function h$$ou()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var c = a.d1;+  h$pp2(h$$ov);+  h$l2(b, c.val);+  return h$ap_2_1_fast();+};+function h$$ot()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l2(h$$oX, a);+  return h$ap_2_1_fast();+};+function h$$os()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var c = a.d1;+  h$pp2(h$$ot);+  h$l2(b, c.val);+  return h$ap_2_1_fast();+};+function h$$or()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 4;+  if((a.f.a === 1))+  {+    h$pp4(h$$ou);+    return h$e(h$baseZCGHCziConcziSyncziuncaughtExceptionHandler);+  }+  else+  {+    var d = a.d2;+    var e = d.d1;+    if((c === e))+    {+      h$l2(h$$oW, b);+      return h$ap_2_1_fast();+    }+    else+    {+      h$pp4(h$$os);+      return h$e(h$baseZCGHCziConcziSyncziuncaughtExceptionHandler);+    };+  };+};+function h$$oq()+{+  var a = h$r1;+  h$sp -= 3;+  if((a.f.a === 1))+  {+    h$pp12(a.d2, h$$ow);+    return h$e(h$baseZCGHCziIOziHandleziFDzistdout);+  }+  else+  {+    var b = a.d2;+    h$pp12(b.d1, h$$or);+    return h$e(h$baseZCGHCziIOziHandleziFDzistdout);+  };+};+function h$$op()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 4;+  switch (a)+  {+    case ((-1)):+      h$pp4(h$$oB);+      return h$e(h$baseZCGHCziConcziSyncziuncaughtExceptionHandler);+    case (32):+      h$pp4(h$$oq);+      return h$e(b);+    default:+      h$pp4(h$$oD);+      return h$e(h$baseZCGHCziConcziSyncziuncaughtExceptionHandler);+  };+};+function h$$oo()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 4;+  if((a.f.a === 1))+  {+    h$pp4(h$$oF);+    return h$e(h$baseZCGHCziConcziSyncziuncaughtExceptionHandler);+  }+  else+  {+    h$pp12(a.d1, h$$op);+    return h$e(b);+  };+};+function h$$on()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 4;+  if((a.f.a === 1))+  {+    h$pp4(h$$oH);+    return h$e(h$baseZCGHCziConcziSyncziuncaughtExceptionHandler);+  }+  else+  {+    h$pp12(a.d1, h$$oo);+    return h$e(b);+  };+};+function h$$om()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 5;+  if((a.f.a === 18))+  {+    h$pp8(h$$on);+    return h$e(b);+  }+  else+  {+    h$pp4(h$$oJ);+    return h$e(h$baseZCGHCziConcziSyncziuncaughtExceptionHandler);+  };+};+function h$$ol()+{+  var a = h$r1;+  h$sp -= 3;+  var b = a.d1;+  var c = a.d2;+  var d = c.d1;+  h$pp28(b, c.d4, h$$om);+  return h$e(d);+};+function h$$ok()+{+  var a = h$stack[(h$sp - 5)];+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 2)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 8;+  if(h$hs_eqWord64(b, c, 1685460941, (-241344014)))+  {+    if(h$hs_eqWord64(d, e, (-1787550655), (-601376313)))+    {+      h$pp4(h$$ol);+      h$r1 = a;+      return h$ap_0_0_fast();+    }+    else+    {+      h$pp4(h$$oL);+      return h$e(h$baseZCGHCziConcziSyncziuncaughtExceptionHandler);+    };+  }+  else+  {+    h$pp4(h$$oN);+    return h$e(h$baseZCGHCziConcziSyncziuncaughtExceptionHandler);+  };+};+function h$$oj()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$l2(h$$oW, b);+    return h$ap_2_1_fast();+  }+  else+  {+    h$l2(a.d1, b);+    return h$ap_2_1_fast();+  };+};+function h$$oi()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var c = a.d1;+  var d = a.d2;+  var e = d.d1;+  var f = d.d2;+  var g = d.d3;+  if(h$hs_eqWord64(c, e, (-91230330), 1741995454))+  {+    if(h$hs_eqWord64(f, g, (-1145465021), (-1155709843)))+    {+      h$pp2(h$$oj);+      h$r1 = b;+      return h$ap_0_0_fast();+    }+    else+    {+      h$pp120(c, e, f, g);+      ++h$sp;+      return h$$ok;+    };+  }+  else+  {+    h$pp120(c, e, f, g);+    ++h$sp;+    return h$$ok;+  };+};+function h$$oh()+{+  var a = h$r1;+  h$sp -= 2;+  var b = a.d1;+  h$pp14(a, a.d2, h$$oi);+  ++h$sp;+  h$stack[h$sp] = h$ap_1_0;+  h$l2(b, h$baseZCGHCziExceptionzizdp1Exception);+  return h$baseZCGHCziExceptionzizdp1Exception_e;+};+function h$$og()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$pp2(h$$oh);+  return h$e(a);+};+function h$$of()+{+  --h$sp;+  h$l2(h$$oZ, h$baseZCGHCziIOzifailIO);+  return h$ap_2_1_fast();+};+function h$$oe()+{+  var a = h$r1;+  --h$sp;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  switch (a.f.a)+  {+    case (1):+      h$stackOverflow(h$currentThread);+      h$l2(h$$oV, b);+      return h$ap_2_1_fast();+    case (4):+      h$p1(h$$of);+      h$shutdownHaskellAndExit(252, 0);+      break;+    default:+      h$sp += 2;+      ++h$sp;+      return h$$og;+  };+  return h$stack[h$sp];+};+function h$$od()+{+  var a = h$r1;+  --h$sp;+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$sp += 2;+    ++h$sp;+    return h$$og;+  }+  else+  {+    var b = a.d1;+    h$sp += 2;+    h$p1(h$$oe);+    return h$e(b);+  };+};+function h$$oc()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$sp += 2;+  h$p1(h$$od);+  h$l2(a, h$baseZCGHCziIOziExceptionzizdfExceptionAsyncExceptionzuzdsasyncExceptionFromException);+  return h$baseZCGHCziIOziExceptionzizdfExceptionAsyncExceptionzuzdsasyncExceptionFromException_e;+};+function h$$ob()+{+  h$sp -= 3;+  h$pp4(h$$oc);+  return h$catch(h$baseZCGHCziTopHandlerziflushStdHandles2, h$baseZCGHCziTopHandlerziflushStdHandles3);+};+function h$$oa()+{+  h$p3(h$r2, h$r3, h$$ob);+  return h$catch(h$baseZCGHCziTopHandlerziflushStdHandles4, h$baseZCGHCziTopHandlerziflushStdHandles3);+};+function h$$oR()+{+  --h$sp;+  h$l2(h$$oZ, h$baseZCGHCziIOzifailIO);+  return h$ap_2_1_fast();+};+function h$$oQ()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  h$p1(h$$oR);+  h$shutdownHaskellAndExit((b | 0), 0);+  return h$stack[h$sp];+};+function h$$oP()+{+  h$p1(h$$oQ);+  return h$e(h$r2);+};+var h$$oZ = h$strta("If you can read this, shutdownHaskellAndExit did not exit.");+function h$$oS()+{+  var a = h$r1.d1;+  var b = h$makeWeakNoFinalizer(h$currentThread, h$c1(h$baseZCGHCziConcziSyncziThreadId_con_e, h$currentThread));+  h$r1 = a;+  return h$ap_1_0_fast();+};+function h$baseZCGHCziTopHandlerzirunMainIO1_e()+{+  return h$catch(h$c1(h$$oS, h$r2), h$baseZCGHCziTopHandlerzirunIO2);+};+function h$baseZCGHCziTopHandlerziflushStdHandles4_e()+{+  h$l2(h$baseZCGHCziIOziHandleziFDzistdout, h$baseZCGHCziIOziHandlezihFlush1);+  return h$baseZCGHCziIOziHandlezihFlush1_e;+};+function h$$oT()+{+  --h$sp;+  h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  return h$stack[h$sp];+};+function h$baseZCGHCziTopHandlerziflushStdHandles3_e()+{+  h$p1(h$$oT);+  return h$e(h$r2);+};+function h$baseZCGHCziTopHandlerziflushStdHandles2_e()+{+  h$l2(h$baseZCGHCziIOziHandleziFDzistderr, h$baseZCGHCziIOziHandlezihFlush1);+  return h$baseZCGHCziIOziHandlezihFlush1_e;+};+function h$baseZCGHCziTopHandlerzitopHandler_e()+{+  h$r1 = h$baseZCGHCziTopHandlerzirunIO3;+  return h$ap_2_1_fast();+};+function h$baseZCGHCziTopHandlerzirunMainIO_e()+{+  h$r1 = h$baseZCGHCziTopHandlerzirunMainIO1;+  return h$ap_2_1_fast();+};+function h$$o2()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var e = a;+  b.dv.setUint32((d + (c << 2)), e, true);+  h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  return h$stack[h$sp];+};+function h$$o1()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  h$sp -= 4;+  h$pp10(a, h$$o2);+  return h$e(b);+};+function h$$o0()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  h$sp -= 3;+  var c = a.d1;+  h$pp13(c, a.d2, h$$o1);+  return h$e(b);+};+function h$baseZCGHCziStorableziwriteWideCharOffPtr1_e()+{+  h$p3(h$r3, h$r4, h$$o0);+  return h$e(h$r2);+};+function h$$o4()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var d = a;+  var e = b.dv.getUint32((c + (d << 2)), true);+  h$r1 = e;+  return h$stack[h$sp];+};+function h$$o3()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a.d1;+  h$p3(c, a.d2, h$$o4);+  return h$e(b);+};+function h$baseZCGHCziStorablezireadWideCharOffPtr1_e()+{+  h$p2(h$r3, h$$o3);+  return h$e(h$r2);+};+function h$baseZCGHCziShowzizdwitoszq_e()+{+  var a = h$r2;+  var b = h$r3;+  if((a < 10))+  {+    h$r1 = ((48 + a) | 0);+    h$r2 = b;+  }+  else+  {+    var c = ((a / 10) | 0);+    var d = c;+    var e = (a - (10 * c));+    h$l3(h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, ((48 + e) | 0), b), d, h$baseZCGHCziShowzizdwitoszq);+    return h$ap_2_2_fast();+  };+  return h$stack[h$sp];+};+function h$$o8()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l3(a, b, h$baseZCGHCziShowzishowLitString);+  return h$ap_2_2_fast();+};+function h$$o7()+{+  h$l3(h$r1.d1, h$r1.d2, h$baseZCGHCziShowzishowLitString);+  return h$ap_2_2_fast();+};+function h$$o6()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var d = a;+  if((d === 34))+  {+    h$l3(h$c2(h$$o7, b, c), h$$py, h$baseZCGHCziBasezizpzp);+    return h$ap_2_2_fast();+  }+  else+  {+    h$l3(h$c2(h$$o8, b, c), d, h$baseZCGHCziShowzizdwshowLitChar);+    return h$ap_2_2_fast();+  };+};+function h$$o5()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    return h$e(b);+  }+  else+  {+    var c = a.d1;+    h$pp6(a.d2, h$$o6);+    return h$e(c);+  };+};+function h$baseZCGHCziShowzishowLitString_e()+{+  h$p2(h$r3, h$$o5);+  return h$e(h$r2);+};+var h$$py = h$strta("\\\"");+var h$$pz = h$strta("\\a");+var h$$pA = h$strta("\\b");+var h$$pB = h$strta("\\t");+var h$$pC = h$strta("\\n");+var h$$pD = h$strta("\\v");+var h$$pE = h$strta("\\f");+var h$$pF = h$strta("\\r");+var h$$pG = h$strta("\\SO");+var h$$pH = h$strta("\\\\");+var h$$pI = h$strta("\\DEL");+var h$baseZCGHCziShowziasciiTab65 = h$strta("NUL");+var h$baseZCGHCziShowziasciiTab64 = h$strta("SOH");+var h$baseZCGHCziShowziasciiTab63 = h$strta("STX");+var h$baseZCGHCziShowziasciiTab62 = h$strta("ETX");+var h$baseZCGHCziShowziasciiTab61 = h$strta("EOT");+var h$baseZCGHCziShowziasciiTab60 = h$strta("ENQ");+var h$baseZCGHCziShowziasciiTab59 = h$strta("ACK");+var h$baseZCGHCziShowziasciiTab58 = h$strta("BEL");+var h$baseZCGHCziShowziasciiTab57 = h$strta("BS");+var h$baseZCGHCziShowziasciiTab56 = h$strta("HT");+var h$baseZCGHCziShowziasciiTab55 = h$strta("LF");+var h$baseZCGHCziShowziasciiTab54 = h$strta("VT");+var h$baseZCGHCziShowziasciiTab53 = h$strta("FF");+var h$baseZCGHCziShowziasciiTab52 = h$strta("CR");+var h$baseZCGHCziShowziasciiTab51 = h$strta("SO");+var h$baseZCGHCziShowziasciiTab50 = h$strta("SI");+var h$baseZCGHCziShowziasciiTab49 = h$strta("DLE");+var h$baseZCGHCziShowziasciiTab48 = h$strta("DC1");+var h$baseZCGHCziShowziasciiTab47 = h$strta("DC2");+var h$baseZCGHCziShowziasciiTab46 = h$strta("DC3");+var h$baseZCGHCziShowziasciiTab45 = h$strta("DC4");+var h$baseZCGHCziShowziasciiTab44 = h$strta("NAK");+var h$baseZCGHCziShowziasciiTab43 = h$strta("SYN");+var h$baseZCGHCziShowziasciiTab42 = h$strta("ETB");+var h$baseZCGHCziShowziasciiTab41 = h$strta("CAN");+var h$baseZCGHCziShowziasciiTab40 = h$strta("EM");+var h$baseZCGHCziShowziasciiTab39 = h$strta("SUB");+var h$baseZCGHCziShowziasciiTab38 = h$strta("ESC");+var h$baseZCGHCziShowziasciiTab37 = h$strta("FS");+var h$baseZCGHCziShowziasciiTab36 = h$strta("GS");+var h$baseZCGHCziShowziasciiTab35 = h$strta("RS");+var h$baseZCGHCziShowziasciiTab34 = h$strta("US");+var h$baseZCGHCziShowziasciiTab33 = h$strta("SP");+function h$$ph()+{+  var a = h$r1.d1;+  h$bh();+  var b = a;+  if((b < 0))+  {+    h$r1 = h$baseZCGHCziListziznzn1;+    return h$ap_0_0_fast();+  }+  else+  {+    h$l3(b, h$baseZCGHCziShowziasciiTab, h$baseZCGHCziListziznznzusub);+    return h$ap_2_2_fast();+  };+};+var h$$baseZCGHCziShow_dQ = h$str("\\&");+function h$$pg()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  if((c === 72))+  {+    h$r4 = b;+    h$r3 = 0;+    h$r2 = h$$baseZCGHCziShow_dQ();+    h$r1 = h$ghczmprimZCGHCziCStringziunpackAppendCStringzh;+    return h$ap_2_3_fast();+  }+  else+  {+    h$r1 = b;+  };+  return h$stack[h$sp];+};+function h$$pf()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    h$p2(a, h$$pg);+    return h$e(a.d1);+  };+  return h$stack[h$sp];+};+function h$$pe()+{+  h$p1(h$$pf);+  return h$e(h$r1.d1);+};+var h$$baseZCGHCziShow_dX = h$str("\\&");+function h$$pd()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  if((c >= 48))+  {+    if((c <= 57))+    {+      h$r4 = b;+      h$r3 = 0;+      h$r2 = h$$baseZCGHCziShow_dX();+      h$r1 = h$ghczmprimZCGHCziCStringziunpackAppendCStringzh;+      return h$ap_2_3_fast();+    }+    else+    {+      h$r1 = b;+    };+  }+  else+  {+    h$r1 = b;+  };+  return h$stack[h$sp];+};+function h$$pc()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    h$p2(a, h$$pd);+    return h$e(a.d1);+  };+  return h$stack[h$sp];+};+function h$$pb()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$pc);+  return h$e(a);+};+function h$$pa()+{+  var a;+  var b;+  a = h$r1;+  b = h$r2;+  --h$sp;+  h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, a, b);+  return h$stack[h$sp];+};+function h$$o9()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$p1(h$$pa);+  h$l3(h$c1(h$$pb, b), a, h$baseZCGHCziShowzizdwitos);+  return h$ap_2_2_fast();+};+function h$baseZCGHCziShowzizdwshowLitChar_e()+{+  var a = h$r2;+  var b = h$r3;+  if((a > 127))+  {+    h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$$pJ, h$c2(h$$o9, a, b));+  }+  else+  {+    var c = a;+    switch (a)+    {+      case (92):+        h$l3(b, h$$pH, h$baseZCGHCziBasezizpzp);+        return h$ap_2_2_fast();+      case (127):+        h$l3(b, h$$pI, h$baseZCGHCziBasezizpzp);+        return h$ap_2_2_fast();+      default:+        if((c >= 32))+        {+          h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, c, b);+        }+        else+        {+          switch (c)+          {+            case (7):+              h$l3(b, h$$pz, h$baseZCGHCziBasezizpzp);+              return h$ap_2_2_fast();+            case (8):+              h$l3(b, h$$pA, h$baseZCGHCziBasezizpzp);+              return h$ap_2_2_fast();+            case (9):+              h$l3(b, h$$pB, h$baseZCGHCziBasezizpzp);+              return h$ap_2_2_fast();+            case (10):+              h$l3(b, h$$pC, h$baseZCGHCziBasezizpzp);+              return h$ap_2_2_fast();+            case (11):+              h$l3(b, h$$pD, h$baseZCGHCziBasezizpzp);+              return h$ap_2_2_fast();+            case (12):+              h$l3(b, h$$pE, h$baseZCGHCziBasezizpzp);+              return h$ap_2_2_fast();+            case (13):+              h$l3(b, h$$pF, h$baseZCGHCziBasezizpzp);+              return h$ap_2_2_fast();+            case (14):+              h$l3(h$c1(h$$pe, b), h$$pG, h$baseZCGHCziBasezizpzp);+              return h$ap_2_2_fast();+            default:+              h$l3(b, h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$$pJ, h$c1(h$$ph, c)), h$baseZCGHCziBasezizpzp);+              return h$ap_2_2_fast();+          };+        };+    };+  };+  return h$stack[h$sp];+};+function h$$pn()+{+  var a;+  var b;+  a = h$r1;+  b = h$r2;+  --h$sp;+  h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, a, b);+  return h$stack[h$sp];+};+function h$$pm()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$p1(h$$pn);+  h$l3(a, (-b | 0), h$baseZCGHCziShowzizdwitoszq);+  return h$ap_2_2_fast();+};+function h$$pl()+{+  var a;+  var b;+  a = h$r1;+  b = h$r2;+  --h$sp;+  h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, a, b);+  return h$stack[h$sp];+};+function h$$pk()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$p1(h$$pl);+  h$l3(a, (-b | 0), h$baseZCGHCziShowzizdwitoszq);+  return h$ap_2_2_fast();+};+function h$$pj()+{+  var a;+  var b;+  a = h$r1;+  b = h$r2;+  --h$sp;+  h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, a, b);+  return h$stack[h$sp];+};+function h$$pi()+{+  var a = h$r1.d1;+  h$bh();+  var b = (((-2147483648) / 10) | 0);+  var c = b;+  h$p1(h$$pj);+  h$l3(h$c2(h$$pk, a, ((-2147483648) - (10 * b))), (-c | 0), h$baseZCGHCziShowzizdwitoszq);+  return h$ap_2_2_fast();+};+function h$baseZCGHCziShowzizdwitos_e()+{+  var a = h$r2;+  var b = h$r3;+  if((a < 0))+  {+    var c = a;+    if((c === (-2147483648)))+    {+      h$r1 = h$baseZCGHCziShowzishows15;+      h$r2 = h$c1(h$$pi, b);+    }+    else+    {+      h$r1 = h$baseZCGHCziShowzishows15;+      h$r2 = h$c2(h$$pm, b, c);+    };+  }+  else+  {+    h$l3(b, a, h$baseZCGHCziShowzizdwitoszq);+    return h$ap_2_2_fast();+  };+  return h$stack[h$sp];+};+function h$$pp()+{+  var a;+  var b;+  a = h$r1;+  b = h$r2;+  --h$sp;+  h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, a, b);+  return h$stack[h$sp];+};+function h$$po()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$p1(h$$pp);+  h$l3(h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$baseZCGHCziShowzishows12, b), a, h$baseZCGHCziShowzizdwitos);+  return h$ap_2_2_fast();+};+function h$baseZCGHCziShowzizdwshowSignedInt_e()+{+  var a = h$r2;+  var b = h$r3;+  var c = h$r4;+  if((b < 0))+  {+    if((a > 6))+    {+      h$r1 = h$baseZCGHCziShowzishows13;+      h$r2 = h$c2(h$$po, b, c);+    }+    else+    {+      h$l3(c, b, h$baseZCGHCziShowzizdwitos);+      return h$ap_2_2_fast();+    };+  }+  else+  {+    h$l3(c, b, h$baseZCGHCziShowzizdwitos);+    return h$ap_2_2_fast();+  };+  return h$stack[h$sp];+};+function h$baseZCGHCziShowziDZCShow_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziShowziDZCShow_e()+{+  h$r1 = h$c3(h$baseZCGHCziShowziDZCShow_con_e, h$r2, h$r3, h$r4);+  return h$stack[h$sp];+};+var h$$baseZCGHCziShow_fz = h$str("[]");+function h$$pw()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(b, a);+  return h$ap_1_1_fast();+};+function h$$pv()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  h$bh();+  h$l3(h$c2(h$$pw, c, b.d3), d, a);+  return h$ap_2_2_fast();+};+function h$$pu()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  if((a.f.a === 1))+  {+    h$r1 = c;+  }+  else+  {+    var e = a.d1;+    h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$baseZCGHCziShowzishowListzuzu1, h$c4(h$$pv, b, d, e, a.d2));+  };+  return h$stack[h$sp];+};+function h$$pt()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$p4(a, c, b.d2, h$$pu);+  return h$e(h$r2);+};+function h$$ps()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  h$bh();+  var e = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$baseZCGHCziShowzishowListzuzu2, c);+  var f = h$c(h$$pt);+  f.d1 = a;+  f.d2 = h$d2(e, f);+  h$l2(d, f);+  return h$ap_1_1_fast();+};+function h$$pr()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  h$bh();+  h$l3(h$c3(h$$ps, a, c, b.d3), d, a);+  return h$ap_2_2_fast();+};+function h$$pq()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if((a.f.a === 1))+  {+    h$r4 = c;+    h$r3 = 0;+    h$r2 = h$$baseZCGHCziShow_fz();+    h$r1 = h$ghczmprimZCGHCziCStringziunpackAppendCStringzh;+    return h$ap_2_3_fast();+  }+  else+  {+    var d = a.d1;+    h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$baseZCGHCziShowzishowListzuzu3, h$c4(h$$pr, b, c, d, a.d2));+  };+  return h$stack[h$sp];+};+function h$baseZCGHCziShowzishowListzuzu_e()+{+  h$p3(h$r2, h$r4, h$$pq);+  return h$e(h$r3);+};+function h$$px()+{+  var a = h$r1;+  --h$sp;+  h$r1 = a.d1;+  return h$ap_0_0_fast();+};+function h$baseZCGHCziShowzishowsPrec_e()+{+  h$p1(h$$px);+  return h$e(h$r2);+};+function h$baseZCGHCziSTRefziSTRef_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziSTRefziSTRef_e()+{+  h$r1 = h$c1(h$baseZCGHCziSTRefziSTRef_con_e, h$r2);+  return h$stack[h$sp];+};+function h$$pT()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$l4(c, b, a, h$$qv);+  return h$ap_3_3_fast();+};+function h$$pS()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  h$sp -= 3;+  h$pp5(a, h$$pT);+  h$l3(b, b, h$integerzmgmpZCGHCziIntegerziTypezitimesInteger);+  return h$ap_2_2_fast();+};+function h$$pR()+{+  var a = h$r1;+  h$sp -= 3;+  h$pp4(h$$pS);+  h$l3(h$baseZCGHCziRealzieven2, a, h$integerzmgmpZCGHCziIntegerziTypeziquotInteger);+  return h$ap_2_2_fast();+};+function h$$pQ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$pp6(a, h$$pR);+  h$l3(h$baseZCGHCziRealzizdfEnumRatio1, b, h$integerzmgmpZCGHCziIntegerziTypeziminusInteger);+  return h$ap_2_2_fast();+};+function h$$pP()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 4;+  if(a)+  {+    h$l3(c, b, h$integerzmgmpZCGHCziIntegerziTypezitimesInteger);+    return h$ap_2_2_fast();+  }+  else+  {+    h$pp4(h$$pQ);+    h$l3(c, b, h$integerzmgmpZCGHCziIntegerziTypezitimesInteger);+    return h$ap_2_2_fast();+  };+};+function h$$pO()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$l4(c, b, a, h$$qv);+  return h$ap_3_3_fast();+};+function h$$pN()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  h$sp -= 3;+  h$pp5(a, h$$pO);+  h$l3(b, b, h$integerzmgmpZCGHCziIntegerziTypezitimesInteger);+  return h$ap_2_2_fast();+};+function h$$pM()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 4;+  if(a)+  {+    h$pp6(c, h$$pN);+    h$l3(h$baseZCGHCziRealzieven2, b, h$integerzmgmpZCGHCziIntegerziTypeziquotInteger);+    return h$ap_2_2_fast();+  }+  else+  {+    h$pp8(h$$pP);+    h$l3(h$baseZCGHCziRealzizdfEnumRatio1, b, h$integerzmgmpZCGHCziIntegerziTypezieqIntegerzh);+    return h$ap_2_2_fast();+  };+};+function h$$pL()+{+  var a = h$r1;+  h$sp -= 4;+  h$pp8(h$$pM);+  h$l3(h$baseZCGHCziRealzieven1, a, h$integerzmgmpZCGHCziIntegerziTypezieqIntegerzh);+  return h$ap_2_2_fast();+};+function h$$pK()+{+  var a = h$r3;+  h$p4(h$r2, h$r3, h$r4, h$$pL);+  h$l3(h$baseZCGHCziRealzieven2, a, h$integerzmgmpZCGHCziIntegerziTypeziremInteger);+  return h$ap_2_2_fast();+};+function h$$p1()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$l4(b, c, a, h$$qv);+  return h$ap_3_3_fast();+};+function h$$p0()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$pp6(a, h$$p1);+  h$l3(b, b, h$integerzmgmpZCGHCziIntegerziTypezitimesInteger);+  return h$ap_2_2_fast();+};+function h$$pZ()+{+  var a = h$r1;+  h$sp -= 2;+  h$pp2(h$$p0);+  h$l3(h$baseZCGHCziRealzieven2, a, h$integerzmgmpZCGHCziIntegerziTypeziquotInteger);+  return h$ap_2_2_fast();+};+function h$$pY()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if(a)+  {+    return h$e(b);+  }+  else+  {+    h$pp2(h$$pZ);+    h$l3(h$baseZCGHCziRealzizdfEnumRatio1, c, h$integerzmgmpZCGHCziIntegerziTypeziminusInteger);+    return h$ap_2_2_fast();+  };+};+function h$$pX()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(b, a, h$baseZCGHCziRealzizczuf2);+  return h$ap_2_2_fast();+};+function h$$pW()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$pX);+  h$l3(b, b, h$integerzmgmpZCGHCziIntegerziTypezitimesInteger);+  return h$ap_2_2_fast();+};+function h$$pV()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if(a)+  {+    h$pp2(h$$pW);+    h$l3(h$baseZCGHCziRealzieven2, b, h$integerzmgmpZCGHCziIntegerziTypeziquotInteger);+    return h$ap_2_2_fast();+  }+  else+  {+    h$pp4(h$$pY);+    h$l3(h$baseZCGHCziRealzizdfEnumRatio1, b, h$integerzmgmpZCGHCziIntegerziTypezieqIntegerzh);+    return h$ap_2_2_fast();+  };+};+function h$$pU()+{+  var a = h$r1;+  h$sp -= 3;+  h$pp4(h$$pV);+  h$l3(h$baseZCGHCziRealzieven1, a, h$integerzmgmpZCGHCziIntegerziTypezieqIntegerzh);+  return h$ap_2_2_fast();+};+function h$baseZCGHCziRealzizczuf2_e()+{+  var a = h$r3;+  h$p3(h$r2, h$r3, h$$pU);+  h$l3(h$baseZCGHCziRealzieven2, a, h$integerzmgmpZCGHCziIntegerziTypeziremInteger);+  return h$ap_2_2_fast();+};+var h$$qw = h$strta("Negative exponent");+function h$$p3()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if(a)+  {+    return h$e(h$baseZCGHCziRealzizdfEnumRatio1);+  }+  else+  {+    h$l3(c, b, h$baseZCGHCziRealzizczuf2);+    return h$ap_2_2_fast();+  };+};+function h$$p2()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if(a)+  {+    return h$e(h$baseZCGHCziRealzizc3);+  }+  else+  {+    h$pp4(h$$p3);+    h$l3(h$baseZCGHCziRealzieven1, b, h$integerzmgmpZCGHCziIntegerziTypezieqIntegerzh);+    return h$ap_2_2_fast();+  };+};+function h$baseZCGHCziRealzizczuzdszc2_e()+{+  var a = h$r3;+  h$p3(h$r2, h$r3, h$$p2);+  h$l3(h$baseZCGHCziRealzieven1, a, h$integerzmgmpZCGHCziIntegerziTypeziltIntegerzh);+  return h$ap_2_2_fast();+};+function h$baseZCGHCziRealzizc3_e()+{+  h$bh();+  h$l2(h$$qw, h$baseZCGHCziErrzierror);+  return h$ap_1_1_fast();+};+function h$$p5()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  switch (a)+  {+    case ((-1)):+      var d = b;+      if((d === (-2147483648)))+      {+        h$r1 = h$baseZCGHCziRealzioverflowError;+        return h$ap_0_0_fast();+      }+      else+      {+        h$r1 = ((d / (-1)) | 0);+      };+      break;+    case (0):+      h$r1 = h$baseZCGHCziRealzidivZZeroError;+      return h$ap_0_0_fast();+    default:+      h$r1 = ((b / c) | 0);+  };+  return h$stack[h$sp];+};+function h$$p4()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$p5);+  return h$e(b);+};+function h$baseZCGHCziRealzizdfIntegralIntzuzdcquot_e()+{+  h$p2(h$r3, h$$p4);+  return h$e(h$r2);+};+function h$$p7()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  h$r1 = (c % b);+  return h$stack[h$sp];+};+function h$$p6()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  switch (a)+  {+    case ((-1)):+      return h$e(h$baseZCGHCziRealzizdfIntegralInt1);+    case (0):+      h$r1 = h$baseZCGHCziRealzidivZZeroError;+      return h$ap_0_0_fast();+    default:+      h$p2(a, h$$p7);+      return h$e(b);+  };+};+function h$baseZCGHCziRealzizdfIntegralIntzuzdcrem_e()+{+  h$p2(h$r2, h$$p6);+  return h$e(h$r3);+};+function h$baseZCGHCziRealzizdwzdcdiv_e()+{+  switch (h$r3)+  {+    case ((-1)):+      var a = h$r2;+      if((a === (-2147483648)))+      {+        h$r1 = h$baseZCGHCziRealzioverflowError;+        return h$ap_0_0_fast();+      }+      else+      {+        h$l3((-1), a, h$ghczmprimZCGHCziClasseszidivIntzh);+        return h$ghczmprimZCGHCziClasseszidivIntzh_e;+      };+    case (0):+      h$r1 = h$baseZCGHCziRealzidivZZeroError;+      return h$ap_0_0_fast();+    default:+      h$r1 = h$ghczmprimZCGHCziClasseszidivIntzh;+      return h$ghczmprimZCGHCziClasseszidivIntzh_e;+  };+};+function h$$qa()+{+  var a = h$r1;+  --h$sp;+  h$r1 = a;+  return h$stack[h$sp];+};+function h$$p9()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p1(h$$qa);+  h$l3(a, b, h$baseZCGHCziRealzizdwzdcdiv);+  return h$ap_2_2_fast();+};+function h$$p8()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$p9);+  return h$e(b);+};+function h$baseZCGHCziRealzizdfIntegralIntzuzdcdiv_e()+{+  h$p2(h$r3, h$$p8);+  return h$e(h$r2);+};+function h$$qd()+{+  var a = h$r1;+  --h$sp;+  h$r1 = a;+  return h$stack[h$sp];+};+function h$$qc()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p1(h$$qd);+  h$l3(b, a, h$ghczmprimZCGHCziClasseszimodIntzh);+  return h$ghczmprimZCGHCziClasseszimodIntzh_e;+};+function h$$qb()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  switch (a)+  {+    case ((-1)):+      return h$e(h$baseZCGHCziRealzizdfIntegralInt1);+    case (0):+      h$r1 = h$baseZCGHCziRealzidivZZeroError;+      return h$ap_0_0_fast();+    default:+      h$p2(a, h$$qc);+      return h$e(b);+  };+};+function h$baseZCGHCziRealzizdfIntegralIntzuzdcmod_e()+{+  h$p2(h$r2, h$$qb);+  return h$e(h$r3);+};+function h$$qf()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  switch (a)+  {+    case ((-1)):+      var d = b;+      if((d === (-2147483648)))+      {+        return h$e(h$$qx);+      }+      else+      {+        var e = ((d / (-1)) | 0);+        h$r1 = h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, e, (d - ((-1) * e)));+      };+      break;+    case (0):+      h$r1 = h$baseZCGHCziRealzidivZZeroError;+      return h$ap_0_0_fast();+    default:+      var f = ((b / c) | 0);+      h$r1 = h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, f, (b - (c * f)));+  };+  return h$stack[h$sp];+};+function h$$qe()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$qf);+  return h$e(b);+};+function h$baseZCGHCziRealzizdfIntegralIntzuzdcquotRem_e()+{+  h$p2(h$r3, h$$qe);+  return h$e(h$r2);+};+function h$$qh()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  switch (a)+  {+    case ((-1)):+      var d = b;+      if((d === (-2147483648)))+      {+        return h$e(h$$qx);+      }+      else+      {+        if((d > 0))+        {+          var e = ((d - 1) | 0);+          var f = ((e / (-1)) | 0);+          var g = f;+          var h = (e - ((-1) * f));+          var i = ((h - 1) | 0);+          var j = ((i + 1) | 0);+          h$r1 = h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, ((g - 1) | 0), j);+        }+        else+        {+          if((d < 0))+          {+            var k = ((d / (-1)) | 0);+            h$r1 = h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, k, (d - ((-1) * k)));+          }+          else+          {+            var l = ((d / (-1)) | 0);+            h$r1 = h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, l, (d - ((-1) * l)));+          };+        };+      };+      break;+    case (0):+      h$r1 = h$baseZCGHCziRealzidivZZeroError;+      return h$ap_0_0_fast();+    default:+      if((b > 0))+      {+        if((c < 0))+        {+          var m = ((b - 1) | 0);+          var n = ((m / c) | 0);+          var o = n;+          var p = (m - (c * n));+          var q = ((p + c) | 0);+          var r = ((q + 1) | 0);+          h$r1 = h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, ((o - 1) | 0), r);+        }+        else+        {+          if((b < 0))+          {+            if((c > 0))+            {+              var s = ((b + 1) | 0);+              var t = ((s / c) | 0);+              var u = t;+              var v = (s - (c * t));+              var w = ((v + c) | 0);+              var x = ((w - 1) | 0);+              h$r1 = h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, ((u - 1) | 0), x);+            }+            else+            {+              var y = ((b / c) | 0);+              h$r1 = h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, y, (b - (c * y)));+            };+          }+          else+          {+            var z = ((b / c) | 0);+            h$r1 = h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, z, (b - (c * z)));+          };+        };+      }+      else+      {+        if((b < 0))+        {+          if((c > 0))+          {+            var A = ((b + 1) | 0);+            var B = ((A / c) | 0);+            var C = B;+            var D = (A - (c * B));+            var E = ((D + c) | 0);+            var F = ((E - 1) | 0);+            h$r1 = h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, ((C - 1) | 0), F);+          }+          else+          {+            var G = ((b / c) | 0);+            h$r1 = h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, G, (b - (c * G)));+          };+        }+        else+        {+          var H = ((b / c) | 0);+          h$r1 = h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, H, (b - (c * H)));+        };+      };+  };+  return h$stack[h$sp];+};+function h$$qg()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$qh);+  return h$e(b);+};+function h$baseZCGHCziRealzizdfIntegralIntzuzdcdivMod_e()+{+  h$p2(h$r3, h$$qg);+  return h$e(h$r2);+};+function h$$qi()+{+  var a = h$r1;+  --h$sp;+  h$l2(a, h$integerzmgmpZCGHCziIntegerziTypezismallInteger);+  return h$ap_1_1_fast();+};+function h$baseZCGHCziRealzizdfIntegralIntzuzdctoInteger_e()+{+  h$p1(h$$qi);+  return h$e(h$r2);+};+function h$$qk()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c2(h$baseZCGHCziRealziZCzv_con_e, a, h$baseZCGHCziRealzizdfEnumRatio1);+  return h$stack[h$sp];+};+function h$$qj()+{+  var a = h$r1;+  --h$sp;+  h$p1(h$$qk);+  h$l2(a, h$integerzmgmpZCGHCziIntegerziTypezismallInteger);+  return h$ap_1_1_fast();+};+function h$baseZCGHCziRealzizdfEnumRatiozuzdctoRational_e()+{+  h$p1(h$$qj);+  return h$e(h$r2);+};+function h$$qp()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = b;+  h$r2 = a;+  return h$stack[h$sp];+};+function h$$qo()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$p2(a, h$$qp);+  h$l3(b, c, h$integerzmgmpZCGHCziIntegerziTypeziquotInteger);+  return h$ap_2_2_fast();+};+function h$$qn()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 4;+  if(a)+  {+    h$r1 = h$baseZCGHCziRealzidivZZeroError;+    return h$ap_0_0_fast();+  }+  else+  {+    h$pp5(c, h$$qo);+    h$l3(c, b, h$integerzmgmpZCGHCziIntegerziTypeziquotInteger);+    return h$ap_2_2_fast();+  };+};+function h$$qm()+{+  var a = h$r1;+  h$sp -= 3;+  h$pp12(a, h$$qn);+  h$l3(h$baseZCGHCziRealzieven1, a, h$integerzmgmpZCGHCziIntegerziTypezieqIntegerzh);+  return h$ap_2_2_fast();+};+function h$$ql()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if(a)+  {+    h$r1 = h$baseZCGHCziRealziratioZZeroDenominatorError;+    return h$ap_0_0_fast();+  }+  else+  {+    h$pp4(h$$qm);+    h$l3(c, b, h$integerzmgmpZCGHCziIntegerziTypezigcdInteger);+    return h$ap_2_2_fast();+  };+};+function h$baseZCGHCziRealzizdwzdsreduce_e()+{+  var a = h$r3;+  h$p3(h$r2, h$r3, h$$ql);+  h$l3(h$baseZCGHCziRealzieven1, a, h$integerzmgmpZCGHCziIntegerziTypezieqIntegerzh);+  return h$ap_2_2_fast();+};+function h$baseZCGHCziRealziDZCFractional_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziRealziDZCFractional_e()+{+  h$r1 = h$c4(h$baseZCGHCziRealziDZCFractional_con_e, h$r2, h$r3, h$r4, h$r5);+  return h$stack[h$sp];+};+function h$baseZCGHCziRealziDZCIntegral_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziRealziDZCIntegral_e()+{+  h$r1 = h$c9(h$baseZCGHCziRealziDZCIntegral_con_e, h$r2, h$r3, h$r4, h$r5, h$r6, h$r7, h$r8, h$r9, h$r10);+  return h$stack[h$sp];+};+function h$baseZCGHCziRealziDZCReal_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziRealziDZCReal_e()+{+  h$r1 = h$c3(h$baseZCGHCziRealziDZCReal_con_e, h$r2, h$r3, h$r4);+  return h$stack[h$sp];+};+function h$baseZCGHCziRealziZCzv_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziRealziZCzv_e()+{+  h$r1 = h$c2(h$baseZCGHCziRealziZCzv_con_e, h$r2, h$r3);+  return h$stack[h$sp];+};+function h$$qr()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c2(h$baseZCGHCziRealziZCzv_con_e, b, a);+  return h$stack[h$sp];+};+function h$$qq()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$qr);+  h$r1 = b;+  return h$ap_0_0_fast();+};+function h$baseZCGHCziRealzizdWZCzv_e()+{+  h$p2(h$r3, h$$qq);+  h$r1 = h$r2;+  return h$ap_0_0_fast();+};+function h$baseZCGHCziRealzioverflowError_e()+{+  h$bh();+  return h$throw(h$baseZCGHCziExceptionzioverflowException, false);+};+function h$baseZCGHCziRealziratioZZeroDenominatorError_e()+{+  h$bh();+  return h$throw(h$baseZCGHCziExceptionziratioZZeroDenomException, false);+};+function h$baseZCGHCziRealzidivZZeroError_e()+{+  h$bh();+  return h$throw(h$baseZCGHCziExceptionzidivZZeroException, false);+};+function h$$qs()+{+  var a = h$r1;+  --h$sp;+  var b = a.d2;+  h$r1 = b.d1;+  return h$ap_0_0_fast();+};+function h$baseZCGHCziRealzizs_e()+{+  h$p1(h$$qs);+  return h$e(h$r2);+};+function h$$qt()+{+  var a = h$r1;+  --h$sp;+  var b = a.d2;+  h$r1 = b.d8;+  return h$ap_0_0_fast();+};+function h$baseZCGHCziRealzitoInteger_e()+{+  h$p1(h$$qt);+  return h$e(h$r2);+};+function h$$qu()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l3(b, a, h$baseZCGHCziRealzitoInteger);+  return h$ap_2_2_fast();+};+function h$baseZCGHCziRealzifromIntegral_e()+{+  h$p2(h$c2(h$$qu, h$r2, h$r4), h$ap_1_1);+  h$l2(h$r3, h$baseZCGHCziNumzifromInteger);+  return h$baseZCGHCziNumzifromInteger_e;+};+function h$$qy()+{+  var a = h$r1.d1;+  h$bh();+  h$l4(h$baseZCTextziParserCombinatorsziReadPzizdfMonadPzuzdcreturn, a, h$baseZCGHCziReadzizdfReadDoublezuzdsconvertFrac,+  h$baseZCGHCziReadzizdfReadDouble10);+  return h$ap_3_3_fast();+};+function h$baseZCGHCziReadzizdfReadDoublezuzdcreadsPrec_e()+{+  h$l2(h$c1(h$$qy, h$r2), h$baseZCTextziParserCombinatorsziReadPzirun);+  return h$ap_1_1_fast();+};+function h$baseZCGHCziReadzizdfReadDouble11_e()+{+  h$bh();+  h$l3(h$baseZCTextziParserCombinatorsziReadPzizdfMonadPzuzdcreturn, h$baseZCGHCziReadzizdfReadDouble2,+  h$baseZCGHCziReadzizdwa);+  return h$ap_2_2_fast();+};+function h$baseZCGHCziReadzizdfReadDoublezuzdsreadListDefault_e()+{+  h$l3(h$r2, h$baseZCGHCziReadzizdfReadDouble11, h$baseZCTextziParserCombinatorsziReadPzirun);+  return h$ap_2_2_fast();+};+function h$$qQ()+{+  var a = h$r1;+  --h$sp;+  h$r1 = -a;+  return h$stack[h$sp];+};+function h$$qP()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$qQ);+  return h$e(a);+};+function h$$qO()+{+  h$l2(h$c1(h$$qP, h$r2), h$r1.d1);+  return h$ap_1_1_fast();+};+function h$$qN()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$r4 = b.d2;+  h$r3 = c;+  h$r1 = a;+  return h$ap_3_3_fast();+};+function h$$qM()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$baseZCTextziReadziLexziexpect2);+  return h$ap_1_1_fast();+};+function h$$qL()+{+  return h$e(h$r1.d1);+};+function h$$qK()+{+  h$r3 = h$r1.d1;+  h$r1 = h$baseZCTextziParserCombinatorsziReadPziskipSpaceszuskip;+  return h$ap_2_2_fast();+};+function h$$qJ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 5)];+  var c = h$stack[(h$sp - 4)];+  var d = h$stack[(h$sp - 3)];+  var e = h$stack[(h$sp - 2)];+  var f = h$stack[(h$sp - 1)];+  h$sp -= 6;+  if((a.f.a === 1))+  {+    h$r1 = e;+  }+  else+  {+    h$l4(d, c, f, b);+    return h$ap_3_3_fast();+  };+  return h$stack[h$sp];+};+function h$$qI()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 6)];+  var c = h$stack[(h$sp - 5)];+  var d = h$stack[(h$sp - 4)];+  var e = h$stack[(h$sp - 2)];+  var f = h$stack[(h$sp - 1)];+  h$sp -= 7;+  var g = a;+  if((g === 45))+  {+    h$pp32(h$$qJ);+    return h$e(f);+  }+  else+  {+    h$l4(d, c, e, b);+    return h$ap_3_3_fast();+  };+};+function h$$qH()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 5)];+  var c = h$stack[(h$sp - 4)];+  var d = h$stack[(h$sp - 3)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 6;+  if((a.f.a === 1))+  {+    h$l4(d, c, e, b);+    return h$ap_3_3_fast();+  }+  else+  {+    var f = a.d1;+    h$pp96(a.d2, h$$qI);+    return h$e(f);+  };+};+function h$$qG()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 2)];+  h$sp -= 5;+  if((a.f.a === 5))+  {+    h$pp48(a, h$$qH);+    return h$e(a.d1);+  }+  else+  {+    h$l4(d, c, a, b);+    return h$ap_3_3_fast();+  };+};+function h$$qF()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  h$p5(a, c, d, b.d3, h$$qG);+  return h$e(h$r2);+};+function h$$qE()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$baseZCTextziReadziLexziexpect2);+  return h$ap_1_1_fast();+};+function h$$qD()+{+  return h$e(h$r1.d1);+};+function h$$qC()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$qB()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$p1(h$$qC);+  h$l3(b, a, h$baseZCGHCziReadzizdwa3);+  return h$ap_2_2_fast();+};+function h$$qA()+{+  h$r3 = h$r1.d1;+  h$r1 = h$baseZCTextziParserCombinatorsziReadPziskipSpaceszuskip;+  return h$ap_2_2_fast();+};+function h$$qz()+{+  var a = h$r1.d1;+  var b = h$r3;+  var c = h$c1(h$$qE, h$c4(h$$qF, a, h$r2, h$r3, h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, h$c1(h$$qK,+  h$c1(h$$qL, h$c1(h$$qM, h$c3(h$$qN, a, h$r2, h$c1(h$$qO, b))))))));+  h$l3(h$c2(h$$qB, h$r1.d2, h$r3), h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, h$c1(h$$qA, h$c1(h$$qD, c))),+  h$baseZCTextziParserCombinatorsziReadPzizdfMonadPlusPzuzdcmplus);+  return h$ap_2_2_fast();+};+function h$baseZCGHCziReadzizdfReadDouble10_e()+{+  var a = h$r3;+  var b = h$r4;+  var c = h$c(h$$qz);+  c.d1 = h$r2;+  c.d2 = c;+  h$l3(b, a, c);+  return h$ap_2_2_fast();+};+function h$baseZCGHCziReadzizdfReadDouble9_e()+{+  h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  return h$stack[h$sp];+};+var h$baseZCGHCziReadzizdfReadDouble8 = h$strta("Infinity");+var h$baseZCGHCziReadzizdfReadDouble7 = h$strta("NaN");+function h$baseZCGHCziReadzizdfReadDouble6_e()+{+  h$bh();+  h$r1 = NaN;+  return h$stack[h$sp];+};+function h$baseZCGHCziReadzizdfReadDouble5_e()+{+  h$l2(h$baseZCGHCziReadzizdfReadDouble6, h$r3);+  return h$ap_1_1_fast();+};+function h$baseZCGHCziReadzizdfReadDouble4_e()+{+  h$bh();+  h$r1 = Infinity;+  return h$stack[h$sp];+};+function h$baseZCGHCziReadzizdfReadDouble3_e()+{+  h$l2(h$baseZCGHCziReadzizdfReadDouble4, h$r3);+  return h$ap_1_1_fast();+};+function h$$qX()+{+  var a = h$r1;+  --h$sp;+  if(a)+  {+    h$r1 = h$baseZCGHCziReadzizdfReadDouble5;+    return h$ap_0_0_fast();+  }+  else+  {+    h$r1 = h$baseZCGHCziReadzizdfReadDouble9;+    return h$ap_0_0_fast();+  };+};+function h$$qW()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if(a)+  {+    h$r1 = h$baseZCGHCziReadzizdfReadDouble3;+    return h$ap_0_0_fast();+  }+  else+  {+    h$p1(h$$qX);+    h$l3(h$baseZCGHCziReadzizdfReadDouble7, b, h$baseZCGHCziBasezieqString);+    return h$ap_2_2_fast();+  };+};+function h$$qV()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  h$l3(a.d2, b, h$baseZCGHCziFloatzirationalToDouble);+  return h$baseZCGHCziFloatzirationalToDouble_e;+};+function h$$qU()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$qV);+  return h$e(a);+};+function h$$qT()+{+  h$l2(h$r1.d1, h$r3);+  return h$ap_1_1_fast();+};+function h$$qS()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$r1 = h$baseZCGHCziReadzizdfReadDouble3;+    return h$ap_0_0_fast();+  }+  else+  {+    h$r1 = h$c1(h$$qT, h$c1(h$$qU, a.d1));+  };+  return h$stack[h$sp];+};+function h$$qR()+{+  var a = h$r1;+  --h$sp;+  switch (a.f.a)+  {+    case (4):+      var b = a.d1;+      h$p2(b, h$$qW);+      h$l3(h$baseZCGHCziReadzizdfReadDouble8, b, h$baseZCGHCziBasezieqString);+      return h$ap_2_2_fast();+    case (6):+      h$p1(h$$qS);+      h$l4(a.d1, h$baseZCGHCziFloatzizdfRealFloatDouble2, h$baseZCGHCziFloatzizdfRealFloatDouble3,+      h$baseZCTextziReadziLexzizdwnumberToRangedRational);+      return h$baseZCTextziReadziLexzizdwnumberToRangedRational_e;+    default:+      h$r1 = h$baseZCGHCziReadzizdfReadDouble9;+      return h$ap_0_0_fast();+  };+};+function h$baseZCGHCziReadzizdfReadDoublezuzdsconvertFrac_e()+{+  h$p1(h$$qR);+  return h$e(h$r2);+};+function h$baseZCGHCziReadzizdfReadDouble2_e()+{+  h$l4(h$r3, h$r2, h$baseZCGHCziReadzizdfReadDoublezuzdsconvertFrac, h$baseZCGHCziReadzizdfReadDouble10);+  return h$ap_3_3_fast();+};+function h$baseZCGHCziReadzizdfReadDouble1_e()+{+  h$l2(h$baseZCGHCziReadzizdfReadDouble2, h$baseZCGHCziReadzizdwa);+  return h$ap_2_2_fast();+};+function h$$rc()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(b, a);+  return h$ap_1_1_fast();+};+function h$$rb()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if(a)+  {+    return h$e(b);+  }+  else+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$ra()+{+  var a = h$r1;+  h$sp -= 2;+  if((a.f.a === 3))+  {+    h$pp2(h$$rb);+    h$l3(h$baseZCGHCziReadzizdfReadZLZR10, a.d1, h$baseZCGHCziBasezieqString);+    return h$ap_2_2_fast();+  }+  else+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$q9()+{+  h$p2(h$r1.d1, h$$ra);+  return h$e(h$r2);+};+function h$$q8()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(h$c1(h$$q9, h$c2(h$$rc, a, b)), h$baseZCTextziReadziLexziexpect2);+  return h$ap_1_1_fast();+};+function h$$q7()+{+  return h$e(h$r1.d1);+};+function h$$q6()+{+  h$r3 = h$r1.d1;+  h$r1 = h$baseZCTextziParserCombinatorsziReadPziskipSpaceszuskip;+  return h$ap_2_2_fast();+};+function h$$q5()+{+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, h$c1(h$$q6, h$c1(h$$q7, h$c2(h$$q8, h$r1.d1, h$r2))));+  return h$stack[h$sp];+};+function h$$q4()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l3(h$c1(h$$q5, b), h$baseZCTextziParserCombinatorsziReadPrecziminPrec, a);+  return h$ap_2_2_fast();+};+function h$$q3()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if(a)+  {+    return h$e(b);+  }+  else+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$q2()+{+  var a = h$r1;+  h$sp -= 2;+  if((a.f.a === 3))+  {+    h$pp2(h$$q3);+    h$l3(h$baseZCGHCziReadzizdfReadZLZR12, a.d1, h$baseZCGHCziBasezieqString);+    return h$ap_2_2_fast();+  }+  else+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$q1()+{+  h$p2(h$r1.d1, h$$q2);+  return h$e(h$r2);+};+function h$$q0()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(h$c1(h$$q1, h$c2(h$$q4, a, b)), h$baseZCTextziReadziLexziexpect2);+  return h$ap_1_1_fast();+};+function h$$qZ()+{+  return h$e(h$r1.d1);+};+function h$$qY()+{+  h$r3 = h$r1.d1;+  h$r1 = h$baseZCTextziParserCombinatorsziReadPziskipSpaceszuskip;+  return h$ap_2_2_fast();+};+function h$baseZCGHCziReadzizdwa3_e()+{+  h$r1 = h$c1(h$$qY, h$c1(h$$qZ, h$c2(h$$q0, h$r2, h$r3)));+  return h$stack[h$sp];+};+function h$$rG()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$ghczmprimZCGHCziTypesziZMZN, a);+  return h$ap_1_1_fast();+};+function h$$rF()+{+  var a = h$r1.d1;+  h$l2(h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$r1.d2, h$r2), a);+  return h$ap_1_1_fast();+};+function h$$rE()+{+  var a = h$r1.d1;+  h$l3(h$c2(h$$rF, h$r1.d2, h$r2), true, a);+  return h$ap_2_2_fast();+};+function h$$rD()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$bh();+  h$l3(h$c2(h$$rE, c, b.d2), h$baseZCTextziParserCombinatorsziReadPrecziminPrec, a);+  return h$ap_2_2_fast();+};+function h$$rC()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if(a)+  {+    return h$e(b);+  }+  else+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$rB()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if((a.f.a === 1))+  {+    h$p2(c, h$$rC);+    return h$e(b);+  }+  else+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$rA()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    return h$e(b);+  }+  else+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$rz()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 5;+  switch (a)+  {+    case (44):+      h$pp6(c, h$$rB);+      return h$e(d);+    case (93):+      h$p2(b, h$$rA);+      return h$e(d);+    default:+      h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$ry()+{+  var a = h$r1;+  h$sp -= 4;+  if((a.f.a === 1))+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  }+  else+  {+    var b = a.d1;+    h$pp24(a.d2, h$$rz);+    return h$e(b);+  };+  return h$stack[h$sp];+};+function h$$rx()+{+  var a = h$r1;+  h$sp -= 4;+  if((a.f.a === 3))+  {+    h$pp8(h$$ry);+    return h$e(a.d1);+  }+  else+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$rw()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$p4(a, c, b.d2, h$$rx);+  return h$e(h$r2);+};+function h$$rv()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$baseZCTextziReadziLexziexpect2);+  return h$ap_1_1_fast();+};+function h$$ru()+{+  return h$e(h$r1.d1);+};+function h$$rt()+{+  h$r3 = h$r1.d1;+  h$r1 = h$baseZCTextziParserCombinatorsziReadPziskipSpaceszuskip;+  return h$ap_2_2_fast();+};+function h$$rs()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = h$r3;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, h$c1(h$$rt, h$c1(h$$ru, h$c1(h$$rv, h$c3(h$$rw, h$r2,+  h$c1(h$$rG, c), h$c3(h$$rD, a, b, c))))));+  return h$stack[h$sp];+};+function h$$rr()+{+  h$l2(h$r3, h$r1.d1);+  return h$ap_1_1_fast();+};+function h$$rq()+{+  var a = h$r1.d1;+  h$l2(h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$r1.d2, h$r2), a);+  return h$ap_1_1_fast();+};+function h$$rp()+{+  var a = h$r1.d1;+  h$l3(h$c2(h$$rq, h$r1.d2, h$r2), true, a);+  return h$ap_2_2_fast();+};+function h$$ro()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$bh();+  h$l3(h$c2(h$$rp, c, b.d2), h$baseZCTextziParserCombinatorsziReadPrecziminPrec, a);+  return h$ap_2_2_fast();+};+function h$$rn()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(b, a, h$baseZCTextziParserCombinatorsziReadPzizdfMonadPlusPzuzdcmplus);+  return h$ap_2_2_fast();+};+function h$$rm()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  h$bh();+  h$p2(h$c3(h$$ro, a, c, d), h$$rn);+  h$l3(d, false, c);+  return h$ap_2_2_fast();+};+function h$$rl()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if(a)+  {+    return h$e(b);+  }+  else+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$rk()+{+  var a = h$r1;+  h$sp -= 2;+  if((a.f.a === 3))+  {+    h$pp2(h$$rl);+    h$l3(h$$rI, a.d1, h$baseZCGHCziBasezieqString);+    return h$ap_2_2_fast();+  }+  else+  {+    h$r1 = h$baseZCTextziParserCombinatorsziReadPziFail;+  };+  return h$stack[h$sp];+};+function h$$rj()+{+  h$p2(h$r1.d1, h$$rk);+  return h$e(h$r2);+};+function h$$ri()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$bh();+  h$l2(h$c1(h$$rj, h$c3(h$$rm, a, c, b.d2)), h$baseZCTextziReadziLexziexpect2);+  return h$ap_1_1_fast();+};+function h$$rh()+{+  return h$e(h$r1.d1);+};+function h$$rg()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, a);+  return h$stack[h$sp];+};+function h$$rf()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$p1(h$$rg);+  h$l3(b, a, h$baseZCGHCziReadzizdwa3);+  return h$ap_2_2_fast();+};+function h$$re()+{+  h$r3 = h$r1.d1;+  h$r1 = h$baseZCTextziParserCombinatorsziReadPziskipSpaceszuskip;+  return h$ap_2_2_fast();+};+function h$$rd()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = h$c3(h$$ri, a, b.d1, h$r2);+  h$l3(h$c2(h$$rf, b.d2, h$r2), h$c1(h$baseZCTextziParserCombinatorsziReadPziLook_con_e, h$c1(h$$re, h$c1(h$$rh, c))),+  h$baseZCTextziParserCombinatorsziReadPzizdfMonadPlusPzuzdcmplus);+  return h$ap_2_2_fast();+};+function h$baseZCGHCziReadzizdwa_e()+{+  var a = h$r2;+  var b = h$r3;+  var c = h$c(h$$rs);+  c.d1 = h$r2;+  c.d2 = c;+  var d = h$c(h$$rr);+  var e = h$c(h$$rd);+  d.d1 = e;+  e.d1 = a;+  e.d2 = h$d2(c, d);+  h$l2(b, e);+  return h$ap_1_1_fast();+};+function h$baseZCGHCziReadziDZCRead_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziReadziDZCRead_e()+{+  h$r1 = h$c4(h$baseZCGHCziReadziDZCRead_con_e, h$r2, h$r3, h$r4, h$r5);+  return h$stack[h$sp];+};+function h$baseZCGHCziPtrziPtr_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziPtrziPtr_e()+{+  h$r1 = h$c2(h$baseZCGHCziPtrziPtr_con_e, h$r2, h$r3);+  return h$stack[h$sp];+};+function h$$rK()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  h$r1 = ((b + c) | 0);+  return h$stack[h$sp];+};+function h$$rJ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$rK);+  return h$e(b);+};+function h$baseZCGHCziNumzizdfNumIntzuzdczp_e()+{+  h$p2(h$r3, h$$rJ);+  return h$e(h$r2);+};+function h$$rM()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$mulInt32(b, a);+  return h$stack[h$sp];+};+function h$$rL()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$rM);+  return h$e(b);+};+function h$baseZCGHCziNumzizdfNumIntzuzdczt_e()+{+  h$p2(h$r3, h$$rL);+  return h$e(h$r2);+};+function h$$rO()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  h$r1 = ((b - c) | 0);+  return h$stack[h$sp];+};+function h$$rN()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$rO);+  return h$e(b);+};+function h$baseZCGHCziNumzizdfNumIntzuzdczm_e()+{+  h$p2(h$r3, h$$rN);+  return h$e(h$r2);+};+function h$$rP()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  h$r1 = (-b | 0);+  return h$stack[h$sp];+};+function h$baseZCGHCziNumzizdfNumIntzuzdcnegate_e()+{+  h$p1(h$$rP);+  return h$e(h$r2);+};+function h$$rQ()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  if((b >= 0))+  {+    h$r1 = a;+  }+  else+  {+    h$r1 = (-b | 0);+  };+  return h$stack[h$sp];+};+function h$baseZCGHCziNumzizdfNumIntzuzdcabs_e()+{+  h$p1(h$$rQ);+  return h$e(h$r2);+};+function h$$rR()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  if((b < 0))+  {+    return h$e(h$baseZCGHCziNumzizdfNumInt1);+  }+  else+  {+    var c = b;+    if((c === 0))+    {+      return h$e(h$baseZCGHCziNumzizdfNumInt2);+    }+    else+    {+      return h$e(h$baseZCGHCziNumzizdfNumInt3);+    };+  };+};+function h$baseZCGHCziNumzizdfNumIntzuzdcsignum_e()+{+  h$p1(h$$rR);+  return h$e(h$r2);+};+function h$$rS()+{+  var a = h$r1;+  --h$sp;+  h$r1 = a;+  return h$stack[h$sp];+};+function h$baseZCGHCziNumzizdfNumIntzuzdcfromInteger_e()+{+  h$p1(h$$rS);+  h$r1 = h$integerzmgmpZCGHCziIntegerziTypeziintegerToInt;+  return h$ap_1_1_fast();+};+function h$baseZCGHCziNumziDZCNum_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziNumziDZCNum_e()+{+  h$r1 = h$c7(h$baseZCGHCziNumziDZCNum_con_e, h$r2, h$r3, h$r4, h$r5, h$r6, h$r7, h$r8);+  return h$stack[h$sp];+};+function h$$rT()+{+  var a = h$r1;+  --h$sp;+  var b = a.d2;+  h$r1 = b.d1;+  return h$ap_0_0_fast();+};+function h$baseZCGHCziNumzizt_e()+{+  h$p1(h$$rT);+  return h$e(h$r2);+};+function h$$rU()+{+  var a = h$r1;+  --h$sp;+  h$r1 = a.d1;+  return h$ap_0_0_fast();+};+function h$baseZCGHCziNumzizp_e()+{+  h$p1(h$$rU);+  return h$e(h$r2);+};+function h$$rV()+{+  var a = h$r1;+  --h$sp;+  var b = a.d2;+  h$r1 = b.d6;+  return h$ap_0_0_fast();+};+function h$baseZCGHCziNumzifromInteger_e()+{+  h$p1(h$$rV);+  return h$e(h$r2);+};+function h$baseZCGHCziMVarziMVar_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziMVarziMVar_e()+{+  h$r1 = h$c1(h$baseZCGHCziMVarziMVar_con_e, h$r2);+  return h$stack[h$sp];+};+function h$$rW()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$r1 = h$$sE;+    return h$ap_0_0_fast();+  }+  else+  {+    var c = a.d1;+    var d = a.d2;+    var e = b;+    if((e === 0))+    {+      h$r1 = c;+      return h$ap_0_0_fast();+    }+    else+    {+      h$l3(((e - 1) | 0), d, h$baseZCGHCziListziznznzusub);+      return h$ap_2_2_fast();+    };+  };+};+function h$baseZCGHCziListziznznzusub_e()+{+  h$p2(h$r3, h$$rW);+  return h$e(h$r2);+};+function h$$rY()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  if(a)+  {+    h$r1 = true;+  }+  else+  {+    h$l4(d, c, b, h$baseZCGHCziListzielem);+    return h$ap_3_3_fast();+  };+  return h$stack[h$sp];+};+function h$$rX()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if((a.f.a === 1))+  {+    h$r1 = false;+  }+  else+  {+    var d = a.d1;+    h$pp12(a.d2, h$$rY);+    h$p3(d, c, h$ap_2_2);+    h$l2(b, h$ghczmprimZCGHCziClasseszizeze);+    return h$ghczmprimZCGHCziClasseszizeze_e;+  };+  return h$stack[h$sp];+};+function h$baseZCGHCziListzielem_e()+{+  h$p3(h$r2, h$r3, h$$rX);+  return h$e(h$r4);+};+function h$$r0()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if(a)+  {+    h$l3(c, b, h$baseZCGHCziListziall);+    return h$ap_2_2_fast();+  }+  else+  {+    h$r1 = false;+  };+  return h$stack[h$sp];+};+function h$$rZ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$r1 = true;+  }+  else+  {+    var c = a.d1;+    h$pp6(a.d2, h$$r0);+    h$l2(c, b);+    return h$ap_1_1_fast();+  };+  return h$stack[h$sp];+};+function h$baseZCGHCziListziall_e()+{+  h$p2(h$r2, h$$rZ);+  return h$e(h$r3);+};+function h$$r8()+{+  var a;+  var b;+  a = h$r1;+  b = h$r2;+  --h$sp;+  h$r1 = h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, a, b);+  return h$stack[h$sp];+};+function h$$r7()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$p1(h$$r8);+  h$l3(b, a, h$baseZCGHCziListzizdwbreak);+  return h$ap_2_2_fast();+};+function h$$r6()+{+  var a = h$r1;+  --h$sp;+  return h$e(a.d2);+};+function h$$r5()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$r6);+  return h$e(a);+};+function h$$r4()+{+  var a = h$r1;+  --h$sp;+  return h$e(a.d1);+};+function h$$r3()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$r4);+  return h$e(a);+};+function h$$r2()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 2)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 5;+  if(a)+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+    h$r2 = c;+  }+  else+  {+    var f = h$c2(h$$r7, b, e);+    h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, d, h$c1(h$$r3, f));+    h$r2 = h$c1(h$$r5, f);+  };+  return h$stack[h$sp];+};+function h$$r1()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+    h$r2 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    var c = a.d1;+    h$pp30(a, c, a.d2, h$$r2);+    h$l2(c, b);+    return h$ap_1_1_fast();+  };+  return h$stack[h$sp];+};+function h$baseZCGHCziListzizdwbreak_e()+{+  h$p2(h$r2, h$$r1);+  return h$e(h$r3);+};+function h$$sg()+{+  var a;+  var b;+  a = h$r1;+  b = h$r2;+  --h$sp;+  h$r1 = h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, a, b);+  return h$stack[h$sp];+};+function h$$sf()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$p1(h$$sg);+  h$l3(b, a, h$baseZCGHCziListzizdwspan);+  return h$ap_2_2_fast();+};+function h$$se()+{+  var a = h$r1;+  --h$sp;+  return h$e(a.d2);+};+function h$$sd()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$se);+  return h$e(a);+};+function h$$sc()+{+  var a = h$r1;+  --h$sp;+  return h$e(a.d1);+};+function h$$sb()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$sc);+  return h$e(a);+};+function h$$sa()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 2)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 5;+  if(a)+  {+    var f = h$c2(h$$sf, b, e);+    h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, d, h$c1(h$$sb, f));+    h$r2 = h$c1(h$$sd, f);+  }+  else+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+    h$r2 = c;+  };+  return h$stack[h$sp];+};+function h$$r9()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+    h$r2 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    var c = a.d1;+    h$pp30(a, c, a.d2, h$$sa);+    h$l2(c, b);+    return h$ap_1_1_fast();+  };+  return h$stack[h$sp];+};+function h$baseZCGHCziListzizdwspan_e()+{+  h$p2(h$r2, h$$r9);+  return h$e(h$r3);+};+function h$$si()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  if(a)+  {+    h$l3(d, b, h$baseZCGHCziListzidropWhile);+    return h$ap_2_2_fast();+  }+  else+  {+    h$r1 = c;+  };+  return h$stack[h$sp];+};+function h$$sh()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    var c = a.d1;+    h$pp14(a, a.d2, h$$si);+    h$l2(c, b);+    return h$ap_1_1_fast();+  };+  return h$stack[h$sp];+};+function h$baseZCGHCziListzidropWhile_e()+{+  h$p2(h$r2, h$$sh);+  return h$e(h$r3);+};+function h$$sj()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$r1 = b;+  }+  else+  {+    var c = a.d2;+    h$l3(((b + 1) | 0), c, h$baseZCGHCziListzizdwlenAcc);+    return h$ap_2_2_fast();+  };+  return h$stack[h$sp];+};+function h$baseZCGHCziListzizdwlenAcc_e()+{+  h$p2(h$r3, h$$sj);+  return h$e(h$r2);+};+function h$$su()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$bh();+  h$l4(b.d2, c, a, h$baseZCGHCziListzizzipWith);+  return h$ap_3_3_fast();+};+function h$$st()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$bh();+  h$l3(b.d2, c, a);+  return h$ap_2_2_fast();+};+function h$$ss()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    var e = a.d1;+    h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$c3(h$$st, b, c, e), h$c3(h$$su, b, d, a.d2));+  };+  return h$stack[h$sp];+};+function h$$sr()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    var c = a.d1;+    h$pp14(c, a.d2, h$$ss);+    return h$e(b);+  };+  return h$stack[h$sp];+};+function h$$sq()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$bh();+  h$l3(b.d2, c, a);+  return h$ap_2_2_fast();+};+function h$$sp()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 5)];+  var c = h$stack[(h$sp - 4)];+  var d = h$stack[(h$sp - 3)];+  var e = h$stack[(h$sp - 2)];+  var f = h$stack[(h$sp - 1)];+  h$sp -= 6;+  if((a.f.a === 1))+  {+    h$r1 = c;+    return h$ap_0_0_fast();+  }+  else+  {+    var g = a.d1;+    h$l4(h$c3(h$$sq, d, f, a.d2), g, e, b);+    return h$ap_3_3_fast();+  };+};+function h$$so()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 5;+  if((a.f.a === 1))+  {+    h$r1 = b;+    return h$ap_0_0_fast();+  }+  else+  {+    var d = a.d1;+    h$pp56(d, a.d2, h$$sp);+    return h$e(c);+  };+};+function h$$sn()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$p5(a, c, b.d2, h$r3, h$$so);+  return h$e(h$r2);+};+function h$$sm()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l3(b, a, h$baseZCGHCziListzizzip);+  return h$ap_2_2_fast();+};+function h$$sl()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    var d = a.d1;+    h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, b, d), h$c2(h$$sm, c, a.+    d2));+  };+  return h$stack[h$sp];+};+function h$$sk()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    var c = a.d1;+    h$p3(c, a.d2, h$$sl);+    return h$e(b);+  };+  return h$stack[h$sp];+};+function h$baseZCGHCziListzizzipWith_e()+{+  h$p3(h$r2, h$r4, h$$sr);+  return h$e(h$r3);+};+function h$baseZCGHCziListzifoldr2_e()+{+  var a = h$r3;+  var b = h$r4;+  var c = h$r5;+  var d = h$c(h$$sn);+  d.d1 = h$r2;+  d.d2 = h$d2(a, d);+  h$l3(c, b, d);+  return h$ap_2_2_fast();+};+function h$baseZCGHCziListzizzip_e()+{+  h$p2(h$r3, h$$sk);+  return h$e(h$r2);+};+function h$$sy()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  if(a)+  {+    h$l3(d, c, b);+    return h$ap_2_2_fast();+  }+  else+  {+    h$r1 = d;+    return h$ap_0_0_fast();+  };+};+function h$$sx()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l3(b, a, h$baseZCGHCziListzifilter);+  return h$ap_2_2_fast();+};+function h$$sw()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  if(a)+  {+    h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, c, h$c2(h$$sx, b, d));+  }+  else+  {+    h$l3(d, b, h$baseZCGHCziListzifilter);+    return h$ap_2_2_fast();+  };+  return h$stack[h$sp];+};+function h$$sv()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    var c = a.d1;+    h$pp14(c, a.d2, h$$sw);+    h$l2(c, b);+    return h$ap_1_1_fast();+  };+  return h$stack[h$sp];+};+function h$baseZCGHCziListzifilterFB_e()+{+  h$p4(h$r2, h$r4, h$r5, h$$sy);+  h$l2(h$r4, h$r3);+  return h$ap_1_1_fast();+};+function h$baseZCGHCziListzifilter_e()+{+  h$p2(h$r2, h$$sv);+  return h$e(h$r3);+};+var h$$sC = h$strta("Prelude.cycle: empty list");+var h$$sD = h$strta("Prelude.(!!): negative index\n");+function h$$sz()+{+  h$bh();+  h$l2(h$$sF, h$baseZCGHCziErrzierror);+  return h$ap_1_1_fast();+};+var h$$sF = h$strta("Prelude.(!!): index too large\n");+function h$baseZCGHCziListzicycle1_e()+{+  h$bh();+  h$l2(h$$sC, h$baseZCGHCziErrzierror);+  return h$ap_1_1_fast();+};+function h$baseZCGHCziListziznzn1_e()+{+  h$bh();+  h$l2(h$$sD, h$baseZCGHCziErrzierror);+  return h$ap_1_1_fast();+};+function h$$sB()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l3(b, a, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+function h$$sA()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    return h$e(h$baseZCGHCziListzicycle1);+  }+  else+  {+    var b = h$c(h$$sB);+    b.d1 = a;+    b.d2 = b;+    return h$e(b);+  };+};+function h$baseZCGHCziListzicycle_e()+{+  h$p1(h$$sA);+  return h$e(h$r2);+};+function h$$sH()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var d = a.d1;+  var e = h$hs_eqInt64(b, c, d, a.d2);+  h$r1 = (e ? true : false);+  return h$stack[h$sp];+};+function h$$sG()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a.d1;+  h$p3(c, a.d2, h$$sH);+  return h$e(b);+};+function h$baseZCGHCziIntzizdfEqInt64zuzdczeze_e()+{+  h$p2(h$r3, h$$sG);+  return h$e(h$r2);+};+function h$baseZCGHCziIntziI32zh_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIntziI32zh_e()+{+  h$r1 = h$r2;+  return h$stack[h$sp];+};+function h$baseZCGHCziIntziI64zh_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIntziI64zh_e()+{+  h$r1 = h$c2(h$baseZCGHCziIntziI64zh_con_e, h$r2, h$r3);+  return h$stack[h$sp];+};+var h$baseZCGHCziIOziHandleziTypeszishowHandle2 = h$strta("{handle: ");+function h$baseZCGHCziIOziHandleziTypesziNewlineMode_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziHandleziTypesziNewlineMode_e()+{+  h$r1 = h$c2(h$baseZCGHCziIOziHandleziTypesziNewlineMode_con_e, h$r2, h$r3);+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziHandleziTypesziFileHandle_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziHandleziTypesziFileHandle_e()+{+  h$r1 = h$c2(h$baseZCGHCziIOziHandleziTypesziFileHandle_con_e, h$r2, h$r3);+  return h$stack[h$sp];+};+function h$$sI()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c2(h$baseZCGHCziIOziHandleziTypesziFileHandle_con_e, b, a.d1);+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziHandleziTypeszizdWFileHandle_e()+{+  h$p2(h$r2, h$$sI);+  return h$e(h$r3);+};+function h$baseZCGHCziIOziHandleziTypesziHandlezuzu_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziHandleziTypesziHandlezuzu_e()+{+  h$r1 = h$c16(h$baseZCGHCziIOziHandleziTypesziHandlezuzu_con_e, h$r2, h$r3, h$r4, h$r5, h$r6, h$r7, h$r8, h$r9, h$r10,+  h$r11, h$r12, h$r13, h$r14, h$r15, h$r16, h$r17);+  return h$stack[h$sp];+};+function h$$sN()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 15)];+  var c = h$stack[(h$sp - 14)];+  var d = h$stack[(h$sp - 13)];+  var e = h$stack[(h$sp - 12)];+  var f = h$stack[(h$sp - 11)];+  var g = h$stack[(h$sp - 10)];+  var h = h$stack[(h$sp - 9)];+  var i = h$stack[(h$sp - 8)];+  var j = h$stack[(h$sp - 7)];+  var k = h$stack[(h$sp - 6)];+  var l = h$stack[(h$sp - 5)];+  var m = h$stack[(h$sp - 4)];+  var n = h$stack[(h$sp - 3)];+  var o = h$stack[(h$sp - 2)];+  var p = h$stack[(h$sp - 1)];+  h$sp -= 16;+  h$r1 = h$c16(h$baseZCGHCziIOziHandleziTypesziHandlezuzu_con_e, b, c, d, f, e, h, g, i, j, a.d1, k, l, m, n, o, p);+  return h$stack[h$sp];+};+function h$$sM()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 7)];+  h$sp -= 16;+  var c = a.d1;+  h$sp += 16;+  h$stack[(h$sp - 7)] = c;+  h$stack[h$sp] = h$$sN;+  return h$e(b);+};+function h$$sL()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 8)];+  h$sp -= 16;+  var c = a.d1;+  h$sp += 16;+  h$stack[(h$sp - 8)] = c;+  h$stack[h$sp] = h$$sM;+  return h$e(b);+};+function h$$sK()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 9)];+  h$sp -= 16;+  var c = a.d1;+  h$sp += 16;+  h$stack[(h$sp - 9)] = c;+  h$stack[h$sp] = h$$sL;+  return h$e(b);+};+function h$$sJ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 11)];+  h$sp -= 16;+  h$sp += 16;+  h$stack[(h$sp - 11)] = a;+  h$stack[h$sp] = h$$sK;+  return h$e(b);+};+function h$baseZCGHCziIOziHandleziTypeszizdWHandlezuzu_e()+{+  h$p16(h$r2, h$r3, h$r4, h$r6, h$r7, h$r8, h$r9, h$r10, h$r11, h$r12, h$r13, h$r14, h$r15, h$r16, h$r17, h$$sJ);+  h$r1 = h$r5;+  return h$ap_0_0_fast();+};+function h$baseZCGHCziIOziHandleziTypesziLF_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziHandleziTypesziBlockBuffering_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziHandleziTypesziBlockBuffering_e()+{+  h$r1 = h$c1(h$baseZCGHCziIOziHandleziTypesziBlockBuffering_con_e, h$r2);+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziHandleziTypesziLineBuffering_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziHandleziTypesziNoBuffering_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziHandleziTypesziWriteHandle_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziHandleziTypesziBufferListNil_con_e()+{+  return h$stack[h$sp];+};+function h$$sW()+{+  var a = h$stack[(h$sp - 4)];+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 5;+  h$l5(d, c, b, a, h$baseZCGHCziIOziHandleziInternalszizdwa2);+  return h$ap_gen_fast(1029);+};+function h$$sV()+{+  var a = h$stack[(h$sp - 5)];+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 2)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 10;+  if(h$hs_eqWord64(b, c, (-645907477), (-1617761578)))+  {+    if(h$hs_eqWord64(d, e, (-980415011), (-840439589)))+    {+      h$pp16(h$$sW);+      return h$killThread(h$currentThread, a);+    }+    else+    {+      return h$throw(a, false);+    };+  }+  else+  {+    return h$throw(a, false);+  };+};+function h$$sU()+{+  var a = h$r1;+  --h$sp;+  h$l2(a, h$baseZCGHCziIOziExceptionziioError);+  return h$ap_2_1_fast();+};+function h$$sT()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 6)];+  var c = h$stack[(h$sp - 5)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 7;+  var e = a.d1;+  var f = a.d2;+  var g = f.d1;+  var h = f.d2;+  var i = f.d3;+  if(h$hs_eqWord64(e, g, 1685460941, (-241344014)))+  {+    if(h$hs_eqWord64(h, i, (-1787550655), (-601376313)))+    {+      h$p1(h$$sU);+      h$l4(c, b, d, h$baseZCGHCziIOziHandleziInternalsziaugmentIOError);+      return h$ap_3_3_fast();+    }+    else+    {+      h$sp += 9;+      h$stack[(h$sp - 3)] = e;+      h$stack[(h$sp - 2)] = g;+      h$stack[(h$sp - 1)] = h;+      h$stack[h$sp] = i;+      ++h$sp;+      return h$$sV;+    };+  }+  else+  {+    h$sp += 9;+    h$stack[(h$sp - 3)] = e;+    h$stack[(h$sp - 2)] = g;+    h$stack[(h$sp - 1)] = h;+    h$stack[h$sp] = i;+    ++h$sp;+    return h$$sV;+  };+};+function h$$sS()+{+  var a = h$r1;+  h$sp -= 5;+  var b = a.d1;+  h$pp112(a, a.d2, h$$sT);+  ++h$sp;+  h$stack[h$sp] = h$ap_1_0;+  h$l2(b, h$baseZCGHCziExceptionzizdp1Exception);+  return h$baseZCGHCziExceptionzizdp1Exception_e;+};+function h$$sR()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 6;+  h$pp16(h$$sS);+  return h$e(a);+};+function h$$sQ()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = b.d3;+  h$p6(a, c, d, e, h$r2, h$$sR);+  return h$putMVar(e, b.d4);+};+function h$$sP()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(b, a);+  return h$ap_1_1_fast();+};+function h$$sO()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 2)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 5;+  return h$catch(h$c2(h$$sP, d, a), h$c5(h$$sQ, b, c, d, e, a));+};+function h$baseZCGHCziIOziHandleziInternalszizdwa2_e()+{+  h$p5(h$r2, h$r3, h$r4, h$r5, h$$sO);+  return h$takeMVar(h$r5);+};+var h$$um = h$strta("codec_state");+var h$$un = h$strta("handle is finalized");+var h$$uo = h$strta("handle is not open for writing");+function h$$s1()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = a;+  return h$stack[h$sp];+};+function h$$s0()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a.d1;+  h$p2(a.d2, h$$s1);+  return h$putMVar(b, c);+};+function h$$sZ()+{+  var a = h$r1;+  h$sp -= 2;+  h$pp2(h$$s0);+  return h$e(a);+};+function h$$sY()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var e = a.d1;+  h$p2(e, h$$sZ);+  h$l5(e, d, c, b, h$baseZCGHCziIOziHandleziInternalszizdwa2);+  return h$ap_gen_fast(1029);+};+function h$$sX()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  h$p4(a, c, b.d3, h$$sY);+  return h$e(d);+};+function h$baseZCGHCziIOziHandleziInternalsziwithHandlezq1_e()+{+  var a = h$r2;+  var b = h$r3;+  var c = h$r4;+  var d = h$r5;+  var e = h$maskStatus();+  var f = h$c4(h$$sX, a, b, c, d);+  var g = e;+  if((g === 0))+  {+    return h$maskAsync(f);+  }+  else+  {+    h$r1 = f;+    return h$ap_1_0_fast();+  };+};+function h$$tw()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, b, a);+  return h$stack[h$sp];+};+function h$$tv()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  var c = a.d2;+  var d = c.d1;+  var e = c.d2;+  var f = c.d4;+  var g = c.d5;+  h$r1 = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, b, d, e, h$baseZCGHCziIOziBufferziWriteBuffer, f, g, c.d6);+  return h$stack[h$sp];+};+function h$$tu()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$tv);+  return h$e(a);+};+function h$$tt()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, b, a);+  return h$stack[h$sp];+};+function h$$ts()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  d.val = a;+  h$p2(c, h$$tt);+  h$l2(c, b);+  return h$ap_2_1_fast();+};+function h$$tr()+{+  var a = h$stack[(h$sp - 4)];+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 7;+  a.val = h$c1(h$$tu, a.val);+  h$pp12(d, h$$ts);+  h$p3(d.val, c, h$ap_3_2);+  h$l2(b, h$baseZCGHCziIOziBufferedIOziemptyWriteBuffer);+  return h$baseZCGHCziIOziBufferedIOziemptyWriteBuffer_e;+};+function h$$tq()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  var c = ((b - a) | 0);+  h$l2((-c | 0), h$integerzmgmpZCGHCziIntegerziTypezismallInteger);+  return h$ap_1_1_fast();+};+function h$$tp()+{+  var a = h$stack[(h$sp - 5)];+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 2)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 6;+  var f = h$stack[h$sp];+  h$sp -= 6;+  f.val = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, b, c, d, e, a, 0, 0);+  h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  h$sp += 6;+  ++h$sp;+  return h$$tr;+};+function h$$to()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 8)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 2)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 9;+  var f = h$stack[(h$sp - 1)];+  h$sp -= 6;+  if(a)+  {+    var g = h$c2(h$$tq, d, e);+    h$sp += 6;+    h$pp33(c, h$$tp);+    h$p4(g, h$baseZCGHCziIOziDeviceziRelativeSeek, f, h$ap_4_3);+    h$l2(b, h$baseZCGHCziIOziDeviceziseek);+    return h$baseZCGHCziIOziDeviceziseek_e;+  }+  else+  {+    h$l2(h$baseZCGHCziIOziHandleziInternalsziflushBuffer3, h$baseZCGHCziIOziExceptionziioException);+    return h$ap_2_1_fast();+  };+};+function h$$tn()+{+  var a = h$r1;+  h$sp -= 9;+  h$sp -= 6;+  var b = a;+  h$sp += 6;+  h$sp += 9;+  h$stack[h$sp] = h$$to;+  return h$e(b);+};+function h$$tm()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 5)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 8;+  var e = a.d1;+  var f = a.d2;+  var g = f.d1;+  var h = f.d2;+  var i = f.d3;+  var j = f.d4;+  var k = f.d5;+  var l = f.d6;+  if((k === l))+  {+    h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+    h$sp += 6;+    h$stack[(h$sp - 3)] = d;+    ++h$sp;+    return h$$tr;+  }+  else+  {+    h$sp += 6;+    h$stack[(h$sp - 3)] = d;+    h$p9(b, e, g, h, i, j, k, l, h$$tn);+    h$p2(c, h$ap_2_1);+    h$l2(b, h$baseZCGHCziIOziDeviceziisSeekable);+    return h$baseZCGHCziIOziDeviceziisSeekable_e;+  };+};+function h$$tl()+{+  var a = h$stack[(h$sp - 2)];+  h$sp -= 8;+  h$pp128(h$$tm);+  return h$e(a.val);+};+function h$$tk()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  var c = a.d2;+  var d = c.d1;+  var e = c.d2;+  var f = c.d3;+  h$r1 = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, b, d, e, f, c.d4, 0, 0);+  return h$stack[h$sp];+};+function h$$tj()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$tk);+  return h$e(a);+};+function h$$ti()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a.d1;+  var d = a.d2;+  var e = d.d1;+  var f = d.d2;+  var g = d.d3;+  var h = d.d4;+  var i = d.d5;+  var j = d.d6;+  h$r1 = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, c, e, f, g, h, ((i + b) | 0), j);+  return h$stack[h$sp];+};+function h$$th()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$p2(b, h$$ti);+  return h$e(a);+};+function h$$tg()+{+  var a = h$r1;+  --h$sp;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 7;+  b.val = a.d1;+  h$sp += 7;+  ++h$sp;+  return h$$tl;+};+function h$$tf()+{+  var a = h$r1;+  --h$sp;+  h$sp -= 7;+  var b = a;+  h$sp += 7;+  h$p1(h$$tg);+  return h$e(b);+};+function h$$te()+{+  var a = h$stack[(h$sp - 8)];+  var b = h$stack[(h$sp - 7)];+  var c = h$stack[(h$sp - 6)];+  var d = h$stack[(h$sp - 5)];+  var e = h$stack[(h$sp - 4)];+  var f = h$stack[(h$sp - 3)];+  var g = h$stack[(h$sp - 2)];+  var h = h$stack[(h$sp - 1)];+  h$sp -= 9;+  h$sp -= 7;+  var i = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, d, e, f, g, 0, 0);+  h$sp += 7;+  h$p1(h$$tf);+  h$l5(i, c, h, b, h$baseZCGHCziIOziHandleziInternalszizdwa);+  return h$ap_gen_fast(1029);+};+function h$$td()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 6)];+  h$sp -= 8;+  h$sp -= 7;+  var c = a.d1;+  var d = a.d2;+  var e = d.d1;+  var f = d.d4;+  h$sp += 7;+  h$sp += 9;+  h$stack[(h$sp - 7)] = c;+  h$stack[(h$sp - 1)] = e;+  h$stack[h$sp] = h$$te;+  h$l2(b, f);+  return h$ap_2_1_fast();+};+function h$$tc()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 5)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 8;+  var d = h$stack[(h$sp - 1)];+  h$sp -= 7;+  if((a.f.a === 1))+  {+    d.val = h$c2(h$$th, b, c);+    h$sp += 7;+    ++h$sp;+    return h$$tl;+  }+  else+  {+    var e = a.d1;+    h$sp += 7;+    h$pp128(h$$td);+    return h$e(e);+  };+};+function h$$tb()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var d = h$stack[(h$sp - 1)];+  h$sp -= 7;+  var e = a.d1;+  var f = a.d2;+  var g = f.d1;+  var h = f.d2;+  var i = f.d3;+  var j = f.d5;+  if((j === 0))+  {+    d.val = c;+    h$sp += 7;+    ++h$sp;+    return h$$tl;+  }+  else+  {+    h$sp += 7;+    h$pp249(e, g, h, i, j, h$$tc);+    return h$e(b);+  };+};+function h$$ta()+{+  var a = h$r1;+  h$sp -= 2;+  var b = h$stack[h$sp];+  h$sp -= 7;+  var c = a.d1;+  var d = a.d2;+  var e = b.val;+  b.val = h$c1(h$$tj, e);+  h$sp += 7;+  h$pp14(c, d, h$$tb);+  return h$e(e);+};+function h$$s9()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 2)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 5;+  h$sp -= 7;+  if((a.f.a === 1))+  {+    if((d === e))+    {+      h$sp += 7;+      ++h$sp;+      return h$$tl;+    }+    else+    {+      var f = b.val;+      h$sp += 7;+      h$p2(c, h$$ta);+      return h$e(f);+    };+  }+  else+  {+    h$sp += 7;+    ++h$sp;+    return h$$tl;+  };+};+function h$$s8()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  h$sp -= 10;+  var d = a.d2;+  var e = d.d3;+  var f = d.d5;+  h$pp64(c);+  h$pp29(b, f, d.d6, h$$s9);+  return h$e(e);+};+function h$$s7()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, b, a);+  return h$stack[h$sp];+};+function h$$s6()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 9)];+  var c = h$stack[(h$sp - 8)];+  var d = h$stack[(h$sp - 2)];+  h$sp -= 10;+  if((a.f.a === 1))+  {+    var e = d.val;+    h$sp += 10;+    h$stack[h$sp] = h$$s8;+    return h$e(e);+  }+  else+  {+    h$p2(c, h$$s7);+    h$l2(c, b);+    return h$ap_2_1_fast();+  };+};+function h$$s5()+{+  var a = h$r1;+  h$sp -= 10;+  var b = a.d2;+  var c = b.d3;+  h$sp += 10;+  h$stack[h$sp] = h$$s6;+  return h$e(c);+};+function h$$s4()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 9)];+  var c = h$stack[(h$sp - 8)];+  var d = h$stack[(h$sp - 2)];+  h$sp -= 10;+  switch (a.f.a)+  {+    case (1):+      h$l2(h$baseZCGHCziIOziHandleziInternalsziwantSeekableHandle3, h$baseZCGHCziIOziExceptionziioException);+      return h$ap_2_1_fast();+    case (2):+      h$l2(h$baseZCGHCziIOziHandleziInternalsziwantSeekableHandle3, h$baseZCGHCziIOziExceptionziioException);+      return h$ap_2_1_fast();+    case (3):+      h$l2(h$$up, h$baseZCGHCziIOziExceptionziioException);+      return h$ap_2_1_fast();+    case (6):+      var e = d.val;+      h$sp += 10;+      h$stack[h$sp] = h$$s5;+      return h$e(e);+    default:+      h$p2(c, h$$tw);+      h$l2(c, b);+      return h$ap_2_1_fast();+  };+};+function h$$s3()+{+  var a = h$r1;+  h$sp -= 2;+  var b = a.d1;+  var c = a.d2;+  var d = c.d1;+  var e = c.d3;+  var f = c.d4;+  var g = c.d5;+  var h = c.d7;+  var i = c.d8;+  var j = c.d11;+  h$sp += 10;+  h$stack[(h$sp - 8)] = a;+  h$stack[(h$sp - 7)] = b;+  h$stack[(h$sp - 6)] = d;+  h$stack[(h$sp - 5)] = e;+  h$stack[(h$sp - 4)] = g;+  h$stack[(h$sp - 3)] = h;+  h$stack[(h$sp - 2)] = i;+  h$stack[(h$sp - 1)] = j;+  h$stack[h$sp] = h$$s4;+  return h$e(f);+};+function h$$s2()+{+  h$p2(h$r1.d1, h$$s3);+  return h$e(h$r2);+};+function h$baseZCGHCziIOziHandleziInternalsziwantWritableHandle2_e()+{+  h$r5 = h$c1(h$$s2, h$r5);+  h$r1 = h$baseZCGHCziIOziHandleziInternalsziwithHandlezq1;+  return h$ap_gen_fast(1029);+};+function h$$tx()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if((a.f.a === 1))+  {+    h$l5(c, h$c1(h$baseZCGHCziMVarziMVar_con_e, a.d2), a, b, h$baseZCGHCziIOziHandleziInternalsziwantWritableHandle2);+    return h$ap_gen_fast(1029);+  }+  else+  {+    var d = a.d2;+    h$l5(c, h$c1(h$baseZCGHCziMVarziMVar_con_e, d.d2), a, b, h$baseZCGHCziIOziHandleziInternalsziwantWritableHandle2);+    return h$ap_gen_fast(1029);+  };+};+function h$baseZCGHCziIOziHandleziInternalsziwantWritableHandle1_e()+{+  h$p3(h$r2, h$r4, h$$tx);+  return h$e(h$r3);+};+var h$baseZCGHCziIOziHandleziInternalsziwantSeekableHandle4 = h$strta("handle is closed");+function h$$t0()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 3))+  {+    h$r1 = h$baseZCGHCziIOziBufferziReadBuffer;+  }+  else+  {+    h$r1 = h$baseZCGHCziIOziBufferziWriteBuffer;+  };+  return h$stack[h$sp];+};+function h$$tZ()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$t0);+  return h$e(a);+};+function h$$tY()+{+  var a = h$r1;+  --h$sp;+  return h$e(a.d2);+};+function h$$tX()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$tY);+  return h$e(a);+};+function h$$tW()+{+  var a = h$r1;+  --h$sp;+  return h$e(a.d1);+};+function h$$tV()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$tW);+  return h$e(a);+};+function h$$tU()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 14)];+  var c = h$stack[(h$sp - 13)];+  var d = h$stack[(h$sp - 12)];+  var e = h$stack[(h$sp - 11)];+  var f = h$stack[(h$sp - 10)];+  var g = h$stack[(h$sp - 9)];+  var h = h$stack[(h$sp - 8)];+  var i = h$stack[(h$sp - 7)];+  var j = h$stack[(h$sp - 6)];+  var k = h$stack[(h$sp - 5)];+  var l = h$stack[(h$sp - 4)];+  var m = h$stack[(h$sp - 3)];+  var n = h$stack[(h$sp - 2)];+  var o = h$stack[(h$sp - 1)];+  h$sp -= 15;+  h$r1 = h$c16(h$baseZCGHCziIOziHandleziTypesziHandlezuzu_con_e, b, c, d, m, e, k, n, l, a.d1, o, i, j, f, h$c1(h$$tV, g),+  h$c1(h$$tX, g), h);+  return h$stack[h$sp];+};+function h$$tT()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  h$sp -= 15;+  h$sp += 15;+  h$stack[(h$sp - 3)] = a;+  h$stack[h$sp] = h$$tU;+  return h$e(b);+};+function h$$tS()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = b.d3;+  var f = b.d4;+  var g = b.d5;+  var h = b.d6;+  var i = b.d7;+  var j = b.d8;+  var k = b.d9;+  var l = b.d10;+  var m = b.d11;+  var n = b.d12;+  var o = b.d13;+  h$bh();+  h$p15(a, c, d, f, g, h, i, j, k, l, m, n, o, b.d14, h$$tT);+  h$r1 = e;+  return h$ap_0_0_fast();+};+function h$$tR()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l3(h$c1(h$baseZCGHCziMVarziMVar_con_e, b.d1), a, b.d2);+  return h$ap_2_2_fast();+};+function h$$tQ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if((a.f.a === 1))+  {+    h$r1 = h$c2(h$baseZCGHCziIOziHandleziTypesziFileHandle_con_e, b, c);+  }+  else+  {+    var d = h$makeWeak(c, h$ghczmprimZCGHCziTupleziZLZR, h$c3(h$$tR, b, c, a.d1));+    h$r1 = h$c2(h$baseZCGHCziIOziHandleziTypesziFileHandle_con_e, b, c);+  };+  return h$stack[h$sp];+};+function h$$tP()+{+  var a = h$stack[(h$sp - 2)];+  var b = h$stack[(h$sp - 1)];+  h$sp -= 4;+  h$pp6(b, h$$tQ);+  return h$e(a);+};+function h$$tO()+{+  var a = h$stack[(h$sp - 14)];+  var b = h$stack[(h$sp - 13)];+  var c = h$stack[(h$sp - 12)];+  var d = h$stack[(h$sp - 11)];+  var e = h$stack[(h$sp - 10)];+  var f = h$stack[(h$sp - 9)];+  var g = h$stack[(h$sp - 8)];+  var h = h$stack[(h$sp - 7)];+  var i = h$stack[(h$sp - 6)];+  var j = h$stack[(h$sp - 5)];+  var k = h$stack[(h$sp - 4)];+  var l = h$stack[(h$sp - 3)];+  var m = h$stack[(h$sp - 2)];+  var n = h$stack[(h$sp - 1)];+  h$sp -= 15;+  var o = h$r1;+  var p = h$r2;+  var q = new h$MutVar(h$baseZCGHCziIOziHandleziTypesziBufferListNil);+  var r = q;+  var s = new h$MVar();+  h$p4(e, j, s, h$$tP);+  return h$putMVar(s, h$c15(h$$tS, a, b, c, d, f, h, i, k, l, m, g, n, o, p, r));+};+function h$$tN()+{+  var a = h$r1;+  --h$sp;+  if(a)+  {+    h$r1 = h$baseZCGHCziIOziHandleziTypesziLineBuffering;+  }+  else+  {+    return h$e(h$$ul);+  };+  return h$stack[h$sp];+};+function h$$tM()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$tN);+  return h$e(a);+};+function h$$tL()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$sp -= 14;+  h$l2(h$c1(h$$tM, a), h$c1(h$baseZCGHCziSTRefziSTRef_con_e, b));+  h$sp += 14;+  ++h$sp;+  return h$$tO;+};+function h$$tK()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = h$stack[(h$sp - 13)];+  var d = h$stack[(h$sp - 10)];+  h$sp -= 14;+  if(a)+  {+    var e = new h$MutVar(h$baseZCGHCziForeignPtrziNoFinalizzers);+    var f = h$newByteArray(8192);+    var g = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, f, 0, h$c2(h$baseZCGHCziForeignPtrziMallocPtr_con_e, f, e), b, 2048,+    0, 0);+    var h = new h$MutVar(g);+    var i = h;+    h$sp += 14;+    h$p2(i, h$$tL);+    h$p2(d, h$ap_2_1);+    h$l2(c, h$baseZCGHCziIOziDeviceziisTerminal);+    return h$baseZCGHCziIOziDeviceziisTerminal_e;+  }+  else+  {+    var j = new h$MutVar(h$baseZCGHCziForeignPtrziNoFinalizzers);+    var k = h$newByteArray(8192);+    var l = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, k, 0, h$c2(h$baseZCGHCziForeignPtrziMallocPtr_con_e, k, j), b, 2048,+    0, 0);+    var m = new h$MutVar(l);+    h$l2(h$baseZCGHCziIOziHandleziTypesziNoBuffering, h$c1(h$baseZCGHCziSTRefziSTRef_con_e, m));+    h$sp += 14;+    ++h$sp;+    return h$$tO;+  };+};+function h$$tJ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 8)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 15;+  var d = a;+  var e = new h$MutVar(d);+  var f = e;+  var g = h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, h$baseZCGHCziIOziHandleziInternalszidecodeByteBuf2, d);+  var h = new h$MutVar(g);+  var i = h;+  h$sp += 14;+  h$stack[(h$sp - 7)] = f;+  h$stack[h$sp] = i;+  h$p2(c, h$$tK);+  return h$e(b);+};+function h$$tI()+{+  var a = h$stack[(h$sp - 10)];+  var b = h$stack[(h$sp - 8)];+  var c = h$stack[(h$sp - 6)];+  h$sp -= 12;+  var d = h$r1;+  var e = h$r2;+  var f = h$c1(h$$tZ, c);+  h$sp += 15;+  h$stack[(h$sp - 3)] = d;+  h$stack[(h$sp - 2)] = e;+  h$stack[(h$sp - 1)] = f;+  h$stack[h$sp] = h$$tJ;+  h$p3(f, b, h$ap_3_2);+  h$l2(a, h$baseZCGHCziIOziBufferedIOzinewBuffer);+  return h$baseZCGHCziIOziBufferedIOzinewBuffer_e;+};+function h$$tH()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$sp -= 11;+  h$l2(b, h$c1(h$baseZCDataziMaybeziJust_con_e, a));+  h$sp += 11;+  ++h$sp;+  return h$$tI;+};+function h$$tG()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$sp -= 11;+  h$l2(b, h$c1(h$baseZCDataziMaybeziJust_con_e, a));+  h$sp += 11;+  ++h$sp;+  return h$$tI;+};+function h$$tF()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$sp -= 11;+  h$l2(b, h$c1(h$baseZCDataziMaybeziJust_con_e, a));+  h$sp += 11;+  ++h$sp;+  return h$$tI;+};+function h$$tE()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$sp -= 11;+  switch (a.f.a)+  {+    case (4):+      h$sp += 11;+      h$p2(c, h$$tH);+      h$r1 = b;+      return h$ap_1_0_fast();+    case (5):+      h$sp += 11;+      h$p2(c, h$$tG);+      h$r1 = b;+      return h$ap_1_0_fast();+    case (6):+      h$sp += 11;+      h$p2(c, h$$tF);+      h$r1 = b;+      return h$ap_1_0_fast();+    default:+      h$l2(c, h$baseZCDataziMaybeziNothing);+      h$sp += 11;+      ++h$sp;+      return h$$tI;+  };+};+function h$$tD()+{+  var a = h$stack[(h$sp - 7)];+  h$sp -= 13;+  var b = h$r1;+  h$sp += 11;+  h$pp6(b, h$$tE);+  return h$e(a);+};+function h$$tC()+{+  var a = h$r1;+  --h$sp;+  h$sp -= 12;+  h$r1 = h$c1(h$baseZCDataziMaybeziJust_con_e, a);+  h$sp += 12;+  ++h$sp;+  return h$$tD;+};+function h$$tB()+{+  var a = h$r1;+  --h$sp;+  h$sp -= 12;+  h$r1 = h$c1(h$baseZCDataziMaybeziJust_con_e, a);+  h$sp += 12;+  ++h$sp;+  return h$$tD;+};+function h$$tA()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$sp -= 12;+  switch (a.f.a)+  {+    case (3):+      h$sp += 12;+      h$p1(h$$tC);+      h$r1 = b;+      return h$ap_1_0_fast();+    case (6):+      h$sp += 12;+      h$p1(h$$tB);+      h$r1 = b;+      return h$ap_1_0_fast();+    default:+      h$r1 = h$baseZCDataziMaybeziNothing;+      h$sp += 12;+      ++h$sp;+      return h$$tD;+  };+};+function h$$tz()+{+  var a = h$r1;+  --h$sp;+  var b = h$stack[(h$sp - 5)];+  h$sp -= 11;+  var c = a.d2;+  var d = c.d1;+  var e = c.d2;+  h$sp += 12;+  h$stack[h$sp] = e;+  h$p2(d, h$$tA);+  return h$e(b);+};+function h$$ty()+{+  var a = h$r1;+  --h$sp;+  h$sp -= 11;+  if((a.f.a === 1))+  {+    h$l2(h$baseZCDataziMaybeziNothing, h$baseZCDataziMaybeziNothing);+    h$sp += 11;+    ++h$sp;+    return h$$tI;+  }+  else+  {+    var b = a.d1;+    h$sp += 11;+    h$p1(h$$tz);+    return h$e(b);+  };+};+function h$baseZCGHCziIOziHandleziInternalszimkDuplexHandle5_e()+{+  h$p11(h$r2, h$r3, h$r4, h$r5, h$r6, h$r7, h$r8, h$r9, h$r10, h$r11, h$r12);+  h$p1(h$$ty);+  return h$e(h$r9);+};+function h$$t5()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  b.val = a;+  h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  return h$stack[h$sp];+};+function h$$t4()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var e = a.d2;+  var f = e.d5;+  var g = e.d6;+  if((f === g))+  {+    h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  }+  else+  {+    h$p2(d, h$$t5);+    h$p3(a, c, h$ap_3_2);+    h$l2(b, h$baseZCGHCziIOziBufferedIOziflushWriteBuffer);+    return h$baseZCGHCziIOziBufferedIOziflushWriteBuffer_e;+  };+  return h$stack[h$sp];+};+function h$$t3()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 4;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  }+  else+  {+    h$pp8(h$$t4);+    return h$e(b.val);+  };+  return h$stack[h$sp];+};+function h$$t2()+{+  var a = h$r1;+  h$sp -= 4;+  var b = a.d2;+  h$pp8(h$$t3);+  return h$e(b.d3);+};+function h$$t1()+{+  var a = h$r1;+  --h$sp;+  var b = a.d2;+  var c = b.d1;+  var d = b.d3;+  var e = b.d5;+  h$p4(c, d, e, h$$t2);+  return h$e(e.val);+};+function h$baseZCGHCziIOziHandleziInternalsziflushWriteBuffer1_e()+{+  h$p1(h$$t1);+  return h$e(h$r2);+};+var h$baseZCGHCziIOziHandleziInternalsziflushBuffer4 = h$strta("cannot flush the read buffer: underlying device is not seekable");+function h$baseZCGHCziIOziHandleziInternalszidecodeByteBuf2_e()+{+  h$bh();+  h$l2(h$$um, h$baseZCGHCziErrzierror);+  return h$ap_1_1_fast();+};+function h$$ug()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a.d1;+  h$l3(a.d2, c, b);+  return h$ap_3_2_fast();+};+function h$$uf()+{+  var a = h$r1;+  h$sp -= 2;+  h$pp2(h$$ug);+  return h$e(a);+};+function h$$ue()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 2)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 5;+  var f = a.d2;+  var g = f.d5;+  if((d === g))+  {+    h$p2(c, h$$uf);+    h$l3(e, a, b);+    return h$ap_3_2_fast();+  }+  else+  {+    h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInvalidSequence, a, e);+  };+  return h$stack[h$sp];+};+function h$$ud()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  h$sp -= 5;+  var c = a.d2;+  h$pp20(c.d5, h$$ue);+  return h$e(b);+};+function h$$uc()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 2)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 7;+  if((a.f.a === 3))+  {+    h$pp28(d, e, h$$ud);+    return h$e(b);+  }+  else+  {+    h$r1 = c;+  };+  return h$stack[h$sp];+};+function h$$ub()+{+  var a = h$r1;+  h$sp -= 5;+  var b = a.d1;+  var c = a.d2;+  var d = c.d1;+  h$pp112(d, c.d2, h$$uc);+  return h$e(b);+};+function h$$ua()+{+  var a = h$r1;+  h$sp -= 4;+  h$pp24(a, h$$ub);+  return h$e(a);+};+function h$$t9()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$p4(c, b.d2, h$r2, h$$ua);+  h$r1 = a;+  return h$ap_3_2_fast();+};+function h$$t8()+{+  var a = h$r1;+  --h$sp;+  var b = a.d2;+  var c = b.d1;+  h$r1 = h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, c, b.d2);+  return h$stack[h$sp];+};+function h$$t7()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$t8);+  return h$e(a);+};+function h$$t6()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$$t7, a);+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziHandleziInternalszizdwa_e()+{+  var a = h$r3;+  var b = h$r4;+  var c = h$r5;+  var d = h$c(h$$t9);+  d.d1 = h$r2;+  d.d2 = h$d2(a, d);+  h$p1(h$$t6);+  h$l3(c, b, d);+  return h$ap_3_2_fast();+};+function h$baseZCGHCziIOziHandleziInternalsziioezufinalizzedHandle_e()+{+  h$l3(h$baseZCGHCziIOziExceptionzizdfExceptionIOExceptionzuzdctoException,+  h$c6(h$baseZCGHCziIOziExceptionziIOError_con_e, h$baseZCDataziMaybeziNothing,+  h$baseZCGHCziIOziExceptionziIllegalOperation, h$ghczmprimZCGHCziTypesziZMZN, h$$un, h$baseZCDataziMaybeziNothing,+  h$c1(h$baseZCDataziMaybeziJust_con_e, h$r2)), h$baseZCGHCziExceptionzithrow2);+  return h$ap_2_2_fast();+};+function h$$uk()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$r1 = h$c1(h$baseZCDataziMaybeziJust_con_e, a.d1);+  }+  else+  {+    h$r1 = h$c1(h$baseZCDataziMaybeziJust_con_e, a.d1);+  };+  return h$stack[h$sp];+};+function h$$uj()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$p1(h$$uk);+    return h$e(b);+  }+  else+  {+    h$r1 = a;+  };+  return h$stack[h$sp];+};+function h$$ui()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$p2(a, h$$uj);+  return h$e(b);+};+function h$$uh()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var d = a.d2;+  var e = d.d1;+  var f = d.d3;+  var g = d.d4;+  h$r1 = h$c6(h$baseZCGHCziIOziExceptionziIOError_con_e, h$c1(h$baseZCDataziMaybeziJust_con_e, c), e, b, f, g, h$c2(h$$ui,+  c, d.d5));+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziHandleziInternalsziaugmentIOError_e()+{+  h$p3(h$r3, h$r4, h$$uh);+  return h$e(h$r2);+};+function h$$us()+{+  var a = h$r1;+  --h$sp;+  h$l12(h$baseZCDataziMaybeziNothing, h$$u5, h$baseZCGHCziIOziHandleziTypeszinoNewlineTranslation,+  h$c1(h$baseZCDataziMaybeziJust_con_e, a), true, h$baseZCGHCziIOziHandleziTypesziWriteHandle, h$$u1,+  h$baseZCGHCziIOziFDzistdout, h$baseZCGHCziIOziFDzizdfTypeableFDzuzdctypeRepzh, h$baseZCGHCziIOziFDzizdfBufferedIOFD,+  h$baseZCGHCziIOziFDzizdfIODeviceFD, h$baseZCGHCziIOziHandleziInternalszimkDuplexHandle5);+  return h$ap_gen_fast(2828);+};+function h$$ur()+{+  var a = h$r1;+  --h$sp;+  h$p1(h$$us);+  h$r1 = a.d1;+  return h$ap_1_0_fast();+};+function h$$uq()+{+  h$p1(h$$ur);+  return h$e(h$baseZCGHCziIOziEncodingzigetLocaleEncoding1);+};+var h$$u1 = h$strta("<stdout>");+function h$$uv()+{+  var a = h$r1;+  --h$sp;+  h$l12(h$baseZCDataziMaybeziNothing, h$$u5, h$baseZCGHCziIOziHandleziTypeszinoNewlineTranslation,+  h$c1(h$baseZCDataziMaybeziJust_con_e, a), false, h$baseZCGHCziIOziHandleziTypesziWriteHandle, h$$u3,+  h$baseZCGHCziIOziFDzistderr, h$baseZCGHCziIOziFDzizdfTypeableFDzuzdctypeRepzh, h$baseZCGHCziIOziFDzizdfBufferedIOFD,+  h$baseZCGHCziIOziFDzizdfIODeviceFD, h$baseZCGHCziIOziHandleziInternalszimkDuplexHandle5);+  return h$ap_gen_fast(2828);+};+function h$$uu()+{+  var a = h$r1;+  --h$sp;+  h$p1(h$$uv);+  h$r1 = a.d1;+  return h$ap_1_0_fast();+};+function h$$ut()+{+  h$p1(h$$uu);+  return h$e(h$baseZCGHCziIOziEncodingzigetLocaleEncoding1);+};+var h$$u3 = h$strta("<stderr>");+function h$$ux()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(a.d1, b, h$$u6);+  return h$ap_3_2_fast();+};+function h$$uw()+{+  h$p2(h$r2, h$$ux);+  return h$e(h$r3);+};+function h$$uZ()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$baseZCGHCziIOziHandleziInternalsziioezufinalizzedHandle);+  return h$ap_1_1_fast();+};+function h$$uY()+{+  --h$sp;+  h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  return h$stack[h$sp];+};+function h$$uX()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$baseZCGHCziIOziHandleziInternalsziioezufinalizzedHandle);+  return h$ap_1_1_fast();+};+function h$$uW()+{+  --h$sp;+  h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  return h$stack[h$sp];+};+function h$$uV()+{+  var a = h$stack[(h$sp - 2)];+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$p1(h$$uW);+  return h$putMVar(b, h$c1(h$$uX, a));+};+function h$$uU()+{+  var a = h$r1;+  h$sp -= 3;+  var b = a.d2;+  h$pp4(h$$uV);+  h$r1 = b.d2;+  return h$ap_1_0_fast();+};+function h$$uT()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if((a.f.a === 1))+  {+    h$p1(h$$uY);+    return h$putMVar(c, h$c1(h$$uZ, b));+  }+  else+  {+    h$pp4(h$$uU);+    return h$e(a.d1);+  };+};+function h$$uS()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$baseZCGHCziIOziHandleziInternalsziioezufinalizzedHandle);+  return h$ap_1_1_fast();+};+function h$$uR()+{+  --h$sp;+  h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  return h$stack[h$sp];+};+function h$$uQ()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$baseZCGHCziIOziHandleziInternalsziioezufinalizzedHandle);+  return h$ap_1_1_fast();+};+function h$$uP()+{+  --h$sp;+  h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  return h$stack[h$sp];+};+function h$$uO()+{+  var a = h$stack[(h$sp - 2)];+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$p1(h$$uP);+  return h$putMVar(b, h$c1(h$$uQ, a));+};+function h$$uN()+{+  var a = h$r1;+  h$sp -= 3;+  var b = a.d2;+  h$pp4(h$$uO);+  h$r1 = b.d2;+  return h$ap_1_0_fast();+};+function h$$uM()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if((a.f.a === 1))+  {+    h$p1(h$$uR);+    return h$putMVar(c, h$c1(h$$uS, b));+  }+  else+  {+    h$pp4(h$$uN);+    return h$e(a.d1);+  };+};+function h$$uL()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 4;+  h$pp4(h$$uM);+  return h$e(a);+};+function h$$uK()+{+  var a = h$r1;+  h$sp -= 4;+  var b = a.d2;+  h$pp8(h$$uL);+  h$r1 = b.d2;+  return h$ap_1_0_fast();+};+function h$$uJ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 4;+  if((a.f.a === 1))+  {+    h$pp4(h$$uT);+    return h$e(b);+  }+  else+  {+    h$pp8(h$$uK);+    return h$e(a.d1);+  };+};+function h$$uI()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$baseZCGHCziIOziHandleziInternalsziioezufinalizzedHandle);+  return h$ap_1_1_fast();+};+function h$$uH()+{+  --h$sp;+  h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  return h$stack[h$sp];+};+function h$$uG()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 5;+  if((a.f.a === 1))+  {+    h$p1(h$$uH);+    return h$putMVar(c, h$c1(h$$uI, b));+  }+  else+  {+    h$pp8(h$$uJ);+    return h$e(d);+  };+};+function h$$uF()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 6;+  h$pp16(h$$uG);+  return h$e(a);+};+function h$$uE()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$sp -= 5;+  b.val = a;+  h$sp += 5;+  ++h$sp;+  return h$$uF;+};+function h$$uD()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 4;+  h$sp -= 5;+  var d = a.d2;+  var e = d.d5;+  var f = d.d6;+  if((e === f))+  {+    h$sp += 5;+    ++h$sp;+    return h$$uF;+  }+  else+  {+    h$sp += 5;+    h$pp2(h$$uE);+    h$p3(a, c, h$ap_3_2);+    h$l2(b, h$baseZCGHCziIOziBufferedIOziflushWriteBuffer);+    return h$baseZCGHCziIOziBufferedIOziflushWriteBuffer_e;+  };+};+function h$$uC()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  h$sp -= 4;+  h$sp -= 5;+  if((a.f.a === 1))+  {+    h$sp += 5;+    ++h$sp;+    return h$$uF;+  }+  else+  {+    var c = b.val;+    h$sp += 5;+    h$pp8(h$$uD);+    return h$e(c);+  };+};+function h$$uB()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 6)];+  var c = h$stack[(h$sp - 5)];+  var d = h$stack[(h$sp - 2)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 9;+  var f = a.d2;+  var g = f.d3;+  h$sp += 5;+  h$stack[(h$sp - 2)] = d;+  h$stack[(h$sp - 1)] = e;+  h$pp14(b, c, h$$uC);+  return h$e(g);+};+function h$$uA()+{+  var a = h$r1;+  h$sp -= 3;+  var b = a.d2;+  var c = b.d1;+  var d = b.d3;+  var e = b.d4;+  var f = b.d5;+  var g = b.d10;+  var h = b.d11;+  var i = f.val;+  h$sp += 9;+  h$stack[(h$sp - 6)] = c;+  h$stack[(h$sp - 5)] = d;+  h$stack[(h$sp - 4)] = e;+  h$stack[(h$sp - 3)] = f;+  h$stack[(h$sp - 2)] = g;+  h$stack[(h$sp - 1)] = h;+  h$stack[h$sp] = h$$uB;+  return h$e(i);+};+function h$$uz()+{+  var a = h$r1;+  h$sp -= 3;+  h$pp4(h$$uA);+  return h$e(a);+};+function h$$uy()+{+  h$p3(h$r2, h$r3, h$$uz);+  return h$takeMVar(h$r3);+};+function h$baseZCGHCziIOziHandleziFDzistderr_e()+{+  h$bh();+  h$l2(h$$u2, h$baseZCGHCziIOziunsafeDupablePerformIO);+  return h$ap_1_1_fast();+};+function h$baseZCGHCziIOziHandleziFDzistdout_e()+{+  h$bh();+  h$l2(h$$u0, h$baseZCGHCziIOziunsafeDupablePerformIO);+  return h$ap_1_1_fast();+};+var h$baseZCGHCziIOziHandlezihFlush2 = h$strta("hFlush");+function h$baseZCGHCziIOziHandlezihFlush1_e()+{+  h$l4(h$baseZCGHCziIOziHandleziInternalsziflushWriteBuffer1, h$r2, h$baseZCGHCziIOziHandlezihFlush2,+  h$baseZCGHCziIOziHandleziInternalsziwantWritableHandle1);+  return h$baseZCGHCziIOziHandleziInternalsziwantWritableHandle1_e;+};+function h$baseZCGHCziIOziHandlezihFlush_e()+{+  h$r1 = h$baseZCGHCziIOziHandlezihFlush1;+  return h$ap_2_1_fast();+};+function h$$vj()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a.d1;+  var d = a.d2;+  var e = c;+  h$r1 = h$c2(h$baseZCGHCziPtrziPtr_con_e, e, (d + b));+  return h$stack[h$sp];+};+function h$$vi()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$p2(b, h$$vj);+  return h$e(a);+};+function h$$vh()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var e = a;+  if((d < e))+  {+    h$l4(((e - d) | 0), h$c2(h$$vi, c, d), b, h$baseZCGHCziIOziFDzizdwa2);+    return h$ap_4_3_fast();+  }+  else+  {+    h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  };+  return h$stack[h$sp];+};+function h$$vg()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 4;+  h$pp12(a, h$$vh);+  return h$e(b);+};+function h$$vf()+{+  h$sp -= 4;+  h$pp8(h$$vg);+  return h$e(h$r1);+};+function h$$ve()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  var c = (b | 0);+  if((c === (-1)))+  {+    h$l2(h$$w1, h$baseZCForeignziCziErrorzithrowErrno1);+    return h$baseZCForeignziCziErrorzithrowErrno1_e;+  }+  else+  {+    h$r1 = c;+  };+  return h$stack[h$sp];+};+function h$$vd()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var e = a;+  var f = (e | 0);+  h$p1(h$$ve);+  try+  {+    var g;+    var h = { mv: null+            };+    g = h$mkForeignCallback(h);+    h$base_write(b, c, d, f, g);+    if((h.mv === null))+    {+      h.mv = new h$MVar();+      ++h$sp;+      h$stack[h$sp] = h$unboxFFIResult;+      return h$takeMVar(h.mv);+    }+    else+    {+      var i = h.mv;+      h$r1 = i[0];+    };+  }+  catch(h$GHCziIOziFD_id_2_0)+  {+    return h$throwJSException(h$GHCziIOziFD_id_2_0);+  };+  return h$stack[h$sp];+};+function h$$vc()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var c = a.d1;+  h$pp14(c, a.d2, h$$vd);+  return h$e(b);+};+function h$$vb()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$p3(a, b.d2, h$$vc);+  return h$e(c);+};+function h$$va()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$baseZCGHCziIOziFDziwriteRawBufferPtr2);+  return h$ap_1_1_fast();+};+function h$$u9()+{+  var a = h$r1;+  --h$sp;+  h$sp -= 3;+  h$r1 = h$c1(h$$va, a);+  h$sp += 3;+  ++h$sp;+  return h$$vf;+};+function h$$u8()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$baseZCGHCziIOziFDziwriteRawBufferPtr2);+  return h$ap_1_1_fast();+};+function h$$u7()+{+  var a = h$r1;+  --h$sp;+  h$sp -= 3;+  h$r1 = h$c1(h$$u8, a);+  h$sp += 3;+  ++h$sp;+  return h$$vf;+};+function h$baseZCGHCziIOziFDzizdwa2_e()+{+  var a = h$r2;+  var b = h$r3;+  var c = h$r4;+  var d = h$maskStatus();+  var e = h$c3(h$$vb, a, b, c);+  var f = d;+  if((f === 1))+  {+    h$p3(a, b, c);+    h$p1(h$$u7);+    h$r1 = e;+    return h$ap_1_0_fast();+  }+  else+  {+    h$p3(a, b, c);+    h$p1(h$$u9);+    return h$maskUnintAsync(e);+  };+};+var h$$w1 = h$strta("GHC.IO.FD.fdWrite");+function h$$vk()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  h$r1 = (b | 0);+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziFDziwriteRawBufferPtr2_e()+{+  h$p1(h$$vk);+  return h$e(h$r2);+};+var h$baseZCGHCziIOziFDzizdfTypeableFD5 = h$strta("base");+var h$baseZCGHCziIOziFDzizdfTypeableFD4 = h$strta("GHC.IO.FD");+var h$baseZCGHCziIOziFDzizdfTypeableFD3 = h$strta("FD");+function h$baseZCGHCziIOziFDzizdfTypeableFDzuzdctypeRepzh_e()+{+  return h$e(h$baseZCGHCziIOziFDzizdfTypeableFD1);+};+var h$baseZCGHCziIOziFDzizdfIODeviceFD19 = h$strta("GHC.IO.FD.ready");+function h$$vr()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  h$r1 = (b | 0);+  return h$stack[h$sp];+};+function h$$vq()+{+  var a = h$stack[(h$sp - 2)];+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var c = h$r1;+  var d = (b | 0);+  h$p1(h$$vr);+  h$r1 = h$fdReady(a, (c | 0), d, 0);+  return h$stack[h$sp];+};+function h$$vp()+{+  var a = h$r1;+  --h$sp;+  h$sp -= 2;+  if(a)+  {+    h$r1 = 1;+    h$sp += 2;+    ++h$sp;+    return h$$vq;+  }+  else+  {+    h$r1 = 0;+    h$sp += 2;+    ++h$sp;+    return h$$vq;+  };+};+function h$$vo()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$p2(a, b.d2);+  h$p1(h$$vp);+  return h$e(c);+};+function h$$vn()+{+  var a = h$r1;+  --h$sp;+  switch (a)+  {+    case (0):+      h$r1 = false;+      break;+    case (1):+      h$r1 = true;+      break;+    default:+      return h$e(h$baseZCGHCziEnumzizdfEnumBool1);+  };+  return h$stack[h$sp];+};+function h$$vm()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$vn);+  return h$e(a);+};+function h$$vl()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$$vm, a);+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziFDzizdwa12_e()+{+  h$p1(h$$vl);+  h$l4(h$c3(h$$vo, h$r2, h$r3, h$r4), h$baseZCGHCziIOziFDzizdfIODeviceFD19, h$baseZCGHCziIOziFDzizdfIODeviceFD17,+  h$baseZCForeignziCziErrorzithrowErrnoIfMinus1Retry2);+  return h$ap_4_3_fast();+};+function h$$vt()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$l4(a, b, c, h$baseZCGHCziIOziFDzizdwa12);+  return h$ap_4_3_fast();+};+function h$$vs()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$pp6(a.d1, h$$vt);+  return h$e(b);+};+function h$baseZCGHCziIOziFDzizdfIODeviceFD18_e()+{+  h$p3(h$r3, h$r4, h$$vs);+  return h$e(h$r2);+};+function h$$vu()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  if((b === (-1)))+  {+    h$r1 = true;+  }+  else+  {+    h$r1 = false;+  };+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziFDzizdfIODeviceFD17_e()+{+  h$p1(h$$vu);+  return h$e(h$r2);+};+var h$baseZCGHCziIOziFDzizdfIODeviceFD16 = h$strta("GHC.IO.FD.close");+function h$$vx()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  h$r1 = (b | 0);+  return h$stack[h$sp];+};+function h$$vw()+{+  var a = h$r1.d1;+  var b = (a | 0);+  h$p1(h$$vx);+  try+  {+    var c;+    var d = { mv: null+            };+    c = h$mkForeignCallback(d);+    h$base_close(b, c);+    if((d.mv === null))+    {+      d.mv = new h$MVar();+      ++h$sp;+      h$stack[h$sp] = h$unboxFFIResult;+      return h$takeMVar(d.mv);+    }+    else+    {+      var e = d.mv;+      h$r1 = e[0];+    };+  }+  catch(h$GHCziIOziFD_id_46_0)+  {+    return h$throwJSException(h$GHCziIOziFD_id_46_0);+  };+  return h$stack[h$sp];+};+function h$$vv()+{+  --h$sp;+  h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziFDzizdwa11_e()+{+  var a = h$r2;+  var b = h$unlockFile(h$r2);+  h$p1(h$$vv);+  h$l4(h$c1(h$$vw, a), h$baseZCGHCziIOziFDzizdfIODeviceFD16, h$baseZCGHCziIOziFDzizdfIODeviceFD17,+  h$baseZCForeignziCziErrorzithrowErrnoIfMinus1Retry2);+  return h$ap_4_3_fast();+};+function h$$vy()+{+  var a = h$r1;+  --h$sp;+  h$l2(a.d1, h$baseZCGHCziIOziFDzizdwa11);+  return h$ap_2_1_fast();+};+function h$baseZCGHCziIOziFDzizdfIODeviceFD15_e()+{+  h$p1(h$$vy);+  return h$e(h$r2);+};+function h$$vz()+{+  var a = h$r1;+  --h$sp;+  var b = h$base_isatty(a.d1);+  var c = b;+  var d;+  var e = (c | 0);+  if((e === 0))+  {+    d = false;+  }+  else+  {+    d = true;+  };+  h$r1 = d;+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziFDzizdfIODeviceFD14_e()+{+  h$p1(h$$vz);+  return h$e(h$r2);+};+function h$$vF()+{+  var a = h$r1;+  --h$sp;+  h$r1 = a.d1;+  return h$stack[h$sp];+};+function h$$vE()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$vF);+  return h$e(a);+};+function h$$vD()+{+  var a = h$r1;+  --h$sp;+  switch (a.f.a)+  {+    case (3):+      h$r1 = true;+      break;+    case (4):+      h$r1 = true;+      break;+    default:+      h$r1 = false;+  };+  return h$stack[h$sp];+};+function h$$vC()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$vD);+  return h$e(a);+};+function h$$vB()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$$vC, a.d1);+  return h$stack[h$sp];+};+function h$$vA()+{+  var a = h$r1;+  --h$sp;+  h$p1(h$$vB);+  return h$e(a);+};+function h$baseZCGHCziIOziFDzizdfIODeviceFD13_e()+{+  h$p1(h$$vA);+  h$l2(h$c1(h$$vE, h$r2), h$baseZCSystemziPosixziInternalszifdStat1);+  return h$baseZCSystemziPosixziInternalszifdStat1_e;+};+var h$baseZCGHCziIOziFDzizdfIODeviceFDzuloc2 = h$strta("seek");+function h$$vM()+{+  var a;+  var b;+  a = h$r1;+  b = h$r2;+  --h$sp;+  h$r1 = h$c2(h$baseZCGHCziIntziI64zh_con_e, a, b);+  return h$stack[h$sp];+};+function h$$vL()+{+  var a;+  var b;+  a = h$r1;+  b = h$r2;+  --h$sp;+  h$r1 = h$c2(h$baseZCGHCziIntziI64zh_con_e, a, b);+  return h$stack[h$sp];+};+function h$$vK()+{+  var a;+  var b;+  a = h$r1;+  b = h$r2;+  --h$sp;+  h$r1 = h$c2(h$baseZCGHCziIntziI64zh_con_e, a, b);+  return h$stack[h$sp];+};+function h$$vJ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  switch (a.f.a)+  {+    case (1):+      var e = h$base_SEEK_SET;+      var f = (e | 0);+      h$p1(h$$vM);+      try+      {+        var g;+        var h = { mv: null+                };+        g = h$mkForeignCallback(h);+        h$base_lseek(b, c, d, f, g);+        if((h.mv === null))+        {+          h.mv = new h$MVar();+          ++h$sp;+          h$stack[h$sp] = h$unboxFFIResult;+          return h$takeMVar(h.mv);+        }+        else+        {+          var i = h.mv;+          h$r1 = i[0];+          h$r2 = i[1];+        };+      }+      catch(h$GHCziIOziFD_id_54_0)+      {+        return h$throwJSException(h$GHCziIOziFD_id_54_0);+      };+      break;+    case (2):+      var j = h$base_SEEK_CUR;+      var k = (j | 0);+      h$p1(h$$vL);+      try+      {+        var l;+        var m = { mv: null+                };+        l = h$mkForeignCallback(m);+        h$base_lseek(b, c, d, k, l);+        if((m.mv === null))+        {+          m.mv = new h$MVar();+          ++h$sp;+          h$stack[h$sp] = h$unboxFFIResult;+          return h$takeMVar(m.mv);+        }+        else+        {+          var n = m.mv;+          h$r1 = n[0];+          h$r2 = n[1];+        };+      }+      catch(h$GHCziIOziFD_id_54_3)+      {+        return h$throwJSException(h$GHCziIOziFD_id_54_3);+      };+      break;+    default:+      var o = h$base_SEEK_END;+      var p = (o | 0);+      h$p1(h$$vK);+      try+      {+        var q;+        var r = { mv: null+                };+        q = h$mkForeignCallback(r);+        h$base_lseek(b, c, d, p, q);+        if((r.mv === null))+        {+          r.mv = new h$MVar();+          ++h$sp;+          h$stack[h$sp] = h$unboxFFIResult;+          return h$takeMVar(r.mv);+        }+        else+        {+          var s = r.mv;+          h$r1 = s[0];+          h$r2 = s[1];+        };+      }+      catch(h$GHCziIOziFD_id_54_6)+      {+        return h$throwJSException(h$GHCziIOziFD_id_54_6);+      };+  };+  return h$stack[h$sp];+};+function h$$vI()+{+  var a;+  var b;+  a = h$r1;+  b = h$r2;+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$pp14(a, b, h$$vJ);+  return h$e(c);+};+function h$$vH()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$p3(a, b.d1, h$$vI);+  h$l2(b.d2, h$integerzmgmpZCGHCziIntegerziTypeziintegerToInt64);+  return h$ap_1_1_fast();+};+function h$$vG()+{+  --h$sp;+  h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziFDzizdwa10_e()+{+  h$p1(h$$vG);+  h$l4(h$c3(h$$vH, h$r2, h$r3, h$r4), h$baseZCGHCziIOziFDzizdfIODeviceFDzuloc2, h$baseZCGHCziIOziFDzizdfIODeviceFDzupred,+  h$baseZCForeignziCziErrorzithrowErrnoIfMinus1Retry2);+  return h$ap_4_3_fast();+};+function h$$vN()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$l4(c, b, a.d1, h$baseZCGHCziIOziFDzizdwa10);+  return h$ap_4_3_fast();+};+function h$baseZCGHCziIOziFDzizdfIODeviceFD12_e()+{+  h$p3(h$r3, h$r4, h$$vN);+  return h$e(h$r2);+};+function h$baseZCGHCziIOziFDzizdfIODeviceFDzuds_e()+{+  h$bh();+  var a = h$hs_negateInt64(0, 1);+  h$r1 = h$c2(h$baseZCGHCziIntziI64zh_con_e, a, h$ret1);+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziFDzizdfIODeviceFDzupred_e()+{+  h$r3 = h$baseZCGHCziIOziFDzizdfIODeviceFDzuds;+  h$r1 = h$baseZCGHCziIntzizdfEqInt64zuzdczeze;+  return h$baseZCGHCziIntzizdfEqInt64zuzdczeze_e;+};+var h$baseZCGHCziIOziFDzizdfIODeviceFD11 = h$strta("hGetPosn");+function h$$vS()+{+  var a;+  var b;+  a = h$r1;+  b = h$r2;+  --h$sp;+  h$r1 = h$c2(h$baseZCGHCziIntziI64zh_con_e, a, b);+  return h$stack[h$sp];+};+function h$$vR()+{+  var a = h$r1.d1;+  var b = h$base_SEEK_CUR;+  var c = (b | 0);+  h$p1(h$$vS);+  try+  {+    var d;+    var e = { mv: null+            };+    d = h$mkForeignCallback(e);+    h$base_lseek(a, 0, 0, c, d);+    if((e.mv === null))+    {+      e.mv = new h$MVar();+      ++h$sp;+      h$stack[h$sp] = h$unboxFFIResult;+      return h$takeMVar(e.mv);+    }+    else+    {+      var f = e.mv;+      h$r1 = f[0];+      h$r2 = f[1];+    };+  }+  catch(h$GHCziIOziFD_id_60_0)+  {+    return h$throwJSException(h$GHCziIOziFD_id_60_0);+  };+  return h$stack[h$sp];+};+function h$$vQ()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  h$l3(a.d2, b, h$integerzmgmpZCGHCziIntegerziTypeziint64ToInteger);+  return h$ap_1_2_fast();+};+function h$$vP()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$vQ);+  return h$e(a);+};+function h$$vO()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$$vP, a);+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziFDzizdwa9_e()+{+  h$p1(h$$vO);+  h$l4(h$c1(h$$vR, h$r2), h$baseZCGHCziIOziFDzizdfIODeviceFD11, h$baseZCGHCziIOziFDzizdfIODeviceFDzupred,+  h$baseZCForeignziCziErrorzithrowErrnoIfMinus1Retry2);+  return h$ap_4_3_fast();+};+function h$$vT()+{+  var a = h$r1;+  --h$sp;+  h$l2(a.d1, h$baseZCGHCziIOziFDzizdwa9);+  return h$ap_2_1_fast();+};+function h$baseZCGHCziIOziFDzizdfIODeviceFD10_e()+{+  h$p1(h$$vT);+  return h$e(h$r2);+};+function h$$vV()+{+  var a = h$r1;+  --h$sp;+  h$r1 = a.d1;+  return h$stack[h$sp];+};+function h$$vU()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$vV);+  return h$e(a);+};+function h$baseZCGHCziIOziFDzizdfIODeviceFD9_e()+{+  h$l2(h$c1(h$$vU, h$r2), h$baseZCSystemziPosixziInternalszifdFileSizze1);+  return h$baseZCSystemziPosixziInternalszifdFileSizze1_e;+};+var h$baseZCGHCziIOziFDzizdfIODeviceFD8 = h$strta("GHC.IO.FD.setSize");+function h$$vY()+{+  var a = h$r1;+  --h$sp;+  h$l2(a, h$baseZCGHCziIOziExceptionziioError);+  return h$ap_2_1_fast();+};+function h$$vX()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  var c = (b | 0);+  if((c === 0))+  {+    h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  }+  else+  {+    var d = h$__hscore_get_errno();+    var e = d;+    h$p1(h$$vY);+    h$l5(h$baseZCDataziMaybeziNothing, h$baseZCDataziMaybeziNothing, (e | 0), h$baseZCGHCziIOziFDzizdfIODeviceFD8,+    h$baseZCForeignziCziErrorzierrnoToIOError);+    return h$ap_4_4_fast();+  };+  return h$stack[h$sp];+};+function h$$vW()+{+  var a;+  var b;+  a = h$r1;+  b = h$r2;+  var c = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p1(h$$vX);+  try+  {+    var d;+    var e = { mv: null+            };+    d = h$mkForeignCallback(e);+    h$base_ftruncate(c, a, b, d);+    if((e.mv === null))+    {+      e.mv = new h$MVar();+      ++h$sp;+      h$stack[h$sp] = h$unboxFFIResult;+      return h$takeMVar(e.mv);+    }+    else+    {+      var f = e.mv;+      h$r1 = f[0];+    };+  }+  catch(h$GHCziIOziFD_id_66_0)+  {+    return h$throwJSException(h$GHCziIOziFD_id_66_0);+  };+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziFDzizdwa8_e()+{+  h$p2(h$r2, h$$vW);+  h$l2(h$r3, h$integerzmgmpZCGHCziIntegerziTypeziintegerToInt64);+  return h$ap_1_1_fast();+};+function h$$vZ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(b, a.d1, h$baseZCGHCziIOziFDzizdwa8);+  return h$ap_3_2_fast();+};+function h$baseZCGHCziIOziFDzizdfIODeviceFD7_e()+{+  h$p2(h$r3, h$$vZ);+  return h$e(h$r2);+};+function h$$v1()+{+  var a = h$r1;+  --h$sp;+  h$r1 = a.d1;+  return h$stack[h$sp];+};+function h$$v0()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$v1);+  return h$e(a);+};+function h$baseZCGHCziIOziFDzizdfIODeviceFD6_e()+{+  h$l2(h$c1(h$$v0, h$r2), h$baseZCSystemziPosixziInternalszisetEcho1);+  return h$baseZCSystemziPosixziInternalszisetEcho1_e;+};+function h$$v3()+{+  var a = h$r1;+  --h$sp;+  h$r1 = a.d1;+  return h$stack[h$sp];+};+function h$$v2()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$v3);+  return h$e(a);+};+function h$baseZCGHCziIOziFDzizdfIODeviceFD5_e()+{+  h$l3(h$baseZCSystemziPosixziInternalszigetEcho2, h$c1(h$$v2, h$r2), h$baseZCSystemziPosixziInternalszigetEcho4);+  return h$ap_3_2_fast();+};+function h$$v7()+{+  var a = h$r1;+  --h$sp;+  if(a)+  {+    h$r1 = false;+  }+  else+  {+    h$r1 = true;+  };+  return h$stack[h$sp];+};+function h$$v6()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$v7);+  return h$e(a);+};+function h$$v5()+{+  var a = h$r1;+  --h$sp;+  h$r1 = a.d1;+  return h$stack[h$sp];+};+function h$$v4()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$v5);+  return h$e(a);+};+function h$baseZCGHCziIOziFDzizdfIODeviceFD4_e()+{+  h$l3(h$c1(h$$v6, h$r3), h$c1(h$$v4, h$r2), h$baseZCSystemziPosixziInternalszisetCooked1);+  return h$baseZCSystemziPosixziInternalszisetCooked1_e;+};+function h$$wb()+{+  var a = h$r1;+  --h$sp;+  h$r1 = a.d1;+  return h$stack[h$sp];+};+function h$$wa()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$wb);+  return h$e(a);+};+function h$$v9()+{+  var a = h$r1;+  --h$sp;+  h$r1 = a.d1;+  return h$stack[h$sp];+};+function h$$v8()+{+  var a = h$r1;+  --h$sp;+  h$p1(h$$v9);+  return h$e(a);+};+function h$baseZCGHCziIOziFDzizdfIODeviceFD3_e()+{+  h$p1(h$$v8);+  h$l2(h$c1(h$$wa, h$r2), h$baseZCSystemziPosixziInternalszifdStat1);+  return h$baseZCSystemziPosixziInternalszifdStat1_e;+};+var h$baseZCGHCziIOziFDzizdfIODeviceFDzuloc1 = h$strta("GHC.IO.FD.dup");+function h$$wd()+{+  var a = h$r1;+  --h$sp;+  h$l2(a, h$baseZCGHCziIOziExceptionziioError);+  return h$ap_2_1_fast();+};+function h$$wc()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  var d = (c | 0);+  if((d === (-1)))+  {+    var e = h$__hscore_get_errno();+    var f = e;+    h$p1(h$$wd);+    h$l5(h$baseZCDataziMaybeziNothing, h$baseZCDataziMaybeziNothing, (f | 0), h$baseZCGHCziIOziFDzizdfIODeviceFDzuloc1,+    h$baseZCForeignziCziErrorzierrnoToIOError);+    return h$ap_4_4_fast();+  }+  else+  {+    h$r1 = h$c2(h$baseZCGHCziIOziFDziFD_con_e, d, b);+  };+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziFDzizdwa7_e()+{+  var a = h$r2;+  h$p2(h$r3, h$$wc);+  try+  {+    var b;+    var c = { mv: null+            };+    b = h$mkForeignCallback(c);+    h$base_dup(a, b);+    if((c.mv === null))+    {+      c.mv = new h$MVar();+      ++h$sp;+      h$stack[h$sp] = h$unboxFFIResult;+      return h$takeMVar(c.mv);+    }+    else+    {+      var d = c.mv;+      h$r1 = d[0];+    };+  }+  catch(h$GHCziIOziFD_id_76_0)+  {+    return h$throwJSException(h$GHCziIOziFD_id_76_0);+  };+  return h$stack[h$sp];+};+function h$$we()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  h$l3(a.d2, b, h$baseZCGHCziIOziFDzizdwa7);+  return h$ap_3_2_fast();+};+function h$baseZCGHCziIOziFDzizdfIODeviceFD2_e()+{+  h$p1(h$$we);+  return h$e(h$r2);+};+var h$baseZCGHCziIOziFDzizdfIODeviceFDzuloc = h$strta("GHC.IO.FD.dup2");+function h$$wg()+{+  var a = h$r1;+  --h$sp;+  h$l2(a, h$baseZCGHCziIOziExceptionziioError);+  return h$ap_2_1_fast();+};+function h$$wf()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var d = a;+  var e = (d | 0);+  if((e === (-1)))+  {+    var f = h$__hscore_get_errno();+    var g = f;+    h$p1(h$$wg);+    h$l5(h$baseZCDataziMaybeziNothing, h$baseZCDataziMaybeziNothing, (g | 0), h$baseZCGHCziIOziFDzizdfIODeviceFDzuloc,+    h$baseZCForeignziCziErrorzierrnoToIOError);+    return h$ap_4_4_fast();+  }+  else+  {+    h$r1 = h$c2(h$baseZCGHCziIOziFDziFD_con_e, c, b);+  };+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziFDzizdwa6_e()+{+  var a = h$r2;+  var b = h$r4;+  h$p3(h$r3, h$r4, h$$wf);+  try+  {+    var c;+    var d = { mv: null+            };+    c = h$mkForeignCallback(d);+    h$base_dup2(a, b, c);+    if((d.mv === null))+    {+      d.mv = new h$MVar();+      ++h$sp;+      h$stack[h$sp] = h$unboxFFIResult;+      return h$takeMVar(d.mv);+    }+    else+    {+      var e = d.mv;+      h$r1 = e[0];+    };+  }+  catch(h$GHCziIOziFD_id_80_0)+  {+    return h$throwJSException(h$GHCziIOziFD_id_80_0);+  };+  return h$stack[h$sp];+};+function h$$wi()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$l4(a.d1, c, b, h$baseZCGHCziIOziFDzizdwa6);+  return h$ap_4_3_fast();+};+function h$$wh()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a.d1;+  h$p3(c, a.d2, h$$wi);+  return h$e(b);+};+function h$baseZCGHCziIOziFDzizdfIODeviceFD1_e()+{+  h$p2(h$r3, h$$wh);+  return h$e(h$r2);+};+function h$baseZCGHCziIOziFDzizdfBufferedIOFD12_e()+{+  var a = h$r3;+  var b = new h$MutVar(h$baseZCGHCziForeignPtrziNoFinalizzers);+  var c = h$newByteArray(8096);+  h$r1 = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, c, 0, h$c2(h$baseZCGHCziForeignPtrziMallocPtr_con_e, c, b), a, 8096,+  0, 0);+  return h$stack[h$sp];+};+var h$baseZCGHCziIOziFDzizdfBufferedIOFD11 = h$strta("GHC.IO.FD.fdRead");+function h$$wr()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  var c = (b | 0);+  if((c === (-1)))+  {+    h$l2(h$baseZCGHCziIOziFDzizdfBufferedIOFD11, h$baseZCForeignziCziErrorzithrowErrno1);+    return h$baseZCForeignziCziErrorzithrowErrno1_e;+  }+  else+  {+    h$r1 = c;+  };+  return h$stack[h$sp];+};+function h$$wq()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = b.d3;+  var f = b.d4;+  var g = ((e - f) | 0);+  var h = (g | 0);+  var i;+  var j;+  i = c;+  j = (d + f);+  h$p1(h$$wr);+  try+  {+    var k;+    var l = { mv: null+            };+    k = h$mkForeignCallback(l);+    h$base_read(a, i, j, h, k);+    if((l.mv === null))+    {+      l.mv = new h$MVar();+      ++h$sp;+      h$stack[h$sp] = h$unboxFFIResult;+      return h$takeMVar(l.mv);+    }+    else+    {+      var m = l.mv;+      h$r1 = m[0];+    };+  }+  catch(h$GHCziIOziFD_id_86_0)+  {+    return h$throwJSException(h$GHCziIOziFD_id_86_0);+  };+  return h$stack[h$sp];+};+function h$$wp()+{+  var a = h$r1;+  --h$sp;+  h$r1 = a;+  return h$stack[h$sp];+};+function h$$wo()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$wp);+  return h$e(a);+};+function h$$wn()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 7)];+  var c = h$stack[(h$sp - 6)];+  var d = h$stack[(h$sp - 5)];+  var e = h$stack[(h$sp - 4)];+  var f = h$stack[(h$sp - 3)];+  var g = h$stack[(h$sp - 2)];+  var h = h$stack[(h$sp - 1)];+  h$sp -= 8;+  var i = a;+  h$r1 = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, b, c, d, e, f, g, ((h + i) | 0));+  return h$stack[h$sp];+};+function h$$wm()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = b.d3;+  var f = b.d4;+  var g = b.d5;+  h$bh();+  h$p8(a, c, d, e, f, g, b.d6, h$$wn);+  return h$e(b.d7);+};+function h$$wl()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 7)];+  var c = h$stack[(h$sp - 6)];+  var d = h$stack[(h$sp - 5)];+  var e = h$stack[(h$sp - 4)];+  var f = h$stack[(h$sp - 3)];+  var g = h$stack[(h$sp - 2)];+  var h = h$stack[(h$sp - 1)];+  h$sp -= 8;+  var i = h$c1(h$$wo, a);+  h$r1 = h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, i, h$c8(h$$wm, b, c, d, e, f, g, h, i));+  return h$stack[h$sp];+};+function h$$wk()+{+  var a = h$r1;+  --h$sp;+  h$l2(a, h$baseZCGHCziIOziExceptionziioError);+  return h$ap_2_1_fast();+};+function h$$wj()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 7)];+  var c = h$stack[(h$sp - 6)];+  var d = h$stack[(h$sp - 5)];+  var e = h$stack[(h$sp - 4)];+  var f = h$stack[(h$sp - 3)];+  var g = h$stack[(h$sp - 2)];+  var h = h$stack[(h$sp - 1)];+  h$sp -= 8;+  var i = a;+  var j = (i | 0);+  if((j === (-1)))+  {+    var k = h$__hscore_get_errno();+    var l = k;+    h$p1(h$$wk);+    h$l5(h$baseZCDataziMaybeziNothing, h$baseZCDataziMaybeziNothing, (l | 0), h$baseZCGHCziIOziFDzizdfBufferedIOFD11,+    h$baseZCForeignziCziErrorzierrnoToIOError);+    return h$ap_4_4_fast();+  }+  else+  {+    h$r1 = h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, j, h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, b, c, d, e, f, g,+    ((h + j) | 0)));+  };+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziFDzizdwa5_e()+{+  var a = h$r2;+  var b = h$r3;+  var c = h$r4;+  var d = h$r5;+  var e = h$r6;+  var f = h$r7;+  var g = h$r8;+  var h = h$r9;+  var i = h$maskStatus();+  var j = i;+  if((j === 1))+  {+    var k = ((f - h) | 0);+    var l = (k | 0);+    var m;+    var n;+    m = b;+    n = (c + h);+    h$p8(b, c, d, e, f, g, h, h$$wj);+    try+    {+      var o;+      var p = { mv: null+              };+      o = h$mkForeignCallback(p);+      h$base_read(a, m, n, l, o);+      if((p.mv === null))+      {+        p.mv = new h$MVar();+        ++h$sp;+        h$stack[h$sp] = h$unboxFFIResult;+        return h$takeMVar(p.mv);+      }+      else+      {+        var q = p.mv;+        h$r1 = q[0];+      };+    }+    catch(h$GHCziIOziFD_id_86_3)+    {+      return h$throwJSException(h$GHCziIOziFD_id_86_3);+    };+  }+  else+  {+    h$p8(b, c, d, e, f, g, h, h$$wl);+    return h$maskUnintAsync(h$c5(h$$wq, a, b, c, f, h));+  };+  return h$stack[h$sp];+};+function h$$wt()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a.d1;+  var d = a.d2;+  var e = d.d1;+  var f = d.d2;+  var g = d.d3;+  var h = d.d4;+  var i = d.d5;+  h$l9(d.d6, i, h, g, f, e, c, b, h$baseZCGHCziIOziFDzizdwa5);+  return h$ap_gen_fast(2056);+};+function h$$ws()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a.d1, h$$wt);+  return h$e(b);+};+function h$baseZCGHCziIOziFDzizdfBufferedIOFD10_e()+{+  h$p2(h$r3, h$$ws);+  return h$e(h$r2);+};+function h$$wz()+{+  var a = h$r1;+  --h$sp;+  h$l2(a, h$baseZCGHCziIOziExceptionziioError);+  return h$ap_2_1_fast();+};+function h$$wy()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  var d = (c | 0);+  switch (d)+  {+    case ((-1)):+      var e = h$__hscore_get_errno();+      var f = e;+      h$p1(h$$wz);+      h$l5(h$baseZCDataziMaybeziNothing, h$baseZCDataziMaybeziNothing, (f | 0), b, h$baseZCForeignziCziErrorzierrnoToIOError);+      return h$ap_4_4_fast();+    case (0):+      h$r1 = h$baseZCGHCziIOziFDzizdfBufferedIOFD9;+      break;+    default:+      h$r1 = d;+  };+  return h$stack[h$sp];+};+function h$$wx()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 2)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 6;+  var f = a;+  var g;+  var h;+  g = c;+  h = (e + d);+  h$pp2(h$$wy);+  try+  {+    var i;+    var j = { mv: null+            };+    i = h$mkForeignCallback(j);+    h$base_read(b, g, h, f, i);+    if((j.mv === null))+    {+      j.mv = new h$MVar();+      ++h$sp;+      h$stack[h$sp] = h$unboxFFIResult;+      return h$takeMVar(j.mv);+    }+    else+    {+      var k = j.mv;+      h$r1 = k[0];+    };+  }+  catch(h$GHCziIOziFD_id_90_0)+  {+    return h$throwJSException(h$GHCziIOziFD_id_90_0);+  };+  return h$stack[h$sp];+};+function h$$ww()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  h$sp -= 6;+  h$pp40(a, h$$wx);+  return h$e(b);+};+function h$$wv()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  h$sp -= 5;+  var c = a.d1;+  h$pp52(c, a.d2, h$$ww);+  return h$e(b);+};+function h$$wu()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = b.d3;+  h$p5(a, c, e, b.d4, h$$wv);+  return h$e(d);+};+function h$baseZCGHCziIOziFDzizdwa4_e()+{+  var a = h$r2;+  var b = h$r3;+  var c = h$r4;+  var d = h$r5;+  var e = h$r6;+  var f = h$maskStatus();+  var g = h$c5(h$$wu, a, b, c, d, e);+  var h = f;+  if((h === 1))+  {+    h$r1 = g;+    return h$ap_1_0_fast();+  }+  else+  {+    return h$maskUnintAsync(g);+  };+};+var h$baseZCGHCziIOziFDzizdfBufferedIOFD8 = h$strta("GHC.IO.FD.fdReadNonBlocking");+function h$$wB()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 7)];+  var c = h$stack[(h$sp - 6)];+  var d = h$stack[(h$sp - 5)];+  var e = h$stack[(h$sp - 4)];+  var f = h$stack[(h$sp - 3)];+  var g = h$stack[(h$sp - 2)];+  var h = h$stack[(h$sp - 1)];+  h$sp -= 8;+  var i = a;+  if((i === (-1)))+  {+    h$r1 = h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, h$baseZCDataziMaybeziNothing,+    h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, b, c, d, e, f, g, h));+  }+  else+  {+    h$r1 = h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, h$c1(h$baseZCDataziMaybeziJust_con_e, a),+    h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, b, c, d, e, f, g, ((h + i) | 0)));+  };+  return h$stack[h$sp];+};+function h$$wA()+{+  var a = h$r1;+  h$sp -= 8;+  h$pp128(h$$wB);+  return h$e(a);+};+function h$baseZCGHCziIOziFDzizdwa3_e()+{+  var a = h$r2;+  var b = h$r3;+  var c = h$r4;+  var d = h$r5;+  var e = h$r6;+  var f = h$r7;+  var g = h$r8;+  var h = h$r9;+  var i = ((f - h) | 0);+  var j = b;+  h$p8(b, c, d, e, f, g, h, h$$wA);+  h$l6((i | 0), h$baseZCGHCziIOziFDzizdfBufferedIOFD7, h$c2(h$baseZCGHCziPtrziPtr_con_e, j, (c + h)), a,+  h$baseZCGHCziIOziFDzizdfBufferedIOFD8, h$baseZCGHCziIOziFDzizdwa4);+  return h$ap_gen_fast(1286);+};+function h$$wD()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a.d1;+  var d = a.d2;+  var e = d.d1;+  var f = d.d2;+  var g = d.d3;+  var h = d.d4;+  var i = d.d5;+  h$l9(d.d6, i, h, g, f, e, c, b, h$baseZCGHCziIOziFDzizdwa3);+  return h$ap_gen_fast(2056);+};+function h$$wC()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a.d1, h$$wD);+  return h$e(b);+};+function h$baseZCGHCziIOziFDzizdfBufferedIOFD6_e()+{+  h$p2(h$r3, h$$wC);+  return h$e(h$r2);+};+function h$$wF()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  var c = a.d2;+  var d = c.d1;+  var e = c.d2;+  h$r1 = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, b, d, e, h$baseZCGHCziIOziBufferziWriteBuffer, c.d4, 0, 0);+  return h$stack[h$sp];+};+function h$$wE()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$wF);+  return h$e(a);+};+function h$baseZCGHCziIOziFDzizdfBufferedIOFD5_e()+{+  h$r1 = h$c1(h$$wE, h$r3);+  return h$stack[h$sp];+};+function h$$wI()+{+  var a = h$stack[(h$sp - 5)];+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 2)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 6;+  h$r1 = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, 0, 0);+  return h$stack[h$sp];+};+function h$$wH()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 7)];+  var c = h$stack[(h$sp - 6)];+  var d = h$stack[(h$sp - 2)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 8;+  var f = a.d1;+  var g = b;+  h$pp32(h$$wI);+  h$l4(((e - d) | 0), h$c2(h$baseZCGHCziPtrziPtr_con_e, g, (c + d)), f, h$baseZCGHCziIOziFDzizdwa2);+  return h$ap_4_3_fast();+};+function h$$wG()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a.d1;+  var d = a.d2;+  var e = d.d1;+  var f = d.d2;+  var g = d.d3;+  var h = d.d4;+  var i = d.d5;+  h$p8(c, e, f, g, h, i, d.d6, h$$wH);+  return h$e(b);+};+function h$baseZCGHCziIOziFDzizdfBufferedIOFD3_e()+{+  h$p2(h$r2, h$$wG);+  return h$e(h$r3);+};+var h$baseZCGHCziIOziFDzizdfBufferedIOFD2 = h$strta("GHC.IO.FD.fdWriteNonBlocking");+function h$$wT()+{+  var a = h$r1;+  --h$sp;+  h$l2(a, h$baseZCGHCziIOziExceptionziioError);+  return h$ap_2_1_fast();+};+function h$$wS()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  var c = (b | 0);+  if((c === (-1)))+  {+    var d = h$__hscore_get_errno();+    var e = d;+    h$p1(h$$wT);+    h$l5(h$baseZCDataziMaybeziNothing, h$baseZCDataziMaybeziNothing, (e | 0), h$baseZCGHCziIOziFDzizdfBufferedIOFD2,+    h$baseZCForeignziCziErrorzierrnoToIOError);+    return h$ap_4_4_fast();+  }+  else+  {+    h$r1 = (c | 0);+  };+  return h$stack[h$sp];+};+function h$$wR()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var e = a;+  var f = (e | 0);+  h$p1(h$$wS);+  try+  {+    var g;+    var h = { mv: null+            };+    g = h$mkForeignCallback(h);+    h$base_write(b, c, d, f, g);+    if((h.mv === null))+    {+      h.mv = new h$MVar();+      ++h$sp;+      h$stack[h$sp] = h$unboxFFIResult;+      return h$takeMVar(h.mv);+    }+    else+    {+      var i = h.mv;+      h$r1 = i[0];+    };+  }+  catch(h$GHCziIOziFD_id_102_0)+  {+    return h$throwJSException(h$GHCziIOziFD_id_102_0);+  };+  return h$stack[h$sp];+};+function h$$wQ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var c = a.d1;+  h$pp14(c, a.d2, h$$wR);+  return h$e(b);+};+function h$$wP()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$p3(a, b.d2, h$$wQ);+  return h$e(c);+};+function h$$wO()+{+  var a = h$r1;+  --h$sp;+  h$r1 = a;+  return h$stack[h$sp];+};+function h$$wN()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$wO);+  return h$e(a);+};+function h$$wM()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$$wN, a);+  return h$stack[h$sp];+};+function h$$wL()+{+  var a = h$r1;+  --h$sp;+  h$r1 = a;+  return h$stack[h$sp];+};+function h$$wK()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$wL);+  return h$e(a);+};+function h$$wJ()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$$wK, a);+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziFDzizdwa1_e()+{+  var a = h$r2;+  var b = h$r3;+  var c = h$r4;+  var d = h$maskStatus();+  var e = h$c3(h$$wP, a, b, c);+  var f = d;+  if((f === 1))+  {+    h$p1(h$$wJ);+    h$r1 = e;+    return h$ap_1_0_fast();+  }+  else+  {+    h$p1(h$$wM);+    return h$maskUnintAsync(e);+  };+};+function h$$wW()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 7)];+  var c = h$stack[(h$sp - 6)];+  var d = h$stack[(h$sp - 5)];+  var e = h$stack[(h$sp - 4)];+  var f = h$stack[(h$sp - 3)];+  var g = h$stack[(h$sp - 2)];+  var h = h$stack[(h$sp - 1)];+  h$sp -= 8;+  var i = a;+  var j = ((g + i) | 0);+  if((j === h))+  {+    h$r1 = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, b, c, d, e, f, 0, 0);+  }+  else+  {+    h$r1 = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, b, c, d, e, f, j, h);+  };+  return h$stack[h$sp];+};+function h$$wV()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = b.d3;+  var f = b.d4;+  var g = b.d5;+  h$bh();+  h$p8(a, c, d, e, f, g, b.d6, h$$wW);+  return h$e(b.d7);+};+function h$$wU()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 7)];+  var c = h$stack[(h$sp - 6)];+  var d = h$stack[(h$sp - 5)];+  var e = h$stack[(h$sp - 4)];+  var f = h$stack[(h$sp - 3)];+  var g = h$stack[(h$sp - 2)];+  var h = h$stack[(h$sp - 1)];+  h$sp -= 8;+  h$r1 = h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, a, h$c8(h$$wV, b, c, d, e, f, g, h, a));+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziFDzizdwa_e()+{+  var a = h$r2;+  var b = h$r3;+  var c = h$r4;+  var d = h$r5;+  var e = h$r6;+  var f = h$r7;+  var g = h$r8;+  var h = h$r9;+  var i = b;+  h$p8(b, c, d, e, f, g, h, h$$wU);+  h$l4(((h - g) | 0), h$c2(h$baseZCGHCziPtrziPtr_con_e, i, (c + g)), a, h$baseZCGHCziIOziFDzizdwa1);+  return h$ap_4_3_fast();+};+function h$$wY()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a.d1;+  var d = a.d2;+  var e = d.d1;+  var f = d.d2;+  var g = d.d3;+  var h = d.d4;+  var i = d.d5;+  h$l9(d.d6, i, h, g, f, e, c, b, h$baseZCGHCziIOziFDzizdwa);+  return h$ap_gen_fast(2056);+};+function h$$wX()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a.d1, h$$wY);+  return h$e(b);+};+function h$baseZCGHCziIOziFDzizdfBufferedIOFD1_e()+{+  h$p2(h$r3, h$$wX);+  return h$e(h$r2);+};+function h$baseZCGHCziIOziFDziFD_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziFDziFD_e()+{+  h$r1 = h$c2(h$baseZCGHCziIOziFDziFD_con_e, h$r2, h$r3);+  return h$stack[h$sp];+};+function h$$w0()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c2(h$baseZCGHCziIOziFDziFD_con_e, b, a);+  return h$stack[h$sp];+};+function h$$wZ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$w0);+  return h$e(b);+};+function h$baseZCGHCziIOziFDzizdWFD_e()+{+  h$p2(h$r3, h$$wZ);+  return h$e(h$r2);+};+function h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnMVarzuzdctoException_e()+{+  h$r1 = h$c2(h$baseZCGHCziExceptionziSomeException_con_e,+  h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnMVar, h$r2);+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnSTMzuzdctoException_e()+{+  h$r1 = h$c2(h$baseZCGHCziExceptionziSomeException_con_e,+  h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnSTM, h$r2);+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziExceptionzizdfExceptionIOExceptionzuzdctoException_e()+{+  h$r1 = h$c2(h$baseZCGHCziExceptionziSomeException_con_e, h$baseZCGHCziIOziExceptionzizdfExceptionIOException, h$r2);+  return h$stack[h$sp];+};+function h$$w3()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$baseZCGHCziIOziExceptionzizdfExceptionIOExceptionzuzdctoException);+  return h$ap_1_1_fast();+};+function h$$w2()+{+  return h$throw(h$c1(h$$w3, h$r2), false);+};+var h$$xN = h$strta("interrupted");+var h$$xO = h$strta("resource vanished");+var h$$xP = h$strta("timeout");+var h$$xQ = h$strta("unsupported operation");+var h$$xR = h$strta("hardware fault");+var h$$xS = h$strta("inappropriate type");+var h$$xT = h$strta("invalid argument");+var h$$xU = h$strta("failed");+var h$$xV = h$strta("protocol error");+var h$$xW = h$strta("system error");+var h$$xX = h$strta("unsatisified constraints");+var h$$xY = h$strta("user error");+var h$$xZ = h$strta("permission denied");+var h$$x0 = h$strta("illegal operation");+var h$$x1 = h$strta("end of file");+var h$$x2 = h$strta("resource exhausted");+var h$$x3 = h$strta("resource busy");+var h$$x4 = h$strta("does not exist");+var h$$x5 = h$strta("already exists");+function h$$w4()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  if((b === 124))+  {+    h$r1 = false;+  }+  else+  {+    h$r1 = true;+  };+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziExceptionziuntangle4_e()+{+  h$p1(h$$w4);+  return h$e(h$r2);+};+function h$$w5()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a.d1;+  var d = a.d2;+  var e = d.d1;+  var f = d.d2;+  var g = d.d3;+  h$l7(b, d.d5, g, f, e, c, h$baseZCGHCziIOziExceptionzizdwzdcshowsPrec1);+  return h$ap_gen_fast(1542);+};+function h$baseZCGHCziIOziExceptionzizdfShowIOExceptionzuzdcshowsPrec_e()+{+  h$p2(h$r4, h$$w5);+  return h$e(h$r3);+};+function h$$w6()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  var c = a.d2;+  var d = c.d1;+  var e = c.d2;+  var f = c.d3;+  h$l7(h$ghczmprimZCGHCziTypesziZMZN, c.d5, f, e, d, b, h$baseZCGHCziIOziExceptionzizdwzdcshowsPrec1);+  return h$ap_gen_fast(1542);+};+function h$baseZCGHCziIOziExceptionzizdfShowIOExceptionzuzdcshow_e()+{+  h$p1(h$$w6);+  return h$e(h$r2);+};+function h$$w7()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  switch (a.f.a)+  {+    case (1):+      h$l3(b, h$$x5, h$baseZCGHCziBasezizpzp);+      return h$ap_2_2_fast();+    case (2):+      h$l3(b, h$$x4, h$baseZCGHCziBasezizpzp);+      return h$ap_2_2_fast();+    case (3):+      h$l3(b, h$$x3, h$baseZCGHCziBasezizpzp);+      return h$ap_2_2_fast();+    case (4):+      h$l3(b, h$$x2, h$baseZCGHCziBasezizpzp);+      return h$ap_2_2_fast();+    case (5):+      h$l3(b, h$$x1, h$baseZCGHCziBasezizpzp);+      return h$ap_2_2_fast();+    case (6):+      h$l3(b, h$$x0, h$baseZCGHCziBasezizpzp);+      return h$ap_2_2_fast();+    case (7):+      h$l3(b, h$$xZ, h$baseZCGHCziBasezizpzp);+      return h$ap_2_2_fast();+    case (8):+      h$l3(b, h$$xY, h$baseZCGHCziBasezizpzp);+      return h$ap_2_2_fast();+    case (9):+      h$l3(b, h$$xX, h$baseZCGHCziBasezizpzp);+      return h$ap_2_2_fast();+    case (10):+      h$l3(b, h$$xW, h$baseZCGHCziBasezizpzp);+      return h$ap_2_2_fast();+    case (11):+      h$l3(b, h$$xV, h$baseZCGHCziBasezizpzp);+      return h$ap_2_2_fast();+    case (12):+      h$l3(b, h$$xU, h$baseZCGHCziBasezizpzp);+      return h$ap_2_2_fast();+    case (13):+      h$l3(b, h$$xT, h$baseZCGHCziBasezizpzp);+      return h$ap_2_2_fast();+    case (14):+      h$l3(b, h$$xS, h$baseZCGHCziBasezizpzp);+      return h$ap_2_2_fast();+    case (15):+      h$l3(b, h$$xR, h$baseZCGHCziBasezizpzp);+      return h$ap_2_2_fast();+    case (16):+      h$l3(b, h$$xQ, h$baseZCGHCziBasezizpzp);+      return h$ap_2_2_fast();+    case (17):+      h$l3(b, h$$xP, h$baseZCGHCziBasezizpzp);+      return h$ap_2_2_fast();+    case (18):+      h$l3(b, h$$xO, h$baseZCGHCziBasezizpzp);+      return h$ap_2_2_fast();+    default:+      h$l3(b, h$$xN, h$baseZCGHCziBasezizpzp);+      return h$ap_2_2_fast();+  };+};+function h$baseZCGHCziIOziExceptionzizdwzdcshowsPrec2_e()+{+  h$p2(h$r3, h$$w7);+  return h$e(h$r2);+};+var h$baseZCGHCziIOziExceptionzizdfShowIOException3 = h$strta(" (");+function h$$xm()+{+  h$l3(h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$baseZCGHCziIOziExceptionzizdfShowIOException2, h$r1.d1), h$r1.d2,+  h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+function h$$xl()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    return h$e(b);+  }+  else+  {+    h$l3(h$c2(h$$xm, b, a), h$baseZCGHCziIOziExceptionzizdfShowIOException3, h$baseZCGHCziBasezizpzp);+    return h$ap_2_2_fast();+  };+};+function h$$xk()+{+  var a = h$r1.d1;+  h$p2(h$r1.d2, h$$xl);+  return h$e(a);+};+function h$$xj()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$l3(h$c2(h$$xk, c, b.d2), a, h$baseZCGHCziIOziExceptionzizdwzdcshowsPrec2);+  return h$ap_2_2_fast();+};+function h$$xi()+{+  h$l3(h$r1.d1, h$baseZCGHCziIOziExceptionzizdfShowArrayException2, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+function h$$xh()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    return h$e(b);+  }+  else+  {+    h$l3(h$c1(h$$xi, b), a, h$baseZCGHCziBasezizpzp);+    return h$ap_2_2_fast();+  };+};+function h$$xg()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  h$p2(h$c3(h$$xj, a, d, b.d3), h$$xh);+  return h$e(c);+};+function h$$xf()+{+  var a = h$r1.d1;+  h$bh();+  h$l3(a, h$baseZCGHCziIOziExceptionzizdfShowArrayException2, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+function h$$xe()+{+  h$l3(h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$baseZCGHCziIOziHandleziTypeszishowHandle1, h$c1(h$$xf, h$r1.d1)), h$r1.+  d2, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+function h$$xd()+{+  var a = h$r1.d1;+  h$bh();+  h$l3(a, h$baseZCGHCziIOziExceptionzizdfShowArrayException2, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+function h$$xc()+{+  h$l3(h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$baseZCGHCziIOziHandleziTypeszishowHandle1, h$c1(h$$xd, h$r1.d1)), h$r1.+  d2, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+function h$$xb()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$l3(h$c2(h$$xe, b, a.d1), h$baseZCGHCziIOziHandleziTypeszishowHandle2, h$baseZCGHCziBasezizpzp);+    return h$ap_2_2_fast();+  }+  else+  {+    h$l3(h$c2(h$$xc, b, a.d1), h$baseZCGHCziIOziHandleziTypeszishowHandle2, h$baseZCGHCziBasezizpzp);+    return h$ap_2_2_fast();+  };+};+function h$$xa()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    return h$e(b);+  }+  else+  {+    h$pp2(h$$xb);+    return h$e(a.d1);+  };+};+function h$$w9()+{+  h$l3(h$r1.d1, h$baseZCGHCziIOziExceptionzizdfShowArrayException2, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+function h$$w8()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if((a.f.a === 1))+  {+    h$p2(c, h$$xa);+    return h$e(b);+  }+  else+  {+    h$l3(h$c1(h$$w9, c), a.d1, h$baseZCGHCziBasezizpzp);+    return h$ap_2_2_fast();+  };+};+function h$baseZCGHCziIOziExceptionzizdwzdcshowsPrec1_e()+{+  h$p3(h$r2, h$c4(h$$xg, h$r3, h$r4, h$r5, h$r7), h$$w8);+  return h$e(h$r6);+};+function h$$xn()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a.d1;+  var d = a.d2;+  var e = d.d1;+  var f = d.d2;+  var g = d.d3;+  h$l7(b, d.d5, g, f, e, c, h$baseZCGHCziIOziExceptionzizdwzdcshowsPrec1);+  return h$ap_gen_fast(1542);+};+function h$baseZCGHCziIOziExceptionzizdfShowIOException1_e()+{+  h$p2(h$r3, h$$xn);+  return h$e(h$r2);+};+function h$baseZCGHCziIOziExceptionzizdfShowIOExceptionzuzdcshowList_e()+{+  h$l4(h$r3, h$r2, h$baseZCGHCziIOziExceptionzizdfShowIOException1, h$baseZCGHCziShowzishowListzuzu);+  return h$baseZCGHCziShowzishowListzuzu_e;+};+var h$baseZCGHCziIOziExceptionzizdfExceptionIOException3 = h$strta("IOException");+function h$baseZCGHCziIOziExceptionzizdfExceptionIOExceptionzuzdctypeRepzh_e()+{+  return h$e(h$baseZCGHCziIOziExceptionzizdfExceptionIOException1);+};+function h$$xp()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l4(b, h$baseZCGHCziIOziExceptionzizdfExceptionIOExceptionzuzdctypeRepzh, a, h$baseZCDataziTypeablezicast);+  return h$baseZCDataziTypeablezicast_e;+};+function h$$xo()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  h$p2(a.d2, h$$xp);+  h$l2(b, h$baseZCGHCziExceptionzizdp1Exception);+  return h$baseZCGHCziExceptionzizdp1Exception_e;+};+function h$baseZCGHCziIOziExceptionzizdfExceptionIOExceptionzuzdcfromException_e()+{+  h$p1(h$$xo);+  return h$e(h$r2);+};+function h$$xq()+{+  --h$sp;+  h$r1 = h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnSTM2;+  return h$ap_0_0_fast();+};+function h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnSTMzuzdcshowsPrec_e()+{+  h$p1(h$$xq);+  return h$e(h$r3);+};+function h$$xr()+{+  --h$sp;+  return h$e(h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnSTM3);+};+function h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnSTMzuzdcshow_e()+{+  h$p1(h$$xr);+  return h$e(h$r2);+};+var h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnSTM3 = h$strta("thread blocked indefinitely in an STM transaction");+function h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnSTM2_e()+{+  h$l3(h$r2, h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnSTM3, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+function h$$xs()+{+  --h$sp;+  h$r1 = h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnSTM2;+  return h$ap_0_0_fast();+};+function h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnSTM1_e()+{+  h$p1(h$$xs);+  return h$e(h$r2);+};+function h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnSTMzuzdcshowList_e()+{+  h$l4(h$r3, h$r2, h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnSTM1, h$baseZCGHCziShowzishowListzuzu);+  return h$baseZCGHCziShowzishowListzuzu_e;+};+var h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnSTMzuww5 = h$strta("BlockedIndefinitelyOnSTM");+function h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnSTMzuzdctypeRepzh_e()+{+  return h$e(h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnSTM1);+};+function h$$xu()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l4(b, h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnSTMzuzdctypeRepzh, a,+  h$baseZCDataziTypeablezicast);+  return h$baseZCDataziTypeablezicast_e;+};+function h$$xt()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  h$p2(a.d2, h$$xu);+  h$l2(b, h$baseZCGHCziExceptionzizdp1Exception);+  return h$baseZCGHCziExceptionzizdp1Exception_e;+};+function h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnSTMzuzdcfromException_e()+{+  h$p1(h$$xt);+  return h$e(h$r2);+};+function h$$xv()+{+  --h$sp;+  h$r1 = h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnMVar2;+  return h$ap_0_0_fast();+};+function h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnMVarzuzdcshowsPrec_e()+{+  h$p1(h$$xv);+  return h$e(h$r3);+};+function h$$xw()+{+  --h$sp;+  return h$e(h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnMVar3);+};+function h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnMVarzuzdcshow_e()+{+  h$p1(h$$xw);+  return h$e(h$r2);+};+var h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnMVar3 = h$strta("thread blocked indefinitely in an MVar operation");+function h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnMVar2_e()+{+  h$l3(h$r2, h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnMVar3, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+function h$$xx()+{+  --h$sp;+  h$r1 = h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnMVar2;+  return h$ap_0_0_fast();+};+function h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnMVar1_e()+{+  h$p1(h$$xx);+  return h$e(h$r2);+};+function h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnMVarzuzdcshowList_e()+{+  h$l4(h$r3, h$r2, h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnMVar1, h$baseZCGHCziShowzishowListzuzu);+  return h$baseZCGHCziShowzishowListzuzu_e;+};+var h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnMVarzuww5 = h$strta("BlockedIndefinitelyOnMVar");+function h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnMVarzuzdctypeRepzh_e()+{+  return h$e(h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnMVar1);+};+function h$$xz()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l4(b, h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnMVarzuzdctypeRepzh, a,+  h$baseZCDataziTypeablezicast);+  return h$baseZCDataziTypeablezicast_e;+};+function h$$xy()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  h$p2(a.d2, h$$xz);+  h$l2(b, h$baseZCGHCziExceptionzizdp1Exception);+  return h$baseZCGHCziExceptionzizdp1Exception_e;+};+function h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnMVarzuzdcfromException_e()+{+  h$p1(h$$xy);+  return h$e(h$r2);+};+var h$baseZCGHCziIOziExceptionzizdfExceptionAsyncExceptionzuww5 = h$strta("AsyncException");+function h$baseZCGHCziIOziExceptionzizdfExceptionAsyncExceptionzuzdctypeRepzh_e()+{+  return h$e(h$baseZCGHCziIOziExceptionzizdfExceptionAsyncException1);+};+function h$$xD()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l4(b, h$baseZCGHCziIOziExceptionzizdfExceptionAsyncExceptionzuzdctypeRepzh, a, h$baseZCDataziTypeablezicast);+  return h$baseZCDataziTypeablezicast_e;+};+function h$$xC()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  h$p2(a.d2, h$$xD);+  h$l2(b, h$baseZCGHCziExceptionzizdp1Exception);+  return h$baseZCGHCziExceptionzizdp1Exception_e;+};+function h$$xB()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a.d1;+  var d = a.d2;+  var e = d.d1;+  var f = d.d2;+  if(h$hs_eqWord64(c, e, (-645907477), (-1617761578)))+  {+    if(h$hs_eqWord64(f, d.d3, (-980415011), (-840439589)))+    {+      h$p1(h$$xC);+      h$r1 = b;+      return h$ap_0_0_fast();+    }+    else+    {+      h$r1 = h$baseZCDataziMaybeziNothing;+    };+  }+  else+  {+    h$r1 = h$baseZCDataziMaybeziNothing;+  };+  return h$stack[h$sp];+};+function h$$xA()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  h$p2(a.d2, h$$xB);+  ++h$sp;+  h$stack[h$sp] = h$ap_1_0;+  h$l2(b, h$baseZCGHCziExceptionzizdp1Exception);+  return h$baseZCGHCziExceptionzizdp1Exception_e;+};+function h$baseZCGHCziIOziExceptionzizdfExceptionAsyncExceptionzuzdsasyncExceptionFromException_e()+{+  h$p1(h$$xA);+  return h$e(h$r2);+};+var h$baseZCGHCziIOziExceptionzizdfShowArrayException2 = h$strta(": ");+var h$baseZCGHCziIOziExceptionzizdfExceptionArrayException3 = h$strta("base");+var h$baseZCGHCziIOziExceptionzizdfExceptionArrayExceptionzuww4 = h$strta("GHC.IO.Exception");+function h$baseZCGHCziIOziExceptionziBlockedIndefinitelyOnMVar_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziExceptionziBlockedIndefinitelyOnSTM_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziExceptionziIOError_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziExceptionziIOError_e()+{+  h$r1 = h$c6(h$baseZCGHCziIOziExceptionziIOError_con_e, h$r2, h$r3, h$r4, h$r5, h$r6, h$r7);+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziExceptionziInterrupted_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziExceptionziResourceVanished_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziExceptionziTimeExpired_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziExceptionziUnsupportedOperation_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziExceptionziHardwareFault_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziExceptionziInappropriateType_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziExceptionziInvalidArgument_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziExceptionziOtherError_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziExceptionziProtocolError_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziExceptionziUnsatisfiedConstraints_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziExceptionziUserError_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziExceptionziPermissionDenied_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziExceptionziIllegalOperation_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziExceptionziResourceExhausted_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziExceptionziResourceBusy_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziExceptionziNoSuchThing_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziExceptionziAlreadyExists_con_e()+{+  return h$stack[h$sp];+};+function h$$xL()+{+  h$l3(h$baseZCGHCziIOziExceptionziuntangle2, h$r1.d1, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+function h$$xK()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l3(h$c1(h$$xL, b), a, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+var h$$baseZCGHCziIOziException_ea = h$str(": ");+function h$$xJ()+{+  var a = h$r1.d1;+  h$r4 = h$c2(h$$xK, a, h$r1.d2);+  h$r3 = 0;+  h$r2 = h$$baseZCGHCziIOziException_ea();+  h$r1 = h$ghczmprimZCGHCziCStringziunpackAppendCStringzh;+  return h$ap_2_3_fast();+};+function h$$xI()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(h$c2(h$$xJ, a, h$r2), h$r1, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+function h$$xH()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  --h$sp;+  var d = a;+  if((d === 124))+  {+    h$l2(h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$baseZCGHCziIOziExceptionziuntangle1, c), b);+    ++h$sp;+    ++h$sp;+    return h$$xI;+  }+  else+  {+    h$l2(h$ghczmprimZCGHCziTypesziZMZN, b);+    ++h$sp;+    ++h$sp;+    return h$$xI;+  };+};+function h$$xG()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  --h$sp;+  if((a.f.a === 1))+  {+    h$l2(h$ghczmprimZCGHCziTypesziZMZN, b);+    ++h$sp;+    ++h$sp;+    return h$$xI;+  }+  else+  {+    var c = a.d1;+    var d = a.d2;+    ++h$sp;+    h$pp6(d, h$$xH);+    return h$e(c);+  };+};+function h$$xF()+{+  var a;+  var b;+  a = h$r1;+  b = h$r2;+  h$sp -= 2;+  var c = a;+  var d = b;+  ++h$sp;+  h$p2(c, h$$xG);+  return h$e(d);+};+function h$$xE()+{+  var a = h$r1;+  h$sp -= 2;+  h$pp2(h$$xF);+  h$l3(a, h$baseZCGHCziIOziExceptionziuntangle4, h$baseZCGHCziListzizdwspan);+  return h$ap_2_2_fast();+};+function h$baseZCGHCziIOziExceptionziuntangle_e()+{+  h$p2(h$r4, h$$xE);+  h$r1 = h$ghczmprimZCGHCziCStringziunpackCStringUtf8zh;+  return h$ghczmprimZCGHCziCStringziunpackCStringUtf8zh_e;+};+function h$baseZCGHCziIOziExceptionziioError_e()+{+  h$r1 = h$$xM;+  return h$ap_2_1_fast();+};+function h$baseZCGHCziIOziExceptionziioException_e()+{+  h$r1 = h$$xM;+  return h$ap_2_1_fast();+};+function h$baseZCGHCziIOziExceptionzizdfxExceptionIOException_e()+{+  h$bh();+  return h$e(h$baseZCGHCziIOziExceptionzizdfExceptionIOException);+};+function h$baseZCGHCziIOziExceptionziuserError_e()+{+  h$r1 = h$c6(h$baseZCGHCziIOziExceptionziIOError_con_e, h$baseZCDataziMaybeziNothing,+  h$baseZCGHCziIOziExceptionziUserError, h$ghczmprimZCGHCziTypesziZMZN, h$r2, h$baseZCDataziMaybeziNothing,+  h$baseZCDataziMaybeziNothing);+  return h$stack[h$sp];+};+function h$$x7()+{+  --h$sp;+  h$l2(h$baseZCGHCziIOziEncodingziFailurezirecoverDecode2, h$baseZCGHCziIOziExceptionziioException);+  return h$ap_2_1_fast();+};+function h$$x6()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p1(h$$x7);+  return h$e(a);+};+function h$baseZCGHCziIOziEncodingziUTF8ziutf6_e()+{+  h$p2(h$r3, h$$x6);+  return h$e(h$r2);+};+function h$baseZCGHCziIOziEncodingziUTF8ziutf4_e()+{+  h$r1 = h$baseZCGHCziIOziEncodingziUTF8ziutf5;+  return h$stack[h$sp];+};+function h$$x9()+{+  var a = h$stack[(h$sp - 4)];+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 5;+  var d = a.dv.getUint32((b + (c << 2)), true);+  h$r1 = h$baseZCGHCziIOziEncodingziFailurezizdwa2;+  return h$ap_1_0_fast();+};+function h$$x8()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a.d1;+  var d = a.d2;+  var e = d.d1;+  var f = d.d2;+  h$p5(c, e, f, d.d5, h$$x9);+  return h$e(b);+};+function h$baseZCGHCziIOziEncodingziUTF8ziutf3_e()+{+  h$p2(h$r3, h$$x8);+  return h$e(h$r2);+};+function h$baseZCGHCziIOziEncodingziUTF8ziutf1_e()+{+  h$r1 = h$baseZCGHCziIOziEncodingziUTF8ziutf2;+  return h$stack[h$sp];+};+var h$baseZCGHCziIOziEncodingziUTF8zimkUTF5 = h$strta("UTF-8");+function h$$yp()+{+  var a = h$stack[(h$sp - 19)];+  var b = h$stack[(h$sp - 18)];+  var c = h$stack[(h$sp - 17)];+  var d = h$stack[(h$sp - 16)];+  var e = h$stack[(h$sp - 15)];+  var f = h$stack[(h$sp - 14)];+  var g = h$stack[(h$sp - 13)];+  var h = h$stack[(h$sp - 12)];+  var i = h$stack[(h$sp - 11)];+  var j = h$stack[(h$sp - 10)];+  var k = h$stack[(h$sp - 9)];+  var l = h$stack[(h$sp - 8)];+  var m = h$stack[(h$sp - 7)];+  var n = h$stack[(h$sp - 6)];+  var o = h$stack[(h$sp - 5)];+  var p = h$stack[(h$sp - 4)];+  var q = h$stack[(h$sp - 3)];+  var r = h$stack[(h$sp - 2)];+  var s = h$stack[(h$sp - 1)];+  h$sp -= 20;+  var t = p;+  if((t === 244))+  {+    if((((q >>> 1) > 64) || (((q >>> 1) == 64) && ((q & 1) >= 0))))+    {+      if((((q >>> 1) < 71) || (((q >>> 1) == 71) && ((q & 1) <= 1))))+      {+        if((((r >>> 1) > 64) || (((r >>> 1) == 64) && ((r & 1) >= 0))))+        {+          if((((r >>> 1) < 95) || (((r >>> 1) == 95) && ((r & 1) <= 1))))+          {+            if((((s >>> 1) > 64) || (((s >>> 1) == 64) && ((s & 1) >= 0))))+            {+              if((((s >>> 1) < 95) || (((s >>> 1) == 95) && ((s & 1) <= 1))))+              {+                var u = s;+                var v = ((u - 128) | 0);+                var w = r;+                var x = ((w - 128) | 0);+                var y = (x << 6);+                var z = q;+                var A = ((z - 128) | 0);+                var B = (A << 12);+                var C = ((1048576 + B) | 0);+                var D = ((C + y) | 0);+                var E = ((D + v) | 0);+                g.dv.setUint32((h + (o << 2)), E, true);+                h$l2(((o + 1) | 0), ((n + 4) | 0));+                h$sp += 13;+                ++h$sp;+                return h$$ya;+              }+              else+              {+                var F = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+                var G;+                if((n === f))+                {+                  G = m;+                }+                else+                {+                  G = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+                };+                h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInvalidSequence, G, F);+              };+            }+            else+            {+              var H = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+              var I;+              if((n === f))+              {+                I = m;+              }+              else+              {+                I = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+              };+              h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInvalidSequence, I, H);+            };+          }+          else+          {+            var J = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+            var K;+            if((n === f))+            {+              K = m;+            }+            else+            {+              K = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+            };+            h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInvalidSequence, K, J);+          };+        }+        else+        {+          var L = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+          var M;+          if((n === f))+          {+            M = m;+          }+          else+          {+            M = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+          };+          h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInvalidSequence, M, L);+        };+      }+      else+      {+        var N = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+        var O;+        if((n === f))+        {+          O = m;+        }+        else+        {+          O = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+        };+        h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInvalidSequence, O, N);+      };+    }+    else+    {+      var P = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+      var Q;+      if((n === f))+      {+        Q = m;+      }+      else+      {+        Q = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+      };+      h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInvalidSequence, Q, P);+    };+  }+  else+  {+    var R = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+    var S;+    if((n === f))+    {+      S = m;+    }+    else+    {+      S = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+    };+    h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInvalidSequence, S, R);+  };+  return h$stack[h$sp];+};+function h$$yo()+{+  var a = h$stack[(h$sp - 13)];+  var b = h$stack[(h$sp - 12)];+  var c = h$stack[(h$sp - 6)];+  var d = h$stack[(h$sp - 5)];+  var e = h$stack[(h$sp - 4)];+  var f = h$stack[(h$sp - 3)];+  var g = h$stack[(h$sp - 2)];+  var h = h$stack[(h$sp - 1)];+  h$sp -= 20;+  if((((e >>> 1) > 120) || (((e >>> 1) == 120) && ((e & 1) >= 1))))+  {+    if((((e >>> 1) < 121) || (((e >>> 1) == 121) && ((e & 1) <= 1))))+    {+      if((((f >>> 1) > 64) || (((f >>> 1) == 64) && ((f & 1) >= 0))))+      {+        if((((f >>> 1) < 95) || (((f >>> 1) == 95) && ((f & 1) <= 1))))+        {+          if((((g >>> 1) > 64) || (((g >>> 1) == 64) && ((g & 1) >= 0))))+          {+            if((((g >>> 1) < 95) || (((g >>> 1) == 95) && ((g & 1) <= 1))))+            {+              if((((h >>> 1) > 64) || (((h >>> 1) == 64) && ((h & 1) >= 0))))+              {+                if((((h >>> 1) < 95) || (((h >>> 1) == 95) && ((h & 1) <= 1))))+                {+                  var i = h;+                  var j = ((i - 128) | 0);+                  var k = g;+                  var l = ((k - 128) | 0);+                  var m = (l << 6);+                  var n = f;+                  var o = ((n - 128) | 0);+                  var p = (o << 12);+                  var q = e;+                  var r = ((q - 240) | 0);+                  var s = (r << 18);+                  var t = ((s + p) | 0);+                  var u = ((t + m) | 0);+                  var v = ((u + j) | 0);+                  a.dv.setUint32((b + (d << 2)), v, true);+                  h$l2(((d + 1) | 0), ((c + 4) | 0));+                  h$sp += 13;+                  ++h$sp;+                  return h$$ya;+                }+                else+                {+                  h$sp += 19;+                  ++h$sp;+                  return h$$yp;+                };+              }+              else+              {+                h$sp += 19;+                ++h$sp;+                return h$$yp;+              };+            }+            else+            {+              h$sp += 19;+              ++h$sp;+              return h$$yp;+            };+          }+          else+          {+            h$sp += 19;+            ++h$sp;+            return h$$yp;+          };+        }+        else+        {+          h$sp += 19;+          ++h$sp;+          return h$$yp;+        };+      }+      else+      {+        h$sp += 19;+        ++h$sp;+        return h$$yp;+      };+    }+    else+    {+      h$sp += 19;+      ++h$sp;+      return h$$yp;+    };+  }+  else+  {+    h$sp += 19;+    ++h$sp;+    return h$$yp;+  };+};+function h$$yn()+{+  var a = h$stack[(h$sp - 17)];+  var b = h$stack[(h$sp - 16)];+  var c = h$stack[(h$sp - 15)];+  var d = h$stack[(h$sp - 14)];+  var e = h$stack[(h$sp - 13)];+  var f = h$stack[(h$sp - 12)];+  var g = h$stack[(h$sp - 11)];+  var h = h$stack[(h$sp - 10)];+  var i = h$stack[(h$sp - 9)];+  var j = h$stack[(h$sp - 8)];+  var k = h$stack[(h$sp - 7)];+  var l = h$stack[(h$sp - 6)];+  var m = h$stack[(h$sp - 5)];+  var n = h$stack[(h$sp - 4)];+  var o = h$stack[(h$sp - 3)];+  var p = h$stack[(h$sp - 2)];+  var q = h$stack[(h$sp - 1)];+  h$sp -= 18;+  var r = p;+  if((r === 244))+  {+    if((((q >>> 1) > 64) || (((q >>> 1) == 64) && ((q & 1) >= 0))))+    {+      if((((q >>> 1) < 71) || (((q >>> 1) == 71) && ((q & 1) <= 1))))+      {+        var s = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+        var t;+        if((n === f))+        {+          t = m;+        }+        else+        {+          t = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+        };+        h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInputUnderflow, t, s);+      }+      else+      {+        var u = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+        var v;+        if((n === f))+        {+          v = m;+        }+        else+        {+          v = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+        };+        h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInvalidSequence, v, u);+      };+    }+    else+    {+      var w = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+      var x;+      if((n === f))+      {+        x = m;+      }+      else+      {+        x = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+      };+      h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInvalidSequence, x, w);+    };+  }+  else+  {+    var y = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+    var z;+    if((n === f))+    {+      z = m;+    }+    else+    {+      z = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+    };+    h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInvalidSequence, z, y);+  };+  return h$stack[h$sp];+};+function h$$ym()+{+  var a = h$stack[(h$sp - 17)];+  var b = h$stack[(h$sp - 16)];+  var c = h$stack[(h$sp - 15)];+  var d = h$stack[(h$sp - 14)];+  var e = h$stack[(h$sp - 13)];+  var f = h$stack[(h$sp - 12)];+  var g = h$stack[(h$sp - 11)];+  var h = h$stack[(h$sp - 10)];+  var i = h$stack[(h$sp - 9)];+  var j = h$stack[(h$sp - 8)];+  var k = h$stack[(h$sp - 7)];+  var l = h$stack[(h$sp - 6)];+  var m = h$stack[(h$sp - 5)];+  var n = h$stack[(h$sp - 4)];+  var o = h$stack[(h$sp - 3)];+  var p = h$stack[(h$sp - 2)];+  var q = h$stack[(h$sp - 1)];+  h$sp -= 18;+  if((((p >>> 1) > 120) || (((p >>> 1) == 120) && ((p & 1) >= 1))))+  {+    if((((p >>> 1) < 121) || (((p >>> 1) == 121) && ((p & 1) <= 1))))+    {+      if((((q >>> 1) > 64) || (((q >>> 1) == 64) && ((q & 1) >= 0))))+      {+        if((((q >>> 1) < 95) || (((q >>> 1) == 95) && ((q & 1) <= 1))))+        {+          var r = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+          var s;+          if((n === f))+          {+            s = m;+          }+          else+          {+            s = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+          };+          h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInputUnderflow, s, r);+        }+        else+        {+          h$sp += 17;+          ++h$sp;+          return h$$yn;+        };+      }+      else+      {+        h$sp += 17;+        ++h$sp;+        return h$$yn;+      };+    }+    else+    {+      h$sp += 17;+      ++h$sp;+      return h$$yn;+    };+  }+  else+  {+    h$sp += 17;+    ++h$sp;+    return h$$yn;+  };+  return h$stack[h$sp];+};+function h$$yl()+{+  var a = h$stack[(h$sp - 18)];+  var b = h$stack[(h$sp - 17)];+  var c = h$stack[(h$sp - 16)];+  var d = h$stack[(h$sp - 15)];+  var e = h$stack[(h$sp - 14)];+  var f = h$stack[(h$sp - 13)];+  var g = h$stack[(h$sp - 12)];+  var h = h$stack[(h$sp - 11)];+  var i = h$stack[(h$sp - 10)];+  var j = h$stack[(h$sp - 9)];+  var k = h$stack[(h$sp - 8)];+  var l = h$stack[(h$sp - 7)];+  var m = h$stack[(h$sp - 6)];+  var n = h$stack[(h$sp - 5)];+  var o = h$stack[(h$sp - 4)];+  var p = h$stack[(h$sp - 3)];+  var q = h$stack[(h$sp - 2)];+  var r = h$stack[(h$sp - 1)];+  h$sp -= 19;+  var s = p;+  if((s === 244))+  {+    if((((q >>> 1) > 64) || (((q >>> 1) == 64) && ((q & 1) >= 0))))+    {+      if((((q >>> 1) < 71) || (((q >>> 1) == 71) && ((q & 1) <= 1))))+      {+        if((((r >>> 1) > 64) || (((r >>> 1) == 64) && ((r & 1) >= 0))))+        {+          if((((r >>> 1) < 95) || (((r >>> 1) == 95) && ((r & 1) <= 1))))+          {+            var t = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+            var u;+            if((n === f))+            {+              u = m;+            }+            else+            {+              u = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+            };+            h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInputUnderflow, u, t);+          }+          else+          {+            var v = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+            var w;+            if((n === f))+            {+              w = m;+            }+            else+            {+              w = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+            };+            h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInvalidSequence, w, v);+          };+        }+        else+        {+          var x = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+          var y;+          if((n === f))+          {+            y = m;+          }+          else+          {+            y = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+          };+          h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInvalidSequence, y, x);+        };+      }+      else+      {+        var z = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+        var A;+        if((n === f))+        {+          A = m;+        }+        else+        {+          A = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+        };+        h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInvalidSequence, A, z);+      };+    }+    else+    {+      var B = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+      var C;+      if((n === f))+      {+        C = m;+      }+      else+      {+        C = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+      };+      h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInvalidSequence, C, B);+    };+  }+  else+  {+    var D = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+    var E;+    if((n === f))+    {+      E = m;+    }+    else+    {+      E = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+    };+    h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInvalidSequence, E, D);+  };+  return h$stack[h$sp];+};+function h$$yk()+{+  var a = h$stack[(h$sp - 18)];+  var b = h$stack[(h$sp - 17)];+  var c = h$stack[(h$sp - 16)];+  var d = h$stack[(h$sp - 15)];+  var e = h$stack[(h$sp - 14)];+  var f = h$stack[(h$sp - 13)];+  var g = h$stack[(h$sp - 12)];+  var h = h$stack[(h$sp - 11)];+  var i = h$stack[(h$sp - 10)];+  var j = h$stack[(h$sp - 9)];+  var k = h$stack[(h$sp - 8)];+  var l = h$stack[(h$sp - 7)];+  var m = h$stack[(h$sp - 6)];+  var n = h$stack[(h$sp - 5)];+  var o = h$stack[(h$sp - 4)];+  var p = h$stack[(h$sp - 3)];+  var q = h$stack[(h$sp - 2)];+  var r = h$stack[(h$sp - 1)];+  h$sp -= 19;+  if((((p >>> 1) > 120) || (((p >>> 1) == 120) && ((p & 1) >= 1))))+  {+    if((((p >>> 1) < 121) || (((p >>> 1) == 121) && ((p & 1) <= 1))))+    {+      if((((q >>> 1) > 64) || (((q >>> 1) == 64) && ((q & 1) >= 0))))+      {+        if((((q >>> 1) < 95) || (((q >>> 1) == 95) && ((q & 1) <= 1))))+        {+          if((((r >>> 1) > 64) || (((r >>> 1) == 64) && ((r & 1) >= 0))))+          {+            if((((r >>> 1) < 95) || (((r >>> 1) == 95) && ((r & 1) <= 1))))+            {+              var s = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+              var t;+              if((n === f))+              {+                t = m;+              }+              else+              {+                t = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+              };+              h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInputUnderflow, t, s);+            }+            else+            {+              h$sp += 18;+              ++h$sp;+              return h$$yl;+            };+          }+          else+          {+            h$sp += 18;+            ++h$sp;+            return h$$yl;+          };+        }+        else+        {+          h$sp += 18;+          ++h$sp;+          return h$$yl;+        };+      }+      else+      {+        h$sp += 18;+        ++h$sp;+        return h$$yl;+      };+    }+    else+    {+      h$sp += 18;+      ++h$sp;+      return h$$yl;+    };+  }+  else+  {+    h$sp += 18;+    ++h$sp;+    return h$$yl;+  };+  return h$stack[h$sp];+};+function h$$yj()+{+  var a = h$stack[(h$sp - 16)];+  var b = h$stack[(h$sp - 15)];+  var c = h$stack[(h$sp - 14)];+  var d = h$stack[(h$sp - 13)];+  var e = h$stack[(h$sp - 12)];+  var f = h$stack[(h$sp - 11)];+  var g = h$stack[(h$sp - 10)];+  var h = h$stack[(h$sp - 9)];+  var i = h$stack[(h$sp - 8)];+  var j = h$stack[(h$sp - 7)];+  var k = h$stack[(h$sp - 6)];+  var l = h$stack[(h$sp - 5)];+  var m = h$stack[(h$sp - 4)];+  var n = h$stack[(h$sp - 3)];+  var o = h$stack[(h$sp - 2)];+  var p = h$stack[(h$sp - 1)];+  h$sp -= 17;+  if((((p >>> 1) > 120) || (((p >>> 1) == 120) && ((p & 1) >= 0))))+  {+    switch (((f - n) | 0))+    {+      case (1):+        var q = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+        var r;+        if((n === f))+        {+          r = m;+        }+        else+        {+          r = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+        };+        h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInputUnderflow, r, q);+        break;+      case (2):+        var s = ((n + 1) | 0);+        var t;+        var u;+        t = a;+        u = (b + s);+        var v = t.u8[(u + 0)];+        var w = p;+        if((w === 240))+        {+          if((((v >>> 1) > 72) || (((v >>> 1) == 72) && ((v & 1) >= 0))))+          {+            if((((v >>> 1) < 95) || (((v >>> 1) == 95) && ((v & 1) <= 1))))+            {+              var x = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+              var y;+              if((n === f))+              {+                y = m;+              }+              else+              {+                y = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+              };+              h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInputUnderflow, y, x);+            }+            else+            {+              h$sp += 17;+              h$stack[h$sp] = v;+              ++h$sp;+              return h$$ym;+            };+          }+          else+          {+            h$sp += 17;+            h$stack[h$sp] = v;+            ++h$sp;+            return h$$ym;+          };+        }+        else+        {+          h$sp += 17;+          h$stack[h$sp] = v;+          ++h$sp;+          return h$$ym;+        };+        break;+      case (3):+        var z = ((n + 1) | 0);+        var A;+        var B;+        A = a;+        B = (b + z);+        var C = A.u8[(B + 0)];+        var D = ((n + 2) | 0);+        var E;+        var F;+        E = a;+        F = (b + D);+        var G = E.u8[(F + 0)];+        var H = p;+        if((H === 240))+        {+          if((((C >>> 1) > 72) || (((C >>> 1) == 72) && ((C & 1) >= 0))))+          {+            if((((C >>> 1) < 95) || (((C >>> 1) == 95) && ((C & 1) <= 1))))+            {+              if((((G >>> 1) > 64) || (((G >>> 1) == 64) && ((G & 1) >= 0))))+              {+                if((((G >>> 1) < 95) || (((G >>> 1) == 95) && ((G & 1) <= 1))))+                {+                  var I = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+                  var J;+                  if((n === f))+                  {+                    J = m;+                  }+                  else+                  {+                    J = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+                  };+                  h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInputUnderflow, J, I);+                }+                else+                {+                  h$sp += 18;+                  h$stack[(h$sp - 1)] = C;+                  h$stack[h$sp] = G;+                  ++h$sp;+                  return h$$yk;+                };+              }+              else+              {+                h$sp += 18;+                h$stack[(h$sp - 1)] = C;+                h$stack[h$sp] = G;+                ++h$sp;+                return h$$yk;+              };+            }+            else+            {+              h$sp += 18;+              h$stack[(h$sp - 1)] = C;+              h$stack[h$sp] = G;+              ++h$sp;+              return h$$yk;+            };+          }+          else+          {+            h$sp += 18;+            h$stack[(h$sp - 1)] = C;+            h$stack[h$sp] = G;+            ++h$sp;+            return h$$yk;+          };+        }+        else+        {+          h$sp += 18;+          h$stack[(h$sp - 1)] = C;+          h$stack[h$sp] = G;+          ++h$sp;+          return h$$yk;+        };+        break;+      default:+        var K = ((n + 1) | 0);+        var L;+        var M;+        L = a;+        M = (b + K);+        var N = L.u8[(M + 0)];+        var O = ((n + 2) | 0);+        var P;+        var Q;+        P = a;+        Q = (b + O);+        var R = P.u8[(Q + 0)];+        var S = ((n + 3) | 0);+        var T;+        var U;+        T = a;+        U = (b + S);+        var V = T.u8[(U + 0)];+        var W = p;+        if((W === 240))+        {+          if((((N >>> 1) > 72) || (((N >>> 1) == 72) && ((N & 1) >= 0))))+          {+            if((((N >>> 1) < 95) || (((N >>> 1) == 95) && ((N & 1) <= 1))))+            {+              if((((R >>> 1) > 64) || (((R >>> 1) == 64) && ((R & 1) >= 0))))+              {+                if((((R >>> 1) < 95) || (((R >>> 1) == 95) && ((R & 1) <= 1))))+                {+                  if((((V >>> 1) > 64) || (((V >>> 1) == 64) && ((V & 1) >= 0))))+                  {+                    if((((V >>> 1) < 95) || (((V >>> 1) == 95) && ((V & 1) <= 1))))+                    {+                      var X = V;+                      var Y = ((X - 128) | 0);+                      var Z = R;+                      var aa = ((Z - 128) | 0);+                      var ab = (aa << 6);+                      var ac = N;+                      var ad = ((ac - 128) | 0);+                      var ae = (ad << 12);+                      var af = ((ae + ab) | 0);+                      var ag = ((af + Y) | 0);+                      g.dv.setUint32((h + (o << 2)), ag, true);+                      h$l2(((o + 1) | 0), ((n + 4) | 0));+                      h$sp += 13;+                      ++h$sp;+                      return h$$ya;+                    }+                    else+                    {+                      h$sp += 19;+                      h$stack[(h$sp - 2)] = N;+                      h$stack[(h$sp - 1)] = R;+                      h$stack[h$sp] = V;+                      ++h$sp;+                      return h$$yo;+                    };+                  }+                  else+                  {+                    h$sp += 19;+                    h$stack[(h$sp - 2)] = N;+                    h$stack[(h$sp - 1)] = R;+                    h$stack[h$sp] = V;+                    ++h$sp;+                    return h$$yo;+                  };+                }+                else+                {+                  h$sp += 19;+                  h$stack[(h$sp - 2)] = N;+                  h$stack[(h$sp - 1)] = R;+                  h$stack[h$sp] = V;+                  ++h$sp;+                  return h$$yo;+                };+              }+              else+              {+                h$sp += 19;+                h$stack[(h$sp - 2)] = N;+                h$stack[(h$sp - 1)] = R;+                h$stack[h$sp] = V;+                ++h$sp;+                return h$$yo;+              };+            }+            else+            {+              h$sp += 19;+              h$stack[(h$sp - 2)] = N;+              h$stack[(h$sp - 1)] = R;+              h$stack[h$sp] = V;+              ++h$sp;+              return h$$yo;+            };+          }+          else+          {+            h$sp += 19;+            h$stack[(h$sp - 2)] = N;+            h$stack[(h$sp - 1)] = R;+            h$stack[h$sp] = V;+            ++h$sp;+            return h$$yo;+          };+        }+        else+        {+          h$sp += 19;+          h$stack[(h$sp - 2)] = N;+          h$stack[(h$sp - 1)] = R;+          h$stack[h$sp] = V;+          ++h$sp;+          return h$$yo;+        };+    };+  }+  else+  {+    var ah = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+    var ai;+    if((n === f))+    {+      ai = m;+    }+    else+    {+      ai = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+    };+    h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInvalidSequence, ai, ah);+  };+  return h$stack[h$sp];+};+function h$$yi()+{+  var a = h$stack[(h$sp - 18)];+  var b = h$stack[(h$sp - 17)];+  var c = h$stack[(h$sp - 16)];+  var d = h$stack[(h$sp - 15)];+  var e = h$stack[(h$sp - 14)];+  var f = h$stack[(h$sp - 13)];+  var g = h$stack[(h$sp - 12)];+  var h = h$stack[(h$sp - 11)];+  var i = h$stack[(h$sp - 10)];+  var j = h$stack[(h$sp - 9)];+  var k = h$stack[(h$sp - 8)];+  var l = h$stack[(h$sp - 7)];+  var m = h$stack[(h$sp - 6)];+  var n = h$stack[(h$sp - 5)];+  var o = h$stack[(h$sp - 4)];+  var p = h$stack[(h$sp - 3)];+  var q = h$stack[(h$sp - 2)];+  var r = h$stack[(h$sp - 1)];+  h$sp -= 19;+  if((((p >>> 1) > 119) || (((p >>> 1) == 119) && ((p & 1) >= 0))))+  {+    if((((q >>> 1) > 64) || (((q >>> 1) == 64) && ((q & 1) >= 0))))+    {+      if((((q >>> 1) < 95) || (((q >>> 1) == 95) && ((q & 1) <= 1))))+      {+        if((((r >>> 1) > 64) || (((r >>> 1) == 64) && ((r & 1) >= 0))))+        {+          if((((r >>> 1) < 95) || (((r >>> 1) == 95) && ((r & 1) <= 1))))+          {+            var s = r;+            var t = ((s - 128) | 0);+            var u = q;+            var v = ((u - 128) | 0);+            var w = (v << 6);+            var x = p;+            var y = ((x - 224) | 0);+            var z = (y << 12);+            var A = ((z + w) | 0);+            var B = ((A + t) | 0);+            g.dv.setUint32((h + (o << 2)), B, true);+            h$l2(((o + 1) | 0), ((n + 3) | 0));+            h$sp += 13;+            ++h$sp;+            return h$$ya;+          }+          else+          {+            var C = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+            var D;+            if((n === f))+            {+              D = m;+            }+            else+            {+              D = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+            };+            h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInvalidSequence, D, C);+          };+        }+        else+        {+          var E = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+          var F;+          if((n === f))+          {+            F = m;+          }+          else+          {+            F = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+          };+          h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInvalidSequence, F, E);+        };+      }+      else+      {+        var G = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+        var H;+        if((n === f))+        {+          H = m;+        }+        else+        {+          H = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+        };+        h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInvalidSequence, H, G);+      };+    }+    else+    {+      var I = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+      var J;+      if((n === f))+      {+        J = m;+      }+      else+      {+        J = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+      };+      h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInvalidSequence, J, I);+    };+  }+  else+  {+    var K = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+    var L;+    if((n === f))+    {+      L = m;+    }+    else+    {+      L = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+    };+    h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInvalidSequence, L, K);+  };+  return h$stack[h$sp];+};+function h$$yh()+{+  var a = h$stack[(h$sp - 12)];+  var b = h$stack[(h$sp - 11)];+  var c = h$stack[(h$sp - 5)];+  var d = h$stack[(h$sp - 4)];+  var e = h$stack[(h$sp - 3)];+  var f = h$stack[(h$sp - 2)];+  var g = h$stack[(h$sp - 1)];+  h$sp -= 19;+  var h = e;+  if((h === 237))+  {+    if((((f >>> 1) > 64) || (((f >>> 1) == 64) && ((f & 1) >= 0))))+    {+      if((((f >>> 1) < 79) || (((f >>> 1) == 79) && ((f & 1) <= 1))))+      {+        if((((g >>> 1) > 64) || (((g >>> 1) == 64) && ((g & 1) >= 0))))+        {+          if((((g >>> 1) < 95) || (((g >>> 1) == 95) && ((g & 1) <= 1))))+          {+            var i = g;+            var j = ((i - 128) | 0);+            var k = f;+            var l = ((k - 128) | 0);+            var m = (l << 6);+            var n = ((53248 + m) | 0);+            var o = ((n + j) | 0);+            a.dv.setUint32((b + (d << 2)), o, true);+            h$l2(((d + 1) | 0), ((c + 3) | 0));+            h$sp += 13;+            ++h$sp;+            return h$$ya;+          }+          else+          {+            h$sp += 18;+            ++h$sp;+            return h$$yi;+          };+        }+        else+        {+          h$sp += 18;+          ++h$sp;+          return h$$yi;+        };+      }+      else+      {+        h$sp += 18;+        ++h$sp;+        return h$$yi;+      };+    }+    else+    {+      h$sp += 18;+      ++h$sp;+      return h$$yi;+    };+  }+  else+  {+    h$sp += 18;+    ++h$sp;+    return h$$yi;+  };+};+function h$$yg()+{+  var a = h$stack[(h$sp - 12)];+  var b = h$stack[(h$sp - 11)];+  var c = h$stack[(h$sp - 5)];+  var d = h$stack[(h$sp - 4)];+  var e = h$stack[(h$sp - 3)];+  var f = h$stack[(h$sp - 2)];+  var g = h$stack[(h$sp - 1)];+  h$sp -= 19;+  if((((e >>> 1) > 112) || (((e >>> 1) == 112) && ((e & 1) >= 1))))+  {+    if((((e >>> 1) < 118) || (((e >>> 1) == 118) && ((e & 1) <= 0))))+    {+      if((((f >>> 1) > 64) || (((f >>> 1) == 64) && ((f & 1) >= 0))))+      {+        if((((f >>> 1) < 95) || (((f >>> 1) == 95) && ((f & 1) <= 1))))+        {+          if((((g >>> 1) > 64) || (((g >>> 1) == 64) && ((g & 1) >= 0))))+          {+            if((((g >>> 1) < 95) || (((g >>> 1) == 95) && ((g & 1) <= 1))))+            {+              var h = g;+              var i = ((h - 128) | 0);+              var j = f;+              var k = ((j - 128) | 0);+              var l = (k << 6);+              var m = e;+              var n = ((m - 224) | 0);+              var o = (n << 12);+              var p = ((o + l) | 0);+              var q = ((p + i) | 0);+              a.dv.setUint32((b + (d << 2)), q, true);+              h$l2(((d + 1) | 0), ((c + 3) | 0));+              h$sp += 13;+              ++h$sp;+              return h$$ya;+            }+            else+            {+              h$sp += 18;+              ++h$sp;+              return h$$yh;+            };+          }+          else+          {+            h$sp += 18;+            ++h$sp;+            return h$$yh;+          };+        }+        else+        {+          h$sp += 18;+          ++h$sp;+          return h$$yh;+        };+      }+      else+      {+        h$sp += 18;+        ++h$sp;+        return h$$yh;+      };+    }+    else+    {+      h$sp += 18;+      ++h$sp;+      return h$$yh;+    };+  }+  else+  {+    h$sp += 18;+    ++h$sp;+    return h$$yh;+  };+};+function h$$yf()+{+  var a = h$stack[(h$sp - 17)];+  var b = h$stack[(h$sp - 16)];+  var c = h$stack[(h$sp - 15)];+  var d = h$stack[(h$sp - 14)];+  var e = h$stack[(h$sp - 13)];+  var f = h$stack[(h$sp - 12)];+  var g = h$stack[(h$sp - 11)];+  var h = h$stack[(h$sp - 10)];+  var i = h$stack[(h$sp - 9)];+  var j = h$stack[(h$sp - 8)];+  var k = h$stack[(h$sp - 7)];+  var l = h$stack[(h$sp - 6)];+  var m = h$stack[(h$sp - 5)];+  var n = h$stack[(h$sp - 4)];+  var o = h$stack[(h$sp - 3)];+  var p = h$stack[(h$sp - 2)];+  var q = h$stack[(h$sp - 1)];+  h$sp -= 18;+  if((((p >>> 1) > 119) || (((p >>> 1) == 119) && ((p & 1) >= 0))))+  {+    if((((q >>> 1) > 64) || (((q >>> 1) == 64) && ((q & 1) >= 0))))+    {+      if((((q >>> 1) < 95) || (((q >>> 1) == 95) && ((q & 1) <= 1))))+      {+        var r = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+        var s;+        if((n === f))+        {+          s = m;+        }+        else+        {+          s = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+        };+        h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInputUnderflow, s, r);+      }+      else+      {+        var t = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+        var u;+        if((n === f))+        {+          u = m;+        }+        else+        {+          u = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+        };+        h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInvalidSequence, u, t);+      };+    }+    else+    {+      var v = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+      var w;+      if((n === f))+      {+        w = m;+      }+      else+      {+        w = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+      };+      h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInvalidSequence, w, v);+    };+  }+  else+  {+    var x = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+    var y;+    if((n === f))+    {+      y = m;+    }+    else+    {+      y = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+    };+    h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInvalidSequence, y, x);+  };+  return h$stack[h$sp];+};+function h$$ye()+{+  var a = h$stack[(h$sp - 17)];+  var b = h$stack[(h$sp - 16)];+  var c = h$stack[(h$sp - 15)];+  var d = h$stack[(h$sp - 14)];+  var e = h$stack[(h$sp - 13)];+  var f = h$stack[(h$sp - 12)];+  var g = h$stack[(h$sp - 11)];+  var h = h$stack[(h$sp - 10)];+  var i = h$stack[(h$sp - 9)];+  var j = h$stack[(h$sp - 8)];+  var k = h$stack[(h$sp - 7)];+  var l = h$stack[(h$sp - 6)];+  var m = h$stack[(h$sp - 5)];+  var n = h$stack[(h$sp - 4)];+  var o = h$stack[(h$sp - 3)];+  var p = h$stack[(h$sp - 2)];+  var q = h$stack[(h$sp - 1)];+  h$sp -= 18;+  var r = p;+  if((r === 237))+  {+    if((((q >>> 1) > 64) || (((q >>> 1) == 64) && ((q & 1) >= 0))))+    {+      if((((q >>> 1) < 79) || (((q >>> 1) == 79) && ((q & 1) <= 1))))+      {+        var s = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+        var t;+        if((n === f))+        {+          t = m;+        }+        else+        {+          t = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+        };+        h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInputUnderflow, t, s);+      }+      else+      {+        h$sp += 17;+        ++h$sp;+        return h$$yf;+      };+    }+    else+    {+      h$sp += 17;+      ++h$sp;+      return h$$yf;+    };+  }+  else+  {+    h$sp += 17;+    ++h$sp;+    return h$$yf;+  };+  return h$stack[h$sp];+};+function h$$yd()+{+  var a = h$stack[(h$sp - 17)];+  var b = h$stack[(h$sp - 16)];+  var c = h$stack[(h$sp - 15)];+  var d = h$stack[(h$sp - 14)];+  var e = h$stack[(h$sp - 13)];+  var f = h$stack[(h$sp - 12)];+  var g = h$stack[(h$sp - 11)];+  var h = h$stack[(h$sp - 10)];+  var i = h$stack[(h$sp - 9)];+  var j = h$stack[(h$sp - 8)];+  var k = h$stack[(h$sp - 7)];+  var l = h$stack[(h$sp - 6)];+  var m = h$stack[(h$sp - 5)];+  var n = h$stack[(h$sp - 4)];+  var o = h$stack[(h$sp - 3)];+  var p = h$stack[(h$sp - 2)];+  var q = h$stack[(h$sp - 1)];+  h$sp -= 18;+  if((((p >>> 1) > 112) || (((p >>> 1) == 112) && ((p & 1) >= 1))))+  {+    if((((p >>> 1) < 118) || (((p >>> 1) == 118) && ((p & 1) <= 0))))+    {+      if((((q >>> 1) > 64) || (((q >>> 1) == 64) && ((q & 1) >= 0))))+      {+        if((((q >>> 1) < 95) || (((q >>> 1) == 95) && ((q & 1) <= 1))))+        {+          var r = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+          var s;+          if((n === f))+          {+            s = m;+          }+          else+          {+            s = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+          };+          h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInputUnderflow, s, r);+        }+        else+        {+          h$sp += 17;+          ++h$sp;+          return h$$ye;+        };+      }+      else+      {+        h$sp += 17;+        ++h$sp;+        return h$$ye;+      };+    }+    else+    {+      h$sp += 17;+      ++h$sp;+      return h$$ye;+    };+  }+  else+  {+    h$sp += 17;+    ++h$sp;+    return h$$ye;+  };+  return h$stack[h$sp];+};+function h$$yc()+{+  var a = h$stack[(h$sp - 16)];+  var b = h$stack[(h$sp - 15)];+  var c = h$stack[(h$sp - 14)];+  var d = h$stack[(h$sp - 13)];+  var e = h$stack[(h$sp - 12)];+  var f = h$stack[(h$sp - 11)];+  var g = h$stack[(h$sp - 10)];+  var h = h$stack[(h$sp - 9)];+  var i = h$stack[(h$sp - 8)];+  var j = h$stack[(h$sp - 7)];+  var k = h$stack[(h$sp - 6)];+  var l = h$stack[(h$sp - 5)];+  var m = h$stack[(h$sp - 4)];+  var n = h$stack[(h$sp - 3)];+  var o = h$stack[(h$sp - 2)];+  var p = h$stack[(h$sp - 1)];+  h$sp -= 17;+  if((((p >>> 1) > 112) || (((p >>> 1) == 112) && ((p & 1) >= 0))))+  {+    if((((p >>> 1) < 119) || (((p >>> 1) == 119) && ((p & 1) <= 1))))+    {+      switch (((f - n) | 0))+      {+        case (1):+          var q = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+          var r;+          if((n === f))+          {+            r = m;+          }+          else+          {+            r = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+          };+          h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInputUnderflow, r, q);+          break;+        case (2):+          var s = ((n + 1) | 0);+          var t;+          var u;+          t = a;+          u = (b + s);+          var v = t.u8[(u + 0)];+          var w = p;+          if((w === 224))+          {+            if((((v >>> 1) > 80) || (((v >>> 1) == 80) && ((v & 1) >= 0))))+            {+              if((((v >>> 1) < 95) || (((v >>> 1) == 95) && ((v & 1) <= 1))))+              {+                var x = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+                var y;+                if((n === f))+                {+                  y = m;+                }+                else+                {+                  y = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+                };+                h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInputUnderflow, y, x);+              }+              else+              {+                h$sp += 17;+                h$stack[h$sp] = v;+                ++h$sp;+                return h$$yd;+              };+            }+            else+            {+              h$sp += 17;+              h$stack[h$sp] = v;+              ++h$sp;+              return h$$yd;+            };+          }+          else+          {+            h$sp += 17;+            h$stack[h$sp] = v;+            ++h$sp;+            return h$$yd;+          };+          break;+        default:+          var z = ((n + 1) | 0);+          var A;+          var B;+          A = a;+          B = (b + z);+          var C = A.u8[(B + 0)];+          var D = ((n + 2) | 0);+          var E;+          var F;+          E = a;+          F = (b + D);+          var G = E.u8[(F + 0)];+          var H = p;+          if((H === 224))+          {+            if((((C >>> 1) > 80) || (((C >>> 1) == 80) && ((C & 1) >= 0))))+            {+              if((((C >>> 1) < 95) || (((C >>> 1) == 95) && ((C & 1) <= 1))))+              {+                if((((G >>> 1) > 64) || (((G >>> 1) == 64) && ((G & 1) >= 0))))+                {+                  if((((G >>> 1) < 95) || (((G >>> 1) == 95) && ((G & 1) <= 1))))+                  {+                    var I = G;+                    var J = ((I - 128) | 0);+                    var K = C;+                    var L = ((K - 128) | 0);+                    var M = (L << 6);+                    var N = ((M + J) | 0);+                    g.dv.setUint32((h + (o << 2)), N, true);+                    h$l2(((o + 1) | 0), ((n + 3) | 0));+                    h$sp += 13;+                    ++h$sp;+                    return h$$ya;+                  }+                  else+                  {+                    h$sp += 18;+                    h$stack[(h$sp - 1)] = C;+                    h$stack[h$sp] = G;+                    ++h$sp;+                    return h$$yg;+                  };+                }+                else+                {+                  h$sp += 18;+                  h$stack[(h$sp - 1)] = C;+                  h$stack[h$sp] = G;+                  ++h$sp;+                  return h$$yg;+                };+              }+              else+              {+                h$sp += 18;+                h$stack[(h$sp - 1)] = C;+                h$stack[h$sp] = G;+                ++h$sp;+                return h$$yg;+              };+            }+            else+            {+              h$sp += 18;+              h$stack[(h$sp - 1)] = C;+              h$stack[h$sp] = G;+              ++h$sp;+              return h$$yg;+            };+          }+          else+          {+            h$sp += 18;+            h$stack[(h$sp - 1)] = C;+            h$stack[h$sp] = G;+            ++h$sp;+            return h$$yg;+          };+      };+    }+    else+    {+      h$sp += 16;+      ++h$sp;+      return h$$yj;+    };+  }+  else+  {+    h$sp += 16;+    ++h$sp;+    return h$$yj;+  };+  return h$stack[h$sp];+};+function h$$yb()+{+  var a = h$stack[(h$sp - 16)];+  var b = h$stack[(h$sp - 15)];+  var c = h$stack[(h$sp - 14)];+  var d = h$stack[(h$sp - 13)];+  var e = h$stack[(h$sp - 12)];+  var f = h$stack[(h$sp - 11)];+  var g = h$stack[(h$sp - 10)];+  var h = h$stack[(h$sp - 9)];+  var i = h$stack[(h$sp - 8)];+  var j = h$stack[(h$sp - 7)];+  var k = h$stack[(h$sp - 6)];+  var l = h$stack[(h$sp - 5)];+  var m = h$stack[(h$sp - 4)];+  var n = h$stack[(h$sp - 3)];+  var o = h$stack[(h$sp - 2)];+  var p = h$stack[(h$sp - 1)];+  h$sp -= 17;+  if((((p >>> 1) > 97) || (((p >>> 1) == 97) && ((p & 1) >= 0))))+  {+    if((((p >>> 1) < 111) || (((p >>> 1) == 111) && ((p & 1) <= 1))))+    {+      var q = ((f - n) | 0);+      if((q < 2))+      {+        var r = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+        var s;+        if((n === f))+        {+          s = m;+        }+        else+        {+          s = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+        };+        h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInputUnderflow, s, r);+      }+      else+      {+        var t = ((n + 1) | 0);+        var u;+        var v;+        u = a;+        v = (b + t);+        var w = u.u8[(v + 0)];+        if((((w >>> 1) < 64) || (((w >>> 1) == 64) && ((w & 1) < 0))))+        {+          var x = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+          var y;+          if((n === f))+          {+            y = m;+          }+          else+          {+            y = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+          };+          h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInvalidSequence, y, x);+        }+        else+        {+          if((((w >>> 1) > 96) || (((w >>> 1) == 96) && ((w & 1) >= 0))))+          {+            var z = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+            var A;+            if((n === f))+            {+              A = m;+            }+            else+            {+              A = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+            };+            h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInvalidSequence, A, z);+          }+          else+          {+            var B = w;+            var C = ((B - 128) | 0);+            var D = p;+            var E = ((D - 192) | 0);+            var F = (E << 6);+            var G = ((F + C) | 0);+            g.dv.setUint32((h + (o << 2)), G, true);+            h$l2(((o + 1) | 0), ((n + 2) | 0));+            h$sp += 13;+            ++h$sp;+            return h$$ya;+          };+        };+      };+    }+    else+    {+      h$sp += 16;+      ++h$sp;+      return h$$yc;+    };+  }+  else+  {+    h$sp += 16;+    ++h$sp;+    return h$$yc;+  };+  return h$stack[h$sp];+};+function h$$ya()+{+  var a = h$stack[(h$sp - 13)];+  var b = h$stack[(h$sp - 12)];+  var c = h$stack[(h$sp - 11)];+  var d = h$stack[(h$sp - 10)];+  var e = h$stack[(h$sp - 9)];+  var f = h$stack[(h$sp - 8)];+  var g = h$stack[(h$sp - 7)];+  var h = h$stack[(h$sp - 6)];+  var i = h$stack[(h$sp - 5)];+  var j = h$stack[(h$sp - 4)];+  var k = h$stack[(h$sp - 3)];+  var l = h$stack[(h$sp - 2)];+  var m = h$stack[(h$sp - 1)];+  h$sp -= 14;+  var n = h$r1;+  var o = h$r2;+  if((o >= k))+  {+    var p = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+    var q;+    if((n === f))+    {+      q = m;+    }+    else+    {+      q = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+    };+    h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziOutputUnderflow, q, p);+  }+  else+  {+    if((n >= f))+    {+      var r = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+      var s;+      if((n === f))+      {+        s = m;+      }+      else+      {+        s = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+      };+      h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInputUnderflow, s, r);+    }+    else+    {+      var t;+      var u;+      t = a;+      u = (b + n);+      var v = t.u8[(u + 0)];+      if((((v >>> 1) < 63) || (((v >>> 1) == 63) && ((v & 1) <= 1))))+      {+        var w = v;+        g.dv.setUint32((h + (o << 2)), w, true);+        h$l2(((o + 1) | 0), ((n + 1) | 0));+        h$sp += 13;+        ++h$sp;+        return h$$ya;+      }+      else+      {+        if((((v >>> 1) > 96) || (((v >>> 1) == 96) && ((v & 1) >= 0))))+        {+          if((((v >>> 1) < 96) || (((v >>> 1) == 96) && ((v & 1) <= 1))))+          {+            var x = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+            var y;+            if((n === f))+            {+              y = m;+            }+            else+            {+              y = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+            };+            h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInvalidSequence, y, x);+          }+          else+          {+            h$sp += 16;+            h$stack[(h$sp - 2)] = n;+            h$stack[(h$sp - 1)] = o;+            h$stack[h$sp] = v;+            ++h$sp;+            return h$$yb;+          };+        }+        else+        {+          h$sp += 16;+          h$stack[(h$sp - 2)] = n;+          h$stack[(h$sp - 1)] = o;+          h$stack[h$sp] = v;+          ++h$sp;+          return h$$yb;+        };+      };+    };+  };+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziEncodingziUTF8zizdwa1_e()+{+  var a = h$r2;+  h$l2(h$r15, h$r7);+  h$p13(a, h$r3, h$r4, h$r5, h$r6, h$r8, h$r9, h$r10, h$r11, h$r12, h$r13, h$r14,+  h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, h$r3, h$r4, h$r5, h$r6, 0, 0));+  ++h$sp;+  return h$$ya;+};+function h$$yr()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 7)];+  var c = h$stack[(h$sp - 6)];+  var d = h$stack[(h$sp - 5)];+  var e = h$stack[(h$sp - 4)];+  var f = h$stack[(h$sp - 3)];+  var g = h$stack[(h$sp - 2)];+  var h = h$stack[(h$sp - 1)];+  h$sp -= 8;+  var i = a.d1;+  var j = a.d2;+  var k = j.d1;+  var l = j.d2;+  var m = j.d3;+  var n = j.d4;+  var o = j.d5;+  h$l15(j.d6, o, n, m, l, k, i, h, g, f, e, d, c, b, h$baseZCGHCziIOziEncodingziUTF8zizdwa1);+  return h$ap_gen_fast(3597);+};+function h$$yq()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a.d1;+  var d = a.d2;+  var e = d.d1;+  var f = d.d2;+  var g = d.d3;+  var h = d.d4;+  var i = d.d5;+  h$p8(c, e, f, g, h, i, d.d6, h$$yr);+  return h$e(b);+};+function h$baseZCGHCziIOziEncodingziUTF8zimkUTF4_e()+{+  h$p2(h$r3, h$$yq);+  return h$e(h$r2);+};+function h$baseZCGHCziIOziEncodingziUTF8zimkUTF3_e()+{+  h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziEncodingziUTF8zimkUTF2_e()+{+  h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  return h$stack[h$sp];+};+function h$$yu()+{+  var a = h$stack[(h$sp - 16)];+  var b = h$stack[(h$sp - 15)];+  var c = h$stack[(h$sp - 14)];+  var d = h$stack[(h$sp - 13)];+  var e = h$stack[(h$sp - 12)];+  var f = h$stack[(h$sp - 11)];+  var g = h$stack[(h$sp - 10)];+  var h = h$stack[(h$sp - 9)];+  var i = h$stack[(h$sp - 8)];+  var j = h$stack[(h$sp - 7)];+  var k = h$stack[(h$sp - 6)];+  var l = h$stack[(h$sp - 5)];+  var m = h$stack[(h$sp - 4)];+  var n = h$stack[(h$sp - 3)];+  var o = h$stack[(h$sp - 2)];+  var p = h$stack[(h$sp - 1)];+  h$sp -= 17;+  var q = ((k - o) | 0);+  if((q < 3))+  {+    var r = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+    var s;+    if((n === f))+    {+      s = m;+    }+    else+    {+      s = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+    };+    h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziOutputUnderflow, s, r);+  }+  else+  {+    var t = (p >> 12);+    var u = ((t + 224) | 0);+    var v = (u & 255);+    var w;+    var x;+    w = g;+    x = (h + o);+    w.u8[(x + 0)] = v;+    var y = (p >> 6);+    var z = (y & 63);+    var A = ((z + 128) | 0);+    var B = (A & 255);+    var C = ((o + 1) | 0);+    var D;+    var E;+    D = g;+    E = (h + C);+    D.u8[(E + 0)] = B;+    var F = (p & 63);+    var G = ((F + 128) | 0);+    var H = (G & 255);+    var I = ((o + 2) | 0);+    var J;+    var K;+    J = g;+    K = (h + I);+    J.u8[(K + 0)] = H;+    h$l2(((o + 3) | 0), ((n + 1) | 0));+    h$sp += 13;+    ++h$sp;+    return h$$ys;+  };+  return h$stack[h$sp];+};+function h$$yt()+{+  var a = h$stack[(h$sp - 16)];+  var b = h$stack[(h$sp - 15)];+  var c = h$stack[(h$sp - 14)];+  var d = h$stack[(h$sp - 13)];+  var e = h$stack[(h$sp - 12)];+  var f = h$stack[(h$sp - 11)];+  var g = h$stack[(h$sp - 10)];+  var h = h$stack[(h$sp - 9)];+  var i = h$stack[(h$sp - 8)];+  var j = h$stack[(h$sp - 7)];+  var k = h$stack[(h$sp - 6)];+  var l = h$stack[(h$sp - 5)];+  var m = h$stack[(h$sp - 4)];+  var n = h$stack[(h$sp - 3)];+  var o = h$stack[(h$sp - 2)];+  var p = h$stack[(h$sp - 1)];+  h$sp -= 17;+  if((56320 <= p))+  {+    if((p <= 57343))+    {+      var q = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+      var r;+      if((n === f))+      {+        r = m;+      }+      else+      {+        r = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+      };+      h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInvalidSequence, r, q);+    }+    else+    {+      h$sp += 16;+      ++h$sp;+      return h$$yu;+    };+  }+  else+  {+    h$sp += 16;+    ++h$sp;+    return h$$yu;+  };+  return h$stack[h$sp];+};+function h$$ys()+{+  var a = h$stack[(h$sp - 13)];+  var b = h$stack[(h$sp - 12)];+  var c = h$stack[(h$sp - 11)];+  var d = h$stack[(h$sp - 10)];+  var e = h$stack[(h$sp - 9)];+  var f = h$stack[(h$sp - 8)];+  var g = h$stack[(h$sp - 7)];+  var h = h$stack[(h$sp - 6)];+  var i = h$stack[(h$sp - 5)];+  var j = h$stack[(h$sp - 4)];+  var k = h$stack[(h$sp - 3)];+  var l = h$stack[(h$sp - 2)];+  var m = h$stack[(h$sp - 1)];+  h$sp -= 14;+  var n = h$r1;+  var o = h$r2;+  if((o >= k))+  {+    var p = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+    var q;+    if((n === f))+    {+      q = m;+    }+    else+    {+      q = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+    };+    h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziOutputUnderflow, q, p);+  }+  else+  {+    if((n >= f))+    {+      var r = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+      var s;+      if((n === f))+      {+        s = m;+      }+      else+      {+        s = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+      };+      h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInputUnderflow, s, r);+    }+    else+    {+      var t = a.dv.getUint32((b + (n << 2)), true);+      var u = t;+      if((u <= 127))+      {+        var v = u;+        var w = (v & 255);+        var x;+        var y;+        x = g;+        y = (h + o);+        x.u8[(y + 0)] = w;+        h$l2(((o + 1) | 0), ((n + 1) | 0));+        h$sp += 13;+        ++h$sp;+        return h$$ys;+      }+      else+      {+        if((u <= 2047))+        {+          var z = ((k - o) | 0);+          if((z < 2))+          {+            var A = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+            var B;+            if((n === f))+            {+              B = m;+            }+            else+            {+              B = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+            };+            h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziOutputUnderflow, B, A);+          }+          else+          {+            var C = (u >> 6);+            var D = ((C + 192) | 0);+            var E = (D & 255);+            var F;+            var G;+            F = g;+            G = (h + o);+            F.u8[(G + 0)] = E;+            var H = (u & 63);+            var I = ((H + 128) | 0);+            var J = (I & 255);+            var K = ((o + 1) | 0);+            var L;+            var M;+            L = g;+            M = (h + K);+            L.u8[(M + 0)] = J;+            h$l2(((o + 2) | 0), ((n + 1) | 0));+            h$sp += 13;+            ++h$sp;+            return h$$ys;+          };+        }+        else+        {+          if((u <= 65535))+          {+            if((55296 <= u))+            {+              if((u <= 56319))+              {+                var N = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+                var O;+                if((n === f))+                {+                  O = m;+                }+                else+                {+                  O = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+                };+                h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziInvalidSequence, O, N);+              }+              else+              {+                h$sp += 16;+                h$stack[(h$sp - 2)] = n;+                h$stack[(h$sp - 1)] = o;+                h$stack[h$sp] = u;+                ++h$sp;+                return h$$yt;+              };+            }+            else+            {+              h$sp += 16;+              h$stack[(h$sp - 2)] = n;+              h$stack[(h$sp - 1)] = o;+              h$stack[h$sp] = u;+              ++h$sp;+              return h$$yt;+            };+          }+          else+          {+            var P = ((k - o) | 0);+            if((P < 4))+            {+              var Q = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, g, h, i, j, k, l, o);+              var R;+              if((n === f))+              {+                R = m;+              }+              else+              {+                R = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, c, d, e, n, f);+              };+              h$r1 = h$c3(h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$baseZCGHCziIOziEncodingziTypesziOutputUnderflow, R, Q);+            }+            else+            {+              var S = (u >> 18);+              var T = ((S + 240) | 0);+              var U = (T & 255);+              var V;+              var W;+              V = g;+              W = (h + o);+              V.u8[(W + 0)] = U;+              var X = (u >> 12);+              var Y = (X & 63);+              var Z = ((Y + 128) | 0);+              var aa = (Z & 255);+              var ab = ((o + 1) | 0);+              var ac;+              var ad;+              ac = g;+              ad = (h + ab);+              ac.u8[(ad + 0)] = aa;+              var ae = (u >> 6);+              var af = (ae & 63);+              var ag = ((af + 128) | 0);+              var ah = (ag & 255);+              var ai = ((o + 2) | 0);+              var aj;+              var ak;+              aj = g;+              ak = (h + ai);+              aj.u8[(ak + 0)] = ah;+              var al = (u & 63);+              var am = ((al + 128) | 0);+              var an = (am & 255);+              var ao = ((o + 3) | 0);+              var ap;+              var aq;+              ap = g;+              aq = (h + ao);+              ap.u8[(aq + 0)] = an;+              h$l2(((o + 4) | 0), ((n + 1) | 0));+              h$sp += 13;+              ++h$sp;+              return h$$ys;+            };+          };+        };+      };+    };+  };+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziEncodingziUTF8zizdwa_e()+{+  var a = h$r2;+  h$l2(h$r15, h$r7);+  h$p13(a, h$r3, h$r4, h$r5, h$r6, h$r8, h$r9, h$r10, h$r11, h$r12, h$r13, h$r14,+  h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, h$r3, h$r4, h$r5, h$r6, 0, 0));+  ++h$sp;+  return h$$ys;+};+function h$$yw()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 7)];+  var c = h$stack[(h$sp - 6)];+  var d = h$stack[(h$sp - 5)];+  var e = h$stack[(h$sp - 4)];+  var f = h$stack[(h$sp - 3)];+  var g = h$stack[(h$sp - 2)];+  var h = h$stack[(h$sp - 1)];+  h$sp -= 8;+  var i = a.d1;+  var j = a.d2;+  var k = j.d1;+  var l = j.d2;+  var m = j.d3;+  var n = j.d4;+  var o = j.d5;+  h$l15(j.d6, o, n, m, l, k, i, h, g, f, e, d, c, b, h$baseZCGHCziIOziEncodingziUTF8zizdwa);+  return h$ap_gen_fast(3597);+};+function h$$yv()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a.d1;+  var d = a.d2;+  var e = d.d1;+  var f = d.d2;+  var g = d.d3;+  var h = d.d4;+  var i = d.d5;+  h$p8(c, e, f, g, h, i, d.d6, h$$yw);+  return h$e(b);+};+function h$baseZCGHCziIOziEncodingziUTF8zimkUTF1_e()+{+  h$p2(h$r3, h$$yv);+  return h$e(h$r2);+};+function h$baseZCGHCziIOziEncodingziTypesziTextEncoding_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziEncodingziTypesziTextEncoding_e()+{+  h$r1 = h$c3(h$baseZCGHCziIOziEncodingziTypesziTextEncoding_con_e, h$r2, h$r3, h$r4);+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziEncodingziTypesziBufferCodec_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziEncodingziTypesziBufferCodec_e()+{+  h$r1 = h$c5(h$baseZCGHCziIOziEncodingziTypesziBufferCodec_con_e, h$r2, h$r3, h$r4, h$r5, h$r6);+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziEncodingziTypesziInvalidSequence_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziEncodingziTypesziOutputUnderflow_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziEncodingziTypesziInputUnderflow_con_e()+{+  return h$stack[h$sp];+};+function h$$yx()+{+  var a = h$r1;+  --h$sp;+  var b = a.d2;+  h$r1 = b.d2;+  return h$ap_0_0_fast();+};+function h$baseZCGHCziIOziEncodingziTypesziclose_e()+{+  h$p1(h$$yx);+  return h$e(h$r2);+};+var h$$yy = h$strta("invalid character");+var h$$yz = h$strta("recoverEncode");+function h$baseZCGHCziIOziEncodingziFailurezizdwa2_e()+{+  h$l2(h$$yA, h$baseZCGHCziIOziExceptionziioException);+  return h$ap_2_1_fast();+};+var h$baseZCGHCziIOziEncodingziFailurezirecoverDecode4 = h$strta("recoverDecode");+var h$baseZCGHCziIOziEncodingziFailurezirecoverDecode3 = h$strta("invalid byte sequence");+function h$$yC()+{+  var a = h$r1.d1;+  a.val = h$r2;+  h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  return h$stack[h$sp];+};+function h$$yB()+{+  var a = h$r1.d1;+  h$r1 = a.val;+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziEncodingzigetLocaleEncoding2_e()+{+  var a = new h$MutVar(h$baseZCGHCziIOziEncodingziUTF8ziutf8);+  h$r1 = h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, h$c1(h$$yB, a), h$c1(h$$yC, a));+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziEncodingzigetLocaleEncoding1_e()+{+  h$bh();+  h$l2(h$baseZCGHCziIOziEncodingzigetLocaleEncoding2, h$baseZCGHCziIOziunsafeDupablePerformIO);+  return h$ap_1_1_fast();+};+function h$baseZCGHCziIOziEncodingzigetForeignEncoding_e()+{+  h$bh();+  h$r1 = h$baseZCGHCziIOziEncodingzigetLocaleEncoding;+  return h$ap_0_0_fast();+};+function h$$yD()+{+  var a = h$r1;+  --h$sp;+  h$r1 = a.d1;+  return h$ap_0_0_fast();+};+function h$baseZCGHCziIOziEncodingzigetLocaleEncoding_e()+{+  h$bh();+  h$p1(h$$yD);+  return h$e(h$baseZCGHCziIOziEncodingzigetLocaleEncoding1);+};+function h$baseZCGHCziIOziDeviceziDZCIODevice_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziDeviceziDZCIODevice_e()+{+  h$r1 = h$c14(h$baseZCGHCziIOziDeviceziDZCIODevice_con_e, h$r2, h$r3, h$r4, h$r5, h$r6, h$r7, h$r8, h$r9, h$r10, h$r11,+  h$r12, h$r13, h$r14, h$r15);+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziDeviceziRelativeSeek_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziDeviceziRawDevice_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziDeviceziRegularFile_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziDeviceziStream_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziDeviceziDirectory_con_e()+{+  return h$stack[h$sp];+};+function h$$yE()+{+  var a = h$r1;+  --h$sp;+  var b = a.d2;+  h$r1 = b.d4;+  return h$ap_0_0_fast();+};+function h$baseZCGHCziIOziDeviceziseek_e()+{+  h$p1(h$$yE);+  return h$e(h$r2);+};+function h$$yF()+{+  var a = h$r1;+  --h$sp;+  var b = a.d2;+  h$r1 = b.d3;+  return h$ap_0_0_fast();+};+function h$baseZCGHCziIOziDeviceziisSeekable_e()+{+  h$p1(h$$yF);+  return h$e(h$r2);+};+function h$$yG()+{+  var a = h$r1;+  --h$sp;+  var b = a.d2;+  h$r1 = b.d2;+  return h$ap_0_0_fast();+};+function h$baseZCGHCziIOziDeviceziisTerminal_e()+{+  h$p1(h$$yG);+  return h$e(h$r2);+};+function h$baseZCGHCziIOziBufferedIOziDZCBufferedIO_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziBufferedIOziDZCBufferedIO_e()+{+  h$r1 = h$c6(h$baseZCGHCziIOziBufferedIOziDZCBufferedIO_con_e, h$r2, h$r3, h$r4, h$r5, h$r6, h$r7);+  return h$stack[h$sp];+};+function h$$yH()+{+  var a = h$r1;+  --h$sp;+  var b = a.d2;+  h$r1 = b.d4;+  return h$ap_0_0_fast();+};+function h$baseZCGHCziIOziBufferedIOziflushWriteBuffer_e()+{+  h$p1(h$$yH);+  return h$e(h$r2);+};+function h$$yI()+{+  var a = h$r1;+  --h$sp;+  var b = a.d2;+  h$r1 = b.d3;+  return h$ap_0_0_fast();+};+function h$baseZCGHCziIOziBufferedIOziemptyWriteBuffer_e()+{+  h$p1(h$$yI);+  return h$e(h$r2);+};+function h$$yJ()+{+  var a = h$r1;+  --h$sp;+  h$r1 = a.d1;+  return h$ap_0_0_fast();+};+function h$baseZCGHCziIOziBufferedIOzinewBuffer_e()+{+  h$p1(h$$yJ);+  return h$e(h$r2);+};+function h$baseZCGHCziIOziBufferziBuffer_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziBufferziBuffer_e()+{+  h$r1 = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, h$r2, h$r3, h$r4, h$r5, h$r6, h$r7, h$r8);+  return h$stack[h$sp];+};+function h$$yN()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 6)];+  var c = h$stack[(h$sp - 5)];+  var d = h$stack[(h$sp - 4)];+  var e = h$stack[(h$sp - 3)];+  var f = h$stack[(h$sp - 2)];+  var g = h$stack[(h$sp - 1)];+  h$sp -= 7;+  h$r1 = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, c, f, g, b, d, e, a);+  return h$stack[h$sp];+};+function h$$yM()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  h$sp -= 7;+  h$pp72(a, h$$yN);+  return h$e(b);+};+function h$$yL()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  h$sp -= 7;+  h$pp68(a, h$$yM);+  return h$e(b);+};+function h$$yK()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  h$sp -= 5;+  var c = a.d1;+  var d = a.d2;+  var e = d.d1;+  h$pp114(c, e, d.d2, h$$yL);+  return h$e(b);+};+function h$baseZCGHCziIOziBufferzizdWBuffer_e()+{+  h$p5(h$r3, h$r4, h$r5, h$r6, h$$yK);+  return h$e(h$r2);+};+function h$baseZCGHCziIOziBufferziWriteBuffer_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziIOziBufferziReadBuffer_con_e()+{+  return h$stack[h$sp];+};+function h$$yQ()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$baseZCGHCziIOziExceptionziuserError);+  return h$ap_1_1_fast();+};+function h$$yP()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$c1(h$$yQ, a), h$$ze);+  return h$ap_1_1_fast();+};+function h$$yO()+{+  return h$throw(h$c1(h$$yP, h$r2), false);+};+function h$$yR()+{+  h$bh();+  h$l2(h$baseZCGHCziIOziExceptionzizdfxExceptionIOException, h$baseZCGHCziExceptionzitoException);+  return h$baseZCGHCziExceptionzitoException_e;+};+function h$$zb()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 2;+  return h$throw(a, false);+};+function h$$za()+{+  var a = h$r1.d1;+  h$p2(h$r2, h$$zb);+  h$l2(h$r1.d2, a);+  return h$ap_2_1_fast();+};+function h$$y9()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(b, a);+  return h$ap_1_1_fast();+};+function h$$y8()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = a;+  return h$stack[h$sp];+};+function h$$y7()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$p2(a, h$$y8);+  h$l2(c, b);+  return h$ap_2_1_fast();+};+function h$$y6()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$pp6(a, h$$y7);+  return h$catch(h$c2(h$$y9, c, a), h$c2(h$$za, b, a));+};+function h$$y5()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 2;+  return h$throw(a, false);+};+function h$$y4()+{+  var a = h$r1.d1;+  h$p2(h$r2, h$$y5);+  h$l2(h$r1.d2, a);+  return h$ap_2_1_fast();+};+function h$$y3()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(b, a);+  return h$ap_1_1_fast();+};+function h$$y2()+{+  return h$unmaskAsync(h$r1.d1);+};+function h$$y1()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = a;+  return h$stack[h$sp];+};+function h$$y0()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$p2(a, h$$y1);+  h$l2(c, b);+  return h$ap_2_1_fast();+};+function h$$yZ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$pp6(a, h$$y0);+  return h$catch(h$c1(h$$y2, h$c2(h$$y3, c, a)), h$c2(h$$y4, b, a));+};+function h$$yY()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$p3(c, b.d2, h$$yZ);+  h$r1 = a;+  return h$ap_1_0_fast();+};+function h$$yX()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 2;+  return h$throw(a, false);+};+function h$$yW()+{+  var a = h$r1.d1;+  h$p2(h$r2, h$$yX);+  h$l2(h$r1.d2, a);+  return h$ap_2_1_fast();+};+function h$$yV()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(b, a);+  return h$ap_1_1_fast();+};+function h$$yU()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = a;+  return h$stack[h$sp];+};+function h$$yT()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$p2(a, h$$yU);+  h$l2(c, b);+  return h$ap_2_1_fast();+};+function h$$yS()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$pp6(a, h$$yT);+  return h$catch(h$c2(h$$yV, c, a), h$c2(h$$yW, b, a));+};+function h$baseZCGHCziIOzibracket1_e()+{+  var a = h$r2;+  var b = h$r3;+  var c = h$r4;+  var d = h$maskStatus();+  switch (d)+  {+    case (0):+      return h$maskAsync(h$c3(h$$yY, a, b, c));+    case (1):+      h$p3(b, c, h$$yS);+      h$r1 = a;+      return h$ap_1_0_fast();+    default:+      h$p3(b, c, h$$y6);+      h$r1 = a;+      return h$ap_1_0_fast();+  };+};+function h$$zc()+{+  var a = h$r1;+  --h$sp;+  h$r1 = a;+  return h$ap_0_0_fast();+};+function h$baseZCGHCziIOziunsafeDupablePerformIO_e()+{+  h$p1(h$$zc);+  h$r1 = h$r2;+  return h$ap_1_0_fast();+};+function h$baseZCGHCziIOzifailIO_e()+{+  h$r1 = h$$zd;+  return h$ap_2_1_fast();+};+var h$$zh = h$strta("mallocForeignPtrBytes: size must be >= 0");+function h$baseZCGHCziForeignPtrzimallocForeignPtrBytes2_e()+{+  h$bh();+  h$l2(h$$zh, h$baseZCGHCziErrzierror);+  return h$ap_1_1_fast();+};+function h$baseZCGHCziForeignPtrziMallocPtr_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziForeignPtrziMallocPtr_e()+{+  h$r1 = h$c2(h$baseZCGHCziForeignPtrziMallocPtr_con_e, h$r2, h$r3);+  return h$stack[h$sp];+};+function h$$zf()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c2(h$baseZCGHCziForeignPtrziMallocPtr_con_e, b, a.d1);+  return h$stack[h$sp];+};+function h$baseZCGHCziForeignPtrzizdWMallocPtr_e()+{+  h$p2(h$r2, h$$zf);+  return h$e(h$r3);+};+function h$baseZCGHCziForeignPtrziPlainForeignPtr_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziForeignPtrziPlainForeignPtr_e()+{+  h$r1 = h$c1(h$baseZCGHCziForeignPtrziPlainForeignPtr_con_e, h$r2);+  return h$stack[h$sp];+};+function h$$zg()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$baseZCGHCziForeignPtrziPlainForeignPtr_con_e, a.d1);+  return h$stack[h$sp];+};+function h$baseZCGHCziForeignPtrzizdWPlainForeignPtr_e()+{+  h$p1(h$$zg);+  return h$e(h$r2);+};+function h$baseZCGHCziForeignPtrziNoFinalizzers_con_e()+{+  return h$stack[h$sp];+};+function h$$zy()+{+  var a = h$r1;+  --h$sp;+  h$sp -= 3;+  var b = a.d1;+  h$l2(a.d2, b);+  h$sp += 3;+  ++h$sp;+  return h$$zk;+};+function h$$zx()+{+  var a = h$r1;+  --h$sp;+  h$sp -= 3;+  var b = a;+  h$sp += 3;+  h$p1(h$$zy);+  return h$e(b);+};+function h$$zw()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  h$sp -= 3;+  if((a.f.a === 2))+  {+    h$r1 = h$baseZCDataziMaybeziNothing;+  }+  else+  {+    h$sp += 3;+    h$p1(h$$zx);+    h$l3(d, c, b);+    return h$ap_3_2_fast();+  };+  return h$stack[h$sp];+};+function h$$zv()+{+  var a = h$r1;+  h$sp -= 2;+  h$r1 = h$c1(h$baseZCDataziMaybeziJust_con_e, a);+  return h$stack[h$sp];+};+function h$$zu()+{+  var a = h$r1;+  h$sp -= 2;+  h$r1 = h$c1(h$baseZCDataziMaybeziJust_con_e, a);+  return h$stack[h$sp];+};+function h$$zt()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 6)];+  var c = h$stack[(h$sp - 5)];+  var d = h$stack[(h$sp - 4)];+  var e = h$stack[(h$sp - 3)];+  var f = h$stack[(h$sp - 2)];+  var g = h$stack[(h$sp - 1)];+  h$sp -= 7;+  if(a)+  {+    c.u8[(d + g)] = 0;+    h$p2(e, h$$zu);+    h$l2(h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, h$c2(h$baseZCGHCziPtrziPtr_con_e, c, d), ((g - f) | 0)), b);+    return h$ap_2_1_fast();+  }+  else+  {+    h$p2(e, h$$zv);+    h$l2(h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, h$c2(h$baseZCGHCziPtrziPtr_con_e, c, d), ((g - f) | 0)), b);+    return h$ap_2_1_fast();+  };+};+function h$$zs()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var c = a.d1;+  var d = a.d2;+  var e = d.d1;+  var f = d.d2;+  var g = d.d5;+  h$pp126(c, e, f, g, d.d6, h$$zt);+  return h$e(b);+};+function h$$zr()+{+  var a = h$stack[(h$sp - 2)];+  var b = h$stack[(h$sp - 1)];+  h$sp -= 5;+  h$pp5(a, h$$zs);+  return h$e(b);+};+function h$$zq()+{+  var a = h$r1;+  --h$sp;+  h$sp -= 4;+  var b = a.d2;+  var c = b.d4;+  var d = b.d6;+  var e = ((c - d) | 0);+  if((e === 0))+  {+    h$r1 = h$baseZCDataziMaybeziNothing;+  }+  else+  {+    h$sp += 4;+    ++h$sp;+    return h$$zr;+  };+  return h$stack[h$sp];+};+function h$$zp()+{+  var a = h$r1;+  --h$sp;+  var b = h$stack[h$sp];+  h$sp -= 4;+  if(a)+  {+    h$sp += 4;+    h$p1(h$$zq);+    return h$e(b);+  }+  else+  {+    h$sp += 4;+    ++h$sp;+    return h$$zr;+  };+};+function h$$zo()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var d = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var e = a.d2;+  var f = e.d5;+  var g = e.d6;+  if((f === g))+  {+    h$pp8(c);+    h$p1(h$$zp);+    return h$e(d);+  }+  else+  {+    h$sp += 3;+    h$pp10(a, h$$zw);+    return h$e(b);+  };+};+function h$$zn()+{+  var a = h$r1;+  h$sp -= 2;+  h$sp -= 3;+  var b = a.d1;+  var c = a.d2;+  var d = c.d1;+  var e = c.d2;+  h$sp += 3;+  h$pp14(b, e, h$$zo);+  return h$e(d);+};+function h$$zm()+{+  var a = h$r1;+  h$sp -= 2;+  h$sp -= 3;+  var b = a;+  h$sp += 3;+  h$pp2(h$$zn);+  return h$e(b);+};+function h$$zl()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$sp -= 3;+  var d = a.d1;+  var e = a.d2;+  var f = e.d1;+  h$sp += 3;+  h$p2(f, h$$zm);+  h$l3(c, b, d);+  return h$ap_3_2_fast();+};+function h$$zk()+{+  var a = h$stack[(h$sp - 3)];+  h$sp -= 4;+  var b = h$r1;+  var c = h$r2;+  h$sp += 3;+  h$p3(b, c, h$$zl);+  return h$e(a);+};+function h$$zj()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  h$r1 = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, b, c, h$c1(h$baseZCGHCziForeignPtrziPlainForeignPtr_con_e, d),+  h$baseZCGHCziIOziBufferziWriteBuffer, a, 0, 0);+  return h$stack[h$sp];+};+function h$$zi()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  h$bh();+  h$p4(a, c, b.d3, h$$zj);+  return h$e(d);+};+function h$baseZCGHCziForeignzizdwa1_e()+{+  var a = h$r2;+  var b = h$r3;+  var c = h$r4;+  var d = h$r5;+  var e = h$r6;+  var f = h$r7;+  var g = h$r8;+  var h = new h$MutVar(h$baseZCGHCziForeignPtrziNoFinalizzers);+  h$l2(h$c4(h$$zi, d, e, f, h), c);+  h$p3(a, b, g);+  ++h$sp;+  return h$$zk;+};+function h$$zJ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l2(a.d1, b);+  return h$ap_1_1_fast();+};+function h$$zI()+{+  h$p2(h$r1.d1, h$$zJ);+  return h$e(h$r2);+};+function h$$zH()+{+  var a = h$r1;+  h$sp -= 2;+  h$r1 = a;+  return h$stack[h$sp];+};+function h$$zG()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  if((a.f.a === 1))+  {+    h$p2(d, h$$zH);+    h$l2(h$mulInt32(c, 2), b);+    return h$ap_2_1_fast();+  }+  else+  {+    h$r1 = a.d1;+  };+  return h$stack[h$sp];+};+function h$$zF()+{+  var a = h$r1;+  h$sp -= 4;+  h$pp8(h$$zG);+  return h$e(a);+};+function h$$zE()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = h$newByteArray(h$r2);+  h$p4(b.d3, h$r2, e, h$$zF);+  h$l8(a, h$r2, 0, e, d, true, c, h$baseZCGHCziForeignzizdwa1);+  return h$ap_gen_fast(1799);+};+function h$$zD()+{+  var a = h$r1;+  h$sp -= 2;+  h$r1 = a;+  return h$stack[h$sp];+};+function h$$zC()+{+  var a = h$stack[(h$sp - 6)];+  var b = h$stack[(h$sp - 5)];+  var c = h$stack[(h$sp - 4)];+  var d = h$stack[(h$sp - 3)];+  var e = h$stack[(h$sp - 2)];+  var f = h$stack[(h$sp - 1)];+  h$sp -= 7;+  var g = new h$MutVar(h$baseZCGHCziForeignPtrziNoFinalizzers);+  var h = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, e, f, h$c1(h$baseZCGHCziForeignPtrziPlainForeignPtr_con_e, g),+  h$baseZCGHCziIOziBufferziReadBuffer, a, 0, a);+  var i = h$c(h$$zE);+  i.d1 = b;+  i.d2 = h$d3(c, h, i);+  h$p2(d, h$$zD);+  h$l2(((a + 1) | 0), i);+  return h$ap_2_1_fast();+};+function h$$zB()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  h$sp -= 4;+  var c = h$newByteArray(h$mulInt32(a, 4));+  h$pp121(a, c, c, 0, h$$zC);+  h$l4(b, h$c2(h$baseZCGHCziPtrziPtr_con_e, c, 0), h$baseZCForeignziStorablezizdfStorableChar,+  h$baseZCForeignziMarshalziArrayzinewArray8);+  return h$baseZCForeignziMarshalziArrayzinewArray8_e;+};+function h$$zA()+{+  var a = h$r1.d1;+  h$p4(a, h$r1.d2, h$r2, h$$zB);+  h$l3(0, a, h$baseZCGHCziListzizdwlenAcc);+  return h$ap_2_2_fast();+};+function h$$zz()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var d = a.d2;+  h$l4(h$c2(h$$zA, b, h$c1(h$$zI, c)), h$baseZCGHCziIOziEncodingziTypesziclose, d.d2, h$baseZCGHCziIOzibracket1);+  return h$baseZCGHCziIOzibracket1_e;+};+function h$baseZCGHCziForeignzicharIsRepresentable3_e()+{+  h$p3(h$r3, h$r4, h$$zz);+  return h$e(h$r2);+};+function h$$z7()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = h$r2;+  var f = a.dv.getInt8((c + e));+  var g = f;+  if((g === 0))+  {+    h$r1 = e;+  }+  else+  {+    h$l2(((e + 1) | 0), d);+    return h$ap_2_1_fast();+  };+  return h$stack[h$sp];+};+function h$$z6()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l3(b, a, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+function h$$z5()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c2(h$$z6, b, a);+  return h$stack[h$sp];+};+function h$$z4()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  h$sp -= 4;+  h$p2(a, h$$z5);+  h$l2(c, b);+  return h$ap_2_1_fast();+};+function h$$z3()+{+  var a = h$r1;+  h$sp -= 3;+  var b = a.d1;+  var c = a.d2;+  var d = c.d1;+  var e = c.d2;+  var f = c.d5;+  var g = c.d6;+  h$pp12(e, h$$z4);+  h$l4(h$c2(h$baseZCGHCziPtrziPtr_con_e, b, d), ((g - f) | 0), h$baseZCForeignziStorablezizdfStorableChar,+  h$baseZCForeignziMarshalziArrayzizdwa8);+  return h$baseZCForeignziMarshalziArrayzizdwa8_e;+};+function h$$z2()+{+  var a = h$r1;+  h$sp -= 2;+  h$pp6(a.d1, h$$z3);+  return h$e(a.d2);+};+function h$$z1()+{+  var a = h$r1;+  h$sp -= 2;+  h$pp2(h$$z2);+  return h$e(a);+};+function h$$z0()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l3(b, a, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+function h$$zZ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c2(h$$z0, b, a);+  return h$stack[h$sp];+};+function h$$zY()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  h$sp -= 4;+  h$p2(a, h$$zZ);+  h$l2(b, c);+  return h$ap_2_1_fast();+};+function h$$zX()+{+  var a = h$r1;+  h$sp -= 3;+  var b = a.d1;+  var c = a.d2;+  var d = c.d1;+  var e = c.d2;+  var f = c.d5;+  var g = c.d6;+  h$pp12(e, h$$zY);+  h$l4(h$c2(h$baseZCGHCziPtrziPtr_con_e, b, d), ((g - f) | 0), h$baseZCForeignziStorablezizdfStorableChar,+  h$baseZCForeignziMarshalziArrayzizdwa8);+  return h$baseZCForeignziMarshalziArrayzizdwa8_e;+};+function h$$zW()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 2)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 5;+  if((a.f.a === 2))+  {+    h$pp5(d, h$$zX);+    return h$e(e);+  }+  else+  {+    h$p2(c, h$$z1);+    h$l3(e, d, b);+    return h$ap_3_2_fast();+  };+};+function h$$zV()+{+  var a = h$r1;+  h$sp -= 2;+  h$r1 = a;+  return h$stack[h$sp];+};+function h$$zU()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  var c = a.d2;+  var d = c.d1;+  var e = c.d2;+  var f = c.d5;+  var g = c.d6;+  h$p2(e, h$$zV);+  h$l4(h$c2(h$baseZCGHCziPtrziPtr_con_e, b, d), ((g - f) | 0), h$baseZCForeignziStorablezizdfStorableChar,+  h$baseZCForeignziMarshalziArrayzizdwa8);+  return h$baseZCForeignziMarshalziArrayzizdwa8_e;+};+function h$$zT()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 5;+  var d = a.d2;+  var e = d.d5;+  var f = d.d6;+  if((e === f))+  {+    h$p1(h$$zU);+    return h$e(c);+  }+  else+  {+    h$pp20(a, h$$zW);+    return h$e(b);+  };+};+function h$$zS()+{+  var a = h$r1;+  h$sp -= 3;+  var b = a.d1;+  var c = a.d2;+  var d = c.d1;+  h$pp28(b, c.d2, h$$zT);+  return h$e(d);+};+function h$$zR()+{+  var a = h$r1;+  h$sp -= 3;+  h$pp4(h$$zS);+  return h$e(a);+};+function h$$zQ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var d = a.d1;+  var e = a.d2;+  h$pp5(e.d1, h$$zR);+  h$l3(b, c, d);+  return h$ap_3_2_fast();+};+function h$$zP()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$p4(c, b.d2, h$r2, h$$zQ);+  return h$e(a);+};+function h$$zO()+{+  var a = h$stack[(h$sp - 5)];+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 2)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 6;+  var f = h$r1;+  var g = h$mulInt32(h$r1, 4);+  if((g < 0))+  {+    h$r1 = h$baseZCGHCziForeignPtrzimallocForeignPtrBytes2;+    return h$ap_0_0_fast();+  }+  else+  {+    var h = new h$MutVar(h$baseZCGHCziForeignPtrziNoFinalizzers);+    var i = h$newByteArray(g);+    var j = h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, i, 0, h$c2(h$baseZCGHCziForeignPtrziMallocPtr_con_e, i, h),+    h$baseZCGHCziIOziBufferziWriteBuffer, f, 0, 0);+    var k = h$c(h$$zP);+    k.d1 = c;+    k.d2 = h$d2(j, k);+    h$l2(h$c7(h$baseZCGHCziIOziBufferziBuffer_con_e, a, b, h$c1(h$baseZCGHCziForeignPtrziPlainForeignPtr_con_e, d),+    h$baseZCGHCziIOziBufferziReadBuffer, e, 0, e), k);+    return h$ap_2_1_fast();+  };+};+function h$$zN()+{+  var a = h$r1;+  h$sp -= 5;+  var b = a;+  if((b <= 1))+  {+    h$r1 = 1;+    h$pp16(b);+    ++h$sp;+    return h$$zO;+  }+  else+  {+    h$r1 = b;+    h$pp16(b);+    ++h$sp;+    return h$$zO;+  };+};+function h$$zM()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = h$r2;+  var f = new h$MutVar(h$baseZCGHCziForeignPtrziNoFinalizzers);+  h$p5(a, c, e, f, h$$zN);+  return h$e(d);+};+function h$$zL()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var e = a.d2;+  h$l4(h$c3(h$$zM, c, d, b), h$baseZCGHCziIOziEncodingziTypesziclose, e.d1, h$baseZCGHCziIOzibracket1);+  return h$baseZCGHCziIOzibracket1_e;+};+function h$$zK()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  h$sp -= 4;+  h$pp9(a, h$$zL);+  return h$e(b);+};+function h$baseZCGHCziForeignzizdwa_e()+{+  var a = h$r2;+  var b = h$r3;+  var c = h$r4;+  var d = h$c(h$$z7);+  d.d1 = h$r3;+  d.d2 = h$d2(c, d);+  h$p4(a, b, c, h$$zK);+  h$l2(0, d);+  return h$ap_2_1_fast();+};+function h$$Af()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(b, a, h$integerzmgmpZCGHCziIntegerziTypeziencodeDoubleInteger);+  return h$ap_2_2_fast();+};+function h$$Ae()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var d = (a & 1);+  if((d === 0))+  {+    h$l3(b, c, h$integerzmgmpZCGHCziIntegerziTypeziencodeDoubleInteger);+    return h$ap_2_2_fast();+  }+  else+  {+    h$pp2(h$$Af);+    h$l3(h$baseZCGHCziFloatzizdfRealDouble1, c, h$integerzmgmpZCGHCziIntegerziTypeziplusInteger);+    return h$ap_2_2_fast();+  };+};+function h$$Ad()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(b, a, h$integerzmgmpZCGHCziIntegerziTypeziencodeDoubleInteger);+  return h$ap_2_2_fast();+};+function h$$Ac()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  switch (a.f.a)+  {+    case (1):+      h$l3(b, c, h$integerzmgmpZCGHCziIntegerziTypeziencodeDoubleInteger);+      return h$ap_2_2_fast();+    case (2):+      h$pp4(h$$Ae);+      h$l2(c, h$integerzmgmpZCGHCziIntegerziTypeziintegerToInt);+      return h$ap_1_1_fast();+    default:+      h$pp2(h$$Ad);+      h$l3(h$baseZCGHCziFloatzizdfRealDouble1, c, h$integerzmgmpZCGHCziIntegerziTypeziplusInteger);+      return h$ap_2_2_fast();+  };+};+function h$$Ab()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 4;+  h$pp6(c, h$$Ac);+  h$l3(b, a, h$integerzmgmpZCGHCziIntegerziTypezicompareInteger);+  return h$ap_2_2_fast();+};+function h$$Aa()+{+  var a;+  var b;+  a = h$r1;+  b = h$r2;+  h$sp -= 3;+  h$pp12(a, h$$Ab);+  h$l3(1, b, h$integerzmgmpZCGHCziIntegerziTypezishiftLInteger);+  return h$ap_2_2_fast();+};+function h$$z9()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 4;+  if(a)+  {+    h$r1 = h$baseZCGHCziRealzidivZZeroError;+    return h$ap_0_0_fast();+  }+  else+  {+    h$pp6(c, h$$Aa);+    h$l3(c, b, h$integerzmgmpZCGHCziIntegerziTypeziquotRemInteger);+    return h$ap_2_2_fast();+  };+};+function h$$z8()+{+  h$p4(h$r2, h$r3, h$r4, h$$z9);+  h$l3(h$baseZCGHCziFloatzirationalToDouble5, h$r4, h$integerzmgmpZCGHCziIntegerziTypezieqIntegerzh);+  return h$ap_2_2_fast();+};+function h$$Ah()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  var d = Math.log(c);+  var e = Math.log(b);+  h$r1 = (e / d);+  return h$stack[h$sp];+};+function h$$Ag()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$Ah);+  return h$e(b);+};+function h$baseZCGHCziFloatzizdfFloatingDoublezuzdclogBase_e()+{+  h$p2(h$r2, h$$Ag);+  return h$e(h$r3);+};+function h$$Ai()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  var c = (b * b);+  var d = (1.0 + c);+  var e = Math.sqrt(d);+  var f = (b + e);+  var g = Math.log(f);+  h$r1 = g;+  return h$stack[h$sp];+};+function h$baseZCGHCziFloatzizdfFloatingDoublezuzdcasinh_e()+{+  h$p1(h$$Ai);+  return h$e(h$r2);+};+function h$$Aj()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  var c = (1.0 - b);+  var d = (1.0 + b);+  var e = (d / c);+  var f = Math.log(e);+  h$r1 = (0.5 * f);+  return h$stack[h$sp];+};+function h$baseZCGHCziFloatzizdfFloatingDoublezuzdcatanh_e()+{+  h$p1(h$$Aj);+  return h$e(h$r2);+};+function h$$Ak()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  var c = (b + 1.0);+  var d = (b - 1.0);+  var e = (d / c);+  var f = Math.sqrt(e);+  var g = (b + 1.0);+  var h = (g * f);+  var i = (b + h);+  var j = Math.log(i);+  h$r1 = j;+  return h$stack[h$sp];+};+function h$baseZCGHCziFloatzizdfFloatingDoublezuzdcacosh_e()+{+  h$p1(h$$Ak);+  return h$e(h$r2);+};+function h$$Al()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  if((b >= 0.0))+  {+    h$r1 = a;+  }+  else+  {+    h$r1 = -b;+  };+  return h$stack[h$sp];+};+function h$baseZCGHCziFloatzizdfNumDoublezuzdcabs_e()+{+  h$p1(h$$Al);+  return h$e(h$r2);+};+function h$$Am()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  if((b === 0.0))+  {+    return h$e(h$baseZCGHCziFloatzirationalToDouble4);+  }+  else+  {+    if((b > 0.0))+    {+      return h$e(h$baseZCGHCziFloatzizdfNumDouble1);+    }+    else+    {+      return h$e(h$baseZCGHCziFloatzizdfNumDouble2);+    };+  };+};+function h$baseZCGHCziFloatzizdfNumDoublezuzdcsignum_e()+{+  h$p1(h$$Am);+  return h$e(h$r2);+};+function h$$An()+{+  var a = h$r1;+  --h$sp;+  h$r1 = a;+  return h$stack[h$sp];+};+function h$baseZCGHCziFloatzizdfNumDoublezuzdcfromInteger_e()+{+  h$p1(h$$An);+  h$r1 = h$integerzmgmpZCGHCziIntegerziTypezidoubleFromInteger;+  return h$ap_1_1_fast();+};+function h$$Ao()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  h$r1 = (1.0 / b);+  return h$stack[h$sp];+};+function h$baseZCGHCziFloatzizdfFractionalDoublezuzdcrecip_e()+{+  h$p1(h$$Ao);+  return h$e(h$r2);+};+function h$$AQ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var e = ((b - c) | 0);+  h$l4(a, d, ((e + 1) | 0), h$$Bo);+  return h$ap_3_3_fast();+};+function h$$AP()+{+  var a = h$stack[(h$sp - 5)];+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 7;+  if(h$r1)+  {+    h$pp13(b, c, h$$AQ);+    h$l3(1, d, h$integerzmgmpZCGHCziIntegerziTypezishiftLInteger);+    return h$ap_2_2_fast();+  }+  else+  {+    h$l4(d, c, ((b - a) | 0), h$$Bo);+    return h$ap_3_3_fast();+  };+};+function h$$AO()+{+  var a = h$r1;+  --h$sp;+  h$sp -= 6;+  h$r1 = a;+  h$sp += 6;+  ++h$sp;+  return h$$AP;+};+function h$$AN()+{+  var a = h$r1;+  --h$sp;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 6;+  h$sp += 6;+  h$p1(h$$AO);+  h$l3(b, a, h$integerzmgmpZCGHCziIntegerziTypezileIntegerzh);+  return h$ap_2_2_fast();+};+function h$$AM()+{+  var a = h$r1;+  --h$sp;+  h$sp -= 6;+  h$r1 = a;+  h$sp += 6;+  ++h$sp;+  return h$$AP;+};+function h$$AL()+{+  var a = h$r1;+  --h$sp;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 6;+  h$sp += 6;+  h$p1(h$$AM);+  h$l3(b, a, h$integerzmgmpZCGHCziIntegerziTypezileIntegerzh);+  return h$ap_2_2_fast();+};+function h$$AK()+{+  var a = h$stack[(h$sp - 3)];+  h$sp -= 5;+  var b = h$r1;+  var c = h$r2;+  if((a >= 0))+  {+    h$pp48(b, c);+    h$p1(h$$AL);+    h$l3(a, c, h$integerzmgmpZCGHCziIntegerziTypezishiftLInteger);+    return h$ap_2_2_fast();+  }+  else+  {+    h$pp48(b, c);+    h$p1(h$$AN);+    h$l3((-a | 0), c, h$integerzmgmpZCGHCziIntegerziTypezishiftRInteger);+    return h$ap_2_2_fast();+  };+};+function h$$AJ()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  h$bh();+  var e = ((d - a) | 0);+  if((e >= 0))+  {+    h$l3(e, c, h$integerzmgmpZCGHCziIntegerziTypezishiftLInteger);+    return h$ap_2_2_fast();+  }+  else+  {+    h$l3((-e | 0), c, h$integerzmgmpZCGHCziIntegerziTypezishiftRInteger);+    return h$ap_2_2_fast();+  };+};+function h$$AI()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  h$bh();+  var e = ((a - d) | 0);+  if((e >= 0))+  {+    h$l3(e, c, h$integerzmgmpZCGHCziIntegerziTypezishiftLInteger);+    return h$ap_2_2_fast();+  }+  else+  {+    h$l3((-e | 0), c, h$integerzmgmpZCGHCziIntegerziTypezishiftRInteger);+    return h$ap_2_2_fast();+  };+};+function h$$AH()+{+  var a = h$stack[(h$sp - 3)];+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var d = h$r1;+  if((d < b))+  {+    h$l2(a, h$c3(h$$AI, b, c, d));+    h$pp8(d);+    ++h$sp;+    return h$$AK;+  }+  else+  {+    if((d === b))+    {+      h$l2(a, c);+      h$pp8(d);+      ++h$sp;+      return h$$AK;+    }+    else+    {+      h$l2(h$c3(h$$AJ, b, a, d), c);+      h$pp8(d);+      ++h$sp;+      return h$$AK;+    };+  };+};+function h$$AG()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 5)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 6;+  var e = ((a - d) | 0);+  if((b <= e))+  {+    h$r1 = e;+    h$sp += 3;+    h$stack[(h$sp - 2)] = c;+    ++h$sp;+    return h$$AH;+  }+  else+  {+    h$r1 = b;+    h$sp += 3;+    h$stack[(h$sp - 2)] = c;+    ++h$sp;+    return h$$AH;+  };+};+function h$$AF()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if(a)+  {+    h$r1 = 0.0;+  }+  else+  {+    h$l3(((b - c) | 0), h$baseZCGHCziFloatzizdfRealDouble1, h$integerzmgmpZCGHCziIntegerziTypeziencodeDoubleInteger);+    return h$ap_2_2_fast();+  };+  return h$stack[h$sp];+};+function h$$AE()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 4;+  h$pp4(h$$AF);+  h$l3(a, b, h$integerzmgmpZCGHCziIntegerziTypezieqIntegerzh);+  return h$ap_2_2_fast();+};+function h$$AD()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(b, a, h$integerzmgmpZCGHCziIntegerziTypeziencodeDoubleInteger);+  return h$ap_2_2_fast();+};+function h$$AC()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(b, a, h$integerzmgmpZCGHCziIntegerziTypeziencodeDoubleInteger);+  return h$ap_2_2_fast();+};+function h$$AB()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var e = (a & 1);+  if((e === 0))+  {+    h$l3(((b - c) | 0), d, h$integerzmgmpZCGHCziIntegerziTypeziencodeDoubleInteger);+    return h$ap_2_2_fast();+  }+  else+  {+    h$p2(((b - c) | 0), h$$AC);+    h$l3(h$baseZCGHCziFloatzizdfRealDouble1, d, h$integerzmgmpZCGHCziIntegerziTypeziplusInteger);+    return h$ap_2_2_fast();+  };+};+function h$$AA()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  switch (a)+  {+    case (0):+      h$l3(((b - c) | 0), d, h$integerzmgmpZCGHCziIntegerziTypeziencodeDoubleInteger);+      return h$ap_2_2_fast();+    case (1):+      h$pp8(h$$AB);+      h$l2(d, h$integerzmgmpZCGHCziIntegerziTypeziintegerToInt);+      return h$ap_1_1_fast();+    default:+      h$p2(((b - c) | 0), h$$AD);+      h$l3(h$baseZCGHCziFloatzizdfRealDouble1, d, h$integerzmgmpZCGHCziIntegerziTypeziplusInteger);+      return h$ap_2_2_fast();+  };+};+function h$$Az()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 5;+  h$pp12(a, h$$AA);+  h$l3(((c - 1) | 0), b, h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziroundingModezh);+  return h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziroundingModezh_e;+};+function h$$Ay()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(b, a, h$integerzmgmpZCGHCziIntegerziTypeziencodeDoubleInteger);+  return h$ap_2_2_fast();+};+function h$$Ax()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 2)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 5;+  var f = (a & 1);+  if((f === 0))+  {+    var g = ((b - e) | 0);+    var h = ((g + 1) | 0);+    h$l3(((h - c) | 0), d, h$integerzmgmpZCGHCziIntegerziTypeziencodeDoubleInteger);+    return h$ap_2_2_fast();+  }+  else+  {+    var i = ((b - e) | 0);+    var j = ((i + 1) | 0);+    h$p2(((j - c) | 0), h$$Ay);+    h$l3(h$baseZCGHCziFloatzizdfRealDouble1, d, h$integerzmgmpZCGHCziIntegerziTypeziplusInteger);+    return h$ap_2_2_fast();+  };+};+function h$$Aw()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(b, a, h$integerzmgmpZCGHCziIntegerziTypeziencodeDoubleInteger);+  return h$ap_2_2_fast();+};+function h$$Av()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 2)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 5;+  switch (a)+  {+    case (0):+      var f = ((b - e) | 0);+      var g = ((f + 1) | 0);+      h$l3(((g - c) | 0), d, h$integerzmgmpZCGHCziIntegerziTypeziencodeDoubleInteger);+      return h$ap_2_2_fast();+    case (2):+      var h = ((b - e) | 0);+      var i = ((h + 1) | 0);+      h$p2(((i - c) | 0), h$$Aw);+      h$l3(h$baseZCGHCziFloatzizdfRealDouble1, d, h$integerzmgmpZCGHCziIntegerziTypeziplusInteger);+      return h$ap_2_2_fast();+    default:+      h$pp16(h$$Ax);+      h$l2(d, h$integerzmgmpZCGHCziIntegerziTypeziintegerToInt);+      return h$ap_1_1_fast();+  };+};+function h$$Au()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 2)];+  h$sp -= 5;+  h$pp20(a, h$$Av);+  h$l3(((b - c) | 0), d, h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziroundingModezh);+  return h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziroundingModezh_e;+};+function h$$At()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 2)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 5;+  var f = ((e + b) | 0);+  var g = ((f - 1) | 0);+  if((a >= g))+  {+    if((a < c))+    {+      h$l3((-e | 0), d, h$integerzmgmpZCGHCziIntegerziTypeziencodeDoubleInteger);+      return h$ap_2_2_fast();+    }+    else+    {+      var h = ((a + 1) | 0);+      var i = ((h - c) | 0);+      var j = (-i | 0);+      h$pp17(a, h$$Au);+      if((j >= 0))+      {+        h$l3(j, d, h$integerzmgmpZCGHCziIntegerziTypezishiftLInteger);+        return h$ap_2_2_fast();+      }+      else+      {+        h$l3((-j | 0), d, h$integerzmgmpZCGHCziIntegerziTypezishiftRInteger);+        return h$ap_2_2_fast();+      };+    };+  }+  else+  {+    var k = ((b - c) | 0);+    var l = ((e + k) | 0);+    if((l <= 0))+    {+      var m = ((b - c) | 0);+      h$l3(((m - l) | 0), d, h$integerzmgmpZCGHCziIntegerziTypeziencodeDoubleInteger);+      return h$ap_2_2_fast();+    }+    else+    {+      if((l <= a))+      {+        var n = (-l | 0);+        h$pp24(l, h$$Az);+        if((n >= 0))+        {+          h$l3(n, d, h$integerzmgmpZCGHCziIntegerziTypezishiftLInteger);+          return h$ap_2_2_fast();+        }+        else+        {+          h$l3((-n | 0), d, h$integerzmgmpZCGHCziIntegerziTypezishiftRInteger);+          return h$ap_2_2_fast();+        };+      }+      else+      {+        var o = ((a + 1) | 0);+        if((l > o))+        {+          h$r1 = 0.0;+        }+        else+        {+          h$pp8(h$$AE);+          h$l3(a, h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziintegerLog2IsPowerOf2zh1,+          h$integerzmgmpZCGHCziIntegerziTypezishiftLInteger);+          return h$ap_2_2_fast();+        };+      };+    };+  };+  return h$stack[h$sp];+};+function h$$As()+{+  var a = h$stack[(h$sp - 2)];+  h$sp -= 5;+  var b = h$r1;+  var c = h$r2;+  if((c === 0))+  {+    h$pp24(b, h$$At);+    h$l2(a, h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziintegerLog2zh);+    return h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziintegerLog2zh_e;+  }+  else+  {+    h$pp48(b, h$$AG);+    h$l2(a, h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziintegerLog2zh);+    return h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziintegerLog2zh_e;+  };+};+function h$$Ar()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 6;+  if(a)+  {+    h$l2(0, b);+    h$sp += 4;+    ++h$sp;+    return h$$As;+  }+  else+  {+    h$l2(1, b);+    h$sp += 4;+    ++h$sp;+    return h$$As;+  };+};+function h$$Aq()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  h$sp -= 6;+  h$pp32(h$$Ar);+  h$l3(a, b, h$integerzmgmpZCGHCziIntegerziTypezieqIntegerzh);+  return h$ap_2_2_fast();+};+function h$$Ap()+{+  var a = h$r1;+  h$sp -= 5;+  h$pp48(a, h$$Aq);+  h$l3(a, h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziintegerLog2IsPowerOf2zh1,+  h$integerzmgmpZCGHCziIntegerziTypezishiftLInteger);+  return h$ap_2_2_fast();+};+function h$baseZCGHCziFloatzizdwzdsfromRatzqzq_e()+{+  h$p5(h$r2, h$r3, h$r4, h$r5, h$$Ap);+  h$l2(h$r5, h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziintegerLog2zh);+  return h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziintegerLog2zh_e;+};+function h$baseZCGHCziFloatzirationalToDouble3_e()+{+  h$bh();+  h$r1 = Infinity;+  return h$stack[h$sp];+};+function h$baseZCGHCziFloatzirationalToDouble2_e()+{+  h$bh();+  h$r1 = (-Infinity);+  return h$stack[h$sp];+};+function h$baseZCGHCziFloatzirationalToDouble1_e()+{+  h$bh();+  h$r1 = NaN;+  return h$stack[h$sp];+};+function h$$AR()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  h$l3(a.d2, b, h$baseZCGHCziFloatzirationalToDouble);+  return h$ap_2_2_fast();+};+function h$baseZCGHCziFloatzizdfFractionalDoublezuzdcfromRational_e()+{+  h$p1(h$$AR);+  return h$e(h$r2);+};+function h$baseZCGHCziFloatziDZCFloating_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziFloatziDZCFloating_e()+{+  h$r1 = h$c19(h$baseZCGHCziFloatziDZCFloating_con_e, h$r2, h$r3, h$r4, h$r5, h$r6, h$r7, h$r8, h$r9, h$r10, h$r11, h$r12,+  h$r13, h$r14, h$r15, h$r16, h$r17, h$r18, h$r19, h$r20);+  return h$stack[h$sp];+};+function h$$AT()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  var d = Math.pow(b, c);+  h$r1 = d;+  return h$stack[h$sp];+};+function h$$AS()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$AT);+  return h$e(b);+};+function h$baseZCGHCziFloatzipowerDouble_e()+{+  h$p2(h$r3, h$$AS);+  return h$e(h$r2);+};+function h$$AU()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  var c = ((Math.exp((2 * b)) - 1) / (Math.exp((2 * b)) + 1));+  h$r1 = c;+  return h$stack[h$sp];+};+function h$baseZCGHCziFloatzitanhDouble_e()+{+  h$p1(h$$AU);+  return h$e(h$r2);+};+function h$$AV()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  var c = ((Math.exp(b) + Math.exp(-b)) / 2);+  h$r1 = c;+  return h$stack[h$sp];+};+function h$baseZCGHCziFloatzicoshDouble_e()+{+  h$p1(h$$AV);+  return h$e(h$r2);+};+function h$$AW()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  var c = ((Math.exp(b) - Math.exp(-b)) / 2);+  h$r1 = c;+  return h$stack[h$sp];+};+function h$baseZCGHCziFloatzisinhDouble_e()+{+  h$p1(h$$AW);+  return h$e(h$r2);+};+function h$$AX()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  var c = Math.atan(b);+  h$r1 = c;+  return h$stack[h$sp];+};+function h$baseZCGHCziFloatziatanDouble_e()+{+  h$p1(h$$AX);+  return h$e(h$r2);+};+function h$$AY()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  var c = Math.acos(b);+  h$r1 = c;+  return h$stack[h$sp];+};+function h$baseZCGHCziFloatziacosDouble_e()+{+  h$p1(h$$AY);+  return h$e(h$r2);+};+function h$$AZ()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  var c = Math.asin(b);+  h$r1 = c;+  return h$stack[h$sp];+};+function h$baseZCGHCziFloatziasinDouble_e()+{+  h$p1(h$$AZ);+  return h$e(h$r2);+};+function h$$A0()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  var c = Math.tan(b);+  h$r1 = c;+  return h$stack[h$sp];+};+function h$baseZCGHCziFloatzitanDouble_e()+{+  h$p1(h$$A0);+  return h$e(h$r2);+};+function h$$A1()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  var c = Math.cos(b);+  h$r1 = c;+  return h$stack[h$sp];+};+function h$baseZCGHCziFloatzicosDouble_e()+{+  h$p1(h$$A1);+  return h$e(h$r2);+};+function h$$A2()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  var c = Math.sin(b);+  h$r1 = c;+  return h$stack[h$sp];+};+function h$baseZCGHCziFloatzisinDouble_e()+{+  h$p1(h$$A2);+  return h$e(h$r2);+};+function h$$A3()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  var c = Math.sqrt(b);+  h$r1 = c;+  return h$stack[h$sp];+};+function h$baseZCGHCziFloatzisqrtDouble_e()+{+  h$p1(h$$A3);+  return h$e(h$r2);+};+function h$$A4()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  var c = Math.log(b);+  h$r1 = c;+  return h$stack[h$sp];+};+function h$baseZCGHCziFloatzilogDouble_e()+{+  h$p1(h$$A4);+  return h$e(h$r2);+};+function h$$A5()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  var c = Math.exp(b);+  h$r1 = c;+  return h$stack[h$sp];+};+function h$baseZCGHCziFloatziexpDouble_e()+{+  h$p1(h$$A5);+  return h$e(h$r2);+};+function h$$A6()+{+  var a = h$r1;+  --h$sp;+  h$r1 = -a;+  return h$stack[h$sp];+};+function h$baseZCGHCziFloatzinegateDouble_e()+{+  h$p1(h$$A6);+  return h$e(h$r2);+};+function h$$A8()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  h$r1 = (b / c);+  return h$stack[h$sp];+};+function h$$A7()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$A8);+  return h$e(b);+};+function h$baseZCGHCziFloatzidivideDouble_e()+{+  h$p2(h$r3, h$$A7);+  return h$e(h$r2);+};+function h$$Ba()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  h$r1 = (b * c);+  return h$stack[h$sp];+};+function h$$A9()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$Ba);+  return h$e(b);+};+function h$baseZCGHCziFloatzitimesDouble_e()+{+  h$p2(h$r3, h$$A9);+  return h$e(h$r2);+};+function h$$Bc()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  h$r1 = (b - c);+  return h$stack[h$sp];+};+function h$$Bb()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$Bc);+  return h$e(b);+};+function h$baseZCGHCziFloatziminusDouble_e()+{+  h$p2(h$r3, h$$Bb);+  return h$e(h$r2);+};+function h$$Be()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  h$r1 = (b + c);+  return h$stack[h$sp];+};+function h$$Bd()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$Be);+  return h$e(b);+};+function h$baseZCGHCziFloatziplusDouble_e()+{+  h$p2(h$r3, h$$Bd);+  return h$e(h$r2);+};+function h$$Bf()+{+  var a = h$r1;+  --h$sp;+  var b = a.d2;+  h$r1 = b.d1;+  return h$ap_0_0_fast();+};+function h$baseZCGHCziFloatzipi_e()+{+  h$p1(h$$Bf);+  return h$e(h$r2);+};+function h$$Bn()+{+  var a = h$r1;+  --h$sp;+  h$r1 = a;+  return h$stack[h$sp];+};+function h$$Bm()+{+  var a = h$r1;+  --h$sp;+  h$r1 = -a;+  return h$stack[h$sp];+};+function h$$Bl()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p1(h$$Bm);+  h$l5(b, a, 53, (-1021), h$baseZCGHCziFloatzizdwzdsfromRatzqzq);+  return h$ap_4_4_fast();+};+function h$$Bk()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if(a)+  {+    h$p2(c, h$$Bl);+    h$l2(b, h$integerzmgmpZCGHCziIntegerziTypezinegateInteger);+    return h$ap_1_1_fast();+  }+  else+  {+    h$p1(h$$Bn);+    h$l5(c, b, 53, (-1021), h$baseZCGHCziFloatzizdwzdsfromRatzqzq);+    return h$ap_4_4_fast();+  };+};+function h$$Bj()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  h$sp -= 3;+  if(a)+  {+    return h$e(h$baseZCGHCziFloatzirationalToDouble4);+  }+  else+  {+    h$pp4(h$$Bk);+    h$l3(h$baseZCGHCziFloatzirationalToDouble5, b, h$integerzmgmpZCGHCziIntegerziTypeziltIntegerzh);+    return h$ap_2_2_fast();+  };+};+function h$$Bi()+{+  var a = h$r1;+  --h$sp;+  if(a)+  {+    return h$e(h$baseZCGHCziFloatzirationalToDouble2);+  }+  else+  {+    return h$e(h$baseZCGHCziFloatzirationalToDouble3);+  };+};+function h$$Bh()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if(a)+  {+    return h$e(h$baseZCGHCziFloatzirationalToDouble1);+  }+  else+  {+    h$p1(h$$Bi);+    h$l3(h$baseZCGHCziFloatzirationalToDouble5, b, h$integerzmgmpZCGHCziIntegerziTypeziltIntegerzh);+    return h$ap_2_2_fast();+  };+};+function h$$Bg()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  h$sp -= 3;+  if(a)+  {+    h$pp2(h$$Bh);+    h$l3(h$baseZCGHCziFloatzirationalToDouble5, b, h$integerzmgmpZCGHCziIntegerziTypezieqIntegerzh);+    return h$ap_2_2_fast();+  }+  else+  {+    h$pp4(h$$Bj);+    h$l3(h$baseZCGHCziFloatzirationalToDouble5, b, h$integerzmgmpZCGHCziIntegerziTypezieqIntegerzh);+    return h$ap_2_2_fast();+  };+};+function h$baseZCGHCziFloatzirationalToDouble_e()+{+  var a = h$r3;+  h$p3(h$r2, h$r3, h$$Bg);+  h$l3(h$baseZCGHCziFloatzirationalToDouble5, a, h$integerzmgmpZCGHCziIntegerziTypezieqIntegerzh);+  return h$ap_2_2_fast();+};+function h$baseZCGHCziExceptionzizdfExceptionErrorCallzuzdctoException_e()+{+  h$r1 = h$c2(h$baseZCGHCziExceptionziSomeException_con_e, h$baseZCGHCziExceptionzizdfExceptionErrorCall, h$r2);+  return h$stack[h$sp];+};+function h$baseZCGHCziExceptionzizdfExceptionArithExceptionzuzdctoException_e()+{+  h$r1 = h$c2(h$baseZCGHCziExceptionziSomeException_con_e, h$baseZCGHCziExceptionzizdfExceptionArithException, h$r2);+  return h$stack[h$sp];+};+function h$$Bp()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(a, b);+  return h$ap_1_1_fast();+};+function h$baseZCGHCziExceptionzithrow2_e()+{+  return h$throw(h$c2(h$$Bp, h$r2, h$r3), false);+};+function h$baseZCGHCziExceptionzizdfShowErrorCallzuzdcshowsPrec_e()+{+  var a = h$r3;+  h$l3(h$r4, a, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+function h$baseZCGHCziExceptionzizdfShowErrorCall1_e()+{+  return h$e(h$r2);+};+function h$baseZCGHCziExceptionzizdfShowErrorCallzuzdcshowList_e()+{+  h$l4(h$r3, h$r2, h$baseZCGHCziBasezizpzp, h$baseZCGHCziShowzishowListzuzu);+  return h$baseZCGHCziShowzishowListzuzu_e;+};+var h$baseZCGHCziExceptionzizdfExceptionErrorCall3 = h$strta("ErrorCall");+function h$baseZCGHCziExceptionzizdfExceptionErrorCallzuzdctypeRepzh_e()+{+  return h$e(h$baseZCGHCziExceptionzizdfExceptionErrorCall1);+};+function h$$Br()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l4(b, h$baseZCGHCziExceptionzizdfExceptionErrorCallzuzdctypeRepzh, a, h$baseZCDataziTypeablezicast);+  return h$baseZCDataziTypeablezicast_e;+};+function h$$Bq()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  h$p2(a.d2, h$$Br);+  h$l2(b, h$baseZCGHCziExceptionzizdp1Exception);+  return h$ap_1_1_fast();+};+function h$baseZCGHCziExceptionzizdfExceptionErrorCallzuzdcfromException_e()+{+  h$p1(h$$Bq);+  return h$e(h$r2);+};+function h$$Bs()+{+  var a = h$r1;+  --h$sp;+  switch (a.f.a)+  {+    case (1):+      h$r1 = h$baseZCGHCziExceptionzizdfShowArithException12;+      return h$ap_0_0_fast();+    case (2):+      h$r1 = h$baseZCGHCziExceptionzizdfShowArithException10;+      return h$ap_0_0_fast();+    case (3):+      h$r1 = h$baseZCGHCziExceptionzizdfShowArithException8;+      return h$ap_0_0_fast();+    case (4):+      h$r1 = h$baseZCGHCziExceptionzizdfShowArithException6;+      return h$ap_0_0_fast();+    case (5):+      h$r1 = h$baseZCGHCziExceptionzizdfShowArithException4;+      return h$ap_0_0_fast();+    default:+      h$r1 = h$baseZCGHCziExceptionzizdfShowArithException2;+      return h$ap_0_0_fast();+  };+};+function h$baseZCGHCziExceptionzizdfShowArithExceptionzuzdcshowsPrec_e()+{+  h$p1(h$$Bs);+  return h$e(h$r3);+};+function h$$Bt()+{+  var a = h$r1;+  --h$sp;+  switch (a.f.a)+  {+    case (1):+      return h$e(h$baseZCGHCziExceptionzizdfShowArithException13);+    case (2):+      return h$e(h$baseZCGHCziExceptionzizdfShowArithException11);+    case (3):+      return h$e(h$baseZCGHCziExceptionzizdfShowArithException9);+    case (4):+      return h$e(h$baseZCGHCziExceptionzizdfShowArithException7);+    case (5):+      return h$e(h$baseZCGHCziExceptionzizdfShowArithException5);+    default:+      return h$e(h$baseZCGHCziExceptionzizdfShowArithException3);+  };+};+function h$baseZCGHCziExceptionzizdfShowArithExceptionzuzdcshow_e()+{+  h$p1(h$$Bt);+  return h$e(h$r2);+};+var h$baseZCGHCziExceptionzizdfShowArithException13 = h$strta("arithmetic overflow");+function h$baseZCGHCziExceptionzizdfShowArithException12_e()+{+  h$l3(h$r2, h$baseZCGHCziExceptionzizdfShowArithException13, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+var h$baseZCGHCziExceptionzizdfShowArithException11 = h$strta("arithmetic underflow");+function h$baseZCGHCziExceptionzizdfShowArithException10_e()+{+  h$l3(h$r2, h$baseZCGHCziExceptionzizdfShowArithException11, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+var h$baseZCGHCziExceptionzizdfShowArithException9 = h$strta("loss of precision");+function h$baseZCGHCziExceptionzizdfShowArithException8_e()+{+  h$l3(h$r2, h$baseZCGHCziExceptionzizdfShowArithException9, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+var h$baseZCGHCziExceptionzizdfShowArithException7 = h$strta("divide by zero");+function h$baseZCGHCziExceptionzizdfShowArithException6_e()+{+  h$l3(h$r2, h$baseZCGHCziExceptionzizdfShowArithException7, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+var h$baseZCGHCziExceptionzizdfShowArithException5 = h$strta("denormal");+function h$baseZCGHCziExceptionzizdfShowArithException4_e()+{+  h$l3(h$r2, h$baseZCGHCziExceptionzizdfShowArithException5, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+var h$baseZCGHCziExceptionzizdfShowArithException3 = h$strta("Ratio has zero denominator");+function h$baseZCGHCziExceptionzizdfShowArithException2_e()+{+  h$l3(h$r2, h$baseZCGHCziExceptionzizdfShowArithException3, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+function h$$Bu()+{+  var a = h$r1;+  --h$sp;+  switch (a.f.a)+  {+    case (1):+      h$r1 = h$baseZCGHCziExceptionzizdfShowArithException12;+      return h$ap_0_0_fast();+    case (2):+      h$r1 = h$baseZCGHCziExceptionzizdfShowArithException10;+      return h$ap_0_0_fast();+    case (3):+      h$r1 = h$baseZCGHCziExceptionzizdfShowArithException8;+      return h$ap_0_0_fast();+    case (4):+      h$r1 = h$baseZCGHCziExceptionzizdfShowArithException6;+      return h$ap_0_0_fast();+    case (5):+      h$r1 = h$baseZCGHCziExceptionzizdfShowArithException4;+      return h$ap_0_0_fast();+    default:+      h$r1 = h$baseZCGHCziExceptionzizdfShowArithException2;+      return h$ap_0_0_fast();+  };+};+function h$baseZCGHCziExceptionzizdfShowArithException1_e()+{+  h$p1(h$$Bu);+  return h$e(h$r2);+};+function h$baseZCGHCziExceptionzizdfShowArithExceptionzuzdcshowList_e()+{+  h$l4(h$r3, h$r2, h$baseZCGHCziExceptionzizdfShowArithException1, h$baseZCGHCziShowzishowListzuzu);+  return h$baseZCGHCziShowzishowListzuzu_e;+};+var h$baseZCGHCziExceptionzizdfExceptionArithException3 = h$strta("base");+var h$baseZCGHCziExceptionzizdfExceptionArithExceptionzuww4 = h$strta("GHC.Exception");+var h$baseZCGHCziExceptionzizdfExceptionArithExceptionzuww5 = h$strta("ArithException");+function h$baseZCGHCziExceptionzizdfExceptionArithExceptionzuzdctypeRepzh_e()+{+  return h$e(h$baseZCGHCziExceptionzizdfExceptionArithException1);+};+function h$$Bw()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l4(b, h$baseZCGHCziExceptionzizdfExceptionArithExceptionzuzdctypeRepzh, a, h$baseZCDataziTypeablezicast);+  return h$baseZCDataziTypeablezicast_e;+};+function h$$Bv()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  h$p2(a.d2, h$$Bw);+  h$l2(b, h$baseZCGHCziExceptionzizdp1Exception);+  return h$ap_1_1_fast();+};+function h$baseZCGHCziExceptionzizdfExceptionArithExceptionzuzdcfromException_e()+{+  h$p1(h$$Bv);+  return h$e(h$r2);+};+function h$baseZCGHCziExceptionziRatioZZeroDenominator_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziExceptionziDivideByZZero_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziExceptionziOverflow_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziExceptionziDZCException_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziExceptionziDZCException_e()+{+  h$r1 = h$c4(h$baseZCGHCziExceptionziDZCException_con_e, h$r2, h$r3, h$r4, h$r5);+  return h$stack[h$sp];+};+function h$$Bx()+{+  var a = h$r1;+  --h$sp;+  var b = a.d2;+  return h$e(b.d1);+};+function h$baseZCGHCziExceptionzizdp2Exception_e()+{+  h$p1(h$$Bx);+  return h$e(h$r2);+};+function h$$By()+{+  var a = h$r1;+  --h$sp;+  h$r1 = a.d1;+  return h$ap_0_0_fast();+};+function h$baseZCGHCziExceptionzizdp1Exception_e()+{+  h$p1(h$$By);+  return h$e(h$r2);+};+function h$baseZCGHCziExceptionziSomeException_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziExceptionziSomeException_e()+{+  h$r1 = h$c2(h$baseZCGHCziExceptionziSomeException_con_e, h$r2, h$r3);+  return h$stack[h$sp];+};+function h$$Bz()+{+  var a = h$r1;+  --h$sp;+  var b = a.d2;+  h$r1 = b.d2;+  return h$ap_0_0_fast();+};+function h$baseZCGHCziExceptionzitoException_e()+{+  h$p1(h$$Bz);+  return h$e(h$r2);+};+function h$baseZCGHCziExceptionzioverflowException_e()+{+  h$bh();+  h$l2(h$baseZCGHCziExceptionziOverflow, h$baseZCGHCziExceptionzizdfExceptionArithExceptionzuzdctoException);+  return h$ap_1_1_fast();+};+function h$baseZCGHCziExceptionziratioZZeroDenomException_e()+{+  h$bh();+  h$l2(h$baseZCGHCziExceptionziRatioZZeroDenominator, h$baseZCGHCziExceptionzizdfExceptionArithExceptionzuzdctoException);+  return h$ap_1_1_fast();+};+function h$baseZCGHCziExceptionzidivZZeroException_e()+{+  h$bh();+  h$l2(h$baseZCGHCziExceptionziDivideByZZero, h$baseZCGHCziExceptionzizdfExceptionArithExceptionzuzdctoException);+  return h$ap_1_1_fast();+};+function h$baseZCGHCziExceptionzierrorCallException_e()+{+  h$r1 = h$baseZCGHCziExceptionzizdfExceptionErrorCallzuzdctoException;+  return h$ap_1_1_fast();+};+function h$$BA()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$baseZCGHCziExceptionzierrorCallException);+  return h$ap_1_1_fast();+};+function h$baseZCGHCziErrzierror_e()+{+  return h$throw(h$c1(h$$BA, h$r2), false);+};+function h$baseZCGHCziEnumziefdtIntFB_e()+{+  var a = h$r2;+  var b = h$r3;+  var c = h$r4;+  var d = h$r5;+  var e = h$r6;+  if((d >= c))+  {+    h$l6(e, d, c, b, a, h$baseZCGHCziEnumziefdtIntUpFB);+    return h$ap_gen_fast(1285);+  }+  else+  {+    h$l6(e, d, c, b, a, h$baseZCGHCziEnumziefdtIntDnFB);+    return h$ap_gen_fast(1285);+  };+};+function h$baseZCGHCziEnumziefdtInt_e()+{+  var a = h$r2;+  var b = h$r3;+  var c = h$r4;+  if((b >= a))+  {+    h$l4(c, b, a, h$baseZCGHCziEnumziefdtIntUp);+    return h$ap_3_3_fast();+  }+  else+  {+    h$l4(c, b, a, h$baseZCGHCziEnumziefdtIntDn);+    return h$ap_3_3_fast();+  };+};+function h$$BE()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = b.d3;+  h$bh();+  if((e === c))+  {+    h$r1 = a;+    return h$ap_0_0_fast();+  }+  else+  {+    h$l2(((e + 1) | 0), d);+    return h$ap_1_1_fast();+  };+};+function h$$BD()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  h$r3 = h$c4(h$$BE, c, d, b.d3, h$r2);+  h$r1 = a;+  return h$ap_2_2_fast();+};+function h$$BC()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  h$bh();+  if((d === a))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    h$l2(((d + 1) | 0), c);+    return h$ap_1_1_fast();+  };+  return h$stack[h$sp];+};+function h$$BB()+{+  var a = h$r1.d1;+  h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$r2, h$c3(h$$BC, a, h$r1.d2, h$r2));+  return h$stack[h$sp];+};+function h$baseZCGHCziEnumzieftIntFB_e()+{+  var a = h$r2;+  var b = h$r3;+  var c = h$r4;+  var d = h$r5;+  if((c > d))+  {+    h$r1 = b;+    return h$ap_0_0_fast();+  }+  else+  {+    var e = h$c(h$$BD);+    e.d1 = a;+    e.d2 = h$d3(b, d, e);+    h$l2(c, e);+    return h$ap_1_1_fast();+  };+};+function h$baseZCGHCziEnumzieftInt_e()+{+  var a = h$r2;+  var b = h$r3;+  if((a > b))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    var c = h$c(h$$BB);+    c.d1 = b;+    c.d2 = c;+    h$l2(a, c);+    return h$ap_1_1_fast();+  };+  return h$stack[h$sp];+};+var h$$B1 = h$strta("Prelude.Enum.succ{Int}: tried to take `succ' of maxBound");+var h$$B2 = h$strta("Prelude.Enum.Bool.toEnum: bad argument");+var h$$B3 = h$strta("Prelude.Enum.pred{Int}: tried to take `pred' of minBound");+function h$baseZCGHCziEnumzizdfEnumInt2_e()+{+  h$bh();+  h$l2(h$$B1, h$baseZCGHCziErrzierror);+  return h$ap_1_1_fast();+};+function h$$BF()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  if((b === 2147483647))+  {+    return h$e(h$baseZCGHCziEnumzizdfEnumInt2);+  }+  else+  {+    h$r1 = ((b + 1) | 0);+  };+  return h$stack[h$sp];+};+function h$baseZCGHCziEnumzizdfEnumIntzuzdcsucc_e()+{+  h$p1(h$$BF);+  return h$e(h$r2);+};+function h$baseZCGHCziEnumzizdfEnumInt1_e()+{+  h$bh();+  h$l2(h$$B3, h$baseZCGHCziErrzierror);+  return h$ap_1_1_fast();+};+function h$$BG()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  if((b === (-2147483648)))+  {+    return h$e(h$baseZCGHCziEnumzizdfEnumInt1);+  }+  else+  {+    h$r1 = ((b - 1) | 0);+  };+  return h$stack[h$sp];+};+function h$baseZCGHCziEnumzizdfEnumIntzuzdcpred_e()+{+  h$p1(h$$BG);+  return h$e(h$r2);+};+function h$baseZCGHCziEnumzizdfEnumIntzuzdcfromEnum_e()+{+  return h$e(h$r2);+};+function h$$BH()+{+  var a = h$r1;+  --h$sp;+  h$l3(2147483647, a, h$baseZCGHCziEnumzieftInt);+  return h$ap_2_2_fast();+};+function h$baseZCGHCziEnumzizdfEnumIntzuzdcenumFrom_e()+{+  h$p1(h$$BH);+  return h$e(h$r2);+};+function h$$BJ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(a, b, h$baseZCGHCziEnumziefdInt);+  return h$ap_2_2_fast();+};+function h$$BI()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$BJ);+  return h$e(b);+};+function h$baseZCGHCziEnumzizdfEnumIntzuzdcenumFromThen_e()+{+  h$p2(h$r3, h$$BI);+  return h$e(h$r2);+};+function h$$BL()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(a, b, h$baseZCGHCziEnumzieftInt);+  return h$ap_2_2_fast();+};+function h$$BK()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$BL);+  return h$e(b);+};+function h$baseZCGHCziEnumzizdfEnumIntzuzdcenumFromTo_e()+{+  h$p2(h$r3, h$$BK);+  return h$e(h$r2);+};+function h$$BO()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$l4(a, c, b, h$baseZCGHCziEnumziefdtInt);+  return h$ap_3_3_fast();+};+function h$$BN()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$pp6(a, h$$BO);+  return h$e(b);+};+function h$$BM()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  h$sp -= 3;+  h$pp5(a, h$$BN);+  return h$e(b);+};+function h$baseZCGHCziEnumzizdfEnumIntzuzdcenumFromThenTo_e()+{+  h$p3(h$r3, h$r4, h$$BM);+  return h$e(h$r2);+};+function h$baseZCGHCziEnumzizdfEnumBool1_e()+{+  h$bh();+  h$l2(h$$B2, h$baseZCGHCziErrzierror);+  return h$ap_1_1_fast();+};+function h$baseZCGHCziEnumziDZCEnum_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziEnumziDZCEnum_e()+{+  h$r1 = h$c8(h$baseZCGHCziEnumziDZCEnum_con_e, h$r2, h$r3, h$r4, h$r5, h$r6, h$r7, h$r8, h$r9);+  return h$stack[h$sp];+};+function h$$BR()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  h$bh();+  h$l2(((d + a) | 0), c);+  return h$ap_1_1_fast();+};+function h$$BQ()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = b.d3;+  var f = b.d4;+  var g = h$r2;+  if((g < e))+  {+    h$l3(c, g, a);+    return h$ap_2_2_fast();+  }+  else+  {+    h$l3(h$c3(h$$BR, d, f, g), g, a);+    return h$ap_2_2_fast();+  };+};+function h$$BP()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = b.d3;+  var f = b.d4;+  h$bh();+  var g = ((e - d) | 0);+  var h = ((f - g) | 0);+  var i = h$c(h$$BQ);+  i.d1 = a;+  i.d2 = h$d4(c, g, h, i);+  h$l2(e, i);+  return h$ap_1_1_fast();+};+function h$baseZCGHCziEnumziefdtIntDnFB_e()+{+  var a = h$r2;+  var b = h$r3;+  var c = h$r4;+  var d = h$r5;+  var e = h$r6;+  if((e > d))+  {+    if((e > c))+    {+      h$r1 = b;+      return h$ap_0_0_fast();+    }+    else+    {+      h$l3(b, c, a);+      return h$ap_2_2_fast();+    };+  }+  else+  {+    h$l3(h$c5(h$$BP, a, b, c, d, e), c, a);+    return h$ap_2_2_fast();+  };+};+function h$$BU()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  h$bh();+  h$l2(((d + a) | 0), c);+  return h$ap_1_1_fast();+};+function h$$BT()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = h$r2;+  if((e < c))+  {+    h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, e, h$ghczmprimZCGHCziTypesziZMZN);+  }+  else+  {+    h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, e, h$c3(h$$BU, a, d, e));+  };+  return h$stack[h$sp];+};+function h$$BS()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  h$bh();+  var e = ((c - a) | 0);+  var f = ((d - e) | 0);+  var g = h$c(h$$BT);+  g.d1 = e;+  g.d2 = h$d2(f, g);+  h$l2(c, g);+  return h$ap_1_1_fast();+};+function h$baseZCGHCziEnumziefdtIntDn_e()+{+  var a = h$r2;+  var b = h$r3;+  var c = h$r4;+  if((c > b))+  {+    if((c > a))+    {+      h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+    }+    else+    {+      h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, a, h$ghczmprimZCGHCziTypesziZMZN);+    };+  }+  else+  {+    h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, a, h$c3(h$$BS, a, b, c));+  };+  return h$stack[h$sp];+};+function h$$BX()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  h$bh();+  h$l2(((d + a) | 0), c);+  return h$ap_1_1_fast();+};+function h$$BW()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = b.d3;+  var f = b.d4;+  var g = h$r2;+  if((g > e))+  {+    h$l3(c, g, a);+    return h$ap_2_2_fast();+  }+  else+  {+    h$l3(h$c3(h$$BX, d, f, g), g, a);+    return h$ap_2_2_fast();+  };+};+function h$$BV()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = b.d3;+  var f = b.d4;+  h$bh();+  var g = ((e - d) | 0);+  var h = ((f - g) | 0);+  var i = h$c(h$$BW);+  i.d1 = a;+  i.d2 = h$d4(c, g, h, i);+  h$l2(e, i);+  return h$ap_1_1_fast();+};+function h$baseZCGHCziEnumziefdtIntUpFB_e()+{+  var a = h$r2;+  var b = h$r3;+  var c = h$r4;+  var d = h$r5;+  var e = h$r6;+  if((e < d))+  {+    if((e < c))+    {+      h$r1 = b;+      return h$ap_0_0_fast();+    }+    else+    {+      h$l3(b, c, a);+      return h$ap_2_2_fast();+    };+  }+  else+  {+    h$l3(h$c5(h$$BV, a, b, c, d, e), c, a);+    return h$ap_2_2_fast();+  };+};+function h$$B0()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  h$bh();+  h$l2(((d + a) | 0), c);+  return h$ap_1_1_fast();+};+function h$$BZ()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = h$r2;+  if((e > c))+  {+    h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, e, h$ghczmprimZCGHCziTypesziZMZN);+  }+  else+  {+    h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, e, h$c3(h$$B0, a, d, e));+  };+  return h$stack[h$sp];+};+function h$$BY()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  h$bh();+  var e = ((c - a) | 0);+  var f = ((d - e) | 0);+  var g = h$c(h$$BZ);+  g.d1 = e;+  g.d2 = h$d2(f, g);+  h$l2(c, g);+  return h$ap_1_1_fast();+};+function h$baseZCGHCziEnumziefdtIntUp_e()+{+  var a = h$r2;+  var b = h$r3;+  var c = h$r4;+  if((c < b))+  {+    if((c < a))+    {+      h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+    }+    else+    {+      h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, a, h$ghczmprimZCGHCziTypesziZMZN);+    };+  }+  else+  {+    h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, a, h$c3(h$$BY, a, b, c));+  };+  return h$stack[h$sp];+};+function h$baseZCGHCziEnumziefdInt_e()+{+  var a = h$r2;+  var b = h$r3;+  if((b >= a))+  {+    h$l4(2147483647, b, a, h$baseZCGHCziEnumziefdtIntUp);+    return h$ap_3_3_fast();+  }+  else+  {+    h$l4((-2147483648), b, a, h$baseZCGHCziEnumziefdtIntDn);+    return h$ap_3_3_fast();+  };+};+function h$$B4()+{+  var a = new h$MutVar(h$$Cp);+  h$r1 = h$c1(h$baseZCGHCziSTRefziSTRef_con_e, a);+  return h$stack[h$sp];+};+function h$$Cj()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p4(h$ghczmprimZCGHCziTypesziZMZN, b, h$baseZCGHCziConcziSynczizdfShowThreadStatus2, h$ap_3_3);+  h$l2(a, h$baseZCGHCziShowzishowsPrec);+  return h$baseZCGHCziShowzishowsPrec_e;+};+function h$$Ci()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p4(h$ghczmprimZCGHCziTypesziZMZN, b, h$baseZCGHCziConcziSynczizdfShowThreadStatus2, h$ap_3_3);+  h$l2(a, h$baseZCGHCziShowzishowsPrec);+  return h$baseZCGHCziShowzishowsPrec_e;+};+function h$$Ch()+{+  var a = h$stack[(h$sp - 6)];+  var b = h$stack[(h$sp - 5)];+  var c = h$stack[(h$sp - 4)];+  var d = h$stack[(h$sp - 3)];+  var e = h$stack[(h$sp - 2)];+  var f = h$stack[(h$sp - 1)];+  h$sp -= 7;+  if(h$hs_eqWord64(c, d, (-998742778), 1788961336))+  {+    if(h$hs_eqWord64(e, f, (-1875875731), (-781394717)))+    {+      h$r1 = b;+      return h$ap_0_0_fast();+    }+    else+    {+      h$p2(b, h$$Ci);+      h$l2(a, h$baseZCGHCziExceptionzizdp2Exception);+      return h$baseZCGHCziExceptionzizdp2Exception_e;+    };+  }+  else+  {+    h$p2(b, h$$Cj);+    h$l2(a, h$baseZCGHCziExceptionzizdp2Exception);+    return h$baseZCGHCziExceptionzizdp2Exception_e;+  };+};+function h$$Cg()+{+  --h$sp;+  return h$e(h$$Cs);+};+function h$$Cf()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var c = a.d1;+  var d = a.d2;+  var e = d.d1;+  var f = d.d2;+  var g = d.d3;+  if(h$hs_eqWord64(c, e, 1528534511, 51525854))+  {+    if(h$hs_eqWord64(f, g, (-1218859950), (-1796931918)))+    {+      h$p1(h$$Cg);+      h$r1 = b;+      return h$ap_0_0_fast();+    }+    else+    {+      h$pp60(c, e, f, g);+      ++h$sp;+      return h$$Ch;+    };+  }+  else+  {+    h$pp60(c, e, f, g);+    ++h$sp;+    return h$$Ch;+  };+};+function h$$Ce()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$p3(a, b, h$$Cf);+  ++h$sp;+  h$stack[h$sp] = h$ap_1_0;+  h$l2(a, h$baseZCGHCziExceptionzizdp1Exception);+  return h$baseZCGHCziExceptionzizdp1Exception_e;+};+function h$$Cd()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var d = a.d1;+  h$errorBelch2(b, c, d, a.d2);+  h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  return h$stack[h$sp];+};+function h$$Cc()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a.d1;+  h$p3(c, a.d2, h$$Cd);+  return h$e(b);+};+function h$$Cb()+{+  h$p2(h$r2, h$$Cc);+  return h$e(h$r1.d1);+};+function h$$Ca()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$l4(h$c1(h$$Cb, c), b, a, h$baseZCGHCziForeignzicharIsRepresentable3);+  return h$baseZCGHCziForeignzicharIsRepresentable3_e;+};+function h$$B9()+{+  h$p3(h$r1.d1, h$r2, h$$Ca);+  h$r1 = h$baseZCGHCziIOziEncodingzigetForeignEncoding;+  return h$ap_1_0_fast();+};+function h$$B8()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$l4(h$c1(h$$B9, h$c2(h$$Ce, b, c)), h$$Cr, a, h$baseZCGHCziForeignzicharIsRepresentable3);+  return h$baseZCGHCziForeignzicharIsRepresentable3_e;+};+function h$$B7()+{+  h$sp -= 3;+  h$pp4(h$$B8);+  h$r1 = h$baseZCGHCziIOziEncodingzigetForeignEncoding;+  return h$ap_1_0_fast();+};+function h$$B6()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  h$p3(b, a.d2, h$$B7);+  return h$catch(h$$Ct, h$$Cq);+};+function h$$B5()+{+  h$p1(h$$B6);+  return h$e(h$r2);+};+function h$$Cl()+{+  --h$sp;+  h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  return h$stack[h$sp];+};+function h$$Ck()+{+  h$p1(h$$Cl);+  return h$e(h$r2);+};+var h$$Cr = h$strta("%s");+var h$$Cs = h$strta("no threads to run:  infinite loop or deadlock?");+function h$$Cm()+{+  h$bh();+  h$l2(h$baseZCGHCziIOziHandleziFDzistdout, h$baseZCGHCziIOziHandlezihFlush);+  return h$ap_1_1_fast();+};+function h$$Cn()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a.d1;+  h$l2(b, c.val);+  return h$ap_2_1_fast();+};+function h$baseZCGHCziConcziSynczireportError1_e()+{+  h$p2(h$r2, h$$Cn);+  return h$e(h$baseZCGHCziConcziSyncziuncaughtExceptionHandler);+};+function h$baseZCGHCziConcziSyncziThreadId_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziConcziSyncziThreadId_e()+{+  h$r1 = h$c1(h$baseZCGHCziConcziSyncziThreadId_con_e, h$r2);+  return h$stack[h$sp];+};+function h$baseZCGHCziConcziSyncziuncaughtExceptionHandler_e()+{+  h$bh();+  h$l2(h$$Co, h$baseZCGHCziIOziunsafeDupablePerformIO);+  return h$ap_1_1_fast();+};+function h$baseZCGHCziConcziSynczireportError_e()+{+  h$r1 = h$baseZCGHCziConcziSynczireportError1;+  return h$ap_2_1_fast();+};+function h$$Cw()+{+  var a;+  var b;+  a = h$r1;+  b = h$r2;+  --h$sp;+  h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, a, b);+  return h$stack[h$sp];+};+function h$$Cv()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$Cw);+  h$l4(h$ghczmprimZCGHCziTypesziZMZN, a, 9, h$baseZCGHCziShowzizdwshowSignedInt);+  return h$baseZCGHCziShowzizdwshowSignedInt_e;+};+function h$$Cu()+{+  var a = h$r1;+  --h$sp;+  h$l2(a, h$baseZCGHCziErrzierror);+  return h$ap_1_1_fast();+};+var h$$baseZCGHCziChar_e = h$str("Prelude.chr: bad argument: ");+function h$baseZCGHCziCharzichr2_e()+{+  h$p1(h$$Cu);+  h$r4 = h$c1(h$$Cv, h$r2);+  h$r3 = 0;+  h$r2 = h$$baseZCGHCziChar_e();+  h$r1 = h$ghczmprimZCGHCziCStringziunpackAppendCStringzh;+  return h$ap_2_3_fast();+};+function h$$CB()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$r1 = true;+  }+  else+  {+    h$r1 = false;+  };+  return h$stack[h$sp];+};+function h$$CA()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var e = a;+  if((b === e))+  {+    h$l3(d, c, h$baseZCGHCziBasezieqString);+    return h$ap_2_2_fast();+  }+  else+  {+    h$r1 = false;+  };+  return h$stack[h$sp];+};+function h$$Cz()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  h$sp -= 4;+  h$pp9(a, h$$CA);+  return h$e(b);+};+function h$$Cy()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  h$sp -= 3;+  if((a.f.a === 1))+  {+    h$r1 = false;+  }+  else+  {+    var c = a.d1;+    h$pp13(c, a.d2, h$$Cz);+    return h$e(b);+  };+  return h$stack[h$sp];+};+function h$$Cx()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$p1(h$$CB);+    return h$e(b);+  }+  else+  {+    var c = a.d1;+    h$p3(c, a.d2, h$$Cy);+    return h$e(b);+  };+};+function h$baseZCGHCziBasezieqString_e()+{+  h$p2(h$r3, h$$Cx);+  return h$e(h$r2);+};+function h$$CJ()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l3(b, a, h$baseZCGHCziBasezimap);+  return h$ap_2_2_fast();+};+function h$$CI()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(b, a);+  return h$ap_1_1_fast();+};+function h$$CH()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    var c = a.d1;+    h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$c2(h$$CI, b, c), h$c2(h$$CJ, b, a.d2));+  };+  return h$stack[h$sp];+};+function h$$CG()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(b, a);+  return h$ap_1_1_fast();+};+function h$$CF()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  if((a.f.a === 1))+  {+    h$r1 = c;+    return h$ap_0_0_fast();+  }+  else+  {+    var e = a.d1;+    h$l3(h$c2(h$$CG, d, a.d2), e, b);+    return h$ap_2_2_fast();+  };+};+function h$$CE()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$p4(a, c, b.d2, h$$CF);+  return h$e(h$r2);+};+function h$$CD()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l3(a, b, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+function h$$CC()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    return h$e(b);+  }+  else+  {+    var c = a.d1;+    h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, c, h$c2(h$$CD, b, a.d2));+  };+  return h$stack[h$sp];+};+function h$baseZCGHCziBasezimap_e()+{+  h$p2(h$r2, h$$CH);+  return h$e(h$r3);+};+function h$baseZCGHCziBasezifoldr_e()+{+  var a = h$r3;+  var b = h$r4;+  var c = h$c(h$$CE);+  c.d1 = h$r2;+  c.d2 = h$d2(a, c);+  h$l2(b, c);+  return h$ap_1_1_fast();+};+function h$baseZCGHCziBasezizpzp_e()+{+  h$p2(h$r3, h$$CC);+  return h$e(h$r2);+};+function h$$CK()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l2(a, b);+  return h$ap_2_1_fast();+};+function h$baseZCGHCziBasezibindIO1_e()+{+  h$p2(h$r3, h$$CK);+  h$r1 = h$r2;+  return h$ap_1_0_fast();+};+function h$$CL()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = a;+  return h$ap_1_0_fast();+};+function h$baseZCGHCziBasezithenIO1_e()+{+  h$p2(h$r3, h$$CL);+  h$r1 = h$r2;+  return h$ap_1_0_fast();+};+function h$baseZCGHCziBasezireturnIO1_e()+{+  h$r1 = h$r2;+  return h$stack[h$sp];+};+function h$baseZCGHCziBasezizdfMonadIOzuzdcfail_e()+{+  h$r1 = h$baseZCGHCziIOzifailIO;+  return h$ap_1_1_fast();+};+function h$$CN()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(b, a);+  return h$ap_1_1_fast();+};+function h$$CM()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c2(h$$CN, b, a);+  return h$stack[h$sp];+};+function h$baseZCGHCziBasezizdfFunctorIO2_e()+{+  h$p2(h$r2, h$$CM);+  h$r1 = h$r3;+  return h$ap_1_0_fast();+};+function h$$CO()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = a;+  return h$stack[h$sp];+};+function h$baseZCGHCziBasezizdfFunctorIO1_e()+{+  h$p2(h$r2, h$$CO);+  h$r1 = h$r3;+  return h$ap_1_0_fast();+};+function h$baseZCGHCziBaseziDZCMonad_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziBaseziDZCMonad_e()+{+  h$r1 = h$c4(h$baseZCGHCziBaseziDZCMonad_con_e, h$r2, h$r3, h$r4, h$r5);+  return h$stack[h$sp];+};+function h$baseZCGHCziBaseziDZCFunctor_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCGHCziBaseziDZCFunctor_e()+{+  h$r1 = h$c2(h$baseZCGHCziBaseziDZCFunctor_con_e, h$r2, h$r3);+  return h$stack[h$sp];+};+function h$$CP()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(b, a);+  return h$ap_1_1_fast();+};+function h$baseZCGHCziBasezizi_e()+{+  var a = h$r2;+  h$l2(h$c2(h$$CP, h$r3, h$r4), a);+  return h$ap_1_1_fast();+};+function h$baseZCGHCziBaseziid_e()+{+  h$r1 = h$r2;+  return h$ap_0_0_fast();+};+function h$$CQ()+{+  var a = h$r1;+  --h$sp;+  var b = a.d2;+  h$r1 = b.d2;+  return h$ap_0_0_fast();+};+function h$baseZCGHCziBasezireturn_e()+{+  h$p1(h$$CQ);+  return h$e(h$r2);+};+function h$$CR()+{+  var a = h$r1;+  --h$sp;+  h$r1 = a.d1;+  return h$ap_0_0_fast();+};+function h$baseZCGHCziBasezifmap_e()+{+  h$p1(h$$CR);+  return h$e(h$r2);+};+function h$$CS()+{+  var a = h$r1;+  --h$sp;+  var b = a.d2;+  h$r1 = b.d1;+  return h$ap_0_0_fast();+};+function h$baseZCGHCziBasezizgzg_e()+{+  h$p1(h$$CS);+  return h$e(h$r2);+};+function h$$CT()+{+  var a = h$r1;+  --h$sp;+  h$r1 = a.d1;+  return h$ap_0_0_fast();+};+function h$baseZCGHCziBasezizgzgze_e()+{+  h$p1(h$$CT);+  return h$e(h$r2);+};+function h$$CU()+{+  var a = h$r1;+  --h$sp;+  var b = a.d2;+  h$r1 = b.d3;+  return h$ap_0_0_fast();+};+function h$baseZCGHCziBasezifail_e()+{+  h$p1(h$$CU);+  return h$e(h$r2);+};+function h$baseZCForeignziStorablezizdfStorableCharzuzdcalignment_e()+{+  return h$e(h$baseZCForeignziStorablezizdfStorableBool7);+};+function h$$CW()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var d = a;+  var e;+  var f;+  e = b;+  f = (c + d);+  var g = e.dv.getUint32((f + 0), true);+  h$r1 = g;+  return h$stack[h$sp];+};+function h$$CV()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a.d1;+  h$p3(c, a.d2, h$$CW);+  return h$e(b);+};+function h$baseZCForeignziStorablezizdfStorableChar4_e()+{+  h$p2(h$r3, h$$CV);+  return h$e(h$r2);+};+function h$$CZ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var e = a;+  var f;+  var g;+  f = b;+  g = (d + c);+  f.dv.setUint32((g + 0), e, true);+  h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  return h$stack[h$sp];+};+function h$$CY()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  h$sp -= 4;+  h$pp10(a, h$$CZ);+  return h$e(b);+};+function h$$CX()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  h$sp -= 3;+  var c = a.d1;+  h$pp13(c, a.d2, h$$CY);+  return h$e(b);+};+function h$baseZCForeignziStorablezizdfStorableChar3_e()+{+  h$p3(h$r3, h$r4, h$$CX);+  return h$e(h$r2);+};+function h$$C0()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  var c = a.d2;+  var d = b.dv.getUint32((c + 0), true);+  h$r1 = d;+  return h$stack[h$sp];+};+function h$baseZCForeignziStorablezizdfStorableChar2_e()+{+  h$p1(h$$C0);+  return h$e(h$r2);+};+function h$$C2()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var d = a;+  b.dv.setUint32((c + 0), d, true);+  h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  return h$stack[h$sp];+};+function h$$C1()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a.d1;+  h$p3(c, a.d2, h$$C2);+  return h$e(b);+};+function h$baseZCForeignziStorablezizdfStorableChar1_e()+{+  h$p2(h$r3, h$$C1);+  return h$e(h$r2);+};+function h$baseZCForeignziStorableziDZCStorable_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCForeignziStorableziDZCStorable_e()+{+  h$r1 = h$c8(h$baseZCForeignziStorableziDZCStorable_con_e, h$r2, h$r3, h$r4, h$r5, h$r6, h$r7, h$r8, h$r9);+  return h$stack[h$sp];+};+function h$$C3()+{+  var a = h$r1;+  --h$sp;+  var b = a.d2;+  h$r1 = b.d3;+  return h$ap_0_0_fast();+};+function h$baseZCForeignziStorablezipokeElemOff_e()+{+  h$p1(h$$C3);+  return h$e(h$r2);+};+function h$$C4()+{+  var a = h$r1;+  --h$sp;+  var b = a.d2;+  h$r1 = b.d2;+  return h$ap_0_0_fast();+};+function h$baseZCForeignziStorablezipeekElemOff_e()+{+  h$p1(h$$C4);+  return h$e(h$r2);+};+function h$$C9()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$p3(h$baseZCForeignziMarshalziArrayzilengthArray2, b, h$ap_2_2);+  h$l2(a, h$baseZCForeignziStorablezipeekElemOff);+  return h$baseZCForeignziStorablezipeekElemOff_e;+};+function h$$C8()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$baseZCForeignziStorablezipeekElemOff);+  return h$baseZCForeignziStorablezipeekElemOff_e;+};+function h$$C7()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$sp -= 3;+  h$l2(h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, a, b), ((c - 1) | 0));+  h$sp += 3;+  ++h$sp;+  return h$$C5;+};+function h$$C6()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, a, b);+  return h$stack[h$sp];+};+function h$$C5()+{+  var a = h$stack[(h$sp - 3)];+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var d = h$r2;+  var e = h$r1;+  if((e === 0))+  {+    h$p2(d, h$$C6);+    h$r1 = b;+    return h$ap_1_0_fast();+  }+  else+  {+    var f = e;+    h$sp += 3;+    h$p3(d, e, h$$C7);+    h$l3(f, a, c);+    return h$ap_3_2_fast();+  };+};+function h$baseZCForeignziMarshalziArrayzizdwa8_e()+{+  var a = h$r2;+  var b = h$r3;+  var c = h$r4;+  if((b <= 0))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    var d = h$c2(h$$C9, a, c);+    var e = h$c1(h$$C8, a);+    h$l2(h$ghczmprimZCGHCziTypesziZMZN, ((b - 1) | 0));+    h$p3(c, d, e);+    ++h$sp;+    return h$$C5;+  };+  return h$stack[h$sp];+};+function h$$Dd()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$baseZCForeignziStorablezipokeElemOff);+  return h$baseZCForeignziStorablezipokeElemOff_e;+};+function h$$Dc()+{+  var a = h$stack[(h$sp - 2)];+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$sp -= 2;+  h$l2(((a + 1) | 0), b);+  h$sp += 2;+  ++h$sp;+  return h$$Da;+};+function h$$Db()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = h$stack[(h$sp - 1)];+  var d = h$stack[h$sp];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  }+  else+  {+    var e = a.d1;+    var f = a.d2;+    var g = b;+    h$sp += 2;+    h$pp6(f, h$$Dc);+    h$l4(e, g, c, d);+    return h$ap_4_3_fast();+  };+  return h$stack[h$sp];+};+function h$$Da()+{+  h$sp -= 3;+  var a = h$r1;+  var b = h$r2;+  h$sp += 2;+  h$p2(b, h$$Db);+  return h$e(a);+};+function h$baseZCForeignziMarshalziArrayzinewArray8_e()+{+  var a = h$r2;+  h$l2(0, h$r4);+  h$p2(h$r3, h$c1(h$$Dd, a));+  ++h$sp;+  return h$$Da;+};+var h$baseZCForeignziMarshalziAlloczimallocBytes4 = h$strta("malloc");+var h$baseZCForeignziMarshalziAlloczimallocBytes3 = h$strta("out of memory");+function h$$Df()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 2)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 5;+  if(a)+  {+    var f = h$__hscore_get_errno();+    var g = f;+    var h = (g | 0);+    if((h === 4))+    {+      h$l4(d, c, b, h$baseZCForeignziCziErrorzithrowErrnoIfMinus1Retry2);+      return h$ap_4_3_fast();+    }+    else+    {+      h$l2(c, h$baseZCForeignziCziErrorzithrowErrno1);+      return h$ap_2_1_fast();+    };+  }+  else+  {+    h$r1 = e;+  };+  return h$stack[h$sp];+};+function h$$De()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  h$sp -= 4;+  h$pp24(a, h$$Df);+  h$l2(a, b);+  return h$ap_1_1_fast();+};+function h$baseZCForeignziCziErrorzithrowErrnoIfMinus1Retry2_e()+{+  h$p4(h$r2, h$r3, h$r4, h$$De);+  h$r1 = h$r4;+  return h$ap_1_0_fast();+};+function h$$Dg()+{+  var a = h$r1;+  --h$sp;+  h$l2(a, h$baseZCGHCziIOziExceptionziioError);+  return h$ap_2_1_fast();+};+function h$baseZCForeignziCziErrorzithrowErrno1_e()+{+  var a = h$r2;+  var b = h$__hscore_get_errno();+  var c = b;+  h$p1(h$$Dg);+  h$l5(h$baseZCDataziMaybeziNothing, h$baseZCDataziMaybeziNothing, (c | 0), a, h$baseZCForeignziCziErrorzierrnoToIOError);+  return h$ap_4_4_fast();+};+function h$$Dk()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 5)];+  var c = h$stack[(h$sp - 4)];+  var d = h$stack[(h$sp - 3)];+  var e = h$stack[(h$sp - 2)];+  var f = h$stack[(h$sp - 1)];+  h$sp -= 6;+  var g;+  switch (f)+  {+    case (1):+      g = h$baseZCGHCziIOziExceptionziPermissionDenied;+      break;+    case (2):+      g = h$baseZCGHCziIOziExceptionziNoSuchThing;+      break;+    case (3):+      g = h$baseZCGHCziIOziExceptionziNoSuchThing;+      break;+    case (4):+      g = h$baseZCGHCziIOziExceptionziInterrupted;+      break;+    case (5):+      g = h$baseZCGHCziIOziExceptionziHardwareFault;+      break;+    case (6):+      g = h$baseZCGHCziIOziExceptionziNoSuchThing;+      break;+    case (7):+      g = h$baseZCGHCziIOziExceptionziResourceExhausted;+      break;+    case (8):+      g = h$baseZCGHCziIOziExceptionziInvalidArgument;+      break;+    case (9):+      g = h$baseZCGHCziIOziExceptionziInvalidArgument;+      break;+    case (10):+      g = h$baseZCGHCziIOziExceptionziNoSuchThing;+      break;+    case (11):+      g = h$baseZCGHCziIOziExceptionziResourceBusy;+      break;+    case (12):+      g = h$baseZCGHCziIOziExceptionziResourceExhausted;+      break;+    case (13):+      g = h$baseZCGHCziIOziExceptionziPermissionDenied;+      break;+    case (15):+      g = h$baseZCGHCziIOziExceptionziInvalidArgument;+      break;+    case (16):+      g = h$baseZCGHCziIOziExceptionziResourceBusy;+      break;+    case (17):+      g = h$baseZCGHCziIOziExceptionziAlreadyExists;+      break;+    case (18):+      g = h$baseZCGHCziIOziExceptionziUnsupportedOperation;+      break;+    case (19):+      g = h$baseZCGHCziIOziExceptionziUnsupportedOperation;+      break;+    case (20):+      g = h$baseZCGHCziIOziExceptionziInappropriateType;+      break;+    case (21):+      g = h$baseZCGHCziIOziExceptionziInappropriateType;+      break;+    case (22):+      g = h$baseZCGHCziIOziExceptionziInvalidArgument;+      break;+    case (23):+      g = h$baseZCGHCziIOziExceptionziResourceExhausted;+      break;+    case (24):+      g = h$baseZCGHCziIOziExceptionziResourceExhausted;+      break;+    case (25):+      g = h$baseZCGHCziIOziExceptionziIllegalOperation;+      break;+    case (26):+      g = h$baseZCGHCziIOziExceptionziResourceBusy;+      break;+    case (27):+      g = h$baseZCGHCziIOziExceptionziPermissionDenied;+      break;+    case (28):+      g = h$baseZCGHCziIOziExceptionziResourceExhausted;+      break;+    case (29):+      g = h$baseZCGHCziIOziExceptionziUnsupportedOperation;+      break;+    case (30):+      g = h$baseZCGHCziIOziExceptionziPermissionDenied;+      break;+    case (31):+      g = h$baseZCGHCziIOziExceptionziResourceExhausted;+      break;+    case (32):+      g = h$baseZCGHCziIOziExceptionziResourceVanished;+      break;+    case (33):+      g = h$baseZCGHCziIOziExceptionziInvalidArgument;+      break;+    case (34):+      g = h$baseZCGHCziIOziExceptionziUnsupportedOperation;+      break;+    case (35):+      g = h$baseZCGHCziIOziExceptionziResourceExhausted;+      break;+    case (36):+      g = h$baseZCGHCziIOziExceptionziAlreadyExists;+      break;+    case (37):+      g = h$baseZCGHCziIOziExceptionziAlreadyExists;+      break;+    case (38):+      g = h$baseZCGHCziIOziExceptionziInvalidArgument;+      break;+    case (39):+      g = h$baseZCGHCziIOziExceptionziInvalidArgument;+      break;+    case (40):+      g = h$baseZCGHCziIOziExceptionziResourceExhausted;+      break;+    case (41):+      g = h$baseZCGHCziIOziExceptionziProtocolError;+      break;+    case (42):+      g = h$baseZCGHCziIOziExceptionziUnsupportedOperation;+      break;+    case (43):+      g = h$baseZCGHCziIOziExceptionziProtocolError;+      break;+    case (44):+      g = h$baseZCGHCziIOziExceptionziUnsupportedOperation;+      break;+    case (46):+      g = h$baseZCGHCziIOziExceptionziUnsupportedOperation;+      break;+    case (47):+      g = h$baseZCGHCziIOziExceptionziUnsupportedOperation;+      break;+    case (48):+      g = h$baseZCGHCziIOziExceptionziResourceBusy;+      break;+    case (49):+      g = h$baseZCGHCziIOziExceptionziUnsupportedOperation;+      break;+    case (50):+      g = h$baseZCGHCziIOziExceptionziResourceVanished;+      break;+    case (51):+      g = h$baseZCGHCziIOziExceptionziNoSuchThing;+      break;+    case (52):+      g = h$baseZCGHCziIOziExceptionziResourceVanished;+      break;+    case (54):+      g = h$baseZCGHCziIOziExceptionziResourceVanished;+      break;+    case (55):+      g = h$baseZCGHCziIOziExceptionziResourceExhausted;+      break;+    case (56):+      g = h$baseZCGHCziIOziExceptionziAlreadyExists;+      break;+    case (57):+      g = h$baseZCGHCziIOziExceptionziInvalidArgument;+      break;+    case (58):+      g = h$baseZCGHCziIOziExceptionziIllegalOperation;+      break;+    case (59):+      g = h$baseZCGHCziIOziExceptionziResourceExhausted;+      break;+    case (60):+      g = h$baseZCGHCziIOziExceptionziTimeExpired;+      break;+    case (61):+      g = h$baseZCGHCziIOziExceptionziNoSuchThing;+      break;+    case (62):+      g = h$baseZCGHCziIOziExceptionziInvalidArgument;+      break;+    case (63):+      g = h$baseZCGHCziIOziExceptionziInvalidArgument;+      break;+    case (64):+      g = h$baseZCGHCziIOziExceptionziNoSuchThing;+      break;+    case (65):+      g = h$baseZCGHCziIOziExceptionziNoSuchThing;+      break;+    case (66):+      g = h$baseZCGHCziIOziExceptionziUnsatisfiedConstraints;+      break;+    case (67):+      g = h$baseZCGHCziIOziExceptionziPermissionDenied;+      break;+    case (68):+      g = h$baseZCGHCziIOziExceptionziResourceExhausted;+      break;+    case (69):+      g = h$baseZCGHCziIOziExceptionziPermissionDenied;+      break;+    case (70):+      g = h$baseZCGHCziIOziExceptionziResourceVanished;+      break;+    case (71):+      g = h$baseZCGHCziIOziExceptionziIllegalOperation;+      break;+    case (73):+      g = h$baseZCGHCziIOziExceptionziProtocolError;+      break;+    case (74):+      g = h$baseZCGHCziIOziExceptionziUnsupportedOperation;+      break;+    case (75):+      g = h$baseZCGHCziIOziExceptionziProtocolError;+      break;+    case (76):+      g = h$baseZCGHCziIOziExceptionziUnsupportedOperation;+      break;+    case (77):+      g = h$baseZCGHCziIOziExceptionziResourceExhausted;+      break;+    case (78):+      g = h$baseZCGHCziIOziExceptionziUnsupportedOperation;+      break;+    case (79):+      g = h$baseZCGHCziIOziExceptionziInappropriateType;+      break;+    case (90):+      g = h$baseZCGHCziIOziExceptionziResourceVanished;+      break;+    case (91):+      g = h$baseZCGHCziIOziExceptionziNoSuchThing;+      break;+    case (92):+      g = h$baseZCGHCziIOziExceptionziInvalidArgument;+      break;+    case (94):+      g = h$baseZCGHCziIOziExceptionziInappropriateType;+      break;+    case (95):+      g = h$baseZCGHCziIOziExceptionziUnsupportedOperation;+      break;+    case (96):+      g = h$baseZCGHCziIOziExceptionziNoSuchThing;+      break;+    case (97):+      g = h$baseZCGHCziIOziExceptionziResourceVanished;+      break;+    case (98):+      g = h$baseZCGHCziIOziExceptionziResourceExhausted;+      break;+    case (99):+      g = h$baseZCGHCziIOziExceptionziInvalidArgument;+      break;+    case (100):+      g = h$baseZCGHCziIOziExceptionziProtocolError;+      break;+    case (101):+      g = h$baseZCGHCziIOziExceptionziTimeExpired;+      break;+    case (102):+      g = h$baseZCGHCziIOziExceptionziUnsupportedOperation;+      break;+    default:+      g = h$baseZCGHCziIOziExceptionziOtherError;+  };+  h$r1 = h$c6(h$baseZCGHCziIOziExceptionziIOError_con_e, c, g, b, a, h$c1(h$baseZCDataziMaybeziJust_con_e, e), d);+  return h$stack[h$sp];+};+function h$$Dj()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 8;+  h$pp32(h$$Dk);+  h$l4(c, b, a, h$baseZCGHCziForeignzizdwa);+  return h$ap_3_3_fast();+};+function h$$Di()+{+  var a = h$r1;+  h$sp -= 4;+  var b = a;+  var c = h$strerror(a);+  h$pp248(a, b, c, h$ret1, h$$Dj);+  h$r1 = h$baseZCGHCziIOziEncodingzigetForeignEncoding;+  return h$ap_1_0_fast();+};+function h$$Dh()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  h$p4(a, d, b.d3, h$$Di);+  return h$e(c);+};+function h$baseZCForeignziCziErrorzierrnoToIOError_e()+{+  h$l2(h$c4(h$$Dh, h$r2, h$r3, h$r4, h$r5), h$baseZCGHCziIOziunsafeDupablePerformIO);+  return h$ap_1_1_fast();+};+function h$baseZCDataziTypeableziInternalziTypeRep_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCDataziTypeableziInternalziTypeRep_e()+{+  h$r1 = h$c6(h$baseZCDataziTypeableziInternalziTypeRep_con_e, h$r2, h$r3, h$r4, h$r5, h$r6, h$r7);+  return h$stack[h$sp];+};+function h$$Dl()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var d = a.d1;+  var e = a.d2;+  var f = e.d1;+  var g = e.d2;+  h$r1 = h$c6(h$baseZCDataziTypeableziInternalziTypeRep_con_e, d, f, g, e.d3, b, c);+  return h$stack[h$sp];+};+function h$baseZCDataziTypeableziInternalzizdWTypeRep_e()+{+  h$p3(h$r3, h$r4, h$$Dl);+  return h$e(h$r2);+};+function h$baseZCDataziTypeableziInternalziTyCon_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCDataziTypeableziInternalziTyCon_e()+{+  h$r1 = h$c7(h$baseZCDataziTypeableziInternalziTyCon_con_e, h$r2, h$r3, h$r4, h$r5, h$r6, h$r7, h$r8);+  return h$stack[h$sp];+};+function h$$Dm()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var e = a.d1;+  var f = a.d2;+  var g = f.d1;+  var h = f.d2;+  h$r1 = h$c7(h$baseZCDataziTypeableziInternalziTyCon_con_e, e, g, h, f.d3, b, c, d);+  return h$stack[h$sp];+};+function h$baseZCDataziTypeableziInternalzizdWTyCon_e()+{+  h$p4(h$r3, h$r4, h$r5, h$$Dm);+  return h$e(h$r2);+};+function h$$Do()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 5)];+  var c = h$stack[(h$sp - 4)];+  var d = h$stack[(h$sp - 3)];+  var e = h$stack[(h$sp - 2)];+  var f = h$stack[(h$sp - 1)];+  h$sp -= 6;+  var g = a.d1;+  var h = a.d2;+  var i = h.d1;+  var j = h.d2;+  if(h$hs_eqWord64(b, d, g, i))+  {+    if(h$hs_eqWord64(e, f, j, h.d3))+    {+      h$r1 = h$c1(h$baseZCDataziMaybeziJust_con_e, c);+    }+    else+    {+      h$r1 = h$baseZCDataziMaybeziNothing;+    };+  }+  else+  {+    h$r1 = h$baseZCDataziMaybeziNothing;+  };+  return h$stack[h$sp];+};+function h$$Dn()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  h$sp -= 3;+  var c = a.d1;+  var d = a.d2;+  var e = d.d1;+  var f = d.d2;+  h$pp61(c, e, f, d.d3, h$$Do);+  h$r1 = b;+  return h$ap_1_0_fast();+};+function h$baseZCDataziTypeablezicast_e()+{+  h$p3(h$r3, h$r4, h$$Dn);+  h$r1 = h$r2;+  return h$ap_1_0_fast();+};+function h$$Dp()+{+  var a = h$r1;+  --h$sp;+  h$r1 = a.d2;+  return h$ap_0_0_fast();+};+function h$baseZCDataziTuplezisnd_e()+{+  h$p1(h$$Dp);+  return h$e(h$r2);+};+function h$$Dq()+{+  var a = h$r1;+  --h$sp;+  h$r1 = a.d1;+  return h$ap_0_0_fast();+};+function h$baseZCDataziTuplezifst_e()+{+  h$p1(h$$Dq);+  return h$e(h$r2);+};+function h$baseZCDataziMaybeziJust_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCDataziMaybeziJust_e()+{+  h$r1 = h$c1(h$baseZCDataziMaybeziJust_con_e, h$r2);+  return h$stack[h$sp];+};+function h$baseZCDataziMaybeziNothing_con_e()+{+  return h$stack[h$sp];+};+function h$$Dx()+{+  var a;+  var b;+  a = h$r1;+  b = h$r2;+  --h$sp;+  h$r1 = h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, a, b);+  return h$stack[h$sp];+};+function h$$Dw()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$Dx);+  h$l3(a, h$baseZCGHCziUnicodeziisSpace, h$baseZCGHCziListzizdwbreak);+  return h$ap_2_2_fast();+};+function h$$Dv()+{+  var a = h$r1;+  --h$sp;+  h$l2(a.d2, h$baseZCDataziListziwords);+  return h$ap_1_1_fast();+};+function h$$Du()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$Dv);+  return h$e(a);+};+function h$$Dt()+{+  var a = h$r1;+  --h$sp;+  return h$e(a.d1);+};+function h$$Ds()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$Dt);+  return h$e(a);+};+function h$$Dr()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    var b = h$c1(h$$Dw, a);+    h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$c1(h$$Ds, b), h$c1(h$$Du, b));+  };+  return h$stack[h$sp];+};+function h$baseZCDataziListziwords_e()+{+  h$p1(h$$Dr);+  h$l3(h$r2, h$baseZCGHCziUnicodeziisSpace, h$baseZCGHCziListzidropWhile);+  return h$ap_2_2_fast();+};+function h$$D7()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$bh();+  h$l3(b.d2, c, a);+  return h$ap_2_2_fast();+};+function h$$D6()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$bh();+  h$l3(b.d2, c, a);+  return h$ap_2_2_fast();+};+function h$$D5()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 7)];+  var c = h$stack[(h$sp - 6)];+  var d = h$stack[(h$sp - 5)];+  var e = h$stack[(h$sp - 4)];+  var f = h$stack[(h$sp - 3)];+  var g = h$stack[(h$sp - 2)];+  var h = h$stack[(h$sp - 1)];+  h$sp -= 8;+  if((a.f.a === 3))+  {+    h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, g, h$c3(h$$D6, c, d, h));+  }+  else+  {+    h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, e, h$c3(h$$D7, c, f, b));+  };+  return h$stack[h$sp];+};+function h$$D4()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 5)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 2)];+  h$sp -= 6;+  if((a.f.a === 1))+  {+    h$r1 = c;+  }+  else+  {+    var e = a.d1;+    h$pp225(a, e, a.d2, h$$D5);+    h$l3(e, d, b);+    return h$ap_2_2_fast();+  };+  return h$stack[h$sp];+};+function h$$D3()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 4;+  if((a.f.a === 1))+  {+    return h$e(b);+  }+  else+  {+    var c = a.d1;+    h$pp60(a, c, a.d2, h$$D4);+    return h$e(b);+  };+};+function h$$D2()+{+  var a = h$r1.d1;+  h$p4(a, h$r1.d2, h$r3, h$$D3);+  return h$e(h$r2);+};+function h$$D1()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(b, a);+  return h$ap_1_1_fast();+};+function h$$D0()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$bh();+  h$l3(b.d2, c, a);+  return h$ap_2_2_fast();+};+function h$$DZ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 2)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 5;+  if((a.f.a === 1))+  {+    h$r1 = d;+  }+  else+  {+    var f = a.d1;+    h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$c3(h$$D0, b, e, f), h$c2(h$$D1, c, a.d2));+  };+  return h$stack[h$sp];+};+function h$$DY()+{+  var a = h$r1;+  h$sp -= 3;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    h$pp28(a, a.d1, h$$DZ);+    return h$e(a.d2);+  };+  return h$stack[h$sp];+};+function h$$DX()+{+  var a = h$r1.d1;+  h$p3(a, h$r1.d2, h$$DY);+  return h$e(h$r2);+};+function h$$DW()+{+  var a = h$r1;+  --h$sp;+  h$sp -= 2;+  h$r1 = a;+  h$sp += 2;+  ++h$sp;+  return h$$DR;+};+function h$$DV()+{+  var a = h$bh_lne((h$sp - 1), 3);+  if(a)+  {+    return a;+  };+  var b = h$stack[(h$sp - 2)];+  h$sp -= 3;+  h$sp += 2;+  h$p1(h$$DW);+  h$l2(h$ghczmprimZCGHCziTypesziZMZN, b);+  return h$ap_1_1_fast();+};+function h$$DU()+{+  var a = h$r1;+  --h$sp;+  h$sp -= 2;+  h$r1 = a;+  h$sp += 2;+  ++h$sp;+  return h$$DR;+};+function h$$DT()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var d = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    return h$e(c);+  }+  else+  {+    h$sp += 2;+    h$p1(h$$DU);+    h$l2(b, d);+    return h$ap_1_1_fast();+  };+};+function h$$DS()+{+  var a = h$r1;+  --h$sp;+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$sp += 2;+    ++h$sp;+    return h$$DV;+  }+  else+  {+    var b = a.d1;+    var c = a.d2;+    h$sp += 2;+    h$p3(a, b, h$$DT);+    return h$e(c);+  };+};+function h$$DR()+{+  h$sp -= 3;+  var a = h$r1;+  h$sp += 2;+  h$p1(h$$DS);+  return h$e(a);+};+function h$$DQ()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(h$ghczmprimZCGHCziTypesziZMZN, a);+  return h$ap_1_1_fast();+};+function h$$DP()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(b, a);+  return h$ap_1_1_fast();+};+function h$$DO()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 7)];+  var c = h$stack[(h$sp - 6)];+  var d = h$stack[(h$sp - 5)];+  var e = h$stack[(h$sp - 4)];+  var f = h$stack[(h$sp - 3)];+  var g = h$stack[(h$sp - 2)];+  var h = h$stack[(h$sp - 1)];+  h$sp -= 8;+  if((a.f.a === 3))+  {+    h$l4(h, h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, f, g), d, e);+    return h$ap_3_3_fast();+  }+  else+  {+    h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, f, g), h$c2(h$$DP, c, b));+  };+  return h$stack[h$sp];+};+function h$$DN()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 6)];+  var c = h$stack[(h$sp - 4)];+  var d = h$stack[(h$sp - 2)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 7;+  if((a.f.a === 1))+  {+    h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, d, e), c);+  }+  else+  {+    var f = a.d1;+    h$pp197(a, f, a.d2, h$$DO);+    h$l3(f, d, b);+    return h$ap_2_2_fast();+  };+  return h$stack[h$sp];+};+function h$$DM()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  h$p7(a, c, d, b.d3, h$r2, h$r3, h$$DN);+  return h$e(h$r4);+};+function h$$DL()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, a, h$ghczmprimZCGHCziTypesziZMZN), b);+  return h$ap_1_1_fast();+};+function h$$DK()+{+  h$l2(h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$r1.d1, h$r2), h$r1.d2);+  return h$ap_1_1_fast();+};+function h$$DJ()+{+  h$l2(h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$r1.d1, h$r2), h$r1.d2);+  return h$ap_1_1_fast();+};+function h$$DI()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(b, a);+  return h$ap_1_1_fast();+};+function h$$DH()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, a, h$ghczmprimZCGHCziTypesziZMZN), b);+  return h$ap_1_1_fast();+};+function h$$DG()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 7)];+  var c = h$stack[(h$sp - 6)];+  var d = h$stack[(h$sp - 5)];+  var e = h$stack[(h$sp - 4)];+  var f = h$stack[(h$sp - 3)];+  var g = h$stack[(h$sp - 2)];+  var h = h$stack[(h$sp - 1)];+  h$sp -= 8;+  switch (a.f.a)+  {+    case (1):+      h$l4(h, h$c2(h$$DK, f, g), d, e);+      return h$ap_3_3_fast();+    case (2):+      h$l4(h, h$c2(h$$DJ, f, g), d, e);+      return h$ap_3_3_fast();+    default:+      h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$c2(h$$DH, f, g), h$c2(h$$DI, c, b));+  };+  return h$stack[h$sp];+};+function h$$DF()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 6)];+  var c = h$stack[(h$sp - 4)];+  var d = h$stack[(h$sp - 2)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 7;+  if((a.f.a === 1))+  {+    h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$c2(h$$DL, d, e), c);+  }+  else+  {+    var f = a.d1;+    h$pp197(a, f, a.d2, h$$DG);+    h$l3(f, d, b);+    return h$ap_2_2_fast();+  };+  return h$stack[h$sp];+};+function h$$DE()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  h$p7(a, c, d, b.d3, h$r2, h$r3, h$$DF);+  return h$e(h$r4);+};+function h$$DD()+{+  h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$r1.d1, h$r2);+  return h$stack[h$sp];+};+function h$$DC()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 5)];+  var c = h$stack[(h$sp - 4)];+  var d = h$stack[(h$sp - 3)];+  var e = h$stack[(h$sp - 2)];+  var f = h$stack[(h$sp - 1)];+  h$sp -= 6;+  if((a.f.a === 3))+  {+    h$l4(e, h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, f, h$ghczmprimZCGHCziTypesziZMZN), b, c);+    return h$ap_3_3_fast();+  }+  else+  {+    h$l4(e, h$c1(h$$DD, f), b, d);+    return h$ap_3_3_fast();+  };+};+function h$$DB()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 5)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 6;+  if((a.f.a === 1))+  {+    h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, c, h$ghczmprimZCGHCziTypesziZMZN);+  }+  else+  {+    var e = a.d1;+    h$pp41(e, a.d2, h$$DC);+    h$l3(e, d, b);+    return h$ap_2_2_fast();+  };+  return h$stack[h$sp];+};+function h$$DA()+{+  var a = h$r1;+  h$sp -= 4;+  if((a.f.a === 1))+  {+    return h$e(h$$D8);+  }+  else+  {+    h$pp56(a, a.d1, h$$DB);+    return h$e(a.d2);+  };+};+function h$$Dz()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$p4(a, c, b.d2, h$$DA);+  return h$e(h$r2);+};+function h$$Dy()+{+  var a = h$r1;+  --h$sp;+  h$sp -= 2;+  h$r1 = a;+  h$sp += 2;+  ++h$sp;+  return h$$DR;+};+function h$baseZCDataziListzisortBy_e()+{+  var a = h$r2;+  var b = h$r3;+  var c = h$c(h$$D2);+  c.d1 = h$r2;+  c.d2 = c;+  var d = h$c(h$$DX);+  d.d1 = c;+  d.d2 = d;+  var e = null;+  var f = h$c(h$$DQ);+  var g = h$c(h$$DM);+  var h = h$c(h$$DE);+  var i = h$c(h$$Dz);+  f.d1 = i;+  g.d1 = a;+  g.d2 = h$d3(i, f, g);+  h.d1 = a;+  h.d2 = h$d3(i, f, h);+  i.d1 = a;+  i.d2 = h$d2(g, h);+  h$p2(d, e);+  h$p1(h$$Dy);+  h$l2(b, i);+  return h$ap_1_1_fast();+};+function h$baseZCDataziFunctorzizlzdzg_e()+{+  h$r1 = h$baseZCGHCziBasezifmap;+  return h$baseZCGHCziBasezifmap_e;+};+function h$baseZCControlziMonadziforMzu_e()+{+  var a = h$r4;+  h$r4 = h$r3;+  h$r3 = a;+  h$r1 = h$baseZCControlziMonadzimapMzu;+  return h$ap_3_3_fast();+};+function h$$Ee()+{+  var a = h$r1.d1;+  h$bh();+  h$p2(h$ghczmprimZCGHCziTupleziZLZR, h$ap_1_1);+  h$l2(a, h$baseZCGHCziBasezireturn);+  return h$baseZCGHCziBasezireturn_e;+};+function h$$Ed()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$baseZCGHCziBasezizgzg);+  return h$baseZCGHCziBasezizgzg_e;+};+function h$$Ec()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(b, a);+  return h$ap_1_1_fast();+};+function h$$Eb()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(b, a);+  return h$ap_1_1_fast();+};+function h$$Ea()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 2)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 5;+  if((a.f.a === 1))+  {+    h$r1 = c;+    return h$ap_0_0_fast();+  }+  else+  {+    var f = a.d1;+    h$l3(h$c2(h$$Ec, e, a.d2), h$c2(h$$Eb, b, f), d);+    return h$ap_2_2_fast();+  };+};+function h$$D9()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  h$p5(a, c, d, b.d3, h$$Ea);+  return h$e(h$r2);+};+function h$baseZCControlziMonadzimapMzu_e()+{+  var a = h$r4;+  var b = h$c1(h$$Ee, h$r2);+  var c = h$c1(h$$Ed, h$r2);+  var d = h$c(h$$D9);+  d.d1 = h$r3;+  d.d2 = h$d3(b, c, d);+  h$l2(a, d);+  return h$ap_1_1_fast();+};+function h$baseZCControlziMonadzizezlzl_e()+{+  h$p3(h$r3, h$r4, h$ap_2_2);+  h$r1 = h$baseZCGHCziBasezizgzgze;+  return h$baseZCGHCziBasezizgzgze_e;+};+function h$baseZCControlziExceptionziBasezizdfExceptionNonTerminationzuzdctoException_e()+{+  h$r1 = h$c2(h$baseZCGHCziExceptionziSomeException_con_e, h$baseZCControlziExceptionziBasezizdfExceptionNonTermination,+  h$r2);+  return h$stack[h$sp];+};+function h$baseZCControlziExceptionziBasezizdfExceptionPatternMatchFailzuzdctoException_e()+{+  h$r1 = h$c2(h$baseZCGHCziExceptionziSomeException_con_e, h$baseZCControlziExceptionziBasezizdfExceptionPatternMatchFail,+  h$r2);+  return h$stack[h$sp];+};+var h$$Eq = h$strta("Non-exhaustive patterns in");+function h$$Ef()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(b, a.d1, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+function h$baseZCControlziExceptionziBasezizdfShowPatternMatchFailzuzdcshowsPrec_e()+{+  h$p2(h$r4, h$$Ef);+  return h$e(h$r3);+};+function h$$Eg()+{+  var a = h$r1;+  --h$sp;+  return h$e(a.d1);+};+function h$baseZCControlziExceptionziBasezizdfShowPatternMatchFailzuzdcshow_e()+{+  h$p1(h$$Eg);+  return h$e(h$r2);+};+function h$$Eh()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l3(b, a.d1, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+function h$baseZCControlziExceptionziBasezizdfShowPatternMatchFail1_e()+{+  h$p2(h$r3, h$$Eh);+  return h$e(h$r2);+};+function h$baseZCControlziExceptionziBasezizdfShowPatternMatchFailzuzdcshowList_e()+{+  h$l4(h$r3, h$r2, h$baseZCControlziExceptionziBasezizdfShowPatternMatchFail1, h$baseZCGHCziShowzishowListzuzu);+  return h$baseZCGHCziShowzishowListzuzu_e;+};+var h$baseZCControlziExceptionziBasezizdfExceptionPatternMatchFailzuww5 = h$strta("PatternMatchFail");+function h$baseZCControlziExceptionziBasezizdfExceptionPatternMatchFailzuzdctypeRepzh_e()+{+  return h$e(h$baseZCControlziExceptionziBasezizdfExceptionPatternMatchFail1);+};+function h$$Ej()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l4(b, h$baseZCControlziExceptionziBasezizdfExceptionPatternMatchFailzuzdctypeRepzh, a, h$baseZCDataziTypeablezicast);+  return h$baseZCDataziTypeablezicast_e;+};+function h$$Ei()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  h$p2(a.d2, h$$Ej);+  h$l2(b, h$baseZCGHCziExceptionzizdp1Exception);+  return h$baseZCGHCziExceptionzizdp1Exception_e;+};+function h$baseZCControlziExceptionziBasezizdfExceptionPatternMatchFailzuzdcfromException_e()+{+  h$p1(h$$Ei);+  return h$e(h$r2);+};+function h$$Ek()+{+  --h$sp;+  h$r1 = h$baseZCControlziExceptionziBasezizdfShowNonTermination2;+  return h$ap_0_0_fast();+};+function h$baseZCControlziExceptionziBasezizdfShowNonTerminationzuzdcshowsPrec_e()+{+  h$p1(h$$Ek);+  return h$e(h$r3);+};+function h$$El()+{+  --h$sp;+  return h$e(h$baseZCControlziExceptionziBasezizdfShowNonTermination3);+};+function h$baseZCControlziExceptionziBasezizdfShowNonTerminationzuzdcshow_e()+{+  h$p1(h$$El);+  return h$e(h$r2);+};+var h$baseZCControlziExceptionziBasezizdfShowNonTermination3 = h$strta("<<loop>>");+function h$baseZCControlziExceptionziBasezizdfShowNonTermination2_e()+{+  h$l3(h$r2, h$baseZCControlziExceptionziBasezizdfShowNonTermination3, h$baseZCGHCziBasezizpzp);+  return h$ap_2_2_fast();+};+function h$$Em()+{+  --h$sp;+  h$r1 = h$baseZCControlziExceptionziBasezizdfShowNonTermination2;+  return h$ap_0_0_fast();+};+function h$baseZCControlziExceptionziBasezizdfShowNonTermination1_e()+{+  h$p1(h$$Em);+  return h$e(h$r2);+};+function h$baseZCControlziExceptionziBasezizdfShowNonTerminationzuzdcshowList_e()+{+  h$l4(h$r3, h$r2, h$baseZCControlziExceptionziBasezizdfShowNonTermination1, h$baseZCGHCziShowzishowListzuzu);+  return h$baseZCGHCziShowzishowListzuzu_e;+};+var h$baseZCControlziExceptionziBasezizdfExceptionNonTerminationzuww5 = h$strta("NonTermination");+function h$baseZCControlziExceptionziBasezizdfExceptionNonTerminationzuzdctypeRepzh_e()+{+  return h$e(h$baseZCControlziExceptionziBasezizdfExceptionNonTermination1);+};+function h$$Eo()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$l4(b, h$baseZCControlziExceptionziBasezizdfExceptionNonTerminationzuzdctypeRepzh, a, h$baseZCDataziTypeablezicast);+  return h$baseZCDataziTypeablezicast_e;+};+function h$$En()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  h$p2(a.d2, h$$Eo);+  h$l2(b, h$baseZCGHCziExceptionzizdp1Exception);+  return h$baseZCGHCziExceptionzizdp1Exception_e;+};+function h$baseZCControlziExceptionziBasezizdfExceptionNonTerminationzuzdcfromException_e()+{+  h$p1(h$$En);+  return h$e(h$r2);+};+var h$baseZCControlziExceptionziBasezizdfExceptionNestedAtomically3 = h$strta("base");+var h$baseZCControlziExceptionziBasezizdfExceptionNestedAtomicallyzuww4 = h$strta("Control.Exception.Base");+function h$baseZCControlziExceptionziBaseziNonTermination_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCControlziExceptionziBaseziPatternMatchFail_con_e()+{+  return h$stack[h$sp];+};+function h$baseZCControlziExceptionziBaseziPatternMatchFail_e()+{+  h$r1 = h$c1(h$baseZCControlziExceptionziBaseziPatternMatchFail_con_e, h$r2);+  return h$stack[h$sp];+};+function h$baseZCControlziExceptionziBasezinonTermination_e()+{+  h$bh();+  h$l2(h$baseZCControlziExceptionziBaseziNonTermination,+  h$baseZCControlziExceptionziBasezizdfExceptionNonTerminationzuzdctoException);+  return h$ap_1_1_fast();+};+function h$$Ep()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l4(h$$Eq, b, a, h$baseZCGHCziIOziExceptionziuntangle);+  return h$baseZCGHCziIOziExceptionziuntangle_e;+};+function h$baseZCControlziExceptionziBasezipatError_e()+{+  var a = h$c2(h$$Ep, h$r2, h$r3);+  h$l3(h$baseZCControlziExceptionziBasezizdfExceptionPatternMatchFailzuzdctoException,+  h$c1(h$baseZCControlziExceptionziBaseziPatternMatchFail_con_e, a), h$baseZCGHCziExceptionzithrow2);+  return h$ap_2_2_fast();+};+function h$$EA()+{+  h$bh();+  h$l4(h$$FV, h$baseZCGHCziBasezizdfMonadIO,+  h$transformerszm0zi4zi3zi0ZCControlziMonadziTransziReaderzizdfMonadTransReaderT,+  h$transformerszm0zi4zi3zi0ZCControlziMonadziTransziClasszilift);+  return h$ap_3_3_fast();+};+function h$$Ez()+{+  var a = h$r1.d1;+  h$bh();+  h$l4(h$c(h$$EA), a, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfIsElementElement,+  h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziElementzielementOnkeyup);+  return h$ap_3_3_fast();+};+function h$$Ey()+{+  var a = h$r1.d1;+  h$bh();+  h$l4(h$$FV, h$c1(h$$Ez, a), h$baseZCGHCziBasezizdfMonadIO, h$baseZCGHCziBasezizgzg);+  return h$ap_3_3_fast();+};+function h$$Ex()+{+  h$bh();+  h$l4(h$$FV, h$baseZCGHCziBasezizdfMonadIO,+  h$transformerszm0zi4zi3zi0ZCControlziMonadziTransziReaderzizdfMonadTransReaderT,+  h$transformerszm0zi4zi3zi0ZCControlziMonadziTransziClasszilift);+  return h$ap_3_3_fast();+};+function h$$Ew()+{+  var a = h$r1.d1;+  h$bh();+  h$l4(h$c(h$$Ex), a, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfIsElementElement,+  h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziElementzielementOnchange);+  return h$ap_3_3_fast();+};+function h$$Ev()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    var b = h$ustra("Pattern match failure in do expression at ghcjs-demo.hs:32:3-12");+    h$l3(b, h$baseZCGHCziBasezizdfMonadIO, h$baseZCGHCziBasezifail);+    return h$ap_2_2_fast();+  }+  else+  {+    var c = a.d1;+    h$l4(h$c1(h$$Ey, c), h$c1(h$$Ew, c), h$baseZCGHCziBasezizdfMonadIO, h$baseZCGHCziBasezizgzg);+    return h$ap_3_3_fast();+  };+};+function h$$Eu()+{+  h$p1(h$$Ev);+  return h$e(h$r2);+};+function h$$Et()+{+  var a = h$r1.d1;+  h$bh();+  var b = h$ustra("input");+  h$l5(b, a, h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziForeignzizdfToJSStringZMZN,+  h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfIsDocumentDocument,+  h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziDocumentzidocumentGetElementById);+  return h$ap_4_4_fast();+};+function h$$Es()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    var b = h$ustra("Pattern match failure in do expression at ghcjs-demo.hs:31:3-10");+    h$l3(b, h$baseZCGHCziBasezizdfMonadIO, h$baseZCGHCziBasezifail);+    return h$ap_2_2_fast();+  }+  else+  {+    h$l4(h$c(h$$Eu), h$c1(h$$Et, a.d1), h$baseZCGHCziBasezizdfMonadIO, h$baseZCGHCziBasezizgzgze);+    return h$ap_3_3_fast();+  };+};+function h$$Er()+{+  h$p1(h$$Es);+  return h$e(h$r2);+};+function h$$Fq()+{+  var a = h$r1.d1;+  h$bh();+  h$l3(a, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfGObjectClassElement,+  h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszicastToHTMLCanvasElement);+  return h$ap_2_2_fast();+};+function h$$Fp()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvaszifill);+  return h$ap_1_1_fast();+};+function h$$Fo()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvasziclosePath);+  return h$ap_1_1_fast();+};+function h$$Fn()+{+  var a = h$r1.d1;+  h$bh();+  h$l4(h$c1(h$$Fp, a), h$c1(h$$Fo, a), h$baseZCGHCziBasezizdfMonadIO, h$baseZCGHCziBasezizgzg);+  return h$ap_3_3_fast();+};+function h$$Fm()+{+  h$bh();+  h$l2(h$baseZCGHCziFloatzizdfFloatingDouble, h$baseZCGHCziFloatzipi);+  return h$ap_1_1_fast();+};+function h$$Fl()+{+  h$bh();+  h$l4(h$c(h$$Fm), 2.0, h$baseZCGHCziFloatzizdfNumDouble, h$baseZCGHCziNumzizt);+  return h$ap_3_3_fast();+};+function h$$Fk()+{+  var a = h$r1.d1;+  h$bh();+  h$l4(2.0, a, h$baseZCGHCziFloatzizdfFractionalDouble, h$baseZCGHCziRealzizs);+  return h$ap_3_3_fast();+};+function h$$Fj()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l4(h$c1(h$$Fk, a), b, h$baseZCGHCziFloatzizdfNumDouble, h$baseZCGHCziNumzizp);+  return h$ap_3_3_fast();+};+function h$$Fi()+{+  var a = h$r1.d1;+  h$bh();+  h$l4(2.0, a, h$baseZCGHCziFloatzizdfFractionalDouble, h$baseZCGHCziRealzizs);+  return h$ap_3_3_fast();+};+function h$$Fh()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l4(h$c1(h$$Fi, a), b, h$baseZCGHCziFloatzizdfNumDouble, h$baseZCGHCziNumzizp);+  return h$ap_3_3_fast();+};+function h$$Fg()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = b.d3;+  var f = b.d4;+  h$bh();+  h$l8(d, true, h$c(h$$Fl), 0.0, e, h$c2(h$$Fj, c, b.d5), h$c2(h$$Fh, a, f),+  h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvasziarc);+  return h$ap_gen_fast(1799);+};+function h$$Ff()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = b.d3;+  var f = b.d4;+  h$bh();+  h$l4(h$c1(h$$Fn, d), h$c6(h$$Fg, a, c, d, e, f, b.d5), h$baseZCGHCziBasezizdfMonadIO, h$baseZCGHCziBasezizgzg);+  return h$ap_3_3_fast();+};+function h$$Fe()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvaszibeginPath);+  return h$ap_1_1_fast();+};+function h$$Fd()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = b.d3;+  var f = b.d4;+  h$bh();+  h$l4(h$c6(h$$Ff, a, c, d, e, f, b.d5), h$c1(h$$Fe, d), h$baseZCGHCziBasezizdfMonadIO, h$baseZCGHCziBasezizgzg);+  return h$ap_3_3_fast();+};+function h$$Fc()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a.d1;+  c.fillStyle = b;+  h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  return h$stack[h$sp];+};+function h$$Fb()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a.d1, h$$Fc);+  return h$e(b);+};+function h$$Fa()+{+  h$p2(h$r1.d1, h$$Fb);+  h$l3(h$r1.d2, h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziForeignzizdfToJSStringZMZN,+  h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziForeignzitoJSString);+  return h$ap_2_2_fast();+};+function h$$E9()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 5)];+  var c = h$stack[(h$sp - 4)];+  var d = h$stack[(h$sp - 3)];+  var e = h$stack[(h$sp - 2)];+  var f = h$stack[(h$sp - 1)];+  h$sp -= 6;+  var g = a.d1;+  h$l4(h$c6(h$$Fd, b, c, d, e, g, a.d2), h$c2(h$$Fa, d, f), h$baseZCGHCziBasezizdfMonadIO, h$baseZCGHCziBasezizgzg);+  return h$ap_3_3_fast();+};+function h$$E8()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 5;+  var c = a.d1;+  h$pp56(c, a.d2, h$$E9);+  return h$e(b);+};+function h$$E7()+{+  var a = h$r1;+  h$sp -= 4;+  var b = a.d1;+  h$pp24(a.d2, h$$E8);+  return h$e(b);+};+function h$$E6()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$p4(a, c, b.d2, h$$E7);+  return h$e(h$r2);+};+function h$$E5()+{+  h$bh();+  h$l2(h$$FW, h$baseZCGHCziListzicycle);+  return h$ap_1_1_fast();+};+function h$$E4()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$baseZCDataziListziwords);+  return h$ap_1_1_fast();+};+function h$$E3()+{+  h$bh();+  h$l2(h$baseZCGHCziReadzizdfReadDouble, h$baseZCTextziReadziread);+  return h$ap_1_1_fast();+};+function h$$E2()+{+  var a = h$r1.d1;+  h$bh();+  h$l3(h$c1(h$$E4, a), h$c(h$$E3), h$baseZCGHCziBasezimap);+  return h$ap_2_2_fast();+};+function h$$E1()+{+  var a = h$r1.d1;+  h$bh();+  h$l3(h$c(h$$E5), h$c1(h$$E2, a), h$baseZCGHCziListzizzip);+  return h$ap_2_2_fast();+};+function h$$E0()+{+  var a = h$r1.d1;+  h$bh();+  h$l3(h$c1(h$$E1, a), h$baseZCDataziTuplezifst, h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzipackCircles);+  return h$ap_2_2_fast();+};+function h$$EZ()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$l4(h$c3(h$$E6, a, c, b.d2), h$c1(h$$E0, h$r2), h$baseZCGHCziBasezizdfMonadIO, h$baseZCControlziMonadziforMzu);+  return h$ap_3_3_fast();+};+function h$$EY()+{+  var a = h$r1.d1;+  h$bh();+  h$l3(a, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfGObjectClassElement,+  h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszicastToHTMLInputElement);+  return h$ap_2_2_fast();+};+function h$$EX()+{+  var a = h$r1.d1;+  h$bh();+  h$l4(h$c1(h$$EY, a), h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziForeignzizdfFromJSStringZMZN,+  h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfIsHTMLInputElementHTMLInputElement,+  h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziHTMLInputElementzihtmlInputElementGetValue);+  return h$ap_3_3_fast();+};+function h$$EW()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  if((a.f.a === 1))+  {+    var e = h$ustra("Pattern match failure in do expression at ghcjs-demo.hs:50:3-9");+    h$l3(e, h$baseZCGHCziBasezizdfMonadIO, h$baseZCGHCziBasezifail);+    return h$ap_2_2_fast();+  }+  else+  {+    h$l4(h$c3(h$$EZ, b, c, d), h$c1(h$$EX, a.d1), h$baseZCGHCziBasezizdfMonadIO, h$baseZCGHCziBasezizgzgze);+    return h$ap_3_3_fast();+  };+};+function h$$EV()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$p4(a, c, b.d2, h$$EW);+  return h$e(h$r2);+};+function h$$EU()+{+  var a = h$r1.d1;+  h$bh();+  var b = h$ustra("input");+  h$l5(b, a, h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziForeignzizdfToJSStringZMZN,+  h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfIsDocumentDocument,+  h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziDocumentzidocumentGetElementById);+  return h$ap_4_4_fast();+};+function h$$ET()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  h$bh();+  h$l4(h$c3(h$$EV, c, d, b.d3), h$c1(h$$EU, a), h$baseZCGHCziBasezizdfMonadIO, h$baseZCGHCziBasezizgzgze);+  return h$ap_3_3_fast();+};+function h$$ES()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$bh();+  h$l6(b.d2, c, a, 0.0, 0.0, h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvasziclearRect);+  return h$ap_gen_fast(1285);+};+function h$$ER()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  h$l4(h$c4(h$$ET, a, c, d, h$r2), h$c3(h$$ES, c, d, h$r2), h$baseZCGHCziBasezizdfMonadIO, h$baseZCGHCziBasezizgzg);+  return h$ap_3_3_fast();+};+function h$$EQ()+{+  var a = h$r1.d1;+  h$bh();+  h$l3(a, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefHTMLCanvasElement,+  h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziMarshalzitoJSRef);+  return h$ap_2_2_fast();+};+function h$$EP()+{+  h$bh();+  h$l3(h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziTypeszicastRef, h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvaszigetContext,+  h$baseZCGHCziBasezizi);+  return h$ap_2_2_fast();+};+function h$$EO()+{+  var a = h$r1.d1;+  h$bh();+  h$l4(h$c1(h$$EQ, a), h$c(h$$EP), h$baseZCGHCziBasezizdfMonadIO, h$baseZCControlziMonadzizezlzl);+  return h$ap_3_3_fast();+};+function h$$EN()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$l4(h$c3(h$$ER, a, b.d2, h$r2), h$c1(h$$EO, c), h$baseZCGHCziBasezizdfMonadIO, h$baseZCGHCziBasezizgzgze);+  return h$ap_3_3_fast();+};+function h$$EM()+{+  var a = h$r1.d1;+  h$bh();+  h$l3(a, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfIsHTMLCanvasElementHTMLCanvasElement,+  h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziHTMLCanvasElementzihtmlCanvasElementGetHeight);+  return h$ap_2_2_fast();+};+function h$$EL()+{+  h$bh();+  h$l3(h$baseZCGHCziFloatzizdfNumDouble, h$baseZCGHCziRealzizdfIntegralInt, h$baseZCGHCziRealzifromIntegral);+  return h$ap_2_2_fast();+};+function h$$EK()+{+  var a = h$r1.d1;+  h$bh();+  h$l4(h$c1(h$$EM, a), h$c(h$$EL), h$baseZCGHCziBasezizdfFunctorIO, h$baseZCDataziFunctorzizlzdzg);+  return h$ap_3_3_fast();+};+function h$$EJ()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$l4(h$c3(h$$EN, a, b, h$r2), h$c1(h$$EK, b), h$baseZCGHCziBasezizdfMonadIO, h$baseZCGHCziBasezizgzgze);+  return h$ap_3_3_fast();+};+function h$$EI()+{+  var a = h$r1.d1;+  h$bh();+  h$l3(a, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfIsHTMLCanvasElementHTMLCanvasElement,+  h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziHTMLCanvasElementzihtmlCanvasElementGetWidth);+  return h$ap_2_2_fast();+};+function h$$EH()+{+  h$bh();+  h$l3(h$baseZCGHCziFloatzizdfNumDouble, h$baseZCGHCziRealzizdfIntegralInt, h$baseZCGHCziRealzifromIntegral);+  return h$ap_2_2_fast();+};+function h$$EG()+{+  var a = h$r1.d1;+  h$bh();+  h$l4(h$c1(h$$EI, a), h$c(h$$EH), h$baseZCGHCziBasezizdfFunctorIO, h$baseZCDataziFunctorzizlzdzg);+  return h$ap_3_3_fast();+};+function h$$EF()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    var c = h$ustra("Pattern match failure in do expression at ghcjs-demo.hs:41:3-14");+    h$l3(c, h$baseZCGHCziBasezizdfMonadIO, h$baseZCGHCziBasezifail);+    return h$ap_2_2_fast();+  }+  else+  {+    var d = h$c1(h$$Fq, a.d1);+    h$l4(h$c2(h$$EJ, b, d), h$c1(h$$EG, d), h$baseZCGHCziBasezizdfMonadIO, h$baseZCGHCziBasezizgzgze);+    return h$ap_3_3_fast();+  };+};+function h$$EE()+{+  h$p2(h$r1.d1, h$$EF);+  return h$e(h$r2);+};+function h$$ED()+{+  var a = h$r1.d1;+  h$bh();+  var b = h$ustra("can");+  h$l5(b, a, h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziForeignzizdfToJSStringZMZN,+  h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfIsDocumentDocument,+  h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziDocumentzidocumentGetElementById);+  return h$ap_4_4_fast();+};+function h$$EC()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    var b = h$ustra("Pattern match failure in do expression at ghcjs-demo.hs:40:3-10");+    h$l3(b, h$baseZCGHCziBasezizdfMonadIO, h$baseZCGHCziBasezifail);+    return h$ap_2_2_fast();+  }+  else+  {+    var c = a.d1;+    h$l4(h$c1(h$$EE, c), h$c1(h$$ED, c), h$baseZCGHCziBasezizdfMonadIO, h$baseZCGHCziBasezizgzgze);+    return h$ap_3_3_fast();+  };+};+function h$$EB()+{+  h$p1(h$$EC);+  return h$e(h$r2);+};+var h$$Fu = h$strta("Aqua");+var h$$Fw = h$strta("Fuchsia");+var h$$Fy = h$strta("Teal");+var h$$FA = h$strta("Purple");+var h$$FC = h$strta("Blue");+var h$$FE = h$strta("Red");+var h$$FG = h$strta("Navy");+var h$$FI = h$strta("Maroon");+var h$$FK = h$strta("Yellow");+var h$$FM = h$strta("Olive");+var h$$FO = h$strta("Gray");+var h$$FQ = h$strta("Lime");+var h$$FS = h$strta("Silver");+var h$$FU = h$strta("Green");+function h$$Fr()+{+  h$bh();+  h$l4(h$$Ft, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMzicurrentDocument, h$baseZCGHCziBasezizdfMonadIO,+  h$baseZCGHCziBasezizgzgze);+  return h$ap_3_3_fast();+};+function h$mainZCMainzimain_e()+{+  h$bh();+  h$l4(h$$Fs, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMzicurrentDocument, h$baseZCGHCziBasezizdfMonadIO,+  h$baseZCGHCziBasezizgzgze);+  return h$ap_3_3_fast();+};+function h$mainZCZCMainzimain_e()+{+  h$bh();+  h$l2(h$mainZCMainzimain, h$baseZCGHCziTopHandlerzirunMainIO);+  return h$ap_1_1_fast();+};+function h$$FY()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var d = a;+  h$l3((b + d), c, h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzizdwsumzq1);+  return h$ap_2_2_fast();+};+function h$$FX()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$r1 = b;+  }+  else+  {+    var c = a.d1;+    h$pp6(a.d2, h$$FY);+    return h$e(c);+  };+  return h$stack[h$sp];+};+function h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzizdwsumzq1_e()+{+  h$p2(h$r3, h$$FX);+  return h$e(h$r2);+};+function h$$F7()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$$IT);+  return h$ap_1_1_fast();+};+function h$$F6()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  var d = Math.pow(c, 2.0);+  h$r1 = (b * d);+  return h$stack[h$sp];+};+function h$$F5()+{+  var a = h$r1;+  h$sp -= 2;+  h$pp2(h$$F6);+  return h$e(a.d1);+};+function h$$F4()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$F5);+  return h$e(b);+};+function h$$F3()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$p2(a, h$$F4);+  return h$e(b);+};+function h$$F2()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$c2(h$$F3, c, a.d2), h$c1(h$$F7, b));+  return h$stack[h$sp];+};+function h$$F1()+{+  var a = h$r1;+  h$sp -= 2;+  h$pp6(a.d1, h$$F2);+  return h$e(a.d2);+};+function h$$F0()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    var b = a.d1;+    h$p2(a.d2, h$$F1);+    return h$e(b);+  };+  return h$stack[h$sp];+};+function h$$FZ()+{+  h$p1(h$$F0);+  return h$e(h$r2);+};+function h$$Gg()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$$IU);+  return h$ap_1_1_fast();+};+function h$$Gf()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  var d = Math.pow(c, 2.0);+  h$r1 = (b * d);+  return h$stack[h$sp];+};+function h$$Ge()+{+  var a = h$r1;+  h$sp -= 2;+  h$pp2(h$$Gf);+  return h$e(a.d1);+};+function h$$Gd()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$Ge);+  return h$e(b);+};+function h$$Gc()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$p2(a, h$$Gd);+  return h$e(b);+};+function h$$Gb()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$c2(h$$Gc, c, a.d1), h$c1(h$$Gg, b));+  return h$stack[h$sp];+};+function h$$Ga()+{+  var a = h$r1;+  h$sp -= 2;+  h$pp6(a.d1, h$$Gb);+  return h$e(a.d2);+};+function h$$F9()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    var b = a.d1;+    h$p2(a.d2, h$$Ga);+    return h$e(b);+  };+  return h$stack[h$sp];+};+function h$$F8()+{+  h$p1(h$$F9);+  return h$e(h$r2);+};+function h$$Gn()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$$IV);+  return h$ap_1_1_fast();+};+function h$$Gm()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  var c = Math.pow(b, 2.0);+  h$r1 = c;+  return h$stack[h$sp];+};+function h$$Gl()+{+  var a = h$r1;+  --h$sp;+  h$p1(h$$Gm);+  return h$e(a.d1);+};+function h$$Gk()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$Gl);+  return h$e(a);+};+function h$$Gj()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$c1(h$$Gk, a.d1), h$c1(h$$Gn, b));+  return h$stack[h$sp];+};+function h$$Gi()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    var b = a.d1;+    h$p2(a.d2, h$$Gj);+    return h$e(b);+  };+  return h$stack[h$sp];+};+function h$$Gh()+{+  h$p1(h$$Gi);+  return h$e(h$r2);+};+function h$$H5()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var d = a;+  var e = (b + c);+  h$r1 = (e + d);+  return h$stack[h$sp];+};+function h$$H4()+{+  var a = h$r1;+  h$sp -= 3;+  h$pp4(h$$H5);+  return h$e(a.d1);+};+function h$$H3()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$pp6(a, h$$H4);+  return h$e(b);+};+function h$$H2()+{+  var a = h$r1;+  h$sp -= 3;+  h$pp4(h$$H3);+  return h$e(a.d1);+};+function h$$H1()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  h$sp -= 3;+  h$pp5(a, h$$H2);+  return h$e(b);+};+function h$$H0()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$p3(a, b.d1, h$$H1);+  return h$e(b.d2);+};+function h$$HZ()+{+  var a = h$r1;+  --h$sp;+  h$r1 = a;+  return h$stack[h$sp];+};+function h$$HY()+{+  var a = h$r1;+  --h$sp;+  h$p1(h$$HZ);+  h$l3(0.0, a, h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzizdwsumzq1);+  return h$ap_2_2_fast();+};+function h$$HX()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$HY);+  h$l2(a, h$$IV);+  return h$ap_1_1_fast();+};+function h$$HW()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  h$r1 = (b / c);+  return h$stack[h$sp];+};+function h$$HV()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$HW);+  return h$e(b);+};+function h$$HU()+{+  var a = h$r1;+  h$sp -= 2;+  h$pp2(h$$HV);+  h$l3(0.0, a, h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzizdwsumzq1);+  return h$ap_2_2_fast();+};+function h$$HT()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$p2(b, h$$HU);+  h$l2(a, h$$IT);+  return h$ap_1_1_fast();+};+function h$$HS()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  h$r1 = (b / c);+  return h$stack[h$sp];+};+function h$$HR()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$HS);+  return h$e(b);+};+function h$$HQ()+{+  var a = h$r1;+  h$sp -= 2;+  h$pp2(h$$HR);+  h$l3(0.0, a, h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzizdwsumzq1);+  return h$ap_2_2_fast();+};+function h$$HP()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$p2(b, h$$HQ);+  h$l2(a, h$$IU);+  return h$ap_1_1_fast();+};+function h$$HO()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  h$r1 = (b + c);+  return h$stack[h$sp];+};+function h$$HN()+{+  var a = h$r1;+  h$sp -= 2;+  h$pp2(h$$HO);+  return h$e(a.d1);+};+function h$$HM()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$p2(b, h$$HN);+  return h$e(a);+};+function h$$HL()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var e = a;+  var f = (d + d);+  var g = (c + e);+  var h = Math.pow(g, 2.0);+  var i = Math.pow(b, 2.0);+  var j = Math.pow(d, 2.0);+  var k = (j + i);+  var l = (k - h);+  h$r1 = (l / f);+  return h$stack[h$sp];+};+function h$$HK()+{+  var a = h$r1;+  h$sp -= 4;+  h$pp8(h$$HL);+  return h$e(a.d1);+};+function h$$HJ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  h$sp -= 4;+  h$pp9(a, h$$HK);+  return h$e(b);+};+function h$$HI()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  h$bh();+  h$p4(a, c, b.d3, h$$HJ);+  return h$e(d);+};+function h$$HH()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  var d = Math.pow(c, 2.0);+  var e = Math.pow(b, 2.0);+  var f = (e - d);+  if((f >= 0.0))+  {+    var g = Math.sqrt(f);+    h$r1 = g;+  }+  else+  {+    var h = -f;+    var i = Math.sqrt(h);+    h$r1 = i;+  };+  return h$stack[h$sp];+};+function h$$HG()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$HH);+  return h$e(b);+};+function h$$HF()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$p2(b, h$$HG);+  return h$e(a);+};+function h$$HE()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var e = a;+  var f = (c - b);+  var g = (e * f);+  var h = (g / d);+  h$r1 = (b + h);+  return h$stack[h$sp];+};+function h$$HD()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$bh();+  h$p4(a, c, b.d2, h$$HE);+  return h$e(b.d3);+};+function h$$HC()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var e = a;+  var f = (c - b);+  var g = (e * f);+  var h = (g / d);+  h$r1 = (b + h);+  return h$stack[h$sp];+};+function h$$HB()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$bh();+  h$p4(a, c, b.d2, h$$HC);+  return h$e(b.d3);+};+function h$$HA()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(b, a);+  return h$ap_1_1_fast();+};+function h$$Hz()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 2)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 5;+  var f = a;+  var g = (c - b);+  var h = (f * g);+  var i = (h / d);+  h$r1 = (e + i);+  return h$stack[h$sp];+};+function h$$Hy()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 5;+  h$pp24(a, h$$Hz);+  return h$e(b);+};+function h$$Hx()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  h$bh();+  h$p5(a, c, d, b.d3, h$$Hy);+  return h$e(b.d4);+};+function h$$Hw()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 2)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 5;+  var f = a;+  var g = (c - b);+  var h = (f * g);+  var i = (h / d);+  h$r1 = (e - i);+  return h$stack[h$sp];+};+function h$$Hv()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 5;+  h$pp24(a, h$$Hw);+  return h$e(b);+};+function h$$Hu()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  h$bh();+  h$p5(a, c, d, b.d3, h$$Hv);+  return h$e(b.d4);+};+function h$$Ht()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 2)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 5;+  var f = a;+  var g = (c - b);+  var h = (f * g);+  var i = (h / d);+  h$r1 = (e - i);+  return h$stack[h$sp];+};+function h$$Hs()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 5;+  h$pp24(a, h$$Ht);+  return h$e(b);+};+function h$$Hr()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  h$bh();+  h$p5(a, c, d, b.d3, h$$Hs);+  return h$e(b.d4);+};+function h$$Hq()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 2)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 5;+  var f = a;+  var g = (c - b);+  var h = (f * g);+  var i = (h / d);+  h$r1 = (e + i);+  return h$stack[h$sp];+};+function h$$Hp()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 5;+  h$pp24(a, h$$Hq);+  return h$e(b);+};+function h$$Ho()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  h$bh();+  h$p5(a, c, d, b.d3, h$$Hp);+  return h$e(b.d4);+};+function h$$Hn()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 8)];+  var c = h$stack[(h$sp - 7)];+  var d = h$stack[(h$sp - 6)];+  var e = h$stack[(h$sp - 5)];+  var f = h$stack[(h$sp - 4)];+  var g = h$stack[(h$sp - 3)];+  var h = h$stack[(h$sp - 2)];+  var i = h$stack[(h$sp - 1)];+  h$sp -= 9;+  var j = a;+  var k = (f + h);+  var l = (k * 1.00001);+  var m = (j - e);+  var n = Math.pow(m, 2.0);+  var o = (i - g);+  var p = Math.pow(o, 2.0);+  var q = (p + n);+  var r = Math.sqrt(q);+  if((r <= l))+  {+    var s = h$c2(h$$HM, b, f);+    var t = (j - e);+    var u = Math.pow(t, 2.0);+    var v = (i - g);+    var w = Math.pow(v, 2.0);+    var x = (w + u);+    var y = Math.sqrt(x);+    var z = h$c4(h$$HI, b, h, s, y);+    var A = h$c2(h$$HF, s, z);+    var B = h$c4(h$$HD, g, i, y, z);+    var C = h$c4(h$$HB, e, j, y, z);+    h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, h$c5(h$$Ho, e, j, y, A, B),+    h$c5(h$$Hr, g, i, y, A, C)), h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e,+    h$c5(h$$Hu, e, j, y, A, B), h$c5(h$$Hx, g, i, y, A, C)), h$c2(h$$HA, c, d)));+  }+  else+  {+    h$l2(d, c);+    return h$ap_1_1_fast();+  };+  return h$stack[h$sp];+};+function h$$Hm()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 9;+  var c = a;+  h$sp += 9;+  h$stack[(h$sp - 1)] = c;+  h$stack[h$sp] = h$$Hn;+  return h$e(b);+};+function h$$Hl()+{+  var a = h$r1;+  h$sp -= 8;+  var b = a.d1;+  var c = a.d2;+  h$sp += 9;+  h$stack[(h$sp - 1)] = c;+  h$stack[h$sp] = h$$Hm;+  return h$e(b);+};+function h$$Hk()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 8;+  h$pp192(a, h$$Hl);+  return h$e(b);+};+function h$$Hj()+{+  var a = h$r1;+  h$sp -= 8;+  h$pp128(h$$Hk);+  return h$e(a.d1);+};+function h$$Hi()+{+  var a = h$r1;+  h$sp -= 7;+  var b = a.d1;+  h$pp192(a.d2, h$$Hj);+  return h$e(b);+};+function h$$Hh()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  h$sp -= 7;+  h$pp72(a, h$$Hi);+  return h$e(b);+};+function h$$Hg()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 7;+  h$pp96(a, h$$Hh);+  return h$e(b);+};+function h$$Hf()+{+  var a = h$r1;+  h$sp -= 6;+  var b = a.d1;+  h$pp96(a.d2, h$$Hg);+  return h$e(b);+};+function h$$He()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 6;+  h$pp48(a, h$$Hf);+  return h$e(b);+};+function h$$Hd()+{+  var a = h$r1;+  h$sp -= 6;+  h$pp32(h$$He);+  return h$e(a.d1);+};+function h$$Hc()+{+  var a = h$r1;+  h$sp -= 5;+  var b = a.d1;+  h$pp48(a.d2, h$$Hd);+  return h$e(b);+};+function h$$Hb()+{+  var a = h$r1;+  h$sp -= 4;+  var b = a.d1;+  h$pp24(a.d2, h$$Hc);+  return h$e(b);+};+function h$$Ha()+{+  var a = h$r1;+  h$sp -= 3;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    var b = a.d1;+    h$pp12(a.d2, h$$Hb);+    return h$e(b);+  };+  return h$stack[h$sp];+};+function h$$G9()+{+  var a = h$r1.d1;+  h$p3(a, h$r1.d2, h$$Ha);+  return h$e(h$r2);+};+function h$$G8()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 5)];+  var c = h$stack[(h$sp - 4)];+  var d = h$stack[(h$sp - 3)];+  var e = h$stack[(h$sp - 2)];+  var f = h$stack[(h$sp - 1)];+  h$sp -= 6;+  var g = a;+  var h = (e - g);+  var i = Math.pow(h, 2.0);+  var j = (c - f);+  var k = Math.pow(j, 2.0);+  var l = (k + i);+  var m = Math.sqrt(l);+  var n = (e - d);+  var o = Math.pow(n, 2.0);+  var p = (c - b);+  var q = Math.pow(p, 2.0);+  var r = (q + o);+  var s = Math.sqrt(r);+  if((s < m))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziLT;+  }+  else+  {+    if((s === m))+    {+      h$r1 = h$ghczmprimZCGHCziTypesziEQ;+    }+    else+    {+      h$r1 = h$ghczmprimZCGHCziTypesziGT;+    };+  };+  return h$stack[h$sp];+};+function h$$G7()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 6;+  h$pp48(a, h$$G8);+  return h$e(b);+};+function h$$G6()+{+  var a = h$r1;+  h$sp -= 5;+  var b = a.d1;+  h$pp48(a.d2, h$$G7);+  return h$e(b);+};+function h$$G5()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  h$sp -= 5;+  h$pp20(a, h$$G6);+  return h$e(b);+};+function h$$G4()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 5;+  h$pp24(a, h$$G5);+  return h$e(b);+};+function h$$G3()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  h$sp -= 5;+  h$pp17(a, h$$G4);+  return h$e(b);+};+function h$$G2()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  h$sp -= 5;+  h$pp18(a, h$$G3);+  return h$e(b);+};+function h$$G1()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  h$sp -= 4;+  var c = a.d1;+  h$pp26(c, a.d2, h$$G2);+  return h$e(b);+};+function h$$G0()+{+  var a = h$r1.d1;+  h$p4(a, h$r1.d2, h$r3, h$$G1);+  return h$e(h$r2);+};+function h$$GZ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 5)];+  var c = h$stack[(h$sp - 4)];+  var d = h$stack[(h$sp - 3)];+  var e = h$stack[(h$sp - 2)];+  var f = h$stack[(h$sp - 1)];+  h$sp -= 6;+  var g = a;+  var h = (e + g);+  var i = (h * 0.99999);+  var j = (d - b);+  var k = Math.pow(j, 2.0);+  var l = (c - f);+  var m = Math.pow(l, 2.0);+  var n = (m + k);+  var o = Math.sqrt(n);+  var p = ((o >= i) ? 1 : 0);+  h$r1 = (p ? true : false);+  return h$stack[h$sp];+};+function h$$GY()+{+  var a = h$r1;+  h$sp -= 6;+  h$pp32(h$$GZ);+  return h$e(a.d1);+};+function h$$GX()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  h$sp -= 6;+  h$pp40(a, h$$GY);+  return h$e(b);+};+function h$$GW()+{+  var a = h$r1;+  h$sp -= 6;+  h$pp32(h$$GX);+  return h$e(a.d1);+};+function h$$GV()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 5)];+  h$sp -= 6;+  h$pp33(a, h$$GW);+  return h$e(b);+};+function h$$GU()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  h$sp -= 6;+  h$pp36(a, h$$GV);+  return h$e(b);+};+function h$$GT()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 6;+  h$pp48(a, h$$GU);+  return h$e(b);+};+function h$$GS()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  h$sp -= 6;+  h$pp34(a, h$$GT);+  return h$e(b);+};+function h$$GR()+{+  var a = h$r1;+  h$sp -= 5;+  var b = a.d1;+  h$pp48(a.d2, h$$GS);+  return h$e(b);+};+function h$$GQ()+{+  var a = h$r1;+  h$sp -= 4;+  h$pp24(a.d1, h$$GR);+  return h$e(a.d2);+};+function h$$GP()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 3;+  var c = a.d1;+  h$pp14(c, a.d2, h$$GQ);+  return h$e(b);+};+function h$$GO()+{+  h$p3(h$r1.d1, h$r2, h$$GP);+  return h$e(h$r1.d2);+};+function h$$GN()+{+  var a = h$r1.d1;+  var b = h$r2;+  h$l3(h$r1.d2, h$c2(h$$GO, a, b), h$baseZCGHCziListziall);+  return h$ap_2_2_fast();+};+function h$$GM()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    return h$e(h$$IW);+  }+  else+  {+    return h$e(a.d1);+  };+};+function h$$GL()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$p1(h$$GM);+  h$l3(a, h$c2(h$$GN, b, c), h$baseZCGHCziListzifilter);+  return h$ap_2_2_fast();+};+function h$$GK()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 5;+  h$pp4(h$$GL);+  h$l3(a, h$c2(h$$G0, b, c), h$baseZCDataziListzisortBy);+  return h$ap_2_2_fast();+};+function h$$GJ()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  h$bh();+  var e = h$c1(h$$HX, d);+  var f = h$c2(h$$HT, d, e);+  var g = h$c2(h$$HP, d, e);+  var h = h$c(h$$G9);+  h.d1 = a;+  h.d2 = h;+  h$p5(a, d, f, g, h$$GK);+  h$l2(c, h);+  return h$ap_1_1_fast();+};+function h$$GI()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(b, a);+  return h$ap_1_1_fast();+};+function h$$GH()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 9)];+  var c = h$stack[(h$sp - 8)];+  var d = h$stack[(h$sp - 7)];+  var e = h$stack[(h$sp - 6)];+  var f = h$stack[(h$sp - 5)];+  var g = h$stack[(h$sp - 4)];+  var h = h$stack[(h$sp - 3)];+  var i = h$stack[(h$sp - 2)];+  var j = h$stack[(h$sp - 1)];+  h$sp -= 10;+  var k = a;+  var l = (d + i);+  var m = (l * 1.00001);+  var n = (k - b);+  var o = Math.pow(n, 2.0);+  var p = (j - g);+  var q = Math.pow(p, 2.0);+  var r = (q + o);+  var s = Math.sqrt(r);+  if((s <= m))+  {+    h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, e, h), h$c2(h$$GI, f, c));+  }+  else+  {+    h$l2(c, f);+    return h$ap_1_1_fast();+  };+  return h$stack[h$sp];+};+function h$$GG()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 10;+  var c = a;+  h$sp += 10;+  h$stack[(h$sp - 1)] = c;+  h$stack[h$sp] = h$$GH;+  return h$e(b);+};+function h$$GF()+{+  var a = h$r1;+  h$sp -= 9;+  var b = a.d1;+  var c = a.d2;+  h$sp += 10;+  h$stack[(h$sp - 1)] = c;+  h$stack[h$sp] = h$$GG;+  return h$e(b);+};+function h$$GE()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 9;+  var c = a;+  h$sp += 9;+  h$stack[(h$sp - 1)] = c;+  h$stack[h$sp] = h$$GF;+  return h$e(b);+};+function h$$GD()+{+  var a = h$r1;+  h$sp -= 9;+  var b = a.d1;+  h$sp += 9;+  h$stack[h$sp] = h$$GE;+  return h$e(b);+};+function h$$GC()+{+  var a = h$r1;+  h$sp -= 7;+  var b = a.d1;+  var c = a.d2;+  h$sp += 9;+  h$stack[(h$sp - 2)] = a;+  h$stack[(h$sp - 1)] = c;+  h$stack[h$sp] = h$$GD;+  return h$e(b);+};+function h$$GB()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 6)];+  h$sp -= 7;+  h$pp65(a, h$$GC);+  return h$e(b);+};+function h$$GA()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 7;+  h$pp96(a, h$$GB);+  return h$e(b);+};+function h$$Gz()+{+  var a = h$r1;+  h$sp -= 6;+  var b = a.d1;+  h$pp96(a.d2, h$$GA);+  return h$e(b);+};+function h$$Gy()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  h$sp -= 6;+  h$pp36(a, h$$Gz);+  return h$e(b);+};+function h$$Gx()+{+  var a = h$r1;+  h$sp -= 6;+  h$pp32(h$$Gy);+  return h$e(a.d1);+};+function h$$Gw()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 5)];+  var c = h$stack[(h$sp - 4)];+  h$sp -= 6;+  if((a.f.a === 1))+  {+    return h$e(c);+  }+  else+  {+    var d = a.d1;+    h$pp35(d, a.d2, h$$Gx);+    return h$e(b);+  };+};+function h$$Gv()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = b.d3;+  h$p6(a, c, d, e, b.d4, h$$Gw);+  return h$e(h$r2);+};+function h$$Gu()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = b.d3;+  var f = b.d4;+  h$bh();+  var g = h$c(h$$Gv);+  g.d1 = a;+  g.d2 = h$d4(c, e, f, g);+  h$l2(d, g);+  return h$ap_1_1_fast();+};+function h$$Gt()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 7)];+  var c = h$stack[(h$sp - 6)];+  var d = h$stack[(h$sp - 5)];+  var e = h$stack[(h$sp - 4)];+  var f = h$stack[(h$sp - 3)];+  var g = h$stack[(h$sp - 2)];+  var h = h$stack[(h$sp - 1)];+  h$sp -= 8;+  if((a.f.a === 1))+  {+    var i = h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, b, h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, h$c3(h$$H0, b, g,+    e), h));+    h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, i, d);+    h$r2 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, i, f), c);+  }+  else+  {+    var j = h$c3(h$$GJ, b, c, d);+    var k = h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, b, j);+    h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, k, d);+    h$r2 = h$c5(h$$Gu, b, c, d, j, k);+  };+  return h$stack[h$sp];+};+function h$$Gs()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  h$sp -= 7;+  var c = a.d1;+  h$pp200(c, a.d2, h$$Gt);+  return h$e(b);+};+function h$$Gr()+{+  var a = h$r1;+  h$sp -= 5;+  h$pp112(a, a.d1, h$$Gs);+  return h$e(a.d2);+};+function h$$Gq()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  if((a.f.a === 1))+  {+    h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, b, h$$IY),+    h$ghczmprimZCGHCziTypesziZMZN);+    h$r2 = c;+  }+  else+  {+    var d = a.d1;+    h$pp28(a, a.d2, h$$Gr);+    return h$e(d);+  };+  return h$stack[h$sp];+};+function h$$Gp()+{+  var a;+  var b;+  a = h$r1;+  b = h$r2;+  h$sp -= 2;+  h$pp6(b, h$$Gq);+  return h$e(a);+};+function h$$Go()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+    h$r2 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    h$p2(a.d1, h$$Gp);+    h$l2(a.d2, h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzizdwgo);+    return h$ap_1_1_fast();+  };+  return h$stack[h$sp];+};+function h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzizdwgo_e()+{+  h$p1(h$$Go);+  return h$e(h$r2);+};+function h$$Ib()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzipackCircles3);+  return h$ap_1_1_fast();+};+function h$$Ia()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  var c = Math.pow(b, 2.0);+  h$r1 = c;+  return h$stack[h$sp];+};+function h$$H9()+{+  var a = h$r1;+  --h$sp;+  h$p1(h$$Ia);+  return h$e(a.d1);+};+function h$$H8()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$H9);+  return h$e(a);+};+function h$$H7()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$c1(h$$H8, a.d1), h$c1(h$$Ib, b));+  return h$stack[h$sp];+};+function h$$H6()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    var b = a.d1;+    h$p2(a.d2, h$$H7);+    return h$e(b);+  };+  return h$stack[h$sp];+};+function h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzipackCircles3_e()+{+  h$p1(h$$H6);+  return h$e(h$r2);+};+function h$$Ij()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzipackCircles1);+  return h$ap_1_1_fast();+};+function h$$Ii()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  var d = Math.pow(c, 2.0);+  h$r1 = (b * d);+  return h$stack[h$sp];+};+function h$$Ih()+{+  var a = h$r1;+  h$sp -= 2;+  h$pp2(h$$Ii);+  return h$e(a.d1);+};+function h$$Ig()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$Ih);+  return h$e(b);+};+function h$$If()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$p2(a, h$$Ig);+  return h$e(b);+};+function h$$Ie()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$c2(h$$If, c, a.d1), h$c1(h$$Ij, b));+  return h$stack[h$sp];+};+function h$$Id()+{+  var a = h$r1;+  h$sp -= 2;+  h$pp6(a.d1, h$$Ie);+  return h$e(a.d2);+};+function h$$Ic()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    var b = a.d1;+    h$p2(a.d2, h$$Id);+    return h$e(b);+  };+  return h$stack[h$sp];+};+function h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzipackCircles1_e()+{+  h$p1(h$$Ic);+  return h$e(h$r2);+};+function h$$Ir()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzipackCircles2);+  return h$ap_1_1_fast();+};+function h$$Iq()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  var d = Math.pow(c, 2.0);+  h$r1 = (b * d);+  return h$stack[h$sp];+};+function h$$Ip()+{+  var a = h$r1;+  h$sp -= 2;+  h$pp2(h$$Iq);+  return h$e(a.d1);+};+function h$$Io()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$Ip);+  return h$e(b);+};+function h$$In()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$p2(a, h$$Io);+  return h$e(b);+};+function h$$Im()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$c2(h$$In, c, a.d2), h$c1(h$$Ir, b));+  return h$stack[h$sp];+};+function h$$Il()+{+  var a = h$r1;+  h$sp -= 2;+  h$pp6(a.d1, h$$Im);+  return h$e(a.d2);+};+function h$$Ik()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    var b = a.d1;+    h$p2(a.d2, h$$Il);+    return h$e(b);+  };+  return h$stack[h$sp];+};+function h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzipackCircles2_e()+{+  h$p1(h$$Ik);+  return h$e(h$r2);+};+function h$$Is()+{+  h$bh();+  h$l2(h$$IX, h$baseZCGHCziErrzierror);+  return h$ap_1_1_fast();+};+var h$$IX = h$strta("packCircles: The end of the real plane has been reached?");+function h$$Iw()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  if((b < c))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziLT;+  }+  else+  {+    if((b === c))+    {+      h$r1 = h$ghczmprimZCGHCziTypesziEQ;+    }+    else+    {+      h$r1 = h$ghczmprimZCGHCziTypesziGT;+    };+  };+  return h$stack[h$sp];+};+function h$$Iv()+{+  var a = h$r1;+  h$sp -= 2;+  h$pp2(h$$Iw);+  return h$e(a.d1);+};+function h$$Iu()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$Iv);+  return h$e(b);+};+function h$$It()+{+  var a = h$r1;+  h$sp -= 2;+  h$pp2(h$$Iu);+  return h$e(a.d1);+};+function h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzipackCircles4_e()+{+  h$p2(h$r3, h$$It);+  return h$e(h$r2);+};+function h$$IS()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(b, a);+  return h$ap_1_1_fast();+};+function h$$IR()+{+  h$r1 = h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, h$c2(h$$IS, h$r1.d1, h$r2), h$r2);+  return h$stack[h$sp];+};+function h$$IQ()+{+  var a = h$r1;+  --h$sp;+  h$r1 = a;+  return h$stack[h$sp];+};+function h$$IP()+{+  var a = h$r1;+  --h$sp;+  h$p1(h$$IQ);+  h$l3(0.0, a, h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzizdwsumzq1);+  return h$ap_2_2_fast();+};+function h$$IO()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$IP);+  h$l2(a, h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzipackCircles3);+  return h$ap_1_1_fast();+};+function h$$IN()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  h$r1 = (b / c);+  return h$stack[h$sp];+};+function h$$IM()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$IN);+  return h$e(b);+};+function h$$IL()+{+  var a = h$r1;+  h$sp -= 2;+  h$pp2(h$$IM);+  h$l3(0.0, a, h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzizdwsumzq1);+  return h$ap_2_2_fast();+};+function h$$IK()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$p2(b, h$$IL);+  h$l2(a, h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzipackCircles2);+  return h$ap_1_1_fast();+};+function h$$IJ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a;+  h$r1 = (b / c);+  return h$stack[h$sp];+};+function h$$II()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$p2(a, h$$IJ);+  return h$e(b);+};+function h$$IH()+{+  var a = h$r1;+  h$sp -= 2;+  h$pp2(h$$II);+  h$l3(0.0, a, h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzizdwsumzq1);+  return h$ap_2_2_fast();+};+function h$$IG()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$p2(b, h$$IH);+  h$l2(a, h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzipackCircles1);+  return h$ap_1_1_fast();+};+function h$$IF()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l3(a, b, h$baseZCGHCziFloatziminusDouble);+  return h$baseZCGHCziFloatziminusDouble_e;+};+function h$$IE()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l3(a, b, h$baseZCGHCziFloatziminusDouble);+  return h$baseZCGHCziFloatziminusDouble_e;+};+function h$$ID()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$baseZCDataziTuplezisnd);+  return h$baseZCDataziTuplezisnd_e;+};+function h$$IC()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var e = a.d1;+  h$r1 = h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, h$c1(h$$ID, d), h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e,+  h$c2(h$$IE, c, e), h$c2(h$$IF, b, a.d2)));+  return h$stack[h$sp];+};+function h$$IB()+{+  var a = h$r1;+  h$sp -= 3;+  h$pp12(a.d1, h$$IC);+  return h$e(a.d2);+};+function h$$IA()+{+  var a = h$r1.d1;+  h$p3(a, h$r1.d2, h$$IB);+  return h$e(h$r2);+};+function h$$Iz()+{+  var a = h$r1;+  --h$sp;+  var b = h$c1(h$$IO, a);+  h$l3(a, h$c2(h$$IA, h$c2(h$$IK, a, b), h$c2(h$$IG, a, b)), h$baseZCGHCziBasezimap);+  return h$ap_2_2_fast();+};+function h$$Iy()+{+  var a = h$r1;+  --h$sp;+  h$p1(h$$Iz);+  h$l2(a, h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzizdwgo);+  return h$ap_1_1_fast();+};+function h$$Ix()+{+  var a = h$r1;+  --h$sp;+  h$p1(h$$Iy);+  h$l3(a, h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzipackCircles4, h$baseZCDataziListzisortBy);+  return h$ap_2_2_fast();+};+function h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzipackCircles_e()+{+  h$p1(h$$Ix);+  h$l2(h$c1(h$$IR, h$r2), h$baseZCGHCziBasezimap);+  return h$ap_2_2_fast();+};+function h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziTypeszicastRef_e()+{+  h$r1 = h$baseZCUnsafeziCoerceziunsafeCoerce1;+  return h$baseZCUnsafeziCoerceziunsafeCoerce1_e;+};+function h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziMarshalziDZCFromJSRef_con_e()+{+  return h$stack[h$sp];+};+function h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziMarshalziDZCFromJSRef_e()+{+  h$r1 = h$c2(h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziMarshalziDZCFromJSRef_con_e, h$r2, h$r3);+  return h$stack[h$sp];+};+function h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziMarshalziDZCToJSRef_con_e()+{+  return h$stack[h$sp];+};+function h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziMarshalziDZCToJSRef_e()+{+  h$r1 = h$c2(h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziMarshalziDZCToJSRef_con_e, h$r2, h$r3);+  return h$stack[h$sp];+};+function h$$IZ()+{+  var a = h$r1;+  --h$sp;+  h$r1 = a.d1;+  return h$ap_0_0_fast();+};+function h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziMarshalzitoJSRef_e()+{+  h$p1(h$$IZ);+  return h$e(h$r2);+};+function h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziForeignzizdfToJSStringZMZN_e()+{+  h$r1 = h$ghcjszmprimZCGHCJSziPrimzitoJSString;+  return h$ghcjszmprimZCGHCJSziPrimzitoJSString_e;+};+function h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziForeignzizdfFromJSStringZMZN_e()+{+  h$r1 = h$ghcjszmprimZCGHCJSziPrimzifromJSString;+  return h$ghcjszmprimZCGHCJSziPrimzifromJSString_e;+};+function h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziForeignzijsFalse_e()+{+  h$bh();+  h$r1 = h$c1(h$ghcjszmprimZCGHCJSziPrimziJSRef_con_e, false);+  return h$stack[h$sp];+};+function h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziForeignzijsTrue_e()+{+  h$bh();+  h$r1 = h$c1(h$ghcjszmprimZCGHCJSziPrimziJSRef_con_e, true);+  return h$stack[h$sp];+};+function h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziForeignzitoJSString_e()+{+  h$r1 = h$r2;+  return h$ap_0_0_fast();+};+function h$$I5()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 2)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 5;+  var f = a.d1;+  f.clearRect(b, c, d, e);+  h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  return h$stack[h$sp];+};+function h$$I4()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 5;+  h$pp24(a, h$$I5);+  return h$e(b);+};+function h$$I3()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  h$sp -= 5;+  h$pp20(a, h$$I4);+  return h$e(b);+};+function h$$I2()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  h$sp -= 5;+  h$pp18(a, h$$I3);+  return h$e(b);+};+function h$$I1()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  h$sp -= 5;+  h$pp17(a, h$$I2);+  return h$e(b);+};+function h$$I0()+{+  h$p5(h$r3, h$r4, h$r5, h$r6, h$$I1);+  return h$e(h$r2);+};+function h$$Jc()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 6)];+  var c = h$stack[(h$sp - 5)];+  var d = h$stack[(h$sp - 4)];+  var e = h$stack[(h$sp - 3)];+  var f = h$stack[(h$sp - 2)];+  var g = h$stack[(h$sp - 1)];+  h$sp -= 7;+  h$l8(a.d1, f, g, e, d, c, b, h$$Js);+  return h$ap_gen_fast(1800);+};+function h$$Jb()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 7;+  h$pp96(a, h$$Jc);+  return h$e(b);+};+function h$$Ja()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  h$sp -= 7;+  h$pp72(a, h$$Jb);+  return h$e(b);+};+function h$$I9()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  h$sp -= 7;+  h$pp68(a, h$$Ja);+  return h$e(b);+};+function h$$I8()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 5)];+  h$sp -= 7;+  h$pp66(a, h$$I9);+  return h$e(b);+};+function h$$I7()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 6)];+  h$sp -= 7;+  h$pp65(a, h$$I8);+  return h$e(b);+};+function h$$I6()+{+  h$p7(h$r3, h$r4, h$r5, h$r6, h$r7, h$r8, h$$I7);+  return h$e(h$r2);+};+function h$$Jh()+{+  var a = h$stack[(h$sp - 6)];+  var b = h$stack[(h$sp - 5)];+  var c = h$stack[(h$sp - 4)];+  var d = h$stack[(h$sp - 3)];+  var e = h$stack[(h$sp - 2)];+  var f = h$stack[(h$sp - 1)];+  h$sp -= 7;+  var g = h$r1;+  f.arc(a, b, c, d, e, g);+  h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  return h$stack[h$sp];+};+function h$$Jg()+{+  var a = h$r1;+  --h$sp;+  h$sp -= 6;+  h$r1 = a.d1;+  h$sp += 6;+  ++h$sp;+  return h$$Jh;+};+function h$$Jf()+{+  var a = h$r1;+  --h$sp;+  h$sp -= 6;+  h$r1 = a.d1;+  h$sp += 6;+  ++h$sp;+  return h$$Jh;+};+function h$$Je()+{+  var a = h$r1;+  --h$sp;+  h$sp -= 6;+  if(a)+  {+    h$sp += 6;+    h$p1(h$$Jf);+    return h$e(h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziForeignzijsTrue);+  }+  else+  {+    h$sp += 6;+    h$p1(h$$Jg);+    return h$e(h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziForeignzijsFalse);+  };+};+function h$$Jd()+{+  h$p6(h$r2, h$r3, h$r4, h$r5, h$r6, h$r8);+  h$p1(h$$Je);+  return h$e(h$r7);+};+function h$$Jj()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  b.closePath();+  h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  return h$stack[h$sp];+};+function h$$Ji()+{+  h$p1(h$$Jj);+  return h$e(h$r2);+};+function h$$Jl()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  b.beginPath();+  h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  return h$stack[h$sp];+};+function h$$Jk()+{+  h$p1(h$$Jl);+  return h$e(h$r2);+};+function h$$Jn()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  b.fill();+  h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  return h$stack[h$sp];+};+function h$$Jm()+{+  h$p1(h$$Jn);+  return h$e(h$r2);+};+function h$$Jp()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  var c = b.getContext("2d");+  h$r1 = h$c1(h$ghcjszmprimZCGHCJSziPrimziJSRef_con_e, c);+  return h$stack[h$sp];+};+function h$$Jo()+{+  h$p1(h$$Jp);+  return h$e(h$r2);+};+function h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvasziclearRect_e()+{+  h$r1 = h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvaszijszuclearRect;+  return h$ap_gen_fast(1286);+};+function h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvasziarc_e()+{+  h$r1 = h$$Jr;+  return h$ap_gen_fast(1800);+};+function h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvasziclosePath_e()+{+  h$r1 = h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvaszijszuclosePath;+  return h$ap_2_1_fast();+};+function h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvaszibeginPath_e()+{+  h$r1 = h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvaszijszubeginPath;+  return h$ap_2_1_fast();+};+function h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvaszifill_e()+{+  h$r1 = h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvaszijszufill;+  return h$ap_2_1_fast();+};+function h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvaszigetContext_e()+{+  h$r1 = h$$Jw;+  return h$ap_2_1_fast();+};+function h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvaszijszufill_e()+{+  h$r1 = h$$Jv;+  return h$ap_2_1_fast();+};+function h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvaszijszubeginPath_e()+{+  h$r1 = h$$Ju;+  return h$ap_2_1_fast();+};+function h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvaszijszuclosePath_e()+{+  h$r1 = h$$Jt;+  return h$ap_2_1_fast();+};+function h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvaszijszuclearRect_e()+{+  h$r1 = h$$Jq;+  return h$ap_gen_fast(1286);+};+function h$$JA()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  var c = (b === null);+  if(!(!c))+  {+    h$r1 = h$baseZCDataziMaybeziNothing;+  }+  else+  {+    h$r1 = h$c1(h$baseZCDataziMaybeziJust_con_e, a);+  };+  return h$stack[h$sp];+};+function h$$Jz()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$JA);+  return h$e(a);+};+function h$$Jy()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$c1(h$$Jz, b), a);+  return h$stack[h$sp];+};+function h$$Jx()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    h$p2(a.d1, h$$Jy);+    h$l2(a.d2, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefUIEvent2);+    return h$ap_2_1_fast();+  };+  return h$stack[h$sp];+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefUIEvent2_e()+{+  h$p1(h$$Jx);+  return h$e(h$r2);+};+function h$$JD()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$r1 = h$baseZCDataziMaybeziNothing;+  }+  else+  {+    h$r1 = h$c1(h$baseZCDataziMaybeziJust_con_e, h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, b, a.d1));+  };+  return h$stack[h$sp];+};+function h$$JC()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$r1 = h$baseZCDataziMaybeziNothing;+  }+  else+  {+    h$p2(a.d1, h$$JD);+    h$l2(b, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefUIEventzugo);+    return h$ap_1_1_fast();+  };+  return h$stack[h$sp];+};+function h$$JB()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    return h$e(h$$LS);+  }+  else+  {+    var b = a.d1;+    h$p2(a.d2, h$$JC);+    return h$e(b);+  };+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefUIEventzugo_e()+{+  h$p1(h$$JB);+  return h$e(h$r2);+};+function h$$JF()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, b, a);+  return h$stack[h$sp];+};+function h$$JE()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    h$p2(a.d1, h$$JF);+    h$l2(a.d2, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefUIEvent2);+    return h$ap_2_1_fast();+  };+  return h$stack[h$sp];+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefUIEvent2_e()+{+  h$p1(h$$JE);+  return h$e(h$r2);+};+function h$$JJ()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  var c = (b === null);+  if(!(!c))+  {+    h$r1 = h$baseZCDataziMaybeziNothing;+  }+  else+  {+    h$r1 = h$c1(h$baseZCDataziMaybeziJust_con_e, a);+  };+  return h$stack[h$sp];+};+function h$$JI()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$JJ);+  return h$e(a);+};+function h$$JH()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$c1(h$$JI, b), a);+  return h$stack[h$sp];+};+function h$$JG()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    h$p2(a.d1, h$$JH);+    h$l2(a.d2, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLInputElement2);+    return h$ap_2_1_fast();+  };+  return h$stack[h$sp];+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLInputElement2_e()+{+  h$p1(h$$JG);+  return h$e(h$r2);+};+function h$$JM()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$r1 = h$baseZCDataziMaybeziNothing;+  }+  else+  {+    h$r1 = h$c1(h$baseZCDataziMaybeziJust_con_e, h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, b, a.d1));+  };+  return h$stack[h$sp];+};+function h$$JL()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$r1 = h$baseZCDataziMaybeziNothing;+  }+  else+  {+    h$p2(a.d1, h$$JM);+    h$l2(b, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLInputElementzugo);+    return h$ap_1_1_fast();+  };+  return h$stack[h$sp];+};+function h$$JK()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    return h$e(h$$LP);+  }+  else+  {+    var b = a.d1;+    h$p2(a.d2, h$$JL);+    return h$e(b);+  };+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLInputElementzugo_e()+{+  h$p1(h$$JK);+  return h$e(h$r2);+};+function h$$JO()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, b, a);+  return h$stack[h$sp];+};+function h$$JN()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    h$p2(a.d1, h$$JO);+    h$l2(a.d2, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefHTMLInputElement2);+    return h$ap_2_1_fast();+  };+  return h$stack[h$sp];+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefHTMLInputElement2_e()+{+  h$p1(h$$JN);+  return h$e(h$r2);+};+function h$$JS()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  var c = (b === null);+  if(!(!c))+  {+    h$r1 = h$baseZCDataziMaybeziNothing;+  }+  else+  {+    h$r1 = h$c1(h$baseZCDataziMaybeziJust_con_e, a);+  };+  return h$stack[h$sp];+};+function h$$JR()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$JS);+  return h$e(a);+};+function h$$JQ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$c1(h$$JR, b), a);+  return h$stack[h$sp];+};+function h$$JP()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    h$p2(a.d1, h$$JQ);+    h$l2(a.d2, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLCanvasElement2);+    return h$ap_2_1_fast();+  };+  return h$stack[h$sp];+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLCanvasElement2_e()+{+  h$p1(h$$JP);+  return h$e(h$r2);+};+function h$$JV()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$r1 = h$baseZCDataziMaybeziNothing;+  }+  else+  {+    h$r1 = h$c1(h$baseZCDataziMaybeziJust_con_e, h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, b, a.d1));+  };+  return h$stack[h$sp];+};+function h$$JU()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$r1 = h$baseZCDataziMaybeziNothing;+  }+  else+  {+    h$p2(a.d1, h$$JV);+    h$l2(b, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLCanvasElementzugo);+    return h$ap_1_1_fast();+  };+  return h$stack[h$sp];+};+function h$$JT()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    return h$e(h$$LM);+  }+  else+  {+    var b = a.d1;+    h$p2(a.d2, h$$JU);+    return h$e(b);+  };+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLCanvasElementzugo_e()+{+  h$p1(h$$JT);+  return h$e(h$r2);+};+function h$$JX()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, b, a);+  return h$stack[h$sp];+};+function h$$JW()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    h$p2(a.d1, h$$JX);+    h$l2(a.d2, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefHTMLCanvasElement2);+    return h$ap_2_1_fast();+  };+  return h$stack[h$sp];+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefHTMLCanvasElement2_e()+{+  h$p1(h$$JW);+  return h$e(h$r2);+};+function h$$J1()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  var c = (b === null);+  if(!(!c))+  {+    h$r1 = h$baseZCDataziMaybeziNothing;+  }+  else+  {+    h$r1 = h$c1(h$baseZCDataziMaybeziJust_con_e, a);+  };+  return h$stack[h$sp];+};+function h$$J0()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$J1);+  return h$e(a);+};+function h$$JZ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$c1(h$$J0, b), a);+  return h$stack[h$sp];+};+function h$$JY()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    h$p2(a.d1, h$$JZ);+    h$l2(a.d2, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefElement2);+    return h$ap_2_1_fast();+  };+  return h$stack[h$sp];+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefElement2_e()+{+  h$p1(h$$JY);+  return h$e(h$r2);+};+function h$$J4()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$r1 = h$baseZCDataziMaybeziNothing;+  }+  else+  {+    h$r1 = h$c1(h$baseZCDataziMaybeziJust_con_e, h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, b, a.d1));+  };+  return h$stack[h$sp];+};+function h$$J3()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$r1 = h$baseZCDataziMaybeziNothing;+  }+  else+  {+    h$p2(a.d1, h$$J4);+    h$l2(b, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefElementzugo);+    return h$ap_1_1_fast();+  };+  return h$stack[h$sp];+};+function h$$J2()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    return h$e(h$$LJ);+  }+  else+  {+    var b = a.d1;+    h$p2(a.d2, h$$J3);+    return h$e(b);+  };+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefElementzugo_e()+{+  h$p1(h$$J2);+  return h$e(h$r2);+};+function h$$J6()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, b, a);+  return h$stack[h$sp];+};+function h$$J5()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    h$p2(a.d1, h$$J6);+    h$l2(a.d2, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefElement2);+    return h$ap_2_1_fast();+  };+  return h$stack[h$sp];+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefElement2_e()+{+  h$p1(h$$J5);+  return h$e(h$r2);+};+function h$$Ka()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  var c = (b === null);+  if(!(!c))+  {+    h$r1 = h$baseZCDataziMaybeziNothing;+  }+  else+  {+    h$r1 = h$c1(h$baseZCDataziMaybeziJust_con_e, a);+  };+  return h$stack[h$sp];+};+function h$$J9()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$Ka);+  return h$e(a);+};+function h$$J8()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$c1(h$$J9, b), a);+  return h$stack[h$sp];+};+function h$$J7()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    h$p2(a.d1, h$$J8);+    h$l2(a.d2, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefDocument2);+    return h$ap_2_1_fast();+  };+  return h$stack[h$sp];+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefDocument2_e()+{+  h$p1(h$$J7);+  return h$e(h$r2);+};+function h$$Kd()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$r1 = h$baseZCDataziMaybeziNothing;+  }+  else+  {+    h$r1 = h$c1(h$baseZCDataziMaybeziJust_con_e, h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, b, a.d1));+  };+  return h$stack[h$sp];+};+function h$$Kc()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  if((a.f.a === 1))+  {+    h$r1 = h$baseZCDataziMaybeziNothing;+  }+  else+  {+    h$p2(a.d1, h$$Kd);+    h$l2(b, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefDocumentzugo);+    return h$ap_1_1_fast();+  };+  return h$stack[h$sp];+};+function h$$Kb()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    return h$e(h$$LG);+  }+  else+  {+    var b = a.d1;+    h$p2(a.d2, h$$Kc);+    return h$e(b);+  };+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefDocumentzugo_e()+{+  h$p1(h$$Kb);+  return h$e(h$r2);+};+function h$$Kf()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, b, a);+  return h$stack[h$sp];+};+function h$$Ke()+{+  var a = h$r1;+  --h$sp;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  }+  else+  {+    h$p2(a.d1, h$$Kf);+    h$l2(a.d2, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefDocument2);+    return h$ap_2_1_fast();+  };+  return h$stack[h$sp];+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefDocument2_e()+{+  h$p1(h$$Ke);+  return h$e(h$r2);+};+function h$$Kg()+{+  h$r1 = h$r2;+  return h$stack[h$sp];+};+function h$$Kj()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  var c = (b === null);+  if(!(!c))+  {+    h$r1 = h$baseZCDataziMaybeziNothing;+  }+  else+  {+    h$r1 = h$c1(h$baseZCDataziMaybeziJust_con_e, a);+  };+  return h$stack[h$sp];+};+function h$$Ki()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$Kj);+  return h$e(a);+};+function h$$Kh()+{+  h$r1 = h$c1(h$$Ki, h$r2);+  return h$stack[h$sp];+};+function h$$Kk()+{+  h$r1 = h$r2;+  return h$stack[h$sp];+};+function h$$Kn()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  var c = (b === null);+  if(!(!c))+  {+    h$r1 = h$baseZCDataziMaybeziNothing;+  }+  else+  {+    h$r1 = h$c1(h$baseZCDataziMaybeziJust_con_e, a);+  };+  return h$stack[h$sp];+};+function h$$Km()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$Kn);+  return h$e(a);+};+function h$$Kl()+{+  h$r1 = h$c1(h$$Km, h$r2);+  return h$stack[h$sp];+};+function h$$Ko()+{+  h$r1 = h$r2;+  return h$stack[h$sp];+};+function h$$Kr()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  var c = (b === null);+  if(!(!c))+  {+    h$r1 = h$baseZCDataziMaybeziNothing;+  }+  else+  {+    h$r1 = h$c1(h$baseZCDataziMaybeziJust_con_e, a);+  };+  return h$stack[h$sp];+};+function h$$Kq()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$Kr);+  return h$e(a);+};+function h$$Kp()+{+  h$r1 = h$c1(h$$Kq, h$r2);+  return h$stack[h$sp];+};+function h$$Ks()+{+  h$r1 = h$r2;+  return h$stack[h$sp];+};+function h$$Kv()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  var c = (b === null);+  if(!(!c))+  {+    h$r1 = h$baseZCDataziMaybeziNothing;+  }+  else+  {+    h$r1 = h$c1(h$baseZCDataziMaybeziJust_con_e, a);+  };+  return h$stack[h$sp];+};+function h$$Ku()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$Kv);+  return h$e(a);+};+function h$$Kt()+{+  h$r1 = h$c1(h$$Ku, h$r2);+  return h$stack[h$sp];+};+function h$$Kw()+{+  h$r1 = h$r2;+  return h$stack[h$sp];+};+function h$$Kz()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  var c = (b === null);+  if(!(!c))+  {+    h$r1 = h$baseZCDataziMaybeziNothing;+  }+  else+  {+    h$r1 = h$c1(h$baseZCDataziMaybeziJust_con_e, a);+  };+  return h$stack[h$sp];+};+function h$$Ky()+{+  var a = h$r1.d1;+  h$bh();+  h$p1(h$$Kz);+  return h$e(a);+};+function h$$Kx()+{+  h$r1 = h$c1(h$$Ky, h$r2);+  return h$stack[h$sp];+};+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszicastToHTMLInputElement1 = h$strta("HTMLInputElement");+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszicastToHTMLCanvasElement1 = h$strta("HTMLCanvasElement");+function h$$KA()+{+  var a = h$r1;+  --h$sp;+  h$l2(a, h$baseZCGHCziErrzierror);+  return h$ap_1_1_fast();+};+var h$$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypes_Ka = h$str("Cannot cast object to ");+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszicastToBarProp2_e()+{+  h$p1(h$$KA);+  h$r4 = h$r2;+  h$r3 = 0;+  h$r2 = h$$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypes_Ka();+  h$r1 = h$ghczmprimZCGHCziCStringziunpackAppendCStringzh;+  return h$ap_2_3_fast();+};+function h$$KC()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 2)];+  var e = h$stack[(h$sp - 1)];+  h$sp -= 5;+  var f = h$isInstanceOf(a.d1, c);+  var g = f;+  if(!(!g))+  {+    h$l3(e, b, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypesziunsafeCastGObject);+    return h$ap_2_2_fast();+  }+  else+  {+    h$l2(d, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszicastToBarProp2);+    return h$ap_1_1_fast();+  };+};+function h$$KB()+{+  var a = h$r1;+  h$sp -= 4;+  h$pp24(a, h$$KC);+  return h$e(a.d1);+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdwcastTo_e()+{+  var a = h$r2;+  h$p4(h$r3, h$r4, h$r5, h$$KB);+  h$l2(h$r6, a);+  return h$ap_1_1_fast();+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefUIEventzuzdctoJSRef_e()+{+  h$r1 = h$$LR;+  return h$ap_2_1_fast();+};+function h$$KH()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var e = a.d1;+  try+  {+    b.push(e);+  }+  catch(h$GHCJSziDOMziTypes_id_958_0)+  {+    return h$throwJSException(h$GHCJSziDOMziTypes_id_958_0);+  };+  h$l2(d, c);+  return h$ap_2_1_fast();+};+function h$$KG()+{+  var a = h$r1;+  h$sp -= 3;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  }+  else+  {+    var b = a.d1;+    h$pp12(a.d2, h$$KH);+    return h$e(b);+  };+  return h$stack[h$sp];+};+function h$$KF()+{+  var a = h$r1.d1;+  h$p3(a, h$r1.d2, h$$KG);+  return h$e(h$r2);+};+function h$$KE()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c1(h$ghcjszmprimZCGHCJSziPrimziJSRef_con_e, a);+  return h$stack[h$sp];+};+function h$$KD()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  var c = [];+  var d = h$c(h$$KF);+  d.d1 = c;+  d.d2 = d;+  h$p2(c, h$$KE);+  h$l2(b, d);+  return h$ap_2_1_fast();+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefUIEvent1_e()+{+  h$p1(h$$KD);+  h$r1 = h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefUIEvent2;+  return h$ap_2_1_fast();+};+function h$$KI()+{+  var a = h$r1;+  --h$sp;+  return h$e(a.d1);+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfGObjectClassUIEventzuzdcunsafeCastGObject_e()+{+  h$p1(h$$KI);+  return h$e(h$r2);+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefHTMLInputElementzuzdctoJSRef_e()+{+  h$r1 = h$$LO;+  return h$ap_2_1_fast();+};+function h$$KN()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var e = a.d1;+  try+  {+    b.push(e);+  }+  catch(h$GHCJSziDOMziTypes_id_1300_0)+  {+    return h$throwJSException(h$GHCJSziDOMziTypes_id_1300_0);+  };+  h$l2(d, c);+  return h$ap_2_1_fast();+};+function h$$KM()+{+  var a = h$r1;+  h$sp -= 3;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  }+  else+  {+    var b = a.d1;+    h$pp12(a.d2, h$$KN);+    return h$e(b);+  };+  return h$stack[h$sp];+};+function h$$KL()+{+  var a = h$r1.d1;+  h$p3(a, h$r1.d2, h$$KM);+  return h$e(h$r2);+};+function h$$KK()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c1(h$ghcjszmprimZCGHCJSziPrimziJSRef_con_e, a);+  return h$stack[h$sp];+};+function h$$KJ()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  var c = [];+  var d = h$c(h$$KL);+  d.d1 = c;+  d.d2 = d;+  h$p2(c, h$$KK);+  h$l2(b, d);+  return h$ap_2_1_fast();+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefHTMLInputElement1_e()+{+  h$p1(h$$KJ);+  h$r1 = h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefHTMLInputElement2;+  return h$ap_2_1_fast();+};+function h$$KO()+{+  var a = h$r1;+  --h$sp;+  return h$e(a.d1);+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfGObjectClassHTMLInputElementzuzdcunsafeCastGObject_e()+{+  h$p1(h$$KO);+  return h$e(h$r2);+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefHTMLCanvasElementzuzdctoJSRef_e()+{+  h$r1 = h$$LL;+  return h$ap_2_1_fast();+};+function h$$KT()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var e = a.d1;+  try+  {+    b.push(e);+  }+  catch(h$GHCJSziDOMziTypes_id_1420_0)+  {+    return h$throwJSException(h$GHCJSziDOMziTypes_id_1420_0);+  };+  h$l2(d, c);+  return h$ap_2_1_fast();+};+function h$$KS()+{+  var a = h$r1;+  h$sp -= 3;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  }+  else+  {+    var b = a.d1;+    h$pp12(a.d2, h$$KT);+    return h$e(b);+  };+  return h$stack[h$sp];+};+function h$$KR()+{+  var a = h$r1.d1;+  h$p3(a, h$r1.d2, h$$KS);+  return h$e(h$r2);+};+function h$$KQ()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c1(h$ghcjszmprimZCGHCJSziPrimziJSRef_con_e, a);+  return h$stack[h$sp];+};+function h$$KP()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  var c = [];+  var d = h$c(h$$KR);+  d.d1 = c;+  d.d2 = d;+  h$p2(c, h$$KQ);+  h$l2(b, d);+  return h$ap_2_1_fast();+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefHTMLCanvasElement1_e()+{+  h$p1(h$$KP);+  h$r1 = h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefHTMLCanvasElement2;+  return h$ap_2_1_fast();+};+function h$$KU()+{+  var a = h$r1;+  --h$sp;+  return h$e(a.d1);+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfGObjectClassHTMLCanvasElementzuzdcunsafeCastGObject_e()+{+  h$p1(h$$KU);+  return h$e(h$r2);+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefElementzuzdctoJSRef_e()+{+  h$r1 = h$$LI;+  return h$ap_2_1_fast();+};+function h$$KZ()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var e = a.d1;+  try+  {+    b.push(e);+  }+  catch(h$GHCJSziDOMziTypes_id_1519_0)+  {+    return h$throwJSException(h$GHCJSziDOMziTypes_id_1519_0);+  };+  h$l2(d, c);+  return h$ap_2_1_fast();+};+function h$$KY()+{+  var a = h$r1;+  h$sp -= 3;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  }+  else+  {+    var b = a.d1;+    h$pp12(a.d2, h$$KZ);+    return h$e(b);+  };+  return h$stack[h$sp];+};+function h$$KX()+{+  var a = h$r1.d1;+  h$p3(a, h$r1.d2, h$$KY);+  return h$e(h$r2);+};+function h$$KW()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c1(h$ghcjszmprimZCGHCJSziPrimziJSRef_con_e, a);+  return h$stack[h$sp];+};+function h$$KV()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  var c = [];+  var d = h$c(h$$KX);+  d.d1 = c;+  d.d2 = d;+  h$p2(c, h$$KW);+  h$l2(b, d);+  return h$ap_2_1_fast();+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefElement1_e()+{+  h$p1(h$$KV);+  h$r1 = h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefElement2;+  return h$ap_2_1_fast();+};+function h$$K0()+{+  var a = h$r1;+  --h$sp;+  return h$e(a.d1);+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfGObjectClassElementzuzdcunsafeCastGObject_e()+{+  h$p1(h$$K0);+  return h$e(h$r2);+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefDocumentzuzdctoJSRef_e()+{+  h$r1 = h$$LF;+  return h$ap_2_1_fast();+};+function h$$K5()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var e = a.d1;+  try+  {+    b.push(e);+  }+  catch(h$GHCJSziDOMziTypes_id_1537_0)+  {+    return h$throwJSException(h$GHCJSziDOMziTypes_id_1537_0);+  };+  h$l2(d, c);+  return h$ap_2_1_fast();+};+function h$$K4()+{+  var a = h$r1;+  h$sp -= 3;+  if((a.f.a === 1))+  {+    h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  }+  else+  {+    var b = a.d1;+    h$pp12(a.d2, h$$K5);+    return h$e(b);+  };+  return h$stack[h$sp];+};+function h$$K3()+{+  var a = h$r1.d1;+  h$p3(a, h$r1.d2, h$$K4);+  return h$e(h$r2);+};+function h$$K2()+{+  var a = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c1(h$ghcjszmprimZCGHCJSziPrimziJSRef_con_e, a);+  return h$stack[h$sp];+};+function h$$K1()+{+  var a = h$r1;+  --h$sp;+  var b = a;+  var c = [];+  var d = h$c(h$$K3);+  d.d1 = c;+  d.d2 = d;+  h$p2(c, h$$K2);+  h$l2(b, d);+  return h$ap_2_1_fast();+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefDocument1_e()+{+  h$p1(h$$K1);+  h$r1 = h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefDocument2;+  return h$ap_2_1_fast();+};+function h$$K6()+{+  var a = h$r1;+  --h$sp;+  return h$e(a.d1);+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfGObjectClassDocumentzuzdcunsafeCastGObject_e()+{+  h$p1(h$$K6);+  return h$e(h$r2);+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefUIEventzuzdcfromJSRef_e()+{+  h$r1 = h$$LT;+  return h$ap_2_1_fast();+};+function h$$Lb()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$c1(h$ghcjszmprimZCGHCJSziPrimziJSRef_con_e, b), a);+  return h$stack[h$sp];+};+function h$$La()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = h$r2;+  if((e < c))+  {+    var f;+    try+    {+      f = a[e];+    }+    catch(h$GHCJSziDOMziTypes_id_1728_0)+    {+      return h$throwJSException(h$GHCJSziDOMziTypes_id_1728_0);+    };+    h$p2(f, h$$Lb);+    h$l2(((e + 1) | 0), d);+    return h$ap_2_1_fast();+  }+  else+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  };+  return h$stack[h$sp];+};+function h$$K9()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefUIEventzugo);+  return h$ap_1_1_fast();+};+function h$$K8()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$$K9, a);+  return h$stack[h$sp];+};+function h$$K7()+{+  var a = h$r1;+  --h$sp;+  h$p1(h$$K8);+  h$l2(a, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefUIEvent2);+  return h$ap_2_1_fast();+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdwa124_e()+{+  var a = h$r2;+  var b;+  try+  {+    b = a.length;+  }+  catch(h$GHCJSziDOMziTypes_id_1728_1)+  {+    return h$throwJSException(h$GHCJSziDOMziTypes_id_1728_1);+  };+  var c = b;+  var d = h$c(h$$La);+  d.d1 = a;+  d.d2 = h$d2(c, d);+  h$p1(h$$K7);+  h$l2(0, d);+  return h$ap_2_1_fast();+};+function h$$Lc()+{+  var a = h$r1;+  --h$sp;+  h$l2(a.d1, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdwa124);+  return h$ap_2_1_fast();+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefUIEvent1_e()+{+  h$p1(h$$Lc);+  return h$e(h$r2);+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLInputElementzuzdcfromJSRef_e()+{+  h$r1 = h$$LQ;+  return h$ap_2_1_fast();+};+function h$$Lh()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$c1(h$ghcjszmprimZCGHCJSziPrimziJSRef_con_e, b), a);+  return h$stack[h$sp];+};+function h$$Lg()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = h$r2;+  if((e < c))+  {+    var f;+    try+    {+      f = a[e];+    }+    catch(h$GHCJSziDOMziTypes_id_1956_0)+    {+      return h$throwJSException(h$GHCJSziDOMziTypes_id_1956_0);+    };+    h$p2(f, h$$Lh);+    h$l2(((e + 1) | 0), d);+    return h$ap_2_1_fast();+  }+  else+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  };+  return h$stack[h$sp];+};+function h$$Lf()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLInputElementzugo);+  return h$ap_1_1_fast();+};+function h$$Le()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$$Lf, a);+  return h$stack[h$sp];+};+function h$$Ld()+{+  var a = h$r1;+  --h$sp;+  h$p1(h$$Le);+  h$l2(a, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLInputElement2);+  return h$ap_2_1_fast();+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdwa67_e()+{+  var a = h$r2;+  var b;+  try+  {+    b = a.length;+  }+  catch(h$GHCJSziDOMziTypes_id_1956_1)+  {+    return h$throwJSException(h$GHCJSziDOMziTypes_id_1956_1);+  };+  var c = b;+  var d = h$c(h$$Lg);+  d.d1 = a;+  d.d2 = h$d2(c, d);+  h$p1(h$$Ld);+  h$l2(0, d);+  return h$ap_2_1_fast();+};+function h$$Li()+{+  var a = h$r1;+  --h$sp;+  h$l2(a.d1, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdwa67);+  return h$ap_2_1_fast();+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLInputElement1_e()+{+  h$p1(h$$Li);+  return h$e(h$r2);+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLCanvasElementzuzdcfromJSRef_e()+{+  h$r1 = h$$LN;+  return h$ap_2_1_fast();+};+function h$$Ln()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$c1(h$ghcjszmprimZCGHCJSziPrimziJSRef_con_e, b), a);+  return h$stack[h$sp];+};+function h$$Lm()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = h$r2;+  if((e < c))+  {+    var f;+    try+    {+      f = a[e];+    }+    catch(h$GHCJSziDOMziTypes_id_2036_0)+    {+      return h$throwJSException(h$GHCJSziDOMziTypes_id_2036_0);+    };+    h$p2(f, h$$Ln);+    h$l2(((e + 1) | 0), d);+    return h$ap_2_1_fast();+  }+  else+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  };+  return h$stack[h$sp];+};+function h$$Ll()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLCanvasElementzugo);+  return h$ap_1_1_fast();+};+function h$$Lk()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$$Ll, a);+  return h$stack[h$sp];+};+function h$$Lj()+{+  var a = h$r1;+  --h$sp;+  h$p1(h$$Lk);+  h$l2(a, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLCanvasElement2);+  return h$ap_2_1_fast();+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdwa47_e()+{+  var a = h$r2;+  var b;+  try+  {+    b = a.length;+  }+  catch(h$GHCJSziDOMziTypes_id_2036_1)+  {+    return h$throwJSException(h$GHCJSziDOMziTypes_id_2036_1);+  };+  var c = b;+  var d = h$c(h$$Lm);+  d.d1 = a;+  d.d2 = h$d2(c, d);+  h$p1(h$$Lj);+  h$l2(0, d);+  return h$ap_2_1_fast();+};+function h$$Lo()+{+  var a = h$r1;+  --h$sp;+  h$l2(a.d1, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdwa47);+  return h$ap_2_1_fast();+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLCanvasElement1_e()+{+  h$p1(h$$Lo);+  return h$e(h$r2);+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefElementzuzdcfromJSRef_e()+{+  h$r1 = h$$LK;+  return h$ap_2_1_fast();+};+function h$$Lt()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$c1(h$ghcjszmprimZCGHCJSziPrimziJSRef_con_e, b), a);+  return h$stack[h$sp];+};+function h$$Ls()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = h$r2;+  if((e < c))+  {+    var f;+    try+    {+      f = a[e];+    }+    catch(h$GHCJSziDOMziTypes_id_2104_0)+    {+      return h$throwJSException(h$GHCJSziDOMziTypes_id_2104_0);+    };+    h$p2(f, h$$Lt);+    h$l2(((e + 1) | 0), d);+    return h$ap_2_1_fast();+  }+  else+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  };+  return h$stack[h$sp];+};+function h$$Lr()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefElementzugo);+  return h$ap_1_1_fast();+};+function h$$Lq()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$$Lr, a);+  return h$stack[h$sp];+};+function h$$Lp()+{+  var a = h$r1;+  --h$sp;+  h$p1(h$$Lq);+  h$l2(a, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefElement2);+  return h$ap_2_1_fast();+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdwa30_e()+{+  var a = h$r2;+  var b;+  try+  {+    b = a.length;+  }+  catch(h$GHCJSziDOMziTypes_id_2104_1)+  {+    return h$throwJSException(h$GHCJSziDOMziTypes_id_2104_1);+  };+  var c = b;+  var d = h$c(h$$Ls);+  d.d1 = a;+  d.d2 = h$d2(c, d);+  h$p1(h$$Lp);+  h$l2(0, d);+  return h$ap_2_1_fast();+};+function h$$Lu()+{+  var a = h$r1;+  --h$sp;+  h$l2(a.d1, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdwa30);+  return h$ap_2_1_fast();+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefElement1_e()+{+  h$p1(h$$Lu);+  return h$e(h$r2);+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefDocumentzuzdcfromJSRef_e()+{+  h$r1 = h$$LH;+  return h$ap_2_1_fast();+};+function h$$Lz()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$r1 = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$c1(h$ghcjszmprimZCGHCJSziPrimziJSRef_con_e, b), a);+  return h$stack[h$sp];+};+function h$$Ly()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = h$r2;+  if((e < c))+  {+    var f;+    try+    {+      f = a[e];+    }+    catch(h$GHCJSziDOMziTypes_id_2116_0)+    {+      return h$throwJSException(h$GHCJSziDOMziTypes_id_2116_0);+    };+    h$p2(f, h$$Lz);+    h$l2(((e + 1) | 0), d);+    return h$ap_2_1_fast();+  }+  else+  {+    h$r1 = h$ghczmprimZCGHCziTypesziZMZN;+  };+  return h$stack[h$sp];+};+function h$$Lx()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefDocumentzugo);+  return h$ap_1_1_fast();+};+function h$$Lw()+{+  var a = h$r1;+  --h$sp;+  h$r1 = h$c1(h$$Lx, a);+  return h$stack[h$sp];+};+function h$$Lv()+{+  var a = h$r1;+  --h$sp;+  h$p1(h$$Lw);+  h$l2(a, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefDocument2);+  return h$ap_2_1_fast();+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdwa27_e()+{+  var a = h$r2;+  var b;+  try+  {+    b = a.length;+  }+  catch(h$GHCJSziDOMziTypes_id_2116_1)+  {+    return h$throwJSException(h$GHCJSziDOMziTypes_id_2116_1);+  };+  var c = b;+  var d = h$c(h$$Ly);+  d.d1 = a;+  d.d2 = h$d2(c, d);+  h$p1(h$$Lv);+  h$l2(0, d);+  return h$ap_2_1_fast();+};+function h$$LA()+{+  var a = h$r1;+  --h$sp;+  h$l2(a.d1, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdwa27);+  return h$ap_2_1_fast();+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefDocument1_e()+{+  h$p1(h$$LA);+  return h$e(h$r2);+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfIsDocumentDocument_e()+{+  h$bh();+  return h$e(h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfGObjectClassDocument);+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfIsElementElement_e()+{+  h$bh();+  return h$e(h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfGObjectClassElement);+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfIsHTMLCanvasElementHTMLCanvasElement_e()+{+  h$bh();+  return h$e(h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfGObjectClassHTMLCanvasElement);+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfIsHTMLInputElementHTMLInputElement_e()+{+  h$bh();+  return h$e(h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfGObjectClassHTMLInputElement);+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypesziDZCGObjectClass_con_e()+{+  return h$stack[h$sp];+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypesziDZCGObjectClass_e()+{+  h$r1 = h$c4(h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypesziDZCGObjectClass_con_e, h$r2, h$r3, h$r4, h$r5);+  return h$stack[h$sp];+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypesziGObject_con_e()+{+  return h$stack[h$sp];+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypesziGObject_e()+{+  h$r1 = h$c1(h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypesziGObject_con_e, h$r2);+  return h$stack[h$sp];+};+function h$$LB()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a.d2;+  var d = c.d2;+  h$l6(b, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszicastToHTMLInputElement1, window["HTMLInputElement"],+  h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfGObjectClassHTMLInputElement, d,+  h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdwcastTo);+  return h$ap_gen_fast(1285);+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszicastToHTMLInputElement_e()+{+  h$p2(h$r3, h$$LB);+  return h$e(h$r2);+};+function h$$LC()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a.d2;+  var d = c.d2;+  h$l6(b, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszicastToHTMLCanvasElement1, window["HTMLCanvasElement"],+  h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfGObjectClassHTMLCanvasElement, d,+  h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdwcastTo);+  return h$ap_gen_fast(1285);+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszicastToHTMLCanvasElement_e()+{+  h$p2(h$r3, h$$LC);+  return h$e(h$r2);+};+function h$$LD()+{+  var a = h$r1;+  --h$sp;+  var b = a.d2;+  h$r1 = b.d3;+  return h$ap_0_0_fast();+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypesziunsafeCastGObject_e()+{+  h$p1(h$$LD);+  return h$e(h$r2);+};+function h$$LE()+{+  var a = h$r1;+  --h$sp;+  var b = a.d2;+  h$r1 = b.d2;+  return h$ap_0_0_fast();+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszitoGObject_e()+{+  h$p1(h$$LE);+  return h$e(h$r2);+};+function h$$LW()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(h$c1(h$ghcjszmprimZCGHCJSziPrimziJSRef_con_e, b), a);+  return h$ap_1_1_fast();+};+function h$$LV()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a.d1;+  h$r1 = h$c2(h$$LW, b, c["value"]);+  return h$stack[h$sp];+};+function h$$LU()+{+  var a = h$r1;+  h$sp -= 2;+  h$pp2(h$$LV);+  return h$e(a.d1);+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziHTMLInputElementzihtmlInputElementGetValue1_e()+{+  h$p2(h$r3, h$$LU);+  h$p2(h$r4, h$ap_1_1);+  h$r1 = h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszitoGObject;+  return h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszitoGObject_e;+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziHTMLInputElementzihtmlInputElementGetValue_e()+{+  h$r1 = h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziHTMLInputElementzihtmlInputElementGetValue1;+  return h$ap_4_3_fast();+};+function h$$LY()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  h$r1 = b["width"];+  return h$stack[h$sp];+};+function h$$LX()+{+  var a = h$r1;+  --h$sp;+  h$p1(h$$LY);+  return h$e(a.d1);+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziHTMLCanvasElementzihtmlCanvasElementGetWidth1_e()+{+  h$p1(h$$LX);+  h$p2(h$r3, h$ap_1_1);+  h$r1 = h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszitoGObject;+  return h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszitoGObject_e;+};+function h$$L0()+{+  var a = h$r1;+  --h$sp;+  var b = a.d1;+  h$r1 = b["height"];+  return h$stack[h$sp];+};+function h$$LZ()+{+  var a = h$r1;+  --h$sp;+  h$p1(h$$L0);+  return h$e(a.d1);+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziHTMLCanvasElementzihtmlCanvasElementGetHeight1_e()+{+  h$p1(h$$LZ);+  h$p2(h$r3, h$ap_1_1);+  h$r1 = h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszitoGObject;+  return h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszitoGObject_e;+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziHTMLCanvasElementzihtmlCanvasElementGetHeight_e()+{+  h$r1 = h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziHTMLCanvasElementzihtmlCanvasElementGetHeight1;+  return h$ap_3_2_fast();+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziHTMLCanvasElementzihtmlCanvasElementGetWidth_e()+{+  h$r1 = h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziHTMLCanvasElementzihtmlCanvasElementGetWidth1;+  return h$ap_3_2_fast();+};+function h$$L9()+{+  var a = h$r1.d1;+  h$bh();+  h$l2(a, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypesziunsafeCastGObject);+  return h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypesziunsafeCastGObject_e;+};+function h$$L8()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  h$bh();+  h$l2(h$c1(h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypesziGObject_con_e, b), a);+  return h$ap_1_1_fast();+};+function h$$L7()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  h$l3(h$c2(h$$L8, b.d2, h$r2), a, c);+  return h$ap_2_2_fast();+};+function h$$L6()+{+  var a = h$r1.d1;+  var b = h$r1.d2;+  var c = b.d1;+  var d = b.d2;+  var e = b.d3;+  var f = (c["removeEventListener"](d, a, e) ? 1 : 0);+  h$release(a);+  h$r1 = h$ghczmprimZCGHCziTupleziZLZR;+  return h$stack[h$sp];+};+function h$$L5()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var e = (c["addEventListener"](d, b, a) ? 1 : 0);+  h$r1 = h$c4(h$$L6, b, c, d, a);+  return h$stack[h$sp];+};+function h$$L4()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 4;+  h$pp12(a.d1, h$$L5);+  return h$e(b);+};+function h$$L3()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 4)];+  var c = h$stack[(h$sp - 3)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 5;+  h$pp11(d, a.d1, h$$L4);+  h$l2(b, c);+  return h$ap_1_1_fast();+};+function h$$L2()+{+  var a = h$r1;+  h$sp -= 5;+  h$pp16(h$$L3);+  return h$e(a.d1);+};+function h$$L1()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 7)];+  var c = h$stack[(h$sp - 5)];+  var d = h$stack[(h$sp - 4)];+  var e = h$stack[(h$sp - 3)];+  var f = h$stack[(h$sp - 2)];+  var g = h$stack[(h$sp - 1)];+  h$sp -= 8;+  var h = h$c1(h$$L9, c);+  var i = h$makeCallbackApply(a.d1, 1, h$runSync, [h$ghczmprimZCGHCziTypesziTrue], h$c3(h$$L7, d, g, h));+  h$pp29(e, f, i, h$$L2);+  h$p2(d, h$ap_1_1);+  h$l2(b, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszitoGObject);+  return h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszitoGObject_e;+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziEventTargetClosureszieventTargetAddEventListener1_e()+{+  h$p8(h$r2, h$r3, h$r4, h$r5, h$r6, h$r7, h$r8, h$$L1);+  return h$e(h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziForeignzijsTrue);+};+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziElementzielementOnkeyup2 = h$strta("keyup");+function h$$Ma()+{+  h$l2(h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, h$r2, h$r3), h$r1.d1);+  return h$ap_1_1_fast();+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziElementzielementOnkeyup1_e()+{+  h$r8 = h$c1(h$$Ma, h$r4);+  h$r7 = false;+  h$r6 = h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziElementzielementOnkeyup2;+  h$r5 = h$r3;+  h$r4 = h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfGObjectClassUIEvent;+  h$r3 = h$ghcjszmprimZCGHCJSziPrimzitoJSString;+  h$r1 = h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziEventTargetClosureszieventTargetAddEventListener1;+  return h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziEventTargetClosureszieventTargetAddEventListener1_e;+};+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziElementzielementOnchange2 = h$strta("change");+function h$$Mb()+{+  h$l2(h$c2(h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, h$r2, h$r3), h$r1.d1);+  return h$ap_1_1_fast();+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziElementzielementOnchange1_e()+{+  h$r8 = h$c1(h$$Mb, h$r4);+  h$r7 = false;+  h$r6 = h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziElementzielementOnchange2;+  h$r5 = h$r3;+  h$r4 = h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfGObjectClassUIEvent;+  h$r3 = h$ghcjszmprimZCGHCJSziPrimzitoJSString;+  h$r1 = h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziEventTargetClosureszieventTargetAddEventListener1;+  return h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziEventTargetClosureszieventTargetAddEventListener1_e;+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziElementzielementOnkeyup_e()+{+  h$r1 = h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziElementzielementOnkeyup1;+  return h$ap_4_3_fast();+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziElementzielementOnchange_e()+{+  h$r1 = h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziElementzielementOnchange1;+  return h$ap_4_3_fast();+};+function h$$Me()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 1)];+  h$sp -= 2;+  var c = a.d1;+  var d = b["getElementById"](c);+  var e = d;+  var f;+  var g = (e === null);+  if(!(!g))+  {+    f = h$baseZCDataziMaybeziNothing;+  }+  else+  {+    f = h$c1(h$baseZCDataziMaybeziJust_con_e, h$c1(h$ghcjszmprimZCGHCJSziPrimziJSRef_con_e, e));+  };+  h$r1 = f;+  return h$stack[h$sp];+};+function h$$Md()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 2)];+  var c = h$stack[(h$sp - 1)];+  h$sp -= 3;+  h$p2(a.d1, h$$Me);+  h$l2(c, b);+  return h$ap_1_1_fast();+};+function h$$Mc()+{+  var a = h$r1;+  h$sp -= 3;+  h$pp4(h$$Md);+  return h$e(a.d1);+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziDocumentzizdwa30_e()+{+  var a = h$r2;+  h$p3(h$r3, h$r5, h$$Mc);+  h$l2(h$r4, a);+  return h$ap_1_1_fast();+};+function h$$Mf()+{+  var a = h$r1;+  var b = h$stack[(h$sp - 3)];+  var c = h$stack[(h$sp - 2)];+  var d = h$stack[(h$sp - 1)];+  h$sp -= 4;+  var e = a.d2;+  h$l5(d, c, b, e.d2, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziDocumentzizdwa30);+  return h$ap_gen_fast(1029);+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziDocumentzidocumentGetElementById1_e()+{+  h$p4(h$r3, h$r4, h$r5, h$$Mf);+  return h$e(h$r2);+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziDocumentzidocumentGetElementById_e()+{+  h$r1 = h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziDocumentzidocumentGetElementById1;+  return h$ap_gen_fast(1029);+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMzicurrentDocument1_e()+{+  var a = document;+  var b;+  var c = (a === null);+  if(!(!c))+  {+    b = h$baseZCDataziMaybeziNothing;+  }+  else+  {+    b = h$c1(h$baseZCDataziMaybeziJust_con_e, h$c1(h$ghcjszmprimZCGHCJSziPrimziJSRef_con_e, a));+  };+  h$r1 = b;+  return h$stack[h$sp];+};+function h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMzicurrentDocument_e()+{+  h$r1 = h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMzicurrentDocument1;+  return h$ap_1_0_fast();+};+function h$transformerszm0zi4zi3zi0ZCControlziMonadziTransziReaderzizdfMonadTransReaderT1_e()+{+  h$r1 = h$r3;+  return h$ap_0_0_fast();+};+function h$transformerszm0zi4zi3zi0ZCControlziMonadziTransziReaderzizdfMonadTransReaderT_e()+{+  h$r1 = h$transformerszm0zi4zi3zi0ZCControlziMonadziTransziReaderzizdfMonadTransReaderT1;+  return h$ap_3_3_fast();+};+function h$transformerszm0zi4zi3zi0ZCControlziMonadziTransziClasszilift_e()+{+  h$r1 = h$r2;+  return h$ap_0_0_fast();+};+var h$ghczmprimZCGHCziTypesziGT = h$d();+var h$ghczmprimZCGHCziTypesziEQ = h$d();+var h$ghczmprimZCGHCziTypesziLT = h$d();+var h$ghczmprimZCGHCziTypesziTrue = h$p(true);+var h$ghczmprimZCGHCziTypesziZMZN = h$d();+var h$ghczmprimZCGHCziTypesziIzh = h$d();+var h$ghczmprimZCGHCziTypesziFalse = h$p(false);+var h$ghczmprimZCGHCziTypesziDzh = h$d();+var h$ghczmprimZCGHCziTypesziZC = h$d();+var h$ghczmprimZCGHCziTypesziCzh = h$d();+var h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR = h$d();+var h$ghczmprimZCGHCziTupleziZLz2cUZR = h$d();+var h$ghczmprimZCGHCziTupleziZLZR = h$d();+var h$ghczmprimZCGHCziIntWord64ziintToInt64zh = h$d();+var h$ghczmprimZCGHCziClasseszizdfEqZMZNzuzdszdczeze = h$d();+var h$ghczmprimZCGHCziClasseszizdfOrdIntzuzdcmax = h$d();+var h$ghczmprimZCGHCziClasseszizdfOrdIntzuzdcmin = h$d();+var h$ghczmprimZCGHCziClasseszizdfEqZMZNzuzdszdczsze = h$d();+var h$ghczmprimZCGHCziClasseszizdfEqZMZNzuzdszdfEqZMZN = h$d();+var h$ghczmprimZCGHCziClasseszizdfEqCharzuzdczeze = h$d();+var h$ghczmprimZCGHCziClasseszizdfEqCharzuzdczsze = h$d();+var h$ghczmprimZCGHCziClasseszizdfEqChar = h$d();+var h$ghczmprimZCGHCziClassesziDZCOrd = h$d();+var h$ghczmprimZCGHCziClassesziDZCEq = h$d();+var h$ghczmprimZCGHCziClasseszimodIntzh = h$d();+var h$ghczmprimZCGHCziClasseszidivIntzh = h$d();+var h$ghczmprimZCGHCziClasseszicompareIntzh = h$d();+var h$ghczmprimZCGHCziClasseszicompareInt = h$d();+var h$ghczmprimZCGHCziClasseszileInt = h$d();+var h$ghczmprimZCGHCziClassesziltInt = h$d();+var h$ghczmprimZCGHCziClasseszigeInt = h$d();+var h$ghczmprimZCGHCziClasseszigtInt = h$d();+var h$ghczmprimZCGHCziClasseszineInt = h$d();+var h$ghczmprimZCGHCziClasseszieqInt = h$d();+var h$ghczmprimZCGHCziClasseszizdfEqInt = h$d();+var h$ghczmprimZCGHCziClasseszizdfOrdInt = h$d();+var h$ghczmprimZCGHCziClasseszizeze = h$d();+var h$ghczmprimZCGHCziCStringziunpackAppendCStringzh = h$d();+var h$ghczmprimZCGHCziCStringziunpackCStringzh = h$d();+var h$ghczmprimZCGHCziCStringziunpackFoldrCStringzh = h$d();+var h$ghczmprimZCGHCziCStringziunpackCStringUtf8zh = h$d();+var h$ghcjszmprimZCGHCJSziPrimziInternalziblockedIndefinitelyOnSTM = h$d();+var h$ghcjszmprimZCGHCJSziPrimziInternalziblockedIndefinitelyOnMVar = h$d();+var h$ghcjszmprimZCGHCJSziPrimziInternalziwouldBlock = h$d();+var h$ghcjszmprimZCGHCJSziPrimzigetProp1 = h$d();+var h$ghcjszmprimZCGHCJSziPrimzizdfExceptionWouldBlockExceptionzuzdctoException = h$d();+var h$ghcjszmprimZCGHCJSziPrimzizdfExceptionWouldBlockException = h$d();+var h$ghcjszmprimZCGHCJSziPrimzizdfExceptionJSExceptionzuzdctoException = h$d();+var h$ghcjszmprimZCGHCJSziPrimzizdfExceptionJSException = h$d();+var h$ghcjszmprimZCGHCJSziPrimzizdfShowWouldBlockExceptionzuzdcshowsPrec = h$d();+var h$ghcjszmprimZCGHCJSziPrimzizdfShowWouldBlockExceptionzuzdcshow = h$d();+h$di(h$ghcjszmprimZCGHCJSziPrimzizdfShowWouldBlockException2);+var h$ghcjszmprimZCGHCJSziPrimzizdwzdcshowsPrec = h$d();+var h$ghcjszmprimZCGHCJSziPrimzizdfShowWouldBlockException1 = h$d();+var h$ghcjszmprimZCGHCJSziPrimzizdfShowWouldBlockExceptionzuzdcshowList = h$d();+h$di(h$ghcjszmprimZCGHCJSziPrimzizdfExceptionWouldBlockExceptionzuww5);+var h$ghcjszmprimZCGHCJSziPrimzizdfExceptionWouldBlockExceptionzuzdctypeRepzh = h$d();+var h$ghcjszmprimZCGHCJSziPrimzizdfExceptionWouldBlockExceptionzuzdcfromException = h$d();+var h$ghcjszmprimZCGHCJSziPrimzizdfShowJSExceptionzuzdcshowsPrec = h$d();+var h$ghcjszmprimZCGHCJSziPrimzizdfShowJSExceptionzuzdcshow = h$d();+var h$ghcjszmprimZCGHCJSziPrimzizdfShowJSException2 = h$d();+var h$ghcjszmprimZCGHCJSziPrimzizdfShowJSException1 = h$d();+var h$ghcjszmprimZCGHCJSziPrimzizdfShowJSExceptionzuzdcshowList = h$d();+h$di(h$ghcjszmprimZCGHCJSziPrimzizdfExceptionJSExceptionzuww3);+h$di(h$ghcjszmprimZCGHCJSziPrimzizdfExceptionJSException4);+var h$ghcjszmprimZCGHCJSziPrimzizdfExceptionWouldBlockException2 = h$d();+var h$ghcjszmprimZCGHCJSziPrimzizdfExceptionWouldBlockException1 = h$d();+h$di(h$ghcjszmprimZCGHCJSziPrimzizdfExceptionJSException3);+var h$ghcjszmprimZCGHCJSziPrimzizdfExceptionJSException2 = h$d();+var h$ghcjszmprimZCGHCJSziPrimzizdfExceptionJSException1 = h$d();+var h$ghcjszmprimZCGHCJSziPrimzizdfExceptionJSExceptionzuzdctypeRepzh = h$d();+var h$ghcjszmprimZCGHCJSziPrimzizdfExceptionJSExceptionzuzdcfromException = h$d();+var h$ghcjszmprimZCGHCJSziPrimzizdfShowWouldBlockException = h$d();+var h$ghcjszmprimZCGHCJSziPrimzizdfShowJSException = h$d();+var h$ghcjszmprimZCGHCJSziPrimziWouldBlockException = h$d();+var h$ghcjszmprimZCGHCJSziPrimziJSException = h$d();+var h$ghcjszmprimZCGHCJSziPrimziJSRef = h$d();+var h$ghcjszmprimZCGHCJSziPrimzitoJSString = h$d();+var h$ghcjszmprimZCGHCJSziPrimzifromJSString = h$d();+var h$ghcjszmprimZCGHCJSziPrimzijszufromJSString = h$d();+var h$integerzmgmpZCGHCziIntegerziTypezishiftRInteger = h$d();+var h$integerzmgmpZCGHCziIntegerziTypezishiftLInteger = h$d();+var h$integerzmgmpZCGHCziIntegerziTypeziandInteger = h$d();+var h$integerzmgmpZCGHCziIntegerziTypeziquotRemInteger = h$d();+var h$integerzmgmpZCGHCziIntegerziTypeziremInteger = h$d();+var h$integerzmgmpZCGHCziIntegerziTypeziquotInteger = h$d();+var h$integerzmgmpZCGHCziIntegerziTypeziminusInteger = h$d();+var h$integerzmgmpZCGHCziIntegerziTypeziplusInteger = h$d();+var h$integerzmgmpZCGHCziIntegerziTypezitimesInteger = h$d();+var h$integerzmgmpZCGHCziIntegerziTypezigcdInteger = h$d();+var h$$bf = h$d();+var h$$bg = h$d();+var h$$bh = h$d();+var h$$bi = h$d();+var h$$bj = h$d();+var h$integerzmgmpZCGHCziIntegerziTypeziabsInt = h$d();+var h$integerzmgmpZCGHCziIntegerziTypezigcdInt = h$d();+var h$integerzmgmpZCGHCziIntegerziTypeziminIntAsBig = h$d();+var h$integerzmgmpZCGHCziIntegerziTypeziencodeDoublezh = h$d();+var h$integerzmgmpZCGHCziIntegerziTypeziintzuencodeDoublezh = h$d();+var h$integerzmgmpZCGHCziIntegerziTypeziJzh = h$d();+var h$integerzmgmpZCGHCziIntegerziTypeziSzh = h$d();+var h$integerzmgmpZCGHCziIntegerziTypeziint64ToInteger = h$d();+var h$integerzmgmpZCGHCziIntegerziTypeziencodeDoubleInteger = h$d();+var h$integerzmgmpZCGHCziIntegerziTypezidoubleFromInteger = h$d();+var h$integerzmgmpZCGHCziIntegerziTypezicompareInteger = h$d();+var h$integerzmgmpZCGHCziIntegerziTypezigeIntegerzh = h$d();+var h$integerzmgmpZCGHCziIntegerziTypeziltIntegerzh = h$d();+var h$integerzmgmpZCGHCziIntegerziTypezigtIntegerzh = h$d();+var h$integerzmgmpZCGHCziIntegerziTypezileIntegerzh = h$d();+var h$integerzmgmpZCGHCziIntegerziTypezisignumInteger = h$d();+var h$integerzmgmpZCGHCziIntegerziTypeziabsInteger = h$d();+var h$integerzmgmpZCGHCziIntegerziTypezieqIntegerzh = h$d();+var h$integerzmgmpZCGHCziIntegerziTypezinegateInteger = h$d();+var h$integerzmgmpZCGHCziIntegerziTypeziintegerToInt64 = h$d();+var h$integerzmgmpZCGHCziIntegerziTypeziintegerToInt = h$d();+var h$integerzmgmpZCGHCziIntegerziTypezismallInteger = h$d();+var h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziintegerLog2zhzugo = h$d();+var h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziintegerLog2zhzustep = h$d();+var h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziintegerLog2IsPowerOf2zh1 = h$d();+var h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziintegerLog2zh1 = h$d();+var h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziBA = h$d();+var h$$bB = h$d();+var h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziroundingModezh = h$d();+var h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziintegerLog2zh = h$d();+var h$integerzmgmpZCGHCziIntegerziGMPziPrimziintegerToInt64zh = h$d();+var h$baseZCUnsafeziCoerceziunsafeCoerce1 = h$d();+var h$baseZCTextziReadziLexzinumberToFixedzuzdsval = h$d();+var h$$it = h$d();+var h$$iu = h$d();+var h$$iv = h$d();+var h$$iw = h$d();+var h$$ix = h$d();+var h$$iy = h$d();+var h$$iz = h$d();+var h$$iA = h$d();+var h$$iB = h$p(39);+var h$$iC = h$p(34);+var h$$iD = h$d();+var h$$iE = h$d();+var h$$iF = h$d();+var h$$iG = h$d();+var h$$iH = h$d();+var h$$iI = h$p(127);+h$di(h$$iJ);+var h$$iK = h$d();+var h$$iL = h$d();+var h$$iM = h$p(32);+h$di(h$$iN);+var h$$iO = h$d();+var h$$iP = h$d();+var h$$iQ = h$p(31);+h$di(h$$iR);+var h$$iS = h$d();+var h$$iT = h$d();+var h$$iU = h$p(30);+h$di(h$$iV);+var h$$iW = h$d();+var h$$iX = h$d();+var h$$iY = h$p(29);+h$di(h$$iZ);+var h$$i0 = h$d();+var h$$i1 = h$d();+var h$$i2 = h$p(28);+h$di(h$$i3);+var h$$i4 = h$d();+var h$$i5 = h$d();+var h$$i6 = h$p(27);+h$di(h$$i7);+var h$$i8 = h$d();+var h$$i9 = h$d();+var h$$ja = h$p(26);+h$di(h$$jb);+var h$$jc = h$d();+var h$$jd = h$d();+var h$$je = h$p(25);+h$di(h$$jf);+var h$$jg = h$d();+var h$$jh = h$d();+var h$$ji = h$p(24);+h$di(h$$jj);+var h$$jk = h$d();+var h$$jl = h$d();+var h$$jm = h$p(23);+h$di(h$$jn);+var h$$jo = h$d();+var h$$jp = h$d();+var h$$jq = h$p(22);+h$di(h$$jr);+var h$$js = h$d();+var h$$jt = h$d();+var h$$ju = h$p(21);+h$di(h$$jv);+var h$$jw = h$d();+var h$$jx = h$d();+var h$$jy = h$p(20);+h$di(h$$jz);+var h$$jA = h$d();+var h$$jB = h$d();+var h$$jC = h$p(19);+h$di(h$$jD);+var h$$jE = h$d();+var h$$jF = h$d();+var h$$jG = h$p(18);+h$di(h$$jH);+var h$$jI = h$d();+var h$$jJ = h$d();+var h$$jK = h$p(17);+h$di(h$$jL);+var h$$jM = h$d();+var h$$jN = h$d();+var h$$jO = h$p(16);+h$di(h$$jP);+var h$$jQ = h$d();+var h$$jR = h$d();+var h$$jS = h$p(15);+h$di(h$$jT);+var h$$jU = h$d();+var h$$jV = h$d();+var h$$jW = h$p(13);+h$di(h$$jX);+var h$$jY = h$d();+var h$$jZ = h$d();+var h$$j0 = h$p(12);+h$di(h$$j1);+var h$$j2 = h$d();+var h$$j3 = h$d();+var h$$j4 = h$p(11);+h$di(h$$j5);+var h$$j6 = h$d();+var h$$j7 = h$d();+var h$$j8 = h$p(10);+h$di(h$$j9);+var h$$ka = h$d();+var h$$kb = h$d();+var h$$kc = h$p(9);+h$di(h$$kd);+var h$$ke = h$d();+var h$$kf = h$d();+var h$$kg = h$p(8);+h$di(h$$kh);+var h$$ki = h$d();+var h$$kj = h$d();+var h$$kk = h$p(7);+h$di(h$$kl);+var h$$km = h$d();+var h$$kn = h$d();+var h$$ko = h$p(6);+h$di(h$$kp);+var h$$kq = h$d();+var h$$kr = h$d();+var h$$ks = h$p(5);+h$di(h$$kt);+var h$$ku = h$d();+var h$$kv = h$d();+var h$$kw = h$p(4);+h$di(h$$kx);+var h$$ky = h$d();+var h$$kz = h$d();+var h$$kA = h$p(3);+h$di(h$$kB);+var h$$kC = h$d();+var h$$kD = h$d();+var h$$kE = h$p(2);+h$di(h$$kF);+var h$$kG = h$d();+var h$$kH = h$d();+var h$$kI = h$p(0);+h$di(h$$kJ);+var h$$kK = h$d();+var h$$kL = h$d();+var h$$kM = h$d();+var h$$kN = h$p(14);+h$di(h$$kO);+var h$$kP = h$d();+var h$$kQ = h$p(1);+h$di(h$$kR);+var h$$kS = h$d();+var h$$kT = h$d();+var h$$kU = h$p(10);+var h$$kV = h$d();+var h$$kW = h$d();+var h$$kX = h$d();+h$di(h$$kY);+var h$$kZ = h$d();+h$di(h$$k0);+var h$$k1 = h$d();+h$di(h$$k2);+h$di(h$$k3);+var h$$k4 = h$d();+var h$$k5 = h$p(126);+var h$$k6 = h$d();+var h$$k7 = h$d();+var h$$k8 = h$p(64);+var h$$k9 = h$d();+var h$$la = h$d();+h$di(h$$lb);+var h$$lc = h$d();+h$di(h$$ld);+var h$$le = h$d();+var h$$lf = h$p(124);+var h$$lg = h$d();+var h$$lh = h$d();+var h$$li = h$p(92);+var h$$lj = h$d();+var h$$lk = h$d();+var h$$ll = h$p(61);+var h$$lm = h$d();+var h$$ln = h$d();+h$di(h$$lo);+var h$$lp = h$d();+h$di(h$$lq);+var h$$lr = h$d();+var h$$ls = h$d();+h$di(h$$lt);+var h$$lu = h$d();+var h$$lv = h$d();+var h$$lw = h$p(16);+var h$$lx = h$p(8);+var h$baseZCTextziReadziLexzireadDecP2 = h$d();+var h$baseZCTextziReadziLexzizdwnumberToRational = h$d();+var h$baseZCTextziReadziLexzinumberToRangedRational5 = h$d();+var h$baseZCTextziReadziLexzinumberToRangedRational4 = h$d();+var h$baseZCTextziReadziLexzinumberToRangedRational1 = h$d();+var h$baseZCTextziReadziLexzizdwnumberToRangedRational = h$d();+var h$baseZCTextziReadziLexzinumberToFixed2 = h$d();+var h$baseZCTextziReadziLexzinumberToRangedRational3 = h$d();+var h$baseZCTextziReadziLexzinumberToRangedRational2 = h$d();+var h$baseZCTextziReadziLexzinumberToFixed1 = h$d();+var h$baseZCTextziReadziLexzilexChar2 = h$d();+var h$baseZCTextziReadziLexziexpect2 = h$d();+var h$baseZCTextziReadziLexzizdfShowLexeme2 = h$p(0);+var h$baseZCTextziReadziLexziEOF = h$d();+var h$baseZCTextziReadziLexziNumber = h$d();+var h$baseZCTextziReadziLexziSymbol = h$d();+var h$baseZCTextziReadziLexziIdent = h$d();+var h$baseZCTextziReadziLexziPunc = h$d();+var h$baseZCTextziReadziLexziString = h$d();+var h$baseZCTextziReadziLexziChar = h$d();+var h$baseZCTextziReadziLexziMkDecimal = h$d();+var h$baseZCTextziReadziLexziMkNumber = h$d();+var h$baseZCTextziReadzireadEither6 = h$d();+var h$baseZCTextziReadzireadEither5 = h$d();+h$di(h$baseZCTextziReadzireadEither4);+h$di(h$baseZCTextziReadzireadEither2);+var h$baseZCTextziReadziread = h$d();+var h$baseZCTextziParserCombinatorsziReadPrecziminPrec = h$p(0);+var h$baseZCTextziParserCombinatorsziReadPzirun = h$d();+var h$baseZCTextziParserCombinatorsziReadPzizdfMonadPlusPzuzdcmplus = h$d();+var h$baseZCTextziParserCombinatorsziReadPzizdfMonadPzuzdczgzgze = h$d();+var h$baseZCTextziParserCombinatorsziReadPzichoice = h$d();+var h$baseZCTextziParserCombinatorsziReadPziskipSpaceszuskip = h$d();+var h$baseZCTextziParserCombinatorsziReadPzizlzpzp2 = h$d();+var h$$nj = h$d();+var h$$nk = h$d();+var h$baseZCTextziParserCombinatorsziReadPzistring2 = h$d();+var h$baseZCTextziParserCombinatorsziReadPzizdwa6 = h$d();+var h$baseZCTextziParserCombinatorsziReadPzimunch3 = h$d();+var h$baseZCTextziParserCombinatorsziReadPzizdwa3 = h$d();+var h$baseZCTextziParserCombinatorsziReadPzizdwa = h$d();+var h$baseZCTextziParserCombinatorsziReadPzipfail1 = h$d();+var h$baseZCTextziParserCombinatorsziReadPzizdfMonadPzuzdcreturn = h$d();+var h$baseZCTextziParserCombinatorsziReadPziFinal = h$d();+var h$baseZCTextziParserCombinatorsziReadPziResult = h$d();+var h$baseZCTextziParserCombinatorsziReadPziFail = h$d();+var h$baseZCTextziParserCombinatorsziReadPziLook = h$d();+var h$baseZCTextziParserCombinatorsziReadPziGet = h$d();+h$di(h$$n2);+h$di(h$$n3);+h$di(h$$n4);+h$di(h$$n5);+var h$baseZCSystemziPosixziInternalszisetEcho2 = h$d();+var h$baseZCSystemziPosixziInternalszisetEcho1 = h$d();+var h$baseZCSystemziPosixziInternalszisetCooked5 = h$d();+var h$baseZCSystemziPosixziInternalszisetCooked4 = h$d();+var h$baseZCSystemziPosixziInternalszisetCooked3 = h$d();+var h$baseZCSystemziPosixziInternalszisetCooked2 = h$d();+var h$baseZCSystemziPosixziInternalszisetCooked1 = h$d();+var h$baseZCSystemziPosixziInternalszigetEcho4 = h$d();+var h$baseZCSystemziPosixziInternalszigetEcho3 = h$d();+var h$baseZCSystemziPosixziInternalszigetEcho2 = h$d();+h$di(h$baseZCSystemziPosixziInternalsziioezuunknownfiletype2);+h$di(h$baseZCSystemziPosixziInternalsziioezuunknownfiletype1);+var h$baseZCSystemziPosixziInternalszifdStat1 = h$d();+var h$baseZCSystemziPosixziInternalszifdFileSizzezupred = h$d();+h$di(h$baseZCSystemziPosixziInternalszifdFileSizzezuloc);+var h$baseZCSystemziPosixziInternalszifdFileSizze2 = h$d();+var h$baseZCSystemziPosixziInternalszifdFileSizze1 = h$d();+var h$baseZCSystemziPosixziInternalsziioezuunknownfiletype = h$d();+var h$baseZCGHCziWordziW32zh = h$d();+var h$baseZCGHCziWordziW64zh = h$d();+var h$baseZCGHCziUnicodezizdwisSpace = h$d();+var h$baseZCGHCziUnicodeziisSpace = h$d();+var h$baseZCGHCziUnicodeziisAlpha = h$d();+var h$baseZCGHCziUnicodeziisAlphaNum = h$d();+var h$baseZCGHCziTopHandlerzirunIO3 = h$d();+var h$baseZCGHCziTopHandlerzirunIO2 = h$d();+var h$$oU = h$d();+var h$$oV = h$p(2);+var h$$oW = h$p(0);+var h$$oX = h$p(1);+var h$$oY = h$d();+h$di(h$$oZ);+var h$baseZCGHCziTopHandlerzirunMainIO1 = h$d();+var h$baseZCGHCziTopHandlerziflushStdHandles4 = h$d();+var h$baseZCGHCziTopHandlerziflushStdHandles3 = h$d();+var h$baseZCGHCziTopHandlerziflushStdHandles2 = h$d();+var h$baseZCGHCziTopHandlerzitopHandler = h$d();+var h$baseZCGHCziTopHandlerzirunMainIO = h$d();+var h$baseZCGHCziStorableziwriteWideCharOffPtr1 = h$d();+var h$baseZCGHCziStorablezireadWideCharOffPtr1 = h$d();+var h$baseZCGHCziShowzizdwitoszq = h$d();+var h$baseZCGHCziShowzishowLitString = h$d();+h$di(h$$py);+h$di(h$$pz);+h$di(h$$pA);+h$di(h$$pB);+h$di(h$$pC);+h$di(h$$pD);+h$di(h$$pE);+h$di(h$$pF);+h$di(h$$pG);+h$di(h$$pH);+h$di(h$$pI);+var h$$pJ = h$p(92);+h$di(h$baseZCGHCziShowziasciiTab65);+h$di(h$baseZCGHCziShowziasciiTab64);+h$di(h$baseZCGHCziShowziasciiTab63);+h$di(h$baseZCGHCziShowziasciiTab62);+h$di(h$baseZCGHCziShowziasciiTab61);+h$di(h$baseZCGHCziShowziasciiTab60);+h$di(h$baseZCGHCziShowziasciiTab59);+h$di(h$baseZCGHCziShowziasciiTab58);+h$di(h$baseZCGHCziShowziasciiTab57);+h$di(h$baseZCGHCziShowziasciiTab56);+h$di(h$baseZCGHCziShowziasciiTab55);+h$di(h$baseZCGHCziShowziasciiTab54);+h$di(h$baseZCGHCziShowziasciiTab53);+h$di(h$baseZCGHCziShowziasciiTab52);+h$di(h$baseZCGHCziShowziasciiTab51);+h$di(h$baseZCGHCziShowziasciiTab50);+h$di(h$baseZCGHCziShowziasciiTab49);+h$di(h$baseZCGHCziShowziasciiTab48);+h$di(h$baseZCGHCziShowziasciiTab47);+h$di(h$baseZCGHCziShowziasciiTab46);+h$di(h$baseZCGHCziShowziasciiTab45);+h$di(h$baseZCGHCziShowziasciiTab44);+h$di(h$baseZCGHCziShowziasciiTab43);+h$di(h$baseZCGHCziShowziasciiTab42);+h$di(h$baseZCGHCziShowziasciiTab41);+h$di(h$baseZCGHCziShowziasciiTab40);+h$di(h$baseZCGHCziShowziasciiTab39);+h$di(h$baseZCGHCziShowziasciiTab38);+h$di(h$baseZCGHCziShowziasciiTab37);+h$di(h$baseZCGHCziShowziasciiTab36);+h$di(h$baseZCGHCziShowziasciiTab35);+h$di(h$baseZCGHCziShowziasciiTab34);+h$di(h$baseZCGHCziShowziasciiTab33);+var h$baseZCGHCziShowziasciiTab32 = h$d();+var h$baseZCGHCziShowziasciiTab31 = h$d();+var h$baseZCGHCziShowziasciiTab30 = h$d();+var h$baseZCGHCziShowziasciiTab29 = h$d();+var h$baseZCGHCziShowziasciiTab28 = h$d();+var h$baseZCGHCziShowziasciiTab27 = h$d();+var h$baseZCGHCziShowziasciiTab26 = h$d();+var h$baseZCGHCziShowziasciiTab25 = h$d();+var h$baseZCGHCziShowziasciiTab24 = h$d();+var h$baseZCGHCziShowziasciiTab23 = h$d();+var h$baseZCGHCziShowziasciiTab22 = h$d();+var h$baseZCGHCziShowziasciiTab21 = h$d();+var h$baseZCGHCziShowziasciiTab20 = h$d();+var h$baseZCGHCziShowziasciiTab19 = h$d();+var h$baseZCGHCziShowziasciiTab18 = h$d();+var h$baseZCGHCziShowziasciiTab17 = h$d();+var h$baseZCGHCziShowziasciiTab16 = h$d();+var h$baseZCGHCziShowziasciiTab15 = h$d();+var h$baseZCGHCziShowziasciiTab14 = h$d();+var h$baseZCGHCziShowziasciiTab13 = h$d();+var h$baseZCGHCziShowziasciiTab12 = h$d();+var h$baseZCGHCziShowziasciiTab11 = h$d();+var h$baseZCGHCziShowziasciiTab10 = h$d();+var h$baseZCGHCziShowziasciiTab9 = h$d();+var h$baseZCGHCziShowziasciiTab8 = h$d();+var h$baseZCGHCziShowziasciiTab7 = h$d();+var h$baseZCGHCziShowziasciiTab6 = h$d();+var h$baseZCGHCziShowziasciiTab5 = h$d();+var h$baseZCGHCziShowziasciiTab4 = h$d();+var h$baseZCGHCziShowziasciiTab3 = h$d();+var h$baseZCGHCziShowziasciiTab2 = h$d();+var h$baseZCGHCziShowziasciiTab1 = h$d();+var h$baseZCGHCziShowzizdfShowChar1 = h$p(34);+var h$baseZCGHCziShowzishowListzuzu3 = h$p(91);+var h$baseZCGHCziShowzishowListzuzu2 = h$p(93);+var h$baseZCGHCziShowzishowListzuzu1 = h$p(44);+var h$baseZCGHCziShowzizdwshowLitChar = h$d();+var h$baseZCGHCziShowzizdwitos = h$d();+var h$baseZCGHCziShowzizdwshowSignedInt = h$d();+var h$baseZCGHCziShowzishows15 = h$p(45);+var h$baseZCGHCziShowzishows13 = h$p(40);+var h$baseZCGHCziShowzishows12 = h$p(41);+var h$baseZCGHCziShowziDZCShow = h$d();+var h$baseZCGHCziShowziasciiTab = h$d();+var h$baseZCGHCziShowzishowListzuzu = h$d();+var h$baseZCGHCziShowzishowsPrec = h$d();+var h$baseZCGHCziSTRefziSTRef = h$d();+var h$$qv = h$d();+var h$baseZCGHCziRealzizczuf2 = h$d();+h$di(h$$qw);+var h$baseZCGHCziRealzizczuzdszc2 = h$d();+var h$baseZCGHCziRealzizc3 = h$d();+var h$baseZCGHCziRealzizdfIntegralIntzuzdcquot = h$d();+var h$baseZCGHCziRealzizdfIntegralIntzuzdcrem = h$d();+var h$baseZCGHCziRealzizdwzdcdiv = h$d();+var h$baseZCGHCziRealzizdfIntegralIntzuzdcdiv = h$d();+var h$baseZCGHCziRealzizdfIntegralIntzuzdcmod = h$d();+var h$baseZCGHCziRealzizdfIntegralIntzuzdcquotRem = h$d();+var h$baseZCGHCziRealzizdfIntegralInt1 = h$p(0);+var h$baseZCGHCziRealzizdfIntegralIntzuzdcdivMod = h$d();+var h$baseZCGHCziRealzizdfIntegralIntzuzdctoInteger = h$d();+var h$baseZCGHCziRealzizdfEnumRatiozuzdctoRational = h$d();+var h$baseZCGHCziRealzizdfEnumRatio1 = h$d();+var h$baseZCGHCziRealzizdwzdsreduce = h$d();+var h$baseZCGHCziRealzieven2 = h$d();+var h$baseZCGHCziRealzieven1 = h$d();+var h$baseZCGHCziRealzizdfRealInt = h$d();+var h$baseZCGHCziRealzizdfIntegralInt = h$d();+var h$baseZCGHCziRealziDZCFractional = h$d();+var h$baseZCGHCziRealziDZCIntegral = h$d();+var h$baseZCGHCziRealziDZCReal = h$d();+var h$baseZCGHCziRealziZCzv = h$d();+var h$baseZCGHCziRealzizdWZCzv = h$d();+var h$baseZCGHCziRealzioverflowError = h$d();+var h$$qx = h$d();+var h$baseZCGHCziRealziratioZZeroDenominatorError = h$d();+var h$baseZCGHCziRealzidivZZeroError = h$d();+var h$baseZCGHCziRealzizs = h$d();+var h$baseZCGHCziRealzitoInteger = h$d();+var h$baseZCGHCziRealzifromIntegral = h$d();+var h$$rH = h$p(91);+var h$$rI = h$d();+var h$baseZCGHCziReadzizdfReadDoublezuzdcreadsPrec = h$d();+var h$baseZCGHCziReadzizdfReadDouble11 = h$d();+var h$baseZCGHCziReadzizdfReadDoublezuzdsreadListDefault = h$d();+var h$baseZCGHCziReadzizdfReadDouble10 = h$d();+var h$baseZCGHCziReadzizdfReadDouble9 = h$d();+h$di(h$baseZCGHCziReadzizdfReadDouble8);+h$di(h$baseZCGHCziReadzizdfReadDouble7);+var h$baseZCGHCziReadzizdfReadDouble6 = h$d();+var h$baseZCGHCziReadzizdfReadDouble5 = h$d();+var h$baseZCGHCziReadzizdfReadDouble4 = h$d();+var h$baseZCGHCziReadzizdfReadDouble3 = h$d();+var h$baseZCGHCziReadzizdfReadDoublezuzdsconvertFrac = h$d();+var h$baseZCGHCziReadzizdfReadDouble2 = h$d();+var h$baseZCGHCziReadzizdfReadDouble1 = h$d();+var h$baseZCGHCziReadzizdwa3 = h$d();+var h$baseZCGHCziReadzizdfReadZLZR13 = h$p(40);+var h$baseZCGHCziReadzizdfReadZLZR12 = h$d();+var h$baseZCGHCziReadzizdfReadZLZR11 = h$p(41);+var h$baseZCGHCziReadzizdfReadZLZR10 = h$d();+var h$baseZCGHCziReadzizdwa = h$d();+var h$baseZCGHCziReadzizdfReadDouble = h$d();+var h$baseZCGHCziReadziDZCRead = h$d();+var h$baseZCGHCziPtrziPtr = h$d();+var h$baseZCGHCziNumzizdfNumIntzuzdczp = h$d();+var h$baseZCGHCziNumzizdfNumIntzuzdczt = h$d();+var h$baseZCGHCziNumzizdfNumIntzuzdczm = h$d();+var h$baseZCGHCziNumzizdfNumIntzuzdcnegate = h$d();+var h$baseZCGHCziNumzizdfNumIntzuzdcabs = h$d();+var h$baseZCGHCziNumzizdfNumInt3 = h$p(1);+var h$baseZCGHCziNumzizdfNumInt2 = h$p(0);+var h$baseZCGHCziNumzizdfNumInt1 = h$p((-1));+var h$baseZCGHCziNumzizdfNumIntzuzdcsignum = h$d();+var h$baseZCGHCziNumzizdfNumIntzuzdcfromInteger = h$d();+var h$baseZCGHCziNumzizdfNumInt = h$d();+var h$baseZCGHCziNumziDZCNum = h$d();+var h$baseZCGHCziNumzizt = h$d();+var h$baseZCGHCziNumzizp = h$d();+var h$baseZCGHCziNumzifromInteger = h$d();+var h$baseZCGHCziMVarziMVar = h$d();+var h$baseZCGHCziListziznznzusub = h$d();+var h$baseZCGHCziListzielem = h$d();+var h$baseZCGHCziListziall = h$d();+var h$baseZCGHCziListzizdwbreak = h$d();+var h$baseZCGHCziListzizdwspan = h$d();+var h$baseZCGHCziListzidropWhile = h$d();+var h$baseZCGHCziListzizdwlenAcc = h$d();+var h$baseZCGHCziListzizzip = h$d();+var h$baseZCGHCziListzifoldr2 = h$d();+var h$baseZCGHCziListzizzipWith = h$d();+var h$baseZCGHCziListzifilter = h$d();+var h$baseZCGHCziListzifilterFB = h$d();+h$di(h$$sC);+h$di(h$$sD);+var h$$sE = h$d();+h$di(h$$sF);+var h$baseZCGHCziListzicycle1 = h$d();+var h$baseZCGHCziListziznzn1 = h$d();+var h$baseZCGHCziListzicycle = h$d();+var h$baseZCGHCziIntzizdfEqInt64zuzdczeze = h$d();+var h$baseZCGHCziIntziI32zh = h$d();+var h$baseZCGHCziIntziI64zh = h$d();+h$di(h$baseZCGHCziIOziHandleziTypeszishowHandle2);+var h$baseZCGHCziIOziHandleziTypeszishowHandle1 = h$p(125);+var h$baseZCGHCziIOziHandleziTypesziNewlineMode = h$d();+var h$baseZCGHCziIOziHandleziTypesziFileHandle = h$d();+var h$baseZCGHCziIOziHandleziTypeszizdWFileHandle = h$d();+var h$baseZCGHCziIOziHandleziTypesziHandlezuzu = h$d();+var h$baseZCGHCziIOziHandleziTypeszizdWHandlezuzu = h$d();+var h$baseZCGHCziIOziHandleziTypesziLF = h$d();+var h$baseZCGHCziIOziHandleziTypesziBlockBuffering = h$d();+var h$baseZCGHCziIOziHandleziTypesziLineBuffering = h$d();+var h$baseZCGHCziIOziHandleziTypesziNoBuffering = h$d();+var h$baseZCGHCziIOziHandleziTypesziWriteHandle = h$d();+var h$baseZCGHCziIOziHandleziTypesziBufferListNil = h$d();+var h$baseZCGHCziIOziHandleziTypeszinoNewlineTranslation = h$d();+var h$baseZCGHCziIOziHandleziInternalszizdwa2 = h$d();+var h$$ul = h$d();+h$di(h$$um);+h$di(h$$un);+h$di(h$$uo);+var h$$up = h$d();+var h$baseZCGHCziIOziHandleziInternalsziwithHandlezq1 = h$d();+var h$baseZCGHCziIOziHandleziInternalsziwantWritableHandle2 = h$d();+var h$baseZCGHCziIOziHandleziInternalsziwantWritableHandle1 = h$d();+h$di(h$baseZCGHCziIOziHandleziInternalsziwantSeekableHandle4);+var h$baseZCGHCziIOziHandleziInternalsziwantSeekableHandle3 = h$d();+var h$baseZCGHCziIOziHandleziInternalszimkDuplexHandle5 = h$d();+var h$baseZCGHCziIOziHandleziInternalsziflushWriteBuffer1 = h$d();+h$di(h$baseZCGHCziIOziHandleziInternalsziflushBuffer4);+var h$baseZCGHCziIOziHandleziInternalsziflushBuffer3 = h$d();+var h$baseZCGHCziIOziHandleziInternalszidecodeByteBuf2 = h$d();+var h$baseZCGHCziIOziHandleziInternalszizdwa = h$d();+var h$baseZCGHCziIOziHandleziInternalsziioezufinalizzedHandle = h$d();+var h$baseZCGHCziIOziHandleziInternalsziaugmentIOError = h$d();+var h$$u0 = h$d();+h$di(h$$u1);+var h$$u2 = h$d();+h$di(h$$u3);+var h$$u4 = h$d();+var h$$u5 = h$d();+var h$$u6 = h$d();+var h$baseZCGHCziIOziHandleziFDzistderr = h$d();+var h$baseZCGHCziIOziHandleziFDzistdout = h$d();+h$di(h$baseZCGHCziIOziHandlezihFlush2);+var h$baseZCGHCziIOziHandlezihFlush1 = h$d();+var h$baseZCGHCziIOziHandlezihFlush = h$d();+var h$baseZCGHCziIOziFDzizdwa2 = h$d();+h$di(h$$w1);+var h$baseZCGHCziIOziFDziwriteRawBufferPtr2 = h$d();+h$di(h$baseZCGHCziIOziFDzizdfTypeableFD5);+h$di(h$baseZCGHCziIOziFDzizdfTypeableFD4);+h$di(h$baseZCGHCziIOziFDzizdfTypeableFD3);+var h$baseZCGHCziIOziFDzizdfTypeableFD2 = h$d();+var h$baseZCGHCziIOziFDzizdfTypeableFD1 = h$d();+var h$baseZCGHCziIOziFDzizdfTypeableFDzuzdctypeRepzh = h$d();+h$di(h$baseZCGHCziIOziFDzizdfIODeviceFD19);+var h$baseZCGHCziIOziFDzizdwa12 = h$d();+var h$baseZCGHCziIOziFDzizdfIODeviceFD18 = h$d();+var h$baseZCGHCziIOziFDzizdfIODeviceFD17 = h$d();+h$di(h$baseZCGHCziIOziFDzizdfIODeviceFD16);+var h$baseZCGHCziIOziFDzizdwa11 = h$d();+var h$baseZCGHCziIOziFDzizdfIODeviceFD15 = h$d();+var h$baseZCGHCziIOziFDzizdfIODeviceFD14 = h$d();+var h$baseZCGHCziIOziFDzizdfIODeviceFD13 = h$d();+h$di(h$baseZCGHCziIOziFDzizdfIODeviceFDzuloc2);+var h$baseZCGHCziIOziFDzizdwa10 = h$d();+var h$baseZCGHCziIOziFDzizdfIODeviceFD12 = h$d();+var h$baseZCGHCziIOziFDzizdfIODeviceFDzuds = h$d();+var h$baseZCGHCziIOziFDzizdfIODeviceFDzupred = h$d();+h$di(h$baseZCGHCziIOziFDzizdfIODeviceFD11);+var h$baseZCGHCziIOziFDzizdwa9 = h$d();+var h$baseZCGHCziIOziFDzizdfIODeviceFD10 = h$d();+var h$baseZCGHCziIOziFDzizdfIODeviceFD9 = h$d();+h$di(h$baseZCGHCziIOziFDzizdfIODeviceFD8);+var h$baseZCGHCziIOziFDzizdwa8 = h$d();+var h$baseZCGHCziIOziFDzizdfIODeviceFD7 = h$d();+var h$baseZCGHCziIOziFDzizdfIODeviceFD6 = h$d();+var h$baseZCGHCziIOziFDzizdfIODeviceFD5 = h$d();+var h$baseZCGHCziIOziFDzizdfIODeviceFD4 = h$d();+var h$baseZCGHCziIOziFDzizdfIODeviceFD3 = h$d();+h$di(h$baseZCGHCziIOziFDzizdfIODeviceFDzuloc1);+var h$baseZCGHCziIOziFDzizdwa7 = h$d();+var h$baseZCGHCziIOziFDzizdfIODeviceFD2 = h$d();+h$di(h$baseZCGHCziIOziFDzizdfIODeviceFDzuloc);+var h$baseZCGHCziIOziFDzizdwa6 = h$d();+var h$baseZCGHCziIOziFDzizdfIODeviceFD1 = h$d();+var h$baseZCGHCziIOziFDzizdfBufferedIOFD12 = h$d();+h$di(h$baseZCGHCziIOziFDzizdfBufferedIOFD11);+var h$baseZCGHCziIOziFDzizdwa5 = h$d();+var h$baseZCGHCziIOziFDzizdfBufferedIOFD10 = h$d();+var h$baseZCGHCziIOziFDzizdfBufferedIOFD9 = h$p((-1));+var h$baseZCGHCziIOziFDzizdwa4 = h$d();+h$di(h$baseZCGHCziIOziFDzizdfBufferedIOFD8);+var h$baseZCGHCziIOziFDzizdfBufferedIOFD7 = h$p(0);+var h$baseZCGHCziIOziFDzizdwa3 = h$d();+var h$baseZCGHCziIOziFDzizdfBufferedIOFD6 = h$d();+var h$baseZCGHCziIOziFDzizdfBufferedIOFD5 = h$d();+var h$baseZCGHCziIOziFDzizdfBufferedIOFD3 = h$d();+h$di(h$baseZCGHCziIOziFDzizdfBufferedIOFD2);+var h$baseZCGHCziIOziFDzizdwa1 = h$d();+var h$baseZCGHCziIOziFDzizdwa = h$d();+var h$baseZCGHCziIOziFDzizdfBufferedIOFD1 = h$d();+var h$baseZCGHCziIOziFDzizdfIODeviceFD = h$d();+var h$baseZCGHCziIOziFDzizdfBufferedIOFD = h$d();+var h$baseZCGHCziIOziFDziFD = h$d();+var h$baseZCGHCziIOziFDzizdWFD = h$d();+var h$baseZCGHCziIOziFDzistderr = h$d();+var h$baseZCGHCziIOziFDzistdout = h$d();+var h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnMVarzuzdctoException = h$d();+var h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnMVar = h$d();+var h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnSTMzuzdctoException = h$d();+var h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnSTM = h$d();+var h$baseZCGHCziIOziExceptionzizdfExceptionIOExceptionzuzdctoException = h$d();+var h$baseZCGHCziIOziExceptionzizdfExceptionIOException = h$d();+var h$$xM = h$d();+h$di(h$$xN);+h$di(h$$xO);+h$di(h$$xP);+h$di(h$$xQ);+h$di(h$$xR);+h$di(h$$xS);+h$di(h$$xT);+h$di(h$$xU);+h$di(h$$xV);+h$di(h$$xW);+h$di(h$$xX);+h$di(h$$xY);+h$di(h$$xZ);+h$di(h$$x0);+h$di(h$$x1);+h$di(h$$x2);+h$di(h$$x3);+h$di(h$$x4);+h$di(h$$x5);+var h$baseZCGHCziIOziExceptionziuntangle4 = h$d();+var h$baseZCGHCziIOziExceptionziuntangle3 = h$p(10);+var h$baseZCGHCziIOziExceptionziuntangle2 = h$d();+var h$baseZCGHCziIOziExceptionziuntangle1 = h$p(32);+var h$baseZCGHCziIOziExceptionzizdfShowIOExceptionzuzdcshowsPrec = h$d();+var h$baseZCGHCziIOziExceptionzizdfShowIOExceptionzuzdcshow = h$d();+var h$baseZCGHCziIOziExceptionzizdwzdcshowsPrec2 = h$d();+h$di(h$baseZCGHCziIOziExceptionzizdfShowIOException3);+var h$baseZCGHCziIOziExceptionzizdfShowIOException2 = h$p(41);+var h$baseZCGHCziIOziExceptionzizdwzdcshowsPrec1 = h$d();+var h$baseZCGHCziIOziExceptionzizdfShowIOException1 = h$d();+var h$baseZCGHCziIOziExceptionzizdfShowIOExceptionzuzdcshowList = h$d();+h$di(h$baseZCGHCziIOziExceptionzizdfExceptionIOException3);+var h$baseZCGHCziIOziExceptionzizdfExceptionIOExceptionzuzdctypeRepzh = h$d();+var h$baseZCGHCziIOziExceptionzizdfExceptionIOExceptionzuzdcfromException = h$d();+var h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnSTMzuzdcshowsPrec = h$d();+var h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnSTMzuzdcshow = h$d();+h$di(h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnSTM3);+var h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnSTM2 = h$d();+var h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnSTM1 = h$d();+var h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnSTMzuzdcshowList = h$d();+h$di(h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnSTMzuww5);+var h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnSTMzuzdctypeRepzh = h$d();+var h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnSTMzuzdcfromException = h$d();+var h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnMVarzuzdcshowsPrec = h$d();+var h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnMVarzuzdcshow = h$d();+h$di(h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnMVar3);+var h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnMVar2 = h$d();+var h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnMVar1 = h$d();+var h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnMVarzuzdcshowList = h$d();+h$di(h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnMVarzuww5);+var h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnMVarzuzdctypeRepzh = h$d();+var h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnMVarzuzdcfromException = h$d();+h$di(h$baseZCGHCziIOziExceptionzizdfExceptionAsyncExceptionzuww5);+var h$baseZCGHCziIOziExceptionzizdfExceptionAsyncExceptionzuzdctypeRepzh = h$d();+var h$baseZCGHCziIOziExceptionzizdfExceptionAsyncExceptionzuzdsasyncExceptionFromException = h$d();+h$di(h$baseZCGHCziIOziExceptionzizdfShowArrayException2);+h$di(h$baseZCGHCziIOziExceptionzizdfExceptionArrayException3);+h$di(h$baseZCGHCziIOziExceptionzizdfExceptionArrayExceptionzuww4);+var h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnMVar2 = h$d();+var h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnMVar1 = h$d();+var h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnSTM2 = h$d();+var h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnSTM1 = h$d();+var h$baseZCGHCziIOziExceptionzizdfExceptionAsyncException2 = h$d();+var h$baseZCGHCziIOziExceptionzizdfExceptionAsyncException1 = h$d();+var h$baseZCGHCziIOziExceptionzizdfExceptionIOException2 = h$d();+var h$baseZCGHCziIOziExceptionzizdfExceptionIOException1 = h$d();+var h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnMVar = h$d();+var h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnSTM = h$d();+var h$baseZCGHCziIOziExceptionzizdfShowIOException = h$d();+var h$baseZCGHCziIOziExceptionziBlockedIndefinitelyOnMVar = h$d();+var h$baseZCGHCziIOziExceptionziBlockedIndefinitelyOnSTM = h$d();+var h$baseZCGHCziIOziExceptionziIOError = h$d();+var h$baseZCGHCziIOziExceptionziInterrupted = h$d();+var h$baseZCGHCziIOziExceptionziResourceVanished = h$d();+var h$baseZCGHCziIOziExceptionziTimeExpired = h$d();+var h$baseZCGHCziIOziExceptionziUnsupportedOperation = h$d();+var h$baseZCGHCziIOziExceptionziHardwareFault = h$d();+var h$baseZCGHCziIOziExceptionziInappropriateType = h$d();+var h$baseZCGHCziIOziExceptionziInvalidArgument = h$d();+var h$baseZCGHCziIOziExceptionziOtherError = h$d();+var h$baseZCGHCziIOziExceptionziProtocolError = h$d();+var h$baseZCGHCziIOziExceptionziUnsatisfiedConstraints = h$d();+var h$baseZCGHCziIOziExceptionziUserError = h$d();+var h$baseZCGHCziIOziExceptionziPermissionDenied = h$d();+var h$baseZCGHCziIOziExceptionziIllegalOperation = h$d();+var h$baseZCGHCziIOziExceptionziResourceExhausted = h$d();+var h$baseZCGHCziIOziExceptionziResourceBusy = h$d();+var h$baseZCGHCziIOziExceptionziNoSuchThing = h$d();+var h$baseZCGHCziIOziExceptionziAlreadyExists = h$d();+var h$baseZCGHCziIOziExceptionziuntangle = h$d();+var h$baseZCGHCziIOziExceptionziioError = h$d();+var h$baseZCGHCziIOziExceptionziioException = h$d();+var h$baseZCGHCziIOziExceptionzizdfxExceptionIOException = h$d();+var h$baseZCGHCziIOziExceptionziuserError = h$d();+var h$baseZCGHCziIOziEncodingziUTF8ziutf6 = h$d();+var h$baseZCGHCziIOziEncodingziUTF8ziutf4 = h$d();+var h$baseZCGHCziIOziEncodingziUTF8ziutf3 = h$d();+var h$baseZCGHCziIOziEncodingziUTF8ziutf1 = h$d();+h$di(h$baseZCGHCziIOziEncodingziUTF8zimkUTF5);+var h$baseZCGHCziIOziEncodingziUTF8zizdwa1 = h$d();+var h$baseZCGHCziIOziEncodingziUTF8zimkUTF4 = h$d();+var h$baseZCGHCziIOziEncodingziUTF8zimkUTF3 = h$d();+var h$baseZCGHCziIOziEncodingziUTF8zimkUTF2 = h$d();+var h$baseZCGHCziIOziEncodingziUTF8ziutf5 = h$d();+var h$baseZCGHCziIOziEncodingziUTF8zizdwa = h$d();+var h$baseZCGHCziIOziEncodingziUTF8zimkUTF1 = h$d();+var h$baseZCGHCziIOziEncodingziUTF8ziutf2 = h$d();+var h$baseZCGHCziIOziEncodingziUTF8ziutf8 = h$d();+var h$baseZCGHCziIOziEncodingziTypesziTextEncoding = h$d();+var h$baseZCGHCziIOziEncodingziTypesziBufferCodec = h$d();+var h$baseZCGHCziIOziEncodingziTypesziInvalidSequence = h$d();+var h$baseZCGHCziIOziEncodingziTypesziOutputUnderflow = h$d();+var h$baseZCGHCziIOziEncodingziTypesziInputUnderflow = h$d();+var h$baseZCGHCziIOziEncodingziTypesziclose = h$d();+h$di(h$$yy);+h$di(h$$yz);+var h$$yA = h$d();+var h$baseZCGHCziIOziEncodingziFailurezizdwa2 = h$d();+h$di(h$baseZCGHCziIOziEncodingziFailurezirecoverDecode4);+h$di(h$baseZCGHCziIOziEncodingziFailurezirecoverDecode3);+var h$baseZCGHCziIOziEncodingziFailurezirecoverDecode2 = h$d();+var h$baseZCGHCziIOziEncodingzigetLocaleEncoding2 = h$d();+var h$baseZCGHCziIOziEncodingzigetLocaleEncoding1 = h$d();+var h$baseZCGHCziIOziEncodingzigetForeignEncoding = h$d();+var h$baseZCGHCziIOziEncodingzigetLocaleEncoding = h$d();+var h$baseZCGHCziIOziDeviceziDZCIODevice = h$d();+var h$baseZCGHCziIOziDeviceziRelativeSeek = h$d();+var h$baseZCGHCziIOziDeviceziRawDevice = h$d();+var h$baseZCGHCziIOziDeviceziRegularFile = h$d();+var h$baseZCGHCziIOziDeviceziStream = h$d();+var h$baseZCGHCziIOziDeviceziDirectory = h$d();+var h$baseZCGHCziIOziDeviceziseek = h$d();+var h$baseZCGHCziIOziDeviceziisSeekable = h$d();+var h$baseZCGHCziIOziDeviceziisTerminal = h$d();+var h$baseZCGHCziIOziBufferedIOziDZCBufferedIO = h$d();+var h$baseZCGHCziIOziBufferedIOziflushWriteBuffer = h$d();+var h$baseZCGHCziIOziBufferedIOziemptyWriteBuffer = h$d();+var h$baseZCGHCziIOziBufferedIOzinewBuffer = h$d();+var h$baseZCGHCziIOziBufferziBuffer = h$d();+var h$baseZCGHCziIOziBufferzizdWBuffer = h$d();+var h$baseZCGHCziIOziBufferziWriteBuffer = h$d();+var h$baseZCGHCziIOziBufferziReadBuffer = h$d();+var h$$zd = h$d();+var h$$ze = h$d();+var h$baseZCGHCziIOzibracket1 = h$d();+var h$baseZCGHCziIOziunsafeDupablePerformIO = h$d();+var h$baseZCGHCziIOzifailIO = h$d();+h$di(h$$zh);+var h$baseZCGHCziForeignPtrzimallocForeignPtrBytes2 = h$d();+var h$baseZCGHCziForeignPtrziMallocPtr = h$d();+var h$baseZCGHCziForeignPtrzizdWMallocPtr = h$d();+var h$baseZCGHCziForeignPtrziPlainForeignPtr = h$d();+var h$baseZCGHCziForeignPtrzizdWPlainForeignPtr = h$d();+var h$baseZCGHCziForeignPtrziNoFinalizzers = h$d();+var h$baseZCGHCziForeignzizdwa1 = h$d();+var h$baseZCGHCziForeignzicharIsRepresentable3 = h$d();+var h$baseZCGHCziForeignzizdwa = h$d();+var h$$Bo = h$d();+var h$baseZCGHCziFloatzizdfRealFloatDouble3 = h$p((-1021));+var h$baseZCGHCziFloatzizdfRealFloatDouble2 = h$p(1024);+var h$baseZCGHCziFloatzizdfRealDouble1 = h$d();+var h$baseZCGHCziFloatzizdfFloatingDoublezuzdcpi = h$p(3.141592653589793);+var h$baseZCGHCziFloatzizdfFloatingDoublezuzdclogBase = h$d();+var h$baseZCGHCziFloatzizdfFloatingDoublezuzdcasinh = h$d();+var h$baseZCGHCziFloatzizdfFloatingDoublezuzdcatanh = h$d();+var h$baseZCGHCziFloatzizdfFloatingDoublezuzdcacosh = h$d();+var h$baseZCGHCziFloatzizdfNumDoublezuzdcabs = h$d();+var h$baseZCGHCziFloatzizdfNumDouble2 = h$p((-1.0));+var h$baseZCGHCziFloatzizdfNumDouble1 = h$p(1.0);+var h$baseZCGHCziFloatzizdfNumDoublezuzdcsignum = h$d();+var h$baseZCGHCziFloatzizdfNumDoublezuzdcfromInteger = h$d();+var h$baseZCGHCziFloatzizdfFractionalDoublezuzdcrecip = h$d();+var h$baseZCGHCziFloatzirationalToDouble5 = h$d();+var h$baseZCGHCziFloatzizdwzdsfromRatzqzq = h$d();+var h$baseZCGHCziFloatzirationalToDouble4 = h$p(0.0);+var h$baseZCGHCziFloatzirationalToDouble3 = h$d();+var h$baseZCGHCziFloatzirationalToDouble2 = h$d();+var h$baseZCGHCziFloatzirationalToDouble1 = h$d();+var h$baseZCGHCziFloatzizdfFractionalDoublezuzdcfromRational = h$d();+var h$baseZCGHCziFloatziDZCFloating = h$d();+var h$baseZCGHCziFloatzipowerDouble = h$d();+var h$baseZCGHCziFloatzitanhDouble = h$d();+var h$baseZCGHCziFloatzicoshDouble = h$d();+var h$baseZCGHCziFloatzisinhDouble = h$d();+var h$baseZCGHCziFloatziatanDouble = h$d();+var h$baseZCGHCziFloatziacosDouble = h$d();+var h$baseZCGHCziFloatziasinDouble = h$d();+var h$baseZCGHCziFloatzitanDouble = h$d();+var h$baseZCGHCziFloatzicosDouble = h$d();+var h$baseZCGHCziFloatzisinDouble = h$d();+var h$baseZCGHCziFloatzisqrtDouble = h$d();+var h$baseZCGHCziFloatzilogDouble = h$d();+var h$baseZCGHCziFloatziexpDouble = h$d();+var h$baseZCGHCziFloatzinegateDouble = h$d();+var h$baseZCGHCziFloatzidivideDouble = h$d();+var h$baseZCGHCziFloatzitimesDouble = h$d();+var h$baseZCGHCziFloatziminusDouble = h$d();+var h$baseZCGHCziFloatziplusDouble = h$d();+var h$baseZCGHCziFloatzizdfNumDouble = h$d();+var h$baseZCGHCziFloatzizdfFractionalDouble = h$d();+var h$baseZCGHCziFloatzizdfFloatingDouble = h$d();+var h$baseZCGHCziFloatzipi = h$d();+var h$baseZCGHCziFloatzirationalToDouble = h$d();+var h$baseZCGHCziExceptionzizdfExceptionErrorCallzuzdctoException = h$d();+var h$baseZCGHCziExceptionzizdfExceptionErrorCall = h$d();+var h$baseZCGHCziExceptionzizdfExceptionArithExceptionzuzdctoException = h$d();+var h$baseZCGHCziExceptionzizdfExceptionArithException = h$d();+var h$baseZCGHCziExceptionzithrow2 = h$d();+var h$baseZCGHCziExceptionzizdfShowErrorCallzuzdcshowsPrec = h$d();+var h$baseZCGHCziExceptionzizdfShowErrorCall1 = h$d();+var h$baseZCGHCziExceptionzizdfShowErrorCallzuzdcshowList = h$d();+h$di(h$baseZCGHCziExceptionzizdfExceptionErrorCall3);+var h$baseZCGHCziExceptionzizdfExceptionErrorCallzuzdctypeRepzh = h$d();+var h$baseZCGHCziExceptionzizdfExceptionErrorCallzuzdcfromException = h$d();+var h$baseZCGHCziExceptionzizdfShowArithExceptionzuzdcshowsPrec = h$d();+var h$baseZCGHCziExceptionzizdfShowArithExceptionzuzdcshow = h$d();+h$di(h$baseZCGHCziExceptionzizdfShowArithException13);+var h$baseZCGHCziExceptionzizdfShowArithException12 = h$d();+h$di(h$baseZCGHCziExceptionzizdfShowArithException11);+var h$baseZCGHCziExceptionzizdfShowArithException10 = h$d();+h$di(h$baseZCGHCziExceptionzizdfShowArithException9);+var h$baseZCGHCziExceptionzizdfShowArithException8 = h$d();+h$di(h$baseZCGHCziExceptionzizdfShowArithException7);+var h$baseZCGHCziExceptionzizdfShowArithException6 = h$d();+h$di(h$baseZCGHCziExceptionzizdfShowArithException5);+var h$baseZCGHCziExceptionzizdfShowArithException4 = h$d();+h$di(h$baseZCGHCziExceptionzizdfShowArithException3);+var h$baseZCGHCziExceptionzizdfShowArithException2 = h$d();+var h$baseZCGHCziExceptionzizdfShowArithException1 = h$d();+var h$baseZCGHCziExceptionzizdfShowArithExceptionzuzdcshowList = h$d();+h$di(h$baseZCGHCziExceptionzizdfExceptionArithException3);+h$di(h$baseZCGHCziExceptionzizdfExceptionArithExceptionzuww4);+var h$baseZCGHCziExceptionzizdfExceptionErrorCall2 = h$d();+var h$baseZCGHCziExceptionzizdfExceptionErrorCall1 = h$d();+h$di(h$baseZCGHCziExceptionzizdfExceptionArithExceptionzuww5);+var h$baseZCGHCziExceptionzizdfExceptionArithException2 = h$d();+var h$baseZCGHCziExceptionzizdfExceptionArithException1 = h$d();+var h$baseZCGHCziExceptionzizdfExceptionArithExceptionzuzdctypeRepzh = h$d();+var h$baseZCGHCziExceptionzizdfExceptionArithExceptionzuzdcfromException = h$d();+var h$baseZCGHCziExceptionzizdfShowErrorCall = h$d();+var h$baseZCGHCziExceptionzizdfShowArithException = h$d();+var h$baseZCGHCziExceptionziRatioZZeroDenominator = h$d();+var h$baseZCGHCziExceptionziDivideByZZero = h$d();+var h$baseZCGHCziExceptionziOverflow = h$d();+var h$baseZCGHCziExceptionziDZCException = h$d();+var h$baseZCGHCziExceptionzizdp2Exception = h$d();+var h$baseZCGHCziExceptionzizdp1Exception = h$d();+var h$baseZCGHCziExceptionziSomeException = h$d();+var h$baseZCGHCziExceptionzitoException = h$d();+var h$baseZCGHCziExceptionzioverflowException = h$d();+var h$baseZCGHCziExceptionziratioZZeroDenomException = h$d();+var h$baseZCGHCziExceptionzidivZZeroException = h$d();+var h$baseZCGHCziExceptionzierrorCallException = h$d();+var h$baseZCGHCziErrzierror = h$d();+var h$baseZCGHCziEnumziefdtInt = h$d();+var h$baseZCGHCziEnumziefdtIntFB = h$d();+var h$baseZCGHCziEnumzieftInt = h$d();+var h$baseZCGHCziEnumzieftIntFB = h$d();+h$di(h$$B1);+h$di(h$$B2);+h$di(h$$B3);+var h$baseZCGHCziEnumzizdfEnumInt2 = h$d();+var h$baseZCGHCziEnumzizdfEnumIntzuzdcsucc = h$d();+var h$baseZCGHCziEnumzizdfEnumInt1 = h$d();+var h$baseZCGHCziEnumzizdfEnumIntzuzdcpred = h$d();+var h$baseZCGHCziEnumzizdfEnumIntzuzdcfromEnum = h$d();+var h$baseZCGHCziEnumzizdfEnumIntzuzdcenumFrom = h$d();+var h$baseZCGHCziEnumzizdfEnumIntzuzdcenumFromThen = h$d();+var h$baseZCGHCziEnumzizdfEnumIntzuzdcenumFromTo = h$d();+var h$baseZCGHCziEnumzizdfEnumIntzuzdcenumFromThenTo = h$d();+var h$baseZCGHCziEnumzizdfEnumBool1 = h$d();+var h$baseZCGHCziEnumzizdfEnumInt = h$d();+var h$baseZCGHCziEnumziDZCEnum = h$d();+var h$baseZCGHCziEnumziefdtIntDnFB = h$d();+var h$baseZCGHCziEnumziefdtIntDn = h$d();+var h$baseZCGHCziEnumziefdtIntUpFB = h$d();+var h$baseZCGHCziEnumziefdtIntUp = h$d();+var h$baseZCGHCziEnumziefdInt = h$d();+var h$$Co = h$d();+var h$$Cp = h$d();+var h$$Cq = h$d();+h$di(h$$Cr);+h$di(h$$Cs);+var h$$Ct = h$d();+var h$baseZCGHCziConcziSynczireportError1 = h$d();+var h$baseZCGHCziConcziSynczizdfShowThreadStatus2 = h$p(0);+var h$baseZCGHCziConcziSyncziThreadId = h$d();+var h$baseZCGHCziConcziSyncziuncaughtExceptionHandler = h$d();+var h$baseZCGHCziConcziSynczireportError = h$d();+var h$baseZCGHCziCharzichr2 = h$d();+var h$baseZCGHCziBasezieqString = h$d();+var h$baseZCGHCziBasezizpzp = h$d();+var h$baseZCGHCziBasezifoldr = h$d();+var h$baseZCGHCziBasezimap = h$d();+var h$baseZCGHCziBasezibindIO1 = h$d();+var h$baseZCGHCziBasezithenIO1 = h$d();+var h$baseZCGHCziBasezireturnIO1 = h$d();+var h$baseZCGHCziBasezizdfMonadIOzuzdcfail = h$d();+var h$baseZCGHCziBasezizdfFunctorIO2 = h$d();+var h$baseZCGHCziBasezizdfFunctorIO1 = h$d();+var h$baseZCGHCziBasezizdfFunctorIO = h$d();+var h$baseZCGHCziBasezizdfMonadIO = h$d();+var h$baseZCGHCziBaseziDZCMonad = h$d();+var h$baseZCGHCziBaseziDZCFunctor = h$d();+var h$baseZCGHCziBasezizi = h$d();+var h$baseZCGHCziBaseziid = h$d();+var h$baseZCGHCziBasezireturn = h$d();+var h$baseZCGHCziBasezifmap = h$d();+var h$baseZCGHCziBasezizgzg = h$d();+var h$baseZCGHCziBasezizgzgze = h$d();+var h$baseZCGHCziBasezifail = h$d();+var h$baseZCForeignziStorablezizdfStorableCharzuzdcalignment = h$d();+var h$baseZCForeignziStorablezizdfStorableChar4 = h$d();+var h$baseZCForeignziStorablezizdfStorableChar3 = h$d();+var h$baseZCForeignziStorablezizdfStorableChar2 = h$d();+var h$baseZCForeignziStorablezizdfStorableChar1 = h$d();+var h$baseZCForeignziStorablezizdfStorableBool7 = h$p(4);+var h$baseZCForeignziStorablezizdfStorableChar = h$d();+var h$baseZCForeignziStorableziDZCStorable = h$d();+var h$baseZCForeignziStorablezipokeElemOff = h$d();+var h$baseZCForeignziStorablezipeekElemOff = h$d();+var h$baseZCForeignziMarshalziArrayzizdwa8 = h$d();+var h$baseZCForeignziMarshalziArrayzinewArray8 = h$d();+var h$baseZCForeignziMarshalziArrayzilengthArray2 = h$p(0);+h$di(h$baseZCForeignziMarshalziAlloczimallocBytes4);+h$di(h$baseZCForeignziMarshalziAlloczimallocBytes3);+var h$baseZCForeignziMarshalziAlloczimallocBytes2 = h$d();+var h$baseZCForeignziCziErrorzithrowErrnoIfMinus1Retry2 = h$d();+var h$baseZCForeignziCziErrorzithrowErrno1 = h$d();+var h$baseZCForeignziCziErrorzierrnoToIOError = h$d();+var h$baseZCDataziTypeableziInternalziTypeRep = h$d();+var h$baseZCDataziTypeableziInternalzizdWTypeRep = h$d();+var h$baseZCDataziTypeableziInternalziTyCon = h$d();+var h$baseZCDataziTypeableziInternalzizdWTyCon = h$d();+var h$baseZCDataziTypeablezicast = h$d();+var h$baseZCDataziTuplezisnd = h$d();+var h$baseZCDataziTuplezifst = h$d();+var h$baseZCDataziMaybeziJust = h$d();+var h$baseZCDataziMaybeziNothing = h$d();+var h$baseZCDataziListziwords = h$d();+var h$$D8 = h$d();+var h$baseZCDataziListzisortBy = h$d();+var h$baseZCDataziFunctorzizlzdzg = h$d();+var h$baseZCControlziMonadziforMzu = h$d();+var h$baseZCControlziMonadzimapMzu = h$d();+var h$baseZCControlziMonadzizezlzl = h$d();+var h$baseZCControlziExceptionziBasezizdfExceptionNonTerminationzuzdctoException = h$d();+var h$baseZCControlziExceptionziBasezizdfExceptionNonTermination = h$d();+var h$baseZCControlziExceptionziBasezizdfExceptionPatternMatchFailzuzdctoException = h$d();+var h$baseZCControlziExceptionziBasezizdfExceptionPatternMatchFail = h$d();+h$di(h$$Eq);+var h$baseZCControlziExceptionziBasezizdfShowPatternMatchFailzuzdcshowsPrec = h$d();+var h$baseZCControlziExceptionziBasezizdfShowPatternMatchFailzuzdcshow = h$d();+var h$baseZCControlziExceptionziBasezizdfShowPatternMatchFail1 = h$d();+var h$baseZCControlziExceptionziBasezizdfShowPatternMatchFailzuzdcshowList = h$d();+h$di(h$baseZCControlziExceptionziBasezizdfExceptionPatternMatchFailzuww5);+var h$baseZCControlziExceptionziBasezizdfExceptionPatternMatchFailzuzdctypeRepzh = h$d();+var h$baseZCControlziExceptionziBasezizdfExceptionPatternMatchFailzuzdcfromException = h$d();+var h$baseZCControlziExceptionziBasezizdfShowNonTerminationzuzdcshowsPrec = h$d();+var h$baseZCControlziExceptionziBasezizdfShowNonTerminationzuzdcshow = h$d();+h$di(h$baseZCControlziExceptionziBasezizdfShowNonTermination3);+var h$baseZCControlziExceptionziBasezizdfShowNonTermination2 = h$d();+var h$baseZCControlziExceptionziBasezizdfShowNonTermination1 = h$d();+var h$baseZCControlziExceptionziBasezizdfShowNonTerminationzuzdcshowList = h$d();+h$di(h$baseZCControlziExceptionziBasezizdfExceptionNonTerminationzuww5);+var h$baseZCControlziExceptionziBasezizdfExceptionNonTerminationzuzdctypeRepzh = h$d();+var h$baseZCControlziExceptionziBasezizdfExceptionNonTerminationzuzdcfromException = h$d();+h$di(h$baseZCControlziExceptionziBasezizdfExceptionNestedAtomically3);+h$di(h$baseZCControlziExceptionziBasezizdfExceptionNestedAtomicallyzuww4);+var h$baseZCControlziExceptionziBasezizdfExceptionNonTermination2 = h$d();+var h$baseZCControlziExceptionziBasezizdfExceptionNonTermination1 = h$d();+var h$baseZCControlziExceptionziBasezizdfExceptionPatternMatchFail2 = h$d();+var h$baseZCControlziExceptionziBasezizdfExceptionPatternMatchFail1 = h$d();+var h$baseZCControlziExceptionziBasezizdfShowPatternMatchFail = h$d();+var h$baseZCControlziExceptionziBasezizdfShowNonTermination = h$d();+var h$baseZCControlziExceptionziBaseziNonTermination = h$d();+var h$baseZCControlziExceptionziBaseziPatternMatchFail = h$d();+var h$baseZCControlziExceptionziBasezinonTermination = h$d();+var h$baseZCControlziExceptionziBasezipatError = h$d();+var h$$Fs = h$d();+var h$$Ft = h$d();+h$di(h$$Fu);+var h$$Fv = h$d();+h$di(h$$Fw);+var h$$Fx = h$d();+h$di(h$$Fy);+var h$$Fz = h$d();+h$di(h$$FA);+var h$$FB = h$d();+h$di(h$$FC);+var h$$FD = h$d();+h$di(h$$FE);+var h$$FF = h$d();+h$di(h$$FG);+var h$$FH = h$d();+h$di(h$$FI);+var h$$FJ = h$d();+h$di(h$$FK);+var h$$FL = h$d();+h$di(h$$FM);+var h$$FN = h$d();+h$di(h$$FO);+var h$$FP = h$d();+h$di(h$$FQ);+var h$$FR = h$d();+h$di(h$$FS);+var h$$FT = h$d();+h$di(h$$FU);+var h$$FV = h$d();+var h$$FW = h$d();+var h$mainZCMainzimain = h$d();+var h$mainZCZCMainzimain = h$d();+var h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzizdwsumzq1 = h$d();+var h$$IT = h$d();+var h$$IU = h$d();+var h$$IV = h$d();+var h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzizdwgo = h$d();+var h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzipackCircles3 = h$d();+var h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzipackCircles1 = h$d();+var h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzipackCircles2 = h$d();+var h$$IW = h$d();+h$di(h$$IX);+var h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzipackCircles4 = h$d();+var h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzizdssum1 = h$p(0.0);+var h$$IY = h$d();+var h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzipackCircles = h$d();+var h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziTypeszicastRef = h$d();+var h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziMarshalziDZCFromJSRef = h$d();+var h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziMarshalziDZCToJSRef = h$d();+var h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziMarshalzitoJSRef = h$d();+var h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziForeignzizdfToJSStringZMZN = h$d();+var h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziForeignzizdfFromJSStringZMZN = h$d();+var h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziForeignzijsFalse = h$d();+var h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziForeignzijsTrue = h$d();+var h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziForeignzitoJSString = h$d();+var h$$Jq = h$d();+var h$$Jr = h$d();+var h$$Js = h$d();+var h$$Jt = h$d();+var h$$Ju = h$d();+var h$$Jv = h$d();+var h$$Jw = h$d();+var h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvasziclearRect = h$d();+var h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvasziarc = h$d();+var h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvasziclosePath = h$d();+var h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvaszibeginPath = h$d();+var h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvaszifill = h$d();+var h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvaszigetContext = h$d();+var h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvaszijszufill = h$d();+var h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvaszijszubeginPath = h$d();+var h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvaszijszuclosePath = h$d();+var h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvaszijszuclearRect = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefUIEvent2 = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefUIEventzugo = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefUIEvent2 = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLInputElement2 = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLInputElementzugo = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefHTMLInputElement2 = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLCanvasElement2 = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLCanvasElementzugo = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefHTMLCanvasElement2 = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefElement2 = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefElementzugo = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefElement2 = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefDocument2 = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefDocumentzugo = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefDocument2 = h$d();+var h$$LF = h$d();+var h$$LG = h$d();+var h$$LH = h$d();+var h$$LI = h$d();+var h$$LJ = h$d();+var h$$LK = h$d();+var h$$LL = h$d();+var h$$LM = h$d();+var h$$LN = h$d();+var h$$LO = h$d();+var h$$LP = h$d();+var h$$LQ = h$d();+var h$$LR = h$d();+var h$$LS = h$d();+var h$$LT = h$d();+h$di(h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszicastToHTMLInputElement1);+h$di(h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszicastToHTMLCanvasElement1);+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszicastToBarProp2 = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdwcastTo = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefUIEventzuzdctoJSRef = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefUIEvent1 = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfGObjectClassUIEventzuzdcunsafeCastGObject = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefHTMLInputElementzuzdctoJSRef = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefHTMLInputElement1 = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfGObjectClassHTMLInputElementzuzdcunsafeCastGObject = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefHTMLCanvasElementzuzdctoJSRef = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefHTMLCanvasElement1 = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfGObjectClassHTMLCanvasElementzuzdcunsafeCastGObject = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefElementzuzdctoJSRef = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefElement1 = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfGObjectClassElementzuzdcunsafeCastGObject = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefDocumentzuzdctoJSRef = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefDocument1 = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfGObjectClassDocumentzuzdcunsafeCastGObject = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefUIEventzuzdcfromJSRef = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdwa124 = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefUIEvent1 = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLInputElementzuzdcfromJSRef = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdwa67 = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLInputElement1 = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLCanvasElementzuzdcfromJSRef = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdwa47 = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLCanvasElement1 = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefElementzuzdcfromJSRef = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdwa30 = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefElement1 = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefDocumentzuzdcfromJSRef = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdwa27 = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefDocument1 = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefDocument = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefDocument = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfIsDocumentDocument = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefElement = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefElement = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfIsElementElement = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefHTMLCanvasElement = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLCanvasElement = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfIsHTMLCanvasElementHTMLCanvasElement = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefHTMLInputElement = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLInputElement = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfIsHTMLInputElementHTMLInputElement = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefUIEvent = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefUIEvent = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypesziDZCGObjectClass = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypesziGObject = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfGObjectClassUIEvent = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfGObjectClassHTMLInputElement = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfGObjectClassHTMLCanvasElement = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfGObjectClassElement = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfGObjectClassDocument = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszicastToHTMLInputElement = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszicastToHTMLCanvasElement = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypesziunsafeCastGObject = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszitoGObject = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziHTMLInputElementzihtmlInputElementGetValue1 = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziHTMLInputElementzihtmlInputElementGetValue = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziHTMLCanvasElementzihtmlCanvasElementGetWidth1 = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziHTMLCanvasElementzihtmlCanvasElementGetHeight1 = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziHTMLCanvasElementzihtmlCanvasElementGetHeight = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziHTMLCanvasElementzihtmlCanvasElementGetWidth = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziEventTargetClosureszieventTargetAddEventListener1 = h$d();+h$di(h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziElementzielementOnkeyup2);+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziElementzielementOnkeyup1 = h$d();+h$di(h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziElementzielementOnchange2);+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziElementzielementOnchange1 = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziElementzielementOnkeyup = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziElementzielementOnchange = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziDocumentzizdwa30 = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziDocumentzidocumentGetElementById1 = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziDocumentzidocumentGetElementById = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMzicurrentDocument1 = h$d();+var h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMzicurrentDocument = h$d();+var h$transformerszm0zi4zi3zi0ZCControlziMonadziTransziReaderzizdfMonadTransReaderT1 = h$d();+var h$transformerszm0zi4zi3zi0ZCControlziMonadziTransziReaderzizdfMonadTransReaderT = h$d();+var h$transformerszm0zi4zi3zi0ZCControlziMonadziTransziClasszilift = h$d();+h$scheduleInit([h$ghczmprimZCGHCziTypesziGT_con_e, h$ghczmprimZCGHCziTypesziEQ_con_e, h$ghczmprimZCGHCziTypesziLT_con_e,+h$ghczmprimZCGHCziTypesziTrue_con_e, h$ghczmprimZCGHCziTypesziZMZN_con_e, h$ghczmprimZCGHCziTypesziIzh_e,+h$ghczmprimZCGHCziTypesziIzh_con_e, h$ghczmprimZCGHCziTypesziFalse_con_e, h$ghczmprimZCGHCziTypesziDzh_e,+h$ghczmprimZCGHCziTypesziDzh_con_e, h$ghczmprimZCGHCziTypesziZC_e, h$ghczmprimZCGHCziTypesziZC_con_e,+h$ghczmprimZCGHCziTypesziCzh_e, h$ghczmprimZCGHCziTypesziCzh_con_e, h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_e,+h$ghczmprimZCGHCziTupleziZLz2cUz2cUZR_con_e, h$ghczmprimZCGHCziTupleziZLz2cUZR_e,+h$ghczmprimZCGHCziTupleziZLz2cUZR_con_e, h$ghczmprimZCGHCziTupleziZLZR_con_e,+h$ghczmprimZCGHCziIntWord64ziintToInt64zh_e, h$ghczmprimZCGHCziClasseszizdfEqZMZNzuzdszdczeze_e, h$$a, h$$b, h$$c, h$$d,+h$$e, h$ghczmprimZCGHCziClasseszizdfOrdIntzuzdcmax_e, h$$f, h$$g, h$ghczmprimZCGHCziClasseszizdfOrdIntzuzdcmin_e, h$$h,+h$$i, h$ghczmprimZCGHCziClasseszizdfEqZMZNzuzdszdczsze_e, h$$j, h$ghczmprimZCGHCziClasseszizdfEqCharzuzdczeze_e, h$$k,+h$$l, h$ghczmprimZCGHCziClasseszizdfEqCharzuzdczsze_e, h$$m, h$$n, h$ghczmprimZCGHCziClassesziDZCOrd_e,+h$ghczmprimZCGHCziClassesziDZCOrd_con_e, h$ghczmprimZCGHCziClassesziDZCEq_e, h$ghczmprimZCGHCziClassesziDZCEq_con_e,+h$ghczmprimZCGHCziClasseszimodIntzh_e, h$ghczmprimZCGHCziClasseszidivIntzh_e, h$ghczmprimZCGHCziClasseszicompareIntzh_e,+h$ghczmprimZCGHCziClasseszicompareInt_e, h$$o, h$$p, h$ghczmprimZCGHCziClasseszileInt_e, h$$q, h$$r,+h$ghczmprimZCGHCziClassesziltInt_e, h$$s, h$$t, h$ghczmprimZCGHCziClasseszigeInt_e, h$$u, h$$v,+h$ghczmprimZCGHCziClasseszigtInt_e, h$$w, h$$x, h$ghczmprimZCGHCziClasseszineInt_e, h$$y, h$$z,+h$ghczmprimZCGHCziClasseszieqInt_e, h$$A, h$$B, h$ghczmprimZCGHCziClasseszizeze_e, h$$C,+h$ghczmprimZCGHCziCStringziunpackAppendCStringzh_e, h$$D, h$$E, h$ghczmprimZCGHCziCStringziunpackCStringzh_e, h$$F,+h$$G, h$ghczmprimZCGHCziCStringziunpackFoldrCStringzh_e, h$$H, h$$I, h$ghczmprimZCGHCziCStringziunpackCStringUtf8zh_e,+h$$J, h$$K, h$$L, h$$M, h$$N, h$ghcjszmprimZCGHCJSziPrimziInternalziblockedIndefinitelyOnSTM_e,+h$ghcjszmprimZCGHCJSziPrimziInternalziblockedIndefinitelyOnMVar_e, h$ghcjszmprimZCGHCJSziPrimziInternalziwouldBlock_e,+h$ghcjszmprimZCGHCJSziPrimzigetProp1_e, h$$O, h$$P,+h$ghcjszmprimZCGHCJSziPrimzizdfExceptionWouldBlockExceptionzuzdctoException_e,+h$ghcjszmprimZCGHCJSziPrimzizdfExceptionJSExceptionzuzdctoException_e,+h$ghcjszmprimZCGHCJSziPrimzizdfShowWouldBlockExceptionzuzdcshowsPrec_e, h$$Q, h$$R,+h$ghcjszmprimZCGHCJSziPrimzizdfShowWouldBlockExceptionzuzdcshow_e, h$$S, h$ghcjszmprimZCGHCJSziPrimzizdwzdcshowsPrec_e,+h$$T, h$$U, h$$V, h$ghcjszmprimZCGHCJSziPrimzizdfShowWouldBlockException1_e, h$$W,+h$ghcjszmprimZCGHCJSziPrimzizdfShowWouldBlockExceptionzuzdcshowList_e,+h$ghcjszmprimZCGHCJSziPrimzizdfExceptionWouldBlockExceptionzuzdctypeRepzh_e,+h$ghcjszmprimZCGHCJSziPrimzizdfExceptionWouldBlockExceptionzuzdcfromException_e, h$$X, h$$Y,+h$ghcjszmprimZCGHCJSziPrimzizdfShowJSExceptionzuzdcshowsPrec_e, h$$Z, h$$aa,+h$ghcjszmprimZCGHCJSziPrimzizdfShowJSExceptionzuzdcshow_e, h$$ab, h$ghcjszmprimZCGHCJSziPrimzizdfShowJSException2_e,+h$ghcjszmprimZCGHCJSziPrimzizdfShowJSException1_e, h$$ac, h$$ad,+h$ghcjszmprimZCGHCJSziPrimzizdfShowJSExceptionzuzdcshowList_e,+h$ghcjszmprimZCGHCJSziPrimzizdfExceptionJSExceptionzuzdctypeRepzh_e,+h$ghcjszmprimZCGHCJSziPrimzizdfExceptionJSExceptionzuzdcfromException_e, h$$ae, h$$af,+h$ghcjszmprimZCGHCJSziPrimziWouldBlockException_e, h$ghcjszmprimZCGHCJSziPrimziWouldBlockException_con_e,+h$ghcjszmprimZCGHCJSziPrimziJSException_e, h$ghcjszmprimZCGHCJSziPrimziJSException_con_e,+h$ghcjszmprimZCGHCJSziPrimziJSRef_e, h$ghcjszmprimZCGHCJSziPrimziJSRef_con_e, h$ghcjszmprimZCGHCJSziPrimzitoJSString_e,+h$$ag, h$$ah, h$ghcjszmprimZCGHCJSziPrimzifromJSString_e, h$ghcjszmprimZCGHCJSziPrimzijszufromJSString_e, h$$ai,+h$integerzmgmpZCGHCziIntegerziTypezishiftRInteger_e, h$$aj, h$integerzmgmpZCGHCziIntegerziTypezishiftLInteger_e, h$$ak,+h$integerzmgmpZCGHCziIntegerziTypeziandInteger_e, h$$al, h$$am, h$$an,+h$integerzmgmpZCGHCziIntegerziTypeziquotRemInteger_e, h$$ao, h$$ap, h$$aq,+h$integerzmgmpZCGHCziIntegerziTypeziremInteger_e, h$$ar, h$$as, h$$at,+h$integerzmgmpZCGHCziIntegerziTypeziquotInteger_e, h$$au, h$$av, h$$aw,+h$integerzmgmpZCGHCziIntegerziTypeziminusInteger_e, h$$ax, h$$ay, h$$az,+h$integerzmgmpZCGHCziIntegerziTypeziplusInteger_e, h$$aA, h$$aB, h$$aC,+h$integerzmgmpZCGHCziIntegerziTypezitimesInteger_e, h$$aD, h$$aE, h$$aF,+h$integerzmgmpZCGHCziIntegerziTypezigcdInteger_e, h$$aG, h$$aH, h$$aI, h$$aJ, h$$aK, h$$aL, h$$aM, h$$aN, h$$aO, h$$aP,+h$integerzmgmpZCGHCziIntegerziTypeziabsInt_e, h$integerzmgmpZCGHCziIntegerziTypezigcdInt_e,+h$integerzmgmpZCGHCziIntegerziTypeziminIntAsBig_e, h$integerzmgmpZCGHCziIntegerziTypeziencodeDoublezh_e,+h$integerzmgmpZCGHCziIntegerziTypeziintzuencodeDoublezh_e, h$integerzmgmpZCGHCziIntegerziTypeziJzh_e,+h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, h$integerzmgmpZCGHCziIntegerziTypeziSzh_e,+h$integerzmgmpZCGHCziIntegerziTypeziSzh_con_e, h$integerzmgmpZCGHCziIntegerziTypeziint64ToInteger_e,+h$integerzmgmpZCGHCziIntegerziTypeziencodeDoubleInteger_e, h$$aQ,+h$integerzmgmpZCGHCziIntegerziTypezidoubleFromInteger_e, h$$aR, h$integerzmgmpZCGHCziIntegerziTypezicompareInteger_e,+h$$aS, h$$aT, h$$aU, h$integerzmgmpZCGHCziIntegerziTypezigeIntegerzh_e, h$$aV, h$$aW, h$$aX,+h$integerzmgmpZCGHCziIntegerziTypeziltIntegerzh_e, h$$aY, h$$aZ, h$$a0,+h$integerzmgmpZCGHCziIntegerziTypezigtIntegerzh_e, h$$a1, h$$a2, h$$a3,+h$integerzmgmpZCGHCziIntegerziTypezileIntegerzh_e, h$$a4, h$$a5, h$$a6,+h$integerzmgmpZCGHCziIntegerziTypezisignumInteger_e, h$$a7, h$integerzmgmpZCGHCziIntegerziTypeziabsInteger_e, h$$a8,+h$integerzmgmpZCGHCziIntegerziTypezieqIntegerzh_e, h$$a9, h$$ba, h$$bb,+h$integerzmgmpZCGHCziIntegerziTypezinegateInteger_e, h$$bc, h$integerzmgmpZCGHCziIntegerziTypeziintegerToInt64_e, h$$bd,+h$integerzmgmpZCGHCziIntegerziTypeziintegerToInt_e, h$$be, h$integerzmgmpZCGHCziIntegerziTypezismallInteger_e,+h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziintegerLog2zhzugo_e, h$$bk,+h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziintegerLog2zhzustep_e, h$$bl, h$$bm, h$$bn, h$$bo, h$$bp,+h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziBA_e,+h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziBA_con_e, h$$bq, h$$br, h$$bs,+h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziroundingModezh_e, h$$bt, h$$bu, h$$bv, h$$bw, h$$bx, h$$by,+h$integerzmgmpZCGHCziIntegerziLogarithmsziInternalsziintegerLog2zh_e, h$$bz, h$$bA,+h$integerzmgmpZCGHCziIntegerziGMPziPrimziintegerToInt64zh_e, h$baseZCUnsafeziCoerceziunsafeCoerce1_e,+h$baseZCTextziReadziLexzinumberToFixedzuzdsval_e, h$$bC, h$$bD, h$$bE, h$$bF, h$$bG, h$$bH, h$$bI, h$$bJ, h$$bK, h$$bL,+h$$bM, h$$bN, h$$bO, h$$bP, h$$bQ, h$$bR, h$$bS, h$$bT, h$$bU, h$$bV, h$$bW, h$$bX, h$$bY, h$$bZ, h$$b0, h$$b1, h$$b2,+h$$b3, h$$b4, h$$b5, h$$b6, h$$b7, h$$b8, h$$b9, h$$ca, h$$cb, h$$cc, h$$cd, h$$ce, h$$cf, h$$cg, h$$ch, h$$ci, h$$cj,+h$$ck, h$$cl, h$$cm, h$$cn, h$$co, h$$cp, h$$cq, h$$cr, h$$cs, h$$ct, h$$cu, h$$cv, h$$cw, h$$cx, h$$cy, h$$cz, h$$cA,+h$$cB, h$$cC, h$$cD, h$$cE, h$$cF, h$$cG, h$$cH, h$$cI, h$$cJ, h$$cK, h$$cL, h$$cM, h$$cN, h$$cO, h$$cP, h$$cQ, h$$cR,+h$$cS, h$$cT, h$$cU, h$$cV, h$$cW, h$$cX, h$$cY, h$$cZ, h$$c0, h$$c1, h$$c2, h$$c3, h$$c4, h$$c5, h$$c6, h$$c7, h$$c8,+h$$c9, h$$da, h$$db, h$$dc, h$$dd, h$$de, h$$df, h$$dg, h$$dh, h$$di, h$$dj, h$$dk, h$$dl, h$$dm, h$$dn, h$$dp, h$$dq,+h$$dr, h$$ds, h$$dt, h$$du, h$$dv, h$$dw, h$$dx, h$$dy, h$$dz, h$$dA, h$$dB, h$$dC, h$$dD, h$$dE, h$$dF, h$$dG, h$$dH,+h$$dI, h$$dJ, h$$dK, h$$dL, h$$dM, h$$dN, h$$dO, h$$dP, h$$dQ, h$$dR, h$$dS, h$$dT, h$$dU, h$$dV, h$$dW, h$$dX, h$$dY,+h$$dZ, h$$d0, h$$d1, h$$d2, h$$d3, h$$d4, h$$d5, h$$d6, h$$d7, h$$d8, h$$d9, h$$ea, h$$eb, h$$ec, h$$ed, h$$ee, h$$ef,+h$$eg, h$$eh, h$$ei, h$$ej, h$$ek, h$$el, h$$em, h$$en, h$$eo, h$$ep, h$$eq, h$$er, h$$es, h$$et, h$$eu, h$$ev, h$$ew,+h$$ex, h$$ey, h$$ez, h$$eA, h$$eB, h$$eC, h$$eD, h$$eE, h$$eF, h$$eG, h$$eH, h$$eI, h$$eJ, h$$eK, h$$eL, h$$eM, h$$eN,+h$$eO, h$$eP, h$$eQ, h$$eR, h$$eS, h$$eT, h$$eU, h$$eV, h$$eW, h$$eX, h$$eY, h$$eZ, h$$e0, h$$e1, h$$e2, h$$e3, h$$e4,+h$$e5, h$$e6, h$$e7, h$$e8, h$$e9, h$$fa, h$$fb, h$$fc, h$$fd, h$$fe, h$$ff, h$$fg, h$$fh, h$$fi, h$$fj, h$$fk, h$$fl,+h$$fm, h$$fn, h$$fo, h$$fp, h$$fq, h$$fr, h$$fs, h$$ft, h$$fu, h$$fv, h$$fw, h$$fx, h$$fy, h$$fz, h$$fA, h$$fB, h$$fC,+h$$fD, h$$fE, h$$fF, h$$fG, h$$fH, h$$fI, h$$fJ, h$$fK, h$$fL, h$$fM, h$$fN, h$$fO, h$$fP, h$$fQ, h$$fR, h$$fS, h$$fT,+h$$fU, h$$fV, h$$fW, h$$fX, h$$fY, h$$fZ, h$$f0, h$$f1, h$$f2, h$$f3, h$$f4, h$$f5, h$$f6, h$$f7, h$$f8, h$$f9, h$$ga,+h$$gb, h$$gc, h$$gd, h$$ge, h$baseZCTextziReadziLexzireadDecP2_e, h$baseZCTextziReadziLexzizdwnumberToRational_e, h$$gf,+h$$gg, h$$gh, h$$gi, h$$gj, h$$gk, h$$gl, h$$gm, h$$gn, h$$go, h$$gp, h$$gq, h$$gr, h$$gs, h$$gt, h$$gu, h$$gv, h$$gw,+h$$gx, h$$gy, h$$gz, h$$gA, h$$gB, h$baseZCTextziReadziLexzinumberToRangedRational1_e,+h$baseZCTextziReadziLexzizdwnumberToRangedRational_e, h$$gC, h$$gD, h$$gE, h$$gF, h$$gG, h$$gH, h$$gI, h$$gJ, h$$gK,+h$$gL, h$$gM, h$$gN, h$$gO, h$$gP, h$$gQ, h$$gR, h$$gS, h$$gT, h$$gU, h$$gV, h$baseZCTextziReadziLexzilexChar2_e, h$$gW,+h$$gX, h$$gY, h$$gZ, h$$g0, h$$g1, h$$g2, h$$g3, h$$g4, h$$g5, h$$g6, h$$g7, h$$g8, h$$g9, h$$ha, h$$hb, h$$hc, h$$hd,+h$$he, h$$hf, h$$hg, h$$hh, h$$hi, h$$hj, h$$hk, h$$hl, h$$hm, h$$hn, h$$ho, h$$hp, h$$hq, h$$hr, h$$hs, h$$ht, h$$hu,+h$$hv, h$$hw, h$$hx, h$$hy, h$$hz, h$$hA, h$$hB, h$$hC, h$$hD, h$$hE, h$$hF, h$$hG, h$$hH, h$$hI, h$$hJ, h$$hK, h$$hL,+h$$hM, h$$hN, h$baseZCTextziReadziLexziexpect2_e, h$$hO, h$$hP, h$$hQ, h$$hR, h$$hS, h$$hT, h$$hU, h$$hV, h$$hW, h$$hX,+h$$hY, h$$hZ, h$$h0, h$$h1, h$$h2, h$$h3, h$$h4, h$$h5, h$$h6, h$$h7, h$$h8, h$$h9, h$$ia, h$$ib, h$$ic, h$$id, h$$ie,+h$$ig, h$$ih, h$$ii, h$$ij, h$$ik, h$$il, h$$im, h$$io, h$$ip, h$$iq, h$$ir, h$$is, h$baseZCTextziReadziLexziEOF_con_e,+h$baseZCTextziReadziLexziNumber_e, h$baseZCTextziReadziLexziNumber_con_e, h$baseZCTextziReadziLexziSymbol_e,+h$baseZCTextziReadziLexziSymbol_con_e, h$baseZCTextziReadziLexziIdent_e, h$baseZCTextziReadziLexziIdent_con_e,+h$baseZCTextziReadziLexziPunc_e, h$baseZCTextziReadziLexziPunc_con_e, h$baseZCTextziReadziLexziString_e,+h$baseZCTextziReadziLexziString_con_e, h$baseZCTextziReadziLexziChar_e, h$baseZCTextziReadziLexziChar_con_e,+h$baseZCTextziReadziLexziMkDecimal_e, h$baseZCTextziReadziLexziMkDecimal_con_e, h$baseZCTextziReadziLexziMkNumber_e,+h$baseZCTextziReadziLexziMkNumber_con_e, h$baseZCTextziReadzireadEither6_e, h$$ly, h$$lz, h$$lA, h$$lB,+h$baseZCTextziReadzireadEither5_e, h$$lC, h$$lD, h$baseZCTextziReadziread_e, h$$lE, h$$lF, h$$lG, h$$lH, h$$lI,+h$baseZCTextziParserCombinatorsziReadPzirun_e, h$$lJ, h$$lK, h$$lL, h$$lM, h$$lN,+h$baseZCTextziParserCombinatorsziReadPzizdfMonadPlusPzuzdcmplus_e, h$$lO, h$$lP, h$$lQ, h$$lR, h$$lS, h$$lT, h$$lU,+h$$lV, h$$lW, h$$lX, h$$lY, h$$lZ, h$$l0, h$$l1, h$$l2, h$$l3, h$$l4, h$$l5, h$$l6, h$$l7, h$$l8, h$$l9, h$$ma, h$$mb,+h$$mc, h$$md, h$$me, h$$mf, h$$mg, h$$mh, h$$mi, h$$mj, h$$mk,+h$baseZCTextziParserCombinatorsziReadPzizdfMonadPzuzdczgzgze_e, h$$ml, h$$mm, h$$mn, h$$mo, h$$mp, h$$mq, h$$mr, h$$ms,+h$$mt, h$$mu, h$$mv, h$$mw, h$$mx, h$$my, h$baseZCTextziParserCombinatorsziReadPzichoice_e, h$$mz, h$$mA, h$$mB, h$$mC,+h$$mD, h$$mE, h$baseZCTextziParserCombinatorsziReadPziskipSpaceszuskip_e, h$$mF, h$$mG, h$$mH, h$$mI, h$$mJ, h$$mK,+h$baseZCTextziParserCombinatorsziReadPzizlzpzp2_e, h$$mL, h$$mM, h$$mN, h$$mO,+h$baseZCTextziParserCombinatorsziReadPzistring2_e, h$baseZCTextziParserCombinatorsziReadPzizdwa6_e, h$$mP, h$$mQ, h$$mR,+h$$mS, h$$mT, h$$mU, h$$mV, h$$mW, h$$mX, h$$mY, h$$mZ, h$baseZCTextziParserCombinatorsziReadPzimunch3_e,+h$baseZCTextziParserCombinatorsziReadPzizdwa3_e, h$$m0, h$$m1, h$$m2, h$$m3, h$$m4, h$$m5, h$$m6, h$$m7, h$$m8,+h$baseZCTextziParserCombinatorsziReadPzizdwa_e, h$$m9, h$$na, h$$nb, h$$nc, h$$nd, h$$ne, h$$nf, h$$ng, h$$nh, h$$ni,+h$baseZCTextziParserCombinatorsziReadPzipfail1_e, h$baseZCTextziParserCombinatorsziReadPzizdfMonadPzuzdcreturn_e,+h$baseZCTextziParserCombinatorsziReadPziFinal_e, h$baseZCTextziParserCombinatorsziReadPziFinal_con_e,+h$baseZCTextziParserCombinatorsziReadPziResult_e, h$baseZCTextziParserCombinatorsziReadPziResult_con_e,+h$baseZCTextziParserCombinatorsziReadPziFail_con_e, h$baseZCTextziParserCombinatorsziReadPziLook_e,+h$baseZCTextziParserCombinatorsziReadPziLook_con_e, h$baseZCTextziParserCombinatorsziReadPziGet_e,+h$baseZCTextziParserCombinatorsziReadPziGet_con_e, h$baseZCSystemziPosixziInternalszisetEcho2_e,+h$baseZCSystemziPosixziInternalszisetEcho1_e, h$$nl, h$$nm, h$$nn, h$$no, h$$np,+h$baseZCSystemziPosixziInternalszisetCooked5_e, h$baseZCSystemziPosixziInternalszisetCooked4_e,+h$baseZCSystemziPosixziInternalszisetCooked3_e, h$baseZCSystemziPosixziInternalszisetCooked2_e,+h$baseZCSystemziPosixziInternalszisetCooked1_e, h$$nq, h$$nr, h$$ns, h$$nt, h$$nu, h$$nv, h$$nw, h$$nx, h$$ny,+h$baseZCSystemziPosixziInternalszigetEcho4_e, h$$nz, h$$nA, h$$nB, h$$nC, h$$nD, h$$nE, h$$nF, h$$nG, h$$nH, h$$nI,+h$$nJ, h$$nK, h$$nL, h$$nM, h$$nN, h$baseZCSystemziPosixziInternalszigetEcho3_e,+h$baseZCSystemziPosixziInternalszigetEcho2_e, h$$nO, h$$nP, h$$nQ, h$baseZCSystemziPosixziInternalszifdStat1_e, h$$nR,+h$$nS, h$$nT, h$$nU, h$$nV, h$baseZCSystemziPosixziInternalszifdFileSizzezupred_e, h$$nW,+h$baseZCSystemziPosixziInternalszifdFileSizze1_e, h$$nX, h$$nY, h$$nZ, h$$n0, h$$n1, h$baseZCGHCziWordziW32zh_e,+h$baseZCGHCziWordziW32zh_con_e, h$baseZCGHCziWordziW64zh_e, h$baseZCGHCziWordziW64zh_con_e,+h$baseZCGHCziUnicodezizdwisSpace_e, h$baseZCGHCziUnicodeziisSpace_e, h$$n6, h$baseZCGHCziUnicodeziisAlpha_e, h$$n7,+h$baseZCGHCziUnicodeziisAlphaNum_e, h$$n8, h$baseZCGHCziTopHandlerzirunIO3_e, h$$n9, h$baseZCGHCziTopHandlerzirunIO2_e,+h$$oa, h$$ob, h$$oc, h$$od, h$$oe, h$$of, h$$og, h$$oh, h$$oi, h$$oj, h$$ok, h$$ol, h$$om, h$$on, h$$oo, h$$op, h$$oq,+h$$or, h$$os, h$$ot, h$$ou, h$$ov, h$$ow, h$$ox, h$$oy, h$$oz, h$$oA, h$$oB, h$$oC, h$$oD, h$$oE, h$$oF, h$$oG, h$$oH,+h$$oI, h$$oJ, h$$oK, h$$oL, h$$oM, h$$oN, h$$oO, h$$oP, h$$oQ, h$$oR, h$baseZCGHCziTopHandlerzirunMainIO1_e, h$$oS,+h$baseZCGHCziTopHandlerziflushStdHandles4_e, h$baseZCGHCziTopHandlerziflushStdHandles3_e, h$$oT,+h$baseZCGHCziTopHandlerziflushStdHandles2_e, h$baseZCGHCziTopHandlerzitopHandler_e,+h$baseZCGHCziTopHandlerzirunMainIO_e, h$baseZCGHCziStorableziwriteWideCharOffPtr1_e, h$$o0, h$$o1, h$$o2,+h$baseZCGHCziStorablezireadWideCharOffPtr1_e, h$$o3, h$$o4, h$baseZCGHCziShowzizdwitoszq_e,+h$baseZCGHCziShowzishowLitString_e, h$$o5, h$$o6, h$$o7, h$$o8, h$baseZCGHCziShowzizdwshowLitChar_e, h$$o9, h$$pa,+h$$pb, h$$pc, h$$pd, h$$pe, h$$pf, h$$pg, h$$ph, h$baseZCGHCziShowzizdwitos_e, h$$pi, h$$pj, h$$pk, h$$pl, h$$pm, h$$pn,+h$baseZCGHCziShowzizdwshowSignedInt_e, h$$po, h$$pp, h$baseZCGHCziShowziDZCShow_e, h$baseZCGHCziShowziDZCShow_con_e,+h$baseZCGHCziShowzishowListzuzu_e, h$$pq, h$$pr, h$$ps, h$$pt, h$$pu, h$$pv, h$$pw, h$baseZCGHCziShowzishowsPrec_e,+h$$px, h$baseZCGHCziSTRefziSTRef_e, h$baseZCGHCziSTRefziSTRef_con_e, h$$pK, h$$pL, h$$pM, h$$pN, h$$pO, h$$pP, h$$pQ,+h$$pR, h$$pS, h$$pT, h$baseZCGHCziRealzizczuf2_e, h$$pU, h$$pV, h$$pW, h$$pX, h$$pY, h$$pZ, h$$p0, h$$p1,+h$baseZCGHCziRealzizczuzdszc2_e, h$$p2, h$$p3, h$baseZCGHCziRealzizc3_e, h$baseZCGHCziRealzizdfIntegralIntzuzdcquot_e,+h$$p4, h$$p5, h$baseZCGHCziRealzizdfIntegralIntzuzdcrem_e, h$$p6, h$$p7, h$baseZCGHCziRealzizdwzdcdiv_e,+h$baseZCGHCziRealzizdfIntegralIntzuzdcdiv_e, h$$p8, h$$p9, h$$qa, h$baseZCGHCziRealzizdfIntegralIntzuzdcmod_e, h$$qb,+h$$qc, h$$qd, h$baseZCGHCziRealzizdfIntegralIntzuzdcquotRem_e, h$$qe, h$$qf,+h$baseZCGHCziRealzizdfIntegralIntzuzdcdivMod_e, h$$qg, h$$qh, h$baseZCGHCziRealzizdfIntegralIntzuzdctoInteger_e, h$$qi,+h$baseZCGHCziRealzizdfEnumRatiozuzdctoRational_e, h$$qj, h$$qk, h$baseZCGHCziRealzizdwzdsreduce_e, h$$ql, h$$qm, h$$qn,+h$$qo, h$$qp, h$baseZCGHCziRealziDZCFractional_e, h$baseZCGHCziRealziDZCFractional_con_e,+h$baseZCGHCziRealziDZCIntegral_e, h$baseZCGHCziRealziDZCIntegral_con_e, h$baseZCGHCziRealziDZCReal_e,+h$baseZCGHCziRealziDZCReal_con_e, h$baseZCGHCziRealziZCzv_e, h$baseZCGHCziRealziZCzv_con_e,+h$baseZCGHCziRealzizdWZCzv_e, h$$qq, h$$qr, h$baseZCGHCziRealzioverflowError_e,+h$baseZCGHCziRealziratioZZeroDenominatorError_e, h$baseZCGHCziRealzidivZZeroError_e, h$baseZCGHCziRealzizs_e, h$$qs,+h$baseZCGHCziRealzitoInteger_e, h$$qt, h$baseZCGHCziRealzifromIntegral_e, h$$qu,+h$baseZCGHCziReadzizdfReadDoublezuzdcreadsPrec_e, h$$qy, h$baseZCGHCziReadzizdfReadDouble11_e,+h$baseZCGHCziReadzizdfReadDoublezuzdsreadListDefault_e, h$baseZCGHCziReadzizdfReadDouble10_e, h$$qz, h$$qA, h$$qB,+h$$qC, h$$qD, h$$qE, h$$qF, h$$qG, h$$qH, h$$qI, h$$qJ, h$$qK, h$$qL, h$$qM, h$$qN, h$$qO, h$$qP, h$$qQ,+h$baseZCGHCziReadzizdfReadDouble9_e, h$baseZCGHCziReadzizdfReadDouble6_e, h$baseZCGHCziReadzizdfReadDouble5_e,+h$baseZCGHCziReadzizdfReadDouble4_e, h$baseZCGHCziReadzizdfReadDouble3_e,+h$baseZCGHCziReadzizdfReadDoublezuzdsconvertFrac_e, h$$qR, h$$qS, h$$qT, h$$qU, h$$qV, h$$qW, h$$qX,+h$baseZCGHCziReadzizdfReadDouble2_e, h$baseZCGHCziReadzizdfReadDouble1_e, h$baseZCGHCziReadzizdwa3_e, h$$qY, h$$qZ,+h$$q0, h$$q1, h$$q2, h$$q3, h$$q4, h$$q5, h$$q6, h$$q7, h$$q8, h$$q9, h$$ra, h$$rb, h$$rc, h$baseZCGHCziReadzizdwa_e,+h$$rd, h$$re, h$$rf, h$$rg, h$$rh, h$$ri, h$$rj, h$$rk, h$$rl, h$$rm, h$$rn, h$$ro, h$$rp, h$$rq, h$$rr, h$$rs, h$$rt,+h$$ru, h$$rv, h$$rw, h$$rx, h$$ry, h$$rz, h$$rA, h$$rB, h$$rC, h$$rD, h$$rE, h$$rF, h$$rG, h$baseZCGHCziReadziDZCRead_e,+h$baseZCGHCziReadziDZCRead_con_e, h$baseZCGHCziPtrziPtr_e, h$baseZCGHCziPtrziPtr_con_e,+h$baseZCGHCziNumzizdfNumIntzuzdczp_e, h$$rJ, h$$rK, h$baseZCGHCziNumzizdfNumIntzuzdczt_e, h$$rL, h$$rM,+h$baseZCGHCziNumzizdfNumIntzuzdczm_e, h$$rN, h$$rO, h$baseZCGHCziNumzizdfNumIntzuzdcnegate_e, h$$rP,+h$baseZCGHCziNumzizdfNumIntzuzdcabs_e, h$$rQ, h$baseZCGHCziNumzizdfNumIntzuzdcsignum_e, h$$rR,+h$baseZCGHCziNumzizdfNumIntzuzdcfromInteger_e, h$$rS, h$baseZCGHCziNumziDZCNum_e, h$baseZCGHCziNumziDZCNum_con_e,+h$baseZCGHCziNumzizt_e, h$$rT, h$baseZCGHCziNumzizp_e, h$$rU, h$baseZCGHCziNumzifromInteger_e, h$$rV,+h$baseZCGHCziMVarziMVar_e, h$baseZCGHCziMVarziMVar_con_e, h$baseZCGHCziListziznznzusub_e, h$$rW,+h$baseZCGHCziListzielem_e, h$$rX, h$$rY, h$baseZCGHCziListziall_e, h$$rZ, h$$r0, h$baseZCGHCziListzizdwbreak_e, h$$r1,+h$$r2, h$$r3, h$$r4, h$$r5, h$$r6, h$$r7, h$$r8, h$baseZCGHCziListzizdwspan_e, h$$r9, h$$sa, h$$sb, h$$sc, h$$sd, h$$se,+h$$sf, h$$sg, h$baseZCGHCziListzidropWhile_e, h$$sh, h$$si, h$baseZCGHCziListzizdwlenAcc_e, h$$sj,+h$baseZCGHCziListzizzip_e, h$$sk, h$$sl, h$$sm, h$baseZCGHCziListzifoldr2_e, h$$sn, h$$so, h$$sp, h$$sq,+h$baseZCGHCziListzizzipWith_e, h$$sr, h$$ss, h$$st, h$$su, h$baseZCGHCziListzifilter_e, h$$sv, h$$sw, h$$sx,+h$baseZCGHCziListzifilterFB_e, h$$sy, h$$sz, h$baseZCGHCziListzicycle1_e, h$baseZCGHCziListziznzn1_e,+h$baseZCGHCziListzicycle_e, h$$sA, h$$sB, h$baseZCGHCziIntzizdfEqInt64zuzdczeze_e, h$$sG, h$$sH,+h$baseZCGHCziIntziI32zh_e, h$baseZCGHCziIntziI32zh_con_e, h$baseZCGHCziIntziI64zh_e, h$baseZCGHCziIntziI64zh_con_e,+h$baseZCGHCziIOziHandleziTypesziNewlineMode_e, h$baseZCGHCziIOziHandleziTypesziNewlineMode_con_e,+h$baseZCGHCziIOziHandleziTypesziFileHandle_e, h$baseZCGHCziIOziHandleziTypesziFileHandle_con_e,+h$baseZCGHCziIOziHandleziTypeszizdWFileHandle_e, h$$sI, h$baseZCGHCziIOziHandleziTypesziHandlezuzu_e,+h$baseZCGHCziIOziHandleziTypesziHandlezuzu_con_e, h$baseZCGHCziIOziHandleziTypeszizdWHandlezuzu_e, h$$sJ, h$$sK, h$$sL,+h$$sM, h$$sN, h$baseZCGHCziIOziHandleziTypesziLF_con_e, h$baseZCGHCziIOziHandleziTypesziBlockBuffering_e,+h$baseZCGHCziIOziHandleziTypesziBlockBuffering_con_e, h$baseZCGHCziIOziHandleziTypesziLineBuffering_con_e,+h$baseZCGHCziIOziHandleziTypesziNoBuffering_con_e, h$baseZCGHCziIOziHandleziTypesziWriteHandle_con_e,+h$baseZCGHCziIOziHandleziTypesziBufferListNil_con_e, h$baseZCGHCziIOziHandleziInternalszizdwa2_e, h$$sO, h$$sP, h$$sQ,+h$$sR, h$$sS, h$$sT, h$$sU, h$$sV, h$$sW, h$baseZCGHCziIOziHandleziInternalsziwithHandlezq1_e, h$$sX, h$$sY, h$$sZ,+h$$s0, h$$s1, h$baseZCGHCziIOziHandleziInternalsziwantWritableHandle2_e, h$$s2, h$$s3, h$$s4, h$$s5, h$$s6, h$$s7,+h$$s8, h$$s9, h$$ta, h$$tb, h$$tc, h$$td, h$$te, h$$tf, h$$tg, h$$th, h$$ti, h$$tj, h$$tk, h$$tl, h$$tm, h$$tn, h$$to,+h$$tp, h$$tq, h$$tr, h$$ts, h$$tt, h$$tu, h$$tv, h$$tw, h$baseZCGHCziIOziHandleziInternalsziwantWritableHandle1_e,+h$$tx, h$baseZCGHCziIOziHandleziInternalszimkDuplexHandle5_e, h$$ty, h$$tz, h$$tA, h$$tB, h$$tC, h$$tD, h$$tE, h$$tF,+h$$tG, h$$tH, h$$tI, h$$tJ, h$$tK, h$$tL, h$$tM, h$$tN, h$$tO, h$$tP, h$$tQ, h$$tR, h$$tS, h$$tT, h$$tU, h$$tV, h$$tW,+h$$tX, h$$tY, h$$tZ, h$$t0, h$baseZCGHCziIOziHandleziInternalsziflushWriteBuffer1_e, h$$t1, h$$t2, h$$t3, h$$t4, h$$t5,+h$baseZCGHCziIOziHandleziInternalszidecodeByteBuf2_e, h$baseZCGHCziIOziHandleziInternalszizdwa_e, h$$t6, h$$t7, h$$t8,+h$$t9, h$$ua, h$$ub, h$$uc, h$$ud, h$$ue, h$$uf, h$$ug, h$baseZCGHCziIOziHandleziInternalsziioezufinalizzedHandle_e,+h$baseZCGHCziIOziHandleziInternalsziaugmentIOError_e, h$$uh, h$$ui, h$$uj, h$$uk, h$$uq, h$$ur, h$$us, h$$ut, h$$uu,+h$$uv, h$$uw, h$$ux, h$$uy, h$$uz, h$$uA, h$$uB, h$$uC, h$$uD, h$$uE, h$$uF, h$$uG, h$$uH, h$$uI, h$$uJ, h$$uK, h$$uL,+h$$uM, h$$uN, h$$uO, h$$uP, h$$uQ, h$$uR, h$$uS, h$$uT, h$$uU, h$$uV, h$$uW, h$$uX, h$$uY, h$$uZ,+h$baseZCGHCziIOziHandleziFDzistderr_e, h$baseZCGHCziIOziHandleziFDzistdout_e, h$baseZCGHCziIOziHandlezihFlush1_e,+h$baseZCGHCziIOziHandlezihFlush_e, h$baseZCGHCziIOziFDzizdwa2_e, h$$u7, h$$u8, h$$u9, h$$va, h$$vb, h$$vc, h$$vd, h$$ve,+h$$vf, h$$vg, h$$vh, h$$vi, h$$vj, h$baseZCGHCziIOziFDziwriteRawBufferPtr2_e, h$$vk,+h$baseZCGHCziIOziFDzizdfTypeableFDzuzdctypeRepzh_e, h$baseZCGHCziIOziFDzizdwa12_e, h$$vl, h$$vm, h$$vn, h$$vo, h$$vp,+h$$vq, h$$vr, h$baseZCGHCziIOziFDzizdfIODeviceFD18_e, h$$vs, h$$vt, h$baseZCGHCziIOziFDzizdfIODeviceFD17_e, h$$vu,+h$baseZCGHCziIOziFDzizdwa11_e, h$$vv, h$$vw, h$$vx, h$baseZCGHCziIOziFDzizdfIODeviceFD15_e, h$$vy,+h$baseZCGHCziIOziFDzizdfIODeviceFD14_e, h$$vz, h$baseZCGHCziIOziFDzizdfIODeviceFD13_e, h$$vA, h$$vB, h$$vC, h$$vD,+h$$vE, h$$vF, h$baseZCGHCziIOziFDzizdwa10_e, h$$vG, h$$vH, h$$vI, h$$vJ, h$$vK, h$$vL, h$$vM,+h$baseZCGHCziIOziFDzizdfIODeviceFD12_e, h$$vN, h$baseZCGHCziIOziFDzizdfIODeviceFDzuds_e,+h$baseZCGHCziIOziFDzizdfIODeviceFDzupred_e, h$baseZCGHCziIOziFDzizdwa9_e, h$$vO, h$$vP, h$$vQ, h$$vR, h$$vS,+h$baseZCGHCziIOziFDzizdfIODeviceFD10_e, h$$vT, h$baseZCGHCziIOziFDzizdfIODeviceFD9_e, h$$vU, h$$vV,+h$baseZCGHCziIOziFDzizdwa8_e, h$$vW, h$$vX, h$$vY, h$baseZCGHCziIOziFDzizdfIODeviceFD7_e, h$$vZ,+h$baseZCGHCziIOziFDzizdfIODeviceFD6_e, h$$v0, h$$v1, h$baseZCGHCziIOziFDzizdfIODeviceFD5_e, h$$v2, h$$v3,+h$baseZCGHCziIOziFDzizdfIODeviceFD4_e, h$$v4, h$$v5, h$$v6, h$$v7, h$baseZCGHCziIOziFDzizdfIODeviceFD3_e, h$$v8, h$$v9,+h$$wa, h$$wb, h$baseZCGHCziIOziFDzizdwa7_e, h$$wc, h$$wd, h$baseZCGHCziIOziFDzizdfIODeviceFD2_e, h$$we,+h$baseZCGHCziIOziFDzizdwa6_e, h$$wf, h$$wg, h$baseZCGHCziIOziFDzizdfIODeviceFD1_e, h$$wh, h$$wi,+h$baseZCGHCziIOziFDzizdfBufferedIOFD12_e, h$baseZCGHCziIOziFDzizdwa5_e, h$$wj, h$$wk, h$$wl, h$$wm, h$$wn, h$$wo, h$$wp,+h$$wq, h$$wr, h$baseZCGHCziIOziFDzizdfBufferedIOFD10_e, h$$ws, h$$wt, h$baseZCGHCziIOziFDzizdwa4_e, h$$wu, h$$wv, h$$ww,+h$$wx, h$$wy, h$$wz, h$baseZCGHCziIOziFDzizdwa3_e, h$$wA, h$$wB, h$baseZCGHCziIOziFDzizdfBufferedIOFD6_e, h$$wC, h$$wD,+h$baseZCGHCziIOziFDzizdfBufferedIOFD5_e, h$$wE, h$$wF, h$baseZCGHCziIOziFDzizdfBufferedIOFD3_e, h$$wG, h$$wH, h$$wI,+h$baseZCGHCziIOziFDzizdwa1_e, h$$wJ, h$$wK, h$$wL, h$$wM, h$$wN, h$$wO, h$$wP, h$$wQ, h$$wR, h$$wS, h$$wT,+h$baseZCGHCziIOziFDzizdwa_e, h$$wU, h$$wV, h$$wW, h$baseZCGHCziIOziFDzizdfBufferedIOFD1_e, h$$wX, h$$wY,+h$baseZCGHCziIOziFDziFD_e, h$baseZCGHCziIOziFDziFD_con_e, h$baseZCGHCziIOziFDzizdWFD_e, h$$wZ, h$$w0,+h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnMVarzuzdctoException_e,+h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnSTMzuzdctoException_e,+h$baseZCGHCziIOziExceptionzizdfExceptionIOExceptionzuzdctoException_e, h$$w2, h$$w3,+h$baseZCGHCziIOziExceptionziuntangle4_e, h$$w4, h$baseZCGHCziIOziExceptionzizdfShowIOExceptionzuzdcshowsPrec_e, h$$w5,+h$baseZCGHCziIOziExceptionzizdfShowIOExceptionzuzdcshow_e, h$$w6, h$baseZCGHCziIOziExceptionzizdwzdcshowsPrec2_e, h$$w7,+h$baseZCGHCziIOziExceptionzizdwzdcshowsPrec1_e, h$$w8, h$$w9, h$$xa, h$$xb, h$$xc, h$$xd, h$$xe, h$$xf, h$$xg, h$$xh,+h$$xi, h$$xj, h$$xk, h$$xl, h$$xm, h$baseZCGHCziIOziExceptionzizdfShowIOException1_e, h$$xn,+h$baseZCGHCziIOziExceptionzizdfShowIOExceptionzuzdcshowList_e,+h$baseZCGHCziIOziExceptionzizdfExceptionIOExceptionzuzdctypeRepzh_e,+h$baseZCGHCziIOziExceptionzizdfExceptionIOExceptionzuzdcfromException_e, h$$xo, h$$xp,+h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnSTMzuzdcshowsPrec_e, h$$xq,+h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnSTMzuzdcshow_e, h$$xr,+h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnSTM2_e,+h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnSTM1_e, h$$xs,+h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnSTMzuzdcshowList_e,+h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnSTMzuzdctypeRepzh_e,+h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnSTMzuzdcfromException_e, h$$xt, h$$xu,+h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnMVarzuzdcshowsPrec_e, h$$xv,+h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnMVarzuzdcshow_e, h$$xw,+h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnMVar2_e,+h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnMVar1_e, h$$xx,+h$baseZCGHCziIOziExceptionzizdfShowBlockedIndefinitelyOnMVarzuzdcshowList_e,+h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnMVarzuzdctypeRepzh_e,+h$baseZCGHCziIOziExceptionzizdfExceptionBlockedIndefinitelyOnMVarzuzdcfromException_e, h$$xy, h$$xz,+h$baseZCGHCziIOziExceptionzizdfExceptionAsyncExceptionzuzdctypeRepzh_e,+h$baseZCGHCziIOziExceptionzizdfExceptionAsyncExceptionzuzdsasyncExceptionFromException_e, h$$xA, h$$xB, h$$xC, h$$xD,+h$baseZCGHCziIOziExceptionziBlockedIndefinitelyOnMVar_con_e, h$baseZCGHCziIOziExceptionziBlockedIndefinitelyOnSTM_con_e,+h$baseZCGHCziIOziExceptionziIOError_e, h$baseZCGHCziIOziExceptionziIOError_con_e,+h$baseZCGHCziIOziExceptionziInterrupted_con_e, h$baseZCGHCziIOziExceptionziResourceVanished_con_e,+h$baseZCGHCziIOziExceptionziTimeExpired_con_e, h$baseZCGHCziIOziExceptionziUnsupportedOperation_con_e,+h$baseZCGHCziIOziExceptionziHardwareFault_con_e, h$baseZCGHCziIOziExceptionziInappropriateType_con_e,+h$baseZCGHCziIOziExceptionziInvalidArgument_con_e, h$baseZCGHCziIOziExceptionziOtherError_con_e,+h$baseZCGHCziIOziExceptionziProtocolError_con_e, h$baseZCGHCziIOziExceptionziUnsatisfiedConstraints_con_e,+h$baseZCGHCziIOziExceptionziUserError_con_e, h$baseZCGHCziIOziExceptionziPermissionDenied_con_e,+h$baseZCGHCziIOziExceptionziIllegalOperation_con_e, h$baseZCGHCziIOziExceptionziResourceExhausted_con_e,+h$baseZCGHCziIOziExceptionziResourceBusy_con_e, h$baseZCGHCziIOziExceptionziNoSuchThing_con_e,+h$baseZCGHCziIOziExceptionziAlreadyExists_con_e, h$baseZCGHCziIOziExceptionziuntangle_e, h$$xE, h$$xF, h$$xG, h$$xH,+h$$xI, h$$xJ, h$$xK, h$$xL, h$baseZCGHCziIOziExceptionziioError_e, h$baseZCGHCziIOziExceptionziioException_e,+h$baseZCGHCziIOziExceptionzizdfxExceptionIOException_e, h$baseZCGHCziIOziExceptionziuserError_e,+h$baseZCGHCziIOziEncodingziUTF8ziutf6_e, h$$x6, h$$x7, h$baseZCGHCziIOziEncodingziUTF8ziutf4_e,+h$baseZCGHCziIOziEncodingziUTF8ziutf3_e, h$$x8, h$$x9, h$baseZCGHCziIOziEncodingziUTF8ziutf1_e,+h$baseZCGHCziIOziEncodingziUTF8zizdwa1_e, h$$ya, h$$yb, h$$yc, h$$yd, h$$ye, h$$yf, h$$yg, h$$yh, h$$yi, h$$yj, h$$yk,+h$$yl, h$$ym, h$$yn, h$$yo, h$$yp, h$baseZCGHCziIOziEncodingziUTF8zimkUTF4_e, h$$yq, h$$yr,+h$baseZCGHCziIOziEncodingziUTF8zimkUTF3_e, h$baseZCGHCziIOziEncodingziUTF8zimkUTF2_e,+h$baseZCGHCziIOziEncodingziUTF8zizdwa_e, h$$ys, h$$yt, h$$yu, h$baseZCGHCziIOziEncodingziUTF8zimkUTF1_e, h$$yv, h$$yw,+h$baseZCGHCziIOziEncodingziTypesziTextEncoding_e, h$baseZCGHCziIOziEncodingziTypesziTextEncoding_con_e,+h$baseZCGHCziIOziEncodingziTypesziBufferCodec_e, h$baseZCGHCziIOziEncodingziTypesziBufferCodec_con_e,+h$baseZCGHCziIOziEncodingziTypesziInvalidSequence_con_e, h$baseZCGHCziIOziEncodingziTypesziOutputUnderflow_con_e,+h$baseZCGHCziIOziEncodingziTypesziInputUnderflow_con_e, h$baseZCGHCziIOziEncodingziTypesziclose_e, h$$yx,+h$baseZCGHCziIOziEncodingziFailurezizdwa2_e, h$baseZCGHCziIOziEncodingzigetLocaleEncoding2_e, h$$yB, h$$yC,+h$baseZCGHCziIOziEncodingzigetLocaleEncoding1_e, h$baseZCGHCziIOziEncodingzigetForeignEncoding_e,+h$baseZCGHCziIOziEncodingzigetLocaleEncoding_e, h$$yD, h$baseZCGHCziIOziDeviceziDZCIODevice_e,+h$baseZCGHCziIOziDeviceziDZCIODevice_con_e, h$baseZCGHCziIOziDeviceziRelativeSeek_con_e,+h$baseZCGHCziIOziDeviceziRawDevice_con_e, h$baseZCGHCziIOziDeviceziRegularFile_con_e,+h$baseZCGHCziIOziDeviceziStream_con_e, h$baseZCGHCziIOziDeviceziDirectory_con_e, h$baseZCGHCziIOziDeviceziseek_e, h$$yE,+h$baseZCGHCziIOziDeviceziisSeekable_e, h$$yF, h$baseZCGHCziIOziDeviceziisTerminal_e, h$$yG,+h$baseZCGHCziIOziBufferedIOziDZCBufferedIO_e, h$baseZCGHCziIOziBufferedIOziDZCBufferedIO_con_e,+h$baseZCGHCziIOziBufferedIOziflushWriteBuffer_e, h$$yH, h$baseZCGHCziIOziBufferedIOziemptyWriteBuffer_e, h$$yI,+h$baseZCGHCziIOziBufferedIOzinewBuffer_e, h$$yJ, h$baseZCGHCziIOziBufferziBuffer_e,+h$baseZCGHCziIOziBufferziBuffer_con_e, h$baseZCGHCziIOziBufferzizdWBuffer_e, h$$yK, h$$yL, h$$yM, h$$yN,+h$baseZCGHCziIOziBufferziWriteBuffer_con_e, h$baseZCGHCziIOziBufferziReadBuffer_con_e, h$$yO, h$$yP, h$$yQ, h$$yR,+h$baseZCGHCziIOzibracket1_e, h$$yS, h$$yT, h$$yU, h$$yV, h$$yW, h$$yX, h$$yY, h$$yZ, h$$y0, h$$y1, h$$y2, h$$y3, h$$y4,+h$$y5, h$$y6, h$$y7, h$$y8, h$$y9, h$$za, h$$zb, h$baseZCGHCziIOziunsafeDupablePerformIO_e, h$$zc,+h$baseZCGHCziIOzifailIO_e, h$baseZCGHCziForeignPtrzimallocForeignPtrBytes2_e, h$baseZCGHCziForeignPtrziMallocPtr_e,+h$baseZCGHCziForeignPtrziMallocPtr_con_e, h$baseZCGHCziForeignPtrzizdWMallocPtr_e, h$$zf,+h$baseZCGHCziForeignPtrziPlainForeignPtr_e, h$baseZCGHCziForeignPtrziPlainForeignPtr_con_e,+h$baseZCGHCziForeignPtrzizdWPlainForeignPtr_e, h$$zg, h$baseZCGHCziForeignPtrziNoFinalizzers_con_e,+h$baseZCGHCziForeignzizdwa1_e, h$$zi, h$$zj, h$$zk, h$$zl, h$$zm, h$$zn, h$$zo, h$$zp, h$$zq, h$$zr, h$$zs, h$$zt,+h$$zu, h$$zv, h$$zw, h$$zx, h$$zy, h$baseZCGHCziForeignzicharIsRepresentable3_e, h$$zz, h$$zA, h$$zB, h$$zC, h$$zD,+h$$zE, h$$zF, h$$zG, h$$zH, h$$zI, h$$zJ, h$baseZCGHCziForeignzizdwa_e, h$$zK, h$$zL, h$$zM, h$$zN, h$$zO, h$$zP, h$$zQ,+h$$zR, h$$zS, h$$zT, h$$zU, h$$zV, h$$zW, h$$zX, h$$zY, h$$zZ, h$$z0, h$$z1, h$$z2, h$$z3, h$$z4, h$$z5, h$$z6, h$$z7,+h$$z8, h$$z9, h$$Aa, h$$Ab, h$$Ac, h$$Ad, h$$Ae, h$$Af, h$baseZCGHCziFloatzizdfFloatingDoublezuzdclogBase_e, h$$Ag,+h$$Ah, h$baseZCGHCziFloatzizdfFloatingDoublezuzdcasinh_e, h$$Ai, h$baseZCGHCziFloatzizdfFloatingDoublezuzdcatanh_e,+h$$Aj, h$baseZCGHCziFloatzizdfFloatingDoublezuzdcacosh_e, h$$Ak, h$baseZCGHCziFloatzizdfNumDoublezuzdcabs_e, h$$Al,+h$baseZCGHCziFloatzizdfNumDoublezuzdcsignum_e, h$$Am, h$baseZCGHCziFloatzizdfNumDoublezuzdcfromInteger_e, h$$An,+h$baseZCGHCziFloatzizdfFractionalDoublezuzdcrecip_e, h$$Ao, h$baseZCGHCziFloatzizdwzdsfromRatzqzq_e, h$$Ap, h$$Aq,+h$$Ar, h$$As, h$$At, h$$Au, h$$Av, h$$Aw, h$$Ax, h$$Ay, h$$Az, h$$AA, h$$AB, h$$AC, h$$AD, h$$AE, h$$AF, h$$AG, h$$AH,+h$$AI, h$$AJ, h$$AK, h$$AL, h$$AM, h$$AN, h$$AO, h$$AP, h$$AQ, h$baseZCGHCziFloatzirationalToDouble3_e,+h$baseZCGHCziFloatzirationalToDouble2_e, h$baseZCGHCziFloatzirationalToDouble1_e,+h$baseZCGHCziFloatzizdfFractionalDoublezuzdcfromRational_e, h$$AR, h$baseZCGHCziFloatziDZCFloating_e,+h$baseZCGHCziFloatziDZCFloating_con_e, h$baseZCGHCziFloatzipowerDouble_e, h$$AS, h$$AT,+h$baseZCGHCziFloatzitanhDouble_e, h$$AU, h$baseZCGHCziFloatzicoshDouble_e, h$$AV, h$baseZCGHCziFloatzisinhDouble_e,+h$$AW, h$baseZCGHCziFloatziatanDouble_e, h$$AX, h$baseZCGHCziFloatziacosDouble_e, h$$AY,+h$baseZCGHCziFloatziasinDouble_e, h$$AZ, h$baseZCGHCziFloatzitanDouble_e, h$$A0, h$baseZCGHCziFloatzicosDouble_e, h$$A1,+h$baseZCGHCziFloatzisinDouble_e, h$$A2, h$baseZCGHCziFloatzisqrtDouble_e, h$$A3, h$baseZCGHCziFloatzilogDouble_e, h$$A4,+h$baseZCGHCziFloatziexpDouble_e, h$$A5, h$baseZCGHCziFloatzinegateDouble_e, h$$A6, h$baseZCGHCziFloatzidivideDouble_e,+h$$A7, h$$A8, h$baseZCGHCziFloatzitimesDouble_e, h$$A9, h$$Ba, h$baseZCGHCziFloatziminusDouble_e, h$$Bb, h$$Bc,+h$baseZCGHCziFloatziplusDouble_e, h$$Bd, h$$Be, h$baseZCGHCziFloatzipi_e, h$$Bf, h$baseZCGHCziFloatzirationalToDouble_e,+h$$Bg, h$$Bh, h$$Bi, h$$Bj, h$$Bk, h$$Bl, h$$Bm, h$$Bn, h$baseZCGHCziExceptionzizdfExceptionErrorCallzuzdctoException_e,+h$baseZCGHCziExceptionzizdfExceptionArithExceptionzuzdctoException_e, h$baseZCGHCziExceptionzithrow2_e, h$$Bp,+h$baseZCGHCziExceptionzizdfShowErrorCallzuzdcshowsPrec_e, h$baseZCGHCziExceptionzizdfShowErrorCall1_e,+h$baseZCGHCziExceptionzizdfShowErrorCallzuzdcshowList_e, h$baseZCGHCziExceptionzizdfExceptionErrorCallzuzdctypeRepzh_e,+h$baseZCGHCziExceptionzizdfExceptionErrorCallzuzdcfromException_e, h$$Bq, h$$Br,+h$baseZCGHCziExceptionzizdfShowArithExceptionzuzdcshowsPrec_e, h$$Bs,+h$baseZCGHCziExceptionzizdfShowArithExceptionzuzdcshow_e, h$$Bt, h$baseZCGHCziExceptionzizdfShowArithException12_e,+h$baseZCGHCziExceptionzizdfShowArithException10_e, h$baseZCGHCziExceptionzizdfShowArithException8_e,+h$baseZCGHCziExceptionzizdfShowArithException6_e, h$baseZCGHCziExceptionzizdfShowArithException4_e,+h$baseZCGHCziExceptionzizdfShowArithException2_e, h$baseZCGHCziExceptionzizdfShowArithException1_e, h$$Bu,+h$baseZCGHCziExceptionzizdfShowArithExceptionzuzdcshowList_e,+h$baseZCGHCziExceptionzizdfExceptionArithExceptionzuzdctypeRepzh_e,+h$baseZCGHCziExceptionzizdfExceptionArithExceptionzuzdcfromException_e, h$$Bv, h$$Bw,+h$baseZCGHCziExceptionziRatioZZeroDenominator_con_e, h$baseZCGHCziExceptionziDivideByZZero_con_e,+h$baseZCGHCziExceptionziOverflow_con_e, h$baseZCGHCziExceptionziDZCException_e,+h$baseZCGHCziExceptionziDZCException_con_e, h$baseZCGHCziExceptionzizdp2Exception_e, h$$Bx,+h$baseZCGHCziExceptionzizdp1Exception_e, h$$By, h$baseZCGHCziExceptionziSomeException_e,+h$baseZCGHCziExceptionziSomeException_con_e, h$baseZCGHCziExceptionzitoException_e, h$$Bz,+h$baseZCGHCziExceptionzioverflowException_e, h$baseZCGHCziExceptionziratioZZeroDenomException_e,+h$baseZCGHCziExceptionzidivZZeroException_e, h$baseZCGHCziExceptionzierrorCallException_e, h$baseZCGHCziErrzierror_e,+h$$BA, h$baseZCGHCziEnumziefdtInt_e, h$baseZCGHCziEnumziefdtIntFB_e, h$baseZCGHCziEnumzieftInt_e, h$$BB, h$$BC,+h$baseZCGHCziEnumzieftIntFB_e, h$$BD, h$$BE, h$baseZCGHCziEnumzizdfEnumInt2_e, h$baseZCGHCziEnumzizdfEnumIntzuzdcsucc_e,+h$$BF, h$baseZCGHCziEnumzizdfEnumInt1_e, h$baseZCGHCziEnumzizdfEnumIntzuzdcpred_e, h$$BG,+h$baseZCGHCziEnumzizdfEnumIntzuzdcfromEnum_e, h$baseZCGHCziEnumzizdfEnumIntzuzdcenumFrom_e, h$$BH,+h$baseZCGHCziEnumzizdfEnumIntzuzdcenumFromThen_e, h$$BI, h$$BJ, h$baseZCGHCziEnumzizdfEnumIntzuzdcenumFromTo_e, h$$BK,+h$$BL, h$baseZCGHCziEnumzizdfEnumIntzuzdcenumFromThenTo_e, h$$BM, h$$BN, h$$BO, h$baseZCGHCziEnumzizdfEnumBool1_e,+h$baseZCGHCziEnumziDZCEnum_e, h$baseZCGHCziEnumziDZCEnum_con_e, h$baseZCGHCziEnumziefdtIntDnFB_e, h$$BP, h$$BQ, h$$BR,+h$baseZCGHCziEnumziefdtIntDn_e, h$$BS, h$$BT, h$$BU, h$baseZCGHCziEnumziefdtIntUpFB_e, h$$BV, h$$BW, h$$BX,+h$baseZCGHCziEnumziefdtIntUp_e, h$$BY, h$$BZ, h$$B0, h$baseZCGHCziEnumziefdInt_e, h$$B4, h$$B5, h$$B6, h$$B7, h$$B8,+h$$B9, h$$Ca, h$$Cb, h$$Cc, h$$Cd, h$$Ce, h$$Cf, h$$Cg, h$$Ch, h$$Ci, h$$Cj, h$$Ck, h$$Cl, h$$Cm,+h$baseZCGHCziConcziSynczireportError1_e, h$$Cn, h$baseZCGHCziConcziSyncziThreadId_e,+h$baseZCGHCziConcziSyncziThreadId_con_e, h$baseZCGHCziConcziSyncziuncaughtExceptionHandler_e,+h$baseZCGHCziConcziSynczireportError_e, h$baseZCGHCziCharzichr2_e, h$$Cu, h$$Cv, h$$Cw, h$baseZCGHCziBasezieqString_e,+h$$Cx, h$$Cy, h$$Cz, h$$CA, h$$CB, h$baseZCGHCziBasezizpzp_e, h$$CC, h$$CD, h$baseZCGHCziBasezifoldr_e, h$$CE, h$$CF,+h$$CG, h$baseZCGHCziBasezimap_e, h$$CH, h$$CI, h$$CJ, h$baseZCGHCziBasezibindIO1_e, h$$CK, h$baseZCGHCziBasezithenIO1_e,+h$$CL, h$baseZCGHCziBasezireturnIO1_e, h$baseZCGHCziBasezizdfMonadIOzuzdcfail_e, h$baseZCGHCziBasezizdfFunctorIO2_e,+h$$CM, h$$CN, h$baseZCGHCziBasezizdfFunctorIO1_e, h$$CO, h$baseZCGHCziBaseziDZCMonad_e,+h$baseZCGHCziBaseziDZCMonad_con_e, h$baseZCGHCziBaseziDZCFunctor_e, h$baseZCGHCziBaseziDZCFunctor_con_e,+h$baseZCGHCziBasezizi_e, h$$CP, h$baseZCGHCziBaseziid_e, h$baseZCGHCziBasezireturn_e, h$$CQ, h$baseZCGHCziBasezifmap_e,+h$$CR, h$baseZCGHCziBasezizgzg_e, h$$CS, h$baseZCGHCziBasezizgzgze_e, h$$CT, h$baseZCGHCziBasezifail_e, h$$CU,+h$baseZCForeignziStorablezizdfStorableCharzuzdcalignment_e, h$baseZCForeignziStorablezizdfStorableChar4_e, h$$CV, h$$CW,+h$baseZCForeignziStorablezizdfStorableChar3_e, h$$CX, h$$CY, h$$CZ, h$baseZCForeignziStorablezizdfStorableChar2_e,+h$$C0, h$baseZCForeignziStorablezizdfStorableChar1_e, h$$C1, h$$C2, h$baseZCForeignziStorableziDZCStorable_e,+h$baseZCForeignziStorableziDZCStorable_con_e, h$baseZCForeignziStorablezipokeElemOff_e, h$$C3,+h$baseZCForeignziStorablezipeekElemOff_e, h$$C4, h$baseZCForeignziMarshalziArrayzizdwa8_e, h$$C5, h$$C6, h$$C7, h$$C8,+h$$C9, h$baseZCForeignziMarshalziArrayzinewArray8_e, h$$Da, h$$Db, h$$Dc, h$$Dd,+h$baseZCForeignziCziErrorzithrowErrnoIfMinus1Retry2_e, h$$De, h$$Df, h$baseZCForeignziCziErrorzithrowErrno1_e, h$$Dg,+h$baseZCForeignziCziErrorzierrnoToIOError_e, h$$Dh, h$$Di, h$$Dj, h$$Dk, h$baseZCDataziTypeableziInternalziTypeRep_e,+h$baseZCDataziTypeableziInternalziTypeRep_con_e, h$baseZCDataziTypeableziInternalzizdWTypeRep_e, h$$Dl,+h$baseZCDataziTypeableziInternalziTyCon_e, h$baseZCDataziTypeableziInternalziTyCon_con_e,+h$baseZCDataziTypeableziInternalzizdWTyCon_e, h$$Dm, h$baseZCDataziTypeablezicast_e, h$$Dn, h$$Do,+h$baseZCDataziTuplezisnd_e, h$$Dp, h$baseZCDataziTuplezifst_e, h$$Dq, h$baseZCDataziMaybeziJust_e,+h$baseZCDataziMaybeziJust_con_e, h$baseZCDataziMaybeziNothing_con_e, h$baseZCDataziListziwords_e, h$$Dr, h$$Ds, h$$Dt,+h$$Du, h$$Dv, h$$Dw, h$$Dx, h$baseZCDataziListzisortBy_e, h$$Dy, h$$Dz, h$$DA, h$$DB, h$$DC, h$$DD, h$$DE, h$$DF, h$$DG,+h$$DH, h$$DI, h$$DJ, h$$DK, h$$DL, h$$DM, h$$DN, h$$DO, h$$DP, h$$DQ, h$$DR, h$$DS, h$$DT, h$$DU, h$$DV, h$$DW, h$$DX,+h$$DY, h$$DZ, h$$D0, h$$D1, h$$D2, h$$D3, h$$D4, h$$D5, h$$D6, h$$D7, h$baseZCDataziFunctorzizlzdzg_e,+h$baseZCControlziMonadziforMzu_e, h$baseZCControlziMonadzimapMzu_e, h$$D9, h$$Ea, h$$Eb, h$$Ec, h$$Ed, h$$Ee,+h$baseZCControlziMonadzizezlzl_e, h$baseZCControlziExceptionziBasezizdfExceptionNonTerminationzuzdctoException_e,+h$baseZCControlziExceptionziBasezizdfExceptionPatternMatchFailzuzdctoException_e,+h$baseZCControlziExceptionziBasezizdfShowPatternMatchFailzuzdcshowsPrec_e, h$$Ef,+h$baseZCControlziExceptionziBasezizdfShowPatternMatchFailzuzdcshow_e, h$$Eg,+h$baseZCControlziExceptionziBasezizdfShowPatternMatchFail1_e, h$$Eh,+h$baseZCControlziExceptionziBasezizdfShowPatternMatchFailzuzdcshowList_e,+h$baseZCControlziExceptionziBasezizdfExceptionPatternMatchFailzuzdctypeRepzh_e,+h$baseZCControlziExceptionziBasezizdfExceptionPatternMatchFailzuzdcfromException_e, h$$Ei, h$$Ej,+h$baseZCControlziExceptionziBasezizdfShowNonTerminationzuzdcshowsPrec_e, h$$Ek,+h$baseZCControlziExceptionziBasezizdfShowNonTerminationzuzdcshow_e, h$$El,+h$baseZCControlziExceptionziBasezizdfShowNonTermination2_e, h$baseZCControlziExceptionziBasezizdfShowNonTermination1_e,+h$$Em, h$baseZCControlziExceptionziBasezizdfShowNonTerminationzuzdcshowList_e,+h$baseZCControlziExceptionziBasezizdfExceptionNonTerminationzuzdctypeRepzh_e,+h$baseZCControlziExceptionziBasezizdfExceptionNonTerminationzuzdcfromException_e, h$$En, h$$Eo,+h$baseZCControlziExceptionziBaseziNonTermination_con_e, h$baseZCControlziExceptionziBaseziPatternMatchFail_e,+h$baseZCControlziExceptionziBaseziPatternMatchFail_con_e, h$baseZCControlziExceptionziBasezinonTermination_e,+h$baseZCControlziExceptionziBasezipatError_e, h$$Ep, h$$Er, h$$Es, h$$Et, h$$Eu, h$$Ev, h$$Ew, h$$Ex, h$$Ey, h$$Ez,+h$$EA, h$$EB, h$$EC, h$$ED, h$$EE, h$$EF, h$$EG, h$$EH, h$$EI, h$$EJ, h$$EK, h$$EL, h$$EM, h$$EN, h$$EO, h$$EP, h$$EQ,+h$$ER, h$$ES, h$$ET, h$$EU, h$$EV, h$$EW, h$$EX, h$$EY, h$$EZ, h$$E0, h$$E1, h$$E2, h$$E3, h$$E4, h$$E5, h$$E6, h$$E7,+h$$E8, h$$E9, h$$Fa, h$$Fb, h$$Fc, h$$Fd, h$$Fe, h$$Ff, h$$Fg, h$$Fh, h$$Fi, h$$Fj, h$$Fk, h$$Fl, h$$Fm, h$$Fn, h$$Fo,+h$$Fp, h$$Fq, h$$Fr, h$mainZCMainzimain_e, h$mainZCZCMainzimain_e,+h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzizdwsumzq1_e, h$$FX, h$$FY, h$$FZ, h$$F0, h$$F1, h$$F2,+h$$F3, h$$F4, h$$F5, h$$F6, h$$F7, h$$F8, h$$F9, h$$Ga, h$$Gb, h$$Gc, h$$Gd, h$$Ge, h$$Gf, h$$Gg, h$$Gh, h$$Gi, h$$Gj,+h$$Gk, h$$Gl, h$$Gm, h$$Gn, h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzizdwgo_e, h$$Go, h$$Gp, h$$Gq,+h$$Gr, h$$Gs, h$$Gt, h$$Gu, h$$Gv, h$$Gw, h$$Gx, h$$Gy, h$$Gz, h$$GA, h$$GB, h$$GC, h$$GD, h$$GE, h$$GF, h$$GG, h$$GH,+h$$GI, h$$GJ, h$$GK, h$$GL, h$$GM, h$$GN, h$$GO, h$$GP, h$$GQ, h$$GR, h$$GS, h$$GT, h$$GU, h$$GV, h$$GW, h$$GX, h$$GY,+h$$GZ, h$$G0, h$$G1, h$$G2, h$$G3, h$$G4, h$$G5, h$$G6, h$$G7, h$$G8, h$$G9, h$$Ha, h$$Hb, h$$Hc, h$$Hd, h$$He, h$$Hf,+h$$Hg, h$$Hh, h$$Hi, h$$Hj, h$$Hk, h$$Hl, h$$Hm, h$$Hn, h$$Ho, h$$Hp, h$$Hq, h$$Hr, h$$Hs, h$$Ht, h$$Hu, h$$Hv, h$$Hw,+h$$Hx, h$$Hy, h$$Hz, h$$HA, h$$HB, h$$HC, h$$HD, h$$HE, h$$HF, h$$HG, h$$HH, h$$HI, h$$HJ, h$$HK, h$$HL, h$$HM, h$$HN,+h$$HO, h$$HP, h$$HQ, h$$HR, h$$HS, h$$HT, h$$HU, h$$HV, h$$HW, h$$HX, h$$HY, h$$HZ, h$$H0, h$$H1, h$$H2, h$$H3, h$$H4,+h$$H5, h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzipackCircles3_e, h$$H6, h$$H7, h$$H8, h$$H9, h$$Ia,+h$$Ib, h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzipackCircles1_e, h$$Ic, h$$Id, h$$Ie, h$$If, h$$Ig,+h$$Ih, h$$Ii, h$$Ij, h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzipackCircles2_e, h$$Ik, h$$Il, h$$Im,+h$$In, h$$Io, h$$Ip, h$$Iq, h$$Ir, h$$Is, h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzipackCircles4_e,+h$$It, h$$Iu, h$$Iv, h$$Iw, h$circlezmpackingzm0zi1zi0zi4ZCOptimisationziCirclePackingzipackCircles_e, h$$Ix, h$$Iy,+h$$Iz, h$$IA, h$$IB, h$$IC, h$$ID, h$$IE, h$$IF, h$$IG, h$$IH, h$$II, h$$IJ, h$$IK, h$$IL, h$$IM, h$$IN, h$$IO, h$$IP,+h$$IQ, h$$IR, h$$IS, h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziTypeszicastRef_e,+h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziMarshalziDZCFromJSRef_e,+h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziMarshalziDZCFromJSRef_con_e, h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziMarshalziDZCToJSRef_e,+h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziMarshalziDZCToJSRef_con_e, h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziMarshalzitoJSRef_e,+h$$IZ, h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziForeignzizdfToJSStringZMZN_e,+h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziForeignzizdfFromJSStringZMZN_e, h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziForeignzijsFalse_e,+h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziForeignzijsTrue_e, h$ghcjszmbasezm0zi1zi0zi0ZCGHCJSziForeignzitoJSString_e, h$$I0,+h$$I1, h$$I2, h$$I3, h$$I4, h$$I5, h$$I6, h$$I7, h$$I8, h$$I9, h$$Ja, h$$Jb, h$$Jc, h$$Jd, h$$Je, h$$Jf, h$$Jg, h$$Jh,+h$$Ji, h$$Jj, h$$Jk, h$$Jl, h$$Jm, h$$Jn, h$$Jo, h$$Jp, h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvasziclearRect_e,+h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvasziarc_e, h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvasziclosePath_e,+h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvaszibeginPath_e, h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvaszifill_e,+h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvaszigetContext_e,+h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvaszijszufill_e,+h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvaszijszubeginPath_e,+h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvaszijszuclosePath_e,+h$ghcjszmcanvaszm0zi1zi0zi0ZCJavaScriptziCanvaszijszuclearRect_e,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefUIEvent2_e, h$$Jx, h$$Jy, h$$Jz, h$$JA,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefUIEventzugo_e, h$$JB, h$$JC, h$$JD,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefUIEvent2_e, h$$JE, h$$JF,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLInputElement2_e, h$$JG, h$$JH, h$$JI, h$$JJ,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLInputElementzugo_e, h$$JK, h$$JL, h$$JM,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefHTMLInputElement2_e, h$$JN, h$$JO,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLCanvasElement2_e, h$$JP, h$$JQ, h$$JR, h$$JS,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLCanvasElementzugo_e, h$$JT, h$$JU, h$$JV,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefHTMLCanvasElement2_e, h$$JW, h$$JX,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefElement2_e, h$$JY, h$$JZ, h$$J0, h$$J1,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefElementzugo_e, h$$J2, h$$J3, h$$J4,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefElement2_e, h$$J5, h$$J6,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefDocument2_e, h$$J7, h$$J8, h$$J9, h$$Ka,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefDocumentzugo_e, h$$Kb, h$$Kc, h$$Kd,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefDocument2_e, h$$Ke, h$$Kf, h$$Kg, h$$Kh, h$$Ki, h$$Kj, h$$Kk,+h$$Kl, h$$Km, h$$Kn, h$$Ko, h$$Kp, h$$Kq, h$$Kr, h$$Ks, h$$Kt, h$$Ku, h$$Kv, h$$Kw, h$$Kx, h$$Ky, h$$Kz,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszicastToBarProp2_e, h$$KA,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdwcastTo_e, h$$KB, h$$KC,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefUIEventzuzdctoJSRef_e,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefUIEvent1_e, h$$KD, h$$KE, h$$KF, h$$KG, h$$KH,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfGObjectClassUIEventzuzdcunsafeCastGObject_e, h$$KI,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefHTMLInputElementzuzdctoJSRef_e,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefHTMLInputElement1_e, h$$KJ, h$$KK, h$$KL, h$$KM, h$$KN,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfGObjectClassHTMLInputElementzuzdcunsafeCastGObject_e, h$$KO,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefHTMLCanvasElementzuzdctoJSRef_e,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefHTMLCanvasElement1_e, h$$KP, h$$KQ, h$$KR, h$$KS, h$$KT,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfGObjectClassHTMLCanvasElementzuzdcunsafeCastGObject_e, h$$KU,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefElementzuzdctoJSRef_e,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefElement1_e, h$$KV, h$$KW, h$$KX, h$$KY, h$$KZ,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfGObjectClassElementzuzdcunsafeCastGObject_e, h$$K0,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefDocumentzuzdctoJSRef_e,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfToJSRefDocument1_e, h$$K1, h$$K2, h$$K3, h$$K4, h$$K5,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfGObjectClassDocumentzuzdcunsafeCastGObject_e, h$$K6,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefUIEventzuzdcfromJSRef_e,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdwa124_e, h$$K7, h$$K8, h$$K9, h$$La, h$$Lb,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefUIEvent1_e, h$$Lc,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLInputElementzuzdcfromJSRef_e,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdwa67_e, h$$Ld, h$$Le, h$$Lf, h$$Lg, h$$Lh,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLInputElement1_e, h$$Li,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLCanvasElementzuzdcfromJSRef_e,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdwa47_e, h$$Lj, h$$Lk, h$$Ll, h$$Lm, h$$Ln,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefHTMLCanvasElement1_e, h$$Lo,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefElementzuzdcfromJSRef_e,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdwa30_e, h$$Lp, h$$Lq, h$$Lr, h$$Ls, h$$Lt,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefElement1_e, h$$Lu,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefDocumentzuzdcfromJSRef_e,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdwa27_e, h$$Lv, h$$Lw, h$$Lx, h$$Ly, h$$Lz,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfFromJSRefDocument1_e, h$$LA,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfIsDocumentDocument_e,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfIsElementElement_e,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfIsHTMLCanvasElementHTMLCanvasElement_e,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszizdfIsHTMLInputElementHTMLInputElement_e,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypesziDZCGObjectClass_e,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypesziDZCGObjectClass_con_e,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypesziGObject_e, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypesziGObject_con_e,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszicastToHTMLInputElement_e, h$$LB,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszicastToHTMLCanvasElement_e, h$$LC,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypesziunsafeCastGObject_e, h$$LD,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziTypeszitoGObject_e, h$$LE,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziHTMLInputElementzihtmlInputElementGetValue1_e, h$$LU, h$$LV, h$$LW,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziHTMLInputElementzihtmlInputElementGetValue_e,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziHTMLCanvasElementzihtmlCanvasElementGetWidth1_e, h$$LX, h$$LY,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziHTMLCanvasElementzihtmlCanvasElementGetHeight1_e, h$$LZ, h$$L0,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziHTMLCanvasElementzihtmlCanvasElementGetHeight_e,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziHTMLCanvasElementzihtmlCanvasElementGetWidth_e,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziEventTargetClosureszieventTargetAddEventListener1_e, h$$L1, h$$L2, h$$L3, h$$L4,+h$$L5, h$$L6, h$$L7, h$$L8, h$$L9, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziElementzielementOnkeyup1_e, h$$Ma,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziElementzielementOnchange1_e, h$$Mb,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziElementzielementOnkeyup_e,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziElementzielementOnchange_e,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziDocumentzizdwa30_e, h$$Mc, h$$Md, h$$Me,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziDocumentzidocumentGetElementById1_e, h$$Mf,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMziDocumentzidocumentGetElementById_e,+h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMzicurrentDocument1_e, h$ghcjszmdomzm0zi1zi1zi3ZCGHCJSziDOMzicurrentDocument_e,+h$transformerszm0zi4zi3zi0ZCControlziMonadziTransziReaderzizdfMonadTransReaderT1_e,+h$transformerszm0zi4zi3zi0ZCControlziMonadziTransziReaderzizdfMonadTransReaderT_e,+h$transformerszm0zi4zi3zi0ZCControlziMonadziTransziClasszilift_e], h$staticDelayed, [],+"#$! ##! #!! ##! #!! !!%! #!# #!! !!%! #!# !#'! ##$ !!%! #!# !$)! #!% !#'! #!$ #!! !!%! !#'! $$# $$$ $$% $$% $$! !#'! $$# $$$ !#'! $$# $$$ !#'! $$! !#'! $$# $$# !#'! $$# $$# !)3! #!* !#'! #!$ !#'! !#'! !#'! !#'! $$# $$# !#'! $$# $$# !#'! $$# $$# !#'! $$# $$# !#'! $$# $$# !#'! $$# $$# !#'! $$# $$# !!%! $$! !#)! !!&&  $ !!'! !!&%  $ !$+! !!&'  $ !!'! !!&%  $  $  $  $  !!|'r !!|'p!!%!!N!!%! $$! $$# !!%!!O!!%!!Q!$)!!U$$$!U$$$!U!!%!!U$$!!U!$)!#|$UT $#|$UT $!|$U $!|$U!#'!!U$$#!U!#'!!V!!#!!d!!%!!Y$$!!Y$$#!Y!$)! $$#  $ !!%! $$! !#'! !#'! $$#  $ !#'! !!#!!g!!%!!h$$!!h$$#!h!!%! #!# !#'! #!$ !!%! #!# !!%! $$# $$! !!%! !!%! $$! !#'! $$# !#'! $$# !#'! $$# $$% $$# !#'!#u| ($$##u| ($$$ $$#!u!#'!#v| ($$##v| ($$$ $$#!v!#'!#w| ($$##w| ($$$ $$#!w!#'! $$# $$% $$# !#'! $$# $$% $$$ !#'!#z| 8$$##z| 8$$%!z$$#!| 8!#'!$| 6{| ($$$$| 6{| ($!$$| 6{| ($$$$| 6{| ($!$#| 6{$$##| 6{$$%!{$$$!| 6$$&!| 6$$!  ! !!%! !#'!  ! !$)! !#'! !#'! ##$ !!%! #!# !!'! !#'! $$# !!%! $$! !#'! $$# $$$ $$# !#'! $$# $$$ $$# !#'! $$# $$$ $$# !#'! $$# $$$ $$# !#'! $$# $$$ $$# !!%! $$! !!%!!|  $$!!|  !#'! $$# $$$ $$# !!%!!|  $$!!|  !!%! $$! !!%! $$! !!%! !#'!#| A| <$$$ !$)! $$% $$& $&$ $$%  $ !!%! #!#  ! $!# !%*$ !#'!!| >$$#!| >$$$!| >$$$ $$# $$$ $$! !!%!#| ?| <$$!#| ?| <$&! !#'! !!%! !$)!#z| F$$$#z| F$$%#z| F$$%#z| F$$%!| F$$$!| F!$)!+z| 8| 6|%i|%h|%[|#[|#X|#\/| G$$$+z| 8| 6|%i|%h|%[|#[|#X|#\/| G$$%$z|#[| G$$%$z|#[| G$$%$z|#[| G$$%!| G$$$!| G$$$(z| 8| 6|%i|%h|%[|#[$$#&z| 6|%i|%[|#[$$#$z| 6|%i$$$#z|%i$$$#z|%i$$#!|%i$$##z|%h$$!!|%h!!%!&|$A|#p|#s|#]| H!!&# $$# !!&$ $$$ !!&$!|$A$$$!|$A$$# !!&#!|#s!!&# !!&# $$#  #!|#]!!&#  #!| H!#'!#| H| I!!&%!| I$$%!| I$$&!| I$$&!| I!!&$ !!&$  $  # !!%!!| K$$! !!%!%|#{|#-|#(| N!!&#$|#{|#(| N$$! !!&$#|#{| N$$! !!&% !!%! !!%! !!%!'| 8|#p|#[|#X| F|#-!!&# $$# !!&# $$#  #'| 8|#p|#[|#X| F|#-$$#!|#p!!&#&| 8|#[|#X| F|#-$$#&| 8|#[|#X| F|#-$$! !!&#%| 8|#[|#X| F #%| 8|#[|#X| F$$!!| 8!!&#%|#[|#X| F|#-$$#%|#[|#X| F|#-$$! !!&#$|#[|#X| F #$|#[|#X| F #%|#[|#X| F|#-$$! !!&#$|#[|#X| F #$|#[|#X| F!!%!  !#|#r|# !!%!!| W$$! !!&#  # !!%!!| [$$! !!&#  # !!%!!| `$$! !!&#  # !!%!!| d$$! !!&#  # !!%!!| h$$! !!&#  # !!%!!| l$$! !!&#  # !!%!!| p$$! !!&#  # !!%!!| t$$! !!&#  # !!%!!| x$$! !!&#  # !!%!!|! $$! !!&#  # !!%!!|!%$$! !!&#  # !!%!!|!)$$! !!&#  # !!%!!|!-$$! !!&#  # !!%!!|!1$$! !!&#  # !!%!!|!5$$! !!&#  # !!%!!|!9$$! !!&#  # !!%!!|!=$$! !!&#  # !!%!!|!A$$! !!&#  # !!%!!|!E$$! !!&#  # !!%!!|!I$$! !!&#  # !!%!!|!M$$! !!&#  # !!%!!|!Q$$! !!&#  # !!%!!|!U$$! !!&#  # !!%!!|!Y$$! !!&#  # !!%!!|!^$$! !!&#  # !!%!!|!b$$! !!&#  # !!%!!|!f$$! !!&#  # !!%!!|!j$$! !!&#  # !!%!!|!n$$! !!&#  # !!%!!|!r$$! !!&#  # !!%!!|!v$$! !!&#  # !!%!!|!z$$! !!&#  # !!%!$|#{|#%|#!$$! !!%!!|#$$$! !!&#  # !!%!!|#'$$! !!&#  # !!%!!|#)$$! !!%!!|#-!!&#!|#-$$#!|#-$$! !!&# !!%!!|#,$$! !!%!!|#-!!&# $$# !!&$!|#-$$$!|#-$$! $$! $$! $$! !!&# !!&# !#'!!|#R!!&$ !!&# $$# !#($!|#R$$%!|#R$$&!|#R$$&!|#R!!&#  # !!&#  # !!&#  # !!&#  # !!&#  # !!&#  # !!&#  # !!&#  # !!&#  # !!&#  # !!&#  # !!&#  # $$% !!&# !!&#  $  & !!&$ !!&#  # !!%!!|#2!!%!#|$C|#M$$#!|#M!!%! $$! !!%! !!&$ $$$  #  #  !#|*f|#.!!%!+z| 8| 6|%i|%[|#[|#X| F|#\/| G$$!+z| 8| 6|%i|%[|#[|#X| F|#\/| G$$$+z| 8| 6|%i|%[|#[|#X| F|#\/| G$$$%|#[|#X| F| G$$$!| G$$##|#X| G$$#*z| 8| 6|%i|%[|#[|#X| F|#\/$$$*z| 8| 6|%i|%[|#[|#X| F|#\/$$#'z|%i|#[|#X| F|#\/$$#$z|%i|#\/$$!$z|%i|#\/$$!#|%i|#\/$$#(z| 6|%i|%[|#[|#X| F$$#'z| 6|%i|#[|#X| F$$$&z|%i|#[|#X| F$$$&z|%i|#[|#X| F$$$#z|%i$$#!|%i$$!$z|%i|#\/$$!#|%i|#\/$$!$z|%i|#\/$$!#|%i|#\/ # $$! !!%! !$)!&|#V|#Z|#U|#T|#S$$$&|#V|#Z|#U|#T|#S$$'&|#V|#Z|#U|#T|#S$$(%|#V|#Z|#U|#S$$($|#V|#Z|#S$$'$|#V|#Z|#S$$&#|#Z|#S$$&$|#V|#Z|#S$&&#|#Z|#S$$'#|#Z|#S$$&#|#Z|#S$$&#|#Z|#S$$&#|#Z|#S$$&#|#Z|#S$$$#|#Z|#S #!|#S$&!  #!|#S$&!  #!|#S$&! !!%!)|+\/|#p|#{|#X| F|#-| S| Q!!&, $$,  *)|+\/|#p|#{|#X| F|#-| S| Q$$*#|#p| S *#|#p| S!!&# $$#  #!| S!!&B $$B  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  # !!&#&|+\/|#X| F|#-| Q$$! !!&$%|+\/|#X| F| Q$$##|+\/| Q$$$!|+\/ #!|+\/$$!!|+\/ # $$!  #  #  #  #  #  #  #  #  #  # !!%!-|$B|#p|#{|#]|#L|#K|#2|#1|#0|#+| I| J!!&# $$#  #-|$B|#p|#{|#]|#L|#K|#2|#1|#0|#+| I| J!!&# $$#  #,|$B|#p|#{|#L|#K|#2|#1|#0|#+| I| J!!&# $$#  #+|$B|#p|#{|#L|#K|#2|#1|#0|#+| J!!&#!|#0$$$  #*|$B|#p|#{|#L|#K|#2|#1|#+| J!!&#$|#K|#2|#1$$$#|#K|#1$$! !!&$!|#K$$$  #'|$B|#p|#{|#L|#+| J!!&##|$B|#L$$$!|#L$$! !!&$ $$#!|#L$$! !!&$  #$|#{|#+| J$$!  #!| I!!&$ $$$ !!&# $$#  $  #!|#]!!&# !!&# $$#  $  # #(! !!%! #'# !!%! #&# !!%! #%# !!%! #$# !!%! ### !!%! #!# !$)! ##% !#'! #!$ !!%! $$! $$# $$$  # !!%!!|#s!!&#!|#s!!&# !#'!%|*f|#l|#k|#j$$#%|*f|#l|#k|#j$$#$|*f|#l|#k$$!$|*f|#l|#k$$!$|*f|#l|#k$$##|*f|#l!#'! $$#  $ $$# $$# $$# !#'!#|#p|#v$$$#|#p|#v $!|#p$$%#|#p|#v!!&$!|#p$$#!|#p $ $!$#|#p|#v$$##|#p|#v $!|#p$$##|#p|#v $ !!&$  %  $ $$# !!&$  %  $ !!&$  % $$$ $$# $!$#|#p|#v!!&$  % $$# !!&$!|#p$$#!|#p $ !!&$!|#p$$#!|#p!!&$!|#p $ !#'!#|#q|#p$$##|#q|#p$$! !!&$ $$$ $$% $$$ $$#  $ $$#!|#p $!|#q!!&$!|#q$$#!|#q!!&$!|#q$$#!|#q!!%!#|#r|#p$$!#|#r|#p$$##|#r|#p!!&$!|#p$$#!|#p $  #!|#r!!%!#|$A|#s$$!#|$A|#s$$#!|#s!!&# !!&#  $  #!|#s!#'! !!&#  $ !!%!  !!|,.!!%! !#'! !!&% !#($ $$% $$% $$& $$& !!&# !!&#  $  % !!&# !!%! !#'! !!&$ !!&$ $$$ $$% !!&$ !!&#  % !!&$  $ !$)!!|#q!!&% !$*$!|#q$$&!|#q!!&$!|#q!!&#  $!|#q$$% $$& $$%  # !!%! !!%! !!%! #&# !#'! #%$ #$! !!%! ### !!%! #!#  ! !$'!$|$4|$3|$,!#&##|$4|$,$$##|$4|$,$$%#|$4|$,$$% $$%  !  !  !  ! !$'!&|$3|$1|$0|$\/|$.!#&#%|$1|$0|$\/|$.$$#%|$1|$0|$\/|$.$$&%|$1|$0|$\/|$.$$&#|$\/|$.$$&#|$\/|$.$$%#|$\/|$.$$$#|$\/|$.$$$!|$\/$$$ !$'!)|(w|+T|+W|+U|$+|$*|$)|$($$()|(w|+T|+W|+U|$+|$*|$)|$($$')|(w|+T|+W|+U|$+|$*|$)|$($$# $$# $$# !!$&(|(w|+W|+U|$+|$*|$)|$($$!!|(w$$!!|(w$$!!|(w$$)&|(w|+W|+U|$+|$($$'$|(w|+W|$($$!!|(w!!$% !!$% $$$  ! !#%!!|$4$$!!|$4 #!|$4$$# !#%!%|(w|+U|$=|$6$$%#|(w|$=$$% !!$% $$$ $$! !!%! $$! !#%!$|+U|$;|$:$$%!|$; $ !!$% $$$ $$! !!%! #!# !!'! #!$ !!%! !!%! $$! !!%! $$! !!%! $$! !#%!$|$E|$J|$F!!$##|$J|$F!#%!!|$D!$'!(|)T|(R|'-|+-|$O|$M|$K$$$'|)T|(R|'-|+-|$O|$K$$$&|)T|(R|'-|+-|$K$$$%|)T|'-|+-|$K$$$%|)T|'-|+-|$K$!!#|)T|$K$!$#|'-|+-$$##|'-|+-$$%#|'-|+-$$# $!)#|'-|+-$$$#|'-|+-$$&#|'-|+-$$%#|'-|+-$$%#|'-|+-$$%#|'-|+-$$$#|'-|+-$$%!|+-$$$ $$# $$$ $$# $$%!|+-$$$ $$# $$$ $$# $$$ $$# $$$ $$# $$$ $$# $$$ $$# $$$ $$# $$$ $$# $$$ $$# !#%!#|)T|$K$$!#|)T|$K$!!#|)T|$K!#%!!|$E!!$# !!#!#|'-|'\/!#%! $$! !!#!#|'\/|',!#%!!|$D!#%!!|$L!%)! $$$ $$% $$% !$'! $$# $$$ !#'! !#'!$|$U|%M|$V$$#$|$U|%M|$V$$$$|$U|%M|$V $!|$U $!|$U!#'!.|&Y|&H|%T|$a|$`|$_|$^|$]|$[|$Z|$Y|$X|$W $ $&!  # $$! $$#  # $$! $$#  #$|&Y|&H|%T!#'!  # $&!  $ $&!  $ $&! !$)!  $ $&! !$)! #!% !$)! $$$  &  % !!&% $$%  &  $ !!%! $$! !!%! #!# !$)!(zwv|%k|%j|%h|%X$$%'zw|%k|%j|%h|%X$$%&zw|%j|%h|%X$$$#z|%X$$$!|%X$$%&zw|%j|%h|%X$$$&zw|%j|%h|%X$$$%zw|%j|%X$$$#z|%X$$$!|%X!#'!)zwv|%k|%j|%h|%Y|%X$$$(zw|%k|%j|%h|%Y|%X$$$'zw|%j|%h|%Y|%X$$##z|%Y$$#!|%Y$$$&zw|%j|%h|%X$$#%zw|%j|%X$$##z|%X$$$!|%X!#'!%|%k|%h|%]|%Y$$$%|%k|%h|%]|%Y$$$#|%h|%Y !#|*f|%Z!#'!#|%v|%s$$##|%v|%s$$##|%v|%s!#'!!|%v$$#!|%v$$# !#'!#|%v|%s!#'!!|%`$$#!|%`$$#!|%`$$! !#'!!|%v$$#!|%v$$# $$! !#'!#|%v|%t$$##|%v|%t$$##|%v|%t!#'!#|%v|%t$$##|%v|%t$$##|%v|%t!!%! $$! !!%!!|%h$$!!|%h$$!!|%h!#'!&w{|%v|%u|%k$$$&w{|%v|%u|%k$$$$w|%v|%k$$%#w|%v$$$!w$$# !%+! #!& !*5! #!+ !$)! #!% !#'! #!$ !#'! $$# $$#  !!|*b !!|*c !!|*d!!%! $$! !!%! $$! !$)!  $ !!%!#|&,|&$ ##|&,|&$ !#|&4|&-!!%!!|&!!$)!%|#p|#s|#^|&\/!#($%|#p|#s|#^|&\/!!&#!|#s $!|&\/$$! !!&#  #!|#^!!&& $$& $$' $$( $$' !!&#!|#s!!&#  #!|#^!!&% !!&#  # $$! !#'!  ! !#'!!|&( ! !#'!!|&*!!%!'|*2|#W|&+|&)|&'|&&$$!'|*2|#W|&+|&)|&'|&&$$!#|*2|&+!#(#  #!|*2$$!!|*2$$#$|&+|&)|&'$$!!|&)!#'!#|&,|&$!#'!#|&4|&-!#'!#|#s|#^!!&#!|#s!!&#  $#|#s|#^!!&# $$# $$#  $#|#s|#^!!&##|#s|#^!!&#!|#s!!&#  $!|#^!!&# $$# $$#  $ !#'!%|#p|#s|#^|&\/!!&%%|#p|#s|#^|&\/!!&#!|#s $!|&\/$$! !!&#  %#|#p|#^!!&# $$# $$#  %!|#p$$#!|#p % !!&$ !!&$ !#(# !#($#|#s|#^!!&#!|#s!!&#  #!|#^!!&% $$% $$% $$& $$# $$$ $$#  % !!&$ !!&$  # !%+! #!& !!'! #!$ !#'! $$# $$# !#'! $$# $$# !#'! $$# $$# !!%! $$! !!%! $$! !!%! $$! !!%! $$! !(1! #!) !!%! $$! !!%! $$! !!%! $$! !!%! #!# !#'!#|&H|&V$$##|&H|&V!$)! $$$ $$% !#'! $$# $$$ !#'! $$# $$&  # $$!  # $$!  $ $&! !#'! $$# $$&  # $$!  # $$!  $ $&! !#'! $$# $$% !#'! $$# !#'! $$# $$$  $ !%+! !#(% $$& $$'  % !$)! $$$ $$%  %  % !#'! $$# $$%  $ !%+! $$%  !#|*f|&W !#|*f|&T !#|*f|&U!!%!!|&X$$!!|&X $ !#'! $$# $$$ !!%! #!# !!'! #!$ !#'! #!$ !#'! #!$ !#'! $$# !1C! #!2 !1C! $$1 $$1 $$1 $$1 $$1 #!! !!%! #$# ##! #!! #%! #!! !&+!#|(w|&m$$&#|(w|&m $ !#&'#|(w|&m$!'#|(w|&m$$&#|(w|&m$$(#|(w|&m$$!!|(w$!+!|&m$!&!|&m!&+!!|&m!!$&!|&m$$%!|&m$$# $$# $!# !&+!&|(x|&{|&w|&s|&r!#&#%|(x|&{|&w|&r$$#%|(x|&{|&w|&r$$+%|(x|&{|&w|&r$$+#|(x|&{$$+#|(x|&{$$# $$+#|(x|&{$$-#|(x|&{$$*#|(x|&{$$,#|(x|&{$$0#|(x|&{$$0#|(x|&{$$1#|(x|&{$$)#|(x|&{$$)#|(x|&{ $ $$#  # $$! $!)#|(x|&{$$)#|(x|&{$$0#|(x|&{$$0#|(x|&{$$-  $ $$( $$% $$#  # $$! $$# !%)!!|&t$$$!|&t!-9!!|' $$-!|' $$-!|' $$\/!|' $$.!|' $$.!|' $$.!|' $$\/!|' $$.!|' $$.!|' $$.!|' $&-!|' $$0!|' $$1 $$1  # $$! $&0 $!% $$$  %  1 $$0 $$0  # $$!  # $$!  # $$! !#%! $$! $$% $$% $$% $$#  !#|*f|&o!&+! $$!  # $$! !$(% $$% $$& $$( $$& $$& $$# $$# !!%!#|'t|&p!$)! $$$  $ $$# $$! !!#!(|)<|'k|'j|'9|&x|'*|'&$$!'|'k|'j|'9|&x|'*|'&$$!'|'k|'j|'9|&x|'*|'&!!#!(|)<|'k|'j|'9|&x|'(|'*$$!'|'k|'j|'9|&x|'(|'*$$!'|'k|'j|'9|&x|'(|'*!$'!!|'+$$#!|'+!$'!!|'#$$$!|'#$$$!|'#$$*!|'#$$*!|'#$$*!|'#$$(!|'#$!'!|'#$$&!|'#$!!  #!|'#$$%!|'#$$%!|'#$$%!|'#$$$!|'#$$$!|'#$$$!|'#$!!  #!|'#$!!  #!|'#$$$!|'#$$$!|'#$$$!|'#$!!  #!|'#$!!  #!|'# !!|'' !!|'%!#%!#|&u|'.!#%!!|'\/!%)!$|+V|'1|'2$$%!|'1 # $$%!|'1 # !!$%#|+V|'2$$$#|+V|'2$$%#|+V|'2$$!#|+V|'2$$%!|'1$$%!|'1$$%!|'1 $ $$# !!%! $$! !!#!!|'8!%)!$|*w|+U|':$$!!|*w #!|*w$$!!|*w!!$% $$$ $$$ $$! !%)!!|';$$$!|';$$$!|';!!%! $$! !#%!#|+U|'>$$! !!$# $$! !#%!!|'?$$!!|'?!#%! $$! !#%!!|$8$$! $$!  # $$!  # $$! !%)!$|+U|'G|'C$$! !!$% $&$ $$% $&! $&! $&! !%)!!|'D$$$!|'D ! !!%!!|'F!#%!$|+U|'H|'G$$!  # $$! !!$# $&! !#%!!|'I$$!!|'I!#%!!|$< # $$! !$'!$|(w|+W|'L$&#$|(w|+W|'L$$!$|(w|+W|'L$$!!|(w!$'!!|'M$$#!|'M!$'!!|$- # $$! !#%!#|$5|$3 # $$! !$'!!|$2 # $$!  # $$! !#%!!|$8$$! $$!  # $$! !$'!$|(w|+W|'S$$#$|(w|+W|'S$$!!|(w!#%!!|'T$$!!|'T!%)!$|(w|+W|'V$$$$|(w|+W|'V$$!!|(w!$'!!|'W$$#!|'W$$$!|'W!$'! !)3!%|(w|+W|+V|'Z$$)$|(w|+W|'Z$$!!|(w$$)  * $$)  # $$! !!$'#|+V|'Z$$!#|+V|'Z!$'!!|'[$$#!|'[$$#!|'[!'-!#|(w|+W!!$'#|(w|+W$$&#|(w|+W$$'#|(w|+W$$'#|(w|+W$$##|(w|+W$$!!|(w!)3!#|'`|'_$$) $$) !$'!!|'b$$#!|'b$$#!|'b!$'!  # $$! !$'!!|'1$$#!|'1$$)!|'1$$' !%)!$|(w|+W|'f$$!  # $$! $$!  # $$! !!$%$|(w|+W|'f$$$$|(w|+W|'f$$%$|(w|+W|'f$$!$|(w|+W|'f$$!!|(w!)3!!|'g$$)  * $$) !$'!!|'h$$#!|'h$$#!|'h!#'! #!$ !#'! $$# $$# !!%!!|'q!!%!!|'s!!%!!|'u!#%!!|'t #!|'t!!%! $$! !$)!!|(8$$#!|(8!!%!!|(8$$!!|(8!#'!4|(.|(-|(,|(+|(*|()|((|('|(&|(%|($|(#|(!|( |'{|'z|'y|'x|'w$$#4|(.|(-|(,|(+|(*|()|((|('|(&|(%|($|(#|(!|( |'{|'z|'y|'x|'w!'\/!%|&_|(S|(6|(5$$$#|&_|(S #!|(S$$##|&_|(S$$##|&_|(S $!|(S #!|(S $!|(S #!|(S &$|(S|(6|(5$$#!|(S #!|(S %#|(6|(5 $!|(6$$#!|(6 $ !#'!!|(8$$#!|(8!#'!!|(9!!#!!|(^!!%!!|(<$$!!|(<$$#!|(<!#'!!|(A$$!!|(A!!%!!|(@$$!!|(@!!%!!|(@!!%!!|(A$$!!|(A!#'!!|(B!!#!!|(Y!!%!!|(E$$!!|(E$$#!|(E!#'!!|(J$$!!|(J!!%!!|(I$$!!|(I!!%!!|(I!!%!!|(J$$!!|(J!#'!!|(K!!#!!|(W!!%!!|(N$$!!|(N$$#!|(N!!#!!|([!!%!!|(Q$$!!|(Q$$#!|(Q$$!!|(Q$$#!|(Q#!! #!! !'\/! #!( #4! #3! #2! #1! #0! #\/! #.! #-! #,! #*! #)! #(! #'! #%! #$! ##! #!! !#)! $$# $&# $$$ $$% $&#  $  $  # !#%!!|'v!#%!!|'v !!|'u!!%! !$'!#|(x|):$$##|(x|):$$!#|(x|):!!#!!|))!$'!!|)7$$#!|)7$$&!|)7!!#!!|),!.?! $&\/ $!2 $!2 $!3 $!3 $!3 $!4 $!4 $!4 $!2 $!4 $!4 $!3 $!3 $!5 $!5 !$'! $$# $$) !!#! !#%! !.?! $&\/ $!2 $!2 !$'! $$# $$) !$)! #!% !&-! #!' #$! ##! #!! !!%! $$! !!#!#|(x|)6!!#!!|)-!!$# !#&#  !!|); !!|)> !!|)<$$! !\/?! #!0 ##! #%! #$! ##! #!! !!%! $$! !!%! $$! !!%! $$! !'\/! #!( !!%! $$! !!%! $$! !!%! $$! !'1! #!) !&-! $$& $$( $$( $$( ##! #!! !#%!#|(z|)Q ##|(z|)Q #!|(z !!|(y!%)! $$$ $$$ $$#  $ !#&$ $$# !!$% $$$ $$$ $$# !!$#  $ !#&$ $$# $$$ $$$ $$#  $ !#&$ $$# !!%! $$! !#%!!|)P !#|*f|)U!#'! ##$ !#'! $$# !!%! #!# !!%! $$! #!! !(1!  & $$% $&% $$' $$& $$& $$( $$& $$& $!& $$$ $$( $$# $$# $$( $$% $$% !%)! $$$ !#&$ $$% $$( $$# !#&& $$% $$% $$# !!&# $$# !$)!!|)V$$%!|)V$$%!|)V!#&%!|)V$$&!|)V$$'!|)V!#&% $$% $$$ $$$ $$& $$! $$# $$& $$$ $$% $$#  $ $$# $$# $$$ $$% $$#  $ !#&% !$)!%u|%v|)o|)c$$%$u|%v|)c$&$!|)c$$%!|)c$$$!|)c$$# $$$!|)c$$# !#'! $$# $$# !!%! $$! !!%! $$! !!%! $$! !!%! $$! !!%! $$! !!%! $$! !!%! $$! !%+!&| C| >| B|)c|)`$$&&| C| >| B|)c|)`$$'&| C| >| B|)c|)`$$'&| C| >| B|)c|)`$&&&| C| >| B|)c|)`$$&$| >| B|)c$$&#| B|)c$$&!|)c$$# $$&!|)c$$# $$&#| B|)c$$%!|)c$$%!|)c$$# $$# $$%!|)c$$$!|)c$$'!|)`$$%!|)` %  % $&&!|)`$$(!|)`$$(!|)`$$(!|)`$$(!|)`$$(!|)`$$%!|)` !  !  ! !!%!!|*2$$!!|*2!4I! #!5 !#'! $$# $$# !!%! $$! !!%! $$! !!%! $$! !!%! $$! !!%! $$! !!%! $$! !!%! $$! !!%! $$! !!%! $$! !!%! $$! !!%! $$! !!%! $$! !!%! $$! !#'! $$# $$# !#'! $$# $$# !#'! $$# $$# !#'! $$# $$# !!%! $$! !#'!'| 8|)t|)s|)r|)p|)o$$$'| 8|)t|)s|)r|)p|)o$$#%|)t|)s|)r|)o$$!#|)s|)r$$$$| 8|)p|)o$$$#| 8|)p$$#!|)p$$! $$! !!%!!|*4!!%!!|*6!#'!  $ !$)! !!%! !#'! !!#!!|*Q!!%!!|*<$$!!|*<$$#!|*<!#'!'|*K|*I|*G|*E|*C|*A$$!'|*K|*I|*G|*E|*C|*A!!%!'|*J|*H|*F|*D|*B|*@$$!'|*J|*H|*F|*D|*B|*@!!%!!|*@!!%!!|*B!!%!!|*D!!%!!|*F!!%!!|*H!!%!!|*J!!%!'|*K|*I|*G|*E|*C|*A$$!'|*K|*I|*G|*E|*C|*A!#'!!|*L!!#!!|*T!!%!!|*U$$!!|*U$$#!|*U#'! #%! #!! !%+! #!& !!%! $$! !!%! $$! !#'! #!$ !!%! $$!  !!|*5 !!|*5 !!|*5!!%!!|*3!!%!!|*e #!|*e!$)! !&-! !#'! !!&$  % !%+! !!&&  &  !#|*f|*k!!%!!|*n$$!!|*n !#|*f|*m!!%!!|*p$$!!|*p!!%! !!%! $$! !#'! $$# $$# !#'! $$# $$# !$)! $$$ $$$ $$$  !#|*f|*l!)3! #!* !&-!  ' !!&'  % !$)!  % !!&%  % !&-!  ' !!&'  % !$)!  % !!&%  % !#'! !!#!!|+%!#%!%|)=|+)|+(|+'$$!%|)=|+)|+(|+'$$$$|)=|+(|+'$$$$|)=|+(|+'!#&#!|)=$$$ !#&# $$# $$$  $!|+($$$!|+($$!!|+($!( $$# $$# !#%! $$!  !#|'0|'-!#%!!|+-$$# !!%! #!#  !!|+$!#%!!|+*!!%!!|*f$$!!|*f # $&! !#'! $$# $$$ $$% $$% $$! !#'! $$#  $ !$)! !!&% $$%  $ !#'! $$#  $  $ !$'! $$# !$'! $$# !#%! !!%!!|)T!$'! $$#  $ !$'! $$# !%+! #!& !#'! #!$ !$)!  $ !!%! !!%! $$! !!%! $$! !!%! $$! !!%! $$! !!%! $$! !!%! !$'! $$# $$$ !%)! $$$ $$% $$% !#%! $$! !$'! $$# $$$ !)3! #!* !!%! $$! !!%! $$! !%)! $&% $$# $$'  #  $ !%)! $&$ $$% $$&  # !%)!#|+V|+U$$%#|+V|+U$$&#|+V|+U!#%!#|(w|+W$$!!|(w!%+!#|)=|)_!!$&#|)=|)_$$%#|)=|)_$$)!|)_$$' !%\/! #!( !$)! $$$ !&1! #!) !%+! $$% !$)! $$$ $$' !!%! $$! !!%! $$! !!%! ### #!! !!%! $$!  # $$!  # $$!  # $&! !#'! $$$ !!&% $$% $$' $$' !!&# !$*& $$( $$)  $  $ !!&$ !!&$  $ !$*& $$( $$)  $  # $$$ $$$ $$& $$$ $!$ $$$ !!&$ $$$ $$&  %  $ !#($ $$% $$' $$)  %  % !!%! !$)! !$)! !!&& $$&  $  $  #  # !$)! !!%!!|+j!!%!!|+l!$)! $$# !!%! $$! !#'! $$# !#'! !!#!!|,(!!%!!|+s$$!!|+s$$#!|+s!#'!!|+x$$!!|+x!!%!!|+w$$!!|+w!!%!!|+w!!%!!|+x$$!!|+x!#'!!|+y!!#!!|,&!!%!!|, $$!!|, $$#!|, #!! !!%! #!#  !!|+i!!'!#|+k|+m $!|+m!!%!+G|+;|,c|.,|.(|.)|,L|-d|-a|.0$$!+G|+;|,c|.,|.(|.)|,L|-d|-a|.0 #%G|,c|.,|-a!!&!(G|+;|.(|.)|,L|-d|.0$$!(G|+;|.(|.)|,L|-d|.0 #&|+;|.)|,L|-d|.0 !$|+;|,L|.0 #&|+;|.(|,L|-d|.0 #&|+;|.(|,L|-d|.0 !$|+;|,L|.0!!%!JG|&O|+_|+3|%y|#m|&Z|+>|+b|+h|+:|+e|+f|,^|+;|,t|,s|,q|,o|,r|,p|,_|,c|,d|.,|-t|-y|-u|.!|. |%m|*0|*.|*\/|,M|-j|-g|-a|-r|-e|&5$$!JG|&O|+_|+3|%y|#m|&Z|+>|+b|+h|+:|+e|+f|,^|+;|,t|,s|,q|,o|,r|,p|,_|,c|,d|.,|-t|-y|-u|.!|. |%m|*0|*.|*\/|,M|-j|-g|-a|-r|-e|&5 #%G|,c|.,|-a!!&#JG|&O|+_|+3|%y|#m|&Z|+>|+b|+h|+:|+e|+f|,^|+;|,t|,s|,q|,o|,r|,p|,_|,c|,d|.,|-t|-y|-u|.!|. |%m|*0|*.|*\/|,M|-j|-g|-a|-r|-e|&5$$#JG|&O|+_|+3|%y|#m|&Z|+>|+b|+h|+:|+e|+f|,^|+;|,t|,s|,q|,o|,r|,p|,_|,c|,d|.,|-t|-y|-u|.!|. |%m|*0|*.|*\/|,M|-j|-g|-a|-r|-e|&5 #(|%y|+:|+e|.!|%m|*.|-g !$|%y|%m|*. ##|.!|-g!!&$HG|&O|+_|+3|%y|#m|&Z|+>|+b|+h|+:|+e|+f|,^|+;|,t|,s|,q|,o|,r|,p|,_|,c|,d|.,|-t|-y|. |%m|*0|*.|*\/|,M|-j|-g|-a|-r|-e|&5 #(|%y|+:|+e|. |%m|*.|-g !$|%y|%m|*. ##|. |-g!!&%BG|&O|+_|+3|#m|&Z|+>|+b|+h|+f|,^|+;|,t|,s|,q|,o|,r|,p|,_|,c|,d|.,|-t|-y|*0|*.|*\/|,M|-j|-a|-r|-e|&5 #'|+>|+h|+;|,t|,_|-e !$|+>|,t|,_ #!|-e!!&%=G|&O|+_|+3|#m|&Z|+b|+f|,^|+;|,s|,q|,o|,r|,p|,c|,d|.,|-t|-y|*0|*.|*\/|,M|-j|-a|-r|&5 %!|,o &<G|&O|+_|+3|#m|&Z|+b|+f|,^|+;|,s|,q|,r|,p|,c|,d|.,|-t|-y|*0|*.|*\/|,M|-j|-a|-r|&5 #%G|,c|.,|-a!!&%:G|&O|+_|+3|#m|&Z|+b|+f|,^|+;|,s|,q|,r|,p|,c|,d|-t|-y|*0|*.|*\/|,M|-j|-r|&5$$%:G|&O|+_|+3|#m|&Z|+b|+f|,^|+;|,s|,q|,r|,p|,c|,d|-t|-y|*0|*.|*\/|,M|-j|-r|&5 #&|,d|-t|-y|-j|-r ##|-t|-r!!&%4|&O|+_|+3|#m|&Z|+b|+f|,^|+;|,s|,q|,r|,p|,c|*0|*.|*\/|,M|&5 #*|&O|+_|+3|#m|&Z|+b|,^|,M|&5 #(|&O|+3|#m|&Z|+b|,M|&5 #%|+3|#m|+b|&5 !#|#m|&5 #!|+b !#|&Z|,M!!&%*|+;|,s|,q|,r|,p|,c|*0|*.|*\/$$%*|+;|,s|,q|,r|,p|,c|*0|*.|*\/$$&*|+;|,s|,q|,r|,p|,c|*0|*.|*\/$$'*|+;|,s|,q|,r|,p|,c|*0|*.|*\/!!$$!|,c$$# $$#  ()|+;|,s|,q|,r|,p|*0|*.|*\/ #!|,r ((|+;|,s|,q|,p|*0|*.|*\/ (%|,p|*0|*.|*\/ $#|*.|*\/ #!|*\/ $#|*.|*\/ #!|*\/ !#|*0|*. !!|*0 #$|+;|,s|,q #!|,q #!|,s ##|-u|-r !$|+;|..|,0 !$|+;|..|,\/ !#|$Q|,N!#'! $$# $$$ !!%! $$! $$# $$$  $ $$# $$# $$#  # !!%! $$! $$# $$$  $ $$# $$# $$#  # !!%! $$! $$#  # $$! $$!  # !!%!#|,T|,X$$!#|,T|,X$&#!|,X$$$!|,X$$&!|,X$$(!|,X$$)!|,X ' !!&' $$' $$' $$' $$' $$( $$( $$( $$* $$* $$* $$+ $$+  $  %!|,X$$&!|,X$$$!|,X$$!!|,X!!&$ !!&$ $$$ $$% $$& $$' $$' $$' $$' $$' $$' $$' $$' !#($ $$% $$& $$& $$& $$& $$& $$' $$' !!&$ $$$ $$% $$& $$' $$' $$' $$( $$( $$( $$) $$) $$) $$* $$*  ' $$& $$&  ' $$& $$&  ' $$& $$&  ' $$& $$&  $  & $$%  & $$%  $ $$# $$#  & $$% $$% $$%  $ $$# $$#  $ $$# $$# $$#  $ $$# $$# $$#  # $$! $$!  % $$$ $$$ $$$ $$$ $$$ !!%! $$! $$#  # $$! $$!  # !!%! $$! $$# $$$  $ $$# $$# $$#  # !!%! $$! $$# $$$  $ $$# $$# $$#  #  !#|*f|,Y!#'! $$# $$# $$# $$# !#'!!|,T$$!!|,T$$!!|,T$&! !!&$ $$$ $$%  #  $  $  $ $$# $$# $$#  $ $$# $$# $$#  # $$! $$! !!&#  $ !!%! !#'! #!$ !#'! #!$ !!%! $$! !!%! !!%!  !  ! !!%! !'-! $$& $$& $$& $$& $$& !)1!!|,j$$(!|,j$$(!|,j$$(!|,j$$(!|,j$$(!|,j$$(!|,j!)1!#|,f|,e$$(#|,f|,e$$( $$( $$( !#%! $$! !#%! $$! !#%! $$! !#%! $$! !'-! !)1!!|,i!#%! !#%! !#%! !#%! !#%! !#%! !#%! !'-! !#%! $$! $$#  # $$! !!%! $$! $$# $$# !#%! $$! $$# !#%! $$! $$#  # $$! !!%! $$! $$# $$# !#%! $$! $$# !#%! $$! $$#  # $$! !!%! $$! $$# $$# !#%! $$! $$# !#%! $$! $$#  # $$! !!%! $$! $$# $$# !#%! $$! $$# !#%! $$! $$#  # $$! !!%! $$! $$# $$# !#%! $$! $$# !#%! !#%!  # $$! !#%! !#%!  # $$! !#%! !#%!  # $$! !#%! !#%!  # $$! !#%! !#%!  # $$! !!%!!|*f$$!!|*f!&-!!|->$$%!|->$$&!|->!#%! !#%! $$! $$# !#&$ $$$ $$% !!%! $$! !#%! !#%! $$! $$# !#&$ $$$ $$% !!%! $$! !#%! !#%! $$! $$# !#&$ $$$ $$% !!%! $$! !#%! !#%! $$! $$# !#&$ $$$ $$% !!%! $$! !#%! !#%! $$! $$# !#&$ $$$ $$% !!%! $$! !#%! !#%! $$! $$!  # !#&% $$# !#%! $$! !#%! !#%! $$! $$!  # !#&% $$# !#%! $$! !#%! !#%! $$! $$!  # !#&% $$# !#%! $$! !#%! !#%! $$! $$!  # !#&% $$# !#%! $$! !#%! !#%! $$! $$!  # !#&% $$# !#%! $$!  !  !  !  ! !%+! #!& !!%! #!# !#'!#|-?|-<$$##|-?|-<!#'!#|-?|-=$$##|-?|-=!!%! $$! !!%! $$! !%)! $$# $$#  $ !%)! !$'! $$! $$! !$'! $$! $$! !$'! !$'! !)1!!|,f$$) $$& $$& $$% $$% !!$& !!&%  $  # !%)!#|.#|.$!#(# !%)!#|.#|.&!#(# !%)!!|.%!%)!!|.'!&+! $$$ $$$ $$# !&+! $$% !&+! !!#! !!#! !$)! !$)! !!%! ",+", ,!,#%,%!&$!)!+!-!\/!1,3!4!5!;!>!A.L:=!C!F.L?@!I!K!M!N!O!P!S!V!Y!]!`!c.LML+)JNGIJKH;<!f!h!k!n!q#w#x!y!z!| !0|68euYf!| #0|68sv[t!| $!| ' !| )!| -!| \/ !| 0!| 1!| 4!| 7!| 9!| :!| =  +(|89% }$q!} 5B% |vO}#$K% }$Xb}#{N% } K]}'k<lmd2|85% }$q!} 5B% |vO}#$K% }$Xb}#{N% } K]}'k<n0 +(|89% }#^m} RZ% }'W*}!Na% }&)S|0d% }%a{} [Llmp2|85% }#^m} RZ% }'W*}!Na% }&)S|0d% }%a{} [Lq0!| >!| ?\/|*z^_c\/|*zghk!| B!| D!| F!| H!| K!| L!| N!| P!| R!| V!| Z!| _!| c!| g!| k!| o#| y-|!'% }$$(}((0-|!'%,-|!'#-|!'$!| z!| {#|! !|!!!|!#!|!$!|!&!|!(!|!)!|!+!|!-!|!1!|!5!|!9!|!=!|!A!|!C!|!E!|!I!|!K!|!M!|!O!|!P!|!R-|!'$-|!'%\/!|!X#|!Z!|!^!|!e!|!h!|!i!|!j!|!p!|#$!|#3!|#<!|#>!|#D!|#E!|#F&&-|!'% 1}((0!|#]#|#^!|#_*! | `& !|#c*!!| U| d& !|#g*!!| Y| h& !|#k*!!| ^| l& !|#o*!!| b| p& !|#s*!!| f| t& !|#w*!!| j| x& !|#{*!!| n|! & !|$$*!!| r|!%& !|$(*!!| v|!)& !|$,*!!| z|!-& !|$0*!!|!#|!1& !|$4*!!|!'|!5& !|$8*!!|!+|!9& !|$<*!!|!\/|!=& !|$@*!!|!3|!A& !|$D*!!|!7|!E& !|$H*!!|!;|!I& !|$L*!!|!?|!M& !|$P*!!|!C|!Q& !|$T*!!|!G|!U& !|$X*!!|!K|!Y& !|$]*!!|!O|!^& !|$a*!!|!S|!b& !|$e*!!|!W|!f& !|$i*!!|![|!j& !|$m*!!|!`|!n& !|$q*!!|!d|!r& !|$u*!!|!h|!v& !|$y*!!|!l|!z& !|%!*!!|!p|##& !|%&*!!|!t|#'& !|%**!!|!x|#+!|%,& !|%0& !|%4!|%6&!|%;!|%=!|%H -|!'$ !|%q  *! |#>&*! |#@*!!|#4|#A&*! |#C*!!|#7|#D *!!|#:|#F *!!|#<|#H&*! |#J*!!|#>|#K&*! |#M*!!|#A|#N&*! |#P*!!|#D|#Q *!!|#G|#S *!!|#I|#U!|%r !|%t!|%v&&#|%{!|& -|!'% }$$(}((0-|!'% }$$) !|&9!|&:-|!'#.|+k|#d|%s-|8D|#e-|!'%7!|&O!|',&,|'T!|'U!|'W!|'Y!|'[!|'^!|'`!|'b!|'d!|'f!|'k  !|'n&!|'t!|'z!|(A!|(P!|(W!|(_!|(b#|(c!|(d!|(e!|(q!|(r!|) !|),!|)-!|).!|)0,|)2!|)3!|)5    #|)7!|)8#|)>#|)?#|)@#|)A!|)B!|)L#|)]!|)^  !|)b!|)h -|!'%,!|)j2|2?|+l|(s|$A|$B|+l|+l!|)p!|)r!|)t!|)u!|)w!|)y!|){!|*!!|*#&&&!|*L !|*O!|*Q!|*R!|*T!|*U!|*V!|*W!|*[!|*_!|*`           &                                 *! |%3*!!|%)|%2*!!|%*|%1*!!|%+|%0*!!|%,|%\/*!!|%-|%.*!!|%.|%-*!!|%\/|%,*!!|%0|%+*!!|%1|%**!!|%2|%)*!!|%3|%(*!!|%4|%'*!!|%5|%&*!!|%6|%%*!!|%7|%$*!!|%8|%#*!!|%9|%!*!!|%:|% *!!|%;|${*!!|%<|$z*!!|%=|$y*!!|%>|$x*!!|%?|$w*!!|%@|$v*!!|%A|$u*!!|%B|$t*!!|%C|$s*!!|%D|$r*!!|%E|$q*!!|%F|$p*!!|%G|$o&&&&!|*e!|*o!|*v&&&!|*y*!!|%H|$n!|*{!|+(!|+*!|+,!|+6 !|+?#|+B!|+C!|+F!|+I!|+J!|+N!|+R&!|+U!|+X!|+Z-|!'$!|+^-|!'%\/-|!'#\/|+i|&MO|%r+*|+g|%w|+(|%i|%j|%l|%m|%n|%p|%q!|+d!|+f!|+h!|+j!|+l#|+o.2|&#|%o#|+p#|+q!|+r!|+t!|+v&*! |&*!|+x#|+z!|+{!|, !|,4  #|,5!|,6#|,7!|,8!|,9!|,A!|,B!|,C&*! |&;&*! |&=!|,S0|,t|&,|&.|&8|&9!|,s!|,u!|,w!|,z!|-!!|-%!|-'&&&!|-)!|-++(|-.|&C|&D|&E|&F|&G|&K|&L!|--!|-\/!|-1!|-3!|-5!|-7!|-9!|-<!|-?!|-H!|-Q!|-T!|-V!|-Z!|-`!|-e!|-i  #|-k #|-l#|-m!|-n!|-q!|-t!|-v &!|-x!|-z!|. !|.#!|.%,|.+!|.,,|..,|.\/,|.0,|.1.|-y|&q|&q!|.2-|.-|+l   2|2?|+l|) 0|' |+l|+l!|.<!|.B!|.c 2|2?|+l|) 0|'&|+l|+l!|.e!|\/( 2|2?|+l|) 0|'*|+l|+l#|\/.!|\/\/!|\/;!|\/<!|\/A !|\/D !|\/G-|8D|'4!|\/I#|\/f#|\/g !|\/h!|\/i!|\/j !|\/x   +(|89% }'P9}&6w% }$>>|pk% }'d8}!h=% }#s:} hz|'?|'@|'A2|85% }'P9}&6w% }$>>|pk% }'d8}!h=% }#s:} hz|'B0!|\/z !|\/{!|0(!|0+ !|0-!|01!|03!|05 !|0<!|0D#|0F!|0G !|0H!|0N!|0P !|0S!|0W!|0Y!|0]!|0`!|0e !|0j!|0m !|0o!|0r!|0u !|0v!|1%&!|1( &!|1\/!|12!|15!|18 !|1<!|1H!|1L+\/|3;|'G|'K|'L|'M|'P|'U|'V|'Y|'Z|'[|']|'^|'a|'d2|3H|'e|'h|'n|'o|'p|'t!|1O!|1Q.|1P%\/#.|1P$#!|1T0|68|(Y|(j|'{|(Z!|1U0|68|(P|(k|(!|(Q!|1V0|68|(G|(l|($|(H!|1W                   !|1Y&*! |(;&!|1[!|1^!|1` &!|1b!|1r!|1t !|1u!|1v!|1y!|1{ !|2!!|2#!|2% !|2&!|2'!|2*!|2, !|2.!|2\/!|21 !|22!|23 !|26!|27   +(|89% |SD}!C.% }'?V}#mX% }$D(| )% }$Hh|x6|(`|(a|(X2|85% |SD}!C.% }'?V}#mX% }$D(| )% }$Hh|x6|(b0+(|89% }'nc}!lM% }#tR|;J% } ZV}%^\/% }$1F}&r_|(`|(a|(O2|85% }'nc}!lM% }#tR|;J% } ZV}%^\/% }$1F}&r_|(d0+(|89% |UJ}%U[% }$H`}$>o% }( V}#o2% }$%_|bE|(`|(a|([2|85% |UJ}%U[% }$H`}$>o% }( V}#o2% }$%_|bE|(f0+(|89% }#\/f|da% }'Y8}#(W% }$b+} -,% }&w4}%oH|(`|(a|(F2|85% }#\/f|da% }'Y8}#(W% }$b+} -,% }&w4}%oH|(h0\/|*z|(R|(S|(W\/|*z|(I|(J|(N\/|*z|(>|(?|(E,|2<,|2=!|2>,|2@,|2A,|2B,|2C,|2D,|2E,|2F,|2G,|2H,|2I,|2J,|2K,|2L,|2M,|2N,|2O,|2P!|2Q!|2Z!|2[#|2]!|2^!|2_!|2b!|2c!|2f !|2g!|2x!|2{!|3 1|3,|)1|)+|)2|)2|)3!|3!!|3&1|3,|)6|)-|)2|)2|)3\/|3*|)\/|),|).!|3)!|3+,|3-,|3.,|3\/!|30  2|2?|+l|(v|)@|)?|+l|+l!|32  2|2?|+l|(v|)C|)D|+l|+l!|33#|36#|37#|38!|3:,|3<,|3=,|3>,|3?,|3@!|3A!|3C!|3E!|3G!|3I!|3K!|3M!|3O!|3Q,|3V,|3W!|3X#|3[!|3]!|3r!|3t #|3u!|3v!|3x!|3z!|4 ,|4#!|4$!|46!|4B!|4[&&-|!'$'!|4d!|4g!|4i!|4k!|4m''!|4o!|4q!|4s-|!'#!|4u'#|57#|58#|59!|5:!|5<!|5>!|5A!|5C!|5E!|5G!|5I!|5K!|5M!|5O!|5Q!|5S!|5U!|5W!|5Y!|5[!|5_!|5b!|5e+(|-.|*8|*6|*7|*4|)t|)w|)x0|+e|*9|*5|)y|*%+4|5=|*:|)o|*3|*1|*2|*'|)p|*0|*.|*\/|*-|*+|*,|**|*(|*)|)q|)r|)s!|5h!|5j!|5s0|68|*G|*c|*>|*H!|5t0|68|*a|*d|*@|*b!|5u!|5w!|5x!|5y !|5z!|5{!|6#!|6% !|6' !|6( !|6) !|6* !|6+ !|6,!|6-!|6\/  +(|89% }&2n}#1A% }#A<}#)C% }$R-}#;$% }&W`}&y<|*Y|*Z|*F2|85% }&2n}#1A% }#A<}#)C% }$R-}#;$% }&W`}&y<|*[0 +(|89% } ?w}%cb% }'r5}!mI% }#JS}#]5% }%nF}! k|*Y|*Z|*^2|85% } ?w}%cb% }'r5}!mI% }#JS}#]5% }%nF}! k|*_0!|60!|61\/|*z|*C|*D|*E\/|*z|*I|*J|*X,|64,|65,|66!|67!|69!|6;!|6=!|6?#|6A#|6B#|6C!|6D!|6E!|6G!|6H!|6I!|6L   #|6O!|6P#|6R!|6S!|6U!|6V!|6X!|6[!|6_#|6c+)|6e|*z|+ |+!|+!|+#|+$|+%|+&!|6d!|6f!|6j!|6n!|6r!|6v!|6w!|6x!|7,  #|7.!|7\/&!|71#|73!|74!|75!|79!|7?!|7B!|7F!|7J!|7L!|7N!|7O!|7P!|7S.|7X|+C|+D0|7V|+?|+@|+A|+B!|7U!|7W!|7Y!|7[!|7]!|7_!|7a!|7c!|7e!|7g!|7h!|7k!|7o!|7q&+)|7u|+P|+P|$_|$^|+Q|+R|+S|+T!|7t!|7v!|7x!|7z!|8%&  2|2?|+l|)!|+^|+_|+l|+l!|8*!|8-!|8\/!|84!|86!|88!|8:!|8<!|8?!|8A!|8C,|8E!|8F*! 0!|8N!|8t!|8u!|8v!|9!!|9#0|68|,,|,5|+t|,-!|9$0|68|,#|,4|+v|,$ !|9%!|9'!|9)!|9+ !|9,!|9-!|90!|92 !|94!|95!|97 !|98!|99  +(|89% }#{p} ;>% }%Z-}$wb% } ^U}&\/y% }$r5}#3k|,.|,\/|,+2|85% }#{p} ;>% }%Z-}$wb% } ^U}&\/y% }$r5}#3k|,00+(|89% }'#w} ))% |#,}#`*% }&*M}$m^% |(k}$&w|,.|,\/|,!2|85% }'#w} ))% |#,}#`*% }&*M}$m^% |(k}$&w|,20\/|*z|+y|+z|, \/|*z|,%|,&|,*,|9<!|9=#|9?!|9@!|9B!|9L *! |,< *!!|,2|,> *!!|,4|,@ *!!|,6|,B *!!|,8|,D *!!|,:|,F *!!|,<|,H *!!|,>|,J *!!|,@|,L *!!|,B|,N *!!|,D|,P *!!|,F|,R *!!|,H|,T #|:&*!!|,J|,V#|:'#|:(!|:)!|:,!|:5!|:>!|:E!|;V!|;^!|;g#|;p !|;q'.2|,g|,g!|;v!|<2!|<3!|<5!|<7!|<9!|<:#|<;#|<<!|<=!|<>!|<D!|<K!|<P!|<R!|<T!|<V!|<X!|<Y!|<Z!|<[!|<]!|<^!|<_!|<`!|<a!|<b!|<c!|<h!|<l!|<o!|<t!|<x!|<{!|=%!|=)!|=,!|=1!|=5!|=8!|==!|=A!|=D-|8D0!|=E!|=H-|8D0!|=I!|=L-|8D0!|=M!|=P-|8D0!|=Q!|=T-|8D0!|=U  !|=X!|=Z!|=^!|=_!|=e!|=g!|=h!|=n!|=p!|=q!|=w!|=y!|=z!|>%!|>'!|>(!|>.!|>0!|>1!|>7!|>9!|>:!|>@!|>B!|>C!|>I!|>K!|>L!|>R!|>T!|>U!|>[.|<6|-W|-X.|<4|-g|-i#|>^.|<6|-T|-U.|<4|-d|-f#|>_.|<6|-Q|-R.|<4|-a|-c#|>`.|<6|-N|-O.|<4|-^|-`#|>a.|<6|-K|-L.|<4|-Z|-]!|>b!|>d0|>c|-v|-w|-y|-M0|>c|-s|-t|-y|-P0|>c|-p|-q|-y|-S0|>c|-m|-n|-y|-V0|>c|-j|-k|-y|-Y!|>f!|>h!|>j!|>l!|>n!|>r!|>s!|>v!|>y!|>z!|>{ !|?* !|?,!|?.!|?\/!|?0!|?4!|?6!|?7!|?8!|?9!|?:!|?;");+h$staticDelayed = [];
+ ghcjs/ghcjs-demo.jsexe/rts.js view
@@ -0,0 +1,20908 @@+var h$currentThread = null;+var h$stack = null;+var h$sp = 0;+var h$initStatic = [];+var h$staticThunks = {};+var h$staticThunksArr = [];+var h$regs = [];+var h$r1 = 0;+var h$r2 = 0;+var h$r3 = 0;+var h$r4 = 0;+var h$r5 = 0;+var h$r6 = 0;+var h$r7 = 0;+var h$r8 = 0;+var h$r9 = 0;+var h$r10 = 0;+var h$r11 = 0;+var h$r12 = 0;+var h$r13 = 0;+var h$r14 = 0;+var h$r15 = 0;+var h$r16 = 0;+var h$r17 = 0;+var h$r18 = 0;+var h$r19 = 0;+var h$r20 = 0;+var h$r21 = 0;+var h$r22 = 0;+var h$r23 = 0;+var h$r24 = 0;+var h$r25 = 0;+var h$r26 = 0;+var h$r27 = 0;+var h$r28 = 0;+var h$r29 = 0;+var h$r30 = 0;+var h$r31 = 0;+var h$r32 = 0;+function h$getReg(h$RTSD_0)+{+  switch (h$RTSD_0)+  {+    case (1):+      return h$r1;+    case (2):+      return h$r2;+    case (3):+      return h$r3;+    case (4):+      return h$r4;+    case (5):+      return h$r5;+    case (6):+      return h$r6;+    case (7):+      return h$r7;+    case (8):+      return h$r8;+    case (9):+      return h$r9;+    case (10):+      return h$r10;+    case (11):+      return h$r11;+    case (12):+      return h$r12;+    case (13):+      return h$r13;+    case (14):+      return h$r14;+    case (15):+      return h$r15;+    case (16):+      return h$r16;+    case (17):+      return h$r17;+    case (18):+      return h$r18;+    case (19):+      return h$r19;+    case (20):+      return h$r20;+    case (21):+      return h$r21;+    case (22):+      return h$r22;+    case (23):+      return h$r23;+    case (24):+      return h$r24;+    case (25):+      return h$r25;+    case (26):+      return h$r26;+    case (27):+      return h$r27;+    case (28):+      return h$r28;+    case (29):+      return h$r29;+    case (30):+      return h$r30;+    case (31):+      return h$r31;+    case (32):+      return h$r32;+    case (33):+      return h$regs[0];+    case (34):+      return h$regs[1];+    case (35):+      return h$regs[2];+    case (36):+      return h$regs[3];+    case (37):+      return h$regs[4];+    case (38):+      return h$regs[5];+    case (39):+      return h$regs[6];+    case (40):+      return h$regs[7];+    case (41):+      return h$regs[8];+    case (42):+      return h$regs[9];+    case (43):+      return h$regs[10];+    case (44):+      return h$regs[11];+    case (45):+      return h$regs[12];+    case (46):+      return h$regs[13];+    case (47):+      return h$regs[14];+    case (48):+      return h$regs[15];+    case (49):+      return h$regs[16];+    case (50):+      return h$regs[17];+    case (51):+      return h$regs[18];+    case (52):+      return h$regs[19];+    case (53):+      return h$regs[20];+    case (54):+      return h$regs[21];+    case (55):+      return h$regs[22];+    case (56):+      return h$regs[23];+    case (57):+      return h$regs[24];+    case (58):+      return h$regs[25];+    case (59):+      return h$regs[26];+    case (60):+      return h$regs[27];+    case (61):+      return h$regs[28];+    case (62):+      return h$regs[29];+    case (63):+      return h$regs[30];+    case (64):+      return h$regs[31];+    case (65):+      return h$regs[32];+    case (66):+      return h$regs[33];+    case (67):+      return h$regs[34];+    case (68):+      return h$regs[35];+    case (69):+      return h$regs[36];+    case (70):+      return h$regs[37];+    case (71):+      return h$regs[38];+    case (72):+      return h$regs[39];+    case (73):+      return h$regs[40];+    case (74):+      return h$regs[41];+    case (75):+      return h$regs[42];+    case (76):+      return h$regs[43];+    case (77):+      return h$regs[44];+    case (78):+      return h$regs[45];+    case (79):+      return h$regs[46];+    case (80):+      return h$regs[47];+    case (81):+      return h$regs[48];+    case (82):+      return h$regs[49];+    case (83):+      return h$regs[50];+    case (84):+      return h$regs[51];+    case (85):+      return h$regs[52];+    case (86):+      return h$regs[53];+    case (87):+      return h$regs[54];+    case (88):+      return h$regs[55];+    case (89):+      return h$regs[56];+    case (90):+      return h$regs[57];+    case (91):+      return h$regs[58];+    case (92):+      return h$regs[59];+    case (93):+      return h$regs[60];+    case (94):+      return h$regs[61];+    case (95):+      return h$regs[62];+    case (96):+      return h$regs[63];+    case (97):+      return h$regs[64];+    case (98):+      return h$regs[65];+    case (99):+      return h$regs[66];+    case (100):+      return h$regs[67];+    case (101):+      return h$regs[68];+    case (102):+      return h$regs[69];+    case (103):+      return h$regs[70];+    case (104):+      return h$regs[71];+    case (105):+      return h$regs[72];+    case (106):+      return h$regs[73];+    case (107):+      return h$regs[74];+    case (108):+      return h$regs[75];+    case (109):+      return h$regs[76];+    case (110):+      return h$regs[77];+    case (111):+      return h$regs[78];+    case (112):+      return h$regs[79];+    case (113):+      return h$regs[80];+    case (114):+      return h$regs[81];+    case (115):+      return h$regs[82];+    case (116):+      return h$regs[83];+    case (117):+      return h$regs[84];+    case (118):+      return h$regs[85];+    case (119):+      return h$regs[86];+    case (120):+      return h$regs[87];+    case (121):+      return h$regs[88];+    case (122):+      return h$regs[89];+    case (123):+      return h$regs[90];+    case (124):+      return h$regs[91];+    case (125):+      return h$regs[92];+    case (126):+      return h$regs[93];+    case (127):+      return h$regs[94];+    case (128):+      return h$regs[95];+    default:+  };+};+function h$setReg(h$RTSD_1, h$RTSD_2)+{+  switch (h$RTSD_1)+  {+    case (1):+      h$r1 = h$RTSD_2;+      return undefined;+    case (2):+      h$r2 = h$RTSD_2;+      return undefined;+    case (3):+      h$r3 = h$RTSD_2;+      return undefined;+    case (4):+      h$r4 = h$RTSD_2;+      return undefined;+    case (5):+      h$r5 = h$RTSD_2;+      return undefined;+    case (6):+      h$r6 = h$RTSD_2;+      return undefined;+    case (7):+      h$r7 = h$RTSD_2;+      return undefined;+    case (8):+      h$r8 = h$RTSD_2;+      return undefined;+    case (9):+      h$r9 = h$RTSD_2;+      return undefined;+    case (10):+      h$r10 = h$RTSD_2;+      return undefined;+    case (11):+      h$r11 = h$RTSD_2;+      return undefined;+    case (12):+      h$r12 = h$RTSD_2;+      return undefined;+    case (13):+      h$r13 = h$RTSD_2;+      return undefined;+    case (14):+      h$r14 = h$RTSD_2;+      return undefined;+    case (15):+      h$r15 = h$RTSD_2;+      return undefined;+    case (16):+      h$r16 = h$RTSD_2;+      return undefined;+    case (17):+      h$r17 = h$RTSD_2;+      return undefined;+    case (18):+      h$r18 = h$RTSD_2;+      return undefined;+    case (19):+      h$r19 = h$RTSD_2;+      return undefined;+    case (20):+      h$r20 = h$RTSD_2;+      return undefined;+    case (21):+      h$r21 = h$RTSD_2;+      return undefined;+    case (22):+      h$r22 = h$RTSD_2;+      return undefined;+    case (23):+      h$r23 = h$RTSD_2;+      return undefined;+    case (24):+      h$r24 = h$RTSD_2;+      return undefined;+    case (25):+      h$r25 = h$RTSD_2;+      return undefined;+    case (26):+      h$r26 = h$RTSD_2;+      return undefined;+    case (27):+      h$r27 = h$RTSD_2;+      return undefined;+    case (28):+      h$r28 = h$RTSD_2;+      return undefined;+    case (29):+      h$r29 = h$RTSD_2;+      return undefined;+    case (30):+      h$r30 = h$RTSD_2;+      return undefined;+    case (31):+      h$r31 = h$RTSD_2;+      return undefined;+    case (32):+      h$r32 = h$RTSD_2;+      return undefined;+    case (33):+      h$regs[0] = h$RTSD_2;+      return undefined;+    case (34):+      h$regs[1] = h$RTSD_2;+      return undefined;+    case (35):+      h$regs[2] = h$RTSD_2;+      return undefined;+    case (36):+      h$regs[3] = h$RTSD_2;+      return undefined;+    case (37):+      h$regs[4] = h$RTSD_2;+      return undefined;+    case (38):+      h$regs[5] = h$RTSD_2;+      return undefined;+    case (39):+      h$regs[6] = h$RTSD_2;+      return undefined;+    case (40):+      h$regs[7] = h$RTSD_2;+      return undefined;+    case (41):+      h$regs[8] = h$RTSD_2;+      return undefined;+    case (42):+      h$regs[9] = h$RTSD_2;+      return undefined;+    case (43):+      h$regs[10] = h$RTSD_2;+      return undefined;+    case (44):+      h$regs[11] = h$RTSD_2;+      return undefined;+    case (45):+      h$regs[12] = h$RTSD_2;+      return undefined;+    case (46):+      h$regs[13] = h$RTSD_2;+      return undefined;+    case (47):+      h$regs[14] = h$RTSD_2;+      return undefined;+    case (48):+      h$regs[15] = h$RTSD_2;+      return undefined;+    case (49):+      h$regs[16] = h$RTSD_2;+      return undefined;+    case (50):+      h$regs[17] = h$RTSD_2;+      return undefined;+    case (51):+      h$regs[18] = h$RTSD_2;+      return undefined;+    case (52):+      h$regs[19] = h$RTSD_2;+      return undefined;+    case (53):+      h$regs[20] = h$RTSD_2;+      return undefined;+    case (54):+      h$regs[21] = h$RTSD_2;+      return undefined;+    case (55):+      h$regs[22] = h$RTSD_2;+      return undefined;+    case (56):+      h$regs[23] = h$RTSD_2;+      return undefined;+    case (57):+      h$regs[24] = h$RTSD_2;+      return undefined;+    case (58):+      h$regs[25] = h$RTSD_2;+      return undefined;+    case (59):+      h$regs[26] = h$RTSD_2;+      return undefined;+    case (60):+      h$regs[27] = h$RTSD_2;+      return undefined;+    case (61):+      h$regs[28] = h$RTSD_2;+      return undefined;+    case (62):+      h$regs[29] = h$RTSD_2;+      return undefined;+    case (63):+      h$regs[30] = h$RTSD_2;+      return undefined;+    case (64):+      h$regs[31] = h$RTSD_2;+      return undefined;+    case (65):+      h$regs[32] = h$RTSD_2;+      return undefined;+    case (66):+      h$regs[33] = h$RTSD_2;+      return undefined;+    case (67):+      h$regs[34] = h$RTSD_2;+      return undefined;+    case (68):+      h$regs[35] = h$RTSD_2;+      return undefined;+    case (69):+      h$regs[36] = h$RTSD_2;+      return undefined;+    case (70):+      h$regs[37] = h$RTSD_2;+      return undefined;+    case (71):+      h$regs[38] = h$RTSD_2;+      return undefined;+    case (72):+      h$regs[39] = h$RTSD_2;+      return undefined;+    case (73):+      h$regs[40] = h$RTSD_2;+      return undefined;+    case (74):+      h$regs[41] = h$RTSD_2;+      return undefined;+    case (75):+      h$regs[42] = h$RTSD_2;+      return undefined;+    case (76):+      h$regs[43] = h$RTSD_2;+      return undefined;+    case (77):+      h$regs[44] = h$RTSD_2;+      return undefined;+    case (78):+      h$regs[45] = h$RTSD_2;+      return undefined;+    case (79):+      h$regs[46] = h$RTSD_2;+      return undefined;+    case (80):+      h$regs[47] = h$RTSD_2;+      return undefined;+    case (81):+      h$regs[48] = h$RTSD_2;+      return undefined;+    case (82):+      h$regs[49] = h$RTSD_2;+      return undefined;+    case (83):+      h$regs[50] = h$RTSD_2;+      return undefined;+    case (84):+      h$regs[51] = h$RTSD_2;+      return undefined;+    case (85):+      h$regs[52] = h$RTSD_2;+      return undefined;+    case (86):+      h$regs[53] = h$RTSD_2;+      return undefined;+    case (87):+      h$regs[54] = h$RTSD_2;+      return undefined;+    case (88):+      h$regs[55] = h$RTSD_2;+      return undefined;+    case (89):+      h$regs[56] = h$RTSD_2;+      return undefined;+    case (90):+      h$regs[57] = h$RTSD_2;+      return undefined;+    case (91):+      h$regs[58] = h$RTSD_2;+      return undefined;+    case (92):+      h$regs[59] = h$RTSD_2;+      return undefined;+    case (93):+      h$regs[60] = h$RTSD_2;+      return undefined;+    case (94):+      h$regs[61] = h$RTSD_2;+      return undefined;+    case (95):+      h$regs[62] = h$RTSD_2;+      return undefined;+    case (96):+      h$regs[63] = h$RTSD_2;+      return undefined;+    case (97):+      h$regs[64] = h$RTSD_2;+      return undefined;+    case (98):+      h$regs[65] = h$RTSD_2;+      return undefined;+    case (99):+      h$regs[66] = h$RTSD_2;+      return undefined;+    case (100):+      h$regs[67] = h$RTSD_2;+      return undefined;+    case (101):+      h$regs[68] = h$RTSD_2;+      return undefined;+    case (102):+      h$regs[69] = h$RTSD_2;+      return undefined;+    case (103):+      h$regs[70] = h$RTSD_2;+      return undefined;+    case (104):+      h$regs[71] = h$RTSD_2;+      return undefined;+    case (105):+      h$regs[72] = h$RTSD_2;+      return undefined;+    case (106):+      h$regs[73] = h$RTSD_2;+      return undefined;+    case (107):+      h$regs[74] = h$RTSD_2;+      return undefined;+    case (108):+      h$regs[75] = h$RTSD_2;+      return undefined;+    case (109):+      h$regs[76] = h$RTSD_2;+      return undefined;+    case (110):+      h$regs[77] = h$RTSD_2;+      return undefined;+    case (111):+      h$regs[78] = h$RTSD_2;+      return undefined;+    case (112):+      h$regs[79] = h$RTSD_2;+      return undefined;+    case (113):+      h$regs[80] = h$RTSD_2;+      return undefined;+    case (114):+      h$regs[81] = h$RTSD_2;+      return undefined;+    case (115):+      h$regs[82] = h$RTSD_2;+      return undefined;+    case (116):+      h$regs[83] = h$RTSD_2;+      return undefined;+    case (117):+      h$regs[84] = h$RTSD_2;+      return undefined;+    case (118):+      h$regs[85] = h$RTSD_2;+      return undefined;+    case (119):+      h$regs[86] = h$RTSD_2;+      return undefined;+    case (120):+      h$regs[87] = h$RTSD_2;+      return undefined;+    case (121):+      h$regs[88] = h$RTSD_2;+      return undefined;+    case (122):+      h$regs[89] = h$RTSD_2;+      return undefined;+    case (123):+      h$regs[90] = h$RTSD_2;+      return undefined;+    case (124):+      h$regs[91] = h$RTSD_2;+      return undefined;+    case (125):+      h$regs[92] = h$RTSD_2;+      return undefined;+    case (126):+      h$regs[93] = h$RTSD_2;+      return undefined;+    case (127):+      h$regs[94] = h$RTSD_2;+      return undefined;+    case (128):+      h$regs[95] = h$RTSD_2;+      return undefined;+    default:+  };+};+function h$l1(x1)+{+  h$r1 = x1;+};+function h$l2(x1, x2)+{+  h$r2 = x1;+  h$r1 = x2;+};+function h$l3(x1, x2, x3)+{+  h$r3 = x1;+  h$r2 = x2;+  h$r1 = x3;+};+function h$l4(x1, x2, x3, x4)+{+  h$r4 = x1;+  h$r3 = x2;+  h$r2 = x3;+  h$r1 = x4;+};+function h$l5(x1, x2, x3, x4, x5)+{+  h$r5 = x1;+  h$r4 = x2;+  h$r3 = x3;+  h$r2 = x4;+  h$r1 = x5;+};+function h$l6(x1, x2, x3, x4, x5, x6)+{+  h$r6 = x1;+  h$r5 = x2;+  h$r4 = x3;+  h$r3 = x4;+  h$r2 = x5;+  h$r1 = x6;+};+function h$l7(x1, x2, x3, x4, x5, x6, x7)+{+  h$r7 = x1;+  h$r6 = x2;+  h$r5 = x3;+  h$r4 = x4;+  h$r3 = x5;+  h$r2 = x6;+  h$r1 = x7;+};+function h$l8(x1, x2, x3, x4, x5, x6, x7, x8)+{+  h$r8 = x1;+  h$r7 = x2;+  h$r6 = x3;+  h$r5 = x4;+  h$r4 = x5;+  h$r3 = x6;+  h$r2 = x7;+  h$r1 = x8;+};+function h$l9(x1, x2, x3, x4, x5, x6, x7, x8, x9)+{+  h$r9 = x1;+  h$r8 = x2;+  h$r7 = x3;+  h$r6 = x4;+  h$r5 = x5;+  h$r4 = x6;+  h$r3 = x7;+  h$r2 = x8;+  h$r1 = x9;+};+function h$l10(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)+{+  h$r10 = x1;+  h$r9 = x2;+  h$r8 = x3;+  h$r7 = x4;+  h$r6 = x5;+  h$r5 = x6;+  h$r4 = x7;+  h$r3 = x8;+  h$r2 = x9;+  h$r1 = x10;+};+function h$l11(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)+{+  h$r11 = x1;+  h$r10 = x2;+  h$r9 = x3;+  h$r8 = x4;+  h$r7 = x5;+  h$r6 = x6;+  h$r5 = x7;+  h$r4 = x8;+  h$r3 = x9;+  h$r2 = x10;+  h$r1 = x11;+};+function h$l12(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)+{+  h$r12 = x1;+  h$r11 = x2;+  h$r10 = x3;+  h$r9 = x4;+  h$r8 = x5;+  h$r7 = x6;+  h$r6 = x7;+  h$r5 = x8;+  h$r4 = x9;+  h$r3 = x10;+  h$r2 = x11;+  h$r1 = x12;+};+function h$l13(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13)+{+  h$r13 = x1;+  h$r12 = x2;+  h$r11 = x3;+  h$r10 = x4;+  h$r9 = x5;+  h$r8 = x6;+  h$r7 = x7;+  h$r6 = x8;+  h$r5 = x9;+  h$r4 = x10;+  h$r3 = x11;+  h$r2 = x12;+  h$r1 = x13;+};+function h$l14(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14)+{+  h$r14 = x1;+  h$r13 = x2;+  h$r12 = x3;+  h$r11 = x4;+  h$r10 = x5;+  h$r9 = x6;+  h$r8 = x7;+  h$r7 = x8;+  h$r6 = x9;+  h$r5 = x10;+  h$r4 = x11;+  h$r3 = x12;+  h$r2 = x13;+  h$r1 = x14;+};+function h$l15(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)+{+  h$r15 = x1;+  h$r14 = x2;+  h$r13 = x3;+  h$r12 = x4;+  h$r11 = x5;+  h$r10 = x6;+  h$r9 = x7;+  h$r8 = x8;+  h$r7 = x9;+  h$r6 = x10;+  h$r5 = x11;+  h$r4 = x12;+  h$r3 = x13;+  h$r2 = x14;+  h$r1 = x15;+};+function h$l16(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16)+{+  h$r16 = x1;+  h$r15 = x2;+  h$r14 = x3;+  h$r13 = x4;+  h$r12 = x5;+  h$r11 = x6;+  h$r10 = x7;+  h$r9 = x8;+  h$r8 = x9;+  h$r7 = x10;+  h$r6 = x11;+  h$r5 = x12;+  h$r4 = x13;+  h$r3 = x14;+  h$r2 = x15;+  h$r1 = x16;+};+function h$l17(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)+{+  h$r17 = x1;+  h$r16 = x2;+  h$r15 = x3;+  h$r14 = x4;+  h$r13 = x5;+  h$r12 = x6;+  h$r11 = x7;+  h$r10 = x8;+  h$r9 = x9;+  h$r8 = x10;+  h$r7 = x11;+  h$r6 = x12;+  h$r5 = x13;+  h$r4 = x14;+  h$r3 = x15;+  h$r2 = x16;+  h$r1 = x17;+};+function h$l18(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18)+{+  h$r18 = x1;+  h$r17 = x2;+  h$r16 = x3;+  h$r15 = x4;+  h$r14 = x5;+  h$r13 = x6;+  h$r12 = x7;+  h$r11 = x8;+  h$r10 = x9;+  h$r9 = x10;+  h$r8 = x11;+  h$r7 = x12;+  h$r6 = x13;+  h$r5 = x14;+  h$r4 = x15;+  h$r3 = x16;+  h$r2 = x17;+  h$r1 = x18;+};+function h$l19(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19)+{+  h$r19 = x1;+  h$r18 = x2;+  h$r17 = x3;+  h$r16 = x4;+  h$r15 = x5;+  h$r14 = x6;+  h$r13 = x7;+  h$r12 = x8;+  h$r11 = x9;+  h$r10 = x10;+  h$r9 = x11;+  h$r8 = x12;+  h$r7 = x13;+  h$r6 = x14;+  h$r5 = x15;+  h$r4 = x16;+  h$r3 = x17;+  h$r2 = x18;+  h$r1 = x19;+};+function h$l20(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20)+{+  h$r20 = x1;+  h$r19 = x2;+  h$r18 = x3;+  h$r17 = x4;+  h$r16 = x5;+  h$r15 = x6;+  h$r14 = x7;+  h$r13 = x8;+  h$r12 = x9;+  h$r11 = x10;+  h$r10 = x11;+  h$r9 = x12;+  h$r8 = x13;+  h$r7 = x14;+  h$r6 = x15;+  h$r5 = x16;+  h$r4 = x17;+  h$r3 = x18;+  h$r2 = x19;+  h$r1 = x20;+};+function h$l21(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)+{+  h$r21 = x1;+  h$r20 = x2;+  h$r19 = x3;+  h$r18 = x4;+  h$r17 = x5;+  h$r16 = x6;+  h$r15 = x7;+  h$r14 = x8;+  h$r13 = x9;+  h$r12 = x10;+  h$r11 = x11;+  h$r10 = x12;+  h$r9 = x13;+  h$r8 = x14;+  h$r7 = x15;+  h$r6 = x16;+  h$r5 = x17;+  h$r4 = x18;+  h$r3 = x19;+  h$r2 = x20;+  h$r1 = x21;+};+function h$l22(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22)+{+  h$r22 = x1;+  h$r21 = x2;+  h$r20 = x3;+  h$r19 = x4;+  h$r18 = x5;+  h$r17 = x6;+  h$r16 = x7;+  h$r15 = x8;+  h$r14 = x9;+  h$r13 = x10;+  h$r12 = x11;+  h$r11 = x12;+  h$r10 = x13;+  h$r9 = x14;+  h$r8 = x15;+  h$r7 = x16;+  h$r6 = x17;+  h$r5 = x18;+  h$r4 = x19;+  h$r3 = x20;+  h$r2 = x21;+  h$r1 = x22;+};+function h$l23(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23)+{+  h$r23 = x1;+  h$r22 = x2;+  h$r21 = x3;+  h$r20 = x4;+  h$r19 = x5;+  h$r18 = x6;+  h$r17 = x7;+  h$r16 = x8;+  h$r15 = x9;+  h$r14 = x10;+  h$r13 = x11;+  h$r12 = x12;+  h$r11 = x13;+  h$r10 = x14;+  h$r9 = x15;+  h$r8 = x16;+  h$r7 = x17;+  h$r6 = x18;+  h$r5 = x19;+  h$r4 = x20;+  h$r3 = x21;+  h$r2 = x22;+  h$r1 = x23;+};+function h$l24(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23,+x24)+{+  h$r24 = x1;+  h$r23 = x2;+  h$r22 = x3;+  h$r21 = x4;+  h$r20 = x5;+  h$r19 = x6;+  h$r18 = x7;+  h$r17 = x8;+  h$r16 = x9;+  h$r15 = x10;+  h$r14 = x11;+  h$r13 = x12;+  h$r12 = x13;+  h$r11 = x14;+  h$r10 = x15;+  h$r9 = x16;+  h$r8 = x17;+  h$r7 = x18;+  h$r6 = x19;+  h$r5 = x20;+  h$r4 = x21;+  h$r3 = x22;+  h$r2 = x23;+  h$r1 = x24;+};+function h$l25(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23,+x24, x25)+{+  h$r25 = x1;+  h$r24 = x2;+  h$r23 = x3;+  h$r22 = x4;+  h$r21 = x5;+  h$r20 = x6;+  h$r19 = x7;+  h$r18 = x8;+  h$r17 = x9;+  h$r16 = x10;+  h$r15 = x11;+  h$r14 = x12;+  h$r13 = x13;+  h$r12 = x14;+  h$r11 = x15;+  h$r10 = x16;+  h$r9 = x17;+  h$r8 = x18;+  h$r7 = x19;+  h$r6 = x20;+  h$r5 = x21;+  h$r4 = x22;+  h$r3 = x23;+  h$r2 = x24;+  h$r1 = x25;+};+function h$l26(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23,+x24, x25, x26)+{+  h$r26 = x1;+  h$r25 = x2;+  h$r24 = x3;+  h$r23 = x4;+  h$r22 = x5;+  h$r21 = x6;+  h$r20 = x7;+  h$r19 = x8;+  h$r18 = x9;+  h$r17 = x10;+  h$r16 = x11;+  h$r15 = x12;+  h$r14 = x13;+  h$r13 = x14;+  h$r12 = x15;+  h$r11 = x16;+  h$r10 = x17;+  h$r9 = x18;+  h$r8 = x19;+  h$r7 = x20;+  h$r6 = x21;+  h$r5 = x22;+  h$r4 = x23;+  h$r3 = x24;+  h$r2 = x25;+  h$r1 = x26;+};+function h$l27(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23,+x24, x25, x26, x27)+{+  h$r27 = x1;+  h$r26 = x2;+  h$r25 = x3;+  h$r24 = x4;+  h$r23 = x5;+  h$r22 = x6;+  h$r21 = x7;+  h$r20 = x8;+  h$r19 = x9;+  h$r18 = x10;+  h$r17 = x11;+  h$r16 = x12;+  h$r15 = x13;+  h$r14 = x14;+  h$r13 = x15;+  h$r12 = x16;+  h$r11 = x17;+  h$r10 = x18;+  h$r9 = x19;+  h$r8 = x20;+  h$r7 = x21;+  h$r6 = x22;+  h$r5 = x23;+  h$r4 = x24;+  h$r3 = x25;+  h$r2 = x26;+  h$r1 = x27;+};+function h$l28(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23,+x24, x25, x26, x27, x28)+{+  h$r28 = x1;+  h$r27 = x2;+  h$r26 = x3;+  h$r25 = x4;+  h$r24 = x5;+  h$r23 = x6;+  h$r22 = x7;+  h$r21 = x8;+  h$r20 = x9;+  h$r19 = x10;+  h$r18 = x11;+  h$r17 = x12;+  h$r16 = x13;+  h$r15 = x14;+  h$r14 = x15;+  h$r13 = x16;+  h$r12 = x17;+  h$r11 = x18;+  h$r10 = x19;+  h$r9 = x20;+  h$r8 = x21;+  h$r7 = x22;+  h$r6 = x23;+  h$r5 = x24;+  h$r4 = x25;+  h$r3 = x26;+  h$r2 = x27;+  h$r1 = x28;+};+function h$l29(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23,+x24, x25, x26, x27, x28, x29)+{+  h$r29 = x1;+  h$r28 = x2;+  h$r27 = x3;+  h$r26 = x4;+  h$r25 = x5;+  h$r24 = x6;+  h$r23 = x7;+  h$r22 = x8;+  h$r21 = x9;+  h$r20 = x10;+  h$r19 = x11;+  h$r18 = x12;+  h$r17 = x13;+  h$r16 = x14;+  h$r15 = x15;+  h$r14 = x16;+  h$r13 = x17;+  h$r12 = x18;+  h$r11 = x19;+  h$r10 = x20;+  h$r9 = x21;+  h$r8 = x22;+  h$r7 = x23;+  h$r6 = x24;+  h$r5 = x25;+  h$r4 = x26;+  h$r3 = x27;+  h$r2 = x28;+  h$r1 = x29;+};+function h$l30(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23,+x24, x25, x26, x27, x28, x29, x30)+{+  h$r30 = x1;+  h$r29 = x2;+  h$r28 = x3;+  h$r27 = x4;+  h$r26 = x5;+  h$r25 = x6;+  h$r24 = x7;+  h$r23 = x8;+  h$r22 = x9;+  h$r21 = x10;+  h$r20 = x11;+  h$r19 = x12;+  h$r18 = x13;+  h$r17 = x14;+  h$r16 = x15;+  h$r15 = x16;+  h$r14 = x17;+  h$r13 = x18;+  h$r12 = x19;+  h$r11 = x20;+  h$r10 = x21;+  h$r9 = x22;+  h$r8 = x23;+  h$r7 = x24;+  h$r6 = x25;+  h$r5 = x26;+  h$r4 = x27;+  h$r3 = x28;+  h$r2 = x29;+  h$r1 = x30;+};+function h$l31(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23,+x24, x25, x26, x27, x28, x29, x30, x31)+{+  h$r31 = x1;+  h$r30 = x2;+  h$r29 = x3;+  h$r28 = x4;+  h$r27 = x5;+  h$r26 = x6;+  h$r25 = x7;+  h$r24 = x8;+  h$r23 = x9;+  h$r22 = x10;+  h$r21 = x11;+  h$r20 = x12;+  h$r19 = x13;+  h$r18 = x14;+  h$r17 = x15;+  h$r16 = x16;+  h$r15 = x17;+  h$r14 = x18;+  h$r13 = x19;+  h$r12 = x20;+  h$r11 = x21;+  h$r10 = x22;+  h$r9 = x23;+  h$r8 = x24;+  h$r7 = x25;+  h$r6 = x26;+  h$r5 = x27;+  h$r4 = x28;+  h$r3 = x29;+  h$r2 = x30;+  h$r1 = x31;+};+function h$l32(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23,+x24, x25, x26, x27, x28, x29, x30, x31, x32)+{+  h$r32 = x1;+  h$r31 = x2;+  h$r30 = x3;+  h$r29 = x4;+  h$r28 = x5;+  h$r27 = x6;+  h$r26 = x7;+  h$r25 = x8;+  h$r24 = x9;+  h$r23 = x10;+  h$r22 = x11;+  h$r21 = x12;+  h$r20 = x13;+  h$r19 = x14;+  h$r18 = x15;+  h$r17 = x16;+  h$r16 = x17;+  h$r15 = x18;+  h$r14 = x19;+  h$r13 = x20;+  h$r12 = x21;+  h$r11 = x22;+  h$r10 = x23;+  h$r9 = x24;+  h$r8 = x25;+  h$r7 = x26;+  h$r6 = x27;+  h$r5 = x28;+  h$r4 = x29;+  h$r3 = x30;+  h$r2 = x31;+  h$r1 = x32;+};+var h$ret1;+var h$ret2;+var h$ret3;+var h$ret4;+var h$ret5;+var h$ret6;+var h$ret7;+var h$ret8;+var h$ret9;+var h$ret10;+/* Copyright (C) 1991-2014 Free Software Foundation, Inc.+   This file is part of the GNU C Library.++   The GNU C Library is free software; you can redistribute it and/or+   modify it under the terms of the GNU Lesser General Public+   License as published by the Free Software Foundation; either+   version 2.1 of the License, or (at your option) any later version.++   The GNU C Library is distributed in the hope that it will be useful,+   but WITHOUT ANY WARRANTY; without even the implied warranty of+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+   Lesser General Public License for more details.++   You should have received a copy of the GNU Lesser General Public+   License along with the GNU C Library; if not, see+   <http://www.gnu.org/licenses/>.  */+/* This header is separate from features.h so that the compiler can+   include it implicitly at the start of every compilation.  It must+   not itself include <features.h> or any other header that includes+   <features.h> because the implicit include comes before any feature+   test macros that may be defined in a source file before it first+   explicitly includes a system header.  GCC knows the name of this+   header in order to preinclude it.  */+/* glibc's intent is to support the IEC 559 math functionality, real+   and complex.  If the GCC (4.9 and later) predefined macros+   specifying compiler intent are available, use them to determine+   whether the overall intent is to support these features; otherwise,+   presume an older compiler has intent to support these features and+   define these macros by default.  */+/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) /+   Unicode 6.0.  */+/* We do not support C11 <threads.h>.  */+/* platform-specific setup */+// top-level debug initialization needs this. declare it in case we aren't in the same file as out.js+function h$ghcjszmprimZCGHCJSziPrimziJSRef_con_e() { return h$stack[h$sp]; };+/*+   if browser mode is active (GHCJS_BROWSER is defined), all the runtime platform+   detection code should be removed by the preprocessor. The h$isPlatform variables+   are undeclared.++   in non-browser mode, use h$isNode, h$isJsShell, h$isBrowser to find the current+   platform.++   more platforms should be added here in the future+*/+var h$isNode = false; // runtime is node.js+var h$isJsShell = false; // runtime is SpiderMonkey jsshell+var h$isJsCore = false; // runtime is JavaScriptCore jsc+var h$isBrowser = false; // running in browser or everything else+// load all required node.js modules+if(typeof process !== undefined && (typeof h$TH !== 'undefined' || (typeof require !== 'undefined' && typeof module !== 'undefined' && module.exports))) {+    h$isNode = true;+    // we have to use these names for the closure compiler externs to work+    var fs = require('fs');+    var path = require('path');+    var os = require('os');+    var child_process = require('child_process');+    var h$fs = fs;+    var h$path = path;+    var h$os = os;+    var h$child = child_process;+    var h$process = process;+    var h$processConstants = process['binding']('constants');+} else if(typeof snarf !== 'undefined' && typeof evalInFrame !== 'undefined' && typeof countHeap !== 'undefined') {+    h$isJsShell = true;+    this.console = { log: this.print };+} else if(typeof numberOfDFGCompiles !== 'undefined' && typeof jscStack !== 'undefined') {+    h$isJsCore = true;+} else {+    h$isBrowser = true;+}+function h$getGlobal(that) {+    if(typeof global !== 'undefined') return global;+    return that;+}+/* Copyright (C) 1991-2014 Free Software Foundation, Inc.+   This file is part of the GNU C Library.++   The GNU C Library is free software; you can redistribute it and/or+   modify it under the terms of the GNU Lesser General Public+   License as published by the Free Software Foundation; either+   version 2.1 of the License, or (at your option) any later version.++   The GNU C Library is distributed in the hope that it will be useful,+   but WITHOUT ANY WARRANTY; without even the implied warranty of+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+   Lesser General Public License for more details.++   You should have received a copy of the GNU Lesser General Public+   License along with the GNU C Library; if not, see+   <http://www.gnu.org/licenses/>.  */+/* This header is separate from features.h so that the compiler can+   include it implicitly at the start of every compilation.  It must+   not itself include <features.h> or any other header that includes+   <features.h> because the implicit include comes before any feature+   test macros that may be defined in a source file before it first+   explicitly includes a system header.  GCC knows the name of this+   header in order to preinclude it.  */+/* glibc's intent is to support the IEC 559 math functionality, real+   and complex.  If the GCC (4.9 and later) predefined macros+   specifying compiler intent are available, use them to determine+   whether the overall intent is to support these features; otherwise,+   presume an older compiler has intent to support these features and+   define these macros by default.  */+/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) /+   Unicode 6.0.  */+/* We do not support C11 <threads.h>.  */+/*+  set up the google closure library. this is a rather hacky setup+  to make it work with our shims without requiring compilation+  or pulling in the google closure library module loader+ */+var goog = {};+goog.global = h$getGlobal(this);+goog.provide = function() { };+goog.require = function() { };+goog.isDef = function(val) { return val !== undefined; };+goog.inherits = function(childCtor, parentCtor) {+  /** @constructor */+  function tempCtor() {};+  tempCtor.prototype = parentCtor.prototype;+  childCtor.superClass_ = parentCtor.prototype;+  childCtor.prototype = new tempCtor();+  /** @override */+  childCtor.prototype.constructor = childCtor;+  /**+   * Calls superclass constructor/method.+   *+   * This function is only available if you use goog.inherits to+   * express inheritance relationships between classes.+   *+   * NOTE: This is a replacement for goog.base and for superClass_+   * property defined in childCtor.+   *+   * @param {!Object} me Should always be "this".+   * @param {string} methodName The method name to call. Calling+   *     superclass constructor can be done with the special string+   *     'constructor'.+   * @param {...*} var_args The arguments to pass to superclass+   *     method/constructor.+   * @return {*} The return value of the superclass method/constructor.+   */+  childCtor.base = function(me, methodName, var_args) {+    // Copying using loop to avoid deop due to passing arguments object to+    // function. This is faster in many JS engines as of late 2014.+    var args = new Array(arguments.length - 2);+    for (var i = 2; i < arguments.length; i++) {+      args[i - 2] = arguments[i];+    }+    return parentCtor.prototype[methodName].apply(me, args);+  };+};+goog.isString = function(v) {+    return typeof v === 'string';+}+goog.math = {};+goog.crypt = {};+/* Copyright (C) 1991-2014 Free Software Foundation, Inc.+   This file is part of the GNU C Library.++   The GNU C Library is free software; you can redistribute it and/or+   modify it under the terms of the GNU Lesser General Public+   License as published by the Free Software Foundation; either+   version 2.1 of the License, or (at your option) any later version.++   The GNU C Library is distributed in the hope that it will be useful,+   but WITHOUT ANY WARRANTY; without even the implied warranty of+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+   Lesser General Public License for more details.++   You should have received a copy of the GNU Lesser General Public+   License along with the GNU C Library; if not, see+   <http://www.gnu.org/licenses/>.  */+/* This header is separate from features.h so that the compiler can+   include it implicitly at the start of every compilation.  It must+   not itself include <features.h> or any other header that includes+   <features.h> because the implicit include comes before any feature+   test macros that may be defined in a source file before it first+   explicitly includes a system header.  GCC knows the name of this+   header in order to preinclude it.  */+/* glibc's intent is to support the IEC 559 math functionality, real+   and complex.  If the GCC (4.9 and later) predefined macros+   specifying compiler intent are available, use them to determine+   whether the overall intent is to support these features; otherwise,+   presume an older compiler has intent to support these features and+   define these macros by default.  */+/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) /+   Unicode 6.0.  */+/* We do not support C11 <threads.h>.  */+/*+ Copyright (c) 2010, Linden Research, Inc.+ Copyright (c) 2014, Joshua Bell++ Permission is hereby granted, free of charge, to any person obtaining a copy+ of this software and associated documentation files (the "Software"), to deal+ in the Software without restriction, including without limitation the rights+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+ copies of the Software, and to permit persons to whom the Software is+ furnished to do so, subject to the following conditions:++ The above copyright notice and this permission notice shall be included in+ all copies or substantial portions of the Software.++ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN+ THE SOFTWARE.+ $/LicenseInfo$+ */+// Original can be found at:+//   https://bitbucket.org/lindenlab/llsd+// Modifications by Joshua Bell inexorabletash@gmail.com+//   https://github.com/inexorabletash/polyfill+// ES3/ES5 implementation of the Krhonos Typed Array Specification+//   Ref: http://www.khronos.org/registry/typedarray/specs/latest/+//   Date: 2011-02-01+//+// Variations:+//  * Allows typed_array.get/set() as alias for subscripts (typed_array[])+//  * Gradually migrating structure from Khronos spec to ES6 spec+(function(global) {+  'use strict';+  var undefined = (void 0); // Paranoia+  // Beyond this value, index getters/setters (i.e. array[0], array[1]) are so slow to+  // create, and consume so much memory, that the browser appears frozen.+  var MAX_ARRAY_LENGTH = 1e5;+  // Approximations of internal ECMAScript conversion functions+  function Type(v) {+    switch(typeof v) {+    case 'undefined': return 'undefined';+    case 'boolean': return 'boolean';+    case 'number': return 'number';+    case 'string': return 'string';+    default: return v === null ? 'null' : 'object';+    }+  }+  // Class returns internal [[Class]] property, used to avoid cross-frame instanceof issues:+  function Class(v) { return Object.prototype.toString.call(v).replace(/^\[object *|\]$/g, ''); }+  function IsCallable(o) { return typeof o === 'function'; }+  function ToObject(v) {+    if (v === null || v === undefined) throw TypeError();+    return Object(v);+  }+  function ToInt32(v) { return v >> 0; }+  function ToUint32(v) { return v >>> 0; }+  // Snapshot intrinsics+  var LN2 = Math.LN2,+      abs = Math.abs,+      floor = Math.floor,+      log = Math.log,+      max = Math.max,+      min = Math.min,+      pow = Math.pow,+      round = Math.round;+  // emulate ES5 getter/setter API using legacy APIs+  // http://blogs.msdn.com/b/ie/archive/2010/09/07/transitioning-existing-code-to-the-es5-getter-setter-apis.aspx+  // (second clause tests for Object.defineProperty() in IE<9 that only supports extending DOM prototypes, but+  // note that IE<9 does not support __defineGetter__ or __defineSetter__ so it just renders the method harmless)+  (function() {+    var orig = Object.defineProperty;+    var dom_only = !(function(){try{return Object.defineProperty({},'x',{});}catch(_){return false;}}());+    if (!orig || dom_only) {+      Object.defineProperty = function (o, prop, desc) {+        // In IE8 try built-in implementation for defining properties on DOM prototypes.+        if (orig)+          try { return orig(o, prop, desc); } catch (_) {}+        if (o !== Object(o))+          throw TypeError('Object.defineProperty called on non-object');+        if (Object.prototype.__defineGetter__ && ('get' in desc))+          Object.prototype.__defineGetter__.call(o, prop, desc.get);+        if (Object.prototype.__defineSetter__ && ('set' in desc))+          Object.prototype.__defineSetter__.call(o, prop, desc.set);+        if ('value' in desc)+          o[prop] = desc.value;+        return o;+      };+    }+  }());+  // ES5: Make obj[index] an alias for obj._getter(index)/obj._setter(index, value)+  // for index in 0 ... obj.length+  function makeArrayAccessors(obj) {+    if (obj.length > MAX_ARRAY_LENGTH) throw RangeError('Array too large for polyfill');+    function makeArrayAccessor(index) {+      Object.defineProperty(obj, index, {+        'get': function() { return obj._getter(index); },+        'set': function(v) { obj._setter(index, v); },+        enumerable: true,+        configurable: false+      });+    }+    var i;+    for (i = 0; i < obj.length; i += 1) {+      makeArrayAccessor(i);+    }+  }+  // Internal conversion functions:+  //    pack<Type>()   - take a number (interpreted as Type), output a byte array+  //    unpack<Type>() - take a byte array, output a Type-like number+  function as_signed(value, bits) { var s = 32 - bits; return (value << s) >> s; }+  function as_unsigned(value, bits) { var s = 32 - bits; return (value << s) >>> s; }+  function packI8(n) { return [n & 0xff]; }+  function unpackI8(bytes) { return as_signed(bytes[0], 8); }+  function packU8(n) { return [n & 0xff]; }+  function unpackU8(bytes) { return as_unsigned(bytes[0], 8); }+  function packU8Clamped(n) { n = round(Number(n)); return [n < 0 ? 0 : n > 0xff ? 0xff : n & 0xff]; }+  function packI16(n) { return [(n >> 8) & 0xff, n & 0xff]; }+  function unpackI16(bytes) { return as_signed(bytes[0] << 8 | bytes[1], 16); }+  function packU16(n) { return [(n >> 8) & 0xff, n & 0xff]; }+  function unpackU16(bytes) { return as_unsigned(bytes[0] << 8 | bytes[1], 16); }+  function packI32(n) { return [(n >> 24) & 0xff, (n >> 16) & 0xff, (n >> 8) & 0xff, n & 0xff]; }+  function unpackI32(bytes) { return as_signed(bytes[0] << 24 | bytes[1] << 16 | bytes[2] << 8 | bytes[3], 32); }+  function packU32(n) { return [(n >> 24) & 0xff, (n >> 16) & 0xff, (n >> 8) & 0xff, n & 0xff]; }+  function unpackU32(bytes) { return as_unsigned(bytes[0] << 24 | bytes[1] << 16 | bytes[2] << 8 | bytes[3], 32); }+  function packIEEE754(v, ebits, fbits) {+    var bias = (1 << (ebits - 1)) - 1,+        s, e, f, ln,+        i, bits, str, bytes;+    function roundToEven(n) {+      var w = floor(n), f = n - w;+      if (f < 0.5)+        return w;+      if (f > 0.5)+        return w + 1;+      return w % 2 ? w + 1 : w;+    }+    // Compute sign, exponent, fraction+    if (v !== v) {+      // NaN+      // http://dev.w3.org/2006/webapi/WebIDL/#es-type-mapping+      e = (1 << ebits) - 1; f = pow(2, fbits - 1); s = 0;+    } else if (v === Infinity || v === -Infinity) {+      e = (1 << ebits) - 1; f = 0; s = (v < 0) ? 1 : 0;+    } else if (v === 0) {+      e = 0; f = 0; s = (1 / v === -Infinity) ? 1 : 0;+    } else {+      s = v < 0;+      v = abs(v);+      if (v >= pow(2, 1 - bias)) {+        e = min(floor(log(v) / LN2), 1023);+        f = roundToEven(v / pow(2, e) * pow(2, fbits));+        if (f / pow(2, fbits) >= 2) {+          e = e + 1;+          f = 1;+        }+        if (e > bias) {+          // Overflow+          e = (1 << ebits) - 1;+          f = 0;+        } else {+          // Normalized+          e = e + bias;+          f = f - pow(2, fbits);+        }+      } else {+        // Denormalized+        e = 0;+        f = roundToEven(v / pow(2, 1 - bias - fbits));+      }+    }+    // Pack sign, exponent, fraction+    bits = [];+    for (i = fbits; i; i -= 1) { bits.push(f % 2 ? 1 : 0); f = floor(f / 2); }+    for (i = ebits; i; i -= 1) { bits.push(e % 2 ? 1 : 0); e = floor(e / 2); }+    bits.push(s ? 1 : 0);+    bits.reverse();+    str = bits.join('');+    // Bits to bytes+    bytes = [];+    while (str.length) {+      bytes.push(parseInt(str.substring(0, 8), 2));+      str = str.substring(8);+    }+    return bytes;+  }+  function unpackIEEE754(bytes, ebits, fbits) {+    // Bytes to bits+    var bits = [], i, j, b, str,+        bias, s, e, f;+    for (i = bytes.length; i; i -= 1) {+      b = bytes[i - 1];+      for (j = 8; j; j -= 1) {+        bits.push(b % 2 ? 1 : 0); b = b >> 1;+      }+    }+    bits.reverse();+    str = bits.join('');+    // Unpack sign, exponent, fraction+    bias = (1 << (ebits - 1)) - 1;+    s = parseInt(str.substring(0, 1), 2) ? -1 : 1;+    e = parseInt(str.substring(1, 1 + ebits), 2);+    f = parseInt(str.substring(1 + ebits), 2);+    // Produce number+    if (e === (1 << ebits) - 1) {+      return f !== 0 ? NaN : s * Infinity;+    } else if (e > 0) {+      // Normalized+      return s * pow(2, e - bias) * (1 + f / pow(2, fbits));+    } else if (f !== 0) {+      // Denormalized+      return s * pow(2, -(bias - 1)) * (f / pow(2, fbits));+    } else {+      return s < 0 ? -0 : 0;+    }+  }+  function unpackF64(b) { return unpackIEEE754(b, 11, 52); }+  function packF64(v) { return packIEEE754(v, 11, 52); }+  function unpackF32(b) { return unpackIEEE754(b, 8, 23); }+  function packF32(v) { return packIEEE754(v, 8, 23); }+  //+  // 3 The ArrayBuffer Type+  //+  (function() {+    function ArrayBuffer(length) {+      length = ToInt32(length);+      if (length < 0) throw RangeError('ArrayBuffer size is not a small enough positive integer.');+      Object.defineProperty(this, 'byteLength', {value: length});+      Object.defineProperty(this, '_bytes', {value: Array(length)});+      for (var i = 0; i < length; i += 1)+        this._bytes[i] = 0;+    }+    global.ArrayBuffer = global.ArrayBuffer || ArrayBuffer;+    //+    // 5 The Typed Array View Types+    //+    function $TypedArray$() {+      // %TypedArray% ( length )+      if (!arguments.length || typeof arguments[0] !== 'object') {+        return (function(length) {+          length = ToInt32(length);+          if (length < 0) throw RangeError('length is not a small enough positive integer.');+          Object.defineProperty(this, 'length', {value: length});+          Object.defineProperty(this, 'byteLength', {value: length * this.BYTES_PER_ELEMENT});+          Object.defineProperty(this, 'buffer', {value: new ArrayBuffer(this.byteLength)});+          Object.defineProperty(this, 'byteOffset', {value: 0});+         }).apply(this, arguments);+      }+      // %TypedArray% ( typedArray )+      if (arguments.length >= 1 &&+          Type(arguments[0]) === 'object' &&+          arguments[0] instanceof $TypedArray$) {+        return (function(typedArray){+          if (this.constructor !== typedArray.constructor) throw TypeError();+          var byteLength = typedArray.length * this.BYTES_PER_ELEMENT;+          Object.defineProperty(this, 'buffer', {value: new ArrayBuffer(byteLength)});+          Object.defineProperty(this, 'byteLength', {value: byteLength});+          Object.defineProperty(this, 'byteOffset', {value: 0});+          Object.defineProperty(this, 'length', {value: typedArray.length});+          for (var i = 0; i < this.length; i += 1)+            this._setter(i, typedArray._getter(i));+        }).apply(this, arguments);+      }+      // %TypedArray% ( array )+      if (arguments.length >= 1 &&+          Type(arguments[0]) === 'object' &&+          !(arguments[0] instanceof $TypedArray$) &&+          !(arguments[0] instanceof ArrayBuffer || Class(arguments[0]) === 'ArrayBuffer')) {+        return (function(array) {+          var byteLength = array.length * this.BYTES_PER_ELEMENT;+          Object.defineProperty(this, 'buffer', {value: new ArrayBuffer(byteLength)});+          Object.defineProperty(this, 'byteLength', {value: byteLength});+          Object.defineProperty(this, 'byteOffset', {value: 0});+          Object.defineProperty(this, 'length', {value: array.length});+          for (var i = 0; i < this.length; i += 1) {+            var s = array[i];+            this._setter(i, Number(s));+          }+        }).apply(this, arguments);+      }+      // %TypedArray% ( buffer, byteOffset=0, length=undefined )+      if (arguments.length >= 1 &&+          Type(arguments[0]) === 'object' &&+          (arguments[0] instanceof ArrayBuffer || Class(arguments[0]) === 'ArrayBuffer')) {+        return (function(buffer, byteOffset, length) {+          byteOffset = ToUint32(byteOffset);+          if (byteOffset > buffer.byteLength)+            throw RangeError('byteOffset out of range');+          // The given byteOffset must be a multiple of the element+          // size of the specific type, otherwise an exception is raised.+          if (byteOffset % this.BYTES_PER_ELEMENT)+            throw RangeError('buffer length minus the byteOffset is not a multiple of the element size.');+          if (length === undefined) {+            var byteLength = buffer.byteLength - byteOffset;+            if (byteLength % this.BYTES_PER_ELEMENT)+              throw RangeError('length of buffer minus byteOffset not a multiple of the element size');+            length = byteLength / this.BYTES_PER_ELEMENT;+          } else {+            length = ToUint32(length);+            byteLength = length * this.BYTES_PER_ELEMENT;+          }+          if ((byteOffset + byteLength) > buffer.byteLength)+            throw RangeError('byteOffset and length reference an area beyond the end of the buffer');+          Object.defineProperty(this, 'buffer', {value: buffer});+          Object.defineProperty(this, 'byteLength', {value: byteLength});+          Object.defineProperty(this, 'byteOffset', {value: byteOffset});+          Object.defineProperty(this, 'length', {value: length});+        }).apply(this, arguments);+      }+      // %TypedArray% ( all other argument combinations )+      throw TypeError();+    }+    // Properties of the %TypedArray Instrinsic Object+    // %TypedArray%.from ( source , mapfn=undefined, thisArg=undefined )+    Object.defineProperty($TypedArray$, 'from', {value: function(iterable) {+      return new this(iterable);+    }});+    // %TypedArray%.of ( ...items )+    Object.defineProperty($TypedArray$, 'of', {value: function(/*...items*/) {+      return new this(arguments);+    }});+    // %TypedArray%.prototype+    var $TypedArrayPrototype$ = {};+    $TypedArray$.prototype = $TypedArrayPrototype$;+    // WebIDL: getter type (unsigned long index);+    Object.defineProperty($TypedArray$.prototype, '_getter', {value: function(index) {+      if (arguments.length < 1) throw SyntaxError('Not enough arguments');+      index = ToUint32(index);+      if (index >= this.length)+        return undefined;+      var bytes = [], i, o;+      for (i = 0, o = this.byteOffset + index * this.BYTES_PER_ELEMENT;+           i < this.BYTES_PER_ELEMENT;+           i += 1, o += 1) {+        bytes.push(this.buffer._bytes[o]);+      }+      return this._unpack(bytes);+    }});+    // NONSTANDARD: convenience alias for getter: type get(unsigned long index);+    Object.defineProperty($TypedArray$.prototype, 'get', {value: $TypedArray$.prototype._getter});+    // WebIDL: setter void (unsigned long index, type value);+    Object.defineProperty($TypedArray$.prototype, '_setter', {value: function(index, value) {+      if (arguments.length < 2) throw SyntaxError('Not enough arguments');+      index = ToUint32(index);+      if (index >= this.length)+        return;+      var bytes = this._pack(value), i, o;+      for (i = 0, o = this.byteOffset + index * this.BYTES_PER_ELEMENT;+           i < this.BYTES_PER_ELEMENT;+           i += 1, o += 1) {+        this.buffer._bytes[o] = bytes[i];+      }+    }});+    // get %TypedArray%.prototype.buffer+    // get %TypedArray%.prototype.byteLength+    // get %TypedArray%.prototype.byteOffset+    // -- applied directly to the object in the constructor+    // %TypedArray%.prototype.constructor+    Object.defineProperty($TypedArray$.prototype, 'constructor', {value: $TypedArray$});+    // %TypedArray%.prototype.copyWithin (target, start, end = this.length )+    Object.defineProperty($TypedArray$.prototype, 'copyWithin', {value: function(target, start) {+      var end = arguments[2];+      var o = ToObject(this);+      var lenVal = o.length;+      var len = ToUint32(lenVal);+      len = max(len, 0);+      var relativeTarget = ToInt32(target);+      var to;+      if (relativeTarget < 0)+        to = max(len + relativeTarget, 0);+      else+        to = min(relativeTarget, len);+      var relativeStart = ToInt32(start);+      var from;+      if (relativeStart < 0)+        from = max(len + relativeStart, 0);+      else+        from = min(relativeStart, len);+      var relativeEnd;+      if (end === undefined)+        relativeEnd = len;+      else+        relativeEnd = ToInt32(end);+      var final0;+      if (relativeEnd < 0)+        final0 = max(len + relativeEnd, 0);+      else+        final0 = min(relativeEnd, len);+      var count = min(final0 - from, len - to);+      var direction;+      if (from < to && to < from + count) {+        direction = -1;+        from = from + count - 1;+        to = to + count - 1;+      } else {+        direction = 1;+      }+      while (count > 0) {+        o._setter(to, o._getter(from));+        from = from + direction;+        to = to + direction;+        count = count - 1;+      }+      return o;+    }});+    // %TypedArray%.prototype.entries ( )+    // -- defined in es6.js to shim browsers w/ native TypedArrays+    // %TypedArray%.prototype.every ( callbackfn, thisArg = undefined )+    Object.defineProperty($TypedArray$.prototype, 'every', {value: function(callbackfn) {+      if (this === undefined || this === null) throw TypeError();+      var t = Object(this);+      var len = ToUint32(t.length);+      if (!IsCallable(callbackfn)) throw TypeError();+      var thisArg = arguments[1];+      for (var i = 0; i < len; i++) {+        if (!callbackfn.call(thisArg, t._getter(i), i, t))+          return false;+      }+      return true;+    }});+    // %TypedArray%.prototype.fill (value, start = 0, end = this.length )+    Object.defineProperty($TypedArray$.prototype, 'fill', {value: function(value) {+      var start = arguments[1],+          end = arguments[2];+      var o = ToObject(this);+      var lenVal = o.length;+      var len = ToUint32(lenVal);+      len = max(len, 0);+      var relativeStart = ToInt32(start);+      var k;+      if (relativeStart < 0)+        k = max((len + relativeStart), 0);+      else+        k = min(relativeStart, len);+      var relativeEnd;+      if (end === undefined)+        relativeEnd = len;+      else+        relativeEnd = ToInt32(end);+      var final0;+      if (relativeEnd < 0)+        final0 = max((len + relativeEnd), 0);+      else+        final0 = min(relativeEnd, len);+      while (k < final0) {+        o._setter(k, value);+        k += 1;+      }+      return o;+    }});+    // %TypedArray%.prototype.filter ( callbackfn, thisArg = undefined )+    Object.defineProperty($TypedArray$.prototype, 'filter', {value: function(callbackfn) {+      if (this === undefined || this === null) throw TypeError();+      var t = Object(this);+      var len = ToUint32(t.length);+      if (!IsCallable(callbackfn)) throw TypeError();+      var res = [];+      var thisp = arguments[1];+      for (var i = 0; i < len; i++) {+        var val = t._getter(i); // in case fun mutates this+        if (callbackfn.call(thisp, val, i, t))+          res.push(val);+      }+      return new this.constructor(res);+    }});+    // %TypedArray%.prototype.find (predicate, thisArg = undefined)+    Object.defineProperty($TypedArray$.prototype, 'find', {value: function(predicate) {+      var o = ToObject(this);+      var lenValue = o.length;+      var len = ToUint32(lenValue);+      if (!IsCallable(predicate)) throw TypeError();+      var t = arguments.length > 1 ? arguments[1] : undefined;+      var k = 0;+      while (k < len) {+        var kValue = o._getter(k);+        var testResult = predicate.call(t, kValue, k, o);+        if (Boolean(testResult))+          return kValue;+        ++k;+      }+      return undefined;+    }});+    // %TypedArray%.prototype.findIndex ( predicate, thisArg = undefined )+    Object.defineProperty($TypedArray$.prototype, 'findIndex', {value: function(predicate) {+      var o = ToObject(this);+      var lenValue = o.length;+      var len = ToUint32(lenValue);+      if (!IsCallable(predicate)) throw TypeError();+      var t = arguments.length > 1 ? arguments[1] : undefined;+      var k = 0;+      while (k < len) {+        var kValue = o._getter(k);+        var testResult = predicate.call(t, kValue, k, o);+        if (Boolean(testResult))+          return k;+        ++k;+      }+      return -1;+    }});+    // %TypedArray%.prototype.forEach ( callbackfn, thisArg = undefined )+    Object.defineProperty($TypedArray$.prototype, 'forEach', {value: function(callbackfn) {+      if (this === undefined || this === null) throw TypeError();+      var t = Object(this);+      var len = ToUint32(t.length);+      if (!IsCallable(callbackfn)) throw TypeError();+      var thisp = arguments[1];+      for (var i = 0; i < len; i++)+        callbackfn.call(thisp, t._getter(i), i, t);+    }});+    // %TypedArray%.prototype.indexOf (searchElement, fromIndex = 0 )+    Object.defineProperty($TypedArray$.prototype, 'indexOf', {value: function(searchElement) {+      if (this === undefined || this === null) throw TypeError();+      var t = Object(this);+      var len = ToUint32(t.length);+      if (len === 0) return -1;+      var n = 0;+      if (arguments.length > 0) {+        n = Number(arguments[1]);+        if (n !== n) {+          n = 0;+        } else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0)) {+          n = (n > 0 || -1) * floor(abs(n));+        }+      }+      if (n >= len) return -1;+      var k = n >= 0 ? n : max(len - abs(n), 0);+      for (; k < len; k++) {+        if (t._getter(k) === searchElement) {+          return k;+        }+      }+      return -1;+    }});+    // %TypedArray%.prototype.join ( separator )+    Object.defineProperty($TypedArray$.prototype, 'join', {value: function(separator) {+      if (this === undefined || this === null) throw TypeError();+      var t = Object(this);+      var len = ToUint32(t.length);+      var tmp = Array(len);+      for (var i = 0; i < len; ++i)+        tmp[i] = t._getter(i);+      return tmp.join(separator === undefined ? ',' : separator); // Hack for IE7+    }});+    // %TypedArray%.prototype.keys ( )+    // -- defined in es6.js to shim browsers w/ native TypedArrays+    // %TypedArray%.prototype.lastIndexOf ( searchElement, fromIndex = this.length-1 )+    Object.defineProperty($TypedArray$.prototype, 'lastIndexOf', {value: function(searchElement) {+      if (this === undefined || this === null) throw TypeError();+      var t = Object(this);+      var len = ToUint32(t.length);+      if (len === 0) return -1;+      var n = len;+      if (arguments.length > 1) {+        n = Number(arguments[1]);+        if (n !== n) {+          n = 0;+        } else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0)) {+          n = (n > 0 || -1) * floor(abs(n));+        }+      }+      var k = n >= 0 ? min(n, len - 1) : len - abs(n);+      for (; k >= 0; k--) {+        if (t._getter(k) === searchElement)+          return k;+      }+      return -1;+    }});+    // get %TypedArray%.prototype.length+    // -- applied directly to the object in the constructor+    // %TypedArray%.prototype.map ( callbackfn, thisArg = undefined )+    Object.defineProperty($TypedArray$.prototype, 'map', {value: function(callbackfn) {+      if (this === undefined || this === null) throw TypeError();+      var t = Object(this);+      var len = ToUint32(t.length);+      if (!IsCallable(callbackfn)) throw TypeError();+      var res = []; res.length = len;+      var thisp = arguments[1];+      for (var i = 0; i < len; i++)+        res[i] = callbackfn.call(thisp, t._getter(i), i, t);+      return new this.constructor(res);+    }});+    // %TypedArray%.prototype.reduce ( callbackfn [, initialValue] )+    Object.defineProperty($TypedArray$.prototype, 'reduce', {value: function(callbackfn) {+      if (this === undefined || this === null) throw TypeError();+      var t = Object(this);+      var len = ToUint32(t.length);+      if (!IsCallable(callbackfn)) throw TypeError();+      // no value to return if no initial value and an empty array+      if (len === 0 && arguments.length === 1) throw TypeError();+      var k = 0;+      var accumulator;+      if (arguments.length >= 2) {+        accumulator = arguments[1];+      } else {+        accumulator = t._getter(k++);+      }+      while (k < len) {+        accumulator = callbackfn.call(undefined, accumulator, t._getter(k), k, t);+        k++;+      }+      return accumulator;+    }});+    // %TypedArray%.prototype.reduceRight ( callbackfn [, initialValue] )+    Object.defineProperty($TypedArray$.prototype, 'reduceRight', {value: function(callbackfn) {+      if (this === undefined || this === null) throw TypeError();+      var t = Object(this);+      var len = ToUint32(t.length);+      if (!IsCallable(callbackfn)) throw TypeError();+      // no value to return if no initial value, empty array+      if (len === 0 && arguments.length === 1) throw TypeError();+      var k = len - 1;+      var accumulator;+      if (arguments.length >= 2) {+        accumulator = arguments[1];+      } else {+        accumulator = t._getter(k--);+      }+      while (k >= 0) {+        accumulator = callbackfn.call(undefined, accumulator, t._getter(k), k, t);+        k--;+      }+      return accumulator;+    }});+    // %TypedArray%.prototype.reverse ( )+    Object.defineProperty($TypedArray$.prototype, 'reverse', {value: function() {+      if (this === undefined || this === null) throw TypeError();+      var t = Object(this);+      var len = ToUint32(t.length);+      var half = floor(len / 2);+      for (var i = 0, j = len - 1; i < half; ++i, --j) {+        var tmp = t._getter(i);+        t._setter(i, t._getter(j));+        t._setter(j, tmp);+      }+      return t;+    }});+    // %TypedArray%.prototype.set(array, offset = 0 )+    // %TypedArray%.prototype.set(typedArray, offset = 0 )+    // WebIDL: void set(TypedArray array, optional unsigned long offset);+    // WebIDL: void set(sequence<type> array, optional unsigned long offset);+    Object.defineProperty($TypedArray$.prototype, 'set', {value: function(index, value) {+      if (arguments.length < 1) throw SyntaxError('Not enough arguments');+      var array, sequence, offset, len,+          i, s, d,+          byteOffset, byteLength, tmp;+      if (typeof arguments[0] === 'object' && arguments[0].constructor === this.constructor) {+        // void set(TypedArray array, optional unsigned long offset);+        array = arguments[0];+        offset = ToUint32(arguments[1]);+        if (offset + array.length > this.length) {+          throw RangeError('Offset plus length of array is out of range');+        }+        byteOffset = this.byteOffset + offset * this.BYTES_PER_ELEMENT;+        byteLength = array.length * this.BYTES_PER_ELEMENT;+        if (array.buffer === this.buffer) {+          tmp = [];+          for (i = 0, s = array.byteOffset; i < byteLength; i += 1, s += 1) {+            tmp[i] = array.buffer._bytes[s];+          }+          for (i = 0, d = byteOffset; i < byteLength; i += 1, d += 1) {+            this.buffer._bytes[d] = tmp[i];+          }+        } else {+          for (i = 0, s = array.byteOffset, d = byteOffset;+               i < byteLength; i += 1, s += 1, d += 1) {+            this.buffer._bytes[d] = array.buffer._bytes[s];+          }+        }+      } else if (typeof arguments[0] === 'object' && typeof arguments[0].length !== 'undefined') {+        // void set(sequence<type> array, optional unsigned long offset);+        sequence = arguments[0];+        len = ToUint32(sequence.length);+        offset = ToUint32(arguments[1]);+        if (offset + len > this.length) {+          throw RangeError('Offset plus length of array is out of range');+        }+        for (i = 0; i < len; i += 1) {+          s = sequence[i];+          this._setter(offset + i, Number(s));+        }+      } else {+        throw TypeError('Unexpected argument type(s)');+      }+    }});+    // %TypedArray%.prototype.slice ( start, end )+    Object.defineProperty($TypedArray$.prototype, 'slice', {value: function(start, end) {+      var o = ToObject(this);+      var lenVal = o.length;+      var len = ToUint32(lenVal);+      var relativeStart = ToInt32(start);+      var k = (relativeStart < 0) ? max(len + relativeStart, 0) : min(relativeStart, len);+      var relativeEnd = (end === undefined) ? len : ToInt32(end);+      var final0 = (relativeEnd < 0) ? max(len + relativeEnd, 0) : min(relativeEnd, len);+      var count = final0 - k;+      var c = o.constructor;+      var a = new c(count);+      var n = 0;+      while (k < final0) {+        var kValue = o._getter(k);+        a._setter(n, kValue);+        ++k;+        ++n;+      }+      return a;+    }});+    // %TypedArray%.prototype.some ( callbackfn, thisArg = undefined )+    Object.defineProperty($TypedArray$.prototype, 'some', {value: function(callbackfn) {+      if (this === undefined || this === null) throw TypeError();+      var t = Object(this);+      var len = ToUint32(t.length);+      if (!IsCallable(callbackfn)) throw TypeError();+      var thisp = arguments[1];+      for (var i = 0; i < len; i++) {+        if (callbackfn.call(thisp, t._getter(i), i, t)) {+          return true;+        }+      }+      return false;+    }});+    // %TypedArray%.prototype.sort ( comparefn )+    Object.defineProperty($TypedArray$.prototype, 'sort', {value: function(comparefn) {+      if (this === undefined || this === null) throw TypeError();+      var t = Object(this);+      var len = ToUint32(t.length);+      var tmp = Array(len);+      for (var i = 0; i < len; ++i)+        tmp[i] = t._getter(i);+      if (comparefn) tmp.sort(comparefn); else tmp.sort(); // Hack for IE8/9+      for (i = 0; i < len; ++i)+        t._setter(i, tmp[i]);+      return t;+    }});+    // %TypedArray%.prototype.subarray(begin = 0, end = this.length )+    // WebIDL: TypedArray subarray(long begin, optional long end);+    Object.defineProperty($TypedArray$.prototype, 'subarray', {value: function(start, end) {+      function clamp(v, min, max) { return v < min ? min : v > max ? max : v; }+      start = ToInt32(start);+      end = ToInt32(end);+      if (arguments.length < 1) { start = 0; }+      if (arguments.length < 2) { end = this.length; }+      if (start < 0) { start = this.length + start; }+      if (end < 0) { end = this.length + end; }+      start = clamp(start, 0, this.length);+      end = clamp(end, 0, this.length);+      var len = end - start;+      if (len < 0) {+        len = 0;+      }+      return new this.constructor(+        this.buffer, this.byteOffset + start * this.BYTES_PER_ELEMENT, len);+    }});+    // %TypedArray%.prototype.toLocaleString ( )+    // %TypedArray%.prototype.toString ( )+    // %TypedArray%.prototype.values ( )+    // %TypedArray%.prototype [ @@iterator ] ( )+    // get %TypedArray%.prototype [ @@toStringTag ]+    // -- defined in es6.js to shim browsers w/ native TypedArrays+    function makeTypedArray(elementSize, pack, unpack) {+      // Each TypedArray type requires a distinct constructor instance with+      // identical logic, which this produces.+      var TypedArray = function() {+        Object.defineProperty(this, 'constructor', {value: TypedArray});+        $TypedArray$.apply(this, arguments);+        makeArrayAccessors(this);+      };+      if ('__proto__' in TypedArray) {+        TypedArray.__proto__ = $TypedArray$;+      } else {+        TypedArray.from = $TypedArray$.from;+        TypedArray.of = $TypedArray$.of;+      }+      TypedArray.BYTES_PER_ELEMENT = elementSize;+      var TypedArrayPrototype = function() {};+      TypedArrayPrototype.prototype = $TypedArrayPrototype$;+      TypedArray.prototype = new TypedArrayPrototype();+      Object.defineProperty(TypedArray.prototype, 'BYTES_PER_ELEMENT', {value: elementSize});+      Object.defineProperty(TypedArray.prototype, '_pack', {value: pack});+      Object.defineProperty(TypedArray.prototype, '_unpack', {value: unpack});+      return TypedArray;+    }+    var Int8Array = makeTypedArray(1, packI8, unpackI8);+    var Uint8Array = makeTypedArray(1, packU8, unpackU8);+    var Uint8ClampedArray = makeTypedArray(1, packU8Clamped, unpackU8);+    var Int16Array = makeTypedArray(2, packI16, unpackI16);+    var Uint16Array = makeTypedArray(2, packU16, unpackU16);+    var Int32Array = makeTypedArray(4, packI32, unpackI32);+    var Uint32Array = makeTypedArray(4, packU32, unpackU32);+    var Float32Array = makeTypedArray(4, packF32, unpackF32);+    var Float64Array = makeTypedArray(8, packF64, unpackF64);+    global.Int8Array = global.Int8Array || Int8Array;+    global.Uint8Array = global.Uint8Array || Uint8Array;+    global.Uint8ClampedArray = global.Uint8ClampedArray || Uint8ClampedArray;+    global.Int16Array = global.Int16Array || Int16Array;+    global.Uint16Array = global.Uint16Array || Uint16Array;+    global.Int32Array = global.Int32Array || Int32Array;+    global.Uint32Array = global.Uint32Array || Uint32Array;+    global.Float32Array = global.Float32Array || Float32Array;+    global.Float64Array = global.Float64Array || Float64Array;+  }());+  //+  // 6 The DataView View Type+  //+  (function() {+    function r(array, index) {+      return IsCallable(array.get) ? array.get(index) : array[index];+    }+    var IS_BIG_ENDIAN = (function() {+      var u16array = new Uint16Array([0x1234]),+          u8array = new Uint8Array(u16array.buffer);+      return r(u8array, 0) === 0x12;+    }());+    // DataView(buffer, byteOffset=0, byteLength=undefined)+    // WebIDL: Constructor(ArrayBuffer buffer,+    //                     optional unsigned long byteOffset,+    //                     optional unsigned long byteLength)+    function DataView(buffer, byteOffset, byteLength) {+      if (!(buffer instanceof ArrayBuffer || Class(buffer) === 'ArrayBuffer')) throw TypeError();+      byteOffset = ToUint32(byteOffset);+      if (byteOffset > buffer.byteLength)+        throw RangeError('byteOffset out of range');+      if (byteLength === undefined)+        byteLength = buffer.byteLength - byteOffset;+      else+        byteLength = ToUint32(byteLength);+      if ((byteOffset + byteLength) > buffer.byteLength)+        throw RangeError('byteOffset and length reference an area beyond the end of the buffer');+      Object.defineProperty(this, 'buffer', {value: buffer});+      Object.defineProperty(this, 'byteLength', {value: byteLength});+      Object.defineProperty(this, 'byteOffset', {value: byteOffset});+    };+    // get DataView.prototype.buffer+    // get DataView.prototype.byteLength+    // get DataView.prototype.byteOffset+    // -- applied directly to instances by the constructor+    function makeGetter(arrayType) {+      return function GetViewValue(byteOffset, littleEndian) {+        byteOffset = ToUint32(byteOffset);+        if (byteOffset + arrayType.BYTES_PER_ELEMENT > this.byteLength)+          throw RangeError('Array index out of range');+        byteOffset += this.byteOffset;+        var uint8Array = new Uint8Array(this.buffer, byteOffset, arrayType.BYTES_PER_ELEMENT),+            bytes = [];+        for (var i = 0; i < arrayType.BYTES_PER_ELEMENT; i += 1)+          bytes.push(r(uint8Array, i));+        if (Boolean(littleEndian) === Boolean(IS_BIG_ENDIAN))+          bytes.reverse();+        return r(new arrayType(new Uint8Array(bytes).buffer), 0);+      };+    }+    Object.defineProperty(DataView.prototype, 'getUint8', {value: makeGetter(Uint8Array)});+    Object.defineProperty(DataView.prototype, 'getInt8', {value: makeGetter(Int8Array)});+    Object.defineProperty(DataView.prototype, 'getUint16', {value: makeGetter(Uint16Array)});+    Object.defineProperty(DataView.prototype, 'getInt16', {value: makeGetter(Int16Array)});+    Object.defineProperty(DataView.prototype, 'getUint32', {value: makeGetter(Uint32Array)});+    Object.defineProperty(DataView.prototype, 'getInt32', {value: makeGetter(Int32Array)});+    Object.defineProperty(DataView.prototype, 'getFloat32', {value: makeGetter(Float32Array)});+    Object.defineProperty(DataView.prototype, 'getFloat64', {value: makeGetter(Float64Array)});+    function makeSetter(arrayType) {+      return function SetViewValue(byteOffset, value, littleEndian) {+        byteOffset = ToUint32(byteOffset);+        if (byteOffset + arrayType.BYTES_PER_ELEMENT > this.byteLength)+          throw RangeError('Array index out of range');+        // Get bytes+        var typeArray = new arrayType([value]),+            byteArray = new Uint8Array(typeArray.buffer),+            bytes = [], i, byteView;+        for (i = 0; i < arrayType.BYTES_PER_ELEMENT; i += 1)+          bytes.push(r(byteArray, i));+        // Flip if necessary+        if (Boolean(littleEndian) === Boolean(IS_BIG_ENDIAN))+          bytes.reverse();+        // Write them+        byteView = new Uint8Array(this.buffer, byteOffset, arrayType.BYTES_PER_ELEMENT);+        byteView.set(bytes);+      };+    }+    Object.defineProperty(DataView.prototype, 'setUint8', {value: makeSetter(Uint8Array)});+    Object.defineProperty(DataView.prototype, 'setInt8', {value: makeSetter(Int8Array)});+    Object.defineProperty(DataView.prototype, 'setUint16', {value: makeSetter(Uint16Array)});+    Object.defineProperty(DataView.prototype, 'setInt16', {value: makeSetter(Int16Array)});+    Object.defineProperty(DataView.prototype, 'setUint32', {value: makeSetter(Uint32Array)});+    Object.defineProperty(DataView.prototype, 'setInt32', {value: makeSetter(Int32Array)});+    Object.defineProperty(DataView.prototype, 'setFloat32', {value: makeSetter(Float32Array)});+    Object.defineProperty(DataView.prototype, 'setFloat64', {value: makeSetter(Float64Array)});+    global.DataView = global.DataView || DataView;+  }());+}(h$getGlobal(this)));+/* Copyright (C) 1991-2014 Free Software Foundation, Inc.+   This file is part of the GNU C Library.++   The GNU C Library is free software; you can redistribute it and/or+   modify it under the terms of the GNU Lesser General Public+   License as published by the Free Software Foundation; either+   version 2.1 of the License, or (at your option) any later version.++   The GNU C Library is distributed in the hope that it will be useful,+   but WITHOUT ANY WARRANTY; without even the implied warranty of+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+   Lesser General Public License for more details.++   You should have received a copy of the GNU Lesser General Public+   License along with the GNU C Library; if not, see+   <http://www.gnu.org/licenses/>.  */+/* This header is separate from features.h so that the compiler can+   include it implicitly at the start of every compilation.  It must+   not itself include <features.h> or any other header that includes+   <features.h> because the implicit include comes before any feature+   test macros that may be defined in a source file before it first+   explicitly includes a system header.  GCC knows the name of this+   header in order to preinclude it.  */+/* glibc's intent is to support the IEC 559 math functionality, real+   and complex.  If the GCC (4.9 and later) predefined macros+   specifying compiler intent are available, use them to determine+   whether the overall intent is to support these features; otherwise,+   presume an older compiler has intent to support these features and+   define these macros by default.  */+/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) /+   Unicode 6.0.  */+/* We do not support C11 <threads.h>.  */+/** @constructor */+var BigInteger = (function() {+var dbits, DV, BI_FP;+// Copyright (c) 2005  Tom Wu+// All Rights Reserved.+// See "LICENSE" for details.+// Basic JavaScript BN library - subset useful for RSA encryption.+// Bits per digit+var dbits;+// JavaScript engine analysis+var canary = 0xdeadbeefcafe;+var j_lm = ((canary&0xffffff)==0xefcafe);+// (public) Constructor+/** @constructor */+function BigInteger(a,b,c) {+  this.data = [];+  if(a != null)+    if("number" == typeof a) this.fromNumber(a,b,c);+    else if(b == null && "string" != typeof a) this.fromString(a,256);+    else this.fromString(a,b);+}+// return new, unset BigInteger+function nbi() { return new BigInteger(null); }+// am: Compute w_j += (x*this_i), propagate carries,+// c is initial carry, returns final carry.+// c < 3*dvalue, x < 2*dvalue, this_i < dvalue+// We need to select the fastest one that works in this environment.+// am1: use a single mult and divide to get the high bits,+// max digit bits should be 26 because+// max internal value = 2*dvalue^2-2*dvalue (< 2^53)+function am1(i,x,w,j,c,n) {+  while(--n >= 0) {+    var v = x*this.data[i++]+w.data[j]+c;+    c = Math.floor(v/0x4000000);+    w.data[j++] = v&0x3ffffff;+  }+  return c;+}+// am2 avoids a big mult-and-extract completely.+// Max digit bits should be <= 30 because we do bitwise ops+// on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)+function am2(i,x,w,j,c,n) {+  var xl = x&0x7fff, xh = x>>15;+  while(--n >= 0) {+    var l = this.data[i]&0x7fff;+    var h = this.data[i++]>>15;+    var m = xh*l+h*xl;+    l = xl*l+((m&0x7fff)<<15)+w.data[j]+(c&0x3fffffff);+    c = (l>>>30)+(m>>>15)+xh*h+(c>>>30);+    w.data[j++] = l&0x3fffffff;+  }+  return c;+}+// Alternately, set max digit bits to 28 since some+// browsers slow down when dealing with 32-bit numbers.+function am3(i,x,w,j,c,n) {+  var xl = x&0x3fff, xh = x>>14;+  while(--n >= 0) {+    var l = this.data[i]&0x3fff;+    var h = this.data[i++]>>14;+    var m = xh*l+h*xl;+    l = xl*l+((m&0x3fff)<<14)+w.data[j]+c;+    c = (l>>28)+(m>>14)+xh*h;+    w.data[j++] = l&0xfffffff;+  }+  return c;+}+// node.js (no browser)+if(typeof(navigator) === 'undefined')+{+   BigInteger.prototype.am = am3;+   dbits = 28;+}+else if(j_lm && (navigator.appName == "Microsoft Internet Explorer")) {+  BigInteger.prototype.am = am2;+  dbits = 30;+}+else if(j_lm && (navigator.appName != "Netscape")) {+  BigInteger.prototype.am = am1;+  dbits = 26;+}+else { // Mozilla/Netscape seems to prefer am3+  BigInteger.prototype.am = am3;+  dbits = 28;+}+BigInteger.prototype.DB = dbits;+BigInteger.prototype.DM = ((1<<dbits)-1);+BigInteger.prototype.DV = (1<<dbits);+var BI_FP = 52;+BigInteger.prototype.FV = Math.pow(2,BI_FP);+BigInteger.prototype.F1 = BI_FP-dbits;+BigInteger.prototype.F2 = 2*dbits-BI_FP;+// Digit conversions+var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz";+var BI_RC = new Array();+var rr,vv;+rr = "0".charCodeAt(0);+for(vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv;+rr = "a".charCodeAt(0);+for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;+rr = "A".charCodeAt(0);+for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;+function int2char(n) { return BI_RM.charAt(n); }+function intAt(s,i) {+  var c = BI_RC[s.charCodeAt(i)];+  return (c==null)?-1:c;+}+// (protected) copy this to r+function bnpCopyTo(r) {+  for(var i = this.t-1; i >= 0; --i) r.data[i] = this.data[i];+  r.t = this.t;+  r.s = this.s;+}+// (protected) set from integer value x, -DV <= x < DV+function bnpFromInt(x) {+  this.t = 1;+  this.s = (x<0)?-1:0;+  if(x > 0) this.data[0] = x;+  else if(x < -1) this.data[0] = x+this.DV;+  else this.t = 0;+}+// return bigint initialized to value+function nbv(i) { var r = nbi(); r.fromInt(i); return r; }+// (protected) set from string and radix+function bnpFromString(s,b) {+  var k;+  if(b == 16) k = 4;+  else if(b == 8) k = 3;+  else if(b == 256) k = 8; // byte array+  else if(b == 2) k = 1;+  else if(b == 32) k = 5;+  else if(b == 4) k = 2;+  else { this.fromRadix(s,b); return; }+  this.t = 0;+  this.s = 0;+  var i = s.length, mi = false, sh = 0;+  while(--i >= 0) {+    var x = (k==8)?s[i]&0xff:intAt(s,i);+    if(x < 0) {+      if(s.charAt(i) == "-") mi = true;+      continue;+    }+    mi = false;+    if(sh == 0)+      this.data[this.t++] = x;+    else if(sh+k > this.DB) {+      this.data[this.t-1] |= (x&((1<<(this.DB-sh))-1))<<sh;+      this.data[this.t++] = (x>>(this.DB-sh));+    }+    else+      this.data[this.t-1] |= x<<sh;+    sh += k;+    if(sh >= this.DB) sh -= this.DB;+  }+  if(k == 8 && (s[0]&0x80) != 0) {+    this.s = -1;+    if(sh > 0) this.data[this.t-1] |= ((1<<(this.DB-sh))-1)<<sh;+  }+  this.clamp();+  if(mi) BigInteger.ZERO.subTo(this,this);+}+// (protected) clamp off excess high words+function bnpClamp() {+  var c = this.s&this.DM;+  while(this.t > 0 && this.data[this.t-1] == c) --this.t;+}+// (public) return string representation in given radix+function bnToString(b) {+  if(this.s < 0) return "-"+this.negate().toString(b);+  var k;+  if(b == 16) k = 4;+  else if(b == 8) k = 3;+  else if(b == 2) k = 1;+  else if(b == 32) k = 5;+  else if(b == 4) k = 2;+  else return this.toRadix(b);+  var km = (1<<k)-1, d, m = false, r = "", i = this.t;+  var p = this.DB-(i*this.DB)%k;+  if(i-- > 0) {+    if(p < this.DB && (d = this.data[i]>>p) > 0) { m = true; r = int2char(d); }+    while(i >= 0) {+      if(p < k) {+        d = (this.data[i]&((1<<p)-1))<<(k-p);+        d |= this.data[--i]>>(p+=this.DB-k);+      }+      else {+        d = (this.data[i]>>(p-=k))&km;+        if(p <= 0) { p += this.DB; --i; }+      }+      if(d > 0) m = true;+      if(m) r += int2char(d);+    }+  }+  return m?r:"0";+}+// (public) -this+function bnNegate() { var r = nbi(); BigInteger.ZERO.subTo(this,r); return r; }+// (public) |this|+function bnAbs() { return (this.s<0)?this.negate():this; }+// (public) return + if this > a, - if this < a, 0 if equal+function bnCompareTo(a) {+  var r = this.s-a.s;+  if(r != 0) return r;+  var i = this.t;+  r = i-a.t;+  if(r != 0) return (this.s<0)?-r:r;+  while(--i >= 0) if((r=this.data[i]-a.data[i]) != 0) return r;+  return 0;+}+// returns bit length of the integer x+function nbits(x) {+  var r = 1, t;+  if((t=x>>>16) != 0) { x = t; r += 16; }+  if((t=x>>8) != 0) { x = t; r += 8; }+  if((t=x>>4) != 0) { x = t; r += 4; }+  if((t=x>>2) != 0) { x = t; r += 2; }+  if((t=x>>1) != 0) { x = t; r += 1; }+  return r;+}+// (public) return the number of bits in "this"+function bnBitLength() {+  if(this.t <= 0) return 0;+  return this.DB*(this.t-1)+nbits(this.data[this.t-1]^(this.s&this.DM));+}+// (protected) r = this << n*DB+function bnpDLShiftTo(n,r) {+  var i;+  for(i = this.t-1; i >= 0; --i) r.data[i+n] = this.data[i];+  for(i = n-1; i >= 0; --i) r.data[i] = 0;+  r.t = this.t+n;+  r.s = this.s;+}+// (protected) r = this >> n*DB+function bnpDRShiftTo(n,r) {+  for(var i = n; i < this.t; ++i) r.data[i-n] = this.data[i];+  r.t = Math.max(this.t-n,0);+  r.s = this.s;+}+// (protected) r = this << n+function bnpLShiftTo(n,r) {+  var bs = n%this.DB;+  var cbs = this.DB-bs;+  var bm = (1<<cbs)-1;+  var ds = Math.floor(n/this.DB), c = (this.s<<bs)&this.DM, i;+  for(i = this.t-1; i >= 0; --i) {+    r.data[i+ds+1] = (this.data[i]>>cbs)|c;+    c = (this.data[i]&bm)<<bs;+  }+  for(i = ds-1; i >= 0; --i) r.data[i] = 0;+  r.data[ds] = c;+  r.t = this.t+ds+1;+  r.s = this.s;+  r.clamp();+}+// (protected) r = this >> n+function bnpRShiftTo(n,r) {+  r.s = this.s;+  var ds = Math.floor(n/this.DB);+  if(ds >= this.t) { r.t = 0; return; }+  var bs = n%this.DB;+  var cbs = this.DB-bs;+  var bm = (1<<bs)-1;+  r.data[0] = this.data[ds]>>bs;+  for(var i = ds+1; i < this.t; ++i) {+    r.data[i-ds-1] |= (this.data[i]&bm)<<cbs;+    r.data[i-ds] = this.data[i]>>bs;+  }+  if(bs > 0) r.data[this.t-ds-1] |= (this.s&bm)<<cbs;+  r.t = this.t-ds;+  r.clamp();+}+// (protected) r = this - a+function bnpSubTo(a,r) {+  var i = 0, c = 0, m = Math.min(a.t,this.t);+  while(i < m) {+    c += this.data[i]-a.data[i];+    r.data[i++] = c&this.DM;+    c >>= this.DB;+  }+  if(a.t < this.t) {+    c -= a.s;+    while(i < this.t) {+      c += this.data[i];+      r.data[i++] = c&this.DM;+      c >>= this.DB;+    }+    c += this.s;+  }+  else {+    c += this.s;+    while(i < a.t) {+      c -= a.data[i];+      r.data[i++] = c&this.DM;+      c >>= this.DB;+    }+    c -= a.s;+  }+  r.s = (c<0)?-1:0;+  if(c < -1) r.data[i++] = this.DV+c;+  else if(c > 0) r.data[i++] = c;+  r.t = i;+  r.clamp();+}+// (protected) r = this * a, r != this,a (HAC 14.12)+// "this" should be the larger one if appropriate.+function bnpMultiplyTo(a,r) {+  var x = this.abs(), y = a.abs();+  var i = x.t;+  r.t = i+y.t;+  while(--i >= 0) r.data[i] = 0;+  for(i = 0; i < y.t; ++i) r.data[i+x.t] = x.am(0,y.data[i],r,i,0,x.t);+  r.s = 0;+  r.clamp();+  if(this.s != a.s) BigInteger.ZERO.subTo(r,r);+}+// (protected) r = this^2, r != this (HAC 14.16)+function bnpSquareTo(r) {+  var x = this.abs();+  var i = r.t = 2*x.t;+  while(--i >= 0) r.data[i] = 0;+  for(i = 0; i < x.t-1; ++i) {+    var c = x.am(i,x.data[i],r,2*i,0,1);+    if((r.data[i+x.t]+=x.am(i+1,2*x.data[i],r,2*i+1,c,x.t-i-1)) >= x.DV) {+      r.data[i+x.t] -= x.DV;+      r.data[i+x.t+1] = 1;+    }+  }+  if(r.t > 0) r.data[r.t-1] += x.am(i,x.data[i],r,2*i,0,1);+  r.s = 0;+  r.clamp();+}+// (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)+// r != q, this != m.  q or r may be null.+function bnpDivRemTo(m,q,r) {+  var pm = m.abs();+  if(pm.t <= 0) return;+  var pt = this.abs();+  if(pt.t < pm.t) {+    if(q != null) q.fromInt(0);+    if(r != null) this.copyTo(r);+    return;+  }+  if(r == null) r = nbi();+  var y = nbi(), ts = this.s, ms = m.s;+  var nsh = this.DB-nbits(pm.data[pm.t-1]); // normalize modulus+  if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); }+  else { pm.copyTo(y); pt.copyTo(r); }+  var ys = y.t;+  var y0 = y.data[ys-1];+  if(y0 == 0) return;+  var yt = y0*(1<<this.F1)+((ys>1)?y.data[ys-2]>>this.F2:0);+  var d1 = this.FV/yt, d2 = (1<<this.F1)/yt, e = 1<<this.F2;+  var i = r.t, j = i-ys, t = (q==null)?nbi():q;+  y.dlShiftTo(j,t);+  if(r.compareTo(t) >= 0) {+    r.data[r.t++] = 1;+    r.subTo(t,r);+  }+  BigInteger.ONE.dlShiftTo(ys,t);+  t.subTo(y,y); // "negative" y so we can replace sub with am later+  while(y.t < ys) y.data[y.t++] = 0;+  while(--j >= 0) {+    // Estimate quotient digit+    var qd = (r.data[--i]==y0)?this.DM:Math.floor(r.data[i]*d1+(r.data[i-1]+e)*d2);+    if((r.data[i]+=y.am(0,qd,r,j,0,ys)) < qd) { // Try it out+      y.dlShiftTo(j,t);+      r.subTo(t,r);+      while(r.data[i] < --qd) r.subTo(t,r);+    }+  }+  if(q != null) {+    r.drShiftTo(ys,q);+    if(ts != ms) BigInteger.ZERO.subTo(q,q);+  }+  r.t = ys;+  r.clamp();+  if(nsh > 0) r.rShiftTo(nsh,r); // Denormalize remainder+  if(ts < 0) BigInteger.ZERO.subTo(r,r);+}+// (public) this mod a+function bnMod(a) {+  var r = nbi();+  this.abs().divRemTo(a,null,r);+  if(this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r,r);+  return r;+}+// Modular reduction using "classic" algorithm+/** @constructor */+function Classic(m) { this.m = m; }+function cConvert(x) {+  if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m);+  else return x;+}+function cRevert(x) { return x; }+function cReduce(x) { x.divRemTo(this.m,null,x); }+function cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }+function cSqrTo(x,r) { x.squareTo(r); this.reduce(r); }+Classic.prototype.convert = cConvert;+Classic.prototype.revert = cRevert;+Classic.prototype.reduce = cReduce;+Classic.prototype.mulTo = cMulTo;+Classic.prototype.sqrTo = cSqrTo;+// (protected) return "-1/this % 2^DB"; useful for Mont. reduction+// justification:+//         xy == 1 (mod m)+//         xy =  1+km+//   xy(2-xy) = (1+km)(1-km)+// x[y(2-xy)] = 1-k^2m^2+// x[y(2-xy)] == 1 (mod m^2)+// if y is 1/x mod m, then y(2-xy) is 1/x mod m^2+// should reduce x and y(2-xy) by m^2 at each step to keep size bounded.+// JS multiply "overflows" differently from C/C++, so care is needed here.+function bnpInvDigit() {+  if(this.t < 1) return 0;+  var x = this.data[0];+  if((x&1) == 0) return 0;+  var y = x&3; // y == 1/x mod 2^2+  y = (y*(2-(x&0xf)*y))&0xf; // y == 1/x mod 2^4+  y = (y*(2-(x&0xff)*y))&0xff; // y == 1/x mod 2^8+  y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff; // y == 1/x mod 2^16+  // last step - calculate inverse mod DV directly;+  // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints+  y = (y*(2-x*y%this.DV))%this.DV; // y == 1/x mod 2^dbits+  // we really want the negative inverse, and -DV < y < DV+  return (y>0)?this.DV-y:-y;+}+// Montgomery reduction+/** @constructor */+function Montgomery(m) {+  this.m = m;+  this.mp = m.invDigit();+  this.mpl = this.mp&0x7fff;+  this.mph = this.mp>>15;+  this.um = (1<<(m.DB-15))-1;+  this.mt2 = 2*m.t;+}+// xR mod m+function montConvert(x) {+  var r = nbi();+  x.abs().dlShiftTo(this.m.t,r);+  r.divRemTo(this.m,null,r);+  if(x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r,r);+  return r;+}+// x/R mod m+function montRevert(x) {+  var r = nbi();+  x.copyTo(r);+  this.reduce(r);+  return r;+}+// x = x/R mod m (HAC 14.32)+function montReduce(x) {+  while(x.t <= this.mt2) // pad x so am has enough room later+    x.data[x.t++] = 0;+  for(var i = 0; i < this.m.t; ++i) {+    // faster way of calculating u0 = x.data[i]*mp mod DV+    var j = x.data[i]&0x7fff;+    var u0 = (j*this.mpl+(((j*this.mph+(x.data[i]>>15)*this.mpl)&this.um)<<15))&x.DM;+    // use am to combine the multiply-shift-add into one call+    j = i+this.m.t;+    x.data[j] += this.m.am(0,u0,x,i,0,this.m.t);+    // propagate carry+    while(x.data[j] >= x.DV) { x.data[j] -= x.DV; x.data[++j]++; }+  }+  x.clamp();+  x.drShiftTo(this.m.t,x);+  if(x.compareTo(this.m) >= 0) x.subTo(this.m,x);+}+// r = "x^2/R mod m"; x != r+function montSqrTo(x,r) { x.squareTo(r); this.reduce(r); }+// r = "xy/R mod m"; x,y != r+function montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }+Montgomery.prototype.convert = montConvert;+Montgomery.prototype.revert = montRevert;+Montgomery.prototype.reduce = montReduce;+Montgomery.prototype.mulTo = montMulTo;+Montgomery.prototype.sqrTo = montSqrTo;+// (protected) true iff this is even+function bnpIsEven() { return ((this.t>0)?(this.data[0]&1):this.s) == 0; }+// (protected) this^e, e < 2^32, doing sqr and mul with "r" (HAC 14.79)+function bnpExp(e,z) {+  if(e > 0xffffffff || e < 1) return BigInteger.ONE;+  var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1;+  g.copyTo(r);+  while(--i >= 0) {+    z.sqrTo(r,r2);+    if((e&(1<<i)) > 0) z.mulTo(r2,g,r);+    else { var t = r; r = r2; r2 = t; }+  }+  return z.revert(r);+}+// (public) this^e % m, 0 <= e < 2^32+function bnModPowInt(e,m) {+  var z;+  if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m);+  return this.exp(e,z);+}+// protected+BigInteger.prototype.copyTo = bnpCopyTo;+BigInteger.prototype.fromInt = bnpFromInt;+BigInteger.prototype.fromString = bnpFromString;+BigInteger.prototype.clamp = bnpClamp;+BigInteger.prototype.dlShiftTo = bnpDLShiftTo;+BigInteger.prototype.drShiftTo = bnpDRShiftTo;+BigInteger.prototype.lShiftTo = bnpLShiftTo;+BigInteger.prototype.rShiftTo = bnpRShiftTo;+BigInteger.prototype.subTo = bnpSubTo;+BigInteger.prototype.multiplyTo = bnpMultiplyTo;+BigInteger.prototype.squareTo = bnpSquareTo;+BigInteger.prototype.divRemTo = bnpDivRemTo;+BigInteger.prototype.invDigit = bnpInvDigit;+BigInteger.prototype.isEven = bnpIsEven;+BigInteger.prototype.exp = bnpExp;+// public+BigInteger.prototype.toString = bnToString;+BigInteger.prototype.negate = bnNegate;+BigInteger.prototype.abs = bnAbs;+BigInteger.prototype.compareTo = bnCompareTo;+BigInteger.prototype.bitLength = bnBitLength;+BigInteger.prototype.mod = bnMod;+BigInteger.prototype.modPowInt = bnModPowInt;+// "constants"+BigInteger.ZERO = nbv(0);+BigInteger.ONE = nbv(1);+// Copyright (c) 2005-2009  Tom Wu+// All Rights Reserved.+// See "LICENSE" for details.+// Extended JavaScript BN functions, required for RSA private ops.+// Version 1.1: new BigInteger("0", 10) returns "proper" zero+// Version 1.2: square() API, isProbablePrime fix+// (public)+function bnClone() { var r = nbi(); this.copyTo(r); return r; }+// (public) return value as integer+function bnIntValue() {+  if(this.s < 0) {+    if(this.t == 1) return this.data[0]-this.DV;+    else if(this.t == 0) return -1;+  }+  else if(this.t == 1) return this.data[0];+  else if(this.t == 0) return 0;+  // assumes 16 < DB < 32+  return ((this.data[1]&((1<<(32-this.DB))-1))<<this.DB)|this.data[0];+}+// (public) return value as byte+function bnByteValue() { return (this.t==0)?this.s:(this.data[0]<<24)>>24; }+// (public) return value as short (assumes DB>=16)+function bnShortValue() { return (this.t==0)?this.s:(this.data[0]<<16)>>16; }+// (protected) return x s.t. r^x < DV+function bnpChunkSize(r) { return Math.floor(Math.LN2*this.DB/Math.log(r)); }+// (public) 0 if this == 0, 1 if this > 0+function bnSigNum() {+  if(this.s < 0) return -1;+  else if(this.t <= 0 || (this.t == 1 && this.data[0] <= 0)) return 0;+  else return 1;+}+// (protected) convert to radix string+function bnpToRadix(b) {+  if(b == null) b = 10;+  if(this.signum() == 0 || b < 2 || b > 36) return "0";+  var cs = this.chunkSize(b);+  var a = Math.pow(b,cs);+  var d = nbv(a), y = nbi(), z = nbi(), r = "";+  this.divRemTo(d,y,z);+  while(y.signum() > 0) {+    r = (a+z.intValue()).toString(b).substr(1) + r;+    y.divRemTo(d,y,z);+  }+  return z.intValue().toString(b) + r;+}+// (protected) convert from radix string+function bnpFromRadix(s,b) {+  this.fromInt(0);+  if(b == null) b = 10;+  var cs = this.chunkSize(b);+  var d = Math.pow(b,cs), mi = false, j = 0, w = 0;+  for(var i = 0; i < s.length; ++i) {+    var x = intAt(s,i);+    if(x < 0) {+      if(s.charAt(i) == "-" && this.signum() == 0) mi = true;+      continue;+    }+    w = b*w+x;+    if(++j >= cs) {+      this.dMultiply(d);+      this.dAddOffset(w,0);+      j = 0;+      w = 0;+    }+  }+  if(j > 0) {+    this.dMultiply(Math.pow(b,j));+    this.dAddOffset(w,0);+  }+  if(mi) BigInteger.ZERO.subTo(this,this);+}+// (protected) alternate constructor+function bnpFromNumber(a,b,c) {+  if("number" == typeof b) {+    // new BigInteger(int,int,RNG)+    if(a < 2) this.fromInt(1);+    else {+      this.fromNumber(a,c);+      if(!this.testBit(a-1)) // force MSB set+        this.bitwiseTo(BigInteger.ONE.shiftLeft(a-1),op_or,this);+      if(this.isEven()) this.dAddOffset(1,0); // force odd+      while(!this.isProbablePrime(b)) {+        this.dAddOffset(2,0);+        if(this.bitLength() > a) this.subTo(BigInteger.ONE.shiftLeft(a-1),this);+      }+    }+  }+  else {+    // new BigInteger(int,RNG)+    var x = new Array(), t = a&7;+    x.length = (a>>3)+1;+    b.nextBytes(x);+    if(t > 0) x[0] &= ((1<<t)-1); else x[0] = 0;+    this.fromString(x,256);+  }+}+// (public) convert to bigendian byte array+function bnToByteArray() {+  var i = this.t, r = new Array();+  r[0] = this.s;+  var p = this.DB-(i*this.DB)%8, d, k = 0;+  if(i-- > 0) {+    if(p < this.DB && (d = this.data[i]>>p) != (this.s&this.DM)>>p)+      r[k++] = d|(this.s<<(this.DB-p));+    while(i >= 0) {+      if(p < 8) {+        d = (this.data[i]&((1<<p)-1))<<(8-p);+        d |= this.data[--i]>>(p+=this.DB-8);+      }+      else {+        d = (this.data[i]>>(p-=8))&0xff;+        if(p <= 0) { p += this.DB; --i; }+      }+      if((d&0x80) != 0) d |= -256;+      if(k == 0 && (this.s&0x80) != (d&0x80)) ++k;+      if(k > 0 || d != this.s) r[k++] = d;+    }+  }+  return r;+}+function bnEquals(a) { return(this.compareTo(a)==0); }+function bnMin(a) { return(this.compareTo(a)<0)?this:a; }+function bnMax(a) { return(this.compareTo(a)>0)?this:a; }+// (protected) r = this op a (bitwise)+function bnpBitwiseTo(a,op,r) {+  var i, f, m = Math.min(a.t,this.t);+  for(i = 0; i < m; ++i) r.data[i] = op(this.data[i],a.data[i]);+  if(a.t < this.t) {+    f = a.s&this.DM;+    for(i = m; i < this.t; ++i) r.data[i] = op(this.data[i],f);+    r.t = this.t;+  }+  else {+    f = this.s&this.DM;+    for(i = m; i < a.t; ++i) r.data[i] = op(f,a.data[i]);+    r.t = a.t;+  }+  r.s = op(this.s,a.s);+  r.clamp();+}+// (public) this & a+function op_and(x,y) { return x&y; }+function bnAnd(a) { var r = nbi(); this.bitwiseTo(a,op_and,r); return r; }+// (public) this | a+function op_or(x,y) { return x|y; }+function bnOr(a) { var r = nbi(); this.bitwiseTo(a,op_or,r); return r; }+// (public) this ^ a+function op_xor(x,y) { return x^y; }+function bnXor(a) { var r = nbi(); this.bitwiseTo(a,op_xor,r); return r; }+// (public) this & ~a+function op_andnot(x,y) { return x&~y; }+function bnAndNot(a) { var r = nbi(); this.bitwiseTo(a,op_andnot,r); return r; }+// (public) ~this+function bnNot() {+  var r = nbi();+  for(var i = 0; i < this.t; ++i) r.data[i] = this.DM&~this.data[i];+  r.t = this.t;+  r.s = ~this.s;+  return r;+}+// (public) this << n+function bnShiftLeft(n) {+  var r = nbi();+  if(n < 0) this.rShiftTo(-n,r); else this.lShiftTo(n,r);+  return r;+}+// (public) this >> n+function bnShiftRight(n) {+  var r = nbi();+  if(n < 0) this.lShiftTo(-n,r); else this.rShiftTo(n,r);+  return r;+}+// return index of lowest 1-bit in x, x < 2^31+function lbit(x) {+  if(x == 0) return -1;+  var r = 0;+  if((x&0xffff) == 0) { x >>= 16; r += 16; }+  if((x&0xff) == 0) { x >>= 8; r += 8; }+  if((x&0xf) == 0) { x >>= 4; r += 4; }+  if((x&3) == 0) { x >>= 2; r += 2; }+  if((x&1) == 0) ++r;+  return r;+}+// (public) returns index of lowest 1-bit (or -1 if none)+function bnGetLowestSetBit() {+  for(var i = 0; i < this.t; ++i)+    if(this.data[i] != 0) return i*this.DB+lbit(this.data[i]);+  if(this.s < 0) return this.t*this.DB;+  return -1;+}+// return number of 1 bits in x+function cbit(x) {+  var r = 0;+  while(x != 0) { x &= x-1; ++r; }+  return r;+}+// (public) return number of set bits+function bnBitCount() {+  var r = 0, x = this.s&this.DM;+  for(var i = 0; i < this.t; ++i) r += cbit(this.data[i]^x);+  return r;+}+// (public) true iff nth bit is set+function bnTestBit(n) {+  var j = Math.floor(n/this.DB);+  if(j >= this.t) return(this.s!=0);+  return((this.data[j]&(1<<(n%this.DB)))!=0);+}+// (protected) this op (1<<n)+function bnpChangeBit(n,op) {+  var r = BigInteger.ONE.shiftLeft(n);+  this.bitwiseTo(r,op,r);+  return r;+}+// (public) this | (1<<n)+function bnSetBit(n) { return this.changeBit(n,op_or); }+// (public) this & ~(1<<n)+function bnClearBit(n) { return this.changeBit(n,op_andnot); }+// (public) this ^ (1<<n)+function bnFlipBit(n) { return this.changeBit(n,op_xor); }+// (protected) r = this + a+function bnpAddTo(a,r) {+  var i = 0, c = 0, m = Math.min(a.t,this.t);+  while(i < m) {+    c += this.data[i]+a.data[i];+    r.data[i++] = c&this.DM;+    c >>= this.DB;+  }+  if(a.t < this.t) {+    c += a.s;+    while(i < this.t) {+      c += this.data[i];+      r.data[i++] = c&this.DM;+      c >>= this.DB;+    }+    c += this.s;+  }+  else {+    c += this.s;+    while(i < a.t) {+      c += a.data[i];+      r.data[i++] = c&this.DM;+      c >>= this.DB;+    }+    c += a.s;+  }+  r.s = (c<0)?-1:0;+  if(c > 0) r.data[i++] = c;+  else if(c < -1) r.data[i++] = this.DV+c;+  r.t = i;+  r.clamp();+}+// (public) this + a+function bnAdd(a) { var r = nbi(); this.addTo(a,r); return r; }+// (public) this - a+function bnSubtract(a) { var r = nbi(); this.subTo(a,r); return r; }+// (public) this * a+function bnMultiply(a) { var r = nbi(); this.multiplyTo(a,r); return r; }+// (public) this^2+function bnSquare() { var r = nbi(); this.squareTo(r); return r; }+// (public) this / a+function bnDivide(a) { var r = nbi(); this.divRemTo(a,r,null); return r; }+// (public) this % a+function bnRemainder(a) { var r = nbi(); this.divRemTo(a,null,r); return r; }+// (public) [this/a,this%a]+function bnDivideAndRemainder(a) {+  var q = nbi(), r = nbi();+  this.divRemTo(a,q,r);+  return new Array(q,r);+}+// (protected) this *= n, this >= 0, 1 < n < DV+function bnpDMultiply(n) {+  this.data[this.t] = this.am(0,n-1,this,0,0,this.t);+  ++this.t;+  this.clamp();+}+// (protected) this += n << w words, this >= 0+function bnpDAddOffset(n,w) {+  if(n == 0) return;+  while(this.t <= w) this.data[this.t++] = 0;+  this.data[w] += n;+  while(this.data[w] >= this.DV) {+    this.data[w] -= this.DV;+    if(++w >= this.t) this.data[this.t++] = 0;+    ++this.data[w];+  }+}+// A "null" reducer+/** @constructor */+function NullExp() {}+function nNop(x) { return x; }+function nMulTo(x,y,r) { x.multiplyTo(y,r); }+function nSqrTo(x,r) { x.squareTo(r); }+NullExp.prototype.convert = nNop;+NullExp.prototype.revert = nNop;+NullExp.prototype.mulTo = nMulTo;+NullExp.prototype.sqrTo = nSqrTo;+// (public) this^e+function bnPow(e) { return this.exp(e,new NullExp()); }+// (protected) r = lower n words of "this * a", a.t <= n+// "this" should be the larger one if appropriate.+function bnpMultiplyLowerTo(a,n,r) {+  var i = Math.min(this.t+a.t,n);+  r.s = 0; // assumes a,this >= 0+  r.t = i;+  while(i > 0) r.data[--i] = 0;+  var j;+  for(j = r.t-this.t; i < j; ++i) r.data[i+this.t] = this.am(0,a.data[i],r,i,0,this.t);+  for(j = Math.min(a.t,n); i < j; ++i) this.am(0,a.data[i],r,i,0,n-i);+  r.clamp();+}+// (protected) r = "this * a" without lower n words, n > 0+// "this" should be the larger one if appropriate.+function bnpMultiplyUpperTo(a,n,r) {+  --n;+  var i = r.t = this.t+a.t-n;+  r.s = 0; // assumes a,this >= 0+  while(--i >= 0) r.data[i] = 0;+  for(i = Math.max(n-this.t,0); i < a.t; ++i)+    r.data[this.t+i-n] = this.am(n-i,a.data[i],r,0,0,this.t+i-n);+  r.clamp();+  r.drShiftTo(1,r);+}+// Barrett modular reduction+/** @constructor */+function Barrett(m) {+  // setup Barrett+  this.r2 = nbi();+  this.q3 = nbi();+  BigInteger.ONE.dlShiftTo(2*m.t,this.r2);+  this.mu = this.r2.divide(m);+  this.m = m;+}+function barrettConvert(x) {+  if(x.s < 0 || x.t > 2*this.m.t) return x.mod(this.m);+  else if(x.compareTo(this.m) < 0) return x;+  else { var r = nbi(); x.copyTo(r); this.reduce(r); return r; }+}+function barrettRevert(x) { return x; }+// x = x mod m (HAC 14.42)+function barrettReduce(x) {+  x.drShiftTo(this.m.t-1,this.r2);+  if(x.t > this.m.t+1) { x.t = this.m.t+1; x.clamp(); }+  this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3);+  this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);+  while(x.compareTo(this.r2) < 0) x.dAddOffset(1,this.m.t+1);+  x.subTo(this.r2,x);+  while(x.compareTo(this.m) >= 0) x.subTo(this.m,x);+}+// r = x^2 mod m; x != r+function barrettSqrTo(x,r) { x.squareTo(r); this.reduce(r); }+// r = x*y mod m; x,y != r+function barrettMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }+Barrett.prototype.convert = barrettConvert;+Barrett.prototype.revert = barrettRevert;+Barrett.prototype.reduce = barrettReduce;+Barrett.prototype.mulTo = barrettMulTo;+Barrett.prototype.sqrTo = barrettSqrTo;+// (public) this^e % m (HAC 14.85)+function bnModPow(e,m) {+  var i = e.bitLength(), k, r = nbv(1), z;+  if(i <= 0) return r;+  else if(i < 18) k = 1;+  else if(i < 48) k = 3;+  else if(i < 144) k = 4;+  else if(i < 768) k = 5;+  else k = 6;+  if(i < 8)+    z = new Classic(m);+  else if(m.isEven())+    z = new Barrett(m);+  else+    z = new Montgomery(m);+  // precomputation+  var g = new Array(), n = 3, k1 = k-1, km = (1<<k)-1;+  g[1] = z.convert(this);+  if(k > 1) {+    var g2 = nbi();+    z.sqrTo(g[1],g2);+    while(n <= km) {+      g[n] = nbi();+      z.mulTo(g2,g[n-2],g[n]);+      n += 2;+    }+  }+  var j = e.t-1, w, is1 = true, r2 = nbi(), t;+  i = nbits(e.data[j])-1;+  while(j >= 0) {+    if(i >= k1) w = (e.data[j]>>(i-k1))&km;+    else {+      w = (e.data[j]&((1<<(i+1))-1))<<(k1-i);+      if(j > 0) w |= e.data[j-1]>>(this.DB+i-k1);+    }+    n = k;+    while((w&1) == 0) { w >>= 1; --n; }+    if((i -= n) < 0) { i += this.DB; --j; }+    if(is1) { // ret == 1, don't bother squaring or multiplying it+      g[w].copyTo(r);+      is1 = false;+    }+    else {+      while(n > 1) { z.sqrTo(r,r2); z.sqrTo(r2,r); n -= 2; }+      if(n > 0) z.sqrTo(r,r2); else { t = r; r = r2; r2 = t; }+      z.mulTo(r2,g[w],r);+    }+    while(j >= 0 && (e.data[j]&(1<<i)) == 0) {+      z.sqrTo(r,r2); t = r; r = r2; r2 = t;+      if(--i < 0) { i = this.DB-1; --j; }+    }+  }+  return z.revert(r);+}+// (public) gcd(this,a) (HAC 14.54)+function bnGCD(a) {+  var x = (this.s<0)?this.negate():this.clone();+  var y = (a.s<0)?a.negate():a.clone();+  if(x.compareTo(y) < 0) { var t = x; x = y; y = t; }+  var i = x.getLowestSetBit(), g = y.getLowestSetBit();+  if(g < 0) return x;+  if(i < g) g = i;+  if(g > 0) {+    x.rShiftTo(g,x);+    y.rShiftTo(g,y);+  }+  while(x.signum() > 0) {+    if((i = x.getLowestSetBit()) > 0) x.rShiftTo(i,x);+    if((i = y.getLowestSetBit()) > 0) y.rShiftTo(i,y);+    if(x.compareTo(y) >= 0) {+      x.subTo(y,x);+      x.rShiftTo(1,x);+    }+    else {+      y.subTo(x,y);+      y.rShiftTo(1,y);+    }+  }+  if(g > 0) y.lShiftTo(g,y);+  return y;+}+// (protected) this % n, n < 2^26+function bnpModInt(n) {+  if(n <= 0) return 0;+  var d = this.DV%n, r = (this.s<0)?n-1:0;+  if(this.t > 0)+    if(d == 0) r = this.data[0]%n;+    else for(var i = this.t-1; i >= 0; --i) r = (d*r+this.data[i])%n;+  return r;+}+// (public) 1/this % m (HAC 14.61)+function bnModInverse(m) {+  var ac = m.isEven();+  if((this.isEven() && ac) || m.signum() == 0) return BigInteger.ZERO;+  var u = m.clone(), v = this.clone();+  var a = nbv(1), b = nbv(0), c = nbv(0), d = nbv(1);+  while(u.signum() != 0) {+    while(u.isEven()) {+      u.rShiftTo(1,u);+      if(ac) {+        if(!a.isEven() || !b.isEven()) { a.addTo(this,a); b.subTo(m,b); }+        a.rShiftTo(1,a);+      }+      else if(!b.isEven()) b.subTo(m,b);+      b.rShiftTo(1,b);+    }+    while(v.isEven()) {+      v.rShiftTo(1,v);+      if(ac) {+        if(!c.isEven() || !d.isEven()) { c.addTo(this,c); d.subTo(m,d); }+        c.rShiftTo(1,c);+      }+      else if(!d.isEven()) d.subTo(m,d);+      d.rShiftTo(1,d);+    }+    if(u.compareTo(v) >= 0) {+      u.subTo(v,u);+      if(ac) a.subTo(c,a);+      b.subTo(d,b);+    }+    else {+      v.subTo(u,v);+      if(ac) c.subTo(a,c);+      d.subTo(b,d);+    }+  }+  if(v.compareTo(BigInteger.ONE) != 0) return BigInteger.ZERO;+  if(d.compareTo(m) >= 0) return d.subtract(m);+  if(d.signum() < 0) d.addTo(m,d); else return d;+  if(d.signum() < 0) return d.add(m); else return d;+}+var lowprimes = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997];+var lplim = (1<<26)/lowprimes[lowprimes.length-1];+// (public) test primality with certainty >= 1-.5^t+function bnIsProbablePrime(t) {+  var i, x = this.abs();+  if(x.t == 1 && x.data[0] <= lowprimes[lowprimes.length-1]) {+    for(i = 0; i < lowprimes.length; ++i)+      if(x.data[0] == lowprimes[i]) return true;+    return false;+  }+  if(x.isEven()) return false;+  i = 1;+  while(i < lowprimes.length) {+    var m = lowprimes[i], j = i+1;+    while(j < lowprimes.length && m < lplim) m *= lowprimes[j++];+    m = x.modInt(m);+    while(i < j) if(m%lowprimes[i++] == 0) return false;+  }+  return x.millerRabin(t);+}+// (protected) true if probably prime (HAC 4.24, Miller-Rabin)+function bnpMillerRabin(t) {+  var n1 = this.subtract(BigInteger.ONE);+  var k = n1.getLowestSetBit();+  if(k <= 0) return false;+  var r = n1.shiftRight(k);+  t = (t+1)>>1;+  if(t > lowprimes.length) t = lowprimes.length;+  var a = nbi();+  for(var i = 0; i < t; ++i) {+    // Pick bases at random, instead of starting at 2+    a.fromInt(lowprimes[Math.floor(Math.random()*lowprimes.length)]);+    var y = a.modPow(r,this);+    if(y.compareTo(BigInteger.ONE) != 0 && y.compareTo(n1) != 0) {+      var j = 1;+      while(j++ < k && y.compareTo(n1) != 0) {+        y = y.modPowInt(2,this);+        if(y.compareTo(BigInteger.ONE) == 0) return false;+      }+      if(y.compareTo(n1) != 0) return false;+    }+  }+  return true;+}+// protected+BigInteger.prototype.chunkSize = bnpChunkSize;+BigInteger.prototype.toRadix = bnpToRadix;+BigInteger.prototype.fromRadix = bnpFromRadix;+BigInteger.prototype.fromNumber = bnpFromNumber;+BigInteger.prototype.bitwiseTo = bnpBitwiseTo;+BigInteger.prototype.changeBit = bnpChangeBit;+BigInteger.prototype.addTo = bnpAddTo;+BigInteger.prototype.dMultiply = bnpDMultiply;+BigInteger.prototype.dAddOffset = bnpDAddOffset;+BigInteger.prototype.multiplyLowerTo = bnpMultiplyLowerTo;+BigInteger.prototype.multiplyUpperTo = bnpMultiplyUpperTo;+BigInteger.prototype.modInt = bnpModInt;+BigInteger.prototype.millerRabin = bnpMillerRabin;+// public+BigInteger.prototype.clone = bnClone;+BigInteger.prototype.intValue = bnIntValue;+BigInteger.prototype.byteValue = bnByteValue;+BigInteger.prototype.shortValue = bnShortValue;+BigInteger.prototype.signum = bnSigNum;+BigInteger.prototype.toByteArray = bnToByteArray;+BigInteger.prototype.equals = bnEquals;+BigInteger.prototype.min = bnMin;+BigInteger.prototype.max = bnMax;+BigInteger.prototype.and = bnAnd;+BigInteger.prototype.or = bnOr;+BigInteger.prototype.xor = bnXor;+BigInteger.prototype.andNot = bnAndNot;+BigInteger.prototype.not = bnNot;+BigInteger.prototype.shiftLeft = bnShiftLeft;+BigInteger.prototype.shiftRight = bnShiftRight;+BigInteger.prototype.getLowestSetBit = bnGetLowestSetBit;+BigInteger.prototype.bitCount = bnBitCount;+BigInteger.prototype.testBit = bnTestBit;+BigInteger.prototype.setBit = bnSetBit;+BigInteger.prototype.clearBit = bnClearBit;+BigInteger.prototype.flipBit = bnFlipBit;+BigInteger.prototype.add = bnAdd;+BigInteger.prototype.subtract = bnSubtract;+BigInteger.prototype.multiply = bnMultiply;+BigInteger.prototype.divide = bnDivide;+BigInteger.prototype.remainder = bnRemainder;+BigInteger.prototype.divideAndRemainder = bnDivideAndRemainder;+BigInteger.prototype.modPow = bnModPow;+BigInteger.prototype.modInverse = bnModInverse;+BigInteger.prototype.pow = bnPow;+BigInteger.prototype.gcd = bnGCD;+BigInteger.prototype.isProbablePrime = bnIsProbablePrime;+// JSBN-specific extension+BigInteger.prototype.square = bnSquare;+// BigInteger interfaces not implemented in jsbn:+// BigInteger(int signum, byte[] magnitude)+// double doubleValue()+// float floatValue()+// int hashCode()+// long longValue()+// static BigInteger valueOf(long val)+// customization for GHCJS+BigInteger.prototype.am = am3;+dbits = 28;+DV = (1<<dbits);+BigInteger.prototype.DB = dbits;+BigInteger.prototype.DM = ((1<<dbits)-1);+BigInteger.prototype.DV = (1<<dbits);+BI_FP = 52;+BigInteger.prototype.FV = Math.pow(2,BI_FP);+BigInteger.prototype.F1 = BI_FP-dbits;+BigInteger.prototype.F2 = 2*dbits-BI_FP;+BigInteger.nbv = nbv;+BigInteger.nbi = nbi;+return BigInteger;+})();+// fixme prefix this+var h$nbv = BigInteger.nbv;+var h$nbi = BigInteger.nbi;+/* Copyright (C) 1991-2014 Free Software Foundation, Inc.+   This file is part of the GNU C Library.++   The GNU C Library is free software; you can redistribute it and/or+   modify it under the terms of the GNU Lesser General Public+   License as published by the Free Software Foundation; either+   version 2.1 of the License, or (at your option) any later version.++   The GNU C Library is distributed in the hope that it will be useful,+   but WITHOUT ANY WARRANTY; without even the implied warranty of+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+   Lesser General Public License for more details.++   You should have received a copy of the GNU Lesser General Public+   License along with the GNU C Library; if not, see+   <http://www.gnu.org/licenses/>.  */+/* This header is separate from features.h so that the compiler can+   include it implicitly at the start of every compilation.  It must+   not itself include <features.h> or any other header that includes+   <features.h> because the implicit include comes before any feature+   test macros that may be defined in a source file before it first+   explicitly includes a system header.  GCC knows the name of this+   header in order to preinclude it.  */+/* glibc's intent is to support the IEC 559 math functionality, real+   and complex.  If the GCC (4.9 and later) predefined macros+   specifying compiler intent are available, use them to determine+   whether the overall intent is to support these features; otherwise,+   presume an older compiler has intent to support these features and+   define these macros by default.  */+/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) /+   Unicode 6.0.  */+/* We do not support C11 <threads.h>.  */+(function (global, undefined) {+    "use strict";+    if (global.setImmediate) {+        return;+    }+    var nextHandle = 1; // Spec says greater than zero+    var tasksByHandle = {};+    var currentlyRunningATask = false;+    var doc = global.document;+    var setImmediate;+    function addFromSetImmediateArguments(args) {+        tasksByHandle[nextHandle] = partiallyApplied.apply(undefined, args);+        return nextHandle++;+    }+    // This function accepts the same arguments as setImmediate, but+    // returns a function that requires no arguments.+    function partiallyApplied(handler) {+        var args = [].slice.call(arguments, 1);+        return function() {+            if (typeof handler === "function") {+                handler.apply(undefined, args);+            } else {+                (new Function("" + handler))();+            }+        };+    }+    function runIfPresent(handle) {+        // From the spec: "Wait until any invocations of this algorithm started before this one have completed."+        // So if we're currently running a task, we'll need to delay this invocation.+        if (currentlyRunningATask) {+            // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a+            // "too much recursion" error.+            setTimeout(partiallyApplied(runIfPresent, handle), 0);+        } else {+            var task = tasksByHandle[handle];+            if (task) {+                currentlyRunningATask = true;+                try {+                    task();+                } finally {+                    clearImmediate(handle);+                    currentlyRunningATask = false;+                }+            }+        }+    }+    function clearImmediate(handle) {+        delete tasksByHandle[handle];+    }+    function installNextTickImplementation() {+        setImmediate = function() {+            var handle = addFromSetImmediateArguments(arguments);+            process.nextTick(partiallyApplied(runIfPresent, handle));+            return handle;+        };+    }+    function canUsePostMessage() {+        // The test against `importScripts` prevents this implementation from being installed inside a web worker,+        // where `global.postMessage` means something completely different and can't be used for this purpose.+        if (global.postMessage && !global.importScripts) {+            var postMessageIsAsynchronous = true;+            var oldOnMessage = global.onmessage;+            global.onmessage = function() {+                postMessageIsAsynchronous = false;+            };+            global.postMessage("", "*");+            global.onmessage = oldOnMessage;+            return postMessageIsAsynchronous;+        }+    }+    function installPostMessageImplementation() {+        // Installs an event handler on `global` for the `message` event: see+        // * https://developer.mozilla.org/en/DOM/window.postMessage+        // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages+        var messagePrefix = "setImmediate$" + Math.random() + "$";+        var onGlobalMessage = function(event) {+            if (event.source === global &&+                typeof event.data === "string" &&+                event.data.indexOf(messagePrefix) === 0) {+                runIfPresent(+event.data.slice(messagePrefix.length));+            }+        };+        if (global.addEventListener) {+            global.addEventListener("message", onGlobalMessage, false);+        } else {+            global.attachEvent("onmessage", onGlobalMessage);+        }+        setImmediate = function() {+            var handle = addFromSetImmediateArguments(arguments);+            global.postMessage(messagePrefix + handle, "*");+            return handle;+        };+    }+    function installMessageChannelImplementation() {+        var channel = new MessageChannel();+        channel.port1.onmessage = function(event) {+            var handle = event.data;+            runIfPresent(handle);+        };+        setImmediate = function() {+            var handle = addFromSetImmediateArguments(arguments);+            channel.port2.postMessage(handle);+            return handle;+        };+    }+    function installReadyStateChangeImplementation() {+        var html = doc.documentElement;+        setImmediate = function() {+            var handle = addFromSetImmediateArguments(arguments);+            // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted+            // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.+            var script = doc.createElement("script");+            script.onreadystatechange = function () {+                runIfPresent(handle);+                script.onreadystatechange = null;+                html.removeChild(script);+                script = null;+            };+            html.appendChild(script);+            return handle;+        };+    }+    function installSetTimeoutImplementation() {+        // jsshell doesn't even have setTimeout+        if(typeof setTimeout === 'undefined') setImmediate = function() { return null; };+        else+          setImmediate = function() {+            var handle = addFromSetImmediateArguments(arguments);+            setTimeout(partiallyApplied(runIfPresent, handle), 0);+            return handle;+        };+    }+    // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.+    var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);+    attachTo = attachTo && attachTo.setTimeout ? attachTo : global;+    // Don't get fooled by e.g. browserify environments.+    if ({}.toString.call(global.process) === "[object process]") {+        // For Node.js before 0.9+        installNextTickImplementation();+    } else+       if (canUsePostMessage()) {+        // For non-IE10 modern browsers+        installPostMessageImplementation();+    } else if (global.MessageChannel) {+        // For web workers, where supported+        installMessageChannelImplementation();+    } else if (doc && "onreadystatechange" in doc.createElement("script")) {+        // For IE 6–8+        installReadyStateChangeImplementation();+    } else {+        // For older browsers+        installSetTimeoutImplementation();+    }+    attachTo.setImmediate = setImmediate;+    attachTo.clearImmediate = clearImmediate;+}(this));+/* Copyright (C) 1991-2014 Free Software Foundation, Inc.+   This file is part of the GNU C Library.++   The GNU C Library is free software; you can redistribute it and/or+   modify it under the terms of the GNU Lesser General Public+   License as published by the Free Software Foundation; either+   version 2.1 of the License, or (at your option) any later version.++   The GNU C Library is distributed in the hope that it will be useful,+   but WITHOUT ANY WARRANTY; without even the implied warranty of+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+   Lesser General Public License for more details.++   You should have received a copy of the GNU Lesser General Public+   License along with the GNU C Library; if not, see+   <http://www.gnu.org/licenses/>.  */+/* This header is separate from features.h so that the compiler can+   include it implicitly at the start of every compilation.  It must+   not itself include <features.h> or any other header that includes+   <features.h> because the implicit include comes before any feature+   test macros that may be defined in a source file before it first+   explicitly includes a system header.  GCC knows the name of this+   header in order to preinclude it.  */+/* glibc's intent is to support the IEC 559 math functionality, real+   and complex.  If the GCC (4.9 and later) predefined macros+   specifying compiler intent are available, use them to determine+   whether the overall intent is to support these features; otherwise,+   presume an older compiler has intent to support these features and+   define these macros by default.  */+/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) /+   Unicode 6.0.  */+/* We do not support C11 <threads.h>.  */+// Copyright 2009 The Closure Library Authors. All Rights Reserved.+//+// Licensed under the Apache License, Version 2.0 (the "License");+// you may not use this file except in compliance with the License.+// You may obtain a copy of the License at+//+//      http://www.apache.org/licenses/LICENSE-2.0+//+// Unless required by applicable law or agreed to in writing, software+// distributed under the License is distributed on an "AS-IS" BASIS,+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.+// See the License for the specific language governing permissions and+// limitations under the License.+/**+ * @fileoverview Defines a Long class for representing a 64-bit two's-complement+ * integer value, which faithfully simulates the behavior of a Java "long". This+ * implementation is derived from LongLib in GWT.+ *+ */+goog.provide('goog.math.Long');+/**+ * Constructs a 64-bit two's-complement integer, given its low and high 32-bit+ * values as *signed* integers.  See the from* functions below for more+ * convenient ways of constructing Longs.+ *+ * The internal representation of a long is the two given signed, 32-bit values.+ * We use 32-bit pieces because these are the size of integers on which+ * Javascript performs bit-operations.  For operations like addition and+ * multiplication, we split each number into 16-bit pieces, which can easily be+ * multiplied within Javascript's floating-point representation without overflow+ * or change in sign.+ *+ * In the algorithms below, we frequently reduce the negative case to the+ * positive case by negating the input(s) and then post-processing the result.+ * Note that we must ALWAYS check specially whether those values are MIN_VALUE+ * (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as+ * a positive number, it overflows back into a negative).  Not handling this+ * case would often result in infinite recursion.+ *+ * @param {number} low  The low (signed) 32 bits of the long.+ * @param {number} high  The high (signed) 32 bits of the long.+ * @struct+ * @constructor+ * @final+ */+goog.math.Long = function(low, high) {+  /**+   * @type {number}+   * @private+   */+  this.low_ = low | 0; // force into 32 signed bits.+  /**+   * @type {number}+   * @private+   */+  this.high_ = high | 0; // force into 32 signed bits.+};+// NOTE: Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the+// from* methods on which they depend.+/**+ * A cache of the Long representations of small integer values.+ * @type {!Object}+ * @private+ */+goog.math.Long.IntCache_ = {};+/**+ * Returns a Long representing the given (32-bit) integer value.+ * @param {number} value The 32-bit integer in question.+ * @return {!goog.math.Long} The corresponding Long value.+ */+goog.math.Long.fromInt = function(value) {+  if (-128 <= value && value < 128) {+    var cachedObj = goog.math.Long.IntCache_[value];+    if (cachedObj) {+      return cachedObj;+    }+  }+  var obj = new goog.math.Long(value | 0, value < 0 ? -1 : 0);+  if (-128 <= value && value < 128) {+    goog.math.Long.IntCache_[value] = obj;+  }+  return obj;+};+/**+ * Returns a Long representing the given value, provided that it is a finite+ * number.  Otherwise, zero is returned.+ * @param {number} value The number in question.+ * @return {!goog.math.Long} The corresponding Long value.+ */+goog.math.Long.fromNumber = function(value) {+  if (isNaN(value) || !isFinite(value)) {+    return goog.math.Long.ZERO;+  } else if (value <= -goog.math.Long.TWO_PWR_63_DBL_) {+    return goog.math.Long.MIN_VALUE;+  } else if (value + 1 >= goog.math.Long.TWO_PWR_63_DBL_) {+    return goog.math.Long.MAX_VALUE;+  } else if (value < 0) {+    return goog.math.Long.fromNumber(-value).negate();+  } else {+    return new goog.math.Long(+        (value % goog.math.Long.TWO_PWR_32_DBL_) | 0,+        (value / goog.math.Long.TWO_PWR_32_DBL_) | 0);+  }+};+/**+ * Returns a Long representing the 64-bit integer that comes by concatenating+ * the given high and low bits.  Each is assumed to use 32 bits.+ * @param {number} lowBits The low 32-bits.+ * @param {number} highBits The high 32-bits.+ * @return {!goog.math.Long} The corresponding Long value.+ */+goog.math.Long.fromBits = function(lowBits, highBits) {+  return new goog.math.Long(lowBits, highBits);+};+/**+ * Returns a Long representation of the given string, written using the given+ * radix.+ * @param {string} str The textual representation of the Long.+ * @param {number=} opt_radix The radix in which the text is written.+ * @return {!goog.math.Long} The corresponding Long value.+ */+goog.math.Long.fromString = function(str, opt_radix) {+  if (str.length == 0) {+    throw Error('number format error: empty string');+  }+  var radix = opt_radix || 10;+  if (radix < 2 || 36 < radix) {+    throw Error('radix out of range: ' + radix);+  }+  if (str.charAt(0) == '-') {+    return goog.math.Long.fromString(str.substring(1), radix).negate();+  } else if (str.indexOf('-') >= 0) {+    throw Error('number format error: interior "-" character: ' + str);+  }+  // Do several (8) digits each time through the loop, so as to+  // minimize the calls to the very expensive emulated div.+  var radixToPower = goog.math.Long.fromNumber(Math.pow(radix, 8));+  var result = goog.math.Long.ZERO;+  for (var i = 0; i < str.length; i += 8) {+    var size = Math.min(8, str.length - i);+    var value = parseInt(str.substring(i, i + size), radix);+    if (size < 8) {+      var power = goog.math.Long.fromNumber(Math.pow(radix, size));+      result = result.multiply(power).add(goog.math.Long.fromNumber(value));+    } else {+      result = result.multiply(radixToPower);+      result = result.add(goog.math.Long.fromNumber(value));+    }+  }+  return result;+};+// NOTE: the compiler should inline these constant values below and then remove+// these variables, so there should be no runtime penalty for these.+/**+ * Number used repeated below in calculations.  This must appear before the+ * first call to any from* function below.+ * @type {number}+ * @private+ */+goog.math.Long.TWO_PWR_16_DBL_ = 1 << 16;+/**+ * @type {number}+ * @private+ */+goog.math.Long.TWO_PWR_24_DBL_ = 1 << 24;+/**+ * @type {number}+ * @private+ */+goog.math.Long.TWO_PWR_32_DBL_ =+    goog.math.Long.TWO_PWR_16_DBL_ * goog.math.Long.TWO_PWR_16_DBL_;+/**+ * @type {number}+ * @private+ */+goog.math.Long.TWO_PWR_31_DBL_ =+    goog.math.Long.TWO_PWR_32_DBL_ / 2;+/**+ * @type {number}+ * @private+ */+goog.math.Long.TWO_PWR_48_DBL_ =+    goog.math.Long.TWO_PWR_32_DBL_ * goog.math.Long.TWO_PWR_16_DBL_;+/**+ * @type {number}+ * @private+ */+goog.math.Long.TWO_PWR_64_DBL_ =+    goog.math.Long.TWO_PWR_32_DBL_ * goog.math.Long.TWO_PWR_32_DBL_;+/**+ * @type {number}+ * @private+ */+goog.math.Long.TWO_PWR_63_DBL_ =+    goog.math.Long.TWO_PWR_64_DBL_ / 2;+/** @type {!goog.math.Long} */+goog.math.Long.ZERO = goog.math.Long.fromInt(0);+/** @type {!goog.math.Long} */+goog.math.Long.ONE = goog.math.Long.fromInt(1);+/** @type {!goog.math.Long} */+goog.math.Long.NEG_ONE = goog.math.Long.fromInt(-1);+/** @type {!goog.math.Long} */+goog.math.Long.MAX_VALUE =+    goog.math.Long.fromBits(0xFFFFFFFF | 0, 0x7FFFFFFF | 0);+/** @type {!goog.math.Long} */+goog.math.Long.MIN_VALUE = goog.math.Long.fromBits(0, 0x80000000 | 0);+/**+ * @type {!goog.math.Long}+ * @private+ */+goog.math.Long.TWO_PWR_24_ = goog.math.Long.fromInt(1 << 24);+/** @return {number} The value, assuming it is a 32-bit integer. */+goog.math.Long.prototype.toInt = function() {+  return this.low_;+};+/** @return {number} The closest floating-point representation to this value. */+goog.math.Long.prototype.toNumber = function() {+  return this.high_ * goog.math.Long.TWO_PWR_32_DBL_ ++         this.getLowBitsUnsigned();+};+/**+ * @param {number=} opt_radix The radix in which the text should be written.+ * @return {string} The textual representation of this value.+ * @override+ */+goog.math.Long.prototype.toString = function(opt_radix) {+  var radix = opt_radix || 10;+  if (radix < 2 || 36 < radix) {+    throw Error('radix out of range: ' + radix);+  }+  if (this.isZero()) {+    return '0';+  }+  if (this.isNegative()) {+    if (this.equals(goog.math.Long.MIN_VALUE)) {+      // We need to change the Long value before it can be negated, so we remove+      // the bottom-most digit in this base and then recurse to do the rest.+      var radixLong = goog.math.Long.fromNumber(radix);+      var div = this.div(radixLong);+      var rem = div.multiply(radixLong).subtract(this);+      return div.toString(radix) + rem.toInt().toString(radix);+    } else {+      return '-' + this.negate().toString(radix);+    }+  }+  // Do several (6) digits each time through the loop, so as to+  // minimize the calls to the very expensive emulated div.+  var radixToPower = goog.math.Long.fromNumber(Math.pow(radix, 6));+  var rem = this;+  var result = '';+  while (true) {+    var remDiv = rem.div(radixToPower);+    var intval = rem.subtract(remDiv.multiply(radixToPower)).toInt();+    var digits = intval.toString(radix);+    rem = remDiv;+    if (rem.isZero()) {+      return digits + result;+    } else {+      while (digits.length < 6) {+        digits = '0' + digits;+      }+      result = '' + digits + result;+    }+  }+};+/** @return {number} The high 32-bits as a signed value. */+goog.math.Long.prototype.getHighBits = function() {+  return this.high_;+};+/** @return {number} The low 32-bits as a signed value. */+goog.math.Long.prototype.getLowBits = function() {+  return this.low_;+};+/** @return {number} The low 32-bits as an unsigned value. */+goog.math.Long.prototype.getLowBitsUnsigned = function() {+  return (this.low_ >= 0) ?+      this.low_ : goog.math.Long.TWO_PWR_32_DBL_ + this.low_;+};+/**+ * @return {number} Returns the number of bits needed to represent the absolute+ *     value of this Long.+ */+goog.math.Long.prototype.getNumBitsAbs = function() {+  if (this.isNegative()) {+    if (this.equals(goog.math.Long.MIN_VALUE)) {+      return 64;+    } else {+      return this.negate().getNumBitsAbs();+    }+  } else {+    var val = this.high_ != 0 ? this.high_ : this.low_;+    for (var bit = 31; bit > 0; bit--) {+      if ((val & (1 << bit)) != 0) {+        break;+      }+    }+    return this.high_ != 0 ? bit + 33 : bit + 1;+  }+};+/** @return {boolean} Whether this value is zero. */+goog.math.Long.prototype.isZero = function() {+  return this.high_ == 0 && this.low_ == 0;+};+/** @return {boolean} Whether this value is negative. */+goog.math.Long.prototype.isNegative = function() {+  return this.high_ < 0;+};+/** @return {boolean} Whether this value is odd. */+goog.math.Long.prototype.isOdd = function() {+  return (this.low_ & 1) == 1;+};+/**+ * @param {goog.math.Long} other Long to compare against.+ * @return {boolean} Whether this Long equals the other.+ */+goog.math.Long.prototype.equals = function(other) {+  return (this.high_ == other.high_) && (this.low_ == other.low_);+};+/**+ * @param {goog.math.Long} other Long to compare against.+ * @return {boolean} Whether this Long does not equal the other.+ */+goog.math.Long.prototype.notEquals = function(other) {+  return (this.high_ != other.high_) || (this.low_ != other.low_);+};+/**+ * @param {goog.math.Long} other Long to compare against.+ * @return {boolean} Whether this Long is less than the other.+ */+goog.math.Long.prototype.lessThan = function(other) {+  return this.compare(other) < 0;+};+/**+ * @param {goog.math.Long} other Long to compare against.+ * @return {boolean} Whether this Long is less than or equal to the other.+ */+goog.math.Long.prototype.lessThanOrEqual = function(other) {+  return this.compare(other) <= 0;+};+/**+ * @param {goog.math.Long} other Long to compare against.+ * @return {boolean} Whether this Long is greater than the other.+ */+goog.math.Long.prototype.greaterThan = function(other) {+  return this.compare(other) > 0;+};+/**+ * @param {goog.math.Long} other Long to compare against.+ * @return {boolean} Whether this Long is greater than or equal to the other.+ */+goog.math.Long.prototype.greaterThanOrEqual = function(other) {+  return this.compare(other) >= 0;+};+/**+ * Compares this Long with the given one.+ * @param {goog.math.Long} other Long to compare against.+ * @return {number} 0 if they are the same, 1 if the this is greater, and -1+ *     if the given one is greater.+ */+goog.math.Long.prototype.compare = function(other) {+  if (this.equals(other)) {+    return 0;+  }+  var thisNeg = this.isNegative();+  var otherNeg = other.isNegative();+  if (thisNeg && !otherNeg) {+    return -1;+  }+  if (!thisNeg && otherNeg) {+    return 1;+  }+  // at this point, the signs are the same, so subtraction will not overflow+  if (this.subtract(other).isNegative()) {+    return -1;+  } else {+    return 1;+  }+};+/** @return {!goog.math.Long} The negation of this value. */+goog.math.Long.prototype.negate = function() {+  if (this.equals(goog.math.Long.MIN_VALUE)) {+    return goog.math.Long.MIN_VALUE;+  } else {+    return this.not().add(goog.math.Long.ONE);+  }+};+/**+ * Returns the sum of this and the given Long.+ * @param {goog.math.Long} other Long to add to this one.+ * @return {!goog.math.Long} The sum of this and the given Long.+ */+goog.math.Long.prototype.add = function(other) {+  // Divide each number into 4 chunks of 16 bits, and then sum the chunks.+  var a48 = this.high_ >>> 16;+  var a32 = this.high_ & 0xFFFF;+  var a16 = this.low_ >>> 16;+  var a00 = this.low_ & 0xFFFF;+  var b48 = other.high_ >>> 16;+  var b32 = other.high_ & 0xFFFF;+  var b16 = other.low_ >>> 16;+  var b00 = other.low_ & 0xFFFF;+  var c48 = 0, c32 = 0, c16 = 0, c00 = 0;+  c00 += a00 + b00;+  c16 += c00 >>> 16;+  c00 &= 0xFFFF;+  c16 += a16 + b16;+  c32 += c16 >>> 16;+  c16 &= 0xFFFF;+  c32 += a32 + b32;+  c48 += c32 >>> 16;+  c32 &= 0xFFFF;+  c48 += a48 + b48;+  c48 &= 0xFFFF;+  return goog.math.Long.fromBits((c16 << 16) | c00, (c48 << 16) | c32);+};+/**+ * Returns the difference of this and the given Long.+ * @param {goog.math.Long} other Long to subtract from this.+ * @return {!goog.math.Long} The difference of this and the given Long.+ */+goog.math.Long.prototype.subtract = function(other) {+  return this.add(other.negate());+};+/**+ * Returns the product of this and the given long.+ * @param {goog.math.Long} other Long to multiply with this.+ * @return {!goog.math.Long} The product of this and the other.+ */+goog.math.Long.prototype.multiply = function(other) {+  if (this.isZero()) {+    return goog.math.Long.ZERO;+  } else if (other.isZero()) {+    return goog.math.Long.ZERO;+  }+  if (this.equals(goog.math.Long.MIN_VALUE)) {+    return other.isOdd() ? goog.math.Long.MIN_VALUE : goog.math.Long.ZERO;+  } else if (other.equals(goog.math.Long.MIN_VALUE)) {+    return this.isOdd() ? goog.math.Long.MIN_VALUE : goog.math.Long.ZERO;+  }+  if (this.isNegative()) {+    if (other.isNegative()) {+      return this.negate().multiply(other.negate());+    } else {+      return this.negate().multiply(other).negate();+    }+  } else if (other.isNegative()) {+    return this.multiply(other.negate()).negate();+  }+  // If both longs are small, use float multiplication+  if (this.lessThan(goog.math.Long.TWO_PWR_24_) &&+      other.lessThan(goog.math.Long.TWO_PWR_24_)) {+    return goog.math.Long.fromNumber(this.toNumber() * other.toNumber());+  }+  // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.+  // We can skip products that would overflow.+  var a48 = this.high_ >>> 16;+  var a32 = this.high_ & 0xFFFF;+  var a16 = this.low_ >>> 16;+  var a00 = this.low_ & 0xFFFF;+  var b48 = other.high_ >>> 16;+  var b32 = other.high_ & 0xFFFF;+  var b16 = other.low_ >>> 16;+  var b00 = other.low_ & 0xFFFF;+  var c48 = 0, c32 = 0, c16 = 0, c00 = 0;+  c00 += a00 * b00;+  c16 += c00 >>> 16;+  c00 &= 0xFFFF;+  c16 += a16 * b00;+  c32 += c16 >>> 16;+  c16 &= 0xFFFF;+  c16 += a00 * b16;+  c32 += c16 >>> 16;+  c16 &= 0xFFFF;+  c32 += a32 * b00;+  c48 += c32 >>> 16;+  c32 &= 0xFFFF;+  c32 += a16 * b16;+  c48 += c32 >>> 16;+  c32 &= 0xFFFF;+  c32 += a00 * b32;+  c48 += c32 >>> 16;+  c32 &= 0xFFFF;+  c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;+  c48 &= 0xFFFF;+  return goog.math.Long.fromBits((c16 << 16) | c00, (c48 << 16) | c32);+};+/**+ * Returns this Long divided by the given one.+ * @param {goog.math.Long} other Long by which to divide.+ * @return {!goog.math.Long} This Long divided by the given one.+ */+goog.math.Long.prototype.div = function(other) {+  if (other.isZero()) {+    throw Error('division by zero');+  } else if (this.isZero()) {+    return goog.math.Long.ZERO;+  }+  if (this.equals(goog.math.Long.MIN_VALUE)) {+    if (other.equals(goog.math.Long.ONE) ||+        other.equals(goog.math.Long.NEG_ONE)) {+      return goog.math.Long.MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE+    } else if (other.equals(goog.math.Long.MIN_VALUE)) {+      return goog.math.Long.ONE;+    } else {+      // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.+      var halfThis = this.shiftRight(1);+      var approx = halfThis.div(other).shiftLeft(1);+      if (approx.equals(goog.math.Long.ZERO)) {+        return other.isNegative() ? goog.math.Long.ONE : goog.math.Long.NEG_ONE;+      } else {+        var rem = this.subtract(other.multiply(approx));+        var result = approx.add(rem.div(other));+        return result;+      }+    }+  } else if (other.equals(goog.math.Long.MIN_VALUE)) {+    return goog.math.Long.ZERO;+  }+  if (this.isNegative()) {+    if (other.isNegative()) {+      return this.negate().div(other.negate());+    } else {+      return this.negate().div(other).negate();+    }+  } else if (other.isNegative()) {+    return this.div(other.negate()).negate();+  }+  // Repeat the following until the remainder is less than other:  find a+  // floating-point that approximates remainder / other *from below*, add this+  // into the result, and subtract it from the remainder.  It is critical that+  // the approximate value is less than or equal to the real value so that the+  // remainder never becomes negative.+  var res = goog.math.Long.ZERO;+  var rem = this;+  while (rem.greaterThanOrEqual(other)) {+    // Approximate the result of division. This may be a little greater or+    // smaller than the actual value.+    var approx = Math.max(1, Math.floor(rem.toNumber() / other.toNumber()));+    // We will tweak the approximate result by changing it in the 48-th digit or+    // the smallest non-fractional digit, whichever is larger.+    var log2 = Math.ceil(Math.log(approx) / Math.LN2);+    var delta = (log2 <= 48) ? 1 : Math.pow(2, log2 - 48);+    // Decrease the approximation until it is smaller than the remainder.  Note+    // that if it is too large, the product overflows and is negative.+    var approxRes = goog.math.Long.fromNumber(approx);+    var approxRem = approxRes.multiply(other);+    while (approxRem.isNegative() || approxRem.greaterThan(rem)) {+      approx -= delta;+      approxRes = goog.math.Long.fromNumber(approx);+      approxRem = approxRes.multiply(other);+    }+    // We know the answer can't be zero... and actually, zero would cause+    // infinite recursion since we would make no progress.+    if (approxRes.isZero()) {+      approxRes = goog.math.Long.ONE;+    }+    res = res.add(approxRes);+    rem = rem.subtract(approxRem);+  }+  return res;+};+/**+ * Returns this Long modulo the given one.+ * @param {goog.math.Long} other Long by which to mod.+ * @return {!goog.math.Long} This Long modulo the given one.+ */+goog.math.Long.prototype.modulo = function(other) {+  return this.subtract(this.div(other).multiply(other));+};+/** @return {!goog.math.Long} The bitwise-NOT of this value. */+goog.math.Long.prototype.not = function() {+  return goog.math.Long.fromBits(~this.low_, ~this.high_);+};+/**+ * Returns the bitwise-AND of this Long and the given one.+ * @param {goog.math.Long} other The Long with which to AND.+ * @return {!goog.math.Long} The bitwise-AND of this and the other.+ */+goog.math.Long.prototype.and = function(other) {+  return goog.math.Long.fromBits(this.low_ & other.low_,+                                 this.high_ & other.high_);+};+/**+ * Returns the bitwise-OR of this Long and the given one.+ * @param {goog.math.Long} other The Long with which to OR.+ * @return {!goog.math.Long} The bitwise-OR of this and the other.+ */+goog.math.Long.prototype.or = function(other) {+  return goog.math.Long.fromBits(this.low_ | other.low_,+                                 this.high_ | other.high_);+};+/**+ * Returns the bitwise-XOR of this Long and the given one.+ * @param {goog.math.Long} other The Long with which to XOR.+ * @return {!goog.math.Long} The bitwise-XOR of this and the other.+ */+goog.math.Long.prototype.xor = function(other) {+  return goog.math.Long.fromBits(this.low_ ^ other.low_,+                                 this.high_ ^ other.high_);+};+/**+ * Returns this Long with bits shifted to the left by the given amount.+ * @param {number} numBits The number of bits by which to shift.+ * @return {!goog.math.Long} This shifted to the left by the given amount.+ */+goog.math.Long.prototype.shiftLeft = function(numBits) {+  numBits &= 63;+  if (numBits == 0) {+    return this;+  } else {+    var low = this.low_;+    if (numBits < 32) {+      var high = this.high_;+      return goog.math.Long.fromBits(+          low << numBits,+          (high << numBits) | (low >>> (32 - numBits)));+    } else {+      return goog.math.Long.fromBits(0, low << (numBits - 32));+    }+  }+};+/**+ * Returns this Long with bits shifted to the right by the given amount.+ * @param {number} numBits The number of bits by which to shift.+ * @return {!goog.math.Long} This shifted to the right by the given amount.+ */+goog.math.Long.prototype.shiftRight = function(numBits) {+  numBits &= 63;+  if (numBits == 0) {+    return this;+  } else {+    var high = this.high_;+    if (numBits < 32) {+      var low = this.low_;+      return goog.math.Long.fromBits(+          (low >>> numBits) | (high << (32 - numBits)),+          high >> numBits);+    } else {+      return goog.math.Long.fromBits(+          high >> (numBits - 32),+          high >= 0 ? 0 : -1);+    }+  }+};+/**+ * Returns this Long with bits shifted to the right by the given amount, with+ * zeros placed into the new leading bits.+ * @param {number} numBits The number of bits by which to shift.+ * @return {!goog.math.Long} This shifted to the right by the given amount, with+ *     zeros placed into the new leading bits.+ */+goog.math.Long.prototype.shiftRightUnsigned = function(numBits) {+  numBits &= 63;+  if (numBits == 0) {+    return this;+  } else {+    var high = this.high_;+    if (numBits < 32) {+      var low = this.low_;+      return goog.math.Long.fromBits(+          (low >>> numBits) | (high << (32 - numBits)),+          high >>> numBits);+    } else if (numBits == 32) {+      return goog.math.Long.fromBits(high, 0);+    } else {+      return goog.math.Long.fromBits(high >>> (numBits - 32), 0);+    }+  }+};+/* Copyright (C) 1991-2014 Free Software Foundation, Inc.+   This file is part of the GNU C Library.++   The GNU C Library is free software; you can redistribute it and/or+   modify it under the terms of the GNU Lesser General Public+   License as published by the Free Software Foundation; either+   version 2.1 of the License, or (at your option) any later version.++   The GNU C Library is distributed in the hope that it will be useful,+   but WITHOUT ANY WARRANTY; without even the implied warranty of+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+   Lesser General Public License for more details.++   You should have received a copy of the GNU Lesser General Public+   License along with the GNU C Library; if not, see+   <http://www.gnu.org/licenses/>.  */+/* This header is separate from features.h so that the compiler can+   include it implicitly at the start of every compilation.  It must+   not itself include <features.h> or any other header that includes+   <features.h> because the implicit include comes before any feature+   test macros that may be defined in a source file before it first+   explicitly includes a system header.  GCC knows the name of this+   header in order to preinclude it.  */+/* glibc's intent is to support the IEC 559 math functionality, real+   and complex.  If the GCC (4.9 and later) predefined macros+   specifying compiler intent are available, use them to determine+   whether the overall intent is to support these features; otherwise,+   presume an older compiler has intent to support these features and+   define these macros by default.  */+/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) /+   Unicode 6.0.  */+/* We do not support C11 <threads.h>.  */+/*+  simple set with reasonably fast iteration though an array, which may contain nulls+  elements must be objects that have a unique _key property+  collections are expected to be homogeneous++  when iterating over a set with an iterator, the following operations are safe:++   - adding an element to the set (the existing iterator will iterate over the new elements)+   - removing the last returned element through the iterator++   behaviour for deleting elements is unpredictable and unsafe+*/+/** @constructor */+function h$Set(s) {+    this._vals = [];+    this._keys = [];+    this._size = 0;+}+h$Set.prototype.size = function() {+    return this._size;+}+h$Set.prototype.add = function(o) {+    if((typeof o !== 'object' && typeof o !== 'function') || typeof o._key !== 'number') throw ("h$Set.add: invalid element: " + o);+    if(this._size > 0) {+//        if(this._storedProto !== o.prototype) throw ("h$Set.add: unexpected element prototype: " + o)+    } else {+        this._storedProto = o.prototype;+    }+    if(this._keys[o._key] !== undefined && this._vals[this._keys[o._key]] !== o) throw ("h$Set.add: duplicate key: " + o);+    var k = this._keys, v = this._vals;+    if(k[o._key] === undefined) {+        k[o._key] = this._size;+        v[this._size++] = o;+    }+}+h$Set.prototype.remove = function(o) {+    if(this._size === 0) return;+    var k = this._keys, v = this._vals, x = k[o._key];+    if(x !== undefined) {+        delete k[o._key];+        var ls = --this._size;+        if(ls !== x) {+            var l = v[ls];+            v[x] = l;+            k[l._key] = x;+        }+        v[ls] = null;+        if(v.length > 10 && 2 * v.length > 3 * ls) this._vals = v.slice(0, ls);+    }+}+h$Set.prototype.has = function(o) {+    return this._keys[o._key] !== undefined;+}+h$Set.prototype.clear = function() {+    if(this._size > 0) {+ this._keys = [];+ this._vals = [];+ this._size = 0;+    }+}+h$Set.prototype.iter = function() {+    return new h$SetIter(this);+}+// returns an array with all values, might contain additional nulls at the end+h$Set.prototype.values = function() {+    return this._vals;+}+/** @constructor */+function h$SetIter(s) {+    this._n = 0;+    this._s = s;+    this._r = true;+}+h$SetIter.prototype.next = function() {+    if(this._n < this._s._size) {+        this._r = false;+        return this._s._vals[this._n++];+    } else {+        this._r = true;+        return null;+    }+}+h$SetIter.prototype.peek = function() {+    if(this._n < this._s._size) {+        return this._s.vals[this._n];+    } else {+        return null;+    }+}+// remove the last element returned+h$SetIter.prototype.remove = function() {+    if(!this._r) {+        this._s.remove(this._s._vals[--this._n]);+        this._r = true;+    }+}+/*+  map, iteration restrictions are the same as for set+  keys need to be objects with a unique _key property++  keys are expected to have the same prototype++  values may be anything (but note that the values array might have additional nulls)+*/+/** @constructor */+function h$Map() {+    this._pairsKeys = [];+    this._pairsValues = [];+    this._keys = [];+    this._size = 0;+}+h$Map.prototype.size = function() {+    return this._size;+}+h$Map.prototype.put = function(k,v) {+    if((typeof k !== 'object' && typeof k !== 'function') || typeof k._key !== 'number') throw ("h$Map.add: invalid key: " + k);+    if(this._size > 0) {+        if(this._storedProto !== k.prototype) throw ("h$Map.add: unexpected key prototype: " + k)+    } else {+        this._storedProto = k.prototype;+    }+    if(this._keys[k._key] !== undefined && this._pairsKeys[this._keys[k._key]] !== k) throw ("h$Map.add: duplicate key: " + k);+    var ks = this._keys, pk = this._pairsKeys, pv = this._pairsValues, x = ks[k._key];+    if(x === undefined) {+        var n = this._size++;+        ks[k._key] = n;+        pk[n] = k;+        pv[n] = v;+    } else {+        pv[x] = v;+    }+}+h$Map.prototype.remove = function(k) {+    var kk = k._key, ks = this._keys, pk = this._pairsKeys, pv = this._pairsValues, x = ks[kk];+    if(x !== undefined) {+        delete ks[kk];+        var ss = --this._size;+        if(ss !== x) {+            pks = pk[ss];+            pk[x] = pks;+            pv[x] = pv[ss];+            ks[pks._key] = x;+        }+        pv[ss] = null;+        pk[ss] = null;+        if(pk.length > 10 && 2 * pk.length > 3 * this._size) {+            this._pairsKeys = pk.slice(0,ss);+            this._pairsValues = pv.slice(0,ss);+        }+    }+}+h$Map.prototype.has = function(k) {+    return this._keys[k._key] !== undefined;+}+h$Map.prototype.get = function(k) {+    var n = this._keys[k._key];+    if(n !== undefined) {+        return this._pairsValues[n];+    } else {+        return null;+    }+}+h$Map.prototype.iter = function() {+    return new h$MapIter(this);+}+// returned array might have some trailing nulls+h$Map.prototype.keys = function () {+    return this._pairsKeys;+}+// returned array might have some trailing nulls+h$Map.prototype.values = function() {+    return this._pairsValues;+}+/** @constructor */+function h$MapIter(m) {+    this._n = 0;+    this._m = m;+}+h$MapIter.prototype.next = function() {+    return this._n < this._m._size ? this._m._pairsKeys[this._n++] : null;+}+h$MapIter.prototype.nextVal = function() {+    return this._n < this._m._size ? this._m._pairsValues[this._n++] : null;+}+h$MapIter.prototype.peek = function() {+    return this._n < this._m._size ? this._m._pairsKeys[this._n] : null;+}+h$MapIter.prototype.peekVal = function() {+    return this._n < this._m._size ? this._m._pairsValues[this._n] : null;+}+/*+  simple queue, returns null when empty+  it's safe to enqueue new items while iterating, not safe to dequeue+  (new items will not be iterated over)+*/+/** @constructor */+function h$Queue() {+    var b = { b: [], n: null };+    this._blocks = 1;+    this._first = b;+    this._fp = 0;+    this._last = b;+    this._lp = 0;+}+h$Queue.prototype.length = function() {+    return 1000 * (this._blocks - 1) + this._lp - this._fp;+}+h$Queue.prototype.isEmpty = function() {+    return this._blocks === 1 && this._lp >= this._fp;+}+h$Queue.prototype.enqueue = function(o) {+    if(this._lp === 1000) {+        var newBlock = { b: [o], n: null };+        this._blocks++;+        this._last.n = newBlock;+        this._last = newBlock;+        this._lp = 1;+    } else {+        this._last.b[this._lp++] = o;+    }+}+h$Queue.prototype.dequeue = function() {+    if(this._blocks === 1 && this._fp >= this._lp) {+        return null;+    } else {+        var qfb = this._first.b, r = qfb[this._fp];+        qfb[this._fp] = null;+        if(++this._fp === 1000) {+            if(this._blocks === 1) {+                this._lp = 0;+            } else {+                this._blocks--;+                this._first = this._first.n;+            }+            this._fp = 0;+        } else if(this._blocks === 1 && this._fp >= this._lp) {+            this._lp = this._fp = 0;+        }+        return r;+    }+}+h$Queue.prototype.peek = function() {+    if(this._blocks === 0 || (this._blocks === 1 && this._fp >= this._lp)) {+        return null;+    } else {+        return this._first.b[this._fp];+    }+}+h$Queue.prototype.iter = function() {+    var b = this._first, bp = this._fp, lb = this._last, lp = this._lp;+    return function() {+        if(b === null || (b === lb && bp >= lp)) {+            return null;+        } else {+            var r = b.b[bp];+            if(++bp === 1000) {+                b = b.n;+                bp = 0;+                if(b === null) lb = null;+            }+            return r;+        }+    }+}+/*+   binary min-heap / set+   - iteration is not in order of priority+   - values can be removed, need to have the ._key property+*/+/** @constructor */+function h$HeapSet() {+    this._keys = [];+    this._prios = [];+    this._vals = [];+    this._size = 0;+}+h$HeapSet.prototype.size = function() {+    return this._size;+}+// add a node, if it already exists, it's moved to the new priority+h$HeapSet.prototype.add = function(op,o) {+    if((typeof o !== 'object' && typeof o !== 'function') || typeof o._key !== 'number') throw ("h$HeapSet.add: invalid element: " + o);+    if(this._size > 0) {+        if(this._storedProto !== o.prototype) throw ("h$HeapSet.add: unexpected element prototype: " + o)+    } else {+        this._storedProto = o.prototype;+    }+    if(this._keys[o._key] !== undefined && this._vals[this._keys[o._key]] !== o) throw ("h$Set.add: duplicate key: " + o);+    var p = this._prios, k = this._keys, v = this._vals, x = k[o._key];+    if(x !== undefined) { // adjust node+        var oop = p[x];+        if(oop !== op) {+            p[x] = op;+            if(op < oop) {+                this._upHeap(x);+            } else {+                this._downHeap(x);+            }+        }+    } else { // new node+        var s = this._size++;+        k[o._key] = s;+        p[s] = op;+        v[s] = o;+        this._upHeap(s);+    }+}+h$HeapSet.prototype.has = function(o) {+    return this._keys[o._key] !== undefined;+}+h$HeapSet.prototype.prio = function(o) {+    var x = this._keys[o._key];+    if(x !== undefined) {+        return this._prios[x];+    } else {+        return null;+    }+}+h$HeapSet.prototype.peekPrio = function() {+    return this._size > 0 ? this._prios[0] : null;+}+h$HeapSet.prototype.peek = function() {+    return this._size > 0 ? this._vals[0] : null;+}+h$HeapSet.prototype.pop = function() {+    if(this._size > 0) {+        var v = this._vals[0];+        this._removeNode(0);+        return v;+    } else {+        return null;+    }+}+h$HeapSet.prototype.remove = function(o) {+    var x = this._keys[o._key];+    if(x !== undefined) this._removeNode(x);+}+h$HeapSet.prototype.iter = function() {+    var n = 0, v = this._vals, s = this._size;+    return function() {+        return n < s ? v[n++] : null;+    }+}+// may be longer than this.size(), remainder is filled with nulls+h$HeapSet.prototype.values = function() {+    return this._vals;+}+h$HeapSet.prototype._removeNode = function(i) {+    var p = this._prios, v = this._vals, s = --this._size, k = this._keys;+    delete k[v[i]._key];+    if(i !== s) {+        v[i] = v[s];+        p[i] = p[s];+        k[v[i]._key] = i;+    }+    v[s] = null;+    p[s] = null;+    this._downHeap(i,s);+}+h$HeapSet.prototype._downHeap = function(i,s) {+    var p = this._prios, v = this._vals, k = this._keys;+    var j,l,r,ti,tj;+    while(true) {+        j = i, r = 2*(i+1), l = r-1;+        if(l < s && p[l] < p[i]) i = l;+        if(r < s && p[r] < p[i]) i = r;+        if(i !== j) {+            ti = v[i];+            tj = v[j];+            v[j] = ti;+            v[i] = tj;+            k[ti._key] = j;+            k[tj._key] = i;+            ti = p[i];+            p[i] = p[j];+            p[j] = ti;+        } else {+            break;+        }+    }+}+h$HeapSet.prototype._upHeap = function(i) {+    var ti, tj, j, p = this._prios, v = this._vals, k = this._keys;+    while(i !== 0) {+        j = (i-1) >> 1;+        if(p[i] < p[j]) {+            ti = v[i];+            tj = v[j];+            v[j] = ti;+            v[i] = tj;+            k[ti._key] = j;+            k[tj._key] = i;+            ti = p[i];+            p[i] = p[j];+            p[j] = ti;+            i = j;+        } else {+            break;+        }+    }+}+/* Copyright (C) 1991-2014 Free Software Foundation, Inc.+   This file is part of the GNU C Library.++   The GNU C Library is free software; you can redistribute it and/or+   modify it under the terms of the GNU Lesser General Public+   License as published by the Free Software Foundation; either+   version 2.1 of the License, or (at your option) any later version.++   The GNU C Library is distributed in the hope that it will be useful,+   but WITHOUT ANY WARRANTY; without even the implied warranty of+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+   Lesser General Public License for more details.++   You should have received a copy of the GNU Lesser General Public+   License along with the GNU C Library; if not, see+   <http://www.gnu.org/licenses/>.  */+/* This header is separate from features.h so that the compiler can+   include it implicitly at the start of every compilation.  It must+   not itself include <features.h> or any other header that includes+   <features.h> because the implicit include comes before any feature+   test macros that may be defined in a source file before it first+   explicitly includes a system header.  GCC knows the name of this+   header in order to preinclude it.  */+/* glibc's intent is to support the IEC 559 math functionality, real+   and complex.  If the GCC (4.9 and later) predefined macros+   specifying compiler intent are available, use them to determine+   whether the overall intent is to support these features; otherwise,+   presume an older compiler has intent to support these features and+   define these macros by default.  */+/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) /+   Unicode 6.0.  */+/* We do not support C11 <threads.h>.  */+// #define GHCJS_TRACE_META 1+// memory management and pointer emulation+// static init, non-caf+function h$sti(i,c,xs) {+    i.f = c;+    h$init_closure(i,xs);+}+// static init, caf+function h$stc(i,c) {+    i.f = c;+    h$init_closure(i,[]);+    h$CAFs.push(i);+    h$CAFsReset.push(i.f);+}+function h$stl(o, xs, t) {+    var r = t ? t : h$ghczmprimZCGHCziTypesziZMZN;+    var x;+    if(xs.length > 0) {+        for(var i=xs.length-1;i>=0;i--) {+            x = xs[i];+            if(!x && x !== false && x !== 0) throw "h$toHsList: invalid element";+            r = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, x, r);+        }+    }+    o.f = r.f;+    o.d1 = r.d1;+    o.d2 = r.d2;+    o.m = r.m;+}+// delayed init for top-level closures+var h$staticDelayed = [];+function h$d() {+    var c = h$c(null);+    h$staticDelayed.push(c);+    return c;+}+var h$allocN = 0;+function h$traceAlloc(x) {+    h$log("allocating: " + (++h$allocN));+    x.alloc = h$allocN;+}+// fixme remove this when we have a better way to immediately init these things+function h$di(c) {+    h$staticDelayed.push(c);+}+// initialize global object to primitive value+function h$p(x) {+    h$staticDelayed.push(x);+    return x;+}+var h$entriesStack = [];+var h$staticsStack = [];+var h$labelsStack = [];+function h$scheduleInit(entries, objs, lbls, infos, statics) {+    var d = h$entriesStack.length;+    h$entriesStack.push(entries);+    h$staticsStack.push(objs);+    h$labelsStack.push(lbls);+    h$initStatic.push(function() {+        h$initInfoTables(d, entries, objs, lbls, infos, statics);+    });+}+function h$runInitStatic() {+    if(h$initStatic.length > 0) {+        for(var i=h$initStatic.length - 1;i>=0;i--) {+            h$initStatic[i]();+        }+        h$initStatic = [];+    }+    // free the references to the temporary tables used for+    // initialising all our static data+    h$entriesStack = null;+    h$staticsStack = null;+}+// initialize packed info tables+// see Gen2.Compactor for how the data is encoded+function h$initInfoTables ( depth // depth in the base chain+                          , funcs // array with all entry functions+                          , objects // array with all the global heap objects+                          , lbls // array with non-haskell labels+                          , infoMeta // packed info+                          , infoStatic+                          ) {+  ;+  var n, i, j, o, pos = 0, info;+  function code(c) {+    if(c < 34) return c - 32;+    if(c < 92) return c - 33;+    return c - 34;+  }+  function next() {+    var c = info.charCodeAt(pos);+    if(c < 124) {+      ;+      pos++;+      return code(c);+    }+    if(c === 124) {+      pos+=3;+      var r = 90 + 90 * code(info.charCodeAt(pos-2))+                  + code(info.charCodeAt(pos-1));+      ;+      return r;+    }+    if(c === 125) {+      pos+=4;+      var r = 8190 + 8100 * code(info.charCodeAt(pos-3))+                   + 90 * code(info.charCodeAt(pos-2))+                   + code(info.charCodeAt(pos-1));+      ;+      return r;+    }+    throw ("h$initInfoTables: invalid code in info table: " + c + " at " + pos)+  }+  function nextCh() {+        return next(); // fixme map readable chars+  }+    function nextInt() {+        var n = next();+        var r;+        if(n === 0) {+            var n1 = next();+            var n2 = next();+            r = n1 << 16 | n2;+        } else {+            r = n - 12;+        }+        ;+        return r;+    }+    function nextSignificand() {+        var n = next();+        var n1, n2, n3, n4, n5;+        var r;+        if(n < 2) {+            n1 = next();+            n2 = next();+            n3 = next();+            n4 = next();+            n5 = n1 * 281474976710656 + n2 * 4294967296 + n3 * 65536 + n4;+            r = n === 0 ? -n5 : n5;+        } else {+            r = n - 12;+        }+        ;+        return r;+    }+    function nextEntry(o) { return nextIndexed("nextEntry", h$entriesStack, o); }+    function nextObj(o) { return nextIndexed("nextObj", h$staticsStack, o); }+    function nextLabel(o) { return nextIndexed("nextLabel", h$labelsStack, o); }+    function nextIndexed(msg, stack, o) {+        var n = (o === undefined) ? next() : o;+        var i = depth;+        while(n > stack[i].length) {+            n -= stack[i].length;+            i--;+            if(i < 0) throw (msg + ": cannot find item " + n + ", stack length: " + stack.length + " depth: " + depth);+        }+        return stack[i][n];+    }+    function nextArg() {+        var o = next();+        var n, n1, n2;+        switch(o) {+        case 0:+            ;+            return false;+        case 1:+            ;+            return true;+        case 2:+            ;+            return 0;+        case 3:+            ;+            return 1;+        case 4:+            ;+            return nextInt();+        case 5:+            ;+            return null;+        case 6:+            ;+            n = next();+            switch(n) {+            case 0:+                return -0.0;+            case 1:+                return 0.0;+            case 2:+                return 1/0;+            case 3:+                return -1/0;+            case 4:+                return 0/0;+            case 5:+                n1 = nextInt();+                return nextSignificand() * Math.pow(2, n1)+            default:+                n1 = n - 36;+                return nextSignificand() * Math.pow(2, n1);+            }+        case 7:+            ;+            throw "string arg";+            return ""; // fixme haskell string+        case 8:+            ;+            n = next();+            var ba = h$newByteArray(n);+            var b8 = ba.u8;+            var p = 0;+            while(n > 0) {+                switch(n) {+                case 1:+                    d0 = next();+                    d1 = next();+                    b8[p] = ((d0 << 2) | (d1 >> 4));+                    break;+                case 2:+                    d0 = next();+                    d1 = next();+                    d2 = next();+                    b8[p++] = ((d0 << 2) | (d1 >> 4));+                    b8[p] = ((d1 << 4) | (d2 >> 2));+                    break;+                default:+                    d0 = next();+                    d1 = next();+                    d2 = next();+                    d3 = next();+                    b8[p++] = ((d0 << 2) | (d1 >> 4));+                    b8[p++] = ((d1 << 4) | (d2 >> 2));+                    b8[p++] = ((d2 << 6) | d3);+                    break;+                }+                n -= 3;+            }+            return ba;+        case 9:+            var isFun = next() === 1;+            var lbl = nextLabel();+            return h$initPtrLbl(isFun, lbl);+        case 10:+            var c = { f: nextEntry(), d1: null, d2: null, m: 0 };+            var n = next();+            var args = [];+            while(n--) {+                args.push(nextArg());+            }+            return h$init_closure(c, args);+        default:+            ;+            return nextObj(o-11);+        }+    }+    info = infoMeta; pos = 0;+  for(i=0;i<funcs.length;i++) {+    o = funcs[i];+    var ot;+    var oa = 0;+    var oregs = 256; // one register no skip+    switch(next()) {+      case 0: // thunk+        ot = 0;+        break;+      case 1: // fun+        ot = 1+        var arity = next();+        var skipRegs = next()-1;+        if(skipRegs === -1) throw "h$initInfoTables: unknown register info for function";+        var skip = skipRegs & 1;+        var regs = skipRegs >>> 1;+        oregs = (regs << 8) | skip;+        oa = arity + ((regs-1+skip) << 8);+        break;+      case 2: // con+        ot = 2;+        oa = next();+        break;+      case 3: // stack frame+        ot = -1;+        oa = 0;+        oregs = next() - 1;+        if(oregs !== -1) oregs = ((oregs >>> 1) << 8) | (oregs & 1);+        break;+      default: throw ("h$initInfoTables: invalid closure type")+    }+    var size = next() - 1;+    var nsrts = next();+    var srt = null;+    if(nsrts > 0) {+      srt = [];+      for(var j=0;j<nsrts;j++) {+          srt.push(nextObj());+      }+    }+    // h$log("result: " + ot + " " + oa + " " + oregs + " [" + srt + "] " + size);+    // h$log("orig: " + o.t + " " + o.a + " " + o.r + " [" + o.s + "] " + o.size);+    // if(ot !== o.t || oa !== o.a || oregs !== o.r || size !== o.size) throw "inconsistent";+    o.t = ot;+    o.i = [];+    o.n = "";+    o.a = oa;+    o.r = oregs;+    o.s = srt;+    o.m = 0;+    o.size = size;+  }+    info = infoStatic;+    pos = 0;+    for(i=0;i<objects.length;i++) {+      ;+      o = objects[i];+        // traceMetaObjBefore(o);+      var nx = next();+      ;+      switch(nx) {+      case 0: // no init, could be a primitive value (still in the list since others might reference it)+          // h$log("zero init");+          break;+      case 1: // staticfun+          o.f = nextEntry();+          ;+          break;+      case 2: // staticThunk+          ;+          o.f = nextEntry();+          h$CAFs.push(o);+          h$CAFsReset.push(o.f);+          break;+      case 3: // staticPrim false, no init+          ;+          break;+      case 4: // staticPrim true, no init+          ;+          break;+      case 5:+          ;+          break;+      case 6: // staticString+          ;+          break;+      case 7: // staticBin+          ;+          n = next();+          var b = h$newByteArray(n);+          for(j=0;j>n;j++) {+              b.u8[j] = next();+          }+          break;+      case 8: // staticEmptyList+          ;+          o.f = h$ghczmprimZCGHCziTypesziZMZN.f;+          break;+      case 9: // staticList+          ;+          n = next();+          var hasTail = next();+          var c = (hasTail === 1) ? nextObj() : h$ghczmprimZCGHCziTypesziZMZN;+          ;+          while(n--) {+              c = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, nextArg(), c);+          }+          o.f = c.f;+          o.d1 = c.d1;+          o.d2 = c.d2;+          break;+      case 10: // staticData n args+          ;+          n = next();+          ;+          o.f = nextEntry();+          for(j=0;j<n;j++) {+              h$setField(o, j, nextArg());+          }+          break;+      case 11: // staticData 0 args+          ;+          o.f = nextEntry();+          break;+      case 12: // staticData 1 args+          ;+          o.f = nextEntry();+          o.d1 = nextArg();+          break;+      case 13: // staticData 2 args+          ;+          o.f = nextEntry();+          o.d1 = nextArg();+          o.d2 = nextArg();+          break;+      case 14: // staticData 3 args+          ;+          o.f = nextEntry();+          o.d1 = nextArg();+          // should be the correct order+          o.d2 = { d1: nextArg(), d2: nextArg()};+          break;+      case 15: // staticData 4 args+          ;+          o.f = nextEntry();+          o.d1 = nextArg();+          // should be the correct order+          o.d2 = { d1: nextArg(), d2: nextArg(), d3: nextArg() };+          break;+      case 16: // staticData 5 args+          ;+          o.f = nextEntry();+          o.d1 = nextArg();+          o.d2 = { d1: nextArg(), d2: nextArg(), d3: nextArg(), d4: nextArg() };+          break;+      case 17: // staticData 6 args+          ;+          o.f = nextEntry();+          o.d1 = nextArg();+          o.d2 = { d1: nextArg(), d2: nextArg(), d3: nextArg(), d4: nextArg(), d5: nextArg() };+          break;+      default:+          throw ("invalid static data initializer: " + nx);+      }+  }+  h$staticDelayed = null;+}+function h$initPtrLbl(isFun, lbl) {+    return lbl;+}+function h$callDynamic(f) {+    return f.apply(f, Array.prototype.slice.call(arguments, 2));+}+// slice an array of heap objects+function h$sliceArray(a, start, n) {+  return a.slice(start, start+n);+}+function h$memcpy() {+  if(arguments.length === 3) { // ByteArray# -> ByteArray# copy+    var dst = arguments[0];+    var src = arguments[1];+    var n = arguments[2];+    for(var i=n-1;i>=0;i--) {+      dst.u8[i] = src.u8[i];+    }+    h$ret1 = 0;+    return dst;+  } else if(arguments.length === 5) { // Addr# -> Addr# copy+    var dst = arguments[0];+    var dst_off = arguments[1]+    var src = arguments[2];+    var src_off = arguments[3];+    var n = arguments[4];+    for(var i=n-1;i>=0;i--) {+      dst.u8[i+dst_off] = src.u8[i+src_off];+    }+    h$ret1 = dst_off;+    return dst;+  } else {+    throw "h$memcpy: unexpected argument";+  }+}+// note: only works for objects bigger than two!+function h$setField(o,n,v) {+    if(n > 0 && !o.d2) o.d2 = {};+    switch(n) {+    case 0:+        o.d1 = v;+        return;+    case 1:+        o.d2.d1 = v;+        return;+    case 2:+        o.d2.d2 = v;+        return;+    case 3:+        o.d2.d3 = v;+        return;+    case 4:+        o.d2.d4 = v;+        return;+    case 5:+        o.d2.d5 = v;+        return;+    case 6:+        o.d2.d6 = v;+        return;+    case 7:+        o.d2.d7 = v;+        return;+    case 8:+        o.d2.d8 = v;+        return;+    case 9:+        o.d2.d9 = v;+        return;+    case 10:+        o.d2.d10 = v;+        return;+    case 11:+        o.d2.d11 = v;+        return;+    case 12:+        o.d2.d12 = v;+        return;+    case 13:+        o.d2.d13 = v;+        return;+    case 14:+        o.d2.d14 = v;+        return;+    case 15:+        o.d2.d15 = v;+        return;+    case 16:+        o.d2.d16 = v;+        return;+    case 17:+        o.d2.d17 = v;+        return;+    case 18:+        o.d2.d18 = v;+        return;+    case 19:+        o.d2.d19 = v;+        return;+    case 20:+        o.d2.d20 = v;+        return;+    case 21:+        o.d2.d21 = v;+        return;+    case 22:+        o.d2.d22 = v;+        return;+    case 23:+        o.d2.d23 = v;+        return;+    case 24:+        o.d2.d24 = v;+        return;+    case 25:+        o.d2.d25 = v;+        return;+    case 26:+        o.d2.d26 = v;+        return;+    case 27:+        o.d2.d27 = v;+        return;+    case 28:+        o.d2.d28 = v;+        return;+    case 29:+        o.d2.d29 = v;+        return;+    case 30:+        o.d2.d30 = v;+        return;+    case 31:+        o.d2.d31 = v;+        return;+    case 32:+        o.d2.d32 = v;+        return;+    case 33:+        o.d2.d33 = v;+        return;+    case 34:+        o.d2.d34 = v;+        return;+    case 35:+        o.d2.d35 = v;+        return;+    case 36:+        o.d2.d36 = v;+        return;+    case 37:+        o.d2.d37 = v;+        return;+    case 38:+        o.d2.d38 = v;+        return;+    case 39:+        o.d2.d39 = v;+        return;+    case 40:+        o.d2.d40 = v;+        return;+    case 41:+        o.d2.d41 = v;+        return;+    case 42:+        o.d2.d42 = v;+        return;+    case 43:+        o.d2.d43 = v;+        return;+    case 44:+        o.d2.d44 = v;+        return;+    case 45:+        o.d2.d45 = v;+        return;+    case 45:+        o.d2.d45 = v;+        return;+    case 46:+        o.d2.d46 = v;+        return;+    case 47:+        o.d2.d47 = v;+        return;+    case 48:+        o.d2.d48 = v;+        return;+    case 49:+        o.d2.d49 = v;+        return;+    case 50:+        o.d2.d50 = v;+        return;+    case 51:+        o.d2.d51 = v;+        return;+    case 52:+        o.d2.d52 = v;+        return;+    case 53:+        o.d2.d53 = v;+        return;+    case 54:+        o.d2.d54 = v;+        return;+    case 55:+        o.d2.d55 = v;+        return;+    case 56:+        o.d2.d56 = v;+        return;+    case 57:+        o.d2.d57 = v;+        return;+    case 58:+        o.d2.d58 = v;+        return;+    case 59:+        o.d2.d59 = v;+        return;+    case 60:+        o.d2.d60 = v;+        return;+    case 61:+        o.d2.d61 = v;+        return;+    case 62:+        o.d2.d62 = v;+        return;+    case 63:+        o.d2.d63 = v;+        return;+    case 64:+        o.d2.d64 = v;+        return;+    case 65:+        o.d2.d65 = v;+        return;+    case 66:+        o.d2.d66 = v;+        return;+    case 67:+        o.d2.d67 = v;+        return;+    case 68:+        o.d2.d68 = v;+        return;+    case 69:+        o.d2.d69 = v;+        return;+    case 70:+        o.d2.d70 = v;+        return;+    case 71:+        o.d2.d71 = v;+        return;+    case 72:+        o.d2.d72 = v;+        return;+    case 73:+        o.d2.d73 = v;+        return;+    case 74:+        o.d2.d74 = v;+        return;+    case 75:+        o.d2.d75 = v;+        return;+    case 76:+        o.d2.d76 = v;+        return;+    case 77:+        o.d2.d77 = v;+        return;+    case 78:+        o.d2.d78 = v;+        return;+    case 79:+        o.d2.d79 = v;+        return;+    case 80:+        o.d2.d80 = v;+        return;+    case 81:+        o.d2.d81 = v;+        return;+    case 82:+        o.d2.d82 = v;+        return;+    case 83:+        o.d2.d83 = v;+        return;+    case 84:+        o.d2.d84 = v;+        return;+    case 85:+        o.d2.d85 = v;+        return;+    case 86:+        o.d2.d86 = v;+        return;+    case 87:+        o.d2.d87 = v;+        return;+    case 88:+        o.d2.d88 = v;+        return;+    case 89:+        o.d2.d89 = v;+        return;+    case 90:+        o.d2.d90 = v;+        return;+    case 91:+        o.d2.d91 = v;+        return;+    case 92:+        o.d2.d92 = v;+        return;+    case 93:+        o.d2.d93 = v;+        return;+    case 94:+        o.d2.d94 = v;+        return;+    case 95:+        o.d2.d95 = v;+        return;+    case 96:+        o.d2.d96 = v;+        return;+    case 97:+        o.d2.d97 = v;+        return;+    case 98:+        o.d2.d98 = v;+        return;+    case 99:+        o.d2.d99 = v;+        return;+    case 100:+        o.d2.d100 = v;+        return;+    default:+        throw ("h$setField: setter not implemented for field: " + n);+    }+}+function h$mkExportDyn(t, f) {+    h$log("making dynamic export: " + t);+    h$log("haskell fun: " + f + " " + h$collectProps(f));+    // fixme register things, global static data+    var ff = function() {+        h$log("running some haskell for you");+        return 12;+    };+    return h$mkPtr(ff, 0);+}+function h$memchr(a_v, a_o, c, n) {+  for(var i=0;i<n;i++) {+    if(a_v.u8[a_o+i] === c) {+      h$ret1 = a_o+i;+      return a_v;+    }+  }+  h$ret1 = 0;+  return null;+}+function h$strlen(a_v, a_o) {+  var i=0;+  while(true) {+    if(a_v.u8[a_o+i] === 0) { return i; }+    i++;+  }+}+function h$newArray(len, e) {+    var r = [];+    r.__ghcjsArray = true;+    r.m = 0;+    if(e === null) e = r;+    for(var i=0;i<len;i++) r[i] = e;+    return r;+}+function h$roundUpToMultipleOf(n,m) {+  var rem = n % m;+  return rem === 0 ? n : n - rem + m;+}+function h$newByteArray(len) {+  var len0 = Math.max(h$roundUpToMultipleOf(len, 8), 8);+  var buf = new ArrayBuffer(len0);+  return { buf: buf+         , len: len+         , i3: new Int32Array(buf)+         , u8: new Uint8Array(buf)+         , u1: new Uint16Array(buf)+         , f3: new Float32Array(buf)+         , f6: new Float64Array(buf)+         , dv: new DataView(buf)+         }+}+/*+  Unboxed arrays in GHC use the ByteArray# and MutableByteArray#+  primitives. In GHCJS these primitives are represented by an+  object that contains a JavaScript ArrayBuffer and several views+  (typed arrays) on that buffer.++  Usually you can use GHCJS.Foreign.wrapBuffer and+  GHCJS.Foreign.wrapMutableBuffer to do the conversion. If you need+  more control or lower level acces, read on.++  You can use h$wrapBuffer to wrap any JavaScript ArrayBuffer+  into such an object, without copying the buffer. Since typed array+  access is aligned, not all views are available+  if the offset of the buffer is not a multiple of 8.++  Since IO has kind * -> *, you cannot return IO ByteArray#+  from a foreign import, even with the UnliftedFFITypes+  extension. Return a JSRef instead and use unsafeCoerce+  to convert it to a Data.Primitive.ByteArray.ByteArray or+  Data.Primitive.ByteArray.MutableByteArray (primitive package)+  and pattern match on the constructor to get the+  primitive value out.++  These types have the same runtime representation (a data+  constructor with one regular (one JavaScript variable)+  field) as a JSRef, so the conversion is safe, as long+  as everything is fully evaluated.+*/+function h$wrapBuffer(buf, unalignedOk, offset, length) {+  if(!unalignedOk && offset && offset % 8 !== 0) {+    throw ("h$wrapBuffer: offset not aligned:" + offset);+  }+  if(!buf || !(buf instanceof ArrayBuffer))+    throw "h$wrapBuffer: not an ArrayBuffer"+  if(!offset) { offset = 0; }+  if(!length || length < 0) { length = buf.byteLength - offset; }+  return { buf: buf+         , len: length+         , i3: (offset%4) ? null : new Int32Array(buf, offset, length >> 2)+         , u8: new Uint8Array(buf, offset, length)+         , u1: (offset%2) ? null : new Uint16Array(buf, offset, length >> 1)+         , f3: (offset%4) ? null : new Float32Array(buf, offset, length >> 2)+         , f6: (offset%8) ? null : new Float64Array(buf, offset, length >> 3)+         , dv: new DataView(buf, offset, length)+         };+}+var h$stableNameN = 1;+/** @constructor */+function h$StableName(m) {+    this.m = m;+    this.s = null;+}+function h$makeStableName(x) {+    if(typeof x === 'object') {+        if(typeof x.m !== 'object') {+            x.m = new h$StableName(x.m);+        }+        return x.m;+    } else {+        return new h$StableName(0);+    }+}+function h$stableNameInt(s) {+    var x = s.s;+    if(x === null) {+        x = s.s = h$stableNameN = (h$stableNameN+1)|0;+    }+    return x;+}+function h$eqStableName(s1o,s2o) {+    return s1o === s2o ? 1 : 0;+}+function h$makeStablePtr(v) {+  var buf = h$newByteArray(4);+  buf.arr = [v];+  h$ret1 = 0;+  return buf;+}+function h$hs_free_stable_ptr(stable) {+}+function h$malloc(n) {+  h$ret1 = 0;+  return h$newByteArray(n);+}+function h$free() {+}+function h$memset() {+  var buf_v, buf_off, chr, n;+  buf_v = arguments[0];+  if(arguments.length == 4) { // Addr#+    buf_off = arguments[1];+    chr = arguments[2];+    n = arguments[3];+  } else if(arguments.length == 3) { // ByteString#+    buf_off = 0;+    chr = arguments[1];+    n = arguments[2];+  } else {+    throw("h$memset: unexpected argument")+  }+  var end = buf_off + n;+  for(var i=buf_off;i<end;i++) {+    buf_v.u8[i] = chr;+  }+  h$ret1 = buf_off;+  return buf_v;+}+function h$memcmp(a_v, a_o, b_v, b_o, n) {+  for(var i=0;i<n;i++) {+    var a = a_v.u8[a_o+i];+    var b = b_v.u8[b_o+i];+    var c = a-b;+    if(c !== 0) { return c; }+  }+  return 0;+}+function h$memmove(a_v, a_o, b_v, b_o, n) {+  if(n > 0) {+    var tmp = new Uint8Array(b_v.buf.slice(b_o,b_o+n));+    for(var i=0;i<n;i++) {+      a_v.u8[a_o+i] = tmp[i];+    }+  }+  h$ret1 = a_o;+  return a_v;+}+function h$mkPtr(v, o) {+  return h$c2(h$baseZCGHCziPtrziPtr_con_e, v, o);+};+function h$mkFunctionPtr(f) {+  var d = h$newByteArray(4);+  d.arr = [f];+  return d;+}+var h$freeHaskellFunctionPtr = function () {+}+/*+function h$createAdjustor(cconv, hptr, hptr_2, wptr, wptr_2, type) {+    h$ret1 = hptr_2;+    return hptr;+};+*/+// extra roots for the heap scanner: objects with root property+var h$extraRootsN = 0;+var h$extraRoots = new h$Set();+// +var h$domRoots = new h$Set();+function h$makeCallback(retain, f, extraArgs, action) {+    var args = extraArgs.slice(0);+    args.unshift(action);+    var c = function() {+        return f.apply(this, args);+    }+    if(retain === true) {+        c._key = ++h$extraRootsN;+        c.root = action;+        h$extraRoots.add(c);+    } else if(retain) { // DOM retain+    }+    return c;+}+function h$makeCallbackApply(retain, n, f, extraArgs, fun) {+  var c;+  if(n === 1) {+    c = function(x) {+      var args = extraArgs.slice(0);+      var action = h$c2(h$ap1_e, fun, h$mkJSRef(x));+      args.unshift(action);+      return f.apply(this, args);+    }+  } else if (n === 2) {+    c = function(x,y) {+      var args = extraArgs.slice(0);+      var action = h$c3(h$ap2_e, fun, h$mkJSRef(x), h$mkJSRef(y));+      args.unshift(action);+      return f.apply(this, args);+    }+  } else {+    throw "h$makeCallbackApply: unsupported arity";+  }+  if(retain === true) {+      c.root = fun;+      c._key = ++h$extraRootsN;+      h$extraRoots.add(c);+  } else if(retain) {+    // fixme: retain this while `retain' is in some DOM+  } else {+    // no retainer+  }+  return c;+}+function h$mkJSRef(x) {+  return h$c1(h$ghcjszmprimZCGHCJSziPrimziJSRef_con_e, x);+}+// fixme these don't guarantee that the object has a key!+function h$retain(c) {+  h$extraRoots.add(c);+}+function h$retainDom(d, c) {+  h$domRoots.add(c);+  c.domRoots = new h$Set();+}+function h$releasePermanent(c) {+  h$extraRoots.remove(c);+}+function h$release(c) {+  h$extraRoots.remove(c);+  h$domRoots.remove(c);+}+function h$releaseDom(c,d) {+  if(c.domRoots) c.domRoots.remove(d);+  if(!c.domRoots || c.domRoots.size() == 0) h$domRoots.remove(c);+}+function h$isInstanceOf(o,c) {+  return o instanceof c;+}+function h$getpagesize() {+  return 4096;+}+var h$MAP_ANONYMOUS = 0x20;+function h$mmap(addr_d, addr_o, len, prot, flags, fd, offset1, offset2) {+  if(flags & h$MAP_ANONYMOUS || fd === -1) {+    h$ret1 = 0;+    return h$newByteArray(len);+  } else {+    throw "h$mmap: mapping a file is not yet supported";+  }+}+function h$mprotect(addr_d, addr_o, size, prot) {+  return 0;+}+function h$munmap(addr_d, addr_o, size) {+  if(addr_d && addr_o === 0 && size >= addr_d.len) {+    addr_d.buf = null;+    addr_d.i3 = null;+    addr_d.u8 = null;+    addr_d.u1 = null;+    addr_d.f3 = null;+    addr_d.f6 = null;+    addr_d.dv = null;+  }+  return 0;+}+/* Copyright (C) 1991-2014 Free Software Foundation, Inc.+   This file is part of the GNU C Library.++   The GNU C Library is free software; you can redistribute it and/or+   modify it under the terms of the GNU Lesser General Public+   License as published by the Free Software Foundation; either+   version 2.1 of the License, or (at your option) any later version.++   The GNU C Library is distributed in the hope that it will be useful,+   but WITHOUT ANY WARRANTY; without even the implied warranty of+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+   Lesser General Public License for more details.++   You should have received a copy of the GNU Lesser General Public+   License along with the GNU C Library; if not, see+   <http://www.gnu.org/licenses/>.  */+/* This header is separate from features.h so that the compiler can+   include it implicitly at the start of every compilation.  It must+   not itself include <features.h> or any other header that includes+   <features.h> because the implicit include comes before any feature+   test macros that may be defined in a source file before it first+   explicitly includes a system header.  GCC knows the name of this+   header in order to preinclude it.  */+/* glibc's intent is to support the IEC 559 math functionality, real+   and complex.  If the GCC (4.9 and later) predefined macros+   specifying compiler intent are available, use them to determine+   whether the overall intent is to support these features; otherwise,+   presume an older compiler has intent to support these features and+   define these macros by default.  */+/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) /+   Unicode 6.0.  */+/* We do not support C11 <threads.h>.  */+/*+  Do garbage collection where the JavaScript GC doesn't suffice or needs some help:++  - run finalizers for weak references+  - find unreferenced CAFs and reset them (unless h$retainCAFs is set)+  - shorten stacks that are mostly empty+  - reset unused parts of stacks to null+  - reset registers to null+  - reset return variables to null+  - throw exceptions to threads that are blocked on an unreachable MVar/STM transaction+  - drop unnecessary references for selector thunks++  The gc uses the .m field to store its mark in all the objects it marks. for heap objects,+  the .m field is also used for other things, like stable names, the gc only changes+  the two least significant bits for these.++  The gc starts with all threads as roots in addition to callbacks passed to JavaScript+  that that are retained. If you have custom JavaScript data structures that contain+  Haskell heap object references, you can use extensible retention to find these+  references and add thm to the work queue. h$registerExtensibleRetensionRoot(f) calls+  f(currentMark) at the start of every gc, h$registerExtensibleRetention(f) calls f(o, currentMark)+  for every unknown object found on the Haskell heap.++  Extensible retention is a low-level mechanism and should typically only be used by+  bindings that guarantee that the shape of the JS objects exactly matches what+  the scanner expects. Care should be taken to make sure that the objects never+  escape the reach of the scanner.++  Having correct reachability information is important, even if you choose to turn off+  features like weak references and deallocating CAFs in production, since it helps+  debugging by providing the profiler with accurate data and by properly raising+  exceptions when threads become blocked indefinitely, usually indicating a bug or+  memory leak.++  assumptions:+  - all threads suspended, no active registers+  - h$currentThread == null or at least unused:+       1. all reachable threads must be in h$threads or h$blocked+       2. no registers contain any usable value+  notes:+  - gc() may replace the stack of any thread, make sure to reload h$stack after gc()+*/+/*+  fixme, todo:+  - mark posted exceptions to thread+*/+// these macros use a local mark variable+var h$gcMark = 2; // 2 or 3 (objects initialized with 0)+var h$retainCAFs = false;+var h$CAFs = [];+var h$CAFsReset = [];+// +var h$extensibleRetentionRoots = [];+var h$extensibleRetentionCallbacks = [];+/*+   after registering an extensible extension root f,+   f() is called at the start of each gc invocation and is+   expected to return an array with Haskell heap objects+   to be treated as extra roots.+ */+function h$registerExtensibleRetentionRoot(f) {+    h$extensibleRetentionRoots.push(f);+}+function h$unregisterExtensibleRetentionRoot(f) {+    h$extensibleRetentionRoots = h$extensibleRetentionRoots.filter(function(g) { return f !== g; });+}+/*+  after registering an extensible retention callback f,+  f(o, currentMark) is called for every unknown object encountered on the+  Haskell heap. f should return an array with found objects. If no objects+  are found, f should return a boolean indicating whether the gc should skip+  processing the objects with other extensible retention callbacks.++  The gc may encounter the same object multiple times during the same scan,+  so a callback should attempt to quickly return if the object has been scanned+  already.++   return value:+     - array          scan objects contained in array, do not call other extension callbacks+     - true           do not call other extension callbacks with this object+     - false          call other extension callbacks with this object++  Use -DGHCJS_TRACE_GC_UNKNOWN to find the JavaScript objects reachable+  (through JSRef) on the Haskell heap for which none of the registered+  extensible retention callbacks has returned true or an array.+ */+function h$registerExtensibleRetention(f) {+    h$extensibleRetentionCallbacks.push(f);+}+function h$unregisterExtensibleRetention(f) {+    h$extensibleRetentionCallbacks = h$extensibleRetentionCallbacks.filter(function(g) { return f !== g; });+}+// check whether the object is marked by the latest gc+function h$isMarked(obj) {+  return (typeof obj === 'object' || typeof obj === 'function') &&+        ((typeof obj.m === 'number' && (obj.m & 3) === h$gcMark) || (obj.m && typeof obj.m === 'object' && obj.m.m === h$gcMark));+}+// do a quick gc of a thread:+// - reset the stack (possibly shrinking storage for it)+// - reset all global data+// checks all known threads if t is null, but not h$currentThread+function h$gcQuick(t) {+    if(h$currentThread !== null) throw "h$gcQuick: GC can only run when no thread is running";+    h$resetRegisters();+    h$resetResultVars();+    var i;+    if(t !== null) { // reset specified threads+        if(t instanceof h$Thread) { // only thread t+            h$resetThread(t);+        } else { // assume it's an array+            for(var i=0;i<t.length;i++) h$resetThread(t[i]);+        }+    } else { // all threads, h$currentThread assumed unused+        var nt, runnable = h$threads.iter();+        while((nt = runnable()) !== null) h$resetThread(nt);+        var iter = h$blocked.iter();+        while((nt = iter.next()) !== null) h$resetThread(nt);+    }+}+// run full marking for threads in h$blocked and h$threads, optionally t if t /= null+function h$gc(t) {+    if(h$currentThread !== null) throw "h$gc: GC can only be run when no thread is running";+    ;+    var start = Date.now();+    h$resetRegisters();+    h$resetResultVars();+    h$gcMark = 5-h$gcMark;+    var i;+   +    for(i=h$extensibleRetentionRoots.length-1;i>=0;i--) {+        var a = h$extensibleRetentionRoots[i]();+        h$follow(a, a.length-1);+    }+    ;+    if(t !== null) h$markThread(t);+    var nt, runnable = h$threads.iter();+    while((nt = runnable()) !== null) h$markThread(nt);+    var iter = h$blocked.iter();+    while((nt = iter.next()) !== null) {+        if(!(nt.blockedOn instanceof h$MVar) || (nt.stack && nt.stack[nt.sp] === h$unboxFFIResult)) {+            h$markThread(nt);+        }+    }+    ;+    iter = h$extraRoots.iter();+    while((nt = iter.next()) !== null) h$follow(nt.root);+    // now we've marked all the regular Haskell data, continue marking+    // weak references and everything retained by DOM retainers+    h$markRetained();+    // now all running threads and threads blocked on something that's+    // not an MVar operation have been marked, including other threads+    // they reference through their ThreadId+    // clean up threads waiting on unreachable MVars:+    // throw an exception to a thread (which brings it back+    // to life), then scan it. Killing one thread might be enough+    // since the killed thread could make other threads reachable again.+    h$finalizeMVars();+    h$markRetained();+    // now everything has been marked, bring out your dead references+    // run finalizers for all weak references with unreachable keys+    var finalizers = h$finalizeWeaks();+    h$clearWeaks();+    for(i=0;i<finalizers.length;i++) {+        var fin = finalizers[i].finalizer;+        if(fin !== null && !((typeof fin.m === 'number' && (fin.m & 3) === mark) || (typeof fin.m === 'object' && ((fin.m.m & 3) === mark)))) h$follow(fin);+    }+    h$markRetained();+    h$clearWeaks();+    h$scannedWeaks = [];+    h$finalizeDom(); // remove all unreachable DOM retainers+    h$finalizeCAFs(); // restore all unreachable CAFs to unevaluated state+    var now = Date.now();+    h$lastGc = now;+}+function h$markRetained() {+    var iter, marked, c, mark = h$gcMark;+    do {+        ;+        marked = false;+        // mark all finalizers of weak references where the key is reachable+        iter = h$finalizers.iter();+        while((c = iter.next()) !== null) {+            if(!((typeof c.finalizer.m === 'number' && (c.finalizer.m & 3) === mark) || (typeof c.finalizer.m === 'object' && ((c.finalizer.m.m & 3) === mark))) && c.m.m === mark) {+                ;+                h$follow(c.finalizer);+                marked = true;+            }+        }+        // mark all callbacks where at least one of the DOM retainers is reachable+        iter = h$domRoots.iter();+        while((c = iter.next()) !== null) {+            if(!h$isMarked(c.root) && c.domRoots && c.domRoots.size() > 0) {+                var dr, domRetainers = c.domRoots.iter();+                while((dr = domRetainers.next()) !== null) {+                    if(h$isReachableDom(dr)) {+                        ;+                        h$follow(c.root);+                        marked = true;+                    }+                }+            }+        }+        // mark weak values for reachable keys+        for(var i=h$scannedWeaks.length-1;i>=0;i--) {+            var w = h$scannedWeaks[i];+            if(w.keym.m === mark && w.val !== null && !((typeof w.val.m === 'number' && (w.val.m & 3) === mark) || (typeof w.val.m === 'object' && ((w.val.m.m & 3) === mark)))) {+                ;+                h$follow(w.val);+                marked = true;+            }+        }+        // continue for a next round if we have marked something more+        // note: this will be slow for very deep chains of weak refs,+        // change this if that becomes a problem.+    } while(marked);+}+function h$markThread(t) {+    var mark = h$gcMark;+    ;+    if(((typeof t.m === 'number' && (t.m & 3) === mark) || (typeof t.m === 'object' && ((t.m.m & 3) === mark)))) return;+    if(typeof t.m === 'number') t.m = (t.m&-4)|mark; else t.m.m = (t.m.m & -4)|mark;;+    if(t.stack === null) return; // thread finished+    h$follow(t.stack, t.sp);+    h$resetThread(t);+}+// big object, not handled by 0..7 cases+// keep out of h$follow to prevent deopt+function h$followObjGen(c, work, w) {+   work.push(c.d1);+   var d = c.d2;+   for(var x in d) {+//              if(d.hasOwnProperty(x)) {+     work[w++] = d[x];;+//              }+   }+    return w;+}+// follow all references in the object obj and mark them with the current mark+// if sp is a number, obj is assumed to be an array for which indices [0..sp] need+// to be followed (used for thread stacks)+function h$follow(obj, sp) {+    var i, ii, iter, c, work, w;+    ;+    var work, mark = h$gcMark;+    if(typeof sp === 'number') {+        work = obj.slice(0, sp+1);+        w = sp + 1;+    } else {+        work = [obj];+        w = 1;+    }+    while(w > 0) {+        ;+        c = work[--w];+        ;+        if(c !== null && c !== undefined && typeof c === 'object' && ((typeof c.m === 'number' && (c.m&3) !== mark) || (typeof c.m === 'object' && c.m !== null && typeof c.m.m === 'number' && (c.m.m&3) !== mark))) {+            var doMark = false;+            var cf = c.f;+            ;+            if(typeof cf === 'function' && (typeof c.m === 'number' || typeof c.m === 'object')) {+                ;+                // only change the two least significant bits for heap objects+                if(typeof c.m === 'number') c.m = (c.m&-4)|mark; else c.m.m = (c.m.m & -4)|mark;;+                // dynamic references+                var d = c.d2;+                switch(cf.size) {+                case 0: break;+                case 1: work[w++] = c.d1;; break;+                case 2: { work[w++] = c.d1; work[w++] = d; }; break;+                case 3: var d3=c.d2; { work[w++] = c.d1; work[w++] = d3.d1; work[w++] = d3.d2; }; break;+                case 4: var d4=c.d2; { work[w++] = c.d1; work[w++] = d4.d1; work[w++] = d4.d2; work[w++] = d4.d3; }; break;+                case 5: var d5=c.d2; { work[w++] = c.d1; work[w++] = d5.d1; work[w++] = d5.d2; work[w++] = d5.d3; }; work[w++] = d5.d4;; break;+                case 6: var d6=c.d2; { work[w++] = c.d1; work[w++] = d6.d1; work[w++] = d6.d2; work[w++] = d6.d3; }; { work[w++] = d6.d4; work[w++] = d6.d5; }; break;+                case 7: var d7=c.d2; { work[w++] = c.d1; work[w++] = d7.d1; work[w++] = d7.d2; work[w++] = d7.d3; }; { work[w++] = d7.d4; work[w++] = d7.d5; work[w++] = d7.d6; }; break;+                case 8: var d8=c.d2; { work[w++] = c.d1; work[w++] = d8.d1; work[w++] = d8.d2; work[w++] = d8.d3; }; { work[w++] = d8.d4; work[w++] = d8.d5; work[w++] = d8.d6; work[w++] = d8.d7; }; break;+                case 9: var d9=c.d2; { work[w++] = c.d1; work[w++] = d9.d1; work[w++] = d9.d2; work[w++] = d9.d3; }; { work[w++] = d9.d4; work[w++] = d9.d5; work[w++] = d9.d6; work[w++] = d9.d7; }; work[w++] = d9.d8;; break;+                case 10: var d10=c.d2; { work[w++] = c.d1; work[w++] = d10.d1; work[w++] = d10.d2; work[w++] = d10.d3; }; { work[w++] = d10.d4; work[w++] = d10.d5; work[w++] = d10.d6; work[w++] = d10.d7; }; { work[w++] = d10.d8; work[w++] = d10.d9; }; break;+                case 11: var d11=c.d2; { work[w++] = c.d1; work[w++] = d11.d1; work[w++] = d11.d2; work[w++] = d11.d3; }; { work[w++] = d11.d4; work[w++] = d11.d5; work[w++] = d11.d6; work[w++] = d11.d7; }; { work[w++] = d11.d8; work[w++] = d11.d9; work[w++] = d11.d10; }; break;+                case 12: var d12=c.d2; { work[w++] = c.d1; work[w++] = d12.d1; work[w++] = d12.d2; work[w++] = d12.d3; }; { work[w++] = d12.d4; work[w++] = d12.d5; work[w++] = d12.d6; work[w++] = d12.d7; }; { work[w++] = d12.d8; work[w++] = d12.d9; work[w++] = d12.d10; work[w++] = d12.d11; }; break;+                default: w = h$followObjGen(c,work,w);+                }+                // static references+                var s = cf.s;+                if(s !== null) {+                    ;+                    for(var i=0;i<s.length;i++) work[w++] = s[i];;+                }+            } else if(c instanceof h$Weak) {+                ;+                if(c.keym.m === mark) {+                    if(c.val !== null && !((typeof c.val.m === 'number' && (c.val.m & 3) === mark) || (typeof c.val.m === 'object' && ((c.val.m.m & 3) === mark)))) work[w++] = c.val;;+                } else {+                    // fixme we should keep separate arrays for+                    // value mark pending / cleanup pending?+                    if(c.val !== null) h$scannedWeaks.push(c);+                }+                if(typeof c.m === 'number') c.m = (c.m&-4)|mark; else c.m.m = (c.m.m & -4)|mark;;+            } else if(c instanceof h$MVar) {+                ;+                if(typeof c.m === 'number') c.m = (c.m&-4)|mark; else c.m.m = (c.m.m & -4)|mark;;+                /*+                   only push the values in the queues, not the waiting threads++                   the threads will be scanned after threads waiting on unreachable+                   MVars have been cleaned up+                 */+                iter = c.writers.iter();+                while((ii = iter()) !== null) work[w++] = ii[1];;+                if(c.val !== null && !((typeof c.val.m === 'number' && (c.val.m & 3) === mark) || (typeof c.val.m === 'object' && ((c.val.m.m & 3) === mark)))) work[w++] = c.val;;+            } else if(c instanceof h$MutVar) {+                ;+                if(typeof c.m === 'number') c.m = (c.m&-4)|mark; else c.m.m = (c.m.m & -4)|mark;;+                work[w++] = c.val;;+            } else if(c instanceof h$TVar) {+                ;+                if(typeof c.m === 'number') c.m = (c.m&-4)|mark; else c.m.m = (c.m.m & -4)|mark;;+                work[w++] = c.val;;+            } else if(c instanceof h$Thread) {+                ;+                if(typeof c.m === 'number') c.m = (c.m&-4)|mark; else c.m.m = (c.m.m & -4)|mark;;+                if(c.stack) {+                    for(i=c.sp;i>=0;i--) work[w++] = c.stack[i];;+                }+            } else if(c instanceof h$Transaction) {+                /* - the accessed TVar values don't need to be marked+                   - parents are also on the stack, so they should've been marked already+                */+                ;+                if(typeof c.m === 'number') c.m = (c.m&-4)|mark; else c.m.m = (c.m.m & -4)|mark;;+                for(i=c.invariants.length-1;i>=0;i--) work[w++] = c.invariants[i];;+                work[w++] = c.action;;+                iter = c.tvars.iter();+                while((ii = iter.next()) !== null) work[w++] = ii;;+            } else if(c instanceof Array && c.__ghcjsArray) { // only for Haskell arrays with lifted values+                if(typeof c.m === 'number') c.m = (c.m&-4)|mark; else c.m.m = (c.m.m & -4)|mark;;+                ;+                for(i=0;i<c.length;i++) {+                    var x = c[i];+                    if(typeof x === 'object' && x !== null && !((typeof x.m === 'number' && (x.m & 3) === mark) || (typeof x.m === 'object' && ((x.m.m & 3) === mark)))) work[w++] = x;;+                }+            } else if(typeof c === 'object') {+                ;+                for(i=h$extensibleRetentionCallbacks.length-1;i>=0;i--) {+                    var x = h$extensibleRetentionCallbacks[i](c, mark);+                    if(x === false) continue;+                    if(x !== true) {+                        for(j=x.length-1;j>=0;j--) work[w++] = x[j];;+                    }+                    break;+                }+            } // otherwise: not an object, no followable values+        }+    }+    ;+}+// resetThread clears the stack above the stack pointer+// and shortens the stack array if there is too much+// unused space+function h$resetThread(t) {+    var stack = t.stack;+    var sp = t.sp;+    if(stack.length - sp > sp && stack.length > 100) {+        t.stack = t.stack.slice(0,sp+1);+    } else {+        for(var i=sp+1;i<stack.length;i++) {+            stack[i] = null;+        }+    }+    ;+}+function h$finalizeMVars() {+    ;+    var kill, i, t, iter;+    do {+ kill = null;+ iter = h$blocked.iter();+ while((t = iter.next()) !== null) {+            if(t.status === h$threadBlocked && t.blockedOn instanceof h$MVar) {+  // if h$unboxFFIResult is the top of the stack, then we cannot kill+  // the thread since it's waiting for async FFI+  if(t.blockedOn.m !== h$gcMark && t.stack[t.sp] !== h$unboxFFIResult) {+      kill = t;+  } else {+      h$markThread(t);+  }+     }+        }+ if(kill && kill.blockedOn.m !== h$gcMark) {+     h$killThread(kill, h$ghcjszmprimZCGHCJSziPrimziInternalziblockedIndefinitelyOnMVar);+     h$markThread(kill);+ }+    } while(kill);+}+// clear DOM retainers+function h$finalizeDom() {+  // fixme+}+// reset unreferenced CAFs to their initial value+function h$finalizeCAFs() {+    if(h$retainCAFs) return;+    var mark = h$gcMark;+    for(var i=0;i<h$CAFs.length;i++) {+        var c = h$CAFs[i];+        if(c.m & 3 !== mark) {+            var cr = h$CAFsReset[i];+            if(c.f !== cr) { // has been updated, reset it+                ;+                c.f = cr;+                c.d1 = null;+                c.d2 = null;+            }+        }+    }+    ;+}+/* Copyright (C) 1991-2014 Free Software Foundation, Inc.+   This file is part of the GNU C Library.++   The GNU C Library is free software; you can redistribute it and/or+   modify it under the terms of the GNU Lesser General Public+   License as published by the Free Software Foundation; either+   version 2.1 of the License, or (at your option) any later version.++   The GNU C Library is distributed in the hope that it will be useful,+   but WITHOUT ANY WARRANTY; without even the implied warranty of+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+   Lesser General Public License for more details.++   You should have received a copy of the GNU Lesser General Public+   License along with the GNU C Library; if not, see+   <http://www.gnu.org/licenses/>.  */+/* This header is separate from features.h so that the compiler can+   include it implicitly at the start of every compilation.  It must+   not itself include <features.h> or any other header that includes+   <features.h> because the implicit include comes before any feature+   test macros that may be defined in a source file before it first+   explicitly includes a system header.  GCC knows the name of this+   header in order to preinclude it.  */+/* glibc's intent is to support the IEC 559 math functionality, real+   and complex.  If the GCC (4.9 and later) predefined macros+   specifying compiler intent are available, use them to determine+   whether the overall intent is to support these features; otherwise,+   presume an older compiler has intent to support these features and+   define these macros by default.  */+/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) /+   Unicode 6.0.  */+/* We do not support C11 <threads.h>.  */+/* include/HsBaseConfig.h.  Generated from HsBaseConfig.h.in by configure.  */+/* include/HsBaseConfig.h.in.  Generated from configure.ac by autoheader.  */+/* The value of E2BIG. */+/* The value of EACCES. */+/* The value of EADDRINUSE. */+/* The value of EADDRNOTAVAIL. */+/* The value of EADV. */+/* The value of EAFNOSUPPORT. */+/* The value of EAGAIN. */+/* The value of EALREADY. */+/* The value of EBADF. */+/* The value of EBADMSG. */+/* The value of EBADRPC. */+/* The value of EBUSY. */+/* The value of ECHILD. */+/* The value of ECOMM. */+/* The value of ECONNABORTED. */+/* The value of ECONNREFUSED. */+/* The value of ECONNRESET. */+/* The value of EDEADLK. */+/* The value of EDESTADDRREQ. */+/* The value of EDIRTY. */+/* The value of EDOM. */+/* The value of EDQUOT. */+/* The value of EEXIST. */+/* The value of EFAULT. */+/* The value of EFBIG. */+/* The value of EFTYPE. */+/* The value of EHOSTDOWN. */+/* The value of EHOSTUNREACH. */+/* The value of EIDRM. */+/* The value of EILSEQ. */+/* The value of EINPROGRESS. */+/* The value of EINTR. */+/* The value of EINVAL. */+/* The value of EIO. */+/* The value of EISCONN. */+/* The value of EISDIR. */+/* The value of ELOOP. */+/* The value of EMFILE. */+/* The value of EMLINK. */+/* The value of EMSGSIZE. */+/* The value of EMULTIHOP. */+/* The value of ENAMETOOLONG. */+/* The value of ENETDOWN. */+/* The value of ENETRESET. */+/* The value of ENETUNREACH. */+/* The value of ENFILE. */+/* The value of ENOBUFS. */+/* The value of ENOCIGAR. */+/* The value of ENODATA. */+/* The value of ENODEV. */+/* The value of ENOENT. */+/* The value of ENOEXEC. */+/* The value of ENOLCK. */+/* The value of ENOLINK. */+/* The value of ENOMEM. */+/* The value of ENOMSG. */+/* The value of ENONET. */+/* The value of ENOPROTOOPT. */+/* The value of ENOSPC. */+/* The value of ENOSR. */+/* The value of ENOSTR. */+/* The value of ENOSYS. */+/* The value of ENOTBLK. */+/* The value of ENOTCONN. */+/* The value of ENOTDIR. */+/* The value of ENOTEMPTY. */+/* The value of ENOTSOCK. */+/* The value of ENOTSUP. */+/* The value of ENOTTY. */+/* The value of ENXIO. */+/* The value of EOPNOTSUPP. */+/* The value of EPERM. */+/* The value of EPFNOSUPPORT. */+/* The value of EPIPE. */+/* The value of EPROCLIM. */+/* The value of EPROCUNAVAIL. */+/* The value of EPROGMISMATCH. */+/* The value of EPROGUNAVAIL. */+/* The value of EPROTO. */+/* The value of EPROTONOSUPPORT. */+/* The value of EPROTOTYPE. */+/* The value of ERANGE. */+/* The value of EREMCHG. */+/* The value of EREMOTE. */+/* The value of EROFS. */+/* The value of ERPCMISMATCH. */+/* The value of ERREMOTE. */+/* The value of ESHUTDOWN. */+/* The value of ESOCKTNOSUPPORT. */+/* The value of ESPIPE. */+/* The value of ESRCH. */+/* The value of ESRMNT. */+/* The value of ESTALE. */+/* The value of ETIME. */+/* The value of ETIMEDOUT. */+/* The value of ETOOMANYREFS. */+/* The value of ETXTBSY. */+/* The value of EUSERS. */+/* The value of EWOULDBLOCK. */+/* The value of EXDEV. */+/* The value of O_BINARY. */+/* The value of SIGINT. */+/* Define to 1 if you have the `clock_gettime' function. */+/* #undef HAVE_CLOCK_GETTIME */+/* Define to 1 if you have the <ctype.h> header file. */+/* Define if you have epoll support. */+/* #undef HAVE_EPOLL */+/* Define to 1 if you have the `epoll_ctl' function. */+/* #undef HAVE_EPOLL_CTL */+/* Define to 1 if you have the <errno.h> header file. */+/* Define to 1 if you have the `eventfd' function. */+/* #undef HAVE_EVENTFD */+/* Define to 1 if you have the <fcntl.h> header file. */+/* Define to 1 if you have the `ftruncate' function. */+/* Define to 1 if you have the `getclock' function. */+/* #undef HAVE_GETCLOCK */+/* Define to 1 if you have the `getrusage' function. */+/* Define to 1 if you have the <inttypes.h> header file. */+/* Define to 1 if you have the `iswspace' function. */+/* Define to 1 if you have the `kevent' function. */+/* Define to 1 if you have the `kevent64' function. */+/* Define if you have kqueue support. */+/* Define to 1 if you have the <langinfo.h> header file. */+/* Define to 1 if you have libcharset. */+/* Define to 1 if you have the `rt' library (-lrt). */+/* #undef HAVE_LIBRT */+/* Define to 1 if you have the <limits.h> header file. */+/* Define to 1 if the system has the type `long long'. */+/* Define to 1 if you have the `lstat' function. */+/* Define to 1 if you have the <memory.h> header file. */+/* Define if you have poll support. */+/* Define to 1 if you have the <poll.h> header file. */+/* Define to 1 if you have the <signal.h> header file. */+/* Define to 1 if you have the <stdint.h> header file. */+/* Define to 1 if you have the <stdlib.h> header file. */+/* Define to 1 if you have the <strings.h> header file. */+/* Define to 1 if you have the <string.h> header file. */+/* Define to 1 if you have the <sys/epoll.h> header file. */+/* #undef HAVE_SYS_EPOLL_H */+/* Define to 1 if you have the <sys/eventfd.h> header file. */+/* #undef HAVE_SYS_EVENTFD_H */+/* Define to 1 if you have the <sys/event.h> header file. */+/* Define to 1 if you have the <sys/resource.h> header file. */+/* Define to 1 if you have the <sys/select.h> header file. */+/* Define to 1 if you have the <sys/stat.h> header file. */+/* Define to 1 if you have the <sys/syscall.h> header file. */+/* Define to 1 if you have the <sys/timeb.h> header file. */+/* Define to 1 if you have the <sys/timers.h> header file. */+/* #undef HAVE_SYS_TIMERS_H */+/* Define to 1 if you have the <sys/times.h> header file. */+/* Define to 1 if you have the <sys/time.h> header file. */+/* Define to 1 if you have the <sys/types.h> header file. */+/* Define to 1 if you have the <sys/utsname.h> header file. */+/* Define to 1 if you have the <sys/wait.h> header file. */+/* Define to 1 if you have the <termios.h> header file. */+/* Define to 1 if you have the `times' function. */+/* Define to 1 if you have the <time.h> header file. */+/* Define to 1 if you have the <unistd.h> header file. */+/* Define to 1 if you have the <utime.h> header file. */+/* Define to 1 if you have the <wctype.h> header file. */+/* Define to 1 if you have the <windows.h> header file. */+/* #undef HAVE_WINDOWS_H */+/* Define to 1 if you have the <winsock.h> header file. */+/* #undef HAVE_WINSOCK_H */+/* Define to 1 if you have the `_chsize' function. */+/* #undef HAVE__CHSIZE */+/* Define to Haskell type for cc_t */+/* Define to Haskell type for char */+/* Define to Haskell type for clock_t */+/* Define to Haskell type for dev_t */+/* Define to Haskell type for double */+/* Define to Haskell type for float */+/* Define to Haskell type for gid_t */+/* Define to Haskell type for ino_t */+/* Define to Haskell type for int */+/* Define to Haskell type for intmax_t */+/* Define to Haskell type for intptr_t */+/* Define to Haskell type for long */+/* Define to Haskell type for long long */+/* Define to Haskell type for mode_t */+/* Define to Haskell type for nlink_t */+/* Define to Haskell type for off_t */+/* Define to Haskell type for pid_t */+/* Define to Haskell type for ptrdiff_t */+/* Define to Haskell type for rlim_t */+/* Define to Haskell type for short */+/* Define to Haskell type for signed char */+/* Define to Haskell type for sig_atomic_t */+/* Define to Haskell type for size_t */+/* Define to Haskell type for speed_t */+/* Define to Haskell type for ssize_t */+/* Define to Haskell type for suseconds_t */+/* Define to Haskell type for tcflag_t */+/* Define to Haskell type for time_t */+/* Define to Haskell type for uid_t */+/* Define to Haskell type for uintmax_t */+/* Define to Haskell type for uintptr_t */+/* Define to Haskell type for unsigned char */+/* Define to Haskell type for unsigned int */+/* Define to Haskell type for unsigned long */+/* Define to Haskell type for unsigned long long */+/* Define to Haskell type for unsigned short */+/* Define to Haskell type for useconds_t */+/* Define to Haskell type for wchar_t */+/* Define to the address where bug reports for this package should be sent. */+/* Define to the full name of this package. */+/* Define to the full name and version of this package. */+/* Define to the one symbol short name of this package. */+/* Define to the home page for this package. */+/* Define to the version of this package. */+/* The size of `kev.filter', as computed by sizeof. */+/* The size of `kev.flags', as computed by sizeof. */+/* The size of `struct MD5Context', as computed by sizeof. */+/* Define to 1 if you have the ANSI C header files. */+/* Number of bits in a file offset, on hosts where this is settable. */+/* #undef _FILE_OFFSET_BITS */+/* Define for large files, on AIX-style hosts. */+/* #undef _LARGE_FILES */+var h$errno = 0;+function h$__hscore_get_errno() {+  ;+  return h$errno;+}+function h$unsupported(status, c) {+    h$errno = 12456;+    if(c) c(status);+    return status;+}+function h$strerror(err) {+    h$ret1 = 0;+    if(err === 12456) return h$encodeUtf8("operation unsupported on this platform");+    return h$encodeUtf8(h$errorStrs[err] || "unknown error");+}+function h$setErrno(e) {+  ;+  var es = e.toString();+  var getErr = function() {+      if(es.indexOf('ENOTDIR') !== -1) return 20;+      if(es.indexOf('ENOENT') !== -1) return 2;+      if(es.indexOf('EEXIST') !== -1) return 17;+      if(es.indexOf('ENETUNREACH') !== -1) return 22; // fixme+      if(es.indexOf('EPERM') !== -1) return 1;+      if(es.indexOf('EMFILE') !== -1) return 24;+      if(es.indexOf('EPIPE') !== -1) return 32;+      if(es.indexOf('EAGAIN') !== -1) return 35;+      if(es.indexOf('Bad argument') !== -1) return 2; // fixme?+      throw ("setErrno not yet implemented: " + e);+  }+  h$errno = getErr();+}+var h$errorStrs = { 7: "too big"+                   , CONST_EACCESS: "no access"+                   , 22: "invalid"+                   , 9: "bad file descriptor"+                   , 20: "not a directory"+                   , 2: "no such file or directory"+                   , 1: "operation not permitted"+                   , 17: "file exists"+                   , 24: "too many open files"+                   , 32: "broken pipe"+                   , 35: "resource temporarily unavailable"+                   }+function h$handleErrno(r_err, f) {+  try {+    return f();+  } catch(e) {+    h$setErrno(e);+    return r_err;+  }+}+function h$handleErrnoS(r_err, r_success, f) {+  try {+    f();+    return r_success;+  } catch(e) {+    h$setErrno(e);+    return r_err;+  }+}+function h$handleErrnoC(err, r_err, r_success, c) {+    if(err) {+        h$setErrno(err);+        c(r_err);+    } else {+        c(r_success);+    }+}+/* Copyright (C) 1991-2014 Free Software Foundation, Inc.+   This file is part of the GNU C Library.++   The GNU C Library is free software; you can redistribute it and/or+   modify it under the terms of the GNU Lesser General Public+   License as published by the Free Software Foundation; either+   version 2.1 of the License, or (at your option) any later version.++   The GNU C Library is distributed in the hope that it will be useful,+   but WITHOUT ANY WARRANTY; without even the implied warranty of+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+   Lesser General Public License for more details.++   You should have received a copy of the GNU Lesser General Public+   License along with the GNU C Library; if not, see+   <http://www.gnu.org/licenses/>.  */+/* This header is separate from features.h so that the compiler can+   include it implicitly at the start of every compilation.  It must+   not itself include <features.h> or any other header that includes+   <features.h> because the implicit include comes before any feature+   test macros that may be defined in a source file before it first+   explicitly includes a system header.  GCC knows the name of this+   header in order to preinclude it.  */+/* glibc's intent is to support the IEC 559 math functionality, real+   and complex.  If the GCC (4.9 and later) predefined macros+   specifying compiler intent are available, use them to determine+   whether the overall intent is to support these features; otherwise,+   presume an older compiler has intent to support these features and+   define these macros by default.  */+/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) /+   Unicode 6.0.  */+/* We do not support C11 <threads.h>.  */+function h$MD5Init(ctx, ctx_off) {+  if(!ctx.arr) { ctx.arr = []; }+  ctx.arr[ctx_off] = new goog.crypt.Md5();+}+var h$__hsbase_MD5Init = h$MD5Init;+function h$MD5Update(ctx, ctx_off, data, data_off, len) {+  var arr = new Uint8Array(data.buf, data_off);+  ctx.arr[ctx_off].update(arr, len);+}+var h$__hsbase_MD5Update = h$MD5Update;+function h$MD5Final(dst, dst_off, ctx, ctx_off) {+  var digest = ctx.arr[ctx_off].digest();+  for(var i=0;i<16;i++) {+    dst.u8[dst_off+i] = digest[i];+  }+}+var h$__hsbase_MD5Final = h$MD5Final;+/* Copyright (C) 1991-2014 Free Software Foundation, Inc.+   This file is part of the GNU C Library.++   The GNU C Library is free software; you can redistribute it and/or+   modify it under the terms of the GNU Lesser General Public+   License as published by the Free Software Foundation; either+   version 2.1 of the License, or (at your option) any later version.++   The GNU C Library is distributed in the hope that it will be useful,+   but WITHOUT ANY WARRANTY; without even the implied warranty of+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+   Lesser General Public License for more details.++   You should have received a copy of the GNU Lesser General Public+   License along with the GNU C Library; if not, see+   <http://www.gnu.org/licenses/>.  */+/* This header is separate from features.h so that the compiler can+   include it implicitly at the start of every compilation.  It must+   not itself include <features.h> or any other header that includes+   <features.h> because the implicit include comes before any feature+   test macros that may be defined in a source file before it first+   explicitly includes a system header.  GCC knows the name of this+   header in order to preinclude it.  */+/* glibc's intent is to support the IEC 559 math functionality, real+   and complex.  If the GCC (4.9 and later) predefined macros+   specifying compiler intent are available, use them to determine+   whether the overall intent is to support these features; otherwise,+   presume an older compiler has intent to support these features and+   define these macros by default.  */+/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) /+   Unicode 6.0.  */+/* We do not support C11 <threads.h>.  */+function h$hs_eqWord64(a1,a2,b1,b2) {+  return (a1===b1 && a2===b2) ? 1 : 0;+}+function h$hs_neWord64(a1,a2,b1,b2) {+  return (a1 !== b1 || a2 !== b2) ? 1 : 0;+}+function h$hs_word64ToWord(a1,a2) {+  return a2;+}+function h$hs_wordToWord64(w) {+  h$ret1 = w;+  return 0;+}+function h$hs_intToInt64(a) {+  h$ret1 = a;+  return (a < 0) ? -1 : 0;+}+function h$hs_int64ToWord64(a1,a2) {+  h$ret1 = a2;+  return a1;+}+function h$hs_word64ToInt64(a1,a2) {+  h$ret1 = a2;+  return a1;+}+function h$hs_int64ToInt(a1,a2) {+  return a2;+}+function h$hs_negateInt64(a1,a2) {+  var c = goog.math.Long.fromBits(a2,a1).negate();+  h$ret1 = c.getLowBits();+  return c.getHighBits();+}+function h$hs_not64(a1,a2) {+  h$ret1 = ~a2;+  return ~a1;+}+function h$hs_xor64(a1,a2,b1,b2) {+  h$ret1 = a2 ^ b2;+  return a1 ^ b1;+}+function h$hs_and64(a1,a2,b1,b2) {+  h$ret1 = a2 & b2;+  return a1 & b1;+}+function h$hs_or64(a1,a2,b1,b2) {+  h$ret1 = a2 | b2;+  return a1 | b1;+}+function h$hs_eqInt64(a1,a2,b1,b2) {+  return (a1 === b1 && a2 === b2) ? 1 : 0;+}+function h$hs_neInt64(a1,a2,b1,b2) {+  return (a1 !== b1 || a2 !== b2) ? 1 : 0;+}+function h$hs_leInt64(a1,a2,b1,b2) {+  if(a1 === b1) {+    var a2s = a2 >>> 1;+    var b2s = b2 >>> 1;+    return (a2s < b2s || (a2s === b2s && ((a2&1) <= (b2&1)))) ? 1 : 0;+  } else {+    return (a1 < b1) ? 1 : 0;+  }+}+function h$hs_ltInt64(a1,a2,b1,b2) {+  if(a1 === b1) {+    var a2s = a2 >>> 1;+    var b2s = b2 >>> 1;+    return (a2s < b2s || (a2s === b2s && ((a2&1) < (b2&1)))) ? 1 : 0;+  } else {+    return (a1 < b1) ? 1 : 0;+  }+}+function h$hs_geInt64(a1,a2,b1,b2) {+  if(a1 === b1) {+    var a2s = a2 >>> 1;+    var b2s = b2 >>> 1;+    return (a2s > b2s || (a2s === b2s && ((a2&1) >= (b2&1)))) ? 1 : 0;+  } else {+    return (a1 > b1) ? 1 : 0;+  }+}+function h$hs_gtInt64(a1,a2,b1,b2) {+  if(a1 === b1) {+    var a2s = a2 >>> 1;+    var b2s = b2 >>> 1;+    return (a2s > b2s || (a2s === b2s && ((a2&1) > (b2&1)))) ? 1 : 0;+  } else {+    return (a1 > b1) ? 1 : 0;+  }+}+function h$hs_quotWord64(a1,a2,b1,b2) {+  var a = h$bigFromWord64(a1,a2);+  var b = h$bigFromWord64(b1,b2);+  var c = a.divide(b);+  h$ret1 = c.intValue();+  return c.shiftRight(32).intValue();+}+function h$hs_timesInt64(a1,a2,b1,b2) {+  var c = goog.math.Long.fromBits(a2,a1).multiply(goog.math.Long.fromBits(b2,b1));+  h$ret1 = c.getLowBits();+  return c.getHighBits();+}+function h$hs_quotInt64(a1,a2,b1,b2) {+  var c = goog.math.Long.fromBits(a2,a1).div(goog.math.Long.fromBits(b2,b1));+  h$ret1 = c.getLowBits();+  return c.getHighBits();+}+function h$hs_remInt64(a1,a2,b1,b2) {+  var c = goog.math.Long.fromBits(a2,a1).modulo(goog.math.Long.fromBits(b2,b1));+  h$ret1 = c.getLowBits();+  return c.getHighBits();+}+function h$hs_plusInt64(a1,a2,b1,b2) {+  var c = goog.math.Long.fromBits(a2,a1).add(goog.math.Long.fromBits(b2,b1));+  h$ret1 = c.getLowBits();+  return c.getHighBits();+}+function h$hs_minusInt64(a1,a2,b1,b2) {+  var c = goog.math.Long.fromBits(a2,a1).subtract(goog.math.Long.fromBits(b2,b1));+  h$ret1 = c.getLowBits();+  return c.getHighBits();+}+function h$hs_leWord64(a1,a2,b1,b2) {+  if(a1 === b1) {+    var a2s = a2 >>> 1;+    var b2s = b2 >>> 1;+    return (a2s < b2s || (a2s === b2s && ((a2&1) <= (b2&1)))) ? 1 : 0;+  } else {+    var a1s = a1 >>> 1;+    var b1s = b1 >>> 1;+    return (a1s < b1s || (a1s === b1s && ((a1&1) <= (b1&1)))) ? 1 : 0;+  }+}+function h$hs_ltWord64(a1,a2,b1,b2) {+  if(a1 === b1) {+    var a2s = a2 >>> 1;+    var b2s = b2 >>> 1;+    return (a2s < b2s || (a2s === b2s && ((a2&1) < (b2&1)))) ? 1 : 0;+  } else {+    var a1s = a1 >>> 1;+    var b1s = b1 >>> 1;+    return (a1s < b1s || (a1s === b1s && ((a1&1) < (b1&1)))) ? 1 : 0;+  }+}+function h$hs_geWord64(a1,a2,b1,b2) {+  if(a1 === b1) {+    var a2s = a2 >>> 1;+    var b2s = b2 >>> 1;+    return (a2s > b2s || (a2s === b2s && ((a2&1) >= (b2&1)))) ? 1 : 0;+  } else {+    var a1s = a1 >>> 1;+    var b1s = b1 >>> 1;+    return (a1s > b1s || (a1s === b1s && ((a1&1) >= (b1&1)))) ? 1 : 0;+  }+}+function h$hs_gtWord64(a1,a2,b1,b2) {+  if(a1 === b1) {+    var a2s = a2 >>> 1;+    var b2s = b2 >>> 1;+    return (a2s > b2s || (a2s === b2s && ((a2&1) > (b2&1)))) ? 1 : 0;+  } else {+    var a1s = a1 >>> 1;+    var b1s = b1 >>> 1;+    return (a1s > b1s || (a1s === b1s && ((a1&1) > (b1&1)))) ? 1 : 0;+  }+}+function h$hs_remWord64(a1,a2,b1,b2) {+  var a = h$bigFromWord64(a1,a2);+  var b = h$bigFromWord64(b1,b2);+  var c = a.mod(b);+  h$ret1 = c.intValue();+  return c.shiftRight(32).intValue();+}+function h$hs_uncheckedIShiftL64(a1,a2,n) {+  var num = new goog.math.Long(a2,a1).shiftLeft(n);+  h$ret1 = num.getLowBits();+  return num.getHighBits();+}+function h$hs_uncheckedIShiftRA64(a1,a2,n) {+  var num = new goog.math.Long(a2,a1).shiftRight(n);+  h$ret1 = num.getLowBits();+  return num.getHighBits();+}+// always nonnegative n?+function h$hs_uncheckedShiftL64(a1,a2,n) {+  n &= 63;+  if(n == 0) {+    h$ret1 = a2;+    return a1;+  } else if(n < 32) {+    h$ret1 = a2 << n;+    return (a1 << n) | (a2 >>> (32-n));+  } else {+    h$ret1 = 0;+    return ((a2 << (n-32))|0);+  }+}+function h$hs_uncheckedShiftRL64(a1,a2,n) {+  n &= 63;+  if(n == 0) {+    h$ret1 = a2;+    return a1;+  } else if(n < 32) {+    h$ret1 = (a2 >>> n ) | (a1 << (32-n));+    return a1 >>> n;+  } else {+    h$ret1 = a1 >>> (n-32);+    return 0;+  }+}+// fixme this function appears to deoptimize a lot due to smallint overflows+function h$imul_shim(a, b) {+    var ah = (a >>> 16) & 0xffff;+    var al = a & 0xffff;+    var bh = (b >>> 16) & 0xffff;+    var bl = b & 0xffff;+    // the shift by 0 fixes the sign on the high part+    // the final |0 converts the unsigned value into a signed value+    return (((al * bl)|0) + (((ah * bl + al * bh) << 16) >>> 0)|0);+}+var h$mulInt32 = Math.imul ? Math.imul : h$imul_shim;+// function h$mulInt32(a,b) {+//  return goog.math.Long.fromInt(a).multiply(goog.math.Long.fromInt(b)).getLowBits();+// }+// var hs_mulInt32 = h$mulInt32;+function h$mulWord32(a,b) {+  return goog.math.Long.fromBits(a,0).multiply(goog.math.Long.fromBits(b,0)).getLowBits();+}+function h$mul2Word32(a,b) {+  var c = goog.math.Long.fromBits(a,0).multiply(goog.math.Long.fromBits(b,0))+  h$ret1 = c.getLowBits();+  return c.getHighBits();+}+function h$quotWord32(a,b) {+  return goog.math.Long.fromBits(a,0).div(goog.math.Long.fromBits(b,0)).getLowBits();+}+function h$remWord32(a,b) {+  return goog.math.Long.fromBits(a,0).modulo(goog.math.Long.fromBits(b,0)).getLowBits();+}+function h$quotRem2Word32(a1,a2,b) {+  var a = h$bigFromWord64(a1,a2);+  var b = h$bigFromWord(b);+  var d = a.divide(b);+  h$ret1 = a.subtract(b.multiply(d)).intValue();+  return d.intValue();+}+function h$wordAdd2(a,b) {+  var c = goog.math.Long.fromBits(a,0).add(goog.math.Long.fromBits(b,0));+  h$ret1 = c.getLowBits();+  return c.getHighBits();+}+// this does an unsigned shift, is that ok?+function h$uncheckedShiftRL64(a1,a2,n) {+  if(n < 0) throw "unexpected right shift";+  n &= 63;+  if(n == 0) {+    h$ret1 = a2;+    return a1;+  } else if(n < 32) {+    h$ret1 = (a2 >>> n) | (a1 << (32 - n));+    return (a1 >>> n);+  } else {+    h$ret1 = a2 >>> (n - 32);+    return 0;+  }+}+function h$isDoubleNegativeZero(d) {+  ;+  return (d===0 && (1/d) === -Infinity) ? 1 : 0;+}+function h$isFloatNegativeZero(d) {+  ;+  return (d===0 && (1/d) === -Infinity) ? 1 : 0;+}+function h$isDoubleInfinite(d) {+  return (d === Number.NEGATIVE_INFINITY || d === Number.POSITIVE_INFINITY) ? 1 : 0;+}+function h$isFloatInfinite(d) {+  return (d === Number.NEGATIVE_INFINITY || d === Number.POSITIVE_INFINITY) ? 1 : 0;+}+function h$isFloatFinite(d) {+  return (d !== Number.NEGATIVE_INFINITY && d !== Number.POSITIVE_INFINITY && !isNaN(d)) ? 1 : 0;+}+function h$isDoubleFinite(d) {+  return (d !== Number.NEGATIVE_INFINITY && d !== Number.POSITIVE_INFINITY && !isNaN(d)) ? 1 : 0;+}+function h$isDoubleNaN(d) {+  return (isNaN(d)) ? 1 : 0;+}+function h$isFloatNaN(d) {+  return (isNaN(d)) ? 1 : 0;+}+function h$isDoubleDenormalized(d) {+  return (d !== 0 && Math.abs(d) < 2.2250738585072014e-308) ? 1 : 0;+}+function h$isFloatDenormalized(d) {+  return (d !== 0 && Math.abs(d) < 2.2250738585072014e-308) ? 1 : 0;+}+var h$convertBuffer = new ArrayBuffer(8);+var h$convertDouble = new Float64Array(h$convertBuffer);+var h$convertFloat = new Float32Array(h$convertBuffer);+var h$convertInt = new Int32Array(h$convertBuffer);+// use direct inspection through typed array for decoding floating point numbers if this test gives+// the expected answer. fixme: does this test catch all non-ieee or weird endianness situations?+h$convertFloat[0] = 0.75;+// h$convertFloat[0] = 1/0; // to force using fallbacks+var h$decodeFloatInt = h$convertInt[0] === 1061158912 ? h$decodeFloatIntArray : h$decodeFloatIntFallback;+var h$decodeDouble2Int = h$convertInt[0] === 1061158912 ? h$decodeDouble2IntArray : h$decodeDouble2IntFallback;+function h$decodeFloatIntArray(d) {+    ;+    if(isNaN(d)) {+        h$ret1 = 105;+        return -12582912;+    }+    h$convertFloat[0] = d;+    var i = h$convertInt[0];+    var exp = (i&2139095040) >> 23;+    var s = i&8388607;+    if(exp === 0) { // zero or denormal+        if(s === 0) {+            ;+            h$ret1 = 0;+            return 0;+        } else {+            h$convertFloat[0] = d*8388608;+            i = h$convertInt[0];+            ;+            h$ret1 = ((i&2139095040) >> 23) - 173;+            return (((i&8388607)<<7)|(i&2147483648))>>7;+        }+    } else {+        ;+        h$ret1 = exp - 150;+        return (((s|8388608)<<7)|(i&2147483648))>>7;+    }+}+function h$decodeFloatIntFallback(d) {+    ;+    if(isNaN(d)) {+      h$ret1 = 105;+      return -12582912;+    }+    var exponent = h$integer_cmm_decodeDoublezhFallback(d)+29;+    var significand = h$ret1.shiftRight(28).add(h$bigOne).shiftRight(1).intValue();+    if(exponent > 105) {+      exponent = 105;+      significand = d > 0 ? 8388608 : -8388608;+    } else if(exponent < -151 || significand === 0) {+      significand = 0;+      exponent = 0;+    }+    ;+    h$ret1 = exponent;+    return significand;+}+function h$decodeDouble2IntArray(d) {+    ;+    if(isNaN(d)) {+        h$ret3 = 972;+        h$ret2 = 0;+        h$ret1 = -1572864;+        return 1;+    }+    h$convertDouble[0] = d;+    ;+    var i1 = h$convertInt[1];+    h$ret2 = h$convertInt[0];+    var exp = (i1&2146435072)>>>20;+    if(exp === 0) { // denormal or zero+        if((i1&2147483647) === 0 && h$ret2 === 0) {+            h$ret1 = 0;+            h$ret3 = 0;+        } else {+            h$convertDouble[0] = d*9007199254740992;+            i1 = h$convertInt[1];+            h$ret1 = (i1&1048575)|1048576;+            h$ret2 = h$convertInt[0];+            h$ret3 = ((i1&2146435072)>>>20)-1128;+        }+    } else {+        h$ret3 = exp-1075;+        h$ret1 = (i1&1048575)|1048576;+    }+    ;+    return i1<0?-1:1;+}+function h$decodeDouble2IntFallback(d) {+    ;+    if(isNaN(d)) {+        h$ret3 = 972;+        h$ret2 = 0;+        h$ret1 = -1572864;+        return 1;+    }+    var exponent = h$integer_cmm_decodeDoublezhFallback(d);+    var significand = h$ret1;+    var sign = d<0?-1:1;+    var s = significand.abs();+    h$decodeDouble2IntArray(d);+    ;+    h$ret1 = s.shiftRight(32).intValue();+    h$ret2 = s.intValue();+    h$ret3 = exponent;+    ;+    return sign;+}+// round .5 to nearest even number+function h$rintDouble(a) {+  var rounda = Math.round(a);+  if(a >= 0) {+    if(a%1===0.5 && rounda%2===1) { // tie+      return rounda-1;+    } else {+      return rounda;+    }+  } else {+    if(a%1===-0.5 && rounda%2===-1) { // tie+      return rounda-1;+    } else {+      return rounda;+    }+  }+}+var h$rintFloat = h$rintDouble;+function h$acos(d) { return Math.acos(d); }+function h$acosf(f) { return Math.acos(f); }+function h$asin(d) { return Math.asin(d); }+function h$asinf(f) { return Math.asin(f); }+function h$atan(d) { return Math.atan(d); }+function h$atanf(f) { return Math.atan(f); }+function h$atan2(x,y) { return Math.atan2(x,y); }+function h$atan2f(x,y) { return Math.atan2(x,y); }+function h$cos(d) { return Math.cos(d); }+function h$cosf(f) { return Math.cos(f); }+function h$sin(d) { return Math.sin(d); }+function h$sinf(f) { return Math.sin(f); }+function h$tan(d) { return Math.tan(d); }+function h$tanf(f) { return Math.tan(f); }+function h$cosh(d) { return (Math.exp(d)+Math.exp(-d))/2; }+function h$coshf(f) { return h$cosh(f); }+function h$sinh(d) { return (Math.exp(d)-Math.exp(-d))/2; }+function h$sinhf(f) { return h$sinh(f); }+function h$tanh(d) { return (Math.exp(2*d)-1)/(Math.exp(2*d)+1); }+function h$tanhf(f) { return h$tanh(f); }+var h$popCntTab =+   [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,+    1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,+    1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,+    2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,+    1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,+    2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,+    2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,+    3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8];+function h$popCnt32(x) {+   return h$popCntTab[x&0xFF] ++          h$popCntTab[(x>>>8)&0xFF] ++          h$popCntTab[(x>>>16)&0xFF] ++          h$popCntTab[(x>>>24)&0xFF]+}+function h$popCnt64(x1,x2) {+   return h$popCntTab[x1&0xFF] ++          h$popCntTab[(x1>>>8)&0xFF] ++          h$popCntTab[(x1>>>16)&0xFF] ++          h$popCntTab[(x1>>>24)&0xFF] ++          h$popCntTab[x2&0xFF] ++          h$popCntTab[(x2>>>8)&0xFF] ++          h$popCntTab[(x2>>>16)&0xFF] ++          h$popCntTab[(x2>>>24)&0xFF];+}+function h$bswap64(x1,x2) {+  h$ret1 = (x1 >>> 24) | (x1 << 24) | ((x1 & 0xFF00) << 8) | ((x1 & 0xFF0000) >> 8);+  return (x2 >>> 24) | (x2 << 24) | ((x2 & 0xFF00) << 8) | ((x2 & 0xFF0000) >> 8);+}+/* Copyright (C) 1991-2014 Free Software Foundation, Inc.+   This file is part of the GNU C Library.++   The GNU C Library is free software; you can redistribute it and/or+   modify it under the terms of the GNU Lesser General Public+   License as published by the Free Software Foundation; either+   version 2.1 of the License, or (at your option) any later version.++   The GNU C Library is distributed in the hope that it will be useful,+   but WITHOUT ANY WARRANTY; without even the implied warranty of+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+   Lesser General Public License for more details.++   You should have received a copy of the GNU Lesser General Public+   License along with the GNU C Library; if not, see+   <http://www.gnu.org/licenses/>.  */+/* This header is separate from features.h so that the compiler can+   include it implicitly at the start of every compilation.  It must+   not itself include <features.h> or any other header that includes+   <features.h> because the implicit include comes before any feature+   test macros that may be defined in a source file before it first+   explicitly includes a system header.  GCC knows the name of this+   header in order to preinclude it.  */+/* glibc's intent is to support the IEC 559 math functionality, real+   and complex.  If the GCC (4.9 and later) predefined macros+   specifying compiler intent are available, use them to determine+   whether the overall intent is to support these features; otherwise,+   presume an older compiler has intent to support these features and+   define these macros by default.  */+/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) /+   Unicode 6.0.  */+/* We do not support C11 <threads.h>.  */+// Unicode tables generated by ghcjs/utils/genUnicode.hs+var h$printRanges = "f|!-f=|/q'/+1$J|(mo'1q&')| 63Y--EO'|$9| ('| ?'|!9?| ?-| %'AZ'| JI| +|#U2'''O0$)+'5'''+3*','O-).+''O0&&&'$-+''))0+$1C9)4(N0&,'7(('@+';A)2'''O0&,'5''')3'+','G7'.))*)'$&)')));+-))*'.>M-+2(PB)3(*1'&/+'733(2(P6,'5(*1'1$+'7&?)2(u'3(,32+'C)1''F)S4$'1)*/$2/7');| =+^n'$''$'.+0( #''<('-$.'7'+d| Yk+rk@<n|$G$-&|(E*'1$*'v*'f*'1$*'A| :*'| O'd)W/| t9|.r)|! 1=09Q5K;=(&;|!+'7/7/?'7/| z3z-| U7b:+;+(x'-9|  +W/9)| E'| K]'9/7/?'A| K| b+| #)|!W3| A)A)| /| I33r&/|%M/|&;'/'p'/'3 $a'| 3@>'/H')48-S1| +C''Y<)`GfA|#)/|-h-rU9M|H;'d'h);2| %| '| &|#<-| #$-&| 91'?S510000000|!4| CW| {;|$hW;+| I| u'|!=-v)|!+y-l;| '|$y} ^y7}%0j| /|9t)| 75|'fK|!+| {3|#3_''| S| 3+7/| 93| S5;/[+| r9`)| f8+f| 65?'7'|!=S[7/'/'/510| (+'|!#| %'7/}!e;;Q+| +}!'n|(/'|!Cp1;--W,$&&|!gE|(-C| I'| 5t?'W/?'jH*+-|#!+|$7)/'/'/'))10='';VH&@'?h|!f-)+| #)| v);+| &| %|!t^)| +A[+l;Y-z-`m+?x|#Q'7| vt3| 19|#4|&v5O73|#E/'$|  &)&Q| X35| j[)Y-| H| 9/'| I+&-3(X+)+5351| Idr+;5| 5)^'Y-W1+;1| j| [|+tb|(U| f+`A| E*?U17/| 3>;r5| [+&9/K9Gy|!S| ?-71)2'''O0&,'5''')5,1'1)-|%x| Y37|#b| 5'G| 5| S97p| 937|*K| p;|)y| ;|<Y|4M|!=|!M,|b`|7l}#8j|,^1b6+'|!/`'/7| U770L-I|3U| S9| 'CE}$&7'|e7|!E-=)517'+} 47|%M7r'| ^3|!5h| U|$/| x5G|#1| t| V&'&''+:$0| J*'30Z*,$)1|'T'|&O'| -}  %|$E'C|=C+X&$'$7* #/* $)&$' &'$'+0**$6D-),D| 1'|&#|  +|!7;A'A@m7=)b| @+z| `^=z-51'|#r| #)| f'| h-l3|%`| _-xu|#P'|#+C=)+;|!W;| tz;+| 937/t3`|I^}*Q/v} !59|$x}$#I|,'|G1|%A";+var h$alnumRanges = "| +71W/W| '0'$)'(Pa|*2+;?-1$D|!Y&'+$/$)$J| o|#*|#oo'0r5| #$&&$3Y-)^9-| ^+|!;2'7H'B| ?'|!9?| 5+,| %G[| QI| +|!p'7H2'''O0$)+'5'''+3*',';'/1).+''O0&&&'$-+''))0+$1C9)4(N0&,'7(('@+'7E)2'''O0&,'5''')3'+','707'.))*)'$&)')));+-))*'.>==+2(PB)3(*1'&/+'731')2(P6,'5(*1'1$+'7&?)2(u'3(,32+'C+/''F)S4$'1)*/$2/7''=| =-A6r'$''$'.+0( #''<('-$.'7'+dP'/K $+7k+KFk5| :| ^/| f'p$-&z|'F*'1$*'v*'f*'1$*'A| :*'| O')5K)CC| t;|-j'EV-| `)91=09M9K;=(&;| r)*''7/7E)'7/| z3z-| U7b:+;7t'-9|  +W/9n[+| G]'9/7=2A| K| b+7E5;|!W;| 937)| +| n)i&/|%M/|&;'/'p'/'3 $a'| 30$))0)+'/+=-)0|!U''/-9/=| /fE*&7$)-/ $+8'+--+$| =|0/| A| fO|.#`|91| '| &|!y/55&p$-&| 91@S510000000c| '|*H)UA,'-+| v''')|!!*-v)|!+)+7Y| 3Cd7`3@d7rA|'-} X;| ^}%/C| /|9t| O| %'|& )[K| /6a| on5'|!='+_''| S| +3/7| 1;| S97/S)*| %'l;^)| K?9/b| 65?'7/Q)| [S)'C'-7/'/'/510y*+'|!#z&'7/}!e;;Q+| +}!'n|(/'|!Cp1;--;<,$&&|!Ff|()G| I'| 5t;+CC?| M-|#!I71W/W9|! )/'/'/')j;VH&@'?h|!f;| #;| ;E'|!Q|!s^)| +A[+l;Y-z-`'l+3,x|#Q'7| vt3| 1|#M|&v5O73|#E/'$|  &)&Q'b'p35| j[+W| U| 9/'| I+&-3(X+)+5Sbcd3_+-C| 57O'Y-WQ1| j| [|+tb|(U| W9`A| AMU17/| 36Cl'4| S99/K9Gm|!`| ?-71)2'''O0&,'5''')5,1'1)-|%x| U$37|#b| 5'5| G| K)87p| 937|*K| p;|)y| ;|<Y|4M|!=|!M|bl|7l}#8j|,^1b6|!;`'-9| 75+;70L-I|3U| S9| 'CE}$&7'|e7|!E-=)517)'} <3-)/33'1`+|#=)|&=G|#1| t| V&'&''+:$0| J*'30Z*,$)1|'T'UTaTaTaTaT2'| -}  %|$E'C|=C+X&$'$7* #/* $)&$' &'$'+0**$6D-),D|,t=|v'}*Q/v} !59|$x}$#I|,'|G1|%A";+var h$lowerRanges = "|!3W| =uS2 <& (& 8' #)'$&('+&()'& #&$'$'($&'')/&& )' )&'$( >1'&'$+ %| SX|$=$(()GXj&)) ,,$'&'| /| ) 25 ;& '' Q| +r} KQ|  | G=g|!; l5 Q43/73333/73333?'333333-&/()&3+''337)&|&+(')X**&'3++| 2|]a| ''(' $+$'.- R'1$*:p$-}'Zi 7H .|#! ') @2 #' %*$&$) +| j|28z5'}%!p1;-|7`W|;?t} :;d}+l-WW1FWWW+$08WWWWWWWWWWWWWWWWW[[U.WU.WU.WU.WU.$";+var h$upperRanges = "| MW|!9Q0f <& (& 8' #)'$&('+&()'& #&$'$'($&)0'&& )' )&'$( >1'&'$+ %|&I$(2.$)$&D4j&)) ,,&$''| /| ) 14 <' '' P&p|a5p$-|l( l4 Q433/73333/9 $23S333333-9-9+;-9-|%l*()')'(-/ $+'+7'-| B|[]| '| +$)' $+$'2) R3$*}']( 7H .|#! '( ?6 #' %+$&$( ++''}%OGW|;/t} :Kd}+l9WWWWWW$''&''+2WWW'*'30Y'*,$)1YWWWWWWWWWWW`UfUfUfUfUf%";+var h$alphaRanges = "| MW/W| '6*,Qa|*2+;?-1$|!q-&'+$/$)$J| o|#*3|#bo'0r| YY-)| #zj'|!4$A'1'7)'B$`^|! 9Rf5'+,O+4(PU| WI| l| 5)F07AC+3'''O0$)+)B<'(?'I/+''O0&&&b+$I)C5(N0&,)F@'j3'''O0&,)_'(AD$/))*)'$&)')));O| 03(PB)V'/'j3(P6,)c$'A'G3(u'BD'S/-G)S4$'1| =| )&;1| ='$''$'.+0( #''*&5&-$M+d| F3kY-|!UzKB/++)('1)+=;Dp$-&z|'F*'1$*'v*'f*'1$*'A| :*'| OnCC| t;|-j'EV-| `/31=*?G?G?=(A| 1j*| N| z3v$-| U7b| +`'-9|  M1| 9Q5| 3| n|!(| 'E1| 7`='7|  Wlv)7l|!E+*)'5|$;| I|&3'/'p'/'3 $a'| 30$))0)+'/+=-)0|!W<B=|!9*&7$)-/ $+8'+--+| 0'|[[| '| &|!y/+)';p$-&| 91BQ510000000| j|*H'x--'+| v/)|!!*-v)|!+EY| 3C|+E} X;| ^}%/C| /|9t| O| %'|& )C7'K| 'Cb'| U| +5'|!='+_''| S9(*P^| 1?| -| E/)>[7QU^1| '[B-67-uQ)2KQ)(| -$)''-'$R)'91);/'/'/510y*+'|!#j^}!e;;Q+| +}!'n|(/'|!Cp1;--$7<,$&&|!Ff|()G| I'| 5t;|!W-|#!lW/W9|! )/'/'/')j;VH&@'?h|!f|(^^)| +| 'dCE2/p7`'l+3| )|#Q|!3t3| 1|#M|&v5O73|#E/'$|  &)&Q7Q5b|!1O7W| U| 9/'| I@+(X|  ^)^j3ZY| 57O7I=G|!K| [|55| 3| `| #dUWlvj):| )?+MmGT|!x| 'p3'''O0&,)a-|&C| )K'$|$+| '| l| )K| >z|+/| Ib|)y| ;|<Y|4M|gU|7l}#8j|,^1b|!Q`G| )C+bM-I|3U| S9| L=}$&7'|e7|!E-=)517} K-| t| V&'&''+:$0| J*'30Z*,$)1|'T'UTaTaTaTaT2} !3|$E|=h+X&$'$7* #/* $)&$' &'$'+0**$6D-),D} (7}*Q/v} !59|$x}$#I|,'";+var h$toLowerMapping = "| K Wb|!9 Qb!1bf  9#  !|$F  ## &'  (# &'  8#  !|!_# # #)  !|$^# ! # ! |$U !# '|$S&'  !| f|$M !|$O# ! |$S !|$W  !|$`|$[&)  !|$`|$d ! |$f $#  !|$n# ! |$n'  !#  !|$n#!'|$l ##  !|$p#) &1  !%# ! % !#  !%# ) #'  )# &'  !%# ! # ! |!. !| 6# 4 # ! |!q * #1  !}![r# ! |#X}%=]'  !#  !|$>| Q !| U# % #|&I  !# &) &3 |%0/  !n )l ! | G!'| E!Eb!5bj B3  ,# &- |!]'  !#  !.#' )|!qC| hdb| )  1# &5  <#  !?# ' #'  P# &' p| '|a5 p} hG ! } hG- }#To|l)  l# &5  !} p4  P# &5 303 /07 303 303 /09  $0 @3 30S 303 303 303 '0'| ZD9 +| sD9 '0'|!4; '0'|!L<9 '|!m'|!iD|&Y }#a()  !}!&:}!#V/ | 8| # CAI &|23 WU|Ht | '| '| +  !#  !}!Zc|ue}%:e'  $#  !}![R}!Zo !}![X}![V ! #' &3 '}!]> R# &3  !# &+ &}'])  7# &I  .# &|##  '# &)  ?# &7  ##  !}(b.# % #+  !# }4p*'  !# &)  +#  !}*H0}*HF !}*H>}*H*'  !}*G&}*GV}%OG Wb|;/ tr} :K db}p?  ";+var h$toUpperMapping = "|!1 Wa| = |A$x Qa!1a !|!`  9!  !|%.  #! $'  (! $'  7! $'  #!  !!|&]|(_'  !! $' $) $- $' |$>)  !!|#Y) |%i'  #! $' $+ $' $)  !! $' $)  !! |!N-  !!$ ! ! !$  !!$ ) ! !| e  )! $'  !!$ ! !)  4! $)  )! $3 $' '}!]? ! !+  %!  !!}![Y !}![S}![W !|$]|$T!'|$R ! |$L ! |$N}4qo)  !|$R}*H? ! |$V ! }*GS !}*H1  !|$Z|$_ ! }!Zd}4q6'  !|$_  !}!Zp|$c' |)N1 }%:g' |)_' |)_)  !}*GW|$m|#&'|$k|#.- |)c9 }4o.|#b |#ez  !! $) $) )|!r| % | _)k!Ea| B5a|!m'| D ! | B|!P)  !| $| 2 !0  ,!  !!| s !| g/ !|!T |$8' $' $| 1 daC| g 2 !5  ;! $'  '!  !!> Q !| + p| &} N7 }1H>) } pP|!v  l! $- |!X-  P! $313 /17 313 313 /19  $1 B3 313 '| [+| t'|!5'|!n'|!M'|!j' 313 313 313 '1 ! 37 }#R4+ F; '1? '1) >= F|'b | 6f C@+ $|2f WT|IE | '| &' $)  !}![q}![k $ !/ $' $7  R! $3  !! $+ $; p} hF ! } hF- }#Tm}'Zj  7! $I  .! $|##  '! $)  ?! $7  !! $'  %! $+ $+  !! $)  *! $}%P= Wa|;? tq} :; da}p>; ";+var h$catMapping = "d;P)3J)3 !/0 !34 !3.'37*'3)4'3W! !/3 !06 !-6W# !/4 !04f; !83+5 !73 !67 !&1 !4< !76 !74', !6#'3 !6, !&2),FQ!H1!S#H3# <!#$'# (!#$'# 8!#'! ##!)#'! !#!&'!&)!'#+!&'!&)!)#'!&'! ##!&'! !#!'# !!#'!&)! !#!&'!'# !&!)#+& !!$ !#! !$# !!$ )#!'# )!#$'# !!$ !#!&)! >#!1#'!&'!'# !!#+! %#!| S#,Y#G%+6;%?6-%16 !%6*E6|!O' #!# !%6 !!#' *)# !3!+ '6 !!3)! ! !!'!&E!!5!j#$'#)!)# ,!#$-# !!# !4!&'!'#| /!| )# 2!#N-'') <!#'! '#!'# Q!#!p!' */3!r# ! 3<' '7 !5 | #' !.'F''F'' !3'3 Y&- )&'39 /<)4'3J'3'79' !3<!'3d&*7&M'7*+3'&.|!5& !3&1' !<7/''%''N+''&7*)&'7,?3 ! < !&'`&Y'' |! &9',? 7*f&5''%N)3*- O&+'*5'*)'*-'' A3!U&)'' F| K I&| + b'0| 5& !'( !'&)(3'+(.'(,1'7&'''37* !3%A&.'(!3&' '&' O&!1& ! &) +&'  !'&)(+'' '(' '( !'&3 0+ '&!)&''' 7*'&'5/, !75- '' !( /&+ '&' O&!1&!'&!'&!'&'  !' )(''+ ''' )') .1 +& ! &1 7*'')&.9 '' !( 5&!)&!O&!1&!'&!-&'  !'&)(-'!'' !( '(.' ,A '&''' 7* !35A .'(!3&' '&' O&!1&!'&!-&'  !'& !('0+'' '(' '(.3  !'(+ '&!)&''' 7* !7&/,7  !'&!/&) )&!+&) '& ! &!'&) '&) )&) ;&+ '(.'() )(!)(.' ,/ 0? 7*),/7 !57- .)(!3&!)&!Q&!C&) ,)'+(!)'!+'1 ''!'&/ '&''' 7*3 1, !7 .'(!3&!)&!Q&!7&!-&'  !'& !('-( ! ''(!'(''1 '(1  !& '&''' 7*!'&? .'(!3&!)&!v&' ,)(+'!)(!)( !'&3 03 '&''' 7*/,) N/&' '(!G&) S&!5& ! &' 1&) .+ )()' ! '!3(/ 7*' '(F; | )&.'&1'+ J/&*3'F7*'3n '& ! &' '& ! &' ,/ +&!1&!)& # &' '&!+&.'&/'!'',' -& ! %!/'' 7*' +&d ,)7A3 !73)7''/77*7, $7' #/0'(3&!l&+ ?'0-'F''-&9'!l'!37./7!'7-3+7'3n z&'(+'0/'0'''('',7*/3/&'(''+&)',)('&1()&+'=&.'(''/( !'&07*)(.'7p! ! !- $' z& !3%|'E&!+&' 1& ! &!+&' v&!+&' f&!+&' 1& ! &!+&' A&!| ;&!+&' | O&' )'53K,) C&77/ | t&9 <|-j&'3E&PW& !/0) | `&)3)+3&1 =&!+&)'9 G&)''35 G&''; =&!)&!''; | 1&''01'3(.'(9')3*)3 !5&.' 7*/ 7,/ /3<+3)' !< 7*/ j&*| 1&3 v& !'&- | U&7 b&!)'+('')(+ '(./()'+ N) '37*`&' -&9 |  &+ E(1&'(/ 7*8) h7Q&'''(.' '3| 3& !('01' ! ' !(''(3'/(7'' .7*/ 7*/ 13*/3' ?'2| K +'0| '& !'(-' !('-(.'(1&+ 7*13775'57) ''0`&0+''(''0)''&7*|  & !'('')( !'()''(3 +3l&3(3''('') -37*) )&7*`&/%'3| I 333 )'F='01'+&.+&'(.'&!''/ |  #| G%=#*h#n%| 5'/ +' l!#$5# Q!#$5#3!/#' /!' 3#3!3#3!/#' /!' 3# % !3#3!?#' 3#3$3#3$3#3$-#!'#+! !$6&)6)#!'#+!()6+#' '#+!!)63#-!)6' )#!'#+!('6!98-</.'3 !12>'1 !2/B33 !9:-<P53 !12+3'-)3 !4/@93 !43:73P-<!7< !,%' /,)4 !/0*7,)4 !/0!=%) `5G ='+).));'A '7$+7$'7&)!'#)! !#7$'7H-!/7 $!7+! !7#+!&+&&'7'#'!-4$+# !74'7 !#7C,j+ !!#++8/ -4-7'4+7H'7H'7H17Hb7'4'7 !47Hb7|%z437 #/0K7'417 !/0| l7H`7U4t7/4U7- r7U 97M | A,| f7O,|$)7H57H| 5734|!M7H|%Q7 (/0`,|  7-4 !/0b4 &/0C4|%b7|!v4 ,/0| G4 #/0d4 !/0|%f4| )7M4'7/4r7' d7' h7) ;7!37| % | '!!| '# ! !&)!'# $!#+! !#!'#$/#'%)! R#!'#/7 #!#)' !!#- +38'3p# ! #- &' | 9&1  !%3? .Q&5 1&!1&!1&!1&!1&!1&!1&!1&!d''3 #12)3 !12 !31D53<'3 !.3 !12'3 !12 %/0-3*73'.+3 !.3>| C W7!|! 7; |$h7W ;7+ P)3 !7% !&+ &/0'7 %/0 !./'0N5++''(<-%'7)+ !%&F'7!| v&' '''6'% !&.|!#&F)%,- v&) |!+&!'7+,77Y&- l7; C&b7!7,`73,NA,d77,r7A,| G7!|%b7} X;&7 | I7}%/C&| / M&*|9G&) | 775 t&/%'3|%z&*)3C&7*'&K  8!# !&'))F7' !3% /!#'% ! '| U&7+''/33 Q65%'6 '!#$)# @!#*3# #!#'! %#! !#%'6 #!# ! ! !#!)# +!#+!' '!| S ,'%&1&.)&.+&.Q&'(''0+7+ /,'7 !57/ | 1&+33 '(| -&C(.5 '37*/ G'/&)3,+ 7*[&3''3Q&9''(9 F^&) )'0| '&.'(+''(.+(=3 ! %7*+ '3-& !'%5&7*-&!v&/''('''(''5 )&.3& !'(' 7*' +3C&*/&)7 !&( !'(| -& !'&)''&''-&'' !&',S '&*'39&0'''('3,'% !('7 /&' /&' /&5 1&!1&!z#L+%+ '#|!# j&'(.'(.'( !3(.' 7*/ }!e;&; Q&+ | +&+ |MQ=} T7 |(/&' |!C&p 1#; -#-  !&'7&H=&!-& ! &!'&!'&!|!G&C6E |()& !0/C | I&' | 5&t ;& !57' C'13 !/0F/ ?'' F'.'- )/0'3 !/0+3)-)3!+3 !./ #0/@)3 !4.)4 ! 3J'3+ -&!|##&'  !< )3J)3 !/0 !34 !3.'37*'3)4'3W! !/3 !06 !-6W# !/4 !04 !/0 !3/@'37&*| #&'%b&) /&' /&' /&' )&) '5 !46N'5 ! 7+4'77 )<'7' ;&!W&!I&!'&!A&' ?&h |!f&- )3+ | #,) 57| 3++,E7',N) ;7+ N| ' | #7.|!t ^&) | +&A .Y,+ d&+,; E&63&6- p&-'- `& ! 3l&+ 3&F-+x t!t#| f&' 7*| v t&3 | 1&9 F|#5 |&v&5 O&7 3&|#E /&'  !& |  &!'&) ,' Q& ! 33,Q&'71,b&3 5,| j O&/,) FW&- F| I | 9&/ '&| I ,)'!''- +'+&!)&!Y&+ )'+ .3,3 531 ^&',F^&),d 3&N[&''+ -,135 | 5&) 13O&' 3,I&- 3,G&1 +3; 1,| j | [&|+t b,|(U  !('0| 3&A'13+ K,7*A )'0| #&)(+''('''3X+3? U&1 7*/ )'l&-'03'!7*+3; j&.'3,5 ''0| )&)(5''(+&+3+ F' 7*,/ K,9 G&!U&)()''( !'(''/3|!S | '&.)(3'- 7*1 .'(!3&' '&' O&!1&!'&!-&'  !'&'(.+(' '(' )(5 0- -&'(' 1') -'|%x | )&)(/' !('+(''0'''& !3&3 7*|#b | '&)(+'' +(''0''53| 5 | )&)(3''( !'('')3,9 7*p z& !'(.'(/' !('3 7*|*K d!d#7*5,; ,|)z | ;&|<Y |4M&|!= |!M+!-3|b` |7l&}#8j |,^&1 b&!7*+ '3|!/ `&' -'F7 | )&1'-3+7+% !377 7*!1,!M&- I&|3U | S&9 ,| %(C +'=%}$&7 '&|e7 |!E&- =&) 5&1 7&' N''F+<} 4/ |%M77 r7' | A7'()')7/(3<3''71'`7+'| )7h | M7)'N|$/ | x75 G,|#1 W!W#W!1#!G#W!W# !! '!' $' '!' +!!3!+# ! #!1#!9#W!W#'!!+!' 3!!1!!W#'!!+!!-! ! !) 1!!W#W!W#W!W#W!W#W!W#W!W#W![#' U!HU#H/#U!HU#H/#U!HU#H/#U!HU#H/#U!HU#H/# !!#' | -*}  % |$E&' 5,1'|=C +&!Y&!'& ! &'  !& 7&!+& # &/ ,+  $& )&!'& ! &'  && '& ! &' +&!1&!+&!+& ! &!7&!E&- )&!-&!E&| 1 '4|&# |  7+ |!77; A7' A7!A7!n77 =,) b7!| A7+ z7| ` ^7= z7- 571 '7|#r | #7) | f7' | h7- l73 |%`7!| `7- x7!v7!|#Q7' |#+7C =7) +7; |!W7; | t7z ;7+ | 973 77/ t73 `7|I^ }*Q/&v } !5&9 |$x&}$#I |,'&|AO X` |!/<|!p |%A'}PF' ";+/* Copyright (C) 1991-2014 Free Software Foundation, Inc.+   This file is part of the GNU C Library.++   The GNU C Library is free software; you can redistribute it and/or+   modify it under the terms of the GNU Lesser General Public+   License as published by the Free Software Foundation; either+   version 2.1 of the License, or (at your option) any later version.++   The GNU C Library is distributed in the hope that it will be useful,+   but WITHOUT ANY WARRANTY; without even the implied warranty of+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+   Lesser General Public License for more details.++   You should have received a copy of the GNU Lesser General Public+   License along with the GNU C Library; if not, see+   <http://www.gnu.org/licenses/>.  */+/* This header is separate from features.h so that the compiler can+   include it implicitly at the start of every compilation.  It must+   not itself include <features.h> or any other header that includes+   <features.h> because the implicit include comes before any feature+   test macros that may be defined in a source file before it first+   explicitly includes a system header.  GCC knows the name of this+   header in order to preinclude it.  */+/* glibc's intent is to support the IEC 559 math functionality, real+   and complex.  If the GCC (4.9 and later) predefined macros+   specifying compiler intent are available, use them to determine+   whether the overall intent is to support these features; otherwise,+   presume an older compiler has intent to support these features and+   define these macros by default.  */+/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) /+   Unicode 6.0.  */+/* We do not support C11 <threads.h>.  */+// encode a string constant+function h$str(s) {+  var enc = null;+  return function() {+    if(enc === null) {+      enc = h$encodeUtf8(s);+    }+    return enc;+  }+}+// encode a raw string from bytes+function h$rstr(d) {+  var enc = null;+  return function() {+    if(enc === null) {+      enc = h$rawStringData(d);+    }+    return enc;+  }+}+// these aren't added to the CAFs, so the list stays in mem indefinitely, is that a problem?+function h$strt(str) { return h$c1(h$lazy_e, function() { return h$toHsString(str); }); }+function h$strta(str) { return h$c1(h$lazy_e, function() { return h$toHsStringA(str); }); }+function h$strtb(arr) { return h$c1(h$lazy_e, function() { return h$toHsStringMU8(arr); }); }+// unpack strings without thunks+function h$ustra(str) { return h$toHsStringA(str); }+function h$ustr(str) { return h$toHsString(str); }+function h$urstra(arr) { return h$toHsList(arr); }+function h$urstr(arr) { return h$toHsStringMU8(arr); }+function h$caseMapping(x) {+    return (x%2)?-((x+1)>>1):(x>>1);+}+var h$toUpper = null;+function h$u_towupper(ch) {+    if(h$toUpper == null) { h$toUpper = h$decodeMapping(h$toUpperMapping, h$caseMapping); }+    return ch+(h$toUpper[ch]|0);+}+var h$toLower = null;+function h$u_towlower(ch) {+    if(h$toLower == null) { h$toLower = h$decodeMapping(h$toLowerMapping, h$caseMapping); }+    return ch+(h$toLower[ch]|0);+}+var h$alpha = null;+function h$u_iswalpha(a) {+    if(h$alpha == null) { h$alpha = h$decodeRLE(h$alphaRanges); }+    return h$alpha[a]|0;+}+var h$alnum = null;+function h$u_iswalnum(a) {+  if(h$alnum == null) { h$alnum = h$decodeRLE(h$alnumRanges); }+  return h$alnum[a] == 1 ? 1 : 0;+}+function h$u_iswspace(a) {+    return '\t\n\v\f\r \u0020\u00a0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000'+        .indexOf(String.fromCharCode(a)) !== -1 ? 1 : 0;+}+var h$lower = null;+function h$u_iswlower(a) {+    if(h$lower == null) { h$lower = h$decodeRLE(h$lowerRanges); }+    if(a < 0x30000) return h$lower[a]|0;+    if(a < 0xE0000) return 0;+    return h$lower[a-0xB0000]|0;+}+var h$upper = null;+function h$u_iswupper(a) {+    if(h$upper == null) { h$upper = h$decodeRLE(h$upperRanges); }+    if(a < 0x30000) return h$upper[a]|0;+    if(a < 0xE0000) return 0;+    return h$upper[a-0xB0000]|0;+}+var h$cntrlChars = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159];+var h$cntrl = null;+function h$u_iswcntrl(a) {+    if(h$cntrl === null) {+        h$cntrl = [];+        for(var i=0;i<=159;i++) h$cntrl[i] = (h$cntrlChars.indexOf(i) !== -1) ? 1 : 0;+    }+    return a <= 159 ? h$cntrl[a] : 0;+}+var h$print = null;+function h$u_iswprint(a) {+    if(h$print == null) { h$print = h$decodeRLE(h$printRanges); }+    if(a < 0x30000) return h$print[a]|0;+    if(a < 0xE0000) return 0;+    return h$print[a-0xB0000]|0;+}+// decode a packed string (Compactor encoding method) to an array of numbers+function h$decodePacked(s) {+    function f(o) {+        var c = s.charCodeAt(o);+        return c<34?c-32:c<92?c-33:c-34;+    }+    var r=[], i=0;+    while(i < s.length) {+        var c = s.charCodeAt(i);+        if(c < 124) r.push(f(i++));+        else if(c === 124) {+            i += 3; r.push(90+90*f(i-2)+f(i-1));+        } else if(c === 125) {+            i += 4;+            r.push(8190+8100*f(i-3)+90*f(i-2)+f(i-1));+        } else throw ("h$decodePacked: invalid: " + c);+    }+    return r;+}+// decode string with encoded character ranges+function h$decodeRLE(str) {+    var r = [], x = 0, i = 0, j = 0, v, k, a = h$decodePacked(str);+    while(i < a.length) {+        v = a[i++];+        if(v === 0) { // alternating+            k = a[i++];+            while(k--) {+                r[j++] = x;+                r[j++] = 1-x;+            }+        } else {+            if(v <= 2) {+                k = (a[i]<<16)+a[i+1];+                i+=2;+            } else k = (v-1)>>1;+            if(v%2) {+                r[j++] = x;+                x = 1-x;+            }+            while(k--) r[j++] = x;+            x = 1-x;+        }+    }+    r.shift();+    return r;+}+function h$decodeMapping(str, f) {+    var r = [], i = 0, j = 0, k, v, v2, a = h$decodePacked(str);+    while(i < a.length) {+        v = a[i++];+        if(v === 0) { // alternating+            k = a[i];+            v = f(a[i+1]);+            v2 = f(a[i+2]);+            while(k--) {+                r[j++] = v;+                r[j++] = v2;+            }+            i+=3;+        } else {+            if(v === 2) {+                k = (a[i] << 16) + a[i+1];+                v = a[i+2];+                i += 3;+            } else if(v%2) {+                k = 1;+                v = v>>1;+            } else {+                k = (v>>1)-1;+                v = a[i++];+            }+            v = f(v);+            while(k--) r[j++] = v;+        }+    }+    return r;+}+var h$unicodeCat = null;+function h$u_gencat(a) {+    if(h$unicodeCat == null) h$unicodeCat = h$decodeMapping(h$catMapping, function(x) { return x; });+    // private use+    if(a >= 0xE000 && a <= 0xF8FF || a >= 0xF0000 & a <= 0xFFFFD || a >= 0x100000 && a <= 0x10FFFD) return 28;+    var c = a < 0x30000 ? (h$unicodeCat[a]|0) :+        (a < 0xE0000 ? 0 : (h$unicodeCat[a-0xB0000]|0));+    return c?c-1:29;+}+function h$localeEncoding() {+    //   h$log("### localeEncoding");+   h$ret1 = 0; // offset 0+   return h$encodeUtf8("UTF-8");+}+function h$rawStringData(str) {+    var v = h$newByteArray(str.length+1);+    var u8 = v.u8;+    for(var i=0;i<str.length;i++) {+       u8[i] = str[i];+    }+    u8[str.length] = 0;+    return v;+}+// encode a javascript string to a zero terminated utf8 byte array+function h$encodeUtf8(str) {+  var i, low;+  var n = 0;+  for(i=0;i<str.length;i++) {+    // non-BMP encoded as surrogate pair in JavaScript string, get actual codepoint+    var c = str.charCodeAt(i);+    if (0xD800 <= c && c <= 0xDBFF) {+      low = str.charCodeAt(i+1);+      c = ((c - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000;+      i++;+    }+    if(c <= 0x7F) {+      n++;+    } else if(c <= 0x7FF) {+      n+=2;+    } else if(c <= 0xFFFF) {+      n+=3;+    } else if(c <= 0x1FFFFF) {+      n+=4;+    } else if(c <= 0x3FFFFFF) {+      n+=5;+    } else {+      n+=6;+    }+  }+  var v = h$newByteArray(n+1);+  var u8 = v.u8;+  n = 0;+  for(i=0;i<str.length;i++) {+    var c = str.charCodeAt(i);+    // non-BMP encoded as surrogate pair in JavaScript string, get actual codepoint+    if (0xD800 <= c && c <= 0xDBFF) {+      low = str.charCodeAt(i+1);+      c = ((c - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000;+      i++;+    }+//    h$log("### encoding char " + c + " to UTF-8: " + String.fromCodePoint(c));+    if(c <= 0x7F) {+      u8[n] = c;+      n++;+    } else if(c <= 0x7FF) {+      u8[n] = (c >> 6) | 0xC0;+      u8[n+1] = (c & 0x3F) | 0x80;+      n+=2;+    } else if(c <= 0xFFFF) {+      u8[n] = (c >> 12) | 0xE0;+      u8[n+1] = ((c >> 6) & 0x3F) | 0x80;+      u8[n+2] = (c & 0x3F) | 0x80;+      n+=3;+    } else if(c <= 0x1FFFFF) {+      u8[n] = (c >> 18) | 0xF0;+      u8[n+1] = ((c >> 12) & 0x3F) | 0x80;+      u8[n+2] = ((c >> 6) & 0x3F) | 0x80;+      u8[n+3] = (c & 0x3F) | 0x80;+      n+=4;+    } else if(c <= 0x3FFFFFF) {+      u8[n] = (c >> 24) | 0xF8;+      u8[n+1] = ((c >> 18) & 0x3F) | 0x80;+      u8[n+2] = ((c >> 12) & 0x3F) | 0x80;+      u8[n+3] = ((c >> 6) & 0x3F) | 0x80;+      u8[n+4] = (c & 0x3F) | 0x80;+      n+=5;+    } else {+      u8[n] = (c >>> 30) | 0xFC;+      u8[n+1] = ((c >> 24) & 0x3F) | 0x80;+      u8[n+2] = ((c >> 18) & 0x3F) | 0x80;+      u8[n+3] = ((c >> 12) & 0x3F) | 0x80;+      u8[n+4] = ((c >> 6) & 0x3F) | 0x80;+      u8[n+5] = (c & 0x3F) | 0x80;+      n+=6;+    }+  }+  u8[v.len-1] = 0; // terminator+//  h$log("### encodeUtf8: " + str);+//  h$log(v);+  return v;+}+// encode a javascript string to a zero terminated utf16 byte array+function h$encodeUtf16(str) {+  var n = 0;+  var i;+  for(i=0;i<str.length;i++) {+    var c = str.charCodeAt(i);+    if(c <= 0xFFFF) {+      n += 2;+    } else {+      n += 4;+    }+  }+  var v = h$newByteArray(n+1);+  var dv = v.dv;+  n = 0;+  for(i=0;i<str.length;i++) {+    var c = str.charCodeAt(i);+    if(c <= 0xFFFF) {+      dv.setUint16(n, c, true);+      n+=2;+    } else {+      var c0 = c - 0x10000;+      dv.setUint16(n, c0 >> 10, true);+      dv.setUint16(n+2, c0 & 0x3FF, true);+      n+=4;+    }+  }+  dv.setUint8(v.len-1,0); // terminator+  return v;+}+// convert a string to a buffer, set second field in+// Addr# to length+function h$fromStr(s) {+  var l = s.length;+  var b = h$newByteArray(l * 2);+  var dv = b.dv;+  for(var i=l-1;i>=0;i--) {+    dv.setUint16(i<<1, s.charCodeAt(i), true);+  }+  h$ret1 = l;+  return b;+}+// convert a Data.Text buffer with offset/length to a+// JS string+function h$toStr(b,o,l) {+  var a = [];+  var end = 2*(o+l);+  var k = 0;+  var dv = b.dv;+  var s = '';+  for(var i=2*o;i<end;i+=2) {+    var cc = dv.getUint16(i,true);+    a[k++] = cc;+    if(k === 60000) {+      s += String.fromCharCode.apply(this, a);+      k = 0;+      a = [];+    }+  }+  return s + String.fromCharCode.apply(this, a);+}+/*+function h$encodeUtf16(str) {+  var b = new DataView(new ArrayBuffer(str.length * 2));+  for(var i=str.length-1;i>=0;i--) {+    b.setUint16(i<<1, str.charCodeAt(i));+  }+  h$ret1 = 0;+  return b;+}+var h$eU16 = h$encodeUtf16;++function h$decodeUtf16(v,start) {+  return h$decodeUtf16(v, v.byteLength - start, start);+}++function h$decodeUtf16z(v,start) {+  var len = v.byteLength - start;+  for(var i=start;i<l;i+=2) {+    if(v.getUint16(i) === 0) {+      len = i;+      break;+    }+  }+  return h$decodeUtf16l(v,l,start)+}+*/+function h$decodeUtf16l(v, byteLen, start) {+  // perhaps we can apply it with an Uint16Array view, but that might give us endianness problems+  var a = [];+  for(var i=0;i<byteLen;i+=2) {+    a[i>>1] = v.dv.getUint16(i+start,true);+  }+  return String.fromCharCode.apply(this, a);+}+var h$dU16 = h$decodeUtf16;+// decode a buffer with UTF-8 chars to a JS string+// stop at the first zero+function h$decodeUtf8z(v,start) {+//  h$log("h$decodeUtf8z");+  var n = start;+  var max = v.len;+  while(n < max) {+//    h$log("### " + n + " got char: " + v.u8[n]);+    if(v.u8[n] === 0) { break; }+    n++;+  }+  return h$decodeUtf8(v,n,start);+}+// decode a buffer with Utf8 chars to a JS string+// invalid characters are ignored+function h$decodeUtf8(v,n0,start) {+//  h$log("### decodeUtf8");+//  h$log(v);+  var n = n0 || v.len;+  var arr = [];+  var i = start || 0;+  var code;+  var u8 = v.u8;+//  h$log("### decoding, starting at:  " + i);+  while(i < n) {+    var c = u8[i];+    while((c & 0xC0) === 0x80) {+      c = u8[++i];+    }+//    h$log("### lead char: " + c);+    if((c & 0x80) === 0) {+      code = (c & 0x7F);+      i++;+    } else if((c & 0xE0) === 0xC0) {+      code = ( ((c & 0x1F) << 6)+             | (u8[i+1] & 0x3F)+             );+      i+=2;+    } else if((c & 0xF0) === 0xE0) {+      code = ( ((c & 0x0F) << 12)+             | ((u8[i+1] & 0x3F) << 6)+             | (u8[i+2] & 0x3F)+             );+      i+=3;+    } else if ((c & 0xF8) === 0xF0) {+      code = ( ((c & 0x07) << 18)+             | ((u8[i+1] & 0x3F) << 12)+             | ((u8[i+2] & 0x3F) << 6)+             | (u8[i+3] & 0x3F)+             );+      i+=4;+    } else if((c & 0xFC) === 0xF8) {+      code = ( ((c & 0x03) << 24)+             | ((u8[i+1] & 0x3F) << 18)+             | ((u8[i+2] & 0x3F) << 12)+             | ((u8[i+3] & 0x3F) << 6)+             | (u8[i+4] & 0x3F)+             );+      i+=5;+    } else {+      code = ( ((c & 0x01) << 30)+             | ((u8[i+1] & 0x3F) << 24)+             | ((u8[i+2] & 0x3F) << 18)+             | ((u8[i+3] & 0x3F) << 12)+             | ((u8[i+4] & 0x3F) << 6)+             | (u8[i+5] & 0x3F)+             );+      i+=6;+    }+    // h$log("### decoded codePoint: " + code + " - " + String.fromCharCode(code)); // String.fromCodePoint(code));+    // need to deal with surrogate pairs+    if(code > 0xFFFF) {+      var offset = code - 0x10000;+      arr.push(0xD800 + (offset >> 10), 0xDC00 + (offset & 0x3FF));+    } else {+      arr.push(code);+    }+  }+  return String.fromCharCode.apply(this, arr);+}+// fixme what if terminator, then we read past end+function h$decodeUtf16(v) {+  var n = v.len;+  var arr = [];+  var dv = v.dv;+  for(var i=0;i<n;i+=2) {+    arr.push(dv.getUint16(i,true));+  }+  return String.fromCharCode.apply(this, arr);+}+function h$hs_iconv_open(to,to_off,from,from_off) {+  h$errno = h$EINVAL; // no encodings supported+  return -1;+//  var fromStr = decodeUtf8(from, from_off);+//  var toStr = decodeUtf8(to, to_off);+//  h$log("#### hs_iconv_open: " + fromStr + " -> " + toStr);+//  return 1; // fixme?+}+function h$hs_iconv_close(iconv) {+  return 0;+}+// ptr* -> ptr (array)+function h$derefPtrA(ptr, ptr_off) {+  return ptr.arr[ptr_off][0];+}+// ptr* -> ptr (offset)+function h$derefPtrO(ptr, ptr_off) {+  return ptr.arr[ptr_off][1];+}+// word** -> word    ptr[x][y]+function h$readPtrPtrU32(ptr, ptr_off, x, y) {+  x = x || 0;+  y = y || 0;+  var arr = ptr.arr[ptr_off + 4 * x];+  return arr[0].dv.getInt32(arr[1] + 4 * y, true);+}+// char** -> char   ptr[x][y]+function h$readPtrPtrU8(ptr, ptr_off, x, y) {+  x = x || 0;+  y = y || 0;+  var arr = ptr.arr[ptr_off + 4 * x];+  return arr[0].dv.getUint8(arr[1] + y);+}+// word**   ptr[x][y] = v+function h$writePtrPtrU32(ptr, ptr_off, v, x, y) {+  x = x || 0;+  y = y || 0;+  var arr = ptr.arr[ptr_off + 4 * x];+  arr[0].dv.putInt32(arr[1] + y, v);+}+// unsigned char** ptr[x][y] = v+function h$writePtrPtrU8(ptr, ptr_off, v, x, y) {+  x = x || 0;+  y = y || 0;+  var arr = ptr.arr[ptr_off+ 4 * x];+  arr[0].dv.putUint8(arr[1] + y, v);+}+// convert JavaScript String to a Haskell String+function h$toHsString(str) {+  if(typeof str !== 'string') return h$ghczmprimZCGHCziTypesziZMZN;+  var i = str.length - 1;+  var r = h$ghczmprimZCGHCziTypesziZMZN;+  while(i>=0) {+    var cp = str.charCodeAt(i);+    if(cp >= 0xDC00 && cp <= 0xDFFF && i > 0) {+      --i;+      cp = (cp - 0xDC00) + (str.charCodeAt(i) - 0xD800) * 1024 + 0x10000;+    }+    r = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, cp, r);+    --i;+  }+  return r;+}+// string must have been completely forced first+function h$fromHsString(str) {+    var xs = '';+    while(str.f.a === 2) {+        if(typeof str.d1 === 'number') {+            xs += String.fromCharCode(str.d1);+        } else {+            xs += String.fromCharCode(str.d1.d1); // unbox_e+        }+        str = str.d2;+    }+    return xs;+}+// list of JSRef to array, list must have been completely forced first+function h$fromHsListJSRef(xs) {+    var arr = [];+    while(xs.f.a === 2) {+        arr.push(xs.d1.d1);+        xs = xs.d2;+    }+    return arr;+}+// ascii only version of the above+function h$toHsStringA(str) {+  if(typeof str !== 'string') return h$ghczmprimZCGHCziTypesziZMZN;+  var i = str.length - 1;+  var r = h$ghczmprimZCGHCziTypesziZMZN;+  while(i>=0) {+    r = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, str.charCodeAt(i), r);+    --i;+  }+  return r;+}+// convert array with modified UTF-8 encoded text+function h$toHsStringMU8(arr) {+    var accept = false, b, n = 0, cp = 0, r = h$ghczmprimZCGHCziTypesziZMZN, i = arr.length - 1;+    while(i >= 0) {+        b = arr[i];+        if(!(b & 128)) {+            cp = b;+            accept = true;+        } else if((b & 192) === 128) {+            cp += (b & 32) * Math.pow(64, n)+        } else {+            cp += (b&((1<<(6-n))-1)) * Math.pow(64, n);+            accept = true;+        }+        if(accept) {+            r = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, cp, r);+            cp = 0+            n = 0;+        } else {+            n++;+        }+        accept = false;+        i--;+    }+    return r;+}+function h$toHsList(arr) {+  var r = h$ghczmprimZCGHCziTypesziZMZN;+  for(var i=arr.length-1;i>=0;i--) {+    r = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, arr[i], r);+  }+  return r;+}+// array of JS values to Haskell list of JSRef+function h$toHsListJSRef(arr) {+    var r = h$ghczmprimZCGHCziTypesziZMZN;+    for(var i=arr.length-1;i>=0;i--) {+        r = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, h$mkJSRef(arr[i]), r);+    }+    return r;+}+// unpack ascii string, append to existing Haskell string+function h$appendToHsStringA(str, appendTo) {+  var i = str.length - 1;+  var r = appendTo;+  while(i>=0) {+    r = h$c2(h$ghczmprimZCGHCziTypesziZC_con_e, str.charCodeAt(i), r);+    --i;+  }+  return r;+}+// throw e wrapped in a GHCJS.Prim.JSException  in the current thread+function h$throwJSException(e) {+  // a GHCJS.Prim.JSException+  var jsE = h$c2(h$ghcjszmprimZCGHCJSziPrimziJSException_con_e,e,h$toHsString(e.toString()));+  // wrap it in a SomeException, adding the Exception dictionary+  var someE = h$c2(h$baseZCGHCziExceptionziSomeException_con_e,+     h$ghcjszmprimZCGHCJSziPrimzizdfExceptionJSException, jsE);+  return h$throw(someE, true);+}+/* Copyright (C) 1991-2014 Free Software Foundation, Inc.+   This file is part of the GNU C Library.++   The GNU C Library is free software; you can redistribute it and/or+   modify it under the terms of the GNU Lesser General Public+   License as published by the Free Software Foundation; either+   version 2.1 of the License, or (at your option) any later version.++   The GNU C Library is distributed in the hope that it will be useful,+   but WITHOUT ANY WARRANTY; without even the implied warranty of+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+   Lesser General Public License for more details.++   You should have received a copy of the GNU Lesser General Public+   License along with the GNU C Library; if not, see+   <http://www.gnu.org/licenses/>.  */+/* This header is separate from features.h so that the compiler can+   include it implicitly at the start of every compilation.  It must+   not itself include <features.h> or any other header that includes+   <features.h> because the implicit include comes before any feature+   test macros that may be defined in a source file before it first+   explicitly includes a system header.  GCC knows the name of this+   header in order to preinclude it.  */+/* glibc's intent is to support the IEC 559 math functionality, real+   and complex.  If the GCC (4.9 and later) predefined macros+   specifying compiler intent are available, use them to determine+   whether the overall intent is to support these features; otherwise,+   presume an older compiler has intent to support these features and+   define these macros by default.  */+/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) /+   Unicode 6.0.  */+/* We do not support C11 <threads.h>.  */+/* +   Integer and integer-gmp support+   partial GMP emulation++   note: sign behaves different from real gmp sign,+         value is always zero, don't use it for comparisons+*/+var h$bigZero = h$nbv(0);+var h$bigOne = h$nbv(1);+var h$bigCache = [];+(function() {+  for(var i=0;i<=100;i++) {+    h$bigCache.push(h$nbv(i));+  }+})();+// convert a value to a BigInt+function h$bigFromInt(v) {+  ;+  var v0 = v|0;+  if(v0 >= 0) {+    if(v0 <= 100) {+      return h$bigCache[v0];+    } else if(v0 < 268435456) { // 67108864) { // guaranteed to fit in one digit+      return h$nbv(v0);+    }+    var r1 = h$nbv(v0 >>> 16);+    var r2 = h$nbi();+    r1.lShiftTo(16,r2);+    r1.fromInt(v0 & 0xffff);+    var r3 = r1.or(r2);+    ;+    return r3;+  } else {+    v0 = -v0;+    if(v0 < 268435456) { // 67108864) {+      return h$nbv(v0).negate();+    }+    var r1 = h$nbv(v0 >>> 16);+    var r2 = h$nbi();+    r1.lShiftTo(16,r2);+    r1.fromInt(v0 & 0xffff);+    var r3 = r1.or(r2);+    BigInteger.ZERO.subTo(r3,r2);+    ;+    return r2;+  }+}+function h$bigFromWord(v) {+  var v0 = v|0;+  if(v0 >= 0) {+    if(v0 <= 100) {+      return h$bigCache[v0];+    } else if(v0 < 268435456) { // 67108864) { // guaranteed to fit in one digit+      return h$nbv(v0);+    }+  }+  var r1 = h$nbv(v0 >>> 16);+  var r2 = h$nbv(0);+  r1.lShiftTo(16,r2);+  r1.fromInt(v0 & 0xffff);+  return r1.or(r2);+}+function h$bigFromInt64(v1,v2) {+  ;+  var v10 = v1|0;+  var v20 = v2|0;+  var r = new BigInteger([ v10 >> 24, (v10 & 0xff0000) >> 16, (v10 & 0xff00) >> 8, v10 & 0xff+                         , v20 >>> 24, (v20 & 0xff0000) >> 16, (v20 & 0xff00) >> 8, v20 & 0xff+                         ]);+  ;+  return r;+}+function h$bigFromWord64(v1,v2) {+  ;+  var v10 = v1|0;+  var v20 = v2|0;+  var arr = [ 0, v10 >>> 24, (v10 & 0xff0000) >> 16, (v10 & 0xff00) >> 8, v10 & 0xff+                         , v20 >>> 24, (v20 & 0xff0000) >> 16, (v20 & 0xff00) >> 8, v20 & 0xff+                         ];+  ;+  var r = new BigInteger([ 0, v10 >>> 24, (v10 & 0xff0000) >> 16, (v10 & 0xff00) >> 8, v10 & 0xff+                         , v20 >>> 24, (v20 & 0xff0000) >> 16, (v20 & 0xff00) >> 8, v20 & 0xff+                         ]);+  ;+  return r;+}+function h$bigFromNumber(n) {+  var ra = [];+  var s = 0;+  if(n < 0) {+    n = -n;+    s = -1;+  }+  var b = 1;+  while(n >= b) {+    ra.unshift((n/b)&0xff);+    b *= 256;+  }+  ra.unshift(s);+  return new BigInteger(ra);+}+function h$encodeNumber(big,e) {+  var m = Math.pow(2,e);+  if(m === Infinity) {+    switch(big.signum()) {+      case 1: return Infinity;+      case 0: return 0;+      default: return -Infinity;+    }+  }+  var b = big.toByteArray();+  var l = b.length;+  var r = 0;+  ;+  for(var i=l-1;i>=1;i--) {+  ;+    r += m * Math.pow(2,(l-i-1)*8) * (b[i] & 0xff);+    ;+  }+  // last one signed+  if(b[0] != 0) {+    r += m * Math.pow(2,(l-1)*8) * b[0];+  }+  ;+  return r;+}+function h$integer_cmm_cmpIntegerzh(sa, abits, sb, bbits) {+  ;+  var c = abits.compareTo(bbits);+  return c == 0 ? 0 : c > 0 ? 1 : -1;+}+function h$integer_cmm_cmpIntegerIntzh(sa, abits, b) {+  ;+  var c = abits.compareTo(h$bigFromInt(b));+  return c == 0 ? 0 : c > 0 ? 1 : -1;+}+function h$integer_cmm_plusIntegerzh(sa, abits, sb, bbits) {+    ;+    return abits.add(bbits);+}+function h$integer_cmm_plusIntegerIntzh(sa, abits, b) {+  ;+  return abits.add(h$bigFromInt(b));+}+function h$integer_cmm_minusIntegerzh(sa, abits, sb, bbits) {+    ;+    return abits.subtract(bbits);+}+function h$integer_cmm_minusIntegerIntzh(sa, abits, b) {+   ;+   return abits.subtract(h$bigFromInt(b));+}+function h$integer_cmm_timesIntegerzh(sa, abits, sb, bbits) {+    ;+    return abits.multiply(bbits);+}+function h$integer_cmm_timesIntegerIntzh(sa, abits, b) {+  ;+  return abits.multiply(h$bigFromInt(b));+}+// fixme make more efficient, divideRemainder+function h$integer_cmm_quotRemIntegerzh(sa, abits, sb, bbits) {+    ;+    var q = abits.divide(bbits);+    ;+    var r = abits.subtract(q.multiply(bbits));+    ;+    h$ret1 = r;+    return q;+}+function h$integer_cmm_quotRemIntegerWordzh(sa, abits, b) {+    var bbits = h$bigFromWord(b);+    ;+    var q = abits.divide(bbits);+    h$ret1 = abits.subtract(q.multiply(bbits));+    return q;+}+function h$integer_cmm_quotIntegerzh(sa, abits, sb, bbits) {+    ;+    return abits.divide(bbits);+}+function h$integer_cmm_quotIntegerWordzh(sa, abits, b) {+    ;+    return abits.divide(h$bigFromWord(b));+}+function h$integer_cmm_remIntegerzh(sa, abits, sb, bbits) {+    ;+    return abits.subtract(bbits.multiply(abits.divide(bbits)));+}+function h$integer_cmm_remIntegerWordzh(sa, abits, b) {+    ;+    var bbits = h$bigFromWord(b);+    return abits.subtract(bbits.multiply(abits.divide(bbits)));+}+function h$integer_cmm_divModIntegerzh(sa, abits, sb, bbits) {+    ;+    var d = abits.divide(bbits);+    var m = abits.subtract(d.multiply(bbits));+    if(abits.signum()!==bbits.signum() && m.signum() !== 0) {+        d = d.subtract(h$bigOne);+        m.addTo(bbits, m);+    }+    h$ret1 = m;+    return d;+}+function h$integer_cmm_divModIntegerWordzh(sa, abits, b) {+    ;+    return h$integer_cmm_divModIntegerzh(sa, abits, 0, h$bigFromWord(b));+}+function h$integer_cmm_divIntegerzh(sa, abits, sb, bbits) {+    ;+    var d = abits.divide(bbits);+    var m = abits.subtract(d.multiply(bbits));+    if(abits.signum()!==bbits.signum() && m.signum() !== 0) {+        d = d.subtract(h$bigOne);+    }+    return d;+}+function h$integer_cmm_divIntegerWordzh(sa, abits, b) {+    ;+    return h$integer_cmm_divIntegerzh(sa, abits, 0, h$bigFromWord(b));+}+function h$integer_cmm_modIntegerzh(sa, abits, sb, bbits) {+    ;+    var d = abits.divide(bbits);+    var m = abits.subtract(d.multiply(bbits));+    if(abits.signum()!==bbits.signum() && m.signum() !== 0) {+        m.addTo(bbits, m);+    }+    return m;+}+function h$integer_cmm_modIntegerWordzh(sa, abits, b) {+    ;+    return h$integer_cmm_modIntegerzh(sa, abits, 0, h$bigFromWord(b));+}+function h$integer_cmm_divExactIntegerzh(sa, abits, sb, bbits) {+    ;+    return abits.divide(bbits);+}+function h$integer_cmm_divExactIntegerWordzh(sa, abits, b) {+    ;+    return abits.divide(h$bigFromWord(b));+}+function h$gcd(a, b) {+    var x = a.abs();+    var y = b.abs();+    var big, small;+    if(x.compareTo(y) < 0) {+        small = x;+        big = y;+    } else {+        small = y;+        big = x;+    }+    while(small.signum() !== 0) {+        var q = big.divide(small);+        var r = big.subtract(q.multiply(small));+        big = small;+        small = r;+    }+    return big;+}+function h$integer_cmm_gcdIntegerzh(sa, abits, sb, bbits) {+    ;+    return h$gcd(abits, bbits);+}+function h$integer_cmm_gcdIntegerIntzh(sa, abits, b) {+    ;+    var r = h$gcd(abits, h$bigFromInt(b));+    return r.intValue();+}+function h$integer_cmm_gcdIntzh(a, b) {+        var x = a<0 ? -a : a;+        var y = b<0 ? -b : b;+        var big, small;+        if(x<y) {+            small = x;+            big = y;+        } else {+            small = y;+            big = x;+        }+        while(small!==0) {+            var r = big % small;+            big = small;+            small = r;+        }+        return big;+}+function h$integer_cmm_powIntegerzh(sa, abits, b) {+    ;+    if(b >= 0) {+      return abits.pow(b);+    } else {+      return abits.pow(b + 2147483648);+    }+}+// (a ^ b) % c+function h$integer_cmm_powModIntegerzh(sa, abits, sb, bbits, sc, cbits) {+    ;+    return abits.modPow(bbits, cbits);+}+// warning, there is no protection against side-channel attacks here+function h$integer_cmm_powModSecIntegerzh(sa, abits, sb, bbits, sc, cbits) {+    ;+    return h$integer_cmm_powModIntegerzh(sa, abits, sb, bbits, sc, cbits);+}+function h$integer_cmm_recipModIntegerzh(sa, abits, sb, bbits) {+    ;+    return abits.modInverse(bbits);+}+function h$integer_cmm_nextPrimeIntegerzh(sa, abits) {+    ;+    var n = abits.add(BigInteger.ONE);+    while(true) {+      if(n.isProbablePrime(50)) return n;+      n.addTo(BigInteger.ONE, n);+    }+}+function h$integer_cmm_testPrimeIntegerzh(sa, abits, b) {+    ;+    return abits.isProbablePrime(b) ? 1 : 0;+}+function h$integer_cmm_sizeInBasezh(sa, abits, b) {+    ;+    return Math.ceil(abits.bitLength() * Math.log(2) / Math.log(b));+}+var h$oneOverLog2 = 1 / Math.log(2);+function h$integer_cmm_decodeDoublezh(x) {+    ;+    var sgn = h$decodeDouble2Int(x);+    var b = h$bigFromInt(h$ret1).shiftLeft(32).add(h$bigFromWord(h$ret2));+    h$ret1 = (!isNaN(x) && sgn < 0) ? b.negate() : b;+    ;+    return h$ret3; // exponent+}+function h$integer_cmm_decodeDoublezhFallback(x) {+    ;+    if(isNaN(x)) {+      h$ret1 = h$bigFromInt(3).shiftLeft(51).negate();+      return 972;+    }+    if( x < 0 ) {+        var result = h$integer_cmm_decodeDoublezh(-x);+        h$ret1 = h$ret1.negate();+        return result;+    }+    if(x === Number.POSITIVE_INFINITY) {+        h$ret1 = h$bigOne.shiftLeft(52);+        return 972;+    }+    var exponent = (Math.floor(Math.log(x) * h$oneOverLog2)-52)|0;+    var n;+    // prevent overflow+    if(exponent < -1000) {+      n = x * Math.pow(2,-exponent-128) * Math.pow(2,128);+    } else if(exponent > 900) {+      n = x * Math.pow(2,-exponent+128) * Math.pow(2,-128);+    } else {+      n = x * Math.pow(2,-exponent);+    }+    // fixup precision, do we also need the other way (exponent++) ?+    if(Math.abs(n - Math.floor(n) - 0.5) < 0.0001) {+      exponent--;+      n *= 2;+    }+    h$ret1 = h$bigFromNumber(n);+    ;+    return exponent;+}+function h$integer_cmm_int2Integerzh(i) {+    ;+    h$ret1 = h$bigFromInt(i);+    return 0;+}+function h$integer_cmm_word2Integerzh(i) {+    ;+    h$ret1 = h$bigFromWord(i);+    return 0;+}+function h$integer_cmm_andIntegerzh(sa, abits, sb, bbits) {+    ;+    return abits.and(bbits);+}+function h$integer_cmm_orIntegerzh(sa, abits, sb, bbits) {+    ;+    return abits.or(bbits);+}+function h$integer_cmm_xorIntegerzh(sa, abits, sb, bbits) {+    ;+    return abits.xor(bbits);+}+function h$integer_cmm_testBitIntegerzh(sa, abits, bit) {+    return abits.testBit(bit)?1:0;+}+function h$integer_cmm_mul2ExpIntegerzh(sa, abits, b) {+    ;+    return abits.shiftLeft(b);+}+function h$integer_cmm_fdivQ2ExpIntegerzh(sa, abits, b) {+    ;+    return abits.shiftRight(b);+}+function h$integer_cmm_complementIntegerzh(sa, abits) {+    ;+    return abits.not();+}+function h$integer_cmm_int64ToIntegerzh(a0, a1) {+    ;+    h$ret1 = h$bigFromInt64(a0,a1);+    return 0;+}+function h$integer_cmm_word64ToIntegerzh(a0, a1) {+    ;+    h$ret1 = h$bigFromWord64(a0,a1);+    return 0;+}+function h$hs_integerToInt64(as, abits) {+    ;+    h$ret1 = abits.intValue();+    return abits.shiftRight(32).intValue();+}+function h$hs_integerToWord64(as, abits) {+    ;+    h$ret1 = abits.intValue();+    return abits.shiftRight(32).intValue();+}+function h$integer_cmm_integer2Intzh(as, abits) {+   ;+   return abits.intValue();+}+function h$integer_cbits_encodeDouble(as,abits,e) {+    ;+   return h$encodeNumber(abits,e);+}+function h$integer_cbits_encodeFloat(as,abits,e) {+    ;+   return h$encodeNumber(abits,e);+}+function h$__int_encodeDouble(i,e) {+   return i * Math.pow(2,e);+}+function h$__int_encodeFloat(i,e) {+   return i * Math.pow(2,e);+}+var h$integer_clz32 = Math.clz32 || function(x) {+    if (x < 0) return 0;+    if (x === 0) return 32;+    return 31 - ((Math.log(x) / Math.LN2) | 0);+}+function h$integer_wordLog2(w) {+    ;+    return 31 - h$integer_clz32(w);+}+function h$integer_integerLog2(i) {+    ;+    return i.bitLength()-1;+}+function h$integer_integerLog2IsPowerOf2(i) {+    ;+    var b = i.bitLength();+    h$ret1 = (b === 0 || i.getLowestSetBit() !== b) ? 1 : 0;+    ;+    return b-1;+}+function h$integer_intLog2IsPowerOf2(i) {+    ;+    var l = 31 - h$integer_clz32(i);+    h$ret1 = (i !== (1 << l)) ? 1 : 0;+    ;+    return l;+}+function h$integer_roundingMode(i,j) {+    ;+    return 1; // round to even, is that correct?+}+function h$integer_mkBigInt(i) {+    return h$c2(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, 0, i);+}+function h$integer_mkSmallInt(i) {+    return h$c1(h$integerzmgmpZCGHCziIntegerziTypeziSzh_con_e, i);+}+function h$integer_smartJ(i) {+    ;+    if(i.bitLength() >= 32) return h$integer_mkBigInt(i);+    return h$integer_mkSmallInt(i.intValue()|0)+}+function h$integer_mpzToInteger(i) {+    ;+    if(typeof i === 'number') return h$integer_mkSmallInt(i);+    return h$integer_smartJ(i);+}+var h$integer_negTwoThirtyOne = h$integer_mkBigInt(h$bigFromInt(-2147483648).negate());+function h$integer_mpzNeg(i) {+    ;+    if(typeof i === 'number') {+ return (i === -2147483648) ? h$integer_negTwoThirtyOne : -i;+    }+    return i.negate();+}+function h$integer_absInteger(i) {+    ;+    return i.abs();+}+function h$integer_negateInteger(i) {+    ;+    return i.negate();+}+/* Copyright (C) 1991-2014 Free Software Foundation, Inc.+   This file is part of the GNU C Library.++   The GNU C Library is free software; you can redistribute it and/or+   modify it under the terms of the GNU Lesser General Public+   License as published by the Free Software Foundation; either+   version 2.1 of the License, or (at your option) any later version.++   The GNU C Library is distributed in the hope that it will be useful,+   but WITHOUT ANY WARRANTY; without even the implied warranty of+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+   Lesser General Public License for more details.++   You should have received a copy of the GNU Lesser General Public+   License along with the GNU C Library; if not, see+   <http://www.gnu.org/licenses/>.  */+/* This header is separate from features.h so that the compiler can+   include it implicitly at the start of every compilation.  It must+   not itself include <features.h> or any other header that includes+   <features.h> because the implicit include comes before any feature+   test macros that may be defined in a source file before it first+   explicitly includes a system header.  GCC knows the name of this+   header in order to preinclude it.  */+/* glibc's intent is to support the IEC 559 math functionality, real+   and complex.  If the GCC (4.9 and later) predefined macros+   specifying compiler intent are available, use them to determine+   whether the overall intent is to support these features; otherwise,+   presume an older compiler has intent to support these features and+   define these macros by default.  */+/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) /+   Unicode 6.0.  */+/* We do not support C11 <threads.h>.  */+// set up debug logging for the current JS environment/engine+// browser also logs to <div id="output"> if jquery is detected+// the various debug tracing options use h$log+var h$glbl;+function h$getGlbl() { h$glbl = this; }+h$getGlbl();+function h$log() {+  if(h$glbl) {+    if(h$glbl.console && h$glbl.console.log) {+      h$glbl.console.log.apply(h$glbl.console,arguments);+    } else {+      h$glbl.print.apply(this,arguments);+    }+  } else {+    if(typeof console !== 'undefined') {+      console.log.apply(console, arguments);+    } else if(typeof print !== 'undefined') {+      print.apply(null, arguments);+    }+  }+}+function h$collectProps(o) {+  var props = [];+  for(var p in o) { props.push(p); }+  return("{"+props.join(",")+"}");+}+// load the command line arguments in h$programArgs+// the first element is the program name+var h$programArgs;+if(h$isNode) {+    h$programArgs = process.argv.slice(1);+} else if(h$isJsShell && typeof h$getGlobal(this).scriptArgs !== 'undefined') {+    h$programArgs = h$getGlobal(this).scriptArgs.slice(0);+    h$programArgs.unshift("a.js");+} else if((h$isJsShell || h$isJsCore) && typeof h$getGlobal(this).arguments !== 'undefined') {+    h$programArgs = h$getGlobal(this).arguments.slice(0);+    h$programArgs.unshift("a.js");+} else {+    h$programArgs = [ "a.js" ];+}+function h$getProgArgv(argc_v,argc_off,argv_v,argv_off) {+  ;+  var c = h$programArgs.length;+  if(c === 0) {+    argc_v.dv.setInt32(argc_off, 0, true);+  } else {+    argc_v.dv.setInt32(argc_off, c, true);+    var argv = h$newByteArray(4*c);+    argv.arr = [];+    for(var i=0;i<h$programArgs.length;i++) {+      argv.arr[4*i] = [ h$encodeUtf8(h$programArgs[i]), 0 ];+    }+    if(!argv_v.arr) { argv_v.arr = []; }+    argv_v.arr[argv_off] = [argv, 0];+  }+}+function h$setProgArgv(n, ptr_d, ptr_o) {+  args = [];+  for(var i=0;i<n;i++) {+    var p = ptr_d.arr[ptr_o+4*i];+    var arg = h$decodeUtf8z(p[0], p[1]);+    args.push(arg);+  }+  h$programArgs = args;+}+function h$getpid() {+  if(h$isNode) return process.id;+  return 0;+}+function h$__hscore_environ() {+    ;+    h$ret1 = 0;+    if(h$isNode) {+        var env = [], i;+        for(i in process.env) env.push(i + '=' + process.env[i]);+        if(env.length === 0) return null;+        var p = h$newByteArray(4*env.length+1);+        p.arr = [];+        for(i=0;i<env.length;i++) p.arr[4*i] = [h$encodeUtf8(env[i]), 0];+        p.arr[4*env.length] = [null, 0];+        return p;+    }+    return null;+}+function h$getenv(name, name_off) {+    ;+    h$ret1 = 0;+    if(h$isNode) {+        var n = h$decodeUtf8z(name, name_off);+        if(typeof process.env[n] !== 'undefined')+            return h$encodeUtf8(process.env[n]);+    }+    return null;+}+function h$errorBelch() {+  h$log("### errorBelch: do we need to handle a vararg function here?");+}+function h$errorBelch2(buf1, buf_offset1, buf2, buf_offset2) {+//  log("### errorBelch2");+  h$errorMsg(h$decodeUtf8z(buf1, buf_offset1), h$decodeUtf8z(buf2, buf_offset2));+}+function h$debugBelch2(buf1, buf_offset1, buf2, buf_offset2) {+  h$errorMsg(h$decodeUtf8z(buf1, buf_offset1), h$decodeUtf8z(buf2, buf_offset2));+}+function h$errorMsg(pat) {+  function stripTrailingNewline(xs) {+    return xs.replace(/\r?\n$/, "");+  }+  // poor man's vprintf+  var str = pat;+  for(var i=1;i<arguments.length;i++) {+    str = str.replace(/%s/, arguments[i]);+  }+  if(h$isNode) {+    process.stderr.write(str);+  } else if (h$isJsShell && typeof printErr !== 'undefined') {+    if(str.length) printErr(stripTrailingNewline(str));+  } else if (h$isJsShell && typeof putstr !== 'undefined') {+    putstr(str);+  } else if (h$isJsCore) {+    if(str.length) {+ if(h$base_stderrLeftover.val !== null) {+     debug(h$base_stderrLeftover.val + stripTrailingNewline(str));+     h$base_stderrLeftover.val = null;+ } else {+     debug(stripTrailingNewline(str));+ }+    }+  } else {+    if(typeof console !== 'undefined') {+      console.log(str);+    }+  }+}+// this needs to be imported with foreign import ccall safe/interruptible+function h$performMajorGC() {+    // save current thread state so we can enter the GC+    var t = h$currentThread, err = null;+    t.sp = h$sp;+    h$currentThread = null;+    try {+        h$gc(t);+    } catch(e) {+        err = e;+    }+    // restore thread state+    h$currentThread = t;+    h$sp = t.sp;+    h$stack = t.stack;+    if(err) throw err;+}+function h$baseZCSystemziCPUTimeZCgetrusage() {+  return 0;+}+function h$getrusage() {+  return 0;+}+// fixme need to fix these struct locations+function h$gettimeofday(tv_v,tv_o,tz_v,tz_o) {+  var now = Date.now();+  tv_v.dv.setInt32(tv_o, (now / 1000)|0, true);+  tv_v.dv.setInt32(tv_o + 4, ((now % 1000) * 1000)|0, true);+  if(tv_v.len >= tv_o + 12) {+    tv_v.dv.setInt32(tv_o + 8, ((now % 1000) * 1000)|0, true);+  }+  return 0;+}+function h$traceEvent(ev_v,ev_o) {+  h$errorMsg(h$decodeUtf8z(ev_v, ev_o));+}+function h$traceMarker(ev_v,ev_o) {+  h$errorMsg(h$decodeUtf8z(ev_v, ev_o));+}+var h$__hscore_gettimeofday = h$gettimeofday;+var h$myTimeZone = h$encodeUtf8("UTC");+function h$localtime_r(timep_v, timep_o, result_v, result_o) {+  var t = timep_v.i3[timep_o];+  var d = new Date(t * 1000);+  result_v.dv.setInt32(result_o , d.getSeconds(), true);+  result_v.dv.setInt32(result_o + 4 , d.getMinutes(), true);+  result_v.dv.setInt32(result_o + 8 , d.getHours(), true);+  result_v.dv.setInt32(result_o + 12, d.getDate(), true);+  result_v.dv.setInt32(result_o + 16, d.getMonth(), true);+  result_v.dv.setInt32(result_o + 20, d.getFullYear()-1900, true);+  result_v.dv.setInt32(result_o + 24, d.getDay(), true);+  result_v.dv.setInt32(result_o + 28, 0, true); // fixme yday 1-365 (366?)+  result_v.dv.setInt32(result_o + 32, -1, true); // dst information unknown+  result_v.dv.setInt32(result_o + 40, 0, true); // gmtoff?+  if(!result_v.arr) result_v.arr = [];+  result_v.arr[result_o + 40] = [h$myTimeZone, 0];+  result_v.arr[result_o + 48] = [h$myTimeZone, 0];+  h$ret1 = result_o;+  return result_v;+}+var h$__hscore_localtime_r = h$localtime_r;+/* Copyright (C) 1991-2014 Free Software Foundation, Inc.+   This file is part of the GNU C Library.++   The GNU C Library is free software; you can redistribute it and/or+   modify it under the terms of the GNU Lesser General Public+   License as published by the Free Software Foundation; either+   version 2.1 of the License, or (at your option) any later version.++   The GNU C Library is distributed in the hope that it will be useful,+   but WITHOUT ANY WARRANTY; without even the implied warranty of+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+   Lesser General Public License for more details.++   You should have received a copy of the GNU Lesser General Public+   License along with the GNU C Library; if not, see+   <http://www.gnu.org/licenses/>.  */+/* This header is separate from features.h so that the compiler can+   include it implicitly at the start of every compilation.  It must+   not itself include <features.h> or any other header that includes+   <features.h> because the implicit include comes before any feature+   test macros that may be defined in a source file before it first+   explicitly includes a system header.  GCC knows the name of this+   header in order to preinclude it.  */+/* glibc's intent is to support the IEC 559 math functionality, real+   and complex.  If the GCC (4.9 and later) predefined macros+   specifying compiler intent are available, use them to determine+   whether the overall intent is to support these features; otherwise,+   presume an older compiler has intent to support these features and+   define these macros by default.  */+/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) /+   Unicode 6.0.  */+/* We do not support C11 <threads.h>.  */+// some Enum conversion things+// an array of generic enums+var h$enums = [];+function h$initEnums() {+  for(var i=0;i<256;i++) {+    h$enums[i] = h$makeEnum(i);+  }+}+h$initStatic.push(h$initEnums);+function h$makeEnum(tag) {+  var f = function() {+    return h$stack[h$sp];+  }+  h$setObjInfo(f, 2, "Enum", [], tag+1, 0, [1], null);+  return h$c0(f);+}+// used for all non-Bool enums+function h$tagToEnum(tag) {+  if(tag >= h$enums.length) {+    return h$makeEnum(tag);+  } else {+    return h$enums[tag];+  }+}+function h$dataTag(e) {+  return (e===true)?1:((typeof e !== 'object')?0:(e.f.a-1));+}+/* Copyright (C) 1991-2014 Free Software Foundation, Inc.+   This file is part of the GNU C Library.++   The GNU C Library is free software; you can redistribute it and/or+   modify it under the terms of the GNU Lesser General Public+   License as published by the Free Software Foundation; either+   version 2.1 of the License, or (at your option) any later version.++   The GNU C Library is distributed in the hope that it will be useful,+   but WITHOUT ANY WARRANTY; without even the implied warranty of+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+   Lesser General Public License for more details.++   You should have received a copy of the GNU Lesser General Public+   License along with the GNU C Library; if not, see+   <http://www.gnu.org/licenses/>.  */+/* This header is separate from features.h so that the compiler can+   include it implicitly at the start of every compilation.  It must+   not itself include <features.h> or any other header that includes+   <features.h> because the implicit include comes before any feature+   test macros that may be defined in a source file before it first+   explicitly includes a system header.  GCC knows the name of this+   header in order to preinclude it.  */+/* glibc's intent is to support the IEC 559 math functionality, real+   and complex.  If the GCC (4.9 and later) predefined macros+   specifying compiler intent are available, use them to determine+   whether the overall intent is to support these features; otherwise,+   presume an older compiler has intent to support these features and+   define these macros by default.  */+/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) /+   Unicode 6.0.  */+/* We do not support C11 <threads.h>.  */+// weak reference support+// contains all pending finalizers+var h$finalizers = new h$Set();+// filled at scan time, weak refs with possible work to do+var h$scannedWeaks = [];+// called by the GC after marking the heap+function h$finalizeWeaks() {+    var mark = h$gcMark;+    ;+    var i, w, toFinalize = [];+    var iter = h$finalizers.iter();+    while((w = iter.next()) !== null) {+        ;+        ;+        if((w.m.m&3) !== mark) {+            iter.remove();+            toFinalize.push(w);+            ;+        }+    }+    ;+    // start a finalizer thread if any finalizers need to be run+    if(toFinalize.length > 0) {+        var t = new h$Thread();+        for(i=0;i<toFinalize.length;i++) {+            w = toFinalize[i];+            t.sp += 6;+            t.stack[t.sp-5] = 0; // mask+            t.stack[t.sp-4] = h$noop; // handler, dummy+            t.stack[t.sp-3] = h$catch_e;+            t.stack[t.sp-2] = h$ap_1_0;+            t.stack[t.sp-1] = w.finalizer;+            t.stack[t.sp] = h$return;+            w.finalizer = null;+        }+        h$wakeupThread(t);+    }+    return toFinalize;+}+// clear references for reachable weak refs with unreachable keys+function h$clearWeaks() {+    var mark = h$gcMark;+    ;+    for(var i=h$scannedWeaks.length-1;i>=0;i--) {+        var w = h$scannedWeaks[i];+        if(w.keym.m !== mark && w.val !== null) {+            ;+            w.val = null;+        }+    }+}+var h$weakFinalizerN = 0;+/** @constructor */+function h$Weak(key, val, finalizer) {+    if(typeof key !== 'object') {+        // can't attach a StableName to objects with unboxed storage+        // our weak ref will be finalized soon.+        ;+        this.keym = new h$StableName(0);+    } else {+        if(typeof key.m !== 'object') key.m = new h$StableName(key.m);+        this.keym = key.m;+    }+    ;+    this.keym = key.m;+    this.val = val;+    this.finalizer = null;+    if(finalizer !== null) {+        var fin = { m: this.keym, finalizer: finalizer, _key: ++h$weakFinalizerN };+        h$finalizers.add(fin);+        this.finalizer = fin;+    }+    this.m = 0;+//    h$scannedWeaks.push(this); // fixme debug+}+function h$makeWeak(key, val, fin) {+    ;+    return new h$Weak(key, val, fin)+}+function h$makeWeakNoFinalizer(key, val) {+    ;+    return new h$Weak(key, val, null);+}+function h$finalizeWeak(w) {+    ;+    w.val = null;+    if(w.finalizer === null || w.finalizer.finalizer === null) {+        h$ret1 = 0;+        return null;+    } else {+        var r = w.finalizer.finalizer;+        h$finalizers.remove(w.finalizer);+        w.finalizer = null;+        h$ret1 = 1;+        return r;+    }+}+/* Copyright (C) 1991-2014 Free Software Foundation, Inc.+   This file is part of the GNU C Library.++   The GNU C Library is free software; you can redistribute it and/or+   modify it under the terms of the GNU Lesser General Public+   License as published by the Free Software Foundation; either+   version 2.1 of the License, or (at your option) any later version.++   The GNU C Library is distributed in the hope that it will be useful,+   but WITHOUT ANY WARRANTY; without even the implied warranty of+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+   Lesser General Public License for more details.++   You should have received a copy of the GNU Lesser General Public+   License along with the GNU C Library; if not, see+   <http://www.gnu.org/licenses/>.  */+/* This header is separate from features.h so that the compiler can+   include it implicitly at the start of every compilation.  It must+   not itself include <features.h> or any other header that includes+   <features.h> because the implicit include comes before any feature+   test macros that may be defined in a source file before it first+   explicitly includes a system header.  GCC knows the name of this+   header in order to preinclude it.  */+/* glibc's intent is to support the IEC 559 math functionality, real+   and complex.  If the GCC (4.9 and later) predefined macros+   specifying compiler intent are available, use them to determine+   whether the overall intent is to support these features; otherwise,+   presume an older compiler has intent to support these features and+   define these macros by default.  */+/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) /+   Unicode 6.0.  */+/* We do not support C11 <threads.h>.  */+// preemptive threading support+// run gc when this much time has passed (ms)+// preempt threads after the scheduling quantum (ms)+// check sched quantum after 10*GHCJS_SCHED_CHECK calls+// yield to js after running haskell for GHCJS_BUSY_YIELD ms+// thread status+var h$threadRunning = 0;+var h$threadBlocked = 1;+var h$threadFinished = 16;+var h$threadDied = 17;+var h$threadIdN = 0;+// all threads except h$currentThread+// that are not finished/died can be found here+var h$threads = new h$Queue();+var h$blocked = new h$Set();+/** @constructor */+function h$Thread() {+    this.tid = ++h$threadIdN;+    this.status = h$threadRunning;+    this.stack = [h$done, 0, h$baseZCGHCziConcziSynczireportError, h$catch_e];+    this.sp = 3;+    this.mask = 0; // async exceptions masked (0 unmasked, 1: uninterruptible, 2: interruptible)+    this.interruptible = false; // currently in an interruptible operation+    this.excep = []; // async exceptions waiting for unmask of this thread+    this.delayed = false; // waiting for threadDelay+    this.blockedOn = null; // object on which thread is blocked+    this.retryInterrupted = null; // how to retry blocking operation when interrupted+    this.transaction = null; // for STM+    this.isSynchronous = false;+    this.continueAsync = false;+    this.m = 0; // gc mark+    this._key = this.tid; // for storing in h$Set / h$Map+}+function h$rts_getThreadId(t) {+  return t.tid;+}+function h$cmp_thread(t1,t2) {+  if(t1.tid < t2.tid) return -1;+  if(t1.tid > t2.tid) return 1;+  return 0;+}+// description of the thread, if unlabeled then just the thread id+function h$threadString(t) {+  if(t === null) {+    return "<no thread>";+  } else if(t.label) {+    var str = h$decodeUtf8z(t.label[0], t.label[1]);+    return str + " (" + t.tid + ")";+  } else {+    return (""+t.tid);+  }+}+function h$fork(a, inherit) {+  var t = new h$Thread();+  ;+  if(inherit && h$currentThread) {+    t.mask = h$currentThread.mask;+  }+  // TRACE_SCHEDULER("sched: action forked: " + a.f.n);+  t.stack[4] = h$ap_1_0;+  t.stack[5] = a;+  t.stack[6] = h$return;+  t.sp = 6;+  h$wakeupThread(t);+  return t;+}+function h$threadStatus(t) {+  h$ret1 = 1; // capability+  h$ret2 = 0; // locked+  return t.status;+}+function h$waitRead(fd) {+  h$fds[fd].waitRead.push(h$currentThread);+  h$currentThread.interruptible = true;+  h$blockThread(h$currentThread,fd,[h$waitRead,fd]);+  return h$reschedule;+}+function h$waitWrite(fd) {+  h$fds[fd].waitWrite.push(h$currentThread);+  h$currentThread.interruptible = true;+  h$blockThread(h$currentThread,fd,[h$waitWrite,fd]);+  return h$reschedule;+}+// threadDelay support:+var h$delayed = new h$HeapSet();+function h$wakeupDelayed(now) {+    while(h$delayed.size() > 0 && h$delayed.peekPrio() < now) {+        var t = h$delayed.pop();+        ;+        // might have been woken up early, don't wake up again in that case+        if(t.delayed) {+            t.delayed = false;+            h$wakeupThread(t);+        }+    }+}+function h$delayThread(time) {+  var now = Date.now();+  var ms = time/1000; // we have no microseconds in JS+  ;+  h$delayed.add(now+ms, h$currentThread);+  h$currentThread.delayed = true;+  h$blockThread(h$currentThread, h$delayed,[h$resumeDelayThread]);+  return h$reschedule;+}+function h$resumeDelayThread() {+  h$r1 = false;+  return h$stack[h$sp];+}+function h$yield() {+  h$sp += 2;+  h$stack[h$sp-1] = h$r1;+  h$stack[h$sp] = h$return;+  h$currentThread.sp = h$sp;+  return h$reschedule;+}+// raise the async exception in the thread if not masked+function h$killThread(t, ex) {+  ;+  if(t === h$currentThread) {+    // if target is self, then throw even if masked+    h$sp += 2;+    h$stack[h$sp-1] = h$r1;+    h$stack[h$sp] = h$return;+    return h$throw(ex,true);+  } else {+    ;+    if(t.mask === 0 || (t.mask === 2 && t.interruptible)) {+      if(t.stack) { // finished threads don't have a stack anymore+        h$forceWakeupThread(t);+        t.sp += 2;+        t.stack[t.sp-1] = ex;+        t.stack[t.sp] = h$raiseAsync_frame;+      }+      return h$stack ? h$stack[h$sp] : null;+    } else {+      t.excep.push([h$currentThread,ex]);+      h$blockThread(h$currentThread,t,null);+      h$currentThread.interruptible = true;+      h$sp += 2;+      h$stack[h$sp-1] = h$r1;+      h$stack[h$sp] = h$return;+      return h$reschedule;+    }+  }+}+function h$maskStatus() {+  ;+  return h$currentThread.mask;+}+function h$maskAsync(a) {+  ;+  if(h$currentThread.mask !== 2) {+    if(h$currentThread.mask === 0 && h$stack[h$sp] !== h$maskFrame && h$stack[h$sp] !== h$maskUnintFrame) {+      h$stack[++h$sp] = h$unmaskFrame;+    }+    if(h$currentThread.mask === 1) {+      h$stack[++h$sp] = h$maskUnintFrame;+    }+    h$currentThread.mask = 2;+  }+  h$r1 = a;+  return h$ap_1_0_fast();+}+function h$maskUnintAsync(a) {+  ;+  if(h$currentThread.mask !== 1) {+    if(h$currentThread.mask === 2) {+      h$stack[++h$sp] = h$maskFrame;+    } else {+      h$stack[++h$sp] = h$unmaskFrame;+    }+    h$currentThread.mask = 1;+  }+  h$r1 = a;+  return h$ap_1_0_fast();+}+function h$unmaskAsync(a) {+  ;+  if(h$currentThread.excep.length > 0) {+    h$currentThread.mask = 0;+    h$sp += 3;+    h$stack[h$sp-2] = h$ap_1_0;+    h$stack[h$sp-1] = a;+    h$stack[h$sp] = h$return;+    return h$reschedule;+  }+  if(h$currentThread.mask !== 0) {+    if(h$stack[h$sp] !== h$unmaskFrame) {+      if(h$currentThread.mask === 2) {+        h$stack[++h$sp] = h$maskFrame;+      } else {+        h$stack[++h$sp] = h$maskUnintFrame;+      }+    }+    h$currentThread.mask = 0;+  }+  h$r1 = a;+  return h$ap_1_0_fast();+}+function h$pendingAsync() {+  var t = h$currentThread;+  return (t.excep.length > 0 && (t.mask === 0 || (t.mask === 2 && t.interruptible)));+}+// post the first of the queued async exceptions to+// this thread, restore frame is in thread if alreadySuspended+function h$postAsync(alreadySuspended,next) {+    var t = h$currentThread;+    var v = t.excep.shift();+    ;+    var tposter = v[0]; // posting thread, blocked+    var ex = v[1]; // the exception+    if(v !== null && tposter !== null) {+        h$wakeupThread(tposter);+    }+    if(!alreadySuspended) {+        h$suspendCurrentThread(next);+    }+    h$sp += 2;+    h$stack[h$sp-1] = ex;+    h$stack[h$sp] = h$raiseAsync_frame;+    t.sp = h$sp;+}+// wakeup thread, thread has already been removed+// from any queues it was blocked on+function h$wakeupThread(t) {+    ;+    if(t.status === h$threadBlocked) {+        t.blockedOn = null;+        t.status = h$threadRunning;+        h$blocked.remove(t);+    }+    t.interruptible = false;+    t.retryInterrupted = null;+    h$threads.enqueue(t);+    h$startMainLoop();+}+// force wakeup, remove this thread from any+// queue it's blocked on+function h$forceWakeupThread(t) {+  ;+  if(t.status === h$threadBlocked) {+    h$removeThreadBlock(t);+    h$wakeupThread(t);+  }+}+function h$removeThreadBlock(t) {+  if(t.status === h$threadBlocked) {+    var o = t.blockedOn;+    if(o === null || o === undefined) {+      throw ("h$removeThreadBlock: blocked on null or undefined: " + h$threadString(t));+    } else if(o === h$delayed) {+      // thread delayed+      h$delayed.remove(t);+      t.delayed = false;+    } else if(o instanceof h$MVar) {+      ;+      ;+      // fixme this is rather inefficient+      var r, rq = new h$Queue();+      while((r = o.readers.dequeue()) !== null) {+          if(r !== t) rq.enqueue(r);+      }+      var w, wq = new h$Queue();+      while ((w = o.writers.dequeue()) !== null) {+        if(w[0] !== t) wq.enqueue(w);+      }+      o.readers = rq;+      o.writers = wq;+      ;+/*    } else if(o instanceof h$Fd) {+      TRACE_SCHEDULER("blocked on fd");+      h$removeFromArray(o.waitRead,t);+      h$removeFromArray(o.waitWrite,t); */+    } else if(o instanceof h$Thread) {+      ;+      // set thread (first in pair) to null, exception will still be delivered+      // but this thread not woken up again+      // fixme: are these the correct semantics?+      for(var i=0;i<o.excep.length;i++) {+        if(o.excep[i][0] === t) {+          o.excep[i][0] = null;+          break;+        }+      }+    } else if (o instanceof h$TVarsWaiting) {+      h$stmRemoveBlockedThread(o, t)+    } else if(o.f && o.f.t === h$BLACKHOLE_CLOSURE) {+      ;+      h$removeFromArray(o.d2,t);+    } else {+      throw ("h$removeThreadBlock: blocked on unknown object: " + h$collectProps(o));+    }+    if(t.retryInterrupted) {+      t.sp+=2;+      t.stack[t.sp-1] = t.retryInterrupted;+      t.stack[t.sp] = h$retryInterrupted;+    }+  }+}+function h$removeFromArray(a,o) {+  var i;+  while((i = a.indexOf(o)) !== -1) {+    a.splice(i,1);+  }+}+function h$finishThread(t) {+    ;+    t.status = h$threadFinished;+    h$blocked.remove(t);+    t.stack = null;+    t.mask = 0;+    for(var i=0;i<t.excep.length;i++) {+        var v = t.excep[i];+        var tposter = v[0];+        if(v !== null && tposter !== null) {+            h$wakeupThread(tposter);+        }+    }+    t.excep = [];+}+function h$blockThread(t,o,resume) {+    ;+    if(o === undefined || o === null) {+        throw ("h$blockThread, no block object: " + h$threadString(t));+    }+    t.status = h$threadBlocked;+    t.blockedOn = o;+    t.retryInterrupted = resume;+    t.sp = h$sp;+    h$blocked.add(t);+}+// the main scheduler, called from h$mainLoop+// returns null if nothing to do, otherwise+// the next function to run+var h$lastGc = Date.now();+var h$gcInterval = 1000; // ms+function h$scheduler(next) {+    ;+    var now = Date.now();+    h$wakeupDelayed(now);+    // find the next runnable thread in the run queue+    // remove non-runnable threads+    if(h$currentThread && h$pendingAsync()) {+        ;+        if(h$currentThread.status !== h$threadRunning) {+            h$forceWakeupThread(h$currentThread);+            h$currentThread.status = h$threadRunning;+        }+        h$postAsync(next === h$reschedule, next);+        return h$stack[h$sp];+    }+    var t;+    while(t = h$threads.dequeue()) {+        if(t.status === h$threadRunning) { break; }+    }+    // if no other runnable threads, just continue current (if runnable)+    if(t === null) {+        ;+        if(h$currentThread && h$currentThread.status === h$threadRunning) {+            // do gc after a while+            if(now - h$lastGc > h$gcInterval) {+                // save active data for the thread on its stack+                if(next !== h$reschedule && next !== null) {+                    h$suspendCurrentThread(next);+                    next = h$stack[h$sp];+                }+                var ct = h$currentThread;+                h$currentThread = null;+                h$gc(ct);+                h$currentThread = ct;+                // gc might replace the stack of a thread, so reload it+                h$stack = h$currentThread.stack;+                h$sp = h$currentThread.sp+            }+            ;+            return (next===h$reschedule || next === null)?h$stack[h$sp]:next; // just continue+        } else {+            ;+            h$currentThread = null;+            // We could set a timer here so we do a gc even if Haskell pauses for a long time.+            // However, currently this isn't necessary because h$mainLoop always sets a timer+            // before it pauses.+            if(now - h$lastGc > h$gcInterval)+                h$gc(null);+            return null; // pause the haskell runner+        }+    } else { // runnable thread in t, switch to it+        ;+        if(h$currentThread !== null) {+            if(h$currentThread.status === h$threadRunning) {+                h$threads.enqueue(h$currentThread);+            }+            // if h$reschedule called, thread takes care of suspend+            if(next !== h$reschedule && next !== null) {+                ;+                // suspend thread: push h$restoreThread stack frame+                h$suspendCurrentThread(next);+            } else {+                ;+                h$currentThread.sp = h$sp;+            }+            if(h$pendingAsync()) h$postAsync(true, next);+        } else {+            ;+        }+        // gc if needed+        if(now - h$lastGc > h$gcInterval) {+            h$currentThread = null;+            h$gc(t);+        }+        // schedule new one+        h$currentThread = t;+        h$stack = t.stack;+        h$sp = t.sp;+        ;+        // TRACE_SCHEDULER("sp thing: " + h$stack[h$sp].n);+        // h$dumpStackTop(h$stack,0,h$sp);+        return h$stack[h$sp];+    }+}+function h$scheduleMainLoop() {+    ;+    if(h$mainLoopImmediate) return;+    h$clearScheduleMainLoop();+    if(h$delayed.size() === 0) {+        if(typeof setTimeout !== 'undefined') {+            ;+            h$mainLoopTimeout = setTimeout(h$mainLoop, h$gcInterval);+        }+        return;+    }+    var now = Date.now();+    var delay = Math.min(Math.max(h$delayed.peekPrio()-now, 0), h$gcInterval);+    if(typeof setTimeout !== 'undefined') {+        if(delay >= 1) {+            ;+            // node.js 0.10.30 has trouble with non-integral delays+            h$mainLoopTimeout = setTimeout(h$mainLoop, Math.round(delay));+        } else {+            h$mainLoopImmediate = setImmediate(h$mainLoop);+        }+    }+}+var h$animationFrameMainLoop = false;+function h$clearScheduleMainLoop() {+    if(h$mainLoopTimeout) {+        clearTimeout(h$mainLoopTimeout);+        h$mainLoopTimeout = null;+    }+    if(h$mainLoopImmediate) {+        clearImmediate(h$mainLoopImmediate);+        h$mainLoopImmediate = null;+    }+    if(h$mainLoopFrame) {+        cancelAnimationFrame(h$mainLoopFrame);+        h$mainLoopFrame = null;+    }+}+function h$startMainLoop() {+    ;+    if(h$running) return;+    if(typeof setTimeout !== 'undefined') {+        if(!h$mainLoopImmediate) {+            h$clearScheduleMainLoop();+            h$mainLoopImmediate = setImmediate(h$mainLoop);+        }+    } else {+        while(true) h$mainLoop();+    }+}+var h$busyYield = 500;+var h$schedQuantum = 25;+var h$mainLoopImmediate = null; // immediate id if main loop has been scheduled immediately+var h$mainLoopTimeout = null; // timeout id if main loop has been scheduled with a timeout+var h$mainLoopFrame = null; // timeout id if main loop has been scheduled with an animation frame+var h$running = false;+var h$next = null;+function h$mainLoop() {+    if(h$running) return;+    h$clearScheduleMainLoop();+    if(h$currentThread) {+ h$scheduleMainLoop();+ return;+    }+    h$running = true;+    h$runInitStatic();+    h$currentThread = h$next;+    if(h$next !== null) {+        h$stack = h$currentThread.stack;+        h$sp = h$currentThread.sp;+    }+    var c = null;+    var count;+    var start = Date.now();+    do {+        c = h$scheduler(c);+        var scheduled = Date.now();+        if(c === null) { // no running threads+            h$next = null;+            h$running = false;+     h$currentThread = null;+            h$scheduleMainLoop();+            return;+        }+        // yield to js after h$busyYield (default value GHCJS_BUSY_YIELD)+        if(Date.now() - start > h$busyYield) {+            ;+            if(c !== h$reschedule) h$suspendCurrentThread(c);+            h$next = h$currentThread;+            h$currentThread = null;+            h$running = false;+            if(h$animationFrameMainLoop) {+                h$mainLoopFrame = requestAnimationFrame(h$mainLoop);+            } else {+                h$mainLoopImmediate = setImmediate(h$mainLoop);+            }+            return;+        }+        // preemptively schedule threads after 10*GHCJS_SCHED_CHECK calls+        // but not before the end of the scheduling quantum+        try {+            while(c !== h$reschedule && Date.now() - scheduled < h$schedQuantum) {+                count = 0;+                while(c !== h$reschedule && ++count < 1000) {+                    c = c();+                    c = c();+                    c = c();+                    c = c();+                    c = c();+                    c = c();+                    c = c();+                    c = c();+                    c = c();+                    c = c();+                }+            }+        } catch(e) {+            // uncaught exception in haskell code, kill thread+            // fixme: would we ever need to remove the thread from queues?+            h$currentThread.status = h$threadDied;+            h$currentThread.stack = null;+            h$currentThread = null;+            c = null;+            if(h$stack && h$stack[0] === h$doneMain) {+                h$stack = null;+                h$reportMainLoopException(e, true);+                h$doneMain();+                return;+            } else {+                h$stack = null;+                h$reportMainLoopException(e, false);+            }+        }+    } while(true);+}+function h$reportMainLoopException(e, isMainThread) {+    var main = isMainThread ? " main" : "";+    h$log("uncaught exception in Haskell" + main + " thread: " + e.toString());+    if(e.stack) h$log(e.stack)+}+// run the supplied IO action in a new thread+// returns immediately, thread is started in background+function h$run(a) {+  ;+  var t = h$fork(a, false);+  h$startMainLoop();+  return t;+}+// try to run the supplied IO action synchronously, running the+// thread to completion, unless it blocks,+// for example by taking an MVar or threadDelay+// returns the thing the thread blocked on, null if the thread ran to completion+// cont :: bool, continue thread asynchronously after h$runSync returns+function h$runSync(a, cont) {+  h$runInitStatic();+  var c = h$return;+  var t = new h$Thread();+  t.isSynchronous = true;+  t.continueAsync = cont;+  var ct = h$currentThread;+  var csp = h$sp;+  var cr1 = h$r1; // do we need to save more than this?+  t.stack[4] = h$ap_1_0;+  t.stack[5] = a;+  t.stack[6] = h$return;+  t.sp = 6;+  t.status = h$threadRunning;+  var excep = null;+  var blockedOn = null;+  h$currentThread = t;+  h$stack = t.stack;+  h$sp = t.sp;+  try {+    while(true) {+      ;+      while(c !== h$reschedule) {+        c = c();+        c = c();+        c = c();+        c = c();+        c = c();+        c = c();+        c = c();+        c = c();+        c = c();+        c = c();+      }+      ;+      if(t.status === h$threadFinished) {+        ;+        break;+      } else {+        ;+      }+      var b = t.blockedOn;+      if(typeof b === 'object' && b && b.f && b.f.t === h$BLACKHOLE_CLOSURE) {+        var bhThread = b.d1;+        if(bhThread === ct || bhThread === t) { // hit a blackhole from running thread or ourselves+          ;+          c = h$throw(h$baseZCControlziExceptionziBasezinonTermination, false);+        } else { // blackhole from other thread, steal it if thread is running+          // switch to that thread+          if(h$runBlackholeThreadSync(b)) {+            ;+            c = h$stack[h$sp];+          } else {+            ;+            blockedOn = b;+            throw false;+          }+        }+      } else {+        ;+        blockedOn = b;+        throw false;+      }+    }+  } catch(e) { excep = e; }+  if(ct !== null) {+    h$currentThread = ct;+    h$stack = ct.stack;+    h$sp = csp;+    h$r1 = cr1;+  } else {+    h$currentThread = null;+    h$stack = null;+  }+  if(t.status !== h$threadFinished && !cont) {+    h$removeThreadBlock(t);+    h$finishThread(t);+  }+  if(excep) {+    throw excep;+  }+  return blockedOn;+  ;+}+// run other threads synchronously until the blackhole is 'freed'+// returns true for success, false for failure, a thread blocks+function h$runBlackholeThreadSync(bh) {+  ;+  var ct = h$currentThread;+  var sp = h$sp;+  var success = false;+  var bhs = [];+  var currentBh = bh;+  // we don't handle async exceptions here, don't run threads with pending exceptions+  if(bh.d1.excep.length > 0) {+    return false;+  }+  h$currentThread = bh.d1;+  h$stack = h$currentThread.stack;+  h$sp = h$currentThread.sp;+  var c = (h$currentThread.status === h$threadRunning)?h$stack[h$sp]:h$reschedule;+  ;+  try {+    while(true) {+      while(c !== h$reschedule && currentBh.f.t === h$BLACKHOLE_CLOSURE) {+        c = c();+        c = c();+        c = c();+        c = c();+        c = c();+      }+      if(c === h$reschedule) { // perhaps new blackhole, then continue with that thread, otherwise fail+        if(typeof h$currentThread.blockedOn === 'object' &&+           h$currentThread.blockedOn.f &&+           h$currentThread.blockedOn.f.t === h$BLACKHOLE_CLOSURE) {+          ;+          bhs.push(currentBh);+          currentBh = h$currentThread.blockedOn;+          h$currentThread = h$currentThread.blockedOn.d1;+          if(h$currentThread.excep.length > 0) {+            break;+          }+          h$stack = h$currentThread.stack;+          h$sp = h$currentThread.sp;+          c = (h$currentThread.status === h$threadRunning)?h$stack[h$sp]:h$reschedule;+        } else {+          ;+          break;+        }+      } else { // blackhole updated: suspend thread and pick up the old one+        ;+        ;+        h$suspendCurrentThread(c);+        if(bhs.length > 0) {+          ;+          currentBh = bhs.pop();+          h$currentThread = currentBh.d1;+          h$stack = h$currentThread.stack;+          h$sp = h$currentThread.sp;+        } else {+          ;+          success = true;+          break;+        }+      }+    }+  } catch(e) { }+  // switch back to original thread+  h$sp = sp;+  h$stack = ct.stack;+  h$currentThread = ct;+  return success;+}+function h$syncThreadState(tid) {+  return (tid.isSynchronous ? 1 : 0) |+         (tid.continueAsync ? 2 : 0);+}+// run the supplied IO action in a main thread+// (program exits when this thread finishes)+function h$main(a) {+  var t = new h$Thread();+  //TRACE_SCHEDULER("sched: starting main thread");+    t.stack[0] = h$doneMain;+  if(!h$isBrowser) {+    t.stack[2] = h$baseZCGHCziTopHandlerzitopHandler;+  }+  t.stack[4] = h$ap_1_0;+  t.stack[5] = h$flushStdout;+  t.stack[6] = h$return;+  t.stack[7] = h$ap_1_0;+  t.stack[8] = a;+  t.stack[9] = h$return;+  t.sp = 9;+  t.label = [h$encodeUtf8("main"), 0];+  h$wakeupThread(t);+  h$startMainLoop();+  return t;+}+// MVar support+var h$mvarId = 0;+/** @constructor */+function h$MVar() {+  ;+  this.val = null;+  this.readers = new h$Queue();+  this.writers = new h$Queue();+  this.waiters = null; // waiting for a value in the MVar with ReadMVar+  this.m = 0; // gc mark+  this.id = ++h$mvarId;+}+// set the MVar to empty unless there are writers+function h$notifyMVarEmpty(mv) {+  var w = mv.writers.dequeue();+  if(w !== null) {+    var thread = w[0];+    var val = w[1];+    ;+    mv.val = val;+    // thread is null if some JavaScript outside Haskell wrote to the MVar+    if(thread !== null) {+      h$wakeupThread(thread);+    }+  } else {+    ;+    mv.val = null;+  }+  ;+}+// set the MVar to val unless there are readers+function h$notifyMVarFull(mv,val) {+  if(mv.waiters && mv.waiters.length > 0) {+    for(var i=0;i<mv.waiters.length;i++) {+      var w = mv.waiters[i];+      w.sp += 2;+      w.stack[w.sp-1] = val;+      w.stack[w.sp] = h$return;+      h$wakeupThread(w);+    }+    mv.waiters = null;+  }+  var r = mv.readers.dequeue();+  if(r !== null) {+    ;+    r.sp += 2;+    r.stack[r.sp-1] = val;+    r.stack[r.sp] = h$return;+    h$wakeupThread(r);+    mv.val = null;+  } else {+    ;+    mv.val = val;+  }+  ;+}+function h$takeMVar(mv) {+  ;+  if(mv.val !== null) {+    h$r1 = mv.val;+    h$notifyMVarEmpty(mv);+    return h$stack[h$sp];+  } else {+    mv.readers.enqueue(h$currentThread);+    h$currentThread.interruptible = true;+    h$blockThread(h$currentThread,mv,[h$takeMVar,mv]);+    return h$reschedule;+  }+}+function h$tryTakeMVar(mv) {+  ;+  if(mv.val === null) {+    h$ret1 = null;+    return 0;+  } else {+    h$ret1 = mv.val;+    h$notifyMVarEmpty(mv);+    return 1;+  }+}+function h$readMVar(mv) {+  ;+  if(mv.val === null) {+    if(mv.waiters) {+      mv.waiters.push(h$currentThread);+    } else {+      mv.waiters = [h$currentThread];+    }+    h$currentThread.interruptible = true;+    h$blockThread(h$currentThread,mv,[h$readMVar,mv]);+    return h$reschedule;+  } else {+    h$r1 = mv.val;+    return h$stack[h$sp];+  }+}+function h$putMVar(mv,val) {+  ;+  if(mv.val !== null) {+    mv.writers.enqueue([h$currentThread,val]);+    h$currentThread.interruptible = true;+    h$blockThread(h$currentThread,mv,[h$putMVar,mv,val]);+    return h$reschedule;+  } else {+    h$notifyMVarFull(mv,val);+    return h$stack[h$sp];+  }+}+function h$tryPutMVar(mv,val) {+  ;+  if(mv.val !== null) {+    return 0;+  } else {+    h$notifyMVarFull(mv,val);+    return 1;+  }+}+// box up a JavaScript value and write it to the MVar synchronously+function h$writeMVarJs1(mv,val) {+  var v = h$c1(h$data1_e, val);+  if(mv.val !== null) {+    ;+    mv.writers.enqueue([null,v]);+  } else {+    ;+    h$notifyMVarFull(mv,v);+  }+}+function h$writeMVarJs2(mv,val1,val2) {+  var v = h$c2(h$data1_e, val1, val2);+  if(mv.val !== null) {+    ;+    mv.writers.enqueue([null,v]);+  } else {+    ;+    h$notifyMVarFull(mv,v);+  }+}+// IORef support+/** @constructor */+function h$MutVar(v) {+    this.val = v;+    this.m = 0;+}+function h$atomicModifyMutVar(mv, fun) {+  var thunk = h$c2(h$ap1_e, fun, mv.val);+  mv.val = h$c1(h$select1_e, thunk);+  return h$c1(h$select2_e, thunk);+}+// Black holes and updates+// caller must save registers on stack+function h$blockOnBlackhole(c) {+  ;+  if(c.d1 === h$currentThread) {+    ;+    return h$throw(h$baseZCControlziExceptionziBasezinonTermination, false); // is this an async exception?+  }+  ;+  if(c.d2 === null) {+    c.d2 = [h$currentThread];+  } else {+    c.d2.push(h$currentThread);+  }+  h$blockThread(h$currentThread,c,[h$resumeBlockOnBlackhole,c]);+  return h$reschedule;+}+function h$resumeBlockOnBlackhole(c) {+  h$r1 = c;+  return h$ap_0_0_fast();+}+// async exception happened in a black hole, make a thunk+// to resume the computation+// var h$debugResumableId = 0;+function h$makeResumable(bh,start,end,extra) {+  var s = h$stack.slice(start,end+1);+  if(extra) {+    s = s.concat(extra);+  }+//  TRACE_SCHEDULER("making resumable " + (h$debugResumableId+1) + ", stack: ");+//  h$dumpStackTop(s,0,s.length-1);+  bh.f = h$resume_e;+  bh.d1 = s;+  bh.d2 = null;+  //  bh.d2 = ++h$debugResumableId;+}+var h$enabled_capabilities = h$newByteArray(4);+h$enabled_capabilities.i3[0] = 1;+function h$rtsSupportsBoundThreads() {+  return 0;+}+// async foreign calls+function h$mkForeignCallback(x) {+    return function() {+        if(x.mv === null) { // callback called synchronously+            x.mv = arguments;+        } else {+            h$notifyMVarFull(x.mv, h$c1(h$data1_e, arguments));+            h$mainLoop();+        }+    }+}+// event listeners through MVar+function h$makeMVarListener(mv, stopProp, stopImmProp, preventDefault) {+  var f = function(event) {+    ;+    h$writeMVarJs1(mv,event);+    if(stopProp) { event.stopPropagation(); }+    if(stopImmProp) { event.stopImmediatePropagation(); }+    if(preventDefault) { event.preventDefault(); }+  }+  f.root = mv;+  return f;+}+/* Copyright (C) 1991-2014 Free Software Foundation, Inc.+   This file is part of the GNU C Library.++   The GNU C Library is free software; you can redistribute it and/or+   modify it under the terms of the GNU Lesser General Public+   License as published by the Free Software Foundation; either+   version 2.1 of the License, or (at your option) any later version.++   The GNU C Library is distributed in the hope that it will be useful,+   but WITHOUT ANY WARRANTY; without even the implied warranty of+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+   Lesser General Public License for more details.++   You should have received a copy of the GNU Lesser General Public+   License along with the GNU C Library; if not, see+   <http://www.gnu.org/licenses/>.  */+/* This header is separate from features.h so that the compiler can+   include it implicitly at the start of every compilation.  It must+   not itself include <features.h> or any other header that includes+   <features.h> because the implicit include comes before any feature+   test macros that may be defined in a source file before it first+   explicitly includes a system header.  GCC knows the name of this+   header in order to preinclude it.  */+/* glibc's intent is to support the IEC 559 math functionality, real+   and complex.  If the GCC (4.9 and later) predefined macros+   specifying compiler intent are available, use them to determine+   whether the overall intent is to support these features; otherwise,+   presume an older compiler has intent to support these features and+   define these macros by default.  */+/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) /+   Unicode 6.0.  */+/* We do not support C11 <threads.h>.  */+// software transactional memory+var h$stmTransactionActive = 0;+var h$stmTransactionWaiting = 4;+/** @constructor */+function h$Transaction(o, parent) {+    ;+    this.action = o;+    // h$TVar -> h$WrittenTVar, transaction-local changed values+    this.tvars = new h$Map();+    // h$TVar -> h$LocalTVar, all local tvars accessed anywhere in the transaction+    this.accessed = parent===null?new h$Map():parent.accessed;+    // nonnull while running a check, contains read variables in this part of the transaction+    this.checkRead = parent===null?null:parent.checkRead;+    this.parent = parent;+    this.state = h$stmTransactionActive;+    this.invariants = []; // invariants added in this transaction+    this.m = 0; // gc mark+}+var h$stmInvariantN = 0;+/** @constructor */+function h$StmInvariant(a) {+    this.action = a;+    this._key = ++h$stmInvariantN;+}+/** @constructor */+function h$WrittenTVar(tv,v) {+    this.tvar = tv;+    this.val = v;+}+var h$TVarN = 0;+/** @constructor */+function h$TVar(v) {+    ;+    this.val = v; // current value+    this.blocked = new h$Set(); // threads that get woken up if this TVar is updated+    this.invariants = null; // invariants that use this TVar (h$Set)+    this.m = 0; // gc mark+    this._key = ++h$TVarN; // for storing in h$Map/h$Set+}+/** @constructor */+function h$TVarsWaiting(s) {+  this.tvars = s; // h$Set of TVars we're waiting on+}+/** @constructor */+function h$LocalInvariant(o) {+  this.action = o;+  this.dependencies = new h$Set();+}+// local view of a TVar+/** @constructor */+function h$LocalTVar(v) {+  ;+  this.readVal = v.val; // the value when read from environment+  this.val = v.val; // the current uncommitted value+  this.tvar = v;+}+function h$atomically(o) {+  h$p3(o, h$atomically_e, h$checkInvariants_e);+  return h$stmStartTransaction(o);+}+function h$stmStartTransaction(o) {+  ;+  var t = new h$Transaction(o, null);+  h$currentThread.transaction = t;+  h$r1 = o;+  return h$ap_1_0_fast();+}+function h$stmUpdateInvariantDependencies(inv) {+    var ii, iter = h$currentThread.transaction.checkRead.iter();+    if(inv instanceof h$LocalInvariant) {+        while((ii = iter.next()) !== null) inv.dependencies.add(ii);+    } else {+        while((ii = iter.next()) !== null) h$stmAddTVarInvariant(ii, inv);+    }+}+function h$stmAddTVarInvariant(tv, inv) {+    if(tv.invariants === null) tv.invariants = new h$Set();+    tv.invariants.add(inv);+}+// commit current transaction,+// if it's top-level, commit the TVars, otherwise commit to parent+function h$stmCommitTransaction() {+    var t = h$currentThread.transaction;+    var tvs = t.tvars;+    var wtv, i = tvs.iter();+    if(t.parent === null) { // top-level commit+        ;+ // write new value to TVars and collect blocked threads+        var thread, threadi, blockedThreads = new h$Set();+        while((wtv = i.nextVal()) !== null) {+     h$stmCommitTVar(wtv.tvar, wtv.val, blockedThreads);+ }+ // wake up all blocked threads+        threadi = blockedThreads.iter();+        while((thread = threadi.next()) !== null) {+     h$stmRemoveBlockedThread(thread.blockedOn, thread);+            h$wakeupThread(thread);+ }+ // commit our new invariants+        for(var j=0;j<t.invariants.length;j++) {+            h$stmCommitInvariant(t.invariants[j]);+        }+    } else { // commit subtransaction+        ;+        var tpvs = t.parent.tvars;+        while((wtv = i.nextVal()) !== null) tpvs.put(wtv.tvar, wtv);+        t.parent.invariants = t.parent.invariants.concat(t.invariants);+    }+    h$currentThread.transaction = t.parent;+}+function h$stmValidateTransaction() {+    var ltv, i = h$currentThread.transaction.accessed.iter();+    while((ltv = i.nextVal()) !== null) {+        if(ltv.readVal !== ltv.tvar.val) return false;+    }+    return true;+}+function h$stmAbortTransaction() {+  h$currentThread.transaction = h$currentThread.transaction.parent;+}+// add an invariant+function h$stmCheck(o) {+  h$currentThread.transaction.invariants.push(new h$LocalInvariant(o));+  return false;+}+function h$stmRetry() {+  // unwind stack to h$atomically_e or h$stmCatchRetry_e frame+  while(h$sp > 0) {+    var f = h$stack[h$sp];+    if(f === h$atomically_e || f === h$stmCatchRetry_e) {+      break;+    }+    var size;+    if(f === h$ap_gen) {+      size = ((h$stack[h$sp-1] >> 8) + 2);+    } else {+      var tag = f.gtag;+      if(tag < 0) { // dynamic size+        size = h$stack[h$sp-1];+      } else {+        size = (tag & 0xff) + 1;+      }+    }+    h$sp -= size;+  }+  // either h$sp == 0 or at a handler+  if(h$sp > 0) {+    if(f === h$atomically_e) {+      return h$stmSuspendRetry();+    } else { // h$stmCatchRetry_e+      var b = h$stack[h$sp-1];+      h$stmAbortTransaction();+      h$sp -= 2;+      h$r1 = b;+      return h$ap_1_0_fast();+    }+  } else {+    throw "h$stmRetry: STM retry outside a transaction";+  }+}+function h$stmSuspendRetry() {+    var tv, i = h$currentThread.transaction.accessed.iter();+    var tvs = new h$Set();+    while((tv = i.next()) !== null) {+        ;+        tv.blocked.add(h$currentThread);+        tvs.add(tv);+    }+    var waiting = new h$TVarsWaiting(tvs);+    h$currentThread.interruptible = true;+    h$blockThread(h$currentThread, waiting);+    h$p2(waiting, h$stmResumeRetry_e);+    return h$reschedule;+}+function h$stmCatchRetry(a,b) {+    h$currentThread.transaction = new h$Transaction(b, h$currentThread.transaction);+    h$p2(b, h$stmCatchRetry_e);+    h$r1 = a;+    return h$ap_1_0_fast();+}+function h$catchStm(a,handler) {+    h$p4(h$currentThread.transaction, h$currentThread.mask, handler, h$catchStm_e);+    h$r1 = a;+    return h$ap_1_0_fast();+}+function h$newTVar(v) {+  return new h$TVar(v);+}+function h$readTVar(tv) {+  return h$readLocalTVar(h$currentThread.transaction,tv);+}+function h$readTVarIO(tv) {+  return tv.val;+}+function h$writeTVar(tv, v) {+  h$setLocalTVar(h$currentThread.transaction, tv, v);+}+function h$sameTVar(tv1, tv2) {+  return tv1 === tv2;+}+// get the local value of the TVar in the transaction t+// tvar is added to the read set+function h$readLocalTVar(t, tv) {+  if(t.checkRead !== null) {+    t.checkRead.add(tv);+  }+  var t0 = t;+  while(t0 !== null) {+    var v = t0.tvars.get(tv);+    if(v !== null) {+      ;+      return v.val;+    }+    t0 = t0.parent;+  }+  var lv = t.accessed.get(tv);+  if(lv !== null) {+    ;+    return lv.val;+  } else {+    ;+    t.accessed.put(tv, new h$LocalTVar(tv));+    return tv.val;+  }+}+function h$setLocalTVar(t, tv, v) {+    if(!t.accessed.has(tv)) t.accessed.put(tv, new h$LocalTVar(tv));+    if(t.tvars.has(tv)) {+        t.tvars.get(tv).val = v;+    } else {+        t.tvars.put(tv, new h$WrittenTVar(tv, v))+    }+}+function h$stmCheckInvariants() {+    var t = h$currentThread.transaction;+    function addCheck(inv) {+        h$p5(inv, h$stmCheckInvariantResult_e, t, inv, h$stmCheckInvariantStart_e);+    }+    h$p2(h$r1, h$return);+    var wtv, i = t.tvars.iter();+    while((wtv = i.nextVal()) !== null) {+        ;+        var ii = wtv.tvar.invariants;+        if(ii) {+            var iv, iii = ii.iter();+            while((iv = iii.next()) !== null) addCheck(iv);+        }+    }+    for(var j=0;j<t.invariants.length;j++) {+        addCheck(t.invariants[j]);+    }+    return h$stack[h$sp];+}+function h$stmCommitTVar(tv, v, threads) {+    ;+    if(v !== tv.val) {+        var thr, iter = tv.blocked.iter();+        while((thr = iter.next()) !== null) threads.add(thr);+        tv.blocked.clear();+        tv.val = v;+    }+}+// remove the thread from the queues of the TVars in s+function h$stmRemoveBlockedThread(s, thread) {+    var tv, i = s.tvars.iter();+    while((tv = i.next()) !== null) {+        tv.blocked.remove(thread);+    }+}+function h$stmCommitInvariant(localInv) {+    var inv = new h$StmInvariant(localInv.action);+    var dep, i = localInv.dependencies.iter();+    while((dep = i.next()) !== null) {+        h$stmAddTVarInvariant(dep, inv);+    }+}+/* Copyright (C) 1991-2014 Free Software Foundation, Inc.+   This file is part of the GNU C Library.++   The GNU C Library is free software; you can redistribute it and/or+   modify it under the terms of the GNU Lesser General Public+   License as published by the Free Software Foundation; either+   version 2.1 of the License, or (at your option) any later version.++   The GNU C Library is distributed in the hope that it will be useful,+   but WITHOUT ANY WARRANTY; without even the implied warranty of+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+   Lesser General Public License for more details.++   You should have received a copy of the GNU Lesser General Public+   License along with the GNU C Library; if not, see+   <http://www.gnu.org/licenses/>.  */+/* This header is separate from features.h so that the compiler can+   include it implicitly at the start of every compilation.  It must+   not itself include <features.h> or any other header that includes+   <features.h> because the implicit include comes before any feature+   test macros that may be defined in a source file before it first+   explicitly includes a system header.  GCC knows the name of this+   header in order to preinclude it.  */+/* glibc's intent is to support the IEC 559 math functionality, real+   and complex.  If the GCC (4.9 and later) predefined macros+   specifying compiler intent are available, use them to determine+   whether the overall intent is to support these features; otherwise,+   presume an older compiler has intent to support these features and+   define these macros by default.  */+/* wchar_t uses ISO/IEC 10646 (2nd ed., published 2011-03-15) /+   Unicode 6.0.  */+/* We do not support C11 <threads.h>.  */+// static pointers+var h$static_pointer_table = null;+var h$static_pointer_table_keys = null;+function h$hs_spt_insert(key1,key2,key3,key4,ref) {+    if(!h$static_pointer_table) {+ h$static_pointer_table = [];+ h$static_pointer_table_keys = [];+    }+    if(!h$hs_spt_lookup_key(key1,key2,key3,key4)) {+        var ba = h$newByteArray(16);+        ba.i3[0] = key1;+        ba.i3[1] = key2;+        ba.i3[2] = key3;+        ba.i3[3] = key4;+ h$static_pointer_table_keys.push([ba,0]);+    }+    var s = h$static_pointer_table;+    if(!s[key1]) s[key1] = [];+    if(!s[key1][key2]) s[key1][key2] = [];+    if(!s[key1][key2][key3]) s[key1][key2][key3] = [];+    s[key1][key2][key3][key4] = ref;+}+function h$hs_spt_key_count() {+    return h$static_pointer_table_keys ?+              h$static_pointer_table_keys.length : 0;+}+function h$hs_spt_keys(tgt_d, tgt_o, n) {+    var ks = h$static_pointer_table_keys;+    if(!tgt_d.arr) tgt_d.arr = [];+    for(var i=0;(i<n&&i<ks.length);i++) tgt_d.arr[tgt_o+4*i] = ks[i];+    return Math.min(n,ks.length);+}+function h$hs_spt_lookup(key_d, key_o) {+    var i3 = key_d.i3, o = key_o >> 2;+    h$ret1 = 0;+    return h$hs_spt_lookup_key(i3[o],i3[o+1],i3[o+2],i3[o+3]);+}+function h$hs_spt_lookup_key(key1,key2,key3,key4) {+    var s = h$static_pointer_table;+    if(s && s[key1] && s[key1][key2] && s[key1][key2][key3] &&+       s[key1][key2][key3][key4]) return s[key1][key2][key3][key4];+    return null;+}+function h$c(f)+{+  var h$RTS_0 = { d1: null, d2: null, f: f, m: 0+                };+  return h$RTS_0;+};+function h$c0(f)+{+  var h$RTS_1 = { d1: null, d2: null, f: f, m: 0+                };+  return h$RTS_1;+};+function h$c1(f, x1)+{+  var h$RTS_2 = { d1: x1, d2: null, f: f, m: 0+                };+  return h$RTS_2;+};+function h$c2(f, x1, x2)+{+  var h$RTS_3 = { d1: x1, d2: x2, f: f, m: 0+                };+  return h$RTS_3;+};+function h$c3(f, x1, x2, x3)+{+  var h$RTS_4 = { d1: x1, d2: { d1: x2, d2: x3+                              }, f: f, m: 0+                };+  return h$RTS_4;+};+function h$c4(f, x1, x2, x3, x4)+{+  var h$RTS_5 = { d1: x1, d2: { d1: x2, d2: x3, d3: x4+                              }, f: f, m: 0+                };+  return h$RTS_5;+};+function h$c5(f, x1, x2, x3, x4, x5)+{+  var h$RTS_6 = { d1: x1, d2: { d1: x2, d2: x3, d3: x4, d4: x5+                              }, f: f, m: 0+                };+  return h$RTS_6;+};+function h$c6(f, x1, x2, x3, x4, x5, x6)+{+  var h$RTS_7 = { d1: x1, d2: { d1: x2, d2: x3, d3: x4, d4: x5, d5: x6+                              }, f: f, m: 0+                };+  return h$RTS_7;+};+function h$c7(f, x1, x2, x3, x4, x5, x6, x7)+{+  var h$RTS_8 = { d1: x1, d2: { d1: x2, d2: x3, d3: x4, d4: x5, d5: x6, d6: x7+                              }, f: f, m: 0+                };+  return h$RTS_8;+};+function h$c8(f, x1, x2, x3, x4, x5, x6, x7, x8)+{+  var h$RTS_9 = { d1: x1, d2: { d1: x2, d2: x3, d3: x4, d4: x5, d5: x6, d6: x7, d7: x8+                              }, f: f, m: 0+                };+  return h$RTS_9;+};+function h$c9(f, x1, x2, x3, x4, x5, x6, x7, x8, x9)+{+  var h$RTS_10 = { d1: x1, d2: { d1: x2, d2: x3, d3: x4, d4: x5, d5: x6, d6: x7, d7: x8, d8: x9+                               }, f: f, m: 0+                 };+  return h$RTS_10;+};+function h$c10(f, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)+{+  var h$RTS_11 = { d1: x1, d2: { d1: x2, d2: x3, d3: x4, d4: x5, d5: x6, d6: x7, d7: x8, d8: x9, d9: x10+                               }, f: f, m: 0+                 };+  return h$RTS_11;+};+function h$c11(f, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)+{+  var h$RTS_12 = { d1: x1, d2: { d1: x2, d10: x11, d2: x3, d3: x4, d4: x5, d5: x6, d6: x7, d7: x8, d8: x9, d9: x10+                               }, f: f, m: 0+                 };+  return h$RTS_12;+};+function h$c12(f, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)+{+  var h$RTS_13 = { d1: x1, d2: { d1: x2, d10: x11, d11: x12, d2: x3, d3: x4, d4: x5, d5: x6, d6: x7, d7: x8, d8: x9,+                                 d9: x10+                               }, f: f, m: 0+                 };+  return h$RTS_13;+};+function h$c13(f, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13)+{+  var h$RTS_14 = { d1: x1, d2: { d1: x2, d10: x11, d11: x12, d12: x13, d2: x3, d3: x4, d4: x5, d5: x6, d6: x7, d7: x8,+                                 d8: x9, d9: x10+                               }, f: f, m: 0+                 };+  return h$RTS_14;+};+function h$c14(f, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14)+{+  var h$RTS_15 = { d1: x1, d2: { d1: x2, d10: x11, d11: x12, d12: x13, d13: x14, d2: x3, d3: x4, d4: x5, d5: x6, d6: x7,+                                 d7: x8, d8: x9, d9: x10+                               }, f: f, m: 0+                 };+  return h$RTS_15;+};+function h$c15(f, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)+{+  var h$RTS_16 = { d1: x1, d2: { d1: x2, d10: x11, d11: x12, d12: x13, d13: x14, d14: x15, d2: x3, d3: x4, d4: x5, d5: x6,+                                 d6: x7, d7: x8, d8: x9, d9: x10+                               }, f: f, m: 0+                 };+  return h$RTS_16;+};+function h$c16(f, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16)+{+  var h$RTS_17 = { d1: x1, d2: { d1: x2, d10: x11, d11: x12, d12: x13, d13: x14, d14: x15, d15: x16, d2: x3, d3: x4,+                                 d4: x5, d5: x6, d6: x7, d7: x8, d8: x9, d9: x10+                               }, f: f, m: 0+                 };+  return h$RTS_17;+};+function h$c17(f, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)+{+  var h$RTS_18 = { d1: x1, d2: { d1: x2, d10: x11, d11: x12, d12: x13, d13: x14, d14: x15, d15: x16, d16: x17, d2: x3,+                                 d3: x4, d4: x5, d5: x6, d6: x7, d7: x8, d8: x9, d9: x10+                               }, f: f, m: 0+                 };+  return h$RTS_18;+};+function h$c18(f, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18)+{+  var h$RTS_19 = { d1: x1, d2: { d1: x2, d10: x11, d11: x12, d12: x13, d13: x14, d14: x15, d15: x16, d16: x17, d17: x18,+                                 d2: x3, d3: x4, d4: x5, d5: x6, d6: x7, d7: x8, d8: x9, d9: x10+                               }, f: f, m: 0+                 };+  return h$RTS_19;+};+function h$c19(f, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19)+{+  var h$RTS_20 = { d1: x1, d2: { d1: x2, d10: x11, d11: x12, d12: x13, d13: x14, d14: x15, d15: x16, d16: x17, d17: x18,+                                 d18: x19, d2: x3, d3: x4, d4: x5, d5: x6, d6: x7, d7: x8, d8: x9, d9: x10+                               }, f: f, m: 0+                 };+  return h$RTS_20;+};+function h$c20(f, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20)+{+  var h$RTS_21 = { d1: x1, d2: { d1: x2, d10: x11, d11: x12, d12: x13, d13: x14, d14: x15, d15: x16, d16: x17, d17: x18,+                                 d18: x19, d19: x20, d2: x3, d3: x4, d4: x5, d5: x6, d6: x7, d7: x8, d8: x9, d9: x10+                               }, f: f, m: 0+                 };+  return h$RTS_21;+};+function h$c21(f, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)+{+  var h$RTS_22 = { d1: x1, d2: { d1: x2, d10: x11, d11: x12, d12: x13, d13: x14, d14: x15, d15: x16, d16: x17, d17: x18,+                                 d18: x19, d19: x20, d2: x3, d20: x21, d3: x4, d4: x5, d5: x6, d6: x7, d7: x8, d8: x9, d9: x10+                               }, f: f, m: 0+                 };+  return h$RTS_22;+};+function h$c22(f, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22)+{+  var h$RTS_23 = { d1: x1, d2: { d1: x2, d10: x11, d11: x12, d12: x13, d13: x14, d14: x15, d15: x16, d16: x17, d17: x18,+                                 d18: x19, d19: x20, d2: x3, d20: x21, d21: x22, d3: x4, d4: x5, d5: x6, d6: x7, d7: x8, d8: x9, d9: x10+                               }, f: f, m: 0+                 };+  return h$RTS_23;+};+function h$c23(f, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22,+x23)+{+  var h$RTS_24 = { d1: x1, d2: { d1: x2, d10: x11, d11: x12, d12: x13, d13: x14, d14: x15, d15: x16, d16: x17, d17: x18,+                                 d18: x19, d19: x20, d2: x3, d20: x21, d21: x22, d22: x23, d3: x4, d4: x5, d5: x6, d6: x7, d7: x8, d8: x9, d9: x10+                               }, f: f, m: 0+                 };+  return h$RTS_24;+};+function h$c24(f, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22,+x23, x24)+{+  var h$RTS_25 = { d1: x1, d2: { d1: x2, d10: x11, d11: x12, d12: x13, d13: x14, d14: x15, d15: x16, d16: x17, d17: x18,+                                 d18: x19, d19: x20, d2: x3, d20: x21, d21: x22, d22: x23, d23: x24, d3: x4, d4: x5, d5: x6, d6: x7, d7: x8, d8: x9,+                                 d9: x10+                               }, f: f, m: 0+                 };+  return h$RTS_25;+};+function h$d1(d1)+{+  return { d1: d1+         };+};+function h$d2(d1, d2)+{+  return { d1: d1, d2: d2+         };+};+function h$d3(d1, d2, d3)+{+  return { d1: d1, d2: d2, d3: d3+         };+};+function h$d4(d1, d2, d3, d4)+{+  return { d1: d1, d2: d2, d3: d3, d4: d4+         };+};+function h$d5(d1, d2, d3, d4, d5)+{+  return { d1: d1, d2: d2, d3: d3, d4: d4, d5: d5+         };+};+function h$d6(d1, d2, d3, d4, d5, d6)+{+  return { d1: d1, d2: d2, d3: d3, d4: d4, d5: d5, d6: d6+         };+};+function h$d7(d1, d2, d3, d4, d5, d6, d7)+{+  return { d1: d1, d2: d2, d3: d3, d4: d4, d5: d5, d6: d6, d7: d7+         };+};+function h$d8(d1, d2, d3, d4, d5, d6, d7, d8)+{+  return { d1: d1, d2: d2, d3: d3, d4: d4, d5: d5, d6: d6, d7: d7, d8: d8+         };+};+function h$d9(d1, d2, d3, d4, d5, d6, d7, d8, d9)+{+  return { d1: d1, d2: d2, d3: d3, d4: d4, d5: d5, d6: d6, d7: d7, d8: d8, d9: d9+         };+};+function h$d10(d1, d2, d3, d4, d5, d6, d7, d8, d9, d10)+{+  return { d1: d1, d10: d10, d2: d2, d3: d3, d4: d4, d5: d5, d6: d6, d7: d7, d8: d8, d9: d9+         };+};+function h$d11(d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11)+{+  return { d1: d1, d10: d10, d11: d11, d2: d2, d3: d3, d4: d4, d5: d5, d6: d6, d7: d7, d8: d8, d9: d9+         };+};+function h$d12(d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12)+{+  return { d1: d1, d10: d10, d11: d11, d12: d12, d2: d2, d3: d3, d4: d4, d5: d5, d6: d6, d7: d7, d8: d8, d9: d9+         };+};+function h$d13(d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13)+{+  return { d1: d1, d10: d10, d11: d11, d12: d12, d13: d13, d2: d2, d3: d3, d4: d4, d5: d5, d6: d6, d7: d7, d8: d8, d9: d9+         };+};+function h$d14(d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14)+{+  return { d1: d1, d10: d10, d11: d11, d12: d12, d13: d13, d14: d14, d2: d2, d3: d3, d4: d4, d5: d5, d6: d6, d7: d7,+           d8: d8, d9: d9+         };+};+function h$d15(d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15)+{+  return { d1: d1, d10: d10, d11: d11, d12: d12, d13: d13, d14: d14, d15: d15, d2: d2, d3: d3, d4: d4, d5: d5, d6: d6,+           d7: d7, d8: d8, d9: d9+         };+};+function h$d16(d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15, d16)+{+  return { d1: d1, d10: d10, d11: d11, d12: d12, d13: d13, d14: d14, d15: d15, d16: d16, d2: d2, d3: d3, d4: d4, d5: d5,+           d6: d6, d7: d7, d8: d8, d9: d9+         };+};+function h$d17(d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15, d16, d17)+{+  return { d1: d1, d10: d10, d11: d11, d12: d12, d13: d13, d14: d14, d15: d15, d16: d16, d17: d17, d2: d2, d3: d3, d4: d4,+           d5: d5, d6: d6, d7: d7, d8: d8, d9: d9+         };+};+function h$d18(d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15, d16, d17, d18)+{+  return { d1: d1, d10: d10, d11: d11, d12: d12, d13: d13, d14: d14, d15: d15, d16: d16, d17: d17, d18: d18, d2: d2,+           d3: d3, d4: d4, d5: d5, d6: d6, d7: d7, d8: d8, d9: d9+         };+};+function h$d19(d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15, d16, d17, d18, d19)+{+  return { d1: d1, d10: d10, d11: d11, d12: d12, d13: d13, d14: d14, d15: d15, d16: d16, d17: d17, d18: d18, d19: d19,+           d2: d2, d3: d3, d4: d4, d5: d5, d6: d6, d7: d7, d8: d8, d9: d9+         };+};+function h$d20(d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15, d16, d17, d18, d19, d20)+{+  return { d1: d1, d10: d10, d11: d11, d12: d12, d13: d13, d14: d14, d15: d15, d16: d16, d17: d17, d18: d18, d19: d19,+           d2: d2, d20: d20, d3: d3, d4: d4, d5: d5, d6: d6, d7: d7, d8: d8, d9: d9+         };+};+function h$d21(d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15, d16, d17, d18, d19, d20, d21)+{+  return { d1: d1, d10: d10, d11: d11, d12: d12, d13: d13, d14: d14, d15: d15, d16: d16, d17: d17, d18: d18, d19: d19,+           d2: d2, d20: d20, d21: d21, d3: d3, d4: d4, d5: d5, d6: d6, d7: d7, d8: d8, d9: d9+         };+};+function h$d22(d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15, d16, d17, d18, d19, d20, d21, d22)+{+  return { d1: d1, d10: d10, d11: d11, d12: d12, d13: d13, d14: d14, d15: d15, d16: d16, d17: d17, d18: d18, d19: d19,+           d2: d2, d20: d20, d21: d21, d22: d22, d3: d3, d4: d4, d5: d5, d6: d6, d7: d7, d8: d8, d9: d9+         };+};+function h$d23(d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15, d16, d17, d18, d19, d20, d21, d22, d23)+{+  return { d1: d1, d10: d10, d11: d11, d12: d12, d13: d13, d14: d14, d15: d15, d16: d16, d17: d17, d18: d18, d19: d19,+           d2: d2, d20: d20, d21: d21, d22: d22, d23: d23, d3: d3, d4: d4, d5: d5, d6: d6, d7: d7, d8: d8, d9: d9+         };+};+function h$d24(d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15, d16, d17, d18, d19, d20, d21, d22, d23,+d24)+{+  return { d1: d1, d10: d10, d11: d11, d12: d12, d13: d13, d14: d14, d15: d15, d16: d16, d17: d17, d18: d18, d19: d19,+           d2: d2, d20: d20, d21: d21, d22: d22, d23: d23, d24: d24, d3: d3, d4: d4, d5: d5, d6: d6, d7: d7, d8: d8, d9: d9+         };+};+function h$resetRegisters()+{+  h$r1 = null;+  h$r2 = null;+  h$r3 = null;+  h$r4 = null;+  h$r5 = null;+  h$r6 = null;+  h$r7 = null;+  h$r8 = null;+  h$r9 = null;+  h$r10 = null;+  h$r11 = null;+  h$r12 = null;+  h$r13 = null;+  h$r14 = null;+  h$r15 = null;+  h$r16 = null;+  h$r17 = null;+  h$r18 = null;+  h$r19 = null;+  h$r20 = null;+  h$r21 = null;+  h$r22 = null;+  h$r23 = null;+  h$r24 = null;+  h$r25 = null;+  h$r26 = null;+  h$r27 = null;+  h$r28 = null;+  h$r29 = null;+  h$r30 = null;+  h$r31 = null;+  h$r32 = null;+  h$regs[0] = null;+  h$regs[1] = null;+  h$regs[2] = null;+  h$regs[3] = null;+  h$regs[4] = null;+  h$regs[5] = null;+  h$regs[6] = null;+  h$regs[7] = null;+  h$regs[8] = null;+  h$regs[9] = null;+  h$regs[10] = null;+  h$regs[11] = null;+  h$regs[12] = null;+  h$regs[13] = null;+  h$regs[14] = null;+  h$regs[15] = null;+  h$regs[16] = null;+  h$regs[17] = null;+  h$regs[18] = null;+  h$regs[19] = null;+  h$regs[20] = null;+  h$regs[21] = null;+  h$regs[22] = null;+  h$regs[23] = null;+  h$regs[24] = null;+  h$regs[25] = null;+  h$regs[26] = null;+  h$regs[27] = null;+  h$regs[28] = null;+  h$regs[29] = null;+  h$regs[30] = null;+  h$regs[31] = null;+  h$regs[32] = null;+  h$regs[33] = null;+  h$regs[34] = null;+  h$regs[35] = null;+  h$regs[36] = null;+  h$regs[37] = null;+  h$regs[38] = null;+  h$regs[39] = null;+  h$regs[40] = null;+  h$regs[41] = null;+  h$regs[42] = null;+  h$regs[43] = null;+  h$regs[44] = null;+  h$regs[45] = null;+  h$regs[46] = null;+  h$regs[47] = null;+  h$regs[48] = null;+  h$regs[49] = null;+  h$regs[50] = null;+  h$regs[51] = null;+  h$regs[52] = null;+  h$regs[53] = null;+  h$regs[54] = null;+  h$regs[55] = null;+  h$regs[56] = null;+  h$regs[57] = null;+  h$regs[58] = null;+  h$regs[59] = null;+  h$regs[60] = null;+  h$regs[61] = null;+  h$regs[62] = null;+  h$regs[63] = null;+  h$regs[64] = null;+  h$regs[65] = null;+  h$regs[66] = null;+  h$regs[67] = null;+  h$regs[68] = null;+  h$regs[69] = null;+  h$regs[70] = null;+  h$regs[71] = null;+  h$regs[72] = null;+  h$regs[73] = null;+  h$regs[74] = null;+  h$regs[75] = null;+  h$regs[76] = null;+  h$regs[77] = null;+  h$regs[78] = null;+  h$regs[79] = null;+  h$regs[80] = null;+  h$regs[81] = null;+  h$regs[82] = null;+  h$regs[83] = null;+  h$regs[84] = null;+  h$regs[85] = null;+  h$regs[86] = null;+  h$regs[87] = null;+  h$regs[88] = null;+  h$regs[89] = null;+  h$regs[90] = null;+  h$regs[91] = null;+  h$regs[92] = null;+  h$regs[93] = null;+  h$regs[94] = null;+  h$regs[95] = null;+};+function h$resetResultVars()+{+  h$ret1 = null;+  h$ret2 = null;+  h$ret3 = null;+  h$ret4 = null;+  h$ret5 = null;+  h$ret6 = null;+  h$ret7 = null;+  h$ret8 = null;+  h$ret9 = null;+  h$ret10 = null;+};+function h$p1(x1)+{+  ++h$sp;+  h$stack[(h$sp - 0)] = x1;+};+function h$p2(x1, x2)+{+  h$sp += 2;+  h$stack[(h$sp - 1)] = x1;+  h$stack[(h$sp - 0)] = x2;+};+function h$p3(x1, x2, x3)+{+  h$sp += 3;+  h$stack[(h$sp - 2)] = x1;+  h$stack[(h$sp - 1)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$p4(x1, x2, x3, x4)+{+  h$sp += 4;+  h$stack[(h$sp - 3)] = x1;+  h$stack[(h$sp - 2)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$p5(x1, x2, x3, x4, x5)+{+  h$sp += 5;+  h$stack[(h$sp - 4)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$p6(x1, x2, x3, x4, x5, x6)+{+  h$sp += 6;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 2)] = x4;+  h$stack[(h$sp - 1)] = x5;+  h$stack[(h$sp - 0)] = x6;+};+function h$p7(x1, x2, x3, x4, x5, x6, x7)+{+  h$sp += 7;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 4)] = x3;+  h$stack[(h$sp - 3)] = x4;+  h$stack[(h$sp - 2)] = x5;+  h$stack[(h$sp - 1)] = x6;+  h$stack[(h$sp - 0)] = x7;+};+function h$p8(x1, x2, x3, x4, x5, x6, x7, x8)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 6)] = x2;+  h$stack[(h$sp - 5)] = x3;+  h$stack[(h$sp - 4)] = x4;+  h$stack[(h$sp - 3)] = x5;+  h$stack[(h$sp - 2)] = x6;+  h$stack[(h$sp - 1)] = x7;+  h$stack[(h$sp - 0)] = x8;+};+function h$p9(x1, x2, x3, x4, x5, x6, x7, x8, x9)+{+  h$sp += 9;+  h$stack[(h$sp - 8)] = x1;+  h$stack[(h$sp - 7)] = x2;+  h$stack[(h$sp - 6)] = x3;+  h$stack[(h$sp - 5)] = x4;+  h$stack[(h$sp - 4)] = x5;+  h$stack[(h$sp - 3)] = x6;+  h$stack[(h$sp - 2)] = x7;+  h$stack[(h$sp - 1)] = x8;+  h$stack[(h$sp - 0)] = x9;+};+function h$p10(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)+{+  h$sp += 10;+  h$stack[(h$sp - 9)] = x1;+  h$stack[(h$sp - 8)] = x2;+  h$stack[(h$sp - 7)] = x3;+  h$stack[(h$sp - 6)] = x4;+  h$stack[(h$sp - 5)] = x5;+  h$stack[(h$sp - 4)] = x6;+  h$stack[(h$sp - 3)] = x7;+  h$stack[(h$sp - 2)] = x8;+  h$stack[(h$sp - 1)] = x9;+  h$stack[(h$sp - 0)] = x10;+};+function h$p11(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)+{+  h$sp += 11;+  h$stack[(h$sp - 10)] = x1;+  h$stack[(h$sp - 9)] = x2;+  h$stack[(h$sp - 8)] = x3;+  h$stack[(h$sp - 7)] = x4;+  h$stack[(h$sp - 6)] = x5;+  h$stack[(h$sp - 5)] = x6;+  h$stack[(h$sp - 4)] = x7;+  h$stack[(h$sp - 3)] = x8;+  h$stack[(h$sp - 2)] = x9;+  h$stack[(h$sp - 1)] = x10;+  h$stack[(h$sp - 0)] = x11;+};+function h$p12(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)+{+  h$sp += 12;+  h$stack[(h$sp - 11)] = x1;+  h$stack[(h$sp - 10)] = x2;+  h$stack[(h$sp - 9)] = x3;+  h$stack[(h$sp - 8)] = x4;+  h$stack[(h$sp - 7)] = x5;+  h$stack[(h$sp - 6)] = x6;+  h$stack[(h$sp - 5)] = x7;+  h$stack[(h$sp - 4)] = x8;+  h$stack[(h$sp - 3)] = x9;+  h$stack[(h$sp - 2)] = x10;+  h$stack[(h$sp - 1)] = x11;+  h$stack[(h$sp - 0)] = x12;+};+function h$p13(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13)+{+  h$sp += 13;+  h$stack[(h$sp - 12)] = x1;+  h$stack[(h$sp - 11)] = x2;+  h$stack[(h$sp - 10)] = x3;+  h$stack[(h$sp - 9)] = x4;+  h$stack[(h$sp - 8)] = x5;+  h$stack[(h$sp - 7)] = x6;+  h$stack[(h$sp - 6)] = x7;+  h$stack[(h$sp - 5)] = x8;+  h$stack[(h$sp - 4)] = x9;+  h$stack[(h$sp - 3)] = x10;+  h$stack[(h$sp - 2)] = x11;+  h$stack[(h$sp - 1)] = x12;+  h$stack[(h$sp - 0)] = x13;+};+function h$p14(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14)+{+  h$sp += 14;+  h$stack[(h$sp - 13)] = x1;+  h$stack[(h$sp - 12)] = x2;+  h$stack[(h$sp - 11)] = x3;+  h$stack[(h$sp - 10)] = x4;+  h$stack[(h$sp - 9)] = x5;+  h$stack[(h$sp - 8)] = x6;+  h$stack[(h$sp - 7)] = x7;+  h$stack[(h$sp - 6)] = x8;+  h$stack[(h$sp - 5)] = x9;+  h$stack[(h$sp - 4)] = x10;+  h$stack[(h$sp - 3)] = x11;+  h$stack[(h$sp - 2)] = x12;+  h$stack[(h$sp - 1)] = x13;+  h$stack[(h$sp - 0)] = x14;+};+function h$p15(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)+{+  h$sp += 15;+  h$stack[(h$sp - 14)] = x1;+  h$stack[(h$sp - 13)] = x2;+  h$stack[(h$sp - 12)] = x3;+  h$stack[(h$sp - 11)] = x4;+  h$stack[(h$sp - 10)] = x5;+  h$stack[(h$sp - 9)] = x6;+  h$stack[(h$sp - 8)] = x7;+  h$stack[(h$sp - 7)] = x8;+  h$stack[(h$sp - 6)] = x9;+  h$stack[(h$sp - 5)] = x10;+  h$stack[(h$sp - 4)] = x11;+  h$stack[(h$sp - 3)] = x12;+  h$stack[(h$sp - 2)] = x13;+  h$stack[(h$sp - 1)] = x14;+  h$stack[(h$sp - 0)] = x15;+};+function h$p16(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16)+{+  h$sp += 16;+  h$stack[(h$sp - 15)] = x1;+  h$stack[(h$sp - 14)] = x2;+  h$stack[(h$sp - 13)] = x3;+  h$stack[(h$sp - 12)] = x4;+  h$stack[(h$sp - 11)] = x5;+  h$stack[(h$sp - 10)] = x6;+  h$stack[(h$sp - 9)] = x7;+  h$stack[(h$sp - 8)] = x8;+  h$stack[(h$sp - 7)] = x9;+  h$stack[(h$sp - 6)] = x10;+  h$stack[(h$sp - 5)] = x11;+  h$stack[(h$sp - 4)] = x12;+  h$stack[(h$sp - 3)] = x13;+  h$stack[(h$sp - 2)] = x14;+  h$stack[(h$sp - 1)] = x15;+  h$stack[(h$sp - 0)] = x16;+};+function h$p17(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)+{+  h$sp += 17;+  h$stack[(h$sp - 16)] = x1;+  h$stack[(h$sp - 15)] = x2;+  h$stack[(h$sp - 14)] = x3;+  h$stack[(h$sp - 13)] = x4;+  h$stack[(h$sp - 12)] = x5;+  h$stack[(h$sp - 11)] = x6;+  h$stack[(h$sp - 10)] = x7;+  h$stack[(h$sp - 9)] = x8;+  h$stack[(h$sp - 8)] = x9;+  h$stack[(h$sp - 7)] = x10;+  h$stack[(h$sp - 6)] = x11;+  h$stack[(h$sp - 5)] = x12;+  h$stack[(h$sp - 4)] = x13;+  h$stack[(h$sp - 3)] = x14;+  h$stack[(h$sp - 2)] = x15;+  h$stack[(h$sp - 1)] = x16;+  h$stack[(h$sp - 0)] = x17;+};+function h$p18(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18)+{+  h$sp += 18;+  h$stack[(h$sp - 17)] = x1;+  h$stack[(h$sp - 16)] = x2;+  h$stack[(h$sp - 15)] = x3;+  h$stack[(h$sp - 14)] = x4;+  h$stack[(h$sp - 13)] = x5;+  h$stack[(h$sp - 12)] = x6;+  h$stack[(h$sp - 11)] = x7;+  h$stack[(h$sp - 10)] = x8;+  h$stack[(h$sp - 9)] = x9;+  h$stack[(h$sp - 8)] = x10;+  h$stack[(h$sp - 7)] = x11;+  h$stack[(h$sp - 6)] = x12;+  h$stack[(h$sp - 5)] = x13;+  h$stack[(h$sp - 4)] = x14;+  h$stack[(h$sp - 3)] = x15;+  h$stack[(h$sp - 2)] = x16;+  h$stack[(h$sp - 1)] = x17;+  h$stack[(h$sp - 0)] = x18;+};+function h$p19(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19)+{+  h$sp += 19;+  h$stack[(h$sp - 18)] = x1;+  h$stack[(h$sp - 17)] = x2;+  h$stack[(h$sp - 16)] = x3;+  h$stack[(h$sp - 15)] = x4;+  h$stack[(h$sp - 14)] = x5;+  h$stack[(h$sp - 13)] = x6;+  h$stack[(h$sp - 12)] = x7;+  h$stack[(h$sp - 11)] = x8;+  h$stack[(h$sp - 10)] = x9;+  h$stack[(h$sp - 9)] = x10;+  h$stack[(h$sp - 8)] = x11;+  h$stack[(h$sp - 7)] = x12;+  h$stack[(h$sp - 6)] = x13;+  h$stack[(h$sp - 5)] = x14;+  h$stack[(h$sp - 4)] = x15;+  h$stack[(h$sp - 3)] = x16;+  h$stack[(h$sp - 2)] = x17;+  h$stack[(h$sp - 1)] = x18;+  h$stack[(h$sp - 0)] = x19;+};+function h$p20(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20)+{+  h$sp += 20;+  h$stack[(h$sp - 19)] = x1;+  h$stack[(h$sp - 18)] = x2;+  h$stack[(h$sp - 17)] = x3;+  h$stack[(h$sp - 16)] = x4;+  h$stack[(h$sp - 15)] = x5;+  h$stack[(h$sp - 14)] = x6;+  h$stack[(h$sp - 13)] = x7;+  h$stack[(h$sp - 12)] = x8;+  h$stack[(h$sp - 11)] = x9;+  h$stack[(h$sp - 10)] = x10;+  h$stack[(h$sp - 9)] = x11;+  h$stack[(h$sp - 8)] = x12;+  h$stack[(h$sp - 7)] = x13;+  h$stack[(h$sp - 6)] = x14;+  h$stack[(h$sp - 5)] = x15;+  h$stack[(h$sp - 4)] = x16;+  h$stack[(h$sp - 3)] = x17;+  h$stack[(h$sp - 2)] = x18;+  h$stack[(h$sp - 1)] = x19;+  h$stack[(h$sp - 0)] = x20;+};+function h$p21(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)+{+  h$sp += 21;+  h$stack[(h$sp - 20)] = x1;+  h$stack[(h$sp - 19)] = x2;+  h$stack[(h$sp - 18)] = x3;+  h$stack[(h$sp - 17)] = x4;+  h$stack[(h$sp - 16)] = x5;+  h$stack[(h$sp - 15)] = x6;+  h$stack[(h$sp - 14)] = x7;+  h$stack[(h$sp - 13)] = x8;+  h$stack[(h$sp - 12)] = x9;+  h$stack[(h$sp - 11)] = x10;+  h$stack[(h$sp - 10)] = x11;+  h$stack[(h$sp - 9)] = x12;+  h$stack[(h$sp - 8)] = x13;+  h$stack[(h$sp - 7)] = x14;+  h$stack[(h$sp - 6)] = x15;+  h$stack[(h$sp - 5)] = x16;+  h$stack[(h$sp - 4)] = x17;+  h$stack[(h$sp - 3)] = x18;+  h$stack[(h$sp - 2)] = x19;+  h$stack[(h$sp - 1)] = x20;+  h$stack[(h$sp - 0)] = x21;+};+function h$p22(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22)+{+  h$sp += 22;+  h$stack[(h$sp - 21)] = x1;+  h$stack[(h$sp - 20)] = x2;+  h$stack[(h$sp - 19)] = x3;+  h$stack[(h$sp - 18)] = x4;+  h$stack[(h$sp - 17)] = x5;+  h$stack[(h$sp - 16)] = x6;+  h$stack[(h$sp - 15)] = x7;+  h$stack[(h$sp - 14)] = x8;+  h$stack[(h$sp - 13)] = x9;+  h$stack[(h$sp - 12)] = x10;+  h$stack[(h$sp - 11)] = x11;+  h$stack[(h$sp - 10)] = x12;+  h$stack[(h$sp - 9)] = x13;+  h$stack[(h$sp - 8)] = x14;+  h$stack[(h$sp - 7)] = x15;+  h$stack[(h$sp - 6)] = x16;+  h$stack[(h$sp - 5)] = x17;+  h$stack[(h$sp - 4)] = x18;+  h$stack[(h$sp - 3)] = x19;+  h$stack[(h$sp - 2)] = x20;+  h$stack[(h$sp - 1)] = x21;+  h$stack[(h$sp - 0)] = x22;+};+function h$p23(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23)+{+  h$sp += 23;+  h$stack[(h$sp - 22)] = x1;+  h$stack[(h$sp - 21)] = x2;+  h$stack[(h$sp - 20)] = x3;+  h$stack[(h$sp - 19)] = x4;+  h$stack[(h$sp - 18)] = x5;+  h$stack[(h$sp - 17)] = x6;+  h$stack[(h$sp - 16)] = x7;+  h$stack[(h$sp - 15)] = x8;+  h$stack[(h$sp - 14)] = x9;+  h$stack[(h$sp - 13)] = x10;+  h$stack[(h$sp - 12)] = x11;+  h$stack[(h$sp - 11)] = x12;+  h$stack[(h$sp - 10)] = x13;+  h$stack[(h$sp - 9)] = x14;+  h$stack[(h$sp - 8)] = x15;+  h$stack[(h$sp - 7)] = x16;+  h$stack[(h$sp - 6)] = x17;+  h$stack[(h$sp - 5)] = x18;+  h$stack[(h$sp - 4)] = x19;+  h$stack[(h$sp - 3)] = x20;+  h$stack[(h$sp - 2)] = x21;+  h$stack[(h$sp - 1)] = x22;+  h$stack[(h$sp - 0)] = x23;+};+function h$p24(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23,+x24)+{+  h$sp += 24;+  h$stack[(h$sp - 23)] = x1;+  h$stack[(h$sp - 22)] = x2;+  h$stack[(h$sp - 21)] = x3;+  h$stack[(h$sp - 20)] = x4;+  h$stack[(h$sp - 19)] = x5;+  h$stack[(h$sp - 18)] = x6;+  h$stack[(h$sp - 17)] = x7;+  h$stack[(h$sp - 16)] = x8;+  h$stack[(h$sp - 15)] = x9;+  h$stack[(h$sp - 14)] = x10;+  h$stack[(h$sp - 13)] = x11;+  h$stack[(h$sp - 12)] = x12;+  h$stack[(h$sp - 11)] = x13;+  h$stack[(h$sp - 10)] = x14;+  h$stack[(h$sp - 9)] = x15;+  h$stack[(h$sp - 8)] = x16;+  h$stack[(h$sp - 7)] = x17;+  h$stack[(h$sp - 6)] = x18;+  h$stack[(h$sp - 5)] = x19;+  h$stack[(h$sp - 4)] = x20;+  h$stack[(h$sp - 3)] = x21;+  h$stack[(h$sp - 2)] = x22;+  h$stack[(h$sp - 1)] = x23;+  h$stack[(h$sp - 0)] = x24;+};+function h$p25(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23,+x24, x25)+{+  h$sp += 25;+  h$stack[(h$sp - 24)] = x1;+  h$stack[(h$sp - 23)] = x2;+  h$stack[(h$sp - 22)] = x3;+  h$stack[(h$sp - 21)] = x4;+  h$stack[(h$sp - 20)] = x5;+  h$stack[(h$sp - 19)] = x6;+  h$stack[(h$sp - 18)] = x7;+  h$stack[(h$sp - 17)] = x8;+  h$stack[(h$sp - 16)] = x9;+  h$stack[(h$sp - 15)] = x10;+  h$stack[(h$sp - 14)] = x11;+  h$stack[(h$sp - 13)] = x12;+  h$stack[(h$sp - 12)] = x13;+  h$stack[(h$sp - 11)] = x14;+  h$stack[(h$sp - 10)] = x15;+  h$stack[(h$sp - 9)] = x16;+  h$stack[(h$sp - 8)] = x17;+  h$stack[(h$sp - 7)] = x18;+  h$stack[(h$sp - 6)] = x19;+  h$stack[(h$sp - 5)] = x20;+  h$stack[(h$sp - 4)] = x21;+  h$stack[(h$sp - 3)] = x22;+  h$stack[(h$sp - 2)] = x23;+  h$stack[(h$sp - 1)] = x24;+  h$stack[(h$sp - 0)] = x25;+};+function h$p26(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23,+x24, x25, x26)+{+  h$sp += 26;+  h$stack[(h$sp - 25)] = x1;+  h$stack[(h$sp - 24)] = x2;+  h$stack[(h$sp - 23)] = x3;+  h$stack[(h$sp - 22)] = x4;+  h$stack[(h$sp - 21)] = x5;+  h$stack[(h$sp - 20)] = x6;+  h$stack[(h$sp - 19)] = x7;+  h$stack[(h$sp - 18)] = x8;+  h$stack[(h$sp - 17)] = x9;+  h$stack[(h$sp - 16)] = x10;+  h$stack[(h$sp - 15)] = x11;+  h$stack[(h$sp - 14)] = x12;+  h$stack[(h$sp - 13)] = x13;+  h$stack[(h$sp - 12)] = x14;+  h$stack[(h$sp - 11)] = x15;+  h$stack[(h$sp - 10)] = x16;+  h$stack[(h$sp - 9)] = x17;+  h$stack[(h$sp - 8)] = x18;+  h$stack[(h$sp - 7)] = x19;+  h$stack[(h$sp - 6)] = x20;+  h$stack[(h$sp - 5)] = x21;+  h$stack[(h$sp - 4)] = x22;+  h$stack[(h$sp - 3)] = x23;+  h$stack[(h$sp - 2)] = x24;+  h$stack[(h$sp - 1)] = x25;+  h$stack[(h$sp - 0)] = x26;+};+function h$p27(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23,+x24, x25, x26, x27)+{+  h$sp += 27;+  h$stack[(h$sp - 26)] = x1;+  h$stack[(h$sp - 25)] = x2;+  h$stack[(h$sp - 24)] = x3;+  h$stack[(h$sp - 23)] = x4;+  h$stack[(h$sp - 22)] = x5;+  h$stack[(h$sp - 21)] = x6;+  h$stack[(h$sp - 20)] = x7;+  h$stack[(h$sp - 19)] = x8;+  h$stack[(h$sp - 18)] = x9;+  h$stack[(h$sp - 17)] = x10;+  h$stack[(h$sp - 16)] = x11;+  h$stack[(h$sp - 15)] = x12;+  h$stack[(h$sp - 14)] = x13;+  h$stack[(h$sp - 13)] = x14;+  h$stack[(h$sp - 12)] = x15;+  h$stack[(h$sp - 11)] = x16;+  h$stack[(h$sp - 10)] = x17;+  h$stack[(h$sp - 9)] = x18;+  h$stack[(h$sp - 8)] = x19;+  h$stack[(h$sp - 7)] = x20;+  h$stack[(h$sp - 6)] = x21;+  h$stack[(h$sp - 5)] = x22;+  h$stack[(h$sp - 4)] = x23;+  h$stack[(h$sp - 3)] = x24;+  h$stack[(h$sp - 2)] = x25;+  h$stack[(h$sp - 1)] = x26;+  h$stack[(h$sp - 0)] = x27;+};+function h$p28(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23,+x24, x25, x26, x27, x28)+{+  h$sp += 28;+  h$stack[(h$sp - 27)] = x1;+  h$stack[(h$sp - 26)] = x2;+  h$stack[(h$sp - 25)] = x3;+  h$stack[(h$sp - 24)] = x4;+  h$stack[(h$sp - 23)] = x5;+  h$stack[(h$sp - 22)] = x6;+  h$stack[(h$sp - 21)] = x7;+  h$stack[(h$sp - 20)] = x8;+  h$stack[(h$sp - 19)] = x9;+  h$stack[(h$sp - 18)] = x10;+  h$stack[(h$sp - 17)] = x11;+  h$stack[(h$sp - 16)] = x12;+  h$stack[(h$sp - 15)] = x13;+  h$stack[(h$sp - 14)] = x14;+  h$stack[(h$sp - 13)] = x15;+  h$stack[(h$sp - 12)] = x16;+  h$stack[(h$sp - 11)] = x17;+  h$stack[(h$sp - 10)] = x18;+  h$stack[(h$sp - 9)] = x19;+  h$stack[(h$sp - 8)] = x20;+  h$stack[(h$sp - 7)] = x21;+  h$stack[(h$sp - 6)] = x22;+  h$stack[(h$sp - 5)] = x23;+  h$stack[(h$sp - 4)] = x24;+  h$stack[(h$sp - 3)] = x25;+  h$stack[(h$sp - 2)] = x26;+  h$stack[(h$sp - 1)] = x27;+  h$stack[(h$sp - 0)] = x28;+};+function h$p29(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23,+x24, x25, x26, x27, x28, x29)+{+  h$sp += 29;+  h$stack[(h$sp - 28)] = x1;+  h$stack[(h$sp - 27)] = x2;+  h$stack[(h$sp - 26)] = x3;+  h$stack[(h$sp - 25)] = x4;+  h$stack[(h$sp - 24)] = x5;+  h$stack[(h$sp - 23)] = x6;+  h$stack[(h$sp - 22)] = x7;+  h$stack[(h$sp - 21)] = x8;+  h$stack[(h$sp - 20)] = x9;+  h$stack[(h$sp - 19)] = x10;+  h$stack[(h$sp - 18)] = x11;+  h$stack[(h$sp - 17)] = x12;+  h$stack[(h$sp - 16)] = x13;+  h$stack[(h$sp - 15)] = x14;+  h$stack[(h$sp - 14)] = x15;+  h$stack[(h$sp - 13)] = x16;+  h$stack[(h$sp - 12)] = x17;+  h$stack[(h$sp - 11)] = x18;+  h$stack[(h$sp - 10)] = x19;+  h$stack[(h$sp - 9)] = x20;+  h$stack[(h$sp - 8)] = x21;+  h$stack[(h$sp - 7)] = x22;+  h$stack[(h$sp - 6)] = x23;+  h$stack[(h$sp - 5)] = x24;+  h$stack[(h$sp - 4)] = x25;+  h$stack[(h$sp - 3)] = x26;+  h$stack[(h$sp - 2)] = x27;+  h$stack[(h$sp - 1)] = x28;+  h$stack[(h$sp - 0)] = x29;+};+function h$p30(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23,+x24, x25, x26, x27, x28, x29, x30)+{+  h$sp += 30;+  h$stack[(h$sp - 29)] = x1;+  h$stack[(h$sp - 28)] = x2;+  h$stack[(h$sp - 27)] = x3;+  h$stack[(h$sp - 26)] = x4;+  h$stack[(h$sp - 25)] = x5;+  h$stack[(h$sp - 24)] = x6;+  h$stack[(h$sp - 23)] = x7;+  h$stack[(h$sp - 22)] = x8;+  h$stack[(h$sp - 21)] = x9;+  h$stack[(h$sp - 20)] = x10;+  h$stack[(h$sp - 19)] = x11;+  h$stack[(h$sp - 18)] = x12;+  h$stack[(h$sp - 17)] = x13;+  h$stack[(h$sp - 16)] = x14;+  h$stack[(h$sp - 15)] = x15;+  h$stack[(h$sp - 14)] = x16;+  h$stack[(h$sp - 13)] = x17;+  h$stack[(h$sp - 12)] = x18;+  h$stack[(h$sp - 11)] = x19;+  h$stack[(h$sp - 10)] = x20;+  h$stack[(h$sp - 9)] = x21;+  h$stack[(h$sp - 8)] = x22;+  h$stack[(h$sp - 7)] = x23;+  h$stack[(h$sp - 6)] = x24;+  h$stack[(h$sp - 5)] = x25;+  h$stack[(h$sp - 4)] = x26;+  h$stack[(h$sp - 3)] = x27;+  h$stack[(h$sp - 2)] = x28;+  h$stack[(h$sp - 1)] = x29;+  h$stack[(h$sp - 0)] = x30;+};+function h$p31(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23,+x24, x25, x26, x27, x28, x29, x30, x31)+{+  h$sp += 31;+  h$stack[(h$sp - 30)] = x1;+  h$stack[(h$sp - 29)] = x2;+  h$stack[(h$sp - 28)] = x3;+  h$stack[(h$sp - 27)] = x4;+  h$stack[(h$sp - 26)] = x5;+  h$stack[(h$sp - 25)] = x6;+  h$stack[(h$sp - 24)] = x7;+  h$stack[(h$sp - 23)] = x8;+  h$stack[(h$sp - 22)] = x9;+  h$stack[(h$sp - 21)] = x10;+  h$stack[(h$sp - 20)] = x11;+  h$stack[(h$sp - 19)] = x12;+  h$stack[(h$sp - 18)] = x13;+  h$stack[(h$sp - 17)] = x14;+  h$stack[(h$sp - 16)] = x15;+  h$stack[(h$sp - 15)] = x16;+  h$stack[(h$sp - 14)] = x17;+  h$stack[(h$sp - 13)] = x18;+  h$stack[(h$sp - 12)] = x19;+  h$stack[(h$sp - 11)] = x20;+  h$stack[(h$sp - 10)] = x21;+  h$stack[(h$sp - 9)] = x22;+  h$stack[(h$sp - 8)] = x23;+  h$stack[(h$sp - 7)] = x24;+  h$stack[(h$sp - 6)] = x25;+  h$stack[(h$sp - 5)] = x26;+  h$stack[(h$sp - 4)] = x27;+  h$stack[(h$sp - 3)] = x28;+  h$stack[(h$sp - 2)] = x29;+  h$stack[(h$sp - 1)] = x30;+  h$stack[(h$sp - 0)] = x31;+};+function h$p32(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23,+x24, x25, x26, x27, x28, x29, x30, x31, x32)+{+  h$sp += 32;+  h$stack[(h$sp - 31)] = x1;+  h$stack[(h$sp - 30)] = x2;+  h$stack[(h$sp - 29)] = x3;+  h$stack[(h$sp - 28)] = x4;+  h$stack[(h$sp - 27)] = x5;+  h$stack[(h$sp - 26)] = x6;+  h$stack[(h$sp - 25)] = x7;+  h$stack[(h$sp - 24)] = x8;+  h$stack[(h$sp - 23)] = x9;+  h$stack[(h$sp - 22)] = x10;+  h$stack[(h$sp - 21)] = x11;+  h$stack[(h$sp - 20)] = x12;+  h$stack[(h$sp - 19)] = x13;+  h$stack[(h$sp - 18)] = x14;+  h$stack[(h$sp - 17)] = x15;+  h$stack[(h$sp - 16)] = x16;+  h$stack[(h$sp - 15)] = x17;+  h$stack[(h$sp - 14)] = x18;+  h$stack[(h$sp - 13)] = x19;+  h$stack[(h$sp - 12)] = x20;+  h$stack[(h$sp - 11)] = x21;+  h$stack[(h$sp - 10)] = x22;+  h$stack[(h$sp - 9)] = x23;+  h$stack[(h$sp - 8)] = x24;+  h$stack[(h$sp - 7)] = x25;+  h$stack[(h$sp - 6)] = x26;+  h$stack[(h$sp - 5)] = x27;+  h$stack[(h$sp - 4)] = x28;+  h$stack[(h$sp - 3)] = x29;+  h$stack[(h$sp - 2)] = x30;+  h$stack[(h$sp - 1)] = x31;+  h$stack[(h$sp - 0)] = x32;+};+function h$pp2(x1)+{+  h$sp += 2;+  h$stack[(h$sp - 0)] = x1;+};+function h$pp4(x1)+{+  h$sp += 3;+  h$stack[(h$sp - 0)] = x1;+};+function h$pp5(x1, x2)+{+  h$sp += 3;+  h$stack[(h$sp - 2)] = x1;+  h$stack[(h$sp - 0)] = x2;+};+function h$pp6(x1, x2)+{+  h$sp += 3;+  h$stack[(h$sp - 1)] = x1;+  h$stack[(h$sp - 0)] = x2;+};+function h$pp8(x1)+{+  h$sp += 4;+  h$stack[(h$sp - 0)] = x1;+};+function h$pp9(x1, x2)+{+  h$sp += 4;+  h$stack[(h$sp - 3)] = x1;+  h$stack[(h$sp - 0)] = x2;+};+function h$pp10(x1, x2)+{+  h$sp += 4;+  h$stack[(h$sp - 2)] = x1;+  h$stack[(h$sp - 0)] = x2;+};+function h$pp11(x1, x2, x3)+{+  h$sp += 4;+  h$stack[(h$sp - 3)] = x1;+  h$stack[(h$sp - 2)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp12(x1, x2)+{+  h$sp += 4;+  h$stack[(h$sp - 1)] = x1;+  h$stack[(h$sp - 0)] = x2;+};+function h$pp13(x1, x2, x3)+{+  h$sp += 4;+  h$stack[(h$sp - 3)] = x1;+  h$stack[(h$sp - 1)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp14(x1, x2, x3)+{+  h$sp += 4;+  h$stack[(h$sp - 2)] = x1;+  h$stack[(h$sp - 1)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp16(x1)+{+  h$sp += 5;+  h$stack[(h$sp - 0)] = x1;+};+function h$pp17(x1, x2)+{+  h$sp += 5;+  h$stack[(h$sp - 4)] = x1;+  h$stack[(h$sp - 0)] = x2;+};+function h$pp18(x1, x2)+{+  h$sp += 5;+  h$stack[(h$sp - 3)] = x1;+  h$stack[(h$sp - 0)] = x2;+};+function h$pp19(x1, x2, x3)+{+  h$sp += 5;+  h$stack[(h$sp - 4)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp20(x1, x2)+{+  h$sp += 5;+  h$stack[(h$sp - 2)] = x1;+  h$stack[(h$sp - 0)] = x2;+};+function h$pp21(x1, x2, x3)+{+  h$sp += 5;+  h$stack[(h$sp - 4)] = x1;+  h$stack[(h$sp - 2)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp22(x1, x2, x3)+{+  h$sp += 5;+  h$stack[(h$sp - 3)] = x1;+  h$stack[(h$sp - 2)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp23(x1, x2, x3, x4)+{+  h$sp += 5;+  h$stack[(h$sp - 4)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp24(x1, x2)+{+  h$sp += 5;+  h$stack[(h$sp - 1)] = x1;+  h$stack[(h$sp - 0)] = x2;+};+function h$pp25(x1, x2, x3)+{+  h$sp += 5;+  h$stack[(h$sp - 4)] = x1;+  h$stack[(h$sp - 1)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp26(x1, x2, x3)+{+  h$sp += 5;+  h$stack[(h$sp - 3)] = x1;+  h$stack[(h$sp - 1)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp27(x1, x2, x3, x4)+{+  h$sp += 5;+  h$stack[(h$sp - 4)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp28(x1, x2, x3)+{+  h$sp += 5;+  h$stack[(h$sp - 2)] = x1;+  h$stack[(h$sp - 1)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp29(x1, x2, x3, x4)+{+  h$sp += 5;+  h$stack[(h$sp - 4)] = x1;+  h$stack[(h$sp - 2)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp30(x1, x2, x3, x4)+{+  h$sp += 5;+  h$stack[(h$sp - 3)] = x1;+  h$stack[(h$sp - 2)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp32(x1)+{+  h$sp += 6;+  h$stack[(h$sp - 0)] = x1;+};+function h$pp33(x1, x2)+{+  h$sp += 6;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 0)] = x2;+};+function h$pp34(x1, x2)+{+  h$sp += 6;+  h$stack[(h$sp - 4)] = x1;+  h$stack[(h$sp - 0)] = x2;+};+function h$pp35(x1, x2, x3)+{+  h$sp += 6;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp36(x1, x2)+{+  h$sp += 6;+  h$stack[(h$sp - 3)] = x1;+  h$stack[(h$sp - 0)] = x2;+};+function h$pp37(x1, x2, x3)+{+  h$sp += 6;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp38(x1, x2, x3)+{+  h$sp += 6;+  h$stack[(h$sp - 4)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp39(x1, x2, x3, x4)+{+  h$sp += 6;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp40(x1, x2)+{+  h$sp += 6;+  h$stack[(h$sp - 2)] = x1;+  h$stack[(h$sp - 0)] = x2;+};+function h$pp41(x1, x2, x3)+{+  h$sp += 6;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 2)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp42(x1, x2, x3)+{+  h$sp += 6;+  h$stack[(h$sp - 4)] = x1;+  h$stack[(h$sp - 2)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp43(x1, x2, x3, x4)+{+  h$sp += 6;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp44(x1, x2, x3)+{+  h$sp += 6;+  h$stack[(h$sp - 3)] = x1;+  h$stack[(h$sp - 2)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp45(x1, x2, x3, x4)+{+  h$sp += 6;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp46(x1, x2, x3, x4)+{+  h$sp += 6;+  h$stack[(h$sp - 4)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp47(x1, x2, x3, x4, x5)+{+  h$sp += 6;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 2)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp48(x1, x2)+{+  h$sp += 6;+  h$stack[(h$sp - 1)] = x1;+  h$stack[(h$sp - 0)] = x2;+};+function h$pp49(x1, x2, x3)+{+  h$sp += 6;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 1)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp50(x1, x2, x3)+{+  h$sp += 6;+  h$stack[(h$sp - 4)] = x1;+  h$stack[(h$sp - 1)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp51(x1, x2, x3, x4)+{+  h$sp += 6;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp52(x1, x2, x3)+{+  h$sp += 6;+  h$stack[(h$sp - 3)] = x1;+  h$stack[(h$sp - 1)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp53(x1, x2, x3, x4)+{+  h$sp += 6;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp54(x1, x2, x3, x4)+{+  h$sp += 6;+  h$stack[(h$sp - 4)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp55(x1, x2, x3, x4, x5)+{+  h$sp += 6;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp56(x1, x2, x3)+{+  h$sp += 6;+  h$stack[(h$sp - 2)] = x1;+  h$stack[(h$sp - 1)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp57(x1, x2, x3, x4)+{+  h$sp += 6;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 2)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp58(x1, x2, x3, x4)+{+  h$sp += 6;+  h$stack[(h$sp - 4)] = x1;+  h$stack[(h$sp - 2)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp59(x1, x2, x3, x4, x5)+{+  h$sp += 6;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp60(x1, x2, x3, x4)+{+  h$sp += 6;+  h$stack[(h$sp - 3)] = x1;+  h$stack[(h$sp - 2)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp61(x1, x2, x3, x4, x5)+{+  h$sp += 6;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp62(x1, x2, x3, x4, x5)+{+  h$sp += 6;+  h$stack[(h$sp - 4)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp64(x1)+{+  h$sp += 7;+  h$stack[(h$sp - 0)] = x1;+};+function h$pp65(x1, x2)+{+  h$sp += 7;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 0)] = x2;+};+function h$pp66(x1, x2)+{+  h$sp += 7;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 0)] = x2;+};+function h$pp67(x1, x2, x3)+{+  h$sp += 7;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp68(x1, x2)+{+  h$sp += 7;+  h$stack[(h$sp - 4)] = x1;+  h$stack[(h$sp - 0)] = x2;+};+function h$pp69(x1, x2, x3)+{+  h$sp += 7;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp70(x1, x2, x3)+{+  h$sp += 7;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp71(x1, x2, x3, x4)+{+  h$sp += 7;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 4)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp72(x1, x2)+{+  h$sp += 7;+  h$stack[(h$sp - 3)] = x1;+  h$stack[(h$sp - 0)] = x2;+};+function h$pp73(x1, x2, x3)+{+  h$sp += 7;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp74(x1, x2, x3)+{+  h$sp += 7;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp75(x1, x2, x3, x4)+{+  h$sp += 7;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp76(x1, x2, x3)+{+  h$sp += 7;+  h$stack[(h$sp - 4)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp77(x1, x2, x3, x4)+{+  h$sp += 7;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp78(x1, x2, x3, x4)+{+  h$sp += 7;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp79(x1, x2, x3, x4, x5)+{+  h$sp += 7;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 4)] = x3;+  h$stack[(h$sp - 3)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp80(x1, x2)+{+  h$sp += 7;+  h$stack[(h$sp - 2)] = x1;+  h$stack[(h$sp - 0)] = x2;+};+function h$pp81(x1, x2, x3)+{+  h$sp += 7;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 2)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp82(x1, x2, x3)+{+  h$sp += 7;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 2)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp83(x1, x2, x3, x4)+{+  h$sp += 7;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp84(x1, x2, x3)+{+  h$sp += 7;+  h$stack[(h$sp - 4)] = x1;+  h$stack[(h$sp - 2)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp85(x1, x2, x3, x4)+{+  h$sp += 7;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp86(x1, x2, x3, x4)+{+  h$sp += 7;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp87(x1, x2, x3, x4, x5)+{+  h$sp += 7;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 4)] = x3;+  h$stack[(h$sp - 2)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp88(x1, x2, x3)+{+  h$sp += 7;+  h$stack[(h$sp - 3)] = x1;+  h$stack[(h$sp - 2)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp89(x1, x2, x3, x4)+{+  h$sp += 7;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp90(x1, x2, x3, x4)+{+  h$sp += 7;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp91(x1, x2, x3, x4, x5)+{+  h$sp += 7;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 2)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp92(x1, x2, x3, x4)+{+  h$sp += 7;+  h$stack[(h$sp - 4)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp93(x1, x2, x3, x4, x5)+{+  h$sp += 7;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 2)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp94(x1, x2, x3, x4, x5)+{+  h$sp += 7;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 2)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp95(x1, x2, x3, x4, x5, x6)+{+  h$sp += 7;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 4)] = x3;+  h$stack[(h$sp - 3)] = x4;+  h$stack[(h$sp - 2)] = x5;+  h$stack[(h$sp - 0)] = x6;+};+function h$pp96(x1, x2)+{+  h$sp += 7;+  h$stack[(h$sp - 1)] = x1;+  h$stack[(h$sp - 0)] = x2;+};+function h$pp97(x1, x2, x3)+{+  h$sp += 7;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 1)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp98(x1, x2, x3)+{+  h$sp += 7;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 1)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp99(x1, x2, x3, x4)+{+  h$sp += 7;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp100(x1, x2, x3)+{+  h$sp += 7;+  h$stack[(h$sp - 4)] = x1;+  h$stack[(h$sp - 1)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp101(x1, x2, x3, x4)+{+  h$sp += 7;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp102(x1, x2, x3, x4)+{+  h$sp += 7;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp103(x1, x2, x3, x4, x5)+{+  h$sp += 7;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 4)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp104(x1, x2, x3)+{+  h$sp += 7;+  h$stack[(h$sp - 3)] = x1;+  h$stack[(h$sp - 1)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp105(x1, x2, x3, x4)+{+  h$sp += 7;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp106(x1, x2, x3, x4)+{+  h$sp += 7;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp107(x1, x2, x3, x4, x5)+{+  h$sp += 7;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp108(x1, x2, x3, x4)+{+  h$sp += 7;+  h$stack[(h$sp - 4)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp109(x1, x2, x3, x4, x5)+{+  h$sp += 7;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp110(x1, x2, x3, x4, x5)+{+  h$sp += 7;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp111(x1, x2, x3, x4, x5, x6)+{+  h$sp += 7;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 4)] = x3;+  h$stack[(h$sp - 3)] = x4;+  h$stack[(h$sp - 1)] = x5;+  h$stack[(h$sp - 0)] = x6;+};+function h$pp112(x1, x2, x3)+{+  h$sp += 7;+  h$stack[(h$sp - 2)] = x1;+  h$stack[(h$sp - 1)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp113(x1, x2, x3, x4)+{+  h$sp += 7;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 2)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp114(x1, x2, x3, x4)+{+  h$sp += 7;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 2)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp115(x1, x2, x3, x4, x5)+{+  h$sp += 7;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp116(x1, x2, x3, x4)+{+  h$sp += 7;+  h$stack[(h$sp - 4)] = x1;+  h$stack[(h$sp - 2)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp117(x1, x2, x3, x4, x5)+{+  h$sp += 7;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp118(x1, x2, x3, x4, x5)+{+  h$sp += 7;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp119(x1, x2, x3, x4, x5, x6)+{+  h$sp += 7;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 4)] = x3;+  h$stack[(h$sp - 2)] = x4;+  h$stack[(h$sp - 1)] = x5;+  h$stack[(h$sp - 0)] = x6;+};+function h$pp120(x1, x2, x3, x4)+{+  h$sp += 7;+  h$stack[(h$sp - 3)] = x1;+  h$stack[(h$sp - 2)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp121(x1, x2, x3, x4, x5)+{+  h$sp += 7;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp122(x1, x2, x3, x4, x5)+{+  h$sp += 7;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp123(x1, x2, x3, x4, x5, x6)+{+  h$sp += 7;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 2)] = x4;+  h$stack[(h$sp - 1)] = x5;+  h$stack[(h$sp - 0)] = x6;+};+function h$pp124(x1, x2, x3, x4, x5)+{+  h$sp += 7;+  h$stack[(h$sp - 4)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp125(x1, x2, x3, x4, x5, x6)+{+  h$sp += 7;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 2)] = x4;+  h$stack[(h$sp - 1)] = x5;+  h$stack[(h$sp - 0)] = x6;+};+function h$pp126(x1, x2, x3, x4, x5, x6)+{+  h$sp += 7;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 2)] = x4;+  h$stack[(h$sp - 1)] = x5;+  h$stack[(h$sp - 0)] = x6;+};+function h$pp128(x1)+{+  h$sp += 8;+  h$stack[(h$sp - 0)] = x1;+};+function h$pp129(x1, x2)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 0)] = x2;+};+function h$pp130(x1, x2)+{+  h$sp += 8;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 0)] = x2;+};+function h$pp131(x1, x2, x3)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 6)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp132(x1, x2)+{+  h$sp += 8;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 0)] = x2;+};+function h$pp133(x1, x2, x3)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp134(x1, x2, x3)+{+  h$sp += 8;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp135(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 6)] = x2;+  h$stack[(h$sp - 5)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp136(x1, x2)+{+  h$sp += 8;+  h$stack[(h$sp - 4)] = x1;+  h$stack[(h$sp - 0)] = x2;+};+function h$pp137(x1, x2, x3)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp138(x1, x2, x3)+{+  h$sp += 8;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp139(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 6)] = x2;+  h$stack[(h$sp - 4)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp140(x1, x2, x3)+{+  h$sp += 8;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp141(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 4)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp142(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 4)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp143(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 6)] = x2;+  h$stack[(h$sp - 5)] = x3;+  h$stack[(h$sp - 4)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp144(x1, x2)+{+  h$sp += 8;+  h$stack[(h$sp - 3)] = x1;+  h$stack[(h$sp - 0)] = x2;+};+function h$pp145(x1, x2, x3)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp146(x1, x2, x3)+{+  h$sp += 8;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp147(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 6)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp148(x1, x2, x3)+{+  h$sp += 8;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp149(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp150(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp151(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 6)] = x2;+  h$stack[(h$sp - 5)] = x3;+  h$stack[(h$sp - 3)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp152(x1, x2, x3)+{+  h$sp += 8;+  h$stack[(h$sp - 4)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp153(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp154(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp155(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 6)] = x2;+  h$stack[(h$sp - 4)] = x3;+  h$stack[(h$sp - 3)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp156(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp157(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 4)] = x3;+  h$stack[(h$sp - 3)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp158(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 4)] = x3;+  h$stack[(h$sp - 3)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp159(x1, x2, x3, x4, x5, x6)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 6)] = x2;+  h$stack[(h$sp - 5)] = x3;+  h$stack[(h$sp - 4)] = x4;+  h$stack[(h$sp - 3)] = x5;+  h$stack[(h$sp - 0)] = x6;+};+function h$pp160(x1, x2)+{+  h$sp += 8;+  h$stack[(h$sp - 2)] = x1;+  h$stack[(h$sp - 0)] = x2;+};+function h$pp161(x1, x2, x3)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 2)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp162(x1, x2, x3)+{+  h$sp += 8;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 2)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp163(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 6)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp164(x1, x2, x3)+{+  h$sp += 8;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 2)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp165(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp166(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp167(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 6)] = x2;+  h$stack[(h$sp - 5)] = x3;+  h$stack[(h$sp - 2)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp168(x1, x2, x3)+{+  h$sp += 8;+  h$stack[(h$sp - 4)] = x1;+  h$stack[(h$sp - 2)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp169(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp170(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp171(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 6)] = x2;+  h$stack[(h$sp - 4)] = x3;+  h$stack[(h$sp - 2)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp172(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp173(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 4)] = x3;+  h$stack[(h$sp - 2)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp174(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 4)] = x3;+  h$stack[(h$sp - 2)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp175(x1, x2, x3, x4, x5, x6)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 6)] = x2;+  h$stack[(h$sp - 5)] = x3;+  h$stack[(h$sp - 4)] = x4;+  h$stack[(h$sp - 2)] = x5;+  h$stack[(h$sp - 0)] = x6;+};+function h$pp176(x1, x2, x3)+{+  h$sp += 8;+  h$stack[(h$sp - 3)] = x1;+  h$stack[(h$sp - 2)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp177(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp178(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp179(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 6)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 2)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp180(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp181(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 2)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp182(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 2)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp183(x1, x2, x3, x4, x5, x6)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 6)] = x2;+  h$stack[(h$sp - 5)] = x3;+  h$stack[(h$sp - 3)] = x4;+  h$stack[(h$sp - 2)] = x5;+  h$stack[(h$sp - 0)] = x6;+};+function h$pp184(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 4)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp185(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 2)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp186(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 2)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp187(x1, x2, x3, x4, x5, x6)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 6)] = x2;+  h$stack[(h$sp - 4)] = x3;+  h$stack[(h$sp - 3)] = x4;+  h$stack[(h$sp - 2)] = x5;+  h$stack[(h$sp - 0)] = x6;+};+function h$pp188(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 2)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp189(x1, x2, x3, x4, x5, x6)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 4)] = x3;+  h$stack[(h$sp - 3)] = x4;+  h$stack[(h$sp - 2)] = x5;+  h$stack[(h$sp - 0)] = x6;+};+function h$pp190(x1, x2, x3, x4, x5, x6)+{+  h$sp += 8;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 4)] = x3;+  h$stack[(h$sp - 3)] = x4;+  h$stack[(h$sp - 2)] = x5;+  h$stack[(h$sp - 0)] = x6;+};+function h$pp191(x1, x2, x3, x4, x5, x6, x7)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 6)] = x2;+  h$stack[(h$sp - 5)] = x3;+  h$stack[(h$sp - 4)] = x4;+  h$stack[(h$sp - 3)] = x5;+  h$stack[(h$sp - 2)] = x6;+  h$stack[(h$sp - 0)] = x7;+};+function h$pp192(x1, x2)+{+  h$sp += 8;+  h$stack[(h$sp - 1)] = x1;+  h$stack[(h$sp - 0)] = x2;+};+function h$pp193(x1, x2, x3)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 1)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp194(x1, x2, x3)+{+  h$sp += 8;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 1)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp195(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 6)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp196(x1, x2, x3)+{+  h$sp += 8;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 1)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp197(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp198(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp199(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 6)] = x2;+  h$stack[(h$sp - 5)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp200(x1, x2, x3)+{+  h$sp += 8;+  h$stack[(h$sp - 4)] = x1;+  h$stack[(h$sp - 1)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp201(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp202(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp203(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 6)] = x2;+  h$stack[(h$sp - 4)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp204(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp205(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 4)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp206(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 4)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp207(x1, x2, x3, x4, x5, x6)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 6)] = x2;+  h$stack[(h$sp - 5)] = x3;+  h$stack[(h$sp - 4)] = x4;+  h$stack[(h$sp - 1)] = x5;+  h$stack[(h$sp - 0)] = x6;+};+function h$pp208(x1, x2, x3)+{+  h$sp += 8;+  h$stack[(h$sp - 3)] = x1;+  h$stack[(h$sp - 1)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp209(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp210(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp211(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 6)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp212(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp213(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp214(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp215(x1, x2, x3, x4, x5, x6)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 6)] = x2;+  h$stack[(h$sp - 5)] = x3;+  h$stack[(h$sp - 3)] = x4;+  h$stack[(h$sp - 1)] = x5;+  h$stack[(h$sp - 0)] = x6;+};+function h$pp216(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 4)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp217(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp218(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp219(x1, x2, x3, x4, x5, x6)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 6)] = x2;+  h$stack[(h$sp - 4)] = x3;+  h$stack[(h$sp - 3)] = x4;+  h$stack[(h$sp - 1)] = x5;+  h$stack[(h$sp - 0)] = x6;+};+function h$pp220(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp221(x1, x2, x3, x4, x5, x6)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 4)] = x3;+  h$stack[(h$sp - 3)] = x4;+  h$stack[(h$sp - 1)] = x5;+  h$stack[(h$sp - 0)] = x6;+};+function h$pp222(x1, x2, x3, x4, x5, x6)+{+  h$sp += 8;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 4)] = x3;+  h$stack[(h$sp - 3)] = x4;+  h$stack[(h$sp - 1)] = x5;+  h$stack[(h$sp - 0)] = x6;+};+function h$pp223(x1, x2, x3, x4, x5, x6, x7)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 6)] = x2;+  h$stack[(h$sp - 5)] = x3;+  h$stack[(h$sp - 4)] = x4;+  h$stack[(h$sp - 3)] = x5;+  h$stack[(h$sp - 1)] = x6;+  h$stack[(h$sp - 0)] = x7;+};+function h$pp224(x1, x2, x3)+{+  h$sp += 8;+  h$stack[(h$sp - 2)] = x1;+  h$stack[(h$sp - 1)] = x2;+  h$stack[(h$sp - 0)] = x3;+};+function h$pp225(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 2)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp226(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 2)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp227(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 6)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp228(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 2)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp229(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp230(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp231(x1, x2, x3, x4, x5, x6)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 6)] = x2;+  h$stack[(h$sp - 5)] = x3;+  h$stack[(h$sp - 2)] = x4;+  h$stack[(h$sp - 1)] = x5;+  h$stack[(h$sp - 0)] = x6;+};+function h$pp232(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 4)] = x1;+  h$stack[(h$sp - 2)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp233(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp234(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp235(x1, x2, x3, x4, x5, x6)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 6)] = x2;+  h$stack[(h$sp - 4)] = x3;+  h$stack[(h$sp - 2)] = x4;+  h$stack[(h$sp - 1)] = x5;+  h$stack[(h$sp - 0)] = x6;+};+function h$pp236(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp237(x1, x2, x3, x4, x5, x6)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 4)] = x3;+  h$stack[(h$sp - 2)] = x4;+  h$stack[(h$sp - 1)] = x5;+  h$stack[(h$sp - 0)] = x6;+};+function h$pp238(x1, x2, x3, x4, x5, x6)+{+  h$sp += 8;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 4)] = x3;+  h$stack[(h$sp - 2)] = x4;+  h$stack[(h$sp - 1)] = x5;+  h$stack[(h$sp - 0)] = x6;+};+function h$pp239(x1, x2, x3, x4, x5, x6, x7)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 6)] = x2;+  h$stack[(h$sp - 5)] = x3;+  h$stack[(h$sp - 4)] = x4;+  h$stack[(h$sp - 2)] = x5;+  h$stack[(h$sp - 1)] = x6;+  h$stack[(h$sp - 0)] = x7;+};+function h$pp240(x1, x2, x3, x4)+{+  h$sp += 8;+  h$stack[(h$sp - 3)] = x1;+  h$stack[(h$sp - 2)] = x2;+  h$stack[(h$sp - 1)] = x3;+  h$stack[(h$sp - 0)] = x4;+};+function h$pp241(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp242(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp243(x1, x2, x3, x4, x5, x6)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 6)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 2)] = x4;+  h$stack[(h$sp - 1)] = x5;+  h$stack[(h$sp - 0)] = x6;+};+function h$pp244(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp245(x1, x2, x3, x4, x5, x6)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 2)] = x4;+  h$stack[(h$sp - 1)] = x5;+  h$stack[(h$sp - 0)] = x6;+};+function h$pp246(x1, x2, x3, x4, x5, x6)+{+  h$sp += 8;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 2)] = x4;+  h$stack[(h$sp - 1)] = x5;+  h$stack[(h$sp - 0)] = x6;+};+function h$pp247(x1, x2, x3, x4, x5, x6, x7)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 6)] = x2;+  h$stack[(h$sp - 5)] = x3;+  h$stack[(h$sp - 3)] = x4;+  h$stack[(h$sp - 2)] = x5;+  h$stack[(h$sp - 1)] = x6;+  h$stack[(h$sp - 0)] = x7;+};+function h$pp248(x1, x2, x3, x4, x5)+{+  h$sp += 8;+  h$stack[(h$sp - 4)] = x1;+  h$stack[(h$sp - 3)] = x2;+  h$stack[(h$sp - 2)] = x3;+  h$stack[(h$sp - 1)] = x4;+  h$stack[(h$sp - 0)] = x5;+};+function h$pp249(x1, x2, x3, x4, x5, x6)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 2)] = x4;+  h$stack[(h$sp - 1)] = x5;+  h$stack[(h$sp - 0)] = x6;+};+function h$pp250(x1, x2, x3, x4, x5, x6)+{+  h$sp += 8;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 2)] = x4;+  h$stack[(h$sp - 1)] = x5;+  h$stack[(h$sp - 0)] = x6;+};+function h$pp251(x1, x2, x3, x4, x5, x6, x7)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 6)] = x2;+  h$stack[(h$sp - 4)] = x3;+  h$stack[(h$sp - 3)] = x4;+  h$stack[(h$sp - 2)] = x5;+  h$stack[(h$sp - 1)] = x6;+  h$stack[(h$sp - 0)] = x7;+};+function h$pp252(x1, x2, x3, x4, x5, x6)+{+  h$sp += 8;+  h$stack[(h$sp - 5)] = x1;+  h$stack[(h$sp - 4)] = x2;+  h$stack[(h$sp - 3)] = x3;+  h$stack[(h$sp - 2)] = x4;+  h$stack[(h$sp - 1)] = x5;+  h$stack[(h$sp - 0)] = x6;+};+function h$pp253(x1, x2, x3, x4, x5, x6, x7)+{+  h$sp += 8;+  h$stack[(h$sp - 7)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 4)] = x3;+  h$stack[(h$sp - 3)] = x4;+  h$stack[(h$sp - 2)] = x5;+  h$stack[(h$sp - 1)] = x6;+  h$stack[(h$sp - 0)] = x7;+};+function h$pp254(x1, x2, x3, x4, x5, x6, x7)+{+  h$sp += 8;+  h$stack[(h$sp - 6)] = x1;+  h$stack[(h$sp - 5)] = x2;+  h$stack[(h$sp - 4)] = x3;+  h$stack[(h$sp - 3)] = x4;+  h$stack[(h$sp - 2)] = x5;+  h$stack[(h$sp - 1)] = x6;+  h$stack[(h$sp - 0)] = x7;+};+function h$bh()+{+  h$p2(h$r1, h$upd_frame);+  h$r1.f = h$blackhole;+  h$r1.d1 = h$currentThread;+  h$r1.d2 = null;+};+function h$bh_lne(h$RTS_26, h$RTS_27)+{+  var h$RTS_28 = h$stack[h$RTS_26];+  if(h$RTS_28)+  {+    h$sp -= h$RTS_27;+    if((h$RTS_28 === h$blackhole))+    {+      return h$throw(h$baseZCControlziExceptionziBasezinonTermination, false);+    }+    else+    {+      h$r1 = h$RTS_28;+      h$sp -= h$RTS_27;+      return h$stack[h$sp];+    };+  }+  else+  {+    h$stack[h$RTS_26] = h$blackhole;+    return null;+  };+};+function h$blackhole()+{+  throw("oops: entered black hole");+  return 0;+};+h$o(h$blackhole, 5, 0, 2, 0, null);+function h$blackholeTrap()+{+  throw("oops: entered multiple times");+  return 0;+};+h$o(h$blackholeTrap, 0, 0, 2, 0, null);+function h$done(h$RTS_29)+{+  h$finishThread(h$currentThread);+  return h$reschedule;+};+h$o(h$done, (-1), 0, 0, 256, null);+function h$doneMain()+{+  if(((typeof process !== "undefined") && process.exit))+  {+    process.exit(0);+  }+  else+  {+    if((typeof quit !== "undefined"))+    {+      if((((typeof h$base_stdoutLeftover !== "undefined") && h$base_stdoutLeftover) && h$base_stdoutLeftover.val))+      {+        print(h$base_stdoutLeftover.val);+      };+      if((((typeof h$base_stderrLeftover !== "undefined") && h$base_stderrLeftover) && h$base_stderrLeftover.val))+      {+        debug(h$base_stderrLeftover.val);+      };+      quit();+    };+  };+  h$finishThread(h$currentThread);+  return h$reschedule;+};+h$o(h$doneMain, (-1), 0, 0, 256, null);+function h$false_e()+{+  return h$stack[h$sp];+};+h$o(h$false_e, 2, 1, 0, 256, null);+function h$true_e()+{+  return h$stack[h$sp];+};+h$o(h$true_e, 2, 2, 0, 256, null);+function h$integerzmgmpZCGHCziIntegerziTypeziSzh_con_e()+{+  return h$stack[h$sp];+};+h$o(h$integerzmgmpZCGHCziIntegerziTypeziSzh_con_e, 2, 1, 1, 256, null);+function h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e()+{+  return h$stack[h$sp];+};+h$o(h$integerzmgmpZCGHCziIntegerziTypeziJzh_con_e, 2, 2, 2, 256, null);+function h$data1_e()+{+  return h$stack[h$sp];+};+h$o(h$data1_e, 2, 1, 1, 256, null);+function h$data2_e()+{+  return h$stack[h$sp];+};+h$o(h$data2_e, 2, 1, 2, 256, null);+function h$con_e()+{+  return h$stack[h$sp];+};+function h$catch(h$RTS_30, h$RTS_31)+{+  h$sp += 3;+  h$stack[(h$sp - 2)] = h$currentThread.mask;+  h$stack[(h$sp - 1)] = h$RTS_31;+  h$stack[h$sp] = h$catch_e;+  h$r1 = h$RTS_30;+  return h$ap_1_0_fast();+};+function h$noop_e()+{+  return h$stack[h$sp];+};+h$o(h$noop_e, 1, 1, 0, 257, null);+var h$noop = h$c0(h$noop_e);+function h$catch_e()+{+  h$sp -= 3;+  return h$stack[h$sp];+};+h$o(h$catch_e, (-1), 0, 2, 256, null);+function h$ap1_e()+{+  var h$RTS_32 = h$r1.d1;+  var h$RTS_33 = h$r1.d2;+  h$bh();+  h$r1 = h$RTS_32;+  h$r2 = h$RTS_33;+  return h$ap_1_1_fast();+};+h$o(h$ap1_e, 0, 0, 2, 256, null);+function h$ap2_e()+{+  var h$RTS_34 = h$r1.d1;+  var h$RTS_35 = h$r1.d2.d1;+  var h$RTS_36 = h$r1.d2.d2;+  h$bh();+  h$r1 = h$RTS_34;+  h$r2 = h$RTS_35;+  h$r3 = h$RTS_36;+  return h$ap_2_2_fast();+};+h$o(h$ap2_e, 0, 0, 3, 256, null);+function h$ap3_e()+{+  var h$RTS_37 = h$r1.d1;+  var h$RTS_38 = h$r1.d2.d1;+  var h$RTS_39 = h$r1.d2.d2;+  var h$RTS_40 = h$r1.d2.d3;+  h$bh();+  h$r1 = h$RTS_37;+  h$r2 = h$RTS_38;+  h$r3 = h$RTS_39;+  h$r4 = h$RTS_40;+  return h$ap_3_3_fast();+};+h$o(h$ap3_e, 0, 0, 4, 256, null);+function h$select1_e()+{+  var h$RTS_41 = h$r1.d1;+  h$sp += 3;+  h$stack[(h$sp - 2)] = h$r1;+  h$stack[(h$sp - 1)] = h$upd_frame;+  h$stack[h$sp] = h$select1_ret;+  h$r1.f = h$blackhole;+  h$r1.d1 = h$currentThread;+  h$r1.d2 = null;+  h$r1 = h$RTS_41;+  return h$ap_0_0_fast();+};+h$o(h$select1_e, 0, 0, 1, 256, null);+function h$select1_ret()+{+  h$r1 = h$r1.d1;+  --h$sp;+  return h$ap_0_0_fast();+};+h$o(h$select1_ret, (-1), 0, 0, 256, null);+function h$select2_e()+{+  var h$RTS_42 = h$r1.d1;+  h$sp += 3;+  h$stack[(h$sp - 2)] = h$r1;+  h$stack[(h$sp - 1)] = h$upd_frame;+  h$stack[h$sp] = h$select2_ret;+  h$r1.f = h$blackhole;+  h$r1.d1 = h$currentThread;+  h$r1.d2 = null;+  h$r1 = h$RTS_42;+  return h$ap_0_0_fast();+};+h$o(h$select2_e, 0, 0, 1, 256, null);+function h$select2_ret()+{+  h$r1 = h$r1.d2;+  --h$sp;+  return h$ap_0_0_fast();+};+h$o(h$select2_ret, (-1), 0, 0, 256, null);+function h$throw(h$RTS_43, h$RTS_44)+{+  var h$RTS_45 = h$sp;+  var h$RTS_46 = null;+  var h$RTS_47;+  while((h$sp > 0))+  {+    h$RTS_47 = h$stack[h$sp];+    if(((h$RTS_47 === null) || (h$RTS_47 === undefined)))+    {+      throw("h$throw: invalid object while unwinding stack");+    };+    if((h$RTS_47 === h$catch_e))+    {+      break;+    };+    if((h$RTS_47 === h$atomically_e))+    {+      if(h$RTS_44)+      {+        h$currentThread.transaction = null;+      }+      else+      {+        if(!h$stmValidateTransaction())+        {+          ++h$sp;+          h$stack[h$sp] = h$checkInvariants_e;+          return h$stmStartTransaction(h$stack[(h$sp - 2)]);+        };+      };+    };+    if(((h$RTS_47 === h$catchStm_e) && !h$RTS_44))+    {+      break;+    };+    if((h$RTS_47 === h$upd_frame))+    {+      var h$RTS_48 = h$stack[(h$sp - 1)];+      var h$RTS_49 = h$RTS_48.d2;+      if((h$RTS_49 !== null))+      {+        for(var h$RTS_50 = 0;(h$RTS_50 < h$RTS_49.length);(h$RTS_50++)) {+          h$wakeupThread(h$RTS_49[h$RTS_50]);+        };+      };+      if(h$RTS_44)+      {+        if((h$RTS_46 === null))+        {+          h$makeResumable(h$RTS_48, (h$sp + 1), h$RTS_45, []);+        }+        else+        {+          h$makeResumable(h$RTS_48, (h$sp + 1), (h$RTS_46 - 2), [h$ap_0_0, h$stack[(h$RTS_46 - 1)], h$return]);+        };+        h$RTS_46 = h$sp;+      }+      else+      {+        h$RTS_48.f = h$raise_e;+        h$RTS_48.d1 = h$RTS_43;+        h$RTS_48.d2 = null;+      };+    };+    var h$RTS_51;+    if((h$RTS_47 === h$ap_gen))+    {+      h$RTS_51 = ((h$stack[(h$sp - 1)] >> 8) + 2);+    }+    else+    {+      var h$RTS_52 = h$RTS_47.size;+      if((h$RTS_52 < 0))+      {+        h$RTS_51 = h$stack[(h$sp - 1)];+      }+      else+      {+        h$RTS_51 = ((h$RTS_52 & 255) + 1);+      };+    };+    h$sp -= h$RTS_51;+  };+  if((h$sp > 0))+  {+    var h$RTS_53 = h$stack[(h$sp - 2)];+    var h$RTS_54 = h$stack[(h$sp - 1)];+    if((h$RTS_47 === h$catchStm_e))+    {+      h$currentThread.transaction = h$stack[(h$sp - 3)];+      h$sp -= 4;+    }+    else+    {+      if((h$sp > 3))+      {+        h$sp -= 3;+      };+    };+    h$r1 = h$RTS_54;+    h$r2 = h$RTS_43;+    if((h$RTS_47 !== h$catchStm_e))+    {+      if((((h$RTS_53 === 0) && (h$stack[h$sp] !== h$maskFrame)) && (h$stack[h$sp] !== h$maskUnintFrame)))+      {+        h$stack[(h$sp + 1)] = h$unmaskFrame;+        ++h$sp;+      }+      else+      {+        if((h$RTS_53 === 1))+        {+          h$stack[(h$sp + 1)] = h$maskUnintFrame;+          ++h$sp;+        };+      };+      h$currentThread.mask = 2;+    };+    return h$ap_2_1_fast();+  }+  else+  {+    throw("unhandled exception in haskell thread");+  };+};+function h$raise_e()+{+  return h$throw(h$r1.d1, false);+};+h$o(h$raise_e, 0, 0, 0, 256, null);+function h$raiseAsync_e()+{+  return h$throw(h$r1.d1, true);+};+h$o(h$raiseAsync_e, 0, 0, 0, 256, null);+function h$raiseAsync_frame()+{+  var h$RTS_55 = h$stack[(h$sp - 1)];+  h$sp -= 2;+  return h$throw(h$RTS_55, true);+};+h$o(h$raiseAsync_frame, (-1), 0, 1, 0, null);+function h$reduce()+{+  if((h$r1.f.t === 0))+  {+    return h$r1.f;+  }+  else+  {+    --h$sp;+    return h$stack[h$sp];+  };+};+h$o(h$reduce, (-1), 0, 0, 256, null);+var h$RTS_56 = 0;+function h$gc_check(h$RTS_57)+{+  if((++h$RTS_56 > 1000))+  {+    for(var h$RTS_58 = (h$sp + 1);(h$RTS_58 < h$stack.length);(h$RTS_58++)) {+      h$stack[h$RTS_58] = null;+    };+    h$RTS_56 = 0;+  };+  return 0;+};+function h$o(h$RTS_59, h$RTS_60, h$RTS_61, h$RTS_62, h$RTS_63, h$RTS_64)+{+  h$setObjInfo(h$RTS_59, h$RTS_60, "", [], h$RTS_61, h$RTS_62, h$RTS_63, h$RTS_64);+};+function h$setObjInfo(h$RTS_65, h$RTS_66, h$RTS_67, h$RTS_68, h$RTS_69, h$RTS_70, h$RTS_71, h$RTS_72)+{+  h$RTS_65.t = h$RTS_66;+  h$RTS_65.i = h$RTS_68;+  h$RTS_65.n = h$RTS_67;+  h$RTS_65.a = h$RTS_69;+  h$RTS_65.r = h$RTS_71;+  h$RTS_65.s = h$RTS_72;+  h$RTS_65.m = 0;+  h$RTS_65.size = h$RTS_70;+};+function h$static_thunk(h$RTS_73)+{+  var h$RTS_74 = { d1: null, d2: null, f: h$RTS_73, m: 0+                 };+  h$CAFs.push(h$RTS_74);+  h$CAFsReset.push(h$RTS_73);+  return h$RTS_74;+};+function h$printcl(h$RTS_75)+{+  var h$RTS_76 = h$RTS_75.f;+  var h$RTS_77 = h$RTS_75.d1;+  var h$RTS_78 = "";+  switch (h$RTS_76.t)+  {+    case (0):+      h$RTS_78 += "thunk";+      break;+    case (2):+      h$RTS_78 += (("con[" + h$RTS_76.a) + "]");+      break;+    case (3):+      h$RTS_78 += (("pap[" + h$RTS_76.a) + "]");+      break;+    case (1):+      h$RTS_78 += (("fun[" + h$RTS_76.a) + "]");+      break;+    default:+      h$RTS_78 += "unknown closure type";+      break;+  };+  h$RTS_78 += ((" :: " + h$RTS_76.n) + " ->");+  var h$RTS_79 = 1;+  for(var h$RTS_80 = 0;(h$RTS_80 < h$RTS_76.i.length);(h$RTS_80++)) {+    h$RTS_78 += " ";+    switch (h$RTS_76.i[h$RTS_80])+    {+      case (0):+        h$RTS_78 += (("[ Ptr :: " + h$RTS_77[("d" + h$RTS_79)].f.n) + "]");+        h$RTS_79++;+        break;+      case (1):+        h$RTS_78 += "void";+        break;+      case (2):+        h$RTS_78 += (("(" + h$RTS_77[("d" + h$RTS_79)]) + " :: double)");+        h$RTS_79++;+        break;+      case (3):+        h$RTS_78 += (("(" + h$RTS_77[("d" + h$RTS_79)]) + " :: int)");+        h$RTS_79++;+        break;+      case (4):+        h$RTS_78 += (((("(" + h$RTS_77[("d" + h$RTS_79)]) + ",") + h$RTS_77[("d" + (h$RTS_79 + 1))]) + " :: long)");+        h$RTS_79 += 2;+        break;+      case (5):+        h$RTS_78 += (((("(" + h$RTS_77[("d" + h$RTS_79)].length) + ",") + h$RTS_77[("d" + (h$RTS_79 + 1))]) + " :: ptr)");+        h$RTS_79 += 2;+        break;+      case (6):+        h$RTS_78 += (("(" + h$RTS_77[("d" + h$RTS_79)].toString()) + " :: RTS object)");+        h$RTS_79++;+        break;+      default:+        h$RTS_78 += ("unknown field: " + h$RTS_76.i[h$RTS_80]);+    };+  };+  h$log(h$RTS_78);+};+function h$init_closure(h$RTS_81, h$RTS_82)+{+  h$RTS_81.m = 0;+  switch (h$RTS_82.length)+  {+    case (0):+      h$RTS_81.d1 = null;+      h$RTS_81.d2 = null;+      return h$RTS_81;+    case (1):+      h$RTS_81.d1 = h$RTS_82[0];+      h$RTS_81.d2 = null;+      return h$RTS_81;+    case (2):+      h$RTS_81.d1 = h$RTS_82[0];+      h$RTS_81.d2 = h$RTS_82[1];+      return h$RTS_81;+    case (3):+      h$RTS_81.d1 = h$RTS_82[0];+      h$RTS_81.d2 = { d1: h$RTS_82[1], d2: h$RTS_82[2]+                    };+      return h$RTS_81;+    case (4):+      h$RTS_81.d1 = h$RTS_82[0];+      h$RTS_81.d2 = { d1: h$RTS_82[1], d2: h$RTS_82[2], d3: h$RTS_82[3]+                    };+      return h$RTS_81;+    case (5):+      h$RTS_81.d1 = h$RTS_82[0];+      h$RTS_81.d2 = { d1: h$RTS_82[1], d2: h$RTS_82[2], d3: h$RTS_82[3], d4: h$RTS_82[4]+                    };+      return h$RTS_81;+    case (6):+      h$RTS_81.d1 = h$RTS_82[0];+      h$RTS_81.d2 = { d1: h$RTS_82[1], d2: h$RTS_82[2], d3: h$RTS_82[3], d4: h$RTS_82[4], d5: h$RTS_82[5]+                    };+      return h$RTS_81;+    case (7):+      h$RTS_81.d1 = h$RTS_82[0];+      h$RTS_81.d2 = { d1: h$RTS_82[1], d2: h$RTS_82[2], d3: h$RTS_82[3], d4: h$RTS_82[4], d5: h$RTS_82[5], d6: h$RTS_82[6]+                    };+      return h$RTS_81;+    default:+      h$RTS_81.d1 = h$RTS_82[0];+      h$RTS_81.d2 = { d1: h$RTS_82[1], d2: h$RTS_82[2], d3: h$RTS_82[3], d4: h$RTS_82[4], d5: h$RTS_82[5], d6: h$RTS_82[6]+                    };+      for(var h$RTS_83 = 7;(h$RTS_83 < h$RTS_82.length);(h$RTS_83++)) {+        h$RTS_81.d2[("d" + h$RTS_83)] = h$RTS_82[h$RTS_83];+      };+      return h$RTS_81;+  };+};+function h$runInitStatic()+{+  if((h$initStatic.length == 0))+  {+    return undefined;+  };+  for(var h$RTS_84 = (h$initStatic.length - 1);(h$RTS_84 >= 0);(h$RTS_84--)) {+    h$initStatic[h$RTS_84]();+  };+  h$initStatic = [];+};+function h$checkStack(h$RTS_85)+{+  if((h$RTS_85.t === (-1)))+  {+    h$stack[h$sp] = h$RTS_85;+  };+  var h$RTS_86 = h$sp;+  while((h$RTS_86 >= 0))+  {+    h$RTS_85 = h$stack[h$RTS_86];+    var h$RTS_87;+    var h$RTS_88;+    if((typeof h$RTS_85 === "function"))+    {+      if((h$RTS_85 === h$ap_gen))+      {+        h$RTS_87 = ((h$stack[(h$RTS_86 - 1)] >> 8) + 2);+        h$RTS_88 = 2;+      }+      else+      {+        var h$RTS_89 = h$stack[h$RTS_86].size;+        if((h$RTS_89 <= 0))+        {+          h$RTS_87 = h$stack[(h$RTS_86 - 1)];+          h$RTS_88 = 2;+        }+        else+        {+          h$RTS_87 = ((h$RTS_89 & 255) + 1);+          h$RTS_88 = 1;+        };+      };+      h$RTS_86 -= h$RTS_87;+    }+    else+    {+      h$dumpStackTop(h$stack, 0, h$sp);+      throw(("invalid stack object at: " + h$RTS_86));+    };+  };+};+function h$printReg(h$RTS_90)+{+  if((h$RTS_90 === null))+  {+    return "null";+  }+  else+  {+    if(((((typeof h$RTS_90 === "object") && h$RTS_90.hasOwnProperty("f")) && h$RTS_90.hasOwnProperty("d1")) && h$RTS_90.+    hasOwnProperty("d2")))+    {+      if((typeof h$RTS_90.f !== "function"))+      {+        return "dodgy object";+      }+      else+      {+        if(((h$RTS_90.f.t === 5) && h$RTS_90.x))+        {+          return (("blackhole: -> " + h$printReg({ d: h$RTS_90.d1.x2, f: h$RTS_90.x.x1+                                                 })) + ")");+        }+        else+        {+          return (((((((h$RTS_90.alloc ? (h$RTS_90.alloc + ": ") : "") + h$RTS_90.f.n) + " (") + h$closureTypeName(h$RTS_90.f.+          t)) + ", ") + h$RTS_90.f.a) + ")");+        };+      };+    }+    else+    {+      if((typeof h$RTS_90 === "object"))+      {+        var h$RTS_91 = h$collectProps(h$RTS_90);+        if((h$RTS_91.length > 40))+        {+          return (h$RTS_91.substr(0, 40) + "...");+        }+        else+        {+          return h$RTS_91;+        };+      }+      else+      {+        var h$RTS_92 = (new String(h$RTS_90) + "");+        if((h$RTS_92.length > 40))+        {+          return (h$RTS_92.substr(0, 40) + "...");+        }+        else+        {+          return h$RTS_92;+        };+      };+    };+  };+};+function h$logStack()+{+  if((typeof h$stack[h$sp] === "undefined"))+  {+    h$log("warning: invalid stack frame");+    return undefined;+  };+  var h$RTS_93 = 0;+  var h$RTS_94 = h$stack[h$sp].size;+  if((h$RTS_94 === (-1)))+  {+    h$RTS_93 = (h$stack[(h$sp - 1)] & 255);+  }+  else+  {+    h$RTS_93 = (h$RTS_94 & 255);+  };+  h$dumpStackTop(h$stack, ((h$sp - h$RTS_93) - 2), h$sp);+  for(var h$RTS_95 = Math.max(0, ((h$sp - h$RTS_93) + 1));(h$RTS_95 <= h$sp);(h$RTS_95++)) {+    if((typeof h$stack[h$RTS_95] === "undefined"))+    {+      throw("undefined on stack");+    };+  };+};+function h$ap_1_0()+{+  var h$RTS_96 = h$r1.f;+  switch (h$RTS_96.t)+  {+    case (0):+      return h$RTS_96;+    case (1):+      var h$RTS_98 = h$RTS_96.a;+      var h$RTS_99 = (h$RTS_98 & 255);+      if((1 === h$RTS_99))+      {+        --h$sp;+        return h$RTS_96;+      }+      else+      {+        if((1 > h$RTS_99))+        {+          var h$RTS_100 = (h$RTS_98 >> 8);+          switch (h$RTS_100)+          {+            default:+          };+          h$sp -= h$RTS_100;+          var h$RTS_101 = h$apply[((1 - h$RTS_99) | ((0 - h$RTS_100) << 8))];+          h$stack[h$sp] = h$RTS_101;+          return h$RTS_96;+        }+        else+        {+          var h$RTS_97 = h$c3(h$pap_0, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 0) - 1), null);+          --h$sp;+          h$r1 = h$RTS_97;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_103 = h$r1.d2.d1;+      var h$RTS_104 = (h$RTS_103 & 255);+      if((1 === h$RTS_104))+      {+        --h$sp;+        return h$RTS_96;+      }+      else+      {+        if((1 > h$RTS_104))+        {+          var h$RTS_105 = (h$RTS_103 >> 8);+          switch (h$RTS_105)+          {+            default:+          };+          h$sp -= h$RTS_105;+          var h$RTS_106 = h$apply[((1 - h$RTS_104) | ((0 - h$RTS_105) << 8))];+          h$stack[h$sp] = h$RTS_106;+          return h$RTS_96;+        }+        else+        {+          var h$RTS_102 = h$c3(h$pap_0, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 0) - 1), null);+          --h$sp;+          h$r1 = h$RTS_102;+          return h$stack[h$sp];+        };+      };+    case (5):+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("panic: h$ap_1_0, unexpected closure type: " + h$RTS_96.t));+  };+};+h$o(h$ap_1_0, (-1), 0, 0, 256, null);+function h$ap_1_1()+{+  var h$RTS_107 = h$r1.f;+  switch (h$RTS_107.t)+  {+    case (0):+      return h$RTS_107;+    case (1):+      var h$RTS_109 = h$RTS_107.a;+      var h$RTS_110 = (h$RTS_109 & 255);+      if((1 === h$RTS_110))+      {+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 2;+        return h$RTS_107;+      }+      else+      {+        if((1 > h$RTS_110))+        {+          var h$RTS_111 = (h$RTS_109 >> 8);+          switch (h$RTS_111)+          {+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_111;+          var h$RTS_112 = h$apply[((1 - h$RTS_110) | ((1 - h$RTS_111) << 8))];+          h$stack[h$sp] = h$RTS_112;+          return h$RTS_107;+        }+        else+        {+          var h$RTS_108 = h$c3(h$pap_1, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 256) - 1), h$stack[(h$sp - 1)]);+          h$sp -= 2;+          h$r1 = h$RTS_108;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_114 = h$r1.d2.d1;+      var h$RTS_115 = (h$RTS_114 & 255);+      if((1 === h$RTS_115))+      {+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 2;+        return h$RTS_107;+      }+      else+      {+        if((1 > h$RTS_115))+        {+          var h$RTS_116 = (h$RTS_114 >> 8);+          switch (h$RTS_116)+          {+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_116;+          var h$RTS_117 = h$apply[((1 - h$RTS_115) | ((1 - h$RTS_116) << 8))];+          h$stack[h$sp] = h$RTS_117;+          return h$RTS_107;+        }+        else+        {+          var h$RTS_113 = h$c3(h$pap_1, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 256) - 1), h$stack[(h$sp - 1)]);+          h$sp -= 2;+          h$r1 = h$RTS_113;+          return h$stack[h$sp];+        };+      };+    case (5):+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("panic: h$ap_1_1, unexpected closure type: " + h$RTS_107.t));+  };+};+h$o(h$ap_1_1, (-1), 0, 1, 256, null);+function h$ap_1_2()+{+  var h$RTS_118 = h$r1.f;+  switch (h$RTS_118.t)+  {+    case (0):+      return h$RTS_118;+    case (1):+      var h$RTS_120 = h$RTS_118.a;+      var h$RTS_121 = (h$RTS_120 & 255);+      if((1 === h$RTS_121))+      {+        h$r3 = h$stack[(h$sp - 2)];+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 3;+        return h$RTS_118;+      }+      else+      {+        if((1 > h$RTS_121))+        {+          var h$RTS_122 = (h$RTS_120 >> 8);+          switch (h$RTS_122)+          {+            case (2):+              h$r3 = h$stack[(h$sp - 2)];+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_122;+          var h$RTS_123 = h$apply[((1 - h$RTS_121) | ((2 - h$RTS_122) << 8))];+          h$stack[h$sp] = h$RTS_123;+          return h$RTS_118;+        }+        else+        {+          var h$RTS_119 = h$c4(h$pap_2, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 512) - 1), h$stack[(h$sp - 1)],+          h$stack[(h$sp - 2)]);+          h$sp -= 3;+          h$r1 = h$RTS_119;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_125 = h$r1.d2.d1;+      var h$RTS_126 = (h$RTS_125 & 255);+      if((1 === h$RTS_126))+      {+        h$r3 = h$stack[(h$sp - 2)];+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 3;+        return h$RTS_118;+      }+      else+      {+        if((1 > h$RTS_126))+        {+          var h$RTS_127 = (h$RTS_125 >> 8);+          switch (h$RTS_127)+          {+            case (2):+              h$r3 = h$stack[(h$sp - 2)];+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_127;+          var h$RTS_128 = h$apply[((1 - h$RTS_126) | ((2 - h$RTS_127) << 8))];+          h$stack[h$sp] = h$RTS_128;+          return h$RTS_118;+        }+        else+        {+          var h$RTS_124 = h$c4(h$pap_2, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 512) - 1), h$stack[(h$sp - 1)],+          h$stack[(h$sp - 2)]);+          h$sp -= 3;+          h$r1 = h$RTS_124;+          return h$stack[h$sp];+        };+      };+    case (5):+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("panic: h$ap_1_2, unexpected closure type: " + h$RTS_118.t));+  };+};+h$o(h$ap_1_2, (-1), 0, 2, 256, null);+function h$ap_2_1()+{+  var h$RTS_129 = h$r1.f;+  switch (h$RTS_129.t)+  {+    case (0):+      return h$RTS_129;+    case (1):+      var h$RTS_131 = h$RTS_129.a;+      var h$RTS_132 = (h$RTS_131 & 255);+      if((2 === h$RTS_132))+      {+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 2;+        return h$RTS_129;+      }+      else+      {+        if((2 > h$RTS_132))+        {+          var h$RTS_133 = (h$RTS_131 >> 8);+          switch (h$RTS_133)+          {+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_133;+          var h$RTS_134 = h$apply[((2 - h$RTS_132) | ((1 - h$RTS_133) << 8))];+          h$stack[h$sp] = h$RTS_134;+          return h$RTS_129;+        }+        else+        {+          var h$RTS_130 = h$c3(h$pap_1, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 256) - 2), h$stack[(h$sp - 1)]);+          h$sp -= 2;+          h$r1 = h$RTS_130;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_136 = h$r1.d2.d1;+      var h$RTS_137 = (h$RTS_136 & 255);+      if((2 === h$RTS_137))+      {+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 2;+        return h$RTS_129;+      }+      else+      {+        if((2 > h$RTS_137))+        {+          var h$RTS_138 = (h$RTS_136 >> 8);+          switch (h$RTS_138)+          {+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_138;+          var h$RTS_139 = h$apply[((2 - h$RTS_137) | ((1 - h$RTS_138) << 8))];+          h$stack[h$sp] = h$RTS_139;+          return h$RTS_129;+        }+        else+        {+          var h$RTS_135 = h$c3(h$pap_1, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 256) - 2), h$stack[(h$sp - 1)]);+          h$sp -= 2;+          h$r1 = h$RTS_135;+          return h$stack[h$sp];+        };+      };+    case (5):+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("panic: h$ap_2_1, unexpected closure type: " + h$RTS_129.t));+  };+};+h$o(h$ap_2_1, (-1), 0, 1, 256, null);+function h$ap_2_2()+{+  var h$RTS_140 = h$r1.f;+  switch (h$RTS_140.t)+  {+    case (0):+      return h$RTS_140;+    case (1):+      var h$RTS_142 = h$RTS_140.a;+      var h$RTS_143 = (h$RTS_142 & 255);+      if((2 === h$RTS_143))+      {+        h$r3 = h$stack[(h$sp - 2)];+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 3;+        return h$RTS_140;+      }+      else+      {+        if((2 > h$RTS_143))+        {+          var h$RTS_144 = (h$RTS_142 >> 8);+          switch (h$RTS_144)+          {+            case (2):+              h$r3 = h$stack[(h$sp - 2)];+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_144;+          var h$RTS_145 = h$apply[((2 - h$RTS_143) | ((2 - h$RTS_144) << 8))];+          h$stack[h$sp] = h$RTS_145;+          return h$RTS_140;+        }+        else+        {+          var h$RTS_141 = h$c4(h$pap_2, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 512) - 2), h$stack[(h$sp - 1)],+          h$stack[(h$sp - 2)]);+          h$sp -= 3;+          h$r1 = h$RTS_141;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_147 = h$r1.d2.d1;+      var h$RTS_148 = (h$RTS_147 & 255);+      if((2 === h$RTS_148))+      {+        h$r3 = h$stack[(h$sp - 2)];+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 3;+        return h$RTS_140;+      }+      else+      {+        if((2 > h$RTS_148))+        {+          var h$RTS_149 = (h$RTS_147 >> 8);+          switch (h$RTS_149)+          {+            case (2):+              h$r3 = h$stack[(h$sp - 2)];+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_149;+          var h$RTS_150 = h$apply[((2 - h$RTS_148) | ((2 - h$RTS_149) << 8))];+          h$stack[h$sp] = h$RTS_150;+          return h$RTS_140;+        }+        else+        {+          var h$RTS_146 = h$c4(h$pap_2, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 512) - 2), h$stack[(h$sp - 1)],+          h$stack[(h$sp - 2)]);+          h$sp -= 3;+          h$r1 = h$RTS_146;+          return h$stack[h$sp];+        };+      };+    case (5):+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("panic: h$ap_2_2, unexpected closure type: " + h$RTS_140.t));+  };+};+h$o(h$ap_2_2, (-1), 0, 2, 256, null);+function h$ap_2_3()+{+  var h$RTS_151 = h$r1.f;+  switch (h$RTS_151.t)+  {+    case (0):+      return h$RTS_151;+    case (1):+      var h$RTS_153 = h$RTS_151.a;+      var h$RTS_154 = (h$RTS_153 & 255);+      if((2 === h$RTS_154))+      {+        h$r4 = h$stack[(h$sp - 3)];+        h$r3 = h$stack[(h$sp - 2)];+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 4;+        return h$RTS_151;+      }+      else+      {+        if((2 > h$RTS_154))+        {+          var h$RTS_155 = (h$RTS_153 >> 8);+          switch (h$RTS_155)+          {+            case (3):+              h$r4 = h$stack[(h$sp - 3)];+            case (2):+              h$r3 = h$stack[(h$sp - 2)];+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_155;+          var h$RTS_156 = h$apply[((2 - h$RTS_154) | ((3 - h$RTS_155) << 8))];+          h$stack[h$sp] = h$RTS_156;+          return h$RTS_151;+        }+        else+        {+          var h$RTS_152 = h$c5(h$pap_3, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 768) - 2), h$stack[(h$sp - 1)],+          h$stack[(h$sp - 2)], h$stack[(h$sp - 3)]);+          h$sp -= 4;+          h$r1 = h$RTS_152;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_158 = h$r1.d2.d1;+      var h$RTS_159 = (h$RTS_158 & 255);+      if((2 === h$RTS_159))+      {+        h$r4 = h$stack[(h$sp - 3)];+        h$r3 = h$stack[(h$sp - 2)];+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 4;+        return h$RTS_151;+      }+      else+      {+        if((2 > h$RTS_159))+        {+          var h$RTS_160 = (h$RTS_158 >> 8);+          switch (h$RTS_160)+          {+            case (3):+              h$r4 = h$stack[(h$sp - 3)];+            case (2):+              h$r3 = h$stack[(h$sp - 2)];+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_160;+          var h$RTS_161 = h$apply[((2 - h$RTS_159) | ((3 - h$RTS_160) << 8))];+          h$stack[h$sp] = h$RTS_161;+          return h$RTS_151;+        }+        else+        {+          var h$RTS_157 = h$c5(h$pap_3, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 768) - 2), h$stack[(h$sp - 1)],+          h$stack[(h$sp - 2)], h$stack[(h$sp - 3)]);+          h$sp -= 4;+          h$r1 = h$RTS_157;+          return h$stack[h$sp];+        };+      };+    case (5):+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("panic: h$ap_2_3, unexpected closure type: " + h$RTS_151.t));+  };+};+h$o(h$ap_2_3, (-1), 0, 3, 256, null);+function h$ap_2_4()+{+  var h$RTS_162 = h$r1.f;+  switch (h$RTS_162.t)+  {+    case (0):+      return h$RTS_162;+    case (1):+      var h$RTS_164 = h$RTS_162.a;+      var h$RTS_165 = (h$RTS_164 & 255);+      if((2 === h$RTS_165))+      {+        h$r5 = h$stack[(h$sp - 4)];+        h$r4 = h$stack[(h$sp - 3)];+        h$r3 = h$stack[(h$sp - 2)];+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 5;+        return h$RTS_162;+      }+      else+      {+        if((2 > h$RTS_165))+        {+          var h$RTS_166 = (h$RTS_164 >> 8);+          switch (h$RTS_166)+          {+            case (4):+              h$r5 = h$stack[(h$sp - 4)];+            case (3):+              h$r4 = h$stack[(h$sp - 3)];+            case (2):+              h$r3 = h$stack[(h$sp - 2)];+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_166;+          var h$RTS_167 = h$apply[((2 - h$RTS_165) | ((4 - h$RTS_166) << 8))];+          h$stack[h$sp] = h$RTS_167;+          return h$RTS_162;+        }+        else+        {+          var h$RTS_163 = h$c6(h$pap_4, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 1024) - 2), h$stack[(h$sp - 1)],+          h$stack[(h$sp - 2)], h$stack[(h$sp - 3)], h$stack[(h$sp - 4)]);+          h$sp -= 5;+          h$r1 = h$RTS_163;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_169 = h$r1.d2.d1;+      var h$RTS_170 = (h$RTS_169 & 255);+      if((2 === h$RTS_170))+      {+        h$r5 = h$stack[(h$sp - 4)];+        h$r4 = h$stack[(h$sp - 3)];+        h$r3 = h$stack[(h$sp - 2)];+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 5;+        return h$RTS_162;+      }+      else+      {+        if((2 > h$RTS_170))+        {+          var h$RTS_171 = (h$RTS_169 >> 8);+          switch (h$RTS_171)+          {+            case (4):+              h$r5 = h$stack[(h$sp - 4)];+            case (3):+              h$r4 = h$stack[(h$sp - 3)];+            case (2):+              h$r3 = h$stack[(h$sp - 2)];+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_171;+          var h$RTS_172 = h$apply[((2 - h$RTS_170) | ((4 - h$RTS_171) << 8))];+          h$stack[h$sp] = h$RTS_172;+          return h$RTS_162;+        }+        else+        {+          var h$RTS_168 = h$c6(h$pap_4, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 1024) - 2), h$stack[(h$sp - 1)],+          h$stack[(h$sp - 2)], h$stack[(h$sp - 3)], h$stack[(h$sp - 4)]);+          h$sp -= 5;+          h$r1 = h$RTS_168;+          return h$stack[h$sp];+        };+      };+    case (5):+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("panic: h$ap_2_4, unexpected closure type: " + h$RTS_162.t));+  };+};+h$o(h$ap_2_4, (-1), 0, 4, 256, null);+function h$ap_3_2()+{+  var h$RTS_173 = h$r1.f;+  switch (h$RTS_173.t)+  {+    case (0):+      return h$RTS_173;+    case (1):+      var h$RTS_175 = h$RTS_173.a;+      var h$RTS_176 = (h$RTS_175 & 255);+      if((3 === h$RTS_176))+      {+        h$r3 = h$stack[(h$sp - 2)];+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 3;+        return h$RTS_173;+      }+      else+      {+        if((3 > h$RTS_176))+        {+          var h$RTS_177 = (h$RTS_175 >> 8);+          switch (h$RTS_177)+          {+            case (2):+              h$r3 = h$stack[(h$sp - 2)];+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_177;+          var h$RTS_178 = h$apply[((3 - h$RTS_176) | ((2 - h$RTS_177) << 8))];+          h$stack[h$sp] = h$RTS_178;+          return h$RTS_173;+        }+        else+        {+          var h$RTS_174 = h$c4(h$pap_2, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 512) - 3), h$stack[(h$sp - 1)],+          h$stack[(h$sp - 2)]);+          h$sp -= 3;+          h$r1 = h$RTS_174;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_180 = h$r1.d2.d1;+      var h$RTS_181 = (h$RTS_180 & 255);+      if((3 === h$RTS_181))+      {+        h$r3 = h$stack[(h$sp - 2)];+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 3;+        return h$RTS_173;+      }+      else+      {+        if((3 > h$RTS_181))+        {+          var h$RTS_182 = (h$RTS_180 >> 8);+          switch (h$RTS_182)+          {+            case (2):+              h$r3 = h$stack[(h$sp - 2)];+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_182;+          var h$RTS_183 = h$apply[((3 - h$RTS_181) | ((2 - h$RTS_182) << 8))];+          h$stack[h$sp] = h$RTS_183;+          return h$RTS_173;+        }+        else+        {+          var h$RTS_179 = h$c4(h$pap_2, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 512) - 3), h$stack[(h$sp - 1)],+          h$stack[(h$sp - 2)]);+          h$sp -= 3;+          h$r1 = h$RTS_179;+          return h$stack[h$sp];+        };+      };+    case (5):+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("panic: h$ap_3_2, unexpected closure type: " + h$RTS_173.t));+  };+};+h$o(h$ap_3_2, (-1), 0, 2, 256, null);+function h$ap_3_3()+{+  var h$RTS_184 = h$r1.f;+  switch (h$RTS_184.t)+  {+    case (0):+      return h$RTS_184;+    case (1):+      var h$RTS_186 = h$RTS_184.a;+      var h$RTS_187 = (h$RTS_186 & 255);+      if((3 === h$RTS_187))+      {+        h$r4 = h$stack[(h$sp - 3)];+        h$r3 = h$stack[(h$sp - 2)];+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 4;+        return h$RTS_184;+      }+      else+      {+        if((3 > h$RTS_187))+        {+          var h$RTS_188 = (h$RTS_186 >> 8);+          switch (h$RTS_188)+          {+            case (3):+              h$r4 = h$stack[(h$sp - 3)];+            case (2):+              h$r3 = h$stack[(h$sp - 2)];+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_188;+          var h$RTS_189 = h$apply[((3 - h$RTS_187) | ((3 - h$RTS_188) << 8))];+          h$stack[h$sp] = h$RTS_189;+          return h$RTS_184;+        }+        else+        {+          var h$RTS_185 = h$c5(h$pap_3, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 768) - 3), h$stack[(h$sp - 1)],+          h$stack[(h$sp - 2)], h$stack[(h$sp - 3)]);+          h$sp -= 4;+          h$r1 = h$RTS_185;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_191 = h$r1.d2.d1;+      var h$RTS_192 = (h$RTS_191 & 255);+      if((3 === h$RTS_192))+      {+        h$r4 = h$stack[(h$sp - 3)];+        h$r3 = h$stack[(h$sp - 2)];+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 4;+        return h$RTS_184;+      }+      else+      {+        if((3 > h$RTS_192))+        {+          var h$RTS_193 = (h$RTS_191 >> 8);+          switch (h$RTS_193)+          {+            case (3):+              h$r4 = h$stack[(h$sp - 3)];+            case (2):+              h$r3 = h$stack[(h$sp - 2)];+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_193;+          var h$RTS_194 = h$apply[((3 - h$RTS_192) | ((3 - h$RTS_193) << 8))];+          h$stack[h$sp] = h$RTS_194;+          return h$RTS_184;+        }+        else+        {+          var h$RTS_190 = h$c5(h$pap_3, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 768) - 3), h$stack[(h$sp - 1)],+          h$stack[(h$sp - 2)], h$stack[(h$sp - 3)]);+          h$sp -= 4;+          h$r1 = h$RTS_190;+          return h$stack[h$sp];+        };+      };+    case (5):+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("panic: h$ap_3_3, unexpected closure type: " + h$RTS_184.t));+  };+};+h$o(h$ap_3_3, (-1), 0, 3, 256, null);+function h$ap_3_4()+{+  var h$RTS_195 = h$r1.f;+  switch (h$RTS_195.t)+  {+    case (0):+      return h$RTS_195;+    case (1):+      var h$RTS_197 = h$RTS_195.a;+      var h$RTS_198 = (h$RTS_197 & 255);+      if((3 === h$RTS_198))+      {+        h$r5 = h$stack[(h$sp - 4)];+        h$r4 = h$stack[(h$sp - 3)];+        h$r3 = h$stack[(h$sp - 2)];+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 5;+        return h$RTS_195;+      }+      else+      {+        if((3 > h$RTS_198))+        {+          var h$RTS_199 = (h$RTS_197 >> 8);+          switch (h$RTS_199)+          {+            case (4):+              h$r5 = h$stack[(h$sp - 4)];+            case (3):+              h$r4 = h$stack[(h$sp - 3)];+            case (2):+              h$r3 = h$stack[(h$sp - 2)];+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_199;+          var h$RTS_200 = h$apply[((3 - h$RTS_198) | ((4 - h$RTS_199) << 8))];+          h$stack[h$sp] = h$RTS_200;+          return h$RTS_195;+        }+        else+        {+          var h$RTS_196 = h$c6(h$pap_4, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 1024) - 3), h$stack[(h$sp - 1)],+          h$stack[(h$sp - 2)], h$stack[(h$sp - 3)], h$stack[(h$sp - 4)]);+          h$sp -= 5;+          h$r1 = h$RTS_196;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_202 = h$r1.d2.d1;+      var h$RTS_203 = (h$RTS_202 & 255);+      if((3 === h$RTS_203))+      {+        h$r5 = h$stack[(h$sp - 4)];+        h$r4 = h$stack[(h$sp - 3)];+        h$r3 = h$stack[(h$sp - 2)];+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 5;+        return h$RTS_195;+      }+      else+      {+        if((3 > h$RTS_203))+        {+          var h$RTS_204 = (h$RTS_202 >> 8);+          switch (h$RTS_204)+          {+            case (4):+              h$r5 = h$stack[(h$sp - 4)];+            case (3):+              h$r4 = h$stack[(h$sp - 3)];+            case (2):+              h$r3 = h$stack[(h$sp - 2)];+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_204;+          var h$RTS_205 = h$apply[((3 - h$RTS_203) | ((4 - h$RTS_204) << 8))];+          h$stack[h$sp] = h$RTS_205;+          return h$RTS_195;+        }+        else+        {+          var h$RTS_201 = h$c6(h$pap_4, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 1024) - 3), h$stack[(h$sp - 1)],+          h$stack[(h$sp - 2)], h$stack[(h$sp - 3)], h$stack[(h$sp - 4)]);+          h$sp -= 5;+          h$r1 = h$RTS_201;+          return h$stack[h$sp];+        };+      };+    case (5):+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("panic: h$ap_3_4, unexpected closure type: " + h$RTS_195.t));+  };+};+h$o(h$ap_3_4, (-1), 0, 4, 256, null);+function h$ap_3_5()+{+  var h$RTS_206 = h$r1.f;+  switch (h$RTS_206.t)+  {+    case (0):+      return h$RTS_206;+    case (1):+      var h$RTS_208 = h$RTS_206.a;+      var h$RTS_209 = (h$RTS_208 & 255);+      if((3 === h$RTS_209))+      {+        h$r6 = h$stack[(h$sp - 5)];+        h$r5 = h$stack[(h$sp - 4)];+        h$r4 = h$stack[(h$sp - 3)];+        h$r3 = h$stack[(h$sp - 2)];+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 6;+        return h$RTS_206;+      }+      else+      {+        if((3 > h$RTS_209))+        {+          var h$RTS_210 = (h$RTS_208 >> 8);+          switch (h$RTS_210)+          {+            case (5):+              h$r6 = h$stack[(h$sp - 5)];+            case (4):+              h$r5 = h$stack[(h$sp - 4)];+            case (3):+              h$r4 = h$stack[(h$sp - 3)];+            case (2):+              h$r3 = h$stack[(h$sp - 2)];+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_210;+          var h$RTS_211 = h$apply[((3 - h$RTS_209) | ((5 - h$RTS_210) << 8))];+          h$stack[h$sp] = h$RTS_211;+          return h$RTS_206;+        }+        else+        {+          var h$RTS_207 = h$c7(h$pap_5, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 1280) - 3), h$stack[(h$sp - 1)],+          h$stack[(h$sp - 2)], h$stack[(h$sp - 3)], h$stack[(h$sp - 4)], h$stack[(h$sp - 5)]);+          h$sp -= 6;+          h$r1 = h$RTS_207;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_213 = h$r1.d2.d1;+      var h$RTS_214 = (h$RTS_213 & 255);+      if((3 === h$RTS_214))+      {+        h$r6 = h$stack[(h$sp - 5)];+        h$r5 = h$stack[(h$sp - 4)];+        h$r4 = h$stack[(h$sp - 3)];+        h$r3 = h$stack[(h$sp - 2)];+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 6;+        return h$RTS_206;+      }+      else+      {+        if((3 > h$RTS_214))+        {+          var h$RTS_215 = (h$RTS_213 >> 8);+          switch (h$RTS_215)+          {+            case (5):+              h$r6 = h$stack[(h$sp - 5)];+            case (4):+              h$r5 = h$stack[(h$sp - 4)];+            case (3):+              h$r4 = h$stack[(h$sp - 3)];+            case (2):+              h$r3 = h$stack[(h$sp - 2)];+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_215;+          var h$RTS_216 = h$apply[((3 - h$RTS_214) | ((5 - h$RTS_215) << 8))];+          h$stack[h$sp] = h$RTS_216;+          return h$RTS_206;+        }+        else+        {+          var h$RTS_212 = h$c7(h$pap_5, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 1280) - 3), h$stack[(h$sp - 1)],+          h$stack[(h$sp - 2)], h$stack[(h$sp - 3)], h$stack[(h$sp - 4)], h$stack[(h$sp - 5)]);+          h$sp -= 6;+          h$r1 = h$RTS_212;+          return h$stack[h$sp];+        };+      };+    case (5):+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("panic: h$ap_3_5, unexpected closure type: " + h$RTS_206.t));+  };+};+h$o(h$ap_3_5, (-1), 0, 5, 256, null);+function h$ap_3_6()+{+  var h$RTS_217 = h$r1.f;+  switch (h$RTS_217.t)+  {+    case (0):+      return h$RTS_217;+    case (1):+      var h$RTS_219 = h$RTS_217.a;+      var h$RTS_220 = (h$RTS_219 & 255);+      if((3 === h$RTS_220))+      {+        h$r7 = h$stack[(h$sp - 6)];+        h$r6 = h$stack[(h$sp - 5)];+        h$r5 = h$stack[(h$sp - 4)];+        h$r4 = h$stack[(h$sp - 3)];+        h$r3 = h$stack[(h$sp - 2)];+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 7;+        return h$RTS_217;+      }+      else+      {+        if((3 > h$RTS_220))+        {+          var h$RTS_221 = (h$RTS_219 >> 8);+          switch (h$RTS_221)+          {+            case (6):+              h$r7 = h$stack[(h$sp - 6)];+            case (5):+              h$r6 = h$stack[(h$sp - 5)];+            case (4):+              h$r5 = h$stack[(h$sp - 4)];+            case (3):+              h$r4 = h$stack[(h$sp - 3)];+            case (2):+              h$r3 = h$stack[(h$sp - 2)];+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_221;+          var h$RTS_222 = h$apply[((3 - h$RTS_220) | ((6 - h$RTS_221) << 8))];+          h$stack[h$sp] = h$RTS_222;+          return h$RTS_217;+        }+        else+        {+          var h$RTS_218 = h$c8(h$pap_6, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 1536) - 3), h$stack[(h$sp - 1)],+          h$stack[(h$sp - 2)], h$stack[(h$sp - 3)], h$stack[(h$sp - 4)], h$stack[(h$sp - 5)], h$stack[(h$sp - 6)]);+          h$sp -= 7;+          h$r1 = h$RTS_218;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_224 = h$r1.d2.d1;+      var h$RTS_225 = (h$RTS_224 & 255);+      if((3 === h$RTS_225))+      {+        h$r7 = h$stack[(h$sp - 6)];+        h$r6 = h$stack[(h$sp - 5)];+        h$r5 = h$stack[(h$sp - 4)];+        h$r4 = h$stack[(h$sp - 3)];+        h$r3 = h$stack[(h$sp - 2)];+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 7;+        return h$RTS_217;+      }+      else+      {+        if((3 > h$RTS_225))+        {+          var h$RTS_226 = (h$RTS_224 >> 8);+          switch (h$RTS_226)+          {+            case (6):+              h$r7 = h$stack[(h$sp - 6)];+            case (5):+              h$r6 = h$stack[(h$sp - 5)];+            case (4):+              h$r5 = h$stack[(h$sp - 4)];+            case (3):+              h$r4 = h$stack[(h$sp - 3)];+            case (2):+              h$r3 = h$stack[(h$sp - 2)];+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_226;+          var h$RTS_227 = h$apply[((3 - h$RTS_225) | ((6 - h$RTS_226) << 8))];+          h$stack[h$sp] = h$RTS_227;+          return h$RTS_217;+        }+        else+        {+          var h$RTS_223 = h$c8(h$pap_6, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 1536) - 3), h$stack[(h$sp - 1)],+          h$stack[(h$sp - 2)], h$stack[(h$sp - 3)], h$stack[(h$sp - 4)], h$stack[(h$sp - 5)], h$stack[(h$sp - 6)]);+          h$sp -= 7;+          h$r1 = h$RTS_223;+          return h$stack[h$sp];+        };+      };+    case (5):+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("panic: h$ap_3_6, unexpected closure type: " + h$RTS_217.t));+  };+};+h$o(h$ap_3_6, (-1), 0, 6, 256, null);+function h$ap_4_3()+{+  var h$RTS_228 = h$r1.f;+  switch (h$RTS_228.t)+  {+    case (0):+      return h$RTS_228;+    case (1):+      var h$RTS_230 = h$RTS_228.a;+      var h$RTS_231 = (h$RTS_230 & 255);+      if((4 === h$RTS_231))+      {+        h$r4 = h$stack[(h$sp - 3)];+        h$r3 = h$stack[(h$sp - 2)];+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 4;+        return h$RTS_228;+      }+      else+      {+        if((4 > h$RTS_231))+        {+          var h$RTS_232 = (h$RTS_230 >> 8);+          switch (h$RTS_232)+          {+            case (3):+              h$r4 = h$stack[(h$sp - 3)];+            case (2):+              h$r3 = h$stack[(h$sp - 2)];+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_232;+          var h$RTS_233 = h$apply[((4 - h$RTS_231) | ((3 - h$RTS_232) << 8))];+          h$stack[h$sp] = h$RTS_233;+          return h$RTS_228;+        }+        else+        {+          var h$RTS_229 = h$c5(h$pap_3, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 768) - 4), h$stack[(h$sp - 1)],+          h$stack[(h$sp - 2)], h$stack[(h$sp - 3)]);+          h$sp -= 4;+          h$r1 = h$RTS_229;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_235 = h$r1.d2.d1;+      var h$RTS_236 = (h$RTS_235 & 255);+      if((4 === h$RTS_236))+      {+        h$r4 = h$stack[(h$sp - 3)];+        h$r3 = h$stack[(h$sp - 2)];+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 4;+        return h$RTS_228;+      }+      else+      {+        if((4 > h$RTS_236))+        {+          var h$RTS_237 = (h$RTS_235 >> 8);+          switch (h$RTS_237)+          {+            case (3):+              h$r4 = h$stack[(h$sp - 3)];+            case (2):+              h$r3 = h$stack[(h$sp - 2)];+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_237;+          var h$RTS_238 = h$apply[((4 - h$RTS_236) | ((3 - h$RTS_237) << 8))];+          h$stack[h$sp] = h$RTS_238;+          return h$RTS_228;+        }+        else+        {+          var h$RTS_234 = h$c5(h$pap_3, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 768) - 4), h$stack[(h$sp - 1)],+          h$stack[(h$sp - 2)], h$stack[(h$sp - 3)]);+          h$sp -= 4;+          h$r1 = h$RTS_234;+          return h$stack[h$sp];+        };+      };+    case (5):+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("panic: h$ap_4_3, unexpected closure type: " + h$RTS_228.t));+  };+};+h$o(h$ap_4_3, (-1), 0, 3, 256, null);+function h$ap_4_4()+{+  var h$RTS_239 = h$r1.f;+  switch (h$RTS_239.t)+  {+    case (0):+      return h$RTS_239;+    case (1):+      var h$RTS_241 = h$RTS_239.a;+      var h$RTS_242 = (h$RTS_241 & 255);+      if((4 === h$RTS_242))+      {+        h$r5 = h$stack[(h$sp - 4)];+        h$r4 = h$stack[(h$sp - 3)];+        h$r3 = h$stack[(h$sp - 2)];+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 5;+        return h$RTS_239;+      }+      else+      {+        if((4 > h$RTS_242))+        {+          var h$RTS_243 = (h$RTS_241 >> 8);+          switch (h$RTS_243)+          {+            case (4):+              h$r5 = h$stack[(h$sp - 4)];+            case (3):+              h$r4 = h$stack[(h$sp - 3)];+            case (2):+              h$r3 = h$stack[(h$sp - 2)];+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_243;+          var h$RTS_244 = h$apply[((4 - h$RTS_242) | ((4 - h$RTS_243) << 8))];+          h$stack[h$sp] = h$RTS_244;+          return h$RTS_239;+        }+        else+        {+          var h$RTS_240 = h$c6(h$pap_4, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 1024) - 4), h$stack[(h$sp - 1)],+          h$stack[(h$sp - 2)], h$stack[(h$sp - 3)], h$stack[(h$sp - 4)]);+          h$sp -= 5;+          h$r1 = h$RTS_240;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_246 = h$r1.d2.d1;+      var h$RTS_247 = (h$RTS_246 & 255);+      if((4 === h$RTS_247))+      {+        h$r5 = h$stack[(h$sp - 4)];+        h$r4 = h$stack[(h$sp - 3)];+        h$r3 = h$stack[(h$sp - 2)];+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 5;+        return h$RTS_239;+      }+      else+      {+        if((4 > h$RTS_247))+        {+          var h$RTS_248 = (h$RTS_246 >> 8);+          switch (h$RTS_248)+          {+            case (4):+              h$r5 = h$stack[(h$sp - 4)];+            case (3):+              h$r4 = h$stack[(h$sp - 3)];+            case (2):+              h$r3 = h$stack[(h$sp - 2)];+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_248;+          var h$RTS_249 = h$apply[((4 - h$RTS_247) | ((4 - h$RTS_248) << 8))];+          h$stack[h$sp] = h$RTS_249;+          return h$RTS_239;+        }+        else+        {+          var h$RTS_245 = h$c6(h$pap_4, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 1024) - 4), h$stack[(h$sp - 1)],+          h$stack[(h$sp - 2)], h$stack[(h$sp - 3)], h$stack[(h$sp - 4)]);+          h$sp -= 5;+          h$r1 = h$RTS_245;+          return h$stack[h$sp];+        };+      };+    case (5):+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("panic: h$ap_4_4, unexpected closure type: " + h$RTS_239.t));+  };+};+h$o(h$ap_4_4, (-1), 0, 4, 256, null);+function h$ap_4_5()+{+  var h$RTS_250 = h$r1.f;+  switch (h$RTS_250.t)+  {+    case (0):+      return h$RTS_250;+    case (1):+      var h$RTS_252 = h$RTS_250.a;+      var h$RTS_253 = (h$RTS_252 & 255);+      if((4 === h$RTS_253))+      {+        h$r6 = h$stack[(h$sp - 5)];+        h$r5 = h$stack[(h$sp - 4)];+        h$r4 = h$stack[(h$sp - 3)];+        h$r3 = h$stack[(h$sp - 2)];+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 6;+        return h$RTS_250;+      }+      else+      {+        if((4 > h$RTS_253))+        {+          var h$RTS_254 = (h$RTS_252 >> 8);+          switch (h$RTS_254)+          {+            case (5):+              h$r6 = h$stack[(h$sp - 5)];+            case (4):+              h$r5 = h$stack[(h$sp - 4)];+            case (3):+              h$r4 = h$stack[(h$sp - 3)];+            case (2):+              h$r3 = h$stack[(h$sp - 2)];+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_254;+          var h$RTS_255 = h$apply[((4 - h$RTS_253) | ((5 - h$RTS_254) << 8))];+          h$stack[h$sp] = h$RTS_255;+          return h$RTS_250;+        }+        else+        {+          var h$RTS_251 = h$c7(h$pap_5, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 1280) - 4), h$stack[(h$sp - 1)],+          h$stack[(h$sp - 2)], h$stack[(h$sp - 3)], h$stack[(h$sp - 4)], h$stack[(h$sp - 5)]);+          h$sp -= 6;+          h$r1 = h$RTS_251;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_257 = h$r1.d2.d1;+      var h$RTS_258 = (h$RTS_257 & 255);+      if((4 === h$RTS_258))+      {+        h$r6 = h$stack[(h$sp - 5)];+        h$r5 = h$stack[(h$sp - 4)];+        h$r4 = h$stack[(h$sp - 3)];+        h$r3 = h$stack[(h$sp - 2)];+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 6;+        return h$RTS_250;+      }+      else+      {+        if((4 > h$RTS_258))+        {+          var h$RTS_259 = (h$RTS_257 >> 8);+          switch (h$RTS_259)+          {+            case (5):+              h$r6 = h$stack[(h$sp - 5)];+            case (4):+              h$r5 = h$stack[(h$sp - 4)];+            case (3):+              h$r4 = h$stack[(h$sp - 3)];+            case (2):+              h$r3 = h$stack[(h$sp - 2)];+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_259;+          var h$RTS_260 = h$apply[((4 - h$RTS_258) | ((5 - h$RTS_259) << 8))];+          h$stack[h$sp] = h$RTS_260;+          return h$RTS_250;+        }+        else+        {+          var h$RTS_256 = h$c7(h$pap_5, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 1280) - 4), h$stack[(h$sp - 1)],+          h$stack[(h$sp - 2)], h$stack[(h$sp - 3)], h$stack[(h$sp - 4)], h$stack[(h$sp - 5)]);+          h$sp -= 6;+          h$r1 = h$RTS_256;+          return h$stack[h$sp];+        };+      };+    case (5):+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("panic: h$ap_4_5, unexpected closure type: " + h$RTS_250.t));+  };+};+h$o(h$ap_4_5, (-1), 0, 5, 256, null);+function h$ap_4_6()+{+  var h$RTS_261 = h$r1.f;+  switch (h$RTS_261.t)+  {+    case (0):+      return h$RTS_261;+    case (1):+      var h$RTS_263 = h$RTS_261.a;+      var h$RTS_264 = (h$RTS_263 & 255);+      if((4 === h$RTS_264))+      {+        h$r7 = h$stack[(h$sp - 6)];+        h$r6 = h$stack[(h$sp - 5)];+        h$r5 = h$stack[(h$sp - 4)];+        h$r4 = h$stack[(h$sp - 3)];+        h$r3 = h$stack[(h$sp - 2)];+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 7;+        return h$RTS_261;+      }+      else+      {+        if((4 > h$RTS_264))+        {+          var h$RTS_265 = (h$RTS_263 >> 8);+          switch (h$RTS_265)+          {+            case (6):+              h$r7 = h$stack[(h$sp - 6)];+            case (5):+              h$r6 = h$stack[(h$sp - 5)];+            case (4):+              h$r5 = h$stack[(h$sp - 4)];+            case (3):+              h$r4 = h$stack[(h$sp - 3)];+            case (2):+              h$r3 = h$stack[(h$sp - 2)];+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_265;+          var h$RTS_266 = h$apply[((4 - h$RTS_264) | ((6 - h$RTS_265) << 8))];+          h$stack[h$sp] = h$RTS_266;+          return h$RTS_261;+        }+        else+        {+          var h$RTS_262 = h$c8(h$pap_6, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 1536) - 4), h$stack[(h$sp - 1)],+          h$stack[(h$sp - 2)], h$stack[(h$sp - 3)], h$stack[(h$sp - 4)], h$stack[(h$sp - 5)], h$stack[(h$sp - 6)]);+          h$sp -= 7;+          h$r1 = h$RTS_262;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_268 = h$r1.d2.d1;+      var h$RTS_269 = (h$RTS_268 & 255);+      if((4 === h$RTS_269))+      {+        h$r7 = h$stack[(h$sp - 6)];+        h$r6 = h$stack[(h$sp - 5)];+        h$r5 = h$stack[(h$sp - 4)];+        h$r4 = h$stack[(h$sp - 3)];+        h$r3 = h$stack[(h$sp - 2)];+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 7;+        return h$RTS_261;+      }+      else+      {+        if((4 > h$RTS_269))+        {+          var h$RTS_270 = (h$RTS_268 >> 8);+          switch (h$RTS_270)+          {+            case (6):+              h$r7 = h$stack[(h$sp - 6)];+            case (5):+              h$r6 = h$stack[(h$sp - 5)];+            case (4):+              h$r5 = h$stack[(h$sp - 4)];+            case (3):+              h$r4 = h$stack[(h$sp - 3)];+            case (2):+              h$r3 = h$stack[(h$sp - 2)];+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_270;+          var h$RTS_271 = h$apply[((4 - h$RTS_269) | ((6 - h$RTS_270) << 8))];+          h$stack[h$sp] = h$RTS_271;+          return h$RTS_261;+        }+        else+        {+          var h$RTS_267 = h$c8(h$pap_6, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 1536) - 4), h$stack[(h$sp - 1)],+          h$stack[(h$sp - 2)], h$stack[(h$sp - 3)], h$stack[(h$sp - 4)], h$stack[(h$sp - 5)], h$stack[(h$sp - 6)]);+          h$sp -= 7;+          h$r1 = h$RTS_267;+          return h$stack[h$sp];+        };+      };+    case (5):+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("panic: h$ap_4_6, unexpected closure type: " + h$RTS_261.t));+  };+};+h$o(h$ap_4_6, (-1), 0, 6, 256, null);+function h$ap_4_7()+{+  var h$RTS_272 = h$r1.f;+  switch (h$RTS_272.t)+  {+    case (0):+      return h$RTS_272;+    case (1):+      var h$RTS_274 = h$RTS_272.a;+      var h$RTS_275 = (h$RTS_274 & 255);+      if((4 === h$RTS_275))+      {+        h$r8 = h$stack[(h$sp - 7)];+        h$r7 = h$stack[(h$sp - 6)];+        h$r6 = h$stack[(h$sp - 5)];+        h$r5 = h$stack[(h$sp - 4)];+        h$r4 = h$stack[(h$sp - 3)];+        h$r3 = h$stack[(h$sp - 2)];+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 8;+        return h$RTS_272;+      }+      else+      {+        if((4 > h$RTS_275))+        {+          var h$RTS_276 = (h$RTS_274 >> 8);+          switch (h$RTS_276)+          {+            case (7):+              h$r8 = h$stack[(h$sp - 7)];+            case (6):+              h$r7 = h$stack[(h$sp - 6)];+            case (5):+              h$r6 = h$stack[(h$sp - 5)];+            case (4):+              h$r5 = h$stack[(h$sp - 4)];+            case (3):+              h$r4 = h$stack[(h$sp - 3)];+            case (2):+              h$r3 = h$stack[(h$sp - 2)];+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_276;+          var h$RTS_277 = h$apply[((4 - h$RTS_275) | ((7 - h$RTS_276) << 8))];+          h$stack[h$sp] = h$RTS_277;+          return h$RTS_272;+        }+        else+        {+          var h$RTS_273 = h$c9(h$pap_gen, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 1792) - 4), h$stack[(h$sp - 1)],+          h$stack[(h$sp - 2)], h$stack[(h$sp - 3)], h$stack[(h$sp - 4)], h$stack[(h$sp - 5)], h$stack[(h$sp - 6)],+          h$stack[(h$sp - 7)]);+          h$sp -= 8;+          h$r1 = h$RTS_273;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_279 = h$r1.d2.d1;+      var h$RTS_280 = (h$RTS_279 & 255);+      if((4 === h$RTS_280))+      {+        h$r8 = h$stack[(h$sp - 7)];+        h$r7 = h$stack[(h$sp - 6)];+        h$r6 = h$stack[(h$sp - 5)];+        h$r5 = h$stack[(h$sp - 4)];+        h$r4 = h$stack[(h$sp - 3)];+        h$r3 = h$stack[(h$sp - 2)];+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 8;+        return h$RTS_272;+      }+      else+      {+        if((4 > h$RTS_280))+        {+          var h$RTS_281 = (h$RTS_279 >> 8);+          switch (h$RTS_281)+          {+            case (7):+              h$r8 = h$stack[(h$sp - 7)];+            case (6):+              h$r7 = h$stack[(h$sp - 6)];+            case (5):+              h$r6 = h$stack[(h$sp - 5)];+            case (4):+              h$r5 = h$stack[(h$sp - 4)];+            case (3):+              h$r4 = h$stack[(h$sp - 3)];+            case (2):+              h$r3 = h$stack[(h$sp - 2)];+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_281;+          var h$RTS_282 = h$apply[((4 - h$RTS_280) | ((7 - h$RTS_281) << 8))];+          h$stack[h$sp] = h$RTS_282;+          return h$RTS_272;+        }+        else+        {+          var h$RTS_278 = h$c9(h$pap_gen, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 1792) - 4), h$stack[(h$sp - 1)],+          h$stack[(h$sp - 2)], h$stack[(h$sp - 3)], h$stack[(h$sp - 4)], h$stack[(h$sp - 5)], h$stack[(h$sp - 6)],+          h$stack[(h$sp - 7)]);+          h$sp -= 8;+          h$r1 = h$RTS_278;+          return h$stack[h$sp];+        };+      };+    case (5):+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("panic: h$ap_4_7, unexpected closure type: " + h$RTS_272.t));+  };+};+h$o(h$ap_4_7, (-1), 0, 7, 256, null);+function h$ap_4_8()+{+  var h$RTS_283 = h$r1.f;+  switch (h$RTS_283.t)+  {+    case (0):+      return h$RTS_283;+    case (1):+      var h$RTS_285 = h$RTS_283.a;+      var h$RTS_286 = (h$RTS_285 & 255);+      if((4 === h$RTS_286))+      {+        h$r9 = h$stack[(h$sp - 8)];+        h$r8 = h$stack[(h$sp - 7)];+        h$r7 = h$stack[(h$sp - 6)];+        h$r6 = h$stack[(h$sp - 5)];+        h$r5 = h$stack[(h$sp - 4)];+        h$r4 = h$stack[(h$sp - 3)];+        h$r3 = h$stack[(h$sp - 2)];+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 9;+        return h$RTS_283;+      }+      else+      {+        if((4 > h$RTS_286))+        {+          var h$RTS_287 = (h$RTS_285 >> 8);+          switch (h$RTS_287)+          {+            case (8):+              h$r9 = h$stack[(h$sp - 8)];+            case (7):+              h$r8 = h$stack[(h$sp - 7)];+            case (6):+              h$r7 = h$stack[(h$sp - 6)];+            case (5):+              h$r6 = h$stack[(h$sp - 5)];+            case (4):+              h$r5 = h$stack[(h$sp - 4)];+            case (3):+              h$r4 = h$stack[(h$sp - 3)];+            case (2):+              h$r3 = h$stack[(h$sp - 2)];+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_287;+          var h$RTS_288 = h$apply[((4 - h$RTS_286) | ((8 - h$RTS_287) << 8))];+          h$stack[h$sp] = h$RTS_288;+          return h$RTS_283;+        }+        else+        {+          var h$RTS_284 = h$c10(h$pap_gen, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 2048) - 4), h$stack[(h$sp - 1)],+          h$stack[(h$sp - 2)], h$stack[(h$sp - 3)], h$stack[(h$sp - 4)], h$stack[(h$sp - 5)], h$stack[(h$sp - 6)],+          h$stack[(h$sp - 7)], h$stack[(h$sp - 8)]);+          h$sp -= 9;+          h$r1 = h$RTS_284;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_290 = h$r1.d2.d1;+      var h$RTS_291 = (h$RTS_290 & 255);+      if((4 === h$RTS_291))+      {+        h$r9 = h$stack[(h$sp - 8)];+        h$r8 = h$stack[(h$sp - 7)];+        h$r7 = h$stack[(h$sp - 6)];+        h$r6 = h$stack[(h$sp - 5)];+        h$r5 = h$stack[(h$sp - 4)];+        h$r4 = h$stack[(h$sp - 3)];+        h$r3 = h$stack[(h$sp - 2)];+        h$r2 = h$stack[(h$sp - 1)];+        h$sp -= 9;+        return h$RTS_283;+      }+      else+      {+        if((4 > h$RTS_291))+        {+          var h$RTS_292 = (h$RTS_290 >> 8);+          switch (h$RTS_292)+          {+            case (8):+              h$r9 = h$stack[(h$sp - 8)];+            case (7):+              h$r8 = h$stack[(h$sp - 7)];+            case (6):+              h$r7 = h$stack[(h$sp - 6)];+            case (5):+              h$r6 = h$stack[(h$sp - 5)];+            case (4):+              h$r5 = h$stack[(h$sp - 4)];+            case (3):+              h$r4 = h$stack[(h$sp - 3)];+            case (2):+              h$r3 = h$stack[(h$sp - 2)];+            case (1):+              h$r2 = h$stack[(h$sp - 1)];+            default:+          };+          h$sp -= h$RTS_292;+          var h$RTS_293 = h$apply[((4 - h$RTS_291) | ((8 - h$RTS_292) << 8))];+          h$stack[h$sp] = h$RTS_293;+          return h$RTS_283;+        }+        else+        {+          var h$RTS_289 = h$c10(h$pap_gen, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 2048) - 4), h$stack[(h$sp - 1)],+          h$stack[(h$sp - 2)], h$stack[(h$sp - 3)], h$stack[(h$sp - 4)], h$stack[(h$sp - 5)], h$stack[(h$sp - 6)],+          h$stack[(h$sp - 7)], h$stack[(h$sp - 8)]);+          h$sp -= 9;+          h$r1 = h$RTS_289;+          return h$stack[h$sp];+        };+      };+    case (5):+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("panic: h$ap_4_8, unexpected closure type: " + h$RTS_283.t));+  };+};+h$o(h$ap_4_8, (-1), 0, 8, 256, null);+function h$ap_1_0_fast()+{+  var h$RTS_294 = h$r1.f;+  switch (h$RTS_294.t)+  {+    case (1):+      var h$RTS_295 = h$RTS_294.a;+      var h$RTS_297 = (h$RTS_295 & 255);+      if((1 === h$RTS_297))+      {+        return h$RTS_294;+      }+      else+      {+        if((1 > h$RTS_297))+        {+          var h$RTS_298 = (h$RTS_295 >> 8);+          var h$RTS_299 = (0 - h$RTS_298);+          switch (h$RTS_298)+          {+            default:+          };+          h$sp = ((h$sp + h$RTS_299) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_299 << 8) | (1 - (h$RTS_295 & 255)))];+          return h$RTS_294;+        }+        else+        {+          var h$RTS_296 = h$c3(h$pap_0, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 0) - 1), null);+          h$r1 = h$RTS_296;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_300 = h$r1.d2.d1;+      var h$RTS_302 = (h$RTS_300 & 255);+      if((1 === h$RTS_302))+      {+        return h$RTS_294;+      }+      else+      {+        if((1 > h$RTS_302))+        {+          var h$RTS_303 = (h$RTS_300 >> 8);+          var h$RTS_304 = (0 - h$RTS_303);+          switch (h$RTS_303)+          {+            default:+          };+          h$sp = ((h$sp + h$RTS_304) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_304 << 8) | (1 - (h$RTS_300 & 255)))];+          return h$RTS_294;+        }+        else+        {+          var h$RTS_301 = h$c3(h$pap_0, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 0) - 1), null);+          h$r1 = h$RTS_301;+          return h$stack[h$sp];+        };+      };+    case (0):+      ++h$sp;+      h$stack[h$sp] = h$ap_1_0;+      return h$RTS_294;+    case (5):+      ++h$sp;+      h$stack[h$sp] = h$ap_1_0;+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("h$ap_1_0_fast: unexpected closure type: " + h$RTS_294.t));+  };+};+function h$ap_1_1_fast()+{+  var h$RTS_305 = h$r1.f;+  switch (h$RTS_305.t)+  {+    case (1):+      var h$RTS_306 = h$RTS_305.a;+      var h$RTS_308 = (h$RTS_306 & 255);+      if((1 === h$RTS_308))+      {+        return h$RTS_305;+      }+      else+      {+        if((1 > h$RTS_308))+        {+          var h$RTS_309 = (h$RTS_306 >> 8);+          var h$RTS_310 = (1 - h$RTS_309);+          switch (h$RTS_309)+          {+            case (0):+              h$stack[(h$sp + 1)] = h$r2;+            default:+          };+          h$sp = ((h$sp + h$RTS_310) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_310 << 8) | (1 - (h$RTS_306 & 255)))];+          return h$RTS_305;+        }+        else+        {+          var h$RTS_307 = h$c3(h$pap_1, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 256) - 1), h$r2);+          h$r1 = h$RTS_307;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_311 = h$r1.d2.d1;+      var h$RTS_313 = (h$RTS_311 & 255);+      if((1 === h$RTS_313))+      {+        return h$RTS_305;+      }+      else+      {+        if((1 > h$RTS_313))+        {+          var h$RTS_314 = (h$RTS_311 >> 8);+          var h$RTS_315 = (1 - h$RTS_314);+          switch (h$RTS_314)+          {+            case (0):+              h$stack[(h$sp + 1)] = h$r2;+            default:+          };+          h$sp = ((h$sp + h$RTS_315) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_315 << 8) | (1 - (h$RTS_311 & 255)))];+          return h$RTS_305;+        }+        else+        {+          var h$RTS_312 = h$c3(h$pap_1, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 256) - 1), h$r2);+          h$r1 = h$RTS_312;+          return h$stack[h$sp];+        };+      };+    case (0):+      h$p2(h$r2, h$ap_1_1);+      return h$RTS_305;+    case (5):+      h$p2(h$r2, h$ap_1_1);+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("h$ap_1_1_fast: unexpected closure type: " + h$RTS_305.t));+  };+};+function h$ap_1_2_fast()+{+  var h$RTS_316 = h$r1.f;+  switch (h$RTS_316.t)+  {+    case (1):+      var h$RTS_317 = h$RTS_316.a;+      var h$RTS_319 = (h$RTS_317 & 255);+      if((1 === h$RTS_319))+      {+        return h$RTS_316;+      }+      else+      {+        if((1 > h$RTS_319))+        {+          var h$RTS_320 = (h$RTS_317 >> 8);+          var h$RTS_321 = (2 - h$RTS_320);+          switch (h$RTS_320)+          {+            case (0):+              h$stack[(h$sp + 2)] = h$r2;+            case (1):+              h$stack[(h$sp + 1)] = h$r3;+            default:+          };+          h$sp = ((h$sp + h$RTS_321) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_321 << 8) | (1 - (h$RTS_317 & 255)))];+          return h$RTS_316;+        }+        else+        {+          var h$RTS_318 = h$c4(h$pap_2, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 512) - 1), h$r2, h$r3);+          h$r1 = h$RTS_318;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_322 = h$r1.d2.d1;+      var h$RTS_324 = (h$RTS_322 & 255);+      if((1 === h$RTS_324))+      {+        return h$RTS_316;+      }+      else+      {+        if((1 > h$RTS_324))+        {+          var h$RTS_325 = (h$RTS_322 >> 8);+          var h$RTS_326 = (2 - h$RTS_325);+          switch (h$RTS_325)+          {+            case (0):+              h$stack[(h$sp + 2)] = h$r2;+            case (1):+              h$stack[(h$sp + 1)] = h$r3;+            default:+          };+          h$sp = ((h$sp + h$RTS_326) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_326 << 8) | (1 - (h$RTS_322 & 255)))];+          return h$RTS_316;+        }+        else+        {+          var h$RTS_323 = h$c4(h$pap_2, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 512) - 1), h$r2, h$r3);+          h$r1 = h$RTS_323;+          return h$stack[h$sp];+        };+      };+    case (0):+      h$p3(h$r3, h$r2, h$ap_1_2);+      return h$RTS_316;+    case (5):+      h$p3(h$r3, h$r2, h$ap_1_2);+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("h$ap_1_2_fast: unexpected closure type: " + h$RTS_316.t));+  };+};+function h$ap_2_1_fast()+{+  var h$RTS_327 = h$r1.f;+  switch (h$RTS_327.t)+  {+    case (1):+      var h$RTS_328 = h$RTS_327.a;+      var h$RTS_330 = (h$RTS_328 & 255);+      if((2 === h$RTS_330))+      {+        return h$RTS_327;+      }+      else+      {+        if((2 > h$RTS_330))+        {+          var h$RTS_331 = (h$RTS_328 >> 8);+          var h$RTS_332 = (1 - h$RTS_331);+          switch (h$RTS_331)+          {+            case (0):+              h$stack[(h$sp + 1)] = h$r2;+            default:+          };+          h$sp = ((h$sp + h$RTS_332) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_332 << 8) | (2 - (h$RTS_328 & 255)))];+          return h$RTS_327;+        }+        else+        {+          var h$RTS_329 = h$c3(h$pap_1, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 256) - 2), h$r2);+          h$r1 = h$RTS_329;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_333 = h$r1.d2.d1;+      var h$RTS_335 = (h$RTS_333 & 255);+      if((2 === h$RTS_335))+      {+        return h$RTS_327;+      }+      else+      {+        if((2 > h$RTS_335))+        {+          var h$RTS_336 = (h$RTS_333 >> 8);+          var h$RTS_337 = (1 - h$RTS_336);+          switch (h$RTS_336)+          {+            case (0):+              h$stack[(h$sp + 1)] = h$r2;+            default:+          };+          h$sp = ((h$sp + h$RTS_337) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_337 << 8) | (2 - (h$RTS_333 & 255)))];+          return h$RTS_327;+        }+        else+        {+          var h$RTS_334 = h$c3(h$pap_1, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 256) - 2), h$r2);+          h$r1 = h$RTS_334;+          return h$stack[h$sp];+        };+      };+    case (0):+      h$p2(h$r2, h$ap_2_1);+      return h$RTS_327;+    case (5):+      h$p2(h$r2, h$ap_2_1);+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("h$ap_2_1_fast: unexpected closure type: " + h$RTS_327.t));+  };+};+function h$ap_2_2_fast()+{+  var h$RTS_338 = h$r1.f;+  switch (h$RTS_338.t)+  {+    case (1):+      var h$RTS_339 = h$RTS_338.a;+      var h$RTS_341 = (h$RTS_339 & 255);+      if((2 === h$RTS_341))+      {+        return h$RTS_338;+      }+      else+      {+        if((2 > h$RTS_341))+        {+          var h$RTS_342 = (h$RTS_339 >> 8);+          var h$RTS_343 = (2 - h$RTS_342);+          switch (h$RTS_342)+          {+            case (0):+              h$stack[(h$sp + 2)] = h$r2;+            case (1):+              h$stack[(h$sp + 1)] = h$r3;+            default:+          };+          h$sp = ((h$sp + h$RTS_343) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_343 << 8) | (2 - (h$RTS_339 & 255)))];+          return h$RTS_338;+        }+        else+        {+          var h$RTS_340 = h$c4(h$pap_2, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 512) - 2), h$r2, h$r3);+          h$r1 = h$RTS_340;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_344 = h$r1.d2.d1;+      var h$RTS_346 = (h$RTS_344 & 255);+      if((2 === h$RTS_346))+      {+        return h$RTS_338;+      }+      else+      {+        if((2 > h$RTS_346))+        {+          var h$RTS_347 = (h$RTS_344 >> 8);+          var h$RTS_348 = (2 - h$RTS_347);+          switch (h$RTS_347)+          {+            case (0):+              h$stack[(h$sp + 2)] = h$r2;+            case (1):+              h$stack[(h$sp + 1)] = h$r3;+            default:+          };+          h$sp = ((h$sp + h$RTS_348) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_348 << 8) | (2 - (h$RTS_344 & 255)))];+          return h$RTS_338;+        }+        else+        {+          var h$RTS_345 = h$c4(h$pap_2, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 512) - 2), h$r2, h$r3);+          h$r1 = h$RTS_345;+          return h$stack[h$sp];+        };+      };+    case (0):+      h$p3(h$r3, h$r2, h$ap_2_2);+      return h$RTS_338;+    case (5):+      h$p3(h$r3, h$r2, h$ap_2_2);+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("h$ap_2_2_fast: unexpected closure type: " + h$RTS_338.t));+  };+};+function h$ap_2_3_fast()+{+  var h$RTS_349 = h$r1.f;+  switch (h$RTS_349.t)+  {+    case (1):+      var h$RTS_350 = h$RTS_349.a;+      var h$RTS_352 = (h$RTS_350 & 255);+      if((2 === h$RTS_352))+      {+        return h$RTS_349;+      }+      else+      {+        if((2 > h$RTS_352))+        {+          var h$RTS_353 = (h$RTS_350 >> 8);+          var h$RTS_354 = (3 - h$RTS_353);+          switch (h$RTS_353)+          {+            case (0):+              h$stack[(h$sp + 3)] = h$r2;+            case (1):+              h$stack[(h$sp + 2)] = h$r3;+            case (2):+              h$stack[(h$sp + 1)] = h$r4;+            default:+          };+          h$sp = ((h$sp + h$RTS_354) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_354 << 8) | (2 - (h$RTS_350 & 255)))];+          return h$RTS_349;+        }+        else+        {+          var h$RTS_351 = h$c5(h$pap_3, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 768) - 2), h$r2, h$r3, h$r4);+          h$r1 = h$RTS_351;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_355 = h$r1.d2.d1;+      var h$RTS_357 = (h$RTS_355 & 255);+      if((2 === h$RTS_357))+      {+        return h$RTS_349;+      }+      else+      {+        if((2 > h$RTS_357))+        {+          var h$RTS_358 = (h$RTS_355 >> 8);+          var h$RTS_359 = (3 - h$RTS_358);+          switch (h$RTS_358)+          {+            case (0):+              h$stack[(h$sp + 3)] = h$r2;+            case (1):+              h$stack[(h$sp + 2)] = h$r3;+            case (2):+              h$stack[(h$sp + 1)] = h$r4;+            default:+          };+          h$sp = ((h$sp + h$RTS_359) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_359 << 8) | (2 - (h$RTS_355 & 255)))];+          return h$RTS_349;+        }+        else+        {+          var h$RTS_356 = h$c5(h$pap_3, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 768) - 2), h$r2, h$r3, h$r4);+          h$r1 = h$RTS_356;+          return h$stack[h$sp];+        };+      };+    case (0):+      h$p4(h$r4, h$r3, h$r2, h$ap_2_3);+      return h$RTS_349;+    case (5):+      h$p4(h$r4, h$r3, h$r2, h$ap_2_3);+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("h$ap_2_3_fast: unexpected closure type: " + h$RTS_349.t));+  };+};+function h$ap_2_4_fast()+{+  var h$RTS_360 = h$r1.f;+  switch (h$RTS_360.t)+  {+    case (1):+      var h$RTS_361 = h$RTS_360.a;+      var h$RTS_363 = (h$RTS_361 & 255);+      if((2 === h$RTS_363))+      {+        return h$RTS_360;+      }+      else+      {+        if((2 > h$RTS_363))+        {+          var h$RTS_364 = (h$RTS_361 >> 8);+          var h$RTS_365 = (4 - h$RTS_364);+          switch (h$RTS_364)+          {+            case (0):+              h$stack[(h$sp + 4)] = h$r2;+            case (1):+              h$stack[(h$sp + 3)] = h$r3;+            case (2):+              h$stack[(h$sp + 2)] = h$r4;+            case (3):+              h$stack[(h$sp + 1)] = h$r5;+            default:+          };+          h$sp = ((h$sp + h$RTS_365) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_365 << 8) | (2 - (h$RTS_361 & 255)))];+          return h$RTS_360;+        }+        else+        {+          var h$RTS_362 = h$c6(h$pap_4, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 1024) - 2), h$r2, h$r3, h$r4, h$r5);+          h$r1 = h$RTS_362;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_366 = h$r1.d2.d1;+      var h$RTS_368 = (h$RTS_366 & 255);+      if((2 === h$RTS_368))+      {+        return h$RTS_360;+      }+      else+      {+        if((2 > h$RTS_368))+        {+          var h$RTS_369 = (h$RTS_366 >> 8);+          var h$RTS_370 = (4 - h$RTS_369);+          switch (h$RTS_369)+          {+            case (0):+              h$stack[(h$sp + 4)] = h$r2;+            case (1):+              h$stack[(h$sp + 3)] = h$r3;+            case (2):+              h$stack[(h$sp + 2)] = h$r4;+            case (3):+              h$stack[(h$sp + 1)] = h$r5;+            default:+          };+          h$sp = ((h$sp + h$RTS_370) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_370 << 8) | (2 - (h$RTS_366 & 255)))];+          return h$RTS_360;+        }+        else+        {+          var h$RTS_367 = h$c6(h$pap_4, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 1024) - 2), h$r2, h$r3, h$r4, h$r5);+          h$r1 = h$RTS_367;+          return h$stack[h$sp];+        };+      };+    case (0):+      h$p5(h$r5, h$r4, h$r3, h$r2, h$ap_2_4);+      return h$RTS_360;+    case (5):+      h$p5(h$r5, h$r4, h$r3, h$r2, h$ap_2_4);+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("h$ap_2_4_fast: unexpected closure type: " + h$RTS_360.t));+  };+};+function h$ap_3_2_fast()+{+  var h$RTS_371 = h$r1.f;+  switch (h$RTS_371.t)+  {+    case (1):+      var h$RTS_372 = h$RTS_371.a;+      var h$RTS_374 = (h$RTS_372 & 255);+      if((3 === h$RTS_374))+      {+        return h$RTS_371;+      }+      else+      {+        if((3 > h$RTS_374))+        {+          var h$RTS_375 = (h$RTS_372 >> 8);+          var h$RTS_376 = (2 - h$RTS_375);+          switch (h$RTS_375)+          {+            case (0):+              h$stack[(h$sp + 2)] = h$r2;+            case (1):+              h$stack[(h$sp + 1)] = h$r3;+            default:+          };+          h$sp = ((h$sp + h$RTS_376) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_376 << 8) | (3 - (h$RTS_372 & 255)))];+          return h$RTS_371;+        }+        else+        {+          var h$RTS_373 = h$c4(h$pap_2, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 512) - 3), h$r2, h$r3);+          h$r1 = h$RTS_373;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_377 = h$r1.d2.d1;+      var h$RTS_379 = (h$RTS_377 & 255);+      if((3 === h$RTS_379))+      {+        return h$RTS_371;+      }+      else+      {+        if((3 > h$RTS_379))+        {+          var h$RTS_380 = (h$RTS_377 >> 8);+          var h$RTS_381 = (2 - h$RTS_380);+          switch (h$RTS_380)+          {+            case (0):+              h$stack[(h$sp + 2)] = h$r2;+            case (1):+              h$stack[(h$sp + 1)] = h$r3;+            default:+          };+          h$sp = ((h$sp + h$RTS_381) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_381 << 8) | (3 - (h$RTS_377 & 255)))];+          return h$RTS_371;+        }+        else+        {+          var h$RTS_378 = h$c4(h$pap_2, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 512) - 3), h$r2, h$r3);+          h$r1 = h$RTS_378;+          return h$stack[h$sp];+        };+      };+    case (0):+      h$p3(h$r3, h$r2, h$ap_3_2);+      return h$RTS_371;+    case (5):+      h$p3(h$r3, h$r2, h$ap_3_2);+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("h$ap_3_2_fast: unexpected closure type: " + h$RTS_371.t));+  };+};+function h$ap_3_3_fast()+{+  var h$RTS_382 = h$r1.f;+  switch (h$RTS_382.t)+  {+    case (1):+      var h$RTS_383 = h$RTS_382.a;+      var h$RTS_385 = (h$RTS_383 & 255);+      if((3 === h$RTS_385))+      {+        return h$RTS_382;+      }+      else+      {+        if((3 > h$RTS_385))+        {+          var h$RTS_386 = (h$RTS_383 >> 8);+          var h$RTS_387 = (3 - h$RTS_386);+          switch (h$RTS_386)+          {+            case (0):+              h$stack[(h$sp + 3)] = h$r2;+            case (1):+              h$stack[(h$sp + 2)] = h$r3;+            case (2):+              h$stack[(h$sp + 1)] = h$r4;+            default:+          };+          h$sp = ((h$sp + h$RTS_387) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_387 << 8) | (3 - (h$RTS_383 & 255)))];+          return h$RTS_382;+        }+        else+        {+          var h$RTS_384 = h$c5(h$pap_3, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 768) - 3), h$r2, h$r3, h$r4);+          h$r1 = h$RTS_384;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_388 = h$r1.d2.d1;+      var h$RTS_390 = (h$RTS_388 & 255);+      if((3 === h$RTS_390))+      {+        return h$RTS_382;+      }+      else+      {+        if((3 > h$RTS_390))+        {+          var h$RTS_391 = (h$RTS_388 >> 8);+          var h$RTS_392 = (3 - h$RTS_391);+          switch (h$RTS_391)+          {+            case (0):+              h$stack[(h$sp + 3)] = h$r2;+            case (1):+              h$stack[(h$sp + 2)] = h$r3;+            case (2):+              h$stack[(h$sp + 1)] = h$r4;+            default:+          };+          h$sp = ((h$sp + h$RTS_392) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_392 << 8) | (3 - (h$RTS_388 & 255)))];+          return h$RTS_382;+        }+        else+        {+          var h$RTS_389 = h$c5(h$pap_3, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 768) - 3), h$r2, h$r3, h$r4);+          h$r1 = h$RTS_389;+          return h$stack[h$sp];+        };+      };+    case (0):+      h$p4(h$r4, h$r3, h$r2, h$ap_3_3);+      return h$RTS_382;+    case (5):+      h$p4(h$r4, h$r3, h$r2, h$ap_3_3);+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("h$ap_3_3_fast: unexpected closure type: " + h$RTS_382.t));+  };+};+function h$ap_3_4_fast()+{+  var h$RTS_393 = h$r1.f;+  switch (h$RTS_393.t)+  {+    case (1):+      var h$RTS_394 = h$RTS_393.a;+      var h$RTS_396 = (h$RTS_394 & 255);+      if((3 === h$RTS_396))+      {+        return h$RTS_393;+      }+      else+      {+        if((3 > h$RTS_396))+        {+          var h$RTS_397 = (h$RTS_394 >> 8);+          var h$RTS_398 = (4 - h$RTS_397);+          switch (h$RTS_397)+          {+            case (0):+              h$stack[(h$sp + 4)] = h$r2;+            case (1):+              h$stack[(h$sp + 3)] = h$r3;+            case (2):+              h$stack[(h$sp + 2)] = h$r4;+            case (3):+              h$stack[(h$sp + 1)] = h$r5;+            default:+          };+          h$sp = ((h$sp + h$RTS_398) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_398 << 8) | (3 - (h$RTS_394 & 255)))];+          return h$RTS_393;+        }+        else+        {+          var h$RTS_395 = h$c6(h$pap_4, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 1024) - 3), h$r2, h$r3, h$r4, h$r5);+          h$r1 = h$RTS_395;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_399 = h$r1.d2.d1;+      var h$RTS_401 = (h$RTS_399 & 255);+      if((3 === h$RTS_401))+      {+        return h$RTS_393;+      }+      else+      {+        if((3 > h$RTS_401))+        {+          var h$RTS_402 = (h$RTS_399 >> 8);+          var h$RTS_403 = (4 - h$RTS_402);+          switch (h$RTS_402)+          {+            case (0):+              h$stack[(h$sp + 4)] = h$r2;+            case (1):+              h$stack[(h$sp + 3)] = h$r3;+            case (2):+              h$stack[(h$sp + 2)] = h$r4;+            case (3):+              h$stack[(h$sp + 1)] = h$r5;+            default:+          };+          h$sp = ((h$sp + h$RTS_403) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_403 << 8) | (3 - (h$RTS_399 & 255)))];+          return h$RTS_393;+        }+        else+        {+          var h$RTS_400 = h$c6(h$pap_4, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 1024) - 3), h$r2, h$r3, h$r4, h$r5);+          h$r1 = h$RTS_400;+          return h$stack[h$sp];+        };+      };+    case (0):+      h$p5(h$r5, h$r4, h$r3, h$r2, h$ap_3_4);+      return h$RTS_393;+    case (5):+      h$p5(h$r5, h$r4, h$r3, h$r2, h$ap_3_4);+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("h$ap_3_4_fast: unexpected closure type: " + h$RTS_393.t));+  };+};+function h$ap_3_5_fast()+{+  var h$RTS_404 = h$r1.f;+  switch (h$RTS_404.t)+  {+    case (1):+      var h$RTS_405 = h$RTS_404.a;+      var h$RTS_407 = (h$RTS_405 & 255);+      if((3 === h$RTS_407))+      {+        return h$RTS_404;+      }+      else+      {+        if((3 > h$RTS_407))+        {+          var h$RTS_408 = (h$RTS_405 >> 8);+          var h$RTS_409 = (5 - h$RTS_408);+          switch (h$RTS_408)+          {+            case (0):+              h$stack[(h$sp + 5)] = h$r2;+            case (1):+              h$stack[(h$sp + 4)] = h$r3;+            case (2):+              h$stack[(h$sp + 3)] = h$r4;+            case (3):+              h$stack[(h$sp + 2)] = h$r5;+            case (4):+              h$stack[(h$sp + 1)] = h$r6;+            default:+          };+          h$sp = ((h$sp + h$RTS_409) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_409 << 8) | (3 - (h$RTS_405 & 255)))];+          return h$RTS_404;+        }+        else+        {+          var h$RTS_406 = h$c7(h$pap_5, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 1280) - 3), h$r2, h$r3, h$r4, h$r5,+          h$r6);+          h$r1 = h$RTS_406;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_410 = h$r1.d2.d1;+      var h$RTS_412 = (h$RTS_410 & 255);+      if((3 === h$RTS_412))+      {+        return h$RTS_404;+      }+      else+      {+        if((3 > h$RTS_412))+        {+          var h$RTS_413 = (h$RTS_410 >> 8);+          var h$RTS_414 = (5 - h$RTS_413);+          switch (h$RTS_413)+          {+            case (0):+              h$stack[(h$sp + 5)] = h$r2;+            case (1):+              h$stack[(h$sp + 4)] = h$r3;+            case (2):+              h$stack[(h$sp + 3)] = h$r4;+            case (3):+              h$stack[(h$sp + 2)] = h$r5;+            case (4):+              h$stack[(h$sp + 1)] = h$r6;+            default:+          };+          h$sp = ((h$sp + h$RTS_414) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_414 << 8) | (3 - (h$RTS_410 & 255)))];+          return h$RTS_404;+        }+        else+        {+          var h$RTS_411 = h$c7(h$pap_5, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 1280) - 3), h$r2, h$r3, h$r4, h$r5,+          h$r6);+          h$r1 = h$RTS_411;+          return h$stack[h$sp];+        };+      };+    case (0):+      h$p6(h$r6, h$r5, h$r4, h$r3, h$r2, h$ap_3_5);+      return h$RTS_404;+    case (5):+      h$p6(h$r6, h$r5, h$r4, h$r3, h$r2, h$ap_3_5);+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("h$ap_3_5_fast: unexpected closure type: " + h$RTS_404.t));+  };+};+function h$ap_3_6_fast()+{+  var h$RTS_415 = h$r1.f;+  switch (h$RTS_415.t)+  {+    case (1):+      var h$RTS_416 = h$RTS_415.a;+      var h$RTS_418 = (h$RTS_416 & 255);+      if((3 === h$RTS_418))+      {+        return h$RTS_415;+      }+      else+      {+        if((3 > h$RTS_418))+        {+          var h$RTS_419 = (h$RTS_416 >> 8);+          var h$RTS_420 = (6 - h$RTS_419);+          switch (h$RTS_419)+          {+            case (0):+              h$stack[(h$sp + 6)] = h$r2;+            case (1):+              h$stack[(h$sp + 5)] = h$r3;+            case (2):+              h$stack[(h$sp + 4)] = h$r4;+            case (3):+              h$stack[(h$sp + 3)] = h$r5;+            case (4):+              h$stack[(h$sp + 2)] = h$r6;+            case (5):+              h$stack[(h$sp + 1)] = h$r7;+            default:+          };+          h$sp = ((h$sp + h$RTS_420) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_420 << 8) | (3 - (h$RTS_416 & 255)))];+          return h$RTS_415;+        }+        else+        {+          var h$RTS_417 = h$c8(h$pap_6, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 1536) - 3), h$r2, h$r3, h$r4, h$r5,+          h$r6, h$r7);+          h$r1 = h$RTS_417;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_421 = h$r1.d2.d1;+      var h$RTS_423 = (h$RTS_421 & 255);+      if((3 === h$RTS_423))+      {+        return h$RTS_415;+      }+      else+      {+        if((3 > h$RTS_423))+        {+          var h$RTS_424 = (h$RTS_421 >> 8);+          var h$RTS_425 = (6 - h$RTS_424);+          switch (h$RTS_424)+          {+            case (0):+              h$stack[(h$sp + 6)] = h$r2;+            case (1):+              h$stack[(h$sp + 5)] = h$r3;+            case (2):+              h$stack[(h$sp + 4)] = h$r4;+            case (3):+              h$stack[(h$sp + 3)] = h$r5;+            case (4):+              h$stack[(h$sp + 2)] = h$r6;+            case (5):+              h$stack[(h$sp + 1)] = h$r7;+            default:+          };+          h$sp = ((h$sp + h$RTS_425) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_425 << 8) | (3 - (h$RTS_421 & 255)))];+          return h$RTS_415;+        }+        else+        {+          var h$RTS_422 = h$c8(h$pap_6, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 1536) - 3), h$r2, h$r3, h$r4, h$r5,+          h$r6, h$r7);+          h$r1 = h$RTS_422;+          return h$stack[h$sp];+        };+      };+    case (0):+      h$p7(h$r7, h$r6, h$r5, h$r4, h$r3, h$r2, h$ap_3_6);+      return h$RTS_415;+    case (5):+      h$p7(h$r7, h$r6, h$r5, h$r4, h$r3, h$r2, h$ap_3_6);+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("h$ap_3_6_fast: unexpected closure type: " + h$RTS_415.t));+  };+};+function h$ap_4_3_fast()+{+  var h$RTS_426 = h$r1.f;+  switch (h$RTS_426.t)+  {+    case (1):+      var h$RTS_427 = h$RTS_426.a;+      var h$RTS_429 = (h$RTS_427 & 255);+      if((4 === h$RTS_429))+      {+        return h$RTS_426;+      }+      else+      {+        if((4 > h$RTS_429))+        {+          var h$RTS_430 = (h$RTS_427 >> 8);+          var h$RTS_431 = (3 - h$RTS_430);+          switch (h$RTS_430)+          {+            case (0):+              h$stack[(h$sp + 3)] = h$r2;+            case (1):+              h$stack[(h$sp + 2)] = h$r3;+            case (2):+              h$stack[(h$sp + 1)] = h$r4;+            default:+          };+          h$sp = ((h$sp + h$RTS_431) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_431 << 8) | (4 - (h$RTS_427 & 255)))];+          return h$RTS_426;+        }+        else+        {+          var h$RTS_428 = h$c5(h$pap_3, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 768) - 4), h$r2, h$r3, h$r4);+          h$r1 = h$RTS_428;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_432 = h$r1.d2.d1;+      var h$RTS_434 = (h$RTS_432 & 255);+      if((4 === h$RTS_434))+      {+        return h$RTS_426;+      }+      else+      {+        if((4 > h$RTS_434))+        {+          var h$RTS_435 = (h$RTS_432 >> 8);+          var h$RTS_436 = (3 - h$RTS_435);+          switch (h$RTS_435)+          {+            case (0):+              h$stack[(h$sp + 3)] = h$r2;+            case (1):+              h$stack[(h$sp + 2)] = h$r3;+            case (2):+              h$stack[(h$sp + 1)] = h$r4;+            default:+          };+          h$sp = ((h$sp + h$RTS_436) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_436 << 8) | (4 - (h$RTS_432 & 255)))];+          return h$RTS_426;+        }+        else+        {+          var h$RTS_433 = h$c5(h$pap_3, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 768) - 4), h$r2, h$r3, h$r4);+          h$r1 = h$RTS_433;+          return h$stack[h$sp];+        };+      };+    case (0):+      h$p4(h$r4, h$r3, h$r2, h$ap_4_3);+      return h$RTS_426;+    case (5):+      h$p4(h$r4, h$r3, h$r2, h$ap_4_3);+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("h$ap_4_3_fast: unexpected closure type: " + h$RTS_426.t));+  };+};+function h$ap_4_4_fast()+{+  var h$RTS_437 = h$r1.f;+  switch (h$RTS_437.t)+  {+    case (1):+      var h$RTS_438 = h$RTS_437.a;+      var h$RTS_440 = (h$RTS_438 & 255);+      if((4 === h$RTS_440))+      {+        return h$RTS_437;+      }+      else+      {+        if((4 > h$RTS_440))+        {+          var h$RTS_441 = (h$RTS_438 >> 8);+          var h$RTS_442 = (4 - h$RTS_441);+          switch (h$RTS_441)+          {+            case (0):+              h$stack[(h$sp + 4)] = h$r2;+            case (1):+              h$stack[(h$sp + 3)] = h$r3;+            case (2):+              h$stack[(h$sp + 2)] = h$r4;+            case (3):+              h$stack[(h$sp + 1)] = h$r5;+            default:+          };+          h$sp = ((h$sp + h$RTS_442) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_442 << 8) | (4 - (h$RTS_438 & 255)))];+          return h$RTS_437;+        }+        else+        {+          var h$RTS_439 = h$c6(h$pap_4, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 1024) - 4), h$r2, h$r3, h$r4, h$r5);+          h$r1 = h$RTS_439;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_443 = h$r1.d2.d1;+      var h$RTS_445 = (h$RTS_443 & 255);+      if((4 === h$RTS_445))+      {+        return h$RTS_437;+      }+      else+      {+        if((4 > h$RTS_445))+        {+          var h$RTS_446 = (h$RTS_443 >> 8);+          var h$RTS_447 = (4 - h$RTS_446);+          switch (h$RTS_446)+          {+            case (0):+              h$stack[(h$sp + 4)] = h$r2;+            case (1):+              h$stack[(h$sp + 3)] = h$r3;+            case (2):+              h$stack[(h$sp + 2)] = h$r4;+            case (3):+              h$stack[(h$sp + 1)] = h$r5;+            default:+          };+          h$sp = ((h$sp + h$RTS_447) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_447 << 8) | (4 - (h$RTS_443 & 255)))];+          return h$RTS_437;+        }+        else+        {+          var h$RTS_444 = h$c6(h$pap_4, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 1024) - 4), h$r2, h$r3, h$r4, h$r5);+          h$r1 = h$RTS_444;+          return h$stack[h$sp];+        };+      };+    case (0):+      h$p5(h$r5, h$r4, h$r3, h$r2, h$ap_4_4);+      return h$RTS_437;+    case (5):+      h$p5(h$r5, h$r4, h$r3, h$r2, h$ap_4_4);+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("h$ap_4_4_fast: unexpected closure type: " + h$RTS_437.t));+  };+};+function h$ap_4_5_fast()+{+  var h$RTS_448 = h$r1.f;+  switch (h$RTS_448.t)+  {+    case (1):+      var h$RTS_449 = h$RTS_448.a;+      var h$RTS_451 = (h$RTS_449 & 255);+      if((4 === h$RTS_451))+      {+        return h$RTS_448;+      }+      else+      {+        if((4 > h$RTS_451))+        {+          var h$RTS_452 = (h$RTS_449 >> 8);+          var h$RTS_453 = (5 - h$RTS_452);+          switch (h$RTS_452)+          {+            case (0):+              h$stack[(h$sp + 5)] = h$r2;+            case (1):+              h$stack[(h$sp + 4)] = h$r3;+            case (2):+              h$stack[(h$sp + 3)] = h$r4;+            case (3):+              h$stack[(h$sp + 2)] = h$r5;+            case (4):+              h$stack[(h$sp + 1)] = h$r6;+            default:+          };+          h$sp = ((h$sp + h$RTS_453) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_453 << 8) | (4 - (h$RTS_449 & 255)))];+          return h$RTS_448;+        }+        else+        {+          var h$RTS_450 = h$c7(h$pap_5, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 1280) - 4), h$r2, h$r3, h$r4, h$r5,+          h$r6);+          h$r1 = h$RTS_450;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_454 = h$r1.d2.d1;+      var h$RTS_456 = (h$RTS_454 & 255);+      if((4 === h$RTS_456))+      {+        return h$RTS_448;+      }+      else+      {+        if((4 > h$RTS_456))+        {+          var h$RTS_457 = (h$RTS_454 >> 8);+          var h$RTS_458 = (5 - h$RTS_457);+          switch (h$RTS_457)+          {+            case (0):+              h$stack[(h$sp + 5)] = h$r2;+            case (1):+              h$stack[(h$sp + 4)] = h$r3;+            case (2):+              h$stack[(h$sp + 3)] = h$r4;+            case (3):+              h$stack[(h$sp + 2)] = h$r5;+            case (4):+              h$stack[(h$sp + 1)] = h$r6;+            default:+          };+          h$sp = ((h$sp + h$RTS_458) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_458 << 8) | (4 - (h$RTS_454 & 255)))];+          return h$RTS_448;+        }+        else+        {+          var h$RTS_455 = h$c7(h$pap_5, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 1280) - 4), h$r2, h$r3, h$r4, h$r5,+          h$r6);+          h$r1 = h$RTS_455;+          return h$stack[h$sp];+        };+      };+    case (0):+      h$p6(h$r6, h$r5, h$r4, h$r3, h$r2, h$ap_4_5);+      return h$RTS_448;+    case (5):+      h$p6(h$r6, h$r5, h$r4, h$r3, h$r2, h$ap_4_5);+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("h$ap_4_5_fast: unexpected closure type: " + h$RTS_448.t));+  };+};+function h$ap_4_6_fast()+{+  var h$RTS_459 = h$r1.f;+  switch (h$RTS_459.t)+  {+    case (1):+      var h$RTS_460 = h$RTS_459.a;+      var h$RTS_462 = (h$RTS_460 & 255);+      if((4 === h$RTS_462))+      {+        return h$RTS_459;+      }+      else+      {+        if((4 > h$RTS_462))+        {+          var h$RTS_463 = (h$RTS_460 >> 8);+          var h$RTS_464 = (6 - h$RTS_463);+          switch (h$RTS_463)+          {+            case (0):+              h$stack[(h$sp + 6)] = h$r2;+            case (1):+              h$stack[(h$sp + 5)] = h$r3;+            case (2):+              h$stack[(h$sp + 4)] = h$r4;+            case (3):+              h$stack[(h$sp + 3)] = h$r5;+            case (4):+              h$stack[(h$sp + 2)] = h$r6;+            case (5):+              h$stack[(h$sp + 1)] = h$r7;+            default:+          };+          h$sp = ((h$sp + h$RTS_464) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_464 << 8) | (4 - (h$RTS_460 & 255)))];+          return h$RTS_459;+        }+        else+        {+          var h$RTS_461 = h$c8(h$pap_6, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 1536) - 4), h$r2, h$r3, h$r4, h$r5,+          h$r6, h$r7);+          h$r1 = h$RTS_461;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_465 = h$r1.d2.d1;+      var h$RTS_467 = (h$RTS_465 & 255);+      if((4 === h$RTS_467))+      {+        return h$RTS_459;+      }+      else+      {+        if((4 > h$RTS_467))+        {+          var h$RTS_468 = (h$RTS_465 >> 8);+          var h$RTS_469 = (6 - h$RTS_468);+          switch (h$RTS_468)+          {+            case (0):+              h$stack[(h$sp + 6)] = h$r2;+            case (1):+              h$stack[(h$sp + 5)] = h$r3;+            case (2):+              h$stack[(h$sp + 4)] = h$r4;+            case (3):+              h$stack[(h$sp + 3)] = h$r5;+            case (4):+              h$stack[(h$sp + 2)] = h$r6;+            case (5):+              h$stack[(h$sp + 1)] = h$r7;+            default:+          };+          h$sp = ((h$sp + h$RTS_469) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_469 << 8) | (4 - (h$RTS_465 & 255)))];+          return h$RTS_459;+        }+        else+        {+          var h$RTS_466 = h$c8(h$pap_6, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 1536) - 4), h$r2, h$r3, h$r4, h$r5,+          h$r6, h$r7);+          h$r1 = h$RTS_466;+          return h$stack[h$sp];+        };+      };+    case (0):+      h$p7(h$r7, h$r6, h$r5, h$r4, h$r3, h$r2, h$ap_4_6);+      return h$RTS_459;+    case (5):+      h$p7(h$r7, h$r6, h$r5, h$r4, h$r3, h$r2, h$ap_4_6);+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("h$ap_4_6_fast: unexpected closure type: " + h$RTS_459.t));+  };+};+function h$ap_4_7_fast()+{+  var h$RTS_470 = h$r1.f;+  switch (h$RTS_470.t)+  {+    case (1):+      var h$RTS_471 = h$RTS_470.a;+      var h$RTS_473 = (h$RTS_471 & 255);+      if((4 === h$RTS_473))+      {+        return h$RTS_470;+      }+      else+      {+        if((4 > h$RTS_473))+        {+          var h$RTS_474 = (h$RTS_471 >> 8);+          var h$RTS_475 = (7 - h$RTS_474);+          switch (h$RTS_474)+          {+            case (0):+              h$stack[(h$sp + 7)] = h$r2;+            case (1):+              h$stack[(h$sp + 6)] = h$r3;+            case (2):+              h$stack[(h$sp + 5)] = h$r4;+            case (3):+              h$stack[(h$sp + 4)] = h$r5;+            case (4):+              h$stack[(h$sp + 3)] = h$r6;+            case (5):+              h$stack[(h$sp + 2)] = h$r7;+            case (6):+              h$stack[(h$sp + 1)] = h$r8;+            default:+          };+          h$sp = ((h$sp + h$RTS_475) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_475 << 8) | (4 - (h$RTS_471 & 255)))];+          return h$RTS_470;+        }+        else+        {+          var h$RTS_472 = h$c9(h$pap_gen, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 1792) - 4), h$r2, h$r3, h$r4, h$r5,+          h$r6, h$r7, h$r8);+          h$r1 = h$RTS_472;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_476 = h$r1.d2.d1;+      var h$RTS_478 = (h$RTS_476 & 255);+      if((4 === h$RTS_478))+      {+        return h$RTS_470;+      }+      else+      {+        if((4 > h$RTS_478))+        {+          var h$RTS_479 = (h$RTS_476 >> 8);+          var h$RTS_480 = (7 - h$RTS_479);+          switch (h$RTS_479)+          {+            case (0):+              h$stack[(h$sp + 7)] = h$r2;+            case (1):+              h$stack[(h$sp + 6)] = h$r3;+            case (2):+              h$stack[(h$sp + 5)] = h$r4;+            case (3):+              h$stack[(h$sp + 4)] = h$r5;+            case (4):+              h$stack[(h$sp + 3)] = h$r6;+            case (5):+              h$stack[(h$sp + 2)] = h$r7;+            case (6):+              h$stack[(h$sp + 1)] = h$r8;+            default:+          };+          h$sp = ((h$sp + h$RTS_480) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_480 << 8) | (4 - (h$RTS_476 & 255)))];+          return h$RTS_470;+        }+        else+        {+          var h$RTS_477 = h$c9(h$pap_gen, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 1792) - 4), h$r2, h$r3, h$r4, h$r5,+          h$r6, h$r7, h$r8);+          h$r1 = h$RTS_477;+          return h$stack[h$sp];+        };+      };+    case (0):+      h$p8(h$r8, h$r7, h$r6, h$r5, h$r4, h$r3, h$r2, h$ap_4_7);+      return h$RTS_470;+    case (5):+      h$p8(h$r8, h$r7, h$r6, h$r5, h$r4, h$r3, h$r2, h$ap_4_7);+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("h$ap_4_7_fast: unexpected closure type: " + h$RTS_470.t));+  };+};+function h$ap_4_8_fast()+{+  var h$RTS_481 = h$r1.f;+  switch (h$RTS_481.t)+  {+    case (1):+      var h$RTS_482 = h$RTS_481.a;+      var h$RTS_484 = (h$RTS_482 & 255);+      if((4 === h$RTS_484))+      {+        return h$RTS_481;+      }+      else+      {+        if((4 > h$RTS_484))+        {+          var h$RTS_485 = (h$RTS_482 >> 8);+          var h$RTS_486 = (8 - h$RTS_485);+          switch (h$RTS_485)+          {+            case (0):+              h$stack[(h$sp + 8)] = h$r2;+            case (1):+              h$stack[(h$sp + 7)] = h$r3;+            case (2):+              h$stack[(h$sp + 6)] = h$r4;+            case (3):+              h$stack[(h$sp + 5)] = h$r5;+            case (4):+              h$stack[(h$sp + 4)] = h$r6;+            case (5):+              h$stack[(h$sp + 3)] = h$r7;+            case (6):+              h$stack[(h$sp + 2)] = h$r8;+            case (7):+              h$stack[(h$sp + 1)] = h$r9;+            default:+          };+          h$sp = ((h$sp + h$RTS_486) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_486 << 8) | (4 - (h$RTS_482 & 255)))];+          return h$RTS_481;+        }+        else+        {+          var h$RTS_483 = h$c10(h$pap_gen, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 2048) - 4), h$r2, h$r3, h$r4,+          h$r5, h$r6, h$r7, h$r8, h$r9);+          h$r1 = h$RTS_483;+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_487 = h$r1.d2.d1;+      var h$RTS_489 = (h$RTS_487 & 255);+      if((4 === h$RTS_489))+      {+        return h$RTS_481;+      }+      else+      {+        if((4 > h$RTS_489))+        {+          var h$RTS_490 = (h$RTS_487 >> 8);+          var h$RTS_491 = (8 - h$RTS_490);+          switch (h$RTS_490)+          {+            case (0):+              h$stack[(h$sp + 8)] = h$r2;+            case (1):+              h$stack[(h$sp + 7)] = h$r3;+            case (2):+              h$stack[(h$sp + 6)] = h$r4;+            case (3):+              h$stack[(h$sp + 5)] = h$r5;+            case (4):+              h$stack[(h$sp + 4)] = h$r6;+            case (5):+              h$stack[(h$sp + 3)] = h$r7;+            case (6):+              h$stack[(h$sp + 2)] = h$r8;+            case (7):+              h$stack[(h$sp + 1)] = h$r9;+            default:+          };+          h$sp = ((h$sp + h$RTS_491) + 1);+          h$stack[h$sp] = h$apply[((h$RTS_491 << 8) | (4 - (h$RTS_487 & 255)))];+          return h$RTS_481;+        }+        else+        {+          var h$RTS_488 = h$c10(h$pap_gen, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 2048) - 4), h$r2, h$r3, h$r4,+          h$r5, h$r6, h$r7, h$r8, h$r9);+          h$r1 = h$RTS_488;+          return h$stack[h$sp];+        };+      };+    case (0):+      h$p9(h$r9, h$r8, h$r7, h$r6, h$r5, h$r4, h$r3, h$r2, h$ap_4_8);+      return h$RTS_481;+    case (5):+      h$p9(h$r9, h$r8, h$r7, h$r6, h$r5, h$r4, h$r3, h$r2, h$ap_4_8);+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("h$ap_4_8_fast: unexpected closure type: " + h$RTS_481.t));+  };+};+function h$pap_0()+{+  var h$RTS_492 = h$r1.d1;+  var h$RTS_493 = h$r1.d2;+  var h$RTS_494 = h$RTS_492.f;+  var h$RTS_495 = ((((h$RTS_494.t === 1) ? h$RTS_494.a : h$RTS_492.d2.d1) >> 8) - 0);+  switch (h$RTS_495)+  {+    case (127):+      h$regs[95] = h$regs[95];+    case (126):+      h$regs[94] = h$regs[94];+    case (125):+      h$regs[93] = h$regs[93];+    case (124):+      h$regs[92] = h$regs[92];+    case (123):+      h$regs[91] = h$regs[91];+    case (122):+      h$regs[90] = h$regs[90];+    case (121):+      h$regs[89] = h$regs[89];+    case (120):+      h$regs[88] = h$regs[88];+    case (119):+      h$regs[87] = h$regs[87];+    case (118):+      h$regs[86] = h$regs[86];+    case (117):+      h$regs[85] = h$regs[85];+    case (116):+      h$regs[84] = h$regs[84];+    case (115):+      h$regs[83] = h$regs[83];+    case (114):+      h$regs[82] = h$regs[82];+    case (113):+      h$regs[81] = h$regs[81];+    case (112):+      h$regs[80] = h$regs[80];+    case (111):+      h$regs[79] = h$regs[79];+    case (110):+      h$regs[78] = h$regs[78];+    case (109):+      h$regs[77] = h$regs[77];+    case (108):+      h$regs[76] = h$regs[76];+    case (107):+      h$regs[75] = h$regs[75];+    case (106):+      h$regs[74] = h$regs[74];+    case (105):+      h$regs[73] = h$regs[73];+    case (104):+      h$regs[72] = h$regs[72];+    case (103):+      h$regs[71] = h$regs[71];+    case (102):+      h$regs[70] = h$regs[70];+    case (101):+      h$regs[69] = h$regs[69];+    case (100):+      h$regs[68] = h$regs[68];+    case (99):+      h$regs[67] = h$regs[67];+    case (98):+      h$regs[66] = h$regs[66];+    case (97):+      h$regs[65] = h$regs[65];+    case (96):+      h$regs[64] = h$regs[64];+    case (95):+      h$regs[63] = h$regs[63];+    case (94):+      h$regs[62] = h$regs[62];+    case (93):+      h$regs[61] = h$regs[61];+    case (92):+      h$regs[60] = h$regs[60];+    case (91):+      h$regs[59] = h$regs[59];+    case (90):+      h$regs[58] = h$regs[58];+    case (89):+      h$regs[57] = h$regs[57];+    case (88):+      h$regs[56] = h$regs[56];+    case (87):+      h$regs[55] = h$regs[55];+    case (86):+      h$regs[54] = h$regs[54];+    case (85):+      h$regs[53] = h$regs[53];+    case (84):+      h$regs[52] = h$regs[52];+    case (83):+      h$regs[51] = h$regs[51];+    case (82):+      h$regs[50] = h$regs[50];+    case (81):+      h$regs[49] = h$regs[49];+    case (80):+      h$regs[48] = h$regs[48];+    case (79):+      h$regs[47] = h$regs[47];+    case (78):+      h$regs[46] = h$regs[46];+    case (77):+      h$regs[45] = h$regs[45];+    case (76):+      h$regs[44] = h$regs[44];+    case (75):+      h$regs[43] = h$regs[43];+    case (74):+      h$regs[42] = h$regs[42];+    case (73):+      h$regs[41] = h$regs[41];+    case (72):+      h$regs[40] = h$regs[40];+    case (71):+      h$regs[39] = h$regs[39];+    case (70):+      h$regs[38] = h$regs[38];+    case (69):+      h$regs[37] = h$regs[37];+    case (68):+      h$regs[36] = h$regs[36];+    case (67):+      h$regs[35] = h$regs[35];+    case (66):+      h$regs[34] = h$regs[34];+    case (65):+      h$regs[33] = h$regs[33];+    case (64):+      h$regs[32] = h$regs[32];+    case (63):+      h$regs[31] = h$regs[31];+    case (62):+      h$regs[30] = h$regs[30];+    case (61):+      h$regs[29] = h$regs[29];+    case (60):+      h$regs[28] = h$regs[28];+    case (59):+      h$regs[27] = h$regs[27];+    case (58):+      h$regs[26] = h$regs[26];+    case (57):+      h$regs[25] = h$regs[25];+    case (56):+      h$regs[24] = h$regs[24];+    case (55):+      h$regs[23] = h$regs[23];+    case (54):+      h$regs[22] = h$regs[22];+    case (53):+      h$regs[21] = h$regs[21];+    case (52):+      h$regs[20] = h$regs[20];+    case (51):+      h$regs[19] = h$regs[19];+    case (50):+      h$regs[18] = h$regs[18];+    case (49):+      h$regs[17] = h$regs[17];+    case (48):+      h$regs[16] = h$regs[16];+    case (47):+      h$regs[15] = h$regs[15];+    case (46):+      h$regs[14] = h$regs[14];+    case (45):+      h$regs[13] = h$regs[13];+    case (44):+      h$regs[12] = h$regs[12];+    case (43):+      h$regs[11] = h$regs[11];+    case (42):+      h$regs[10] = h$regs[10];+    case (41):+      h$regs[9] = h$regs[9];+    case (40):+      h$regs[8] = h$regs[8];+    case (39):+      h$regs[7] = h$regs[7];+    case (38):+      h$regs[6] = h$regs[6];+    case (37):+      h$regs[5] = h$regs[5];+    case (36):+      h$regs[4] = h$regs[4];+    case (35):+      h$regs[3] = h$regs[3];+    case (34):+      h$regs[2] = h$regs[2];+    case (33):+      h$regs[1] = h$regs[1];+    case (32):+      h$regs[0] = h$regs[0];+    case (31):+      h$r32 = h$r32;+    case (30):+      h$r31 = h$r31;+    case (29):+      h$r30 = h$r30;+    case (28):+      h$r29 = h$r29;+    case (27):+      h$r28 = h$r28;+    case (26):+      h$r27 = h$r27;+    case (25):+      h$r26 = h$r26;+    case (24):+      h$r25 = h$r25;+    case (23):+      h$r24 = h$r24;+    case (22):+      h$r23 = h$r23;+    case (21):+      h$r22 = h$r22;+    case (20):+      h$r21 = h$r21;+    case (19):+      h$r20 = h$r20;+    case (18):+      h$r19 = h$r19;+    case (17):+      h$r18 = h$r18;+    case (16):+      h$r17 = h$r17;+    case (15):+      h$r16 = h$r16;+    case (14):+      h$r15 = h$r15;+    case (13):+      h$r14 = h$r14;+    case (12):+      h$r13 = h$r13;+    case (11):+      h$r12 = h$r12;+    case (10):+      h$r11 = h$r11;+    case (9):+      h$r10 = h$r10;+    case (8):+      h$r9 = h$r9;+    case (7):+      h$r8 = h$r8;+    case (6):+      h$r7 = h$r7;+    case (5):+      h$r6 = h$r6;+    case (4):+      h$r5 = h$r5;+    case (3):+      h$r4 = h$r4;+    case (2):+      h$r3 = h$r3;+    case (1):+      h$r2 = h$r2;+    default:+  };+  h$r1 = h$RTS_492;+  return h$RTS_494;+};+h$o(h$pap_0, 3, 0, 2, (-1), null);+function h$pap_1()+{+  var h$RTS_496 = h$r1.d1;+  var h$RTS_497 = h$r1.d2;+  var h$RTS_498 = h$RTS_496.f;+  var h$RTS_499 = ((((h$RTS_498.t === 1) ? h$RTS_498.a : h$RTS_496.d2.d1) >> 8) - 1);+  switch (h$RTS_499)+  {+    case (126):+      h$regs[95] = h$regs[94];+    case (125):+      h$regs[94] = h$regs[93];+    case (124):+      h$regs[93] = h$regs[92];+    case (123):+      h$regs[92] = h$regs[91];+    case (122):+      h$regs[91] = h$regs[90];+    case (121):+      h$regs[90] = h$regs[89];+    case (120):+      h$regs[89] = h$regs[88];+    case (119):+      h$regs[88] = h$regs[87];+    case (118):+      h$regs[87] = h$regs[86];+    case (117):+      h$regs[86] = h$regs[85];+    case (116):+      h$regs[85] = h$regs[84];+    case (115):+      h$regs[84] = h$regs[83];+    case (114):+      h$regs[83] = h$regs[82];+    case (113):+      h$regs[82] = h$regs[81];+    case (112):+      h$regs[81] = h$regs[80];+    case (111):+      h$regs[80] = h$regs[79];+    case (110):+      h$regs[79] = h$regs[78];+    case (109):+      h$regs[78] = h$regs[77];+    case (108):+      h$regs[77] = h$regs[76];+    case (107):+      h$regs[76] = h$regs[75];+    case (106):+      h$regs[75] = h$regs[74];+    case (105):+      h$regs[74] = h$regs[73];+    case (104):+      h$regs[73] = h$regs[72];+    case (103):+      h$regs[72] = h$regs[71];+    case (102):+      h$regs[71] = h$regs[70];+    case (101):+      h$regs[70] = h$regs[69];+    case (100):+      h$regs[69] = h$regs[68];+    case (99):+      h$regs[68] = h$regs[67];+    case (98):+      h$regs[67] = h$regs[66];+    case (97):+      h$regs[66] = h$regs[65];+    case (96):+      h$regs[65] = h$regs[64];+    case (95):+      h$regs[64] = h$regs[63];+    case (94):+      h$regs[63] = h$regs[62];+    case (93):+      h$regs[62] = h$regs[61];+    case (92):+      h$regs[61] = h$regs[60];+    case (91):+      h$regs[60] = h$regs[59];+    case (90):+      h$regs[59] = h$regs[58];+    case (89):+      h$regs[58] = h$regs[57];+    case (88):+      h$regs[57] = h$regs[56];+    case (87):+      h$regs[56] = h$regs[55];+    case (86):+      h$regs[55] = h$regs[54];+    case (85):+      h$regs[54] = h$regs[53];+    case (84):+      h$regs[53] = h$regs[52];+    case (83):+      h$regs[52] = h$regs[51];+    case (82):+      h$regs[51] = h$regs[50];+    case (81):+      h$regs[50] = h$regs[49];+    case (80):+      h$regs[49] = h$regs[48];+    case (79):+      h$regs[48] = h$regs[47];+    case (78):+      h$regs[47] = h$regs[46];+    case (77):+      h$regs[46] = h$regs[45];+    case (76):+      h$regs[45] = h$regs[44];+    case (75):+      h$regs[44] = h$regs[43];+    case (74):+      h$regs[43] = h$regs[42];+    case (73):+      h$regs[42] = h$regs[41];+    case (72):+      h$regs[41] = h$regs[40];+    case (71):+      h$regs[40] = h$regs[39];+    case (70):+      h$regs[39] = h$regs[38];+    case (69):+      h$regs[38] = h$regs[37];+    case (68):+      h$regs[37] = h$regs[36];+    case (67):+      h$regs[36] = h$regs[35];+    case (66):+      h$regs[35] = h$regs[34];+    case (65):+      h$regs[34] = h$regs[33];+    case (64):+      h$regs[33] = h$regs[32];+    case (63):+      h$regs[32] = h$regs[31];+    case (62):+      h$regs[31] = h$regs[30];+    case (61):+      h$regs[30] = h$regs[29];+    case (60):+      h$regs[29] = h$regs[28];+    case (59):+      h$regs[28] = h$regs[27];+    case (58):+      h$regs[27] = h$regs[26];+    case (57):+      h$regs[26] = h$regs[25];+    case (56):+      h$regs[25] = h$regs[24];+    case (55):+      h$regs[24] = h$regs[23];+    case (54):+      h$regs[23] = h$regs[22];+    case (53):+      h$regs[22] = h$regs[21];+    case (52):+      h$regs[21] = h$regs[20];+    case (51):+      h$regs[20] = h$regs[19];+    case (50):+      h$regs[19] = h$regs[18];+    case (49):+      h$regs[18] = h$regs[17];+    case (48):+      h$regs[17] = h$regs[16];+    case (47):+      h$regs[16] = h$regs[15];+    case (46):+      h$regs[15] = h$regs[14];+    case (45):+      h$regs[14] = h$regs[13];+    case (44):+      h$regs[13] = h$regs[12];+    case (43):+      h$regs[12] = h$regs[11];+    case (42):+      h$regs[11] = h$regs[10];+    case (41):+      h$regs[10] = h$regs[9];+    case (40):+      h$regs[9] = h$regs[8];+    case (39):+      h$regs[8] = h$regs[7];+    case (38):+      h$regs[7] = h$regs[6];+    case (37):+      h$regs[6] = h$regs[5];+    case (36):+      h$regs[5] = h$regs[4];+    case (35):+      h$regs[4] = h$regs[3];+    case (34):+      h$regs[3] = h$regs[2];+    case (33):+      h$regs[2] = h$regs[1];+    case (32):+      h$regs[1] = h$regs[0];+    case (31):+      h$regs[0] = h$r32;+    case (30):+      h$r32 = h$r31;+    case (29):+      h$r31 = h$r30;+    case (28):+      h$r30 = h$r29;+    case (27):+      h$r29 = h$r28;+    case (26):+      h$r28 = h$r27;+    case (25):+      h$r27 = h$r26;+    case (24):+      h$r26 = h$r25;+    case (23):+      h$r25 = h$r24;+    case (22):+      h$r24 = h$r23;+    case (21):+      h$r23 = h$r22;+    case (20):+      h$r22 = h$r21;+    case (19):+      h$r21 = h$r20;+    case (18):+      h$r20 = h$r19;+    case (17):+      h$r19 = h$r18;+    case (16):+      h$r18 = h$r17;+    case (15):+      h$r17 = h$r16;+    case (14):+      h$r16 = h$r15;+    case (13):+      h$r15 = h$r14;+    case (12):+      h$r14 = h$r13;+    case (11):+      h$r13 = h$r12;+    case (10):+      h$r12 = h$r11;+    case (9):+      h$r11 = h$r10;+    case (8):+      h$r10 = h$r9;+    case (7):+      h$r9 = h$r8;+    case (6):+      h$r8 = h$r7;+    case (5):+      h$r7 = h$r6;+    case (4):+      h$r6 = h$r5;+    case (3):+      h$r5 = h$r4;+    case (2):+      h$r4 = h$r3;+    case (1):+      h$r3 = h$r2;+    default:+  };+  h$r2 = h$RTS_497.d2;+  h$r1 = h$RTS_496;+  return h$RTS_498;+};+h$o(h$pap_1, 3, 0, 3, (-1), null);+function h$pap_2()+{+  var h$RTS_500 = h$r1.d1;+  var h$RTS_501 = h$r1.d2;+  var h$RTS_502 = h$RTS_500.f;+  var h$RTS_503 = ((((h$RTS_502.t === 1) ? h$RTS_502.a : h$RTS_500.d2.d1) >> 8) - 2);+  switch (h$RTS_503)+  {+    case (125):+      h$regs[95] = h$regs[93];+    case (124):+      h$regs[94] = h$regs[92];+    case (123):+      h$regs[93] = h$regs[91];+    case (122):+      h$regs[92] = h$regs[90];+    case (121):+      h$regs[91] = h$regs[89];+    case (120):+      h$regs[90] = h$regs[88];+    case (119):+      h$regs[89] = h$regs[87];+    case (118):+      h$regs[88] = h$regs[86];+    case (117):+      h$regs[87] = h$regs[85];+    case (116):+      h$regs[86] = h$regs[84];+    case (115):+      h$regs[85] = h$regs[83];+    case (114):+      h$regs[84] = h$regs[82];+    case (113):+      h$regs[83] = h$regs[81];+    case (112):+      h$regs[82] = h$regs[80];+    case (111):+      h$regs[81] = h$regs[79];+    case (110):+      h$regs[80] = h$regs[78];+    case (109):+      h$regs[79] = h$regs[77];+    case (108):+      h$regs[78] = h$regs[76];+    case (107):+      h$regs[77] = h$regs[75];+    case (106):+      h$regs[76] = h$regs[74];+    case (105):+      h$regs[75] = h$regs[73];+    case (104):+      h$regs[74] = h$regs[72];+    case (103):+      h$regs[73] = h$regs[71];+    case (102):+      h$regs[72] = h$regs[70];+    case (101):+      h$regs[71] = h$regs[69];+    case (100):+      h$regs[70] = h$regs[68];+    case (99):+      h$regs[69] = h$regs[67];+    case (98):+      h$regs[68] = h$regs[66];+    case (97):+      h$regs[67] = h$regs[65];+    case (96):+      h$regs[66] = h$regs[64];+    case (95):+      h$regs[65] = h$regs[63];+    case (94):+      h$regs[64] = h$regs[62];+    case (93):+      h$regs[63] = h$regs[61];+    case (92):+      h$regs[62] = h$regs[60];+    case (91):+      h$regs[61] = h$regs[59];+    case (90):+      h$regs[60] = h$regs[58];+    case (89):+      h$regs[59] = h$regs[57];+    case (88):+      h$regs[58] = h$regs[56];+    case (87):+      h$regs[57] = h$regs[55];+    case (86):+      h$regs[56] = h$regs[54];+    case (85):+      h$regs[55] = h$regs[53];+    case (84):+      h$regs[54] = h$regs[52];+    case (83):+      h$regs[53] = h$regs[51];+    case (82):+      h$regs[52] = h$regs[50];+    case (81):+      h$regs[51] = h$regs[49];+    case (80):+      h$regs[50] = h$regs[48];+    case (79):+      h$regs[49] = h$regs[47];+    case (78):+      h$regs[48] = h$regs[46];+    case (77):+      h$regs[47] = h$regs[45];+    case (76):+      h$regs[46] = h$regs[44];+    case (75):+      h$regs[45] = h$regs[43];+    case (74):+      h$regs[44] = h$regs[42];+    case (73):+      h$regs[43] = h$regs[41];+    case (72):+      h$regs[42] = h$regs[40];+    case (71):+      h$regs[41] = h$regs[39];+    case (70):+      h$regs[40] = h$regs[38];+    case (69):+      h$regs[39] = h$regs[37];+    case (68):+      h$regs[38] = h$regs[36];+    case (67):+      h$regs[37] = h$regs[35];+    case (66):+      h$regs[36] = h$regs[34];+    case (65):+      h$regs[35] = h$regs[33];+    case (64):+      h$regs[34] = h$regs[32];+    case (63):+      h$regs[33] = h$regs[31];+    case (62):+      h$regs[32] = h$regs[30];+    case (61):+      h$regs[31] = h$regs[29];+    case (60):+      h$regs[30] = h$regs[28];+    case (59):+      h$regs[29] = h$regs[27];+    case (58):+      h$regs[28] = h$regs[26];+    case (57):+      h$regs[27] = h$regs[25];+    case (56):+      h$regs[26] = h$regs[24];+    case (55):+      h$regs[25] = h$regs[23];+    case (54):+      h$regs[24] = h$regs[22];+    case (53):+      h$regs[23] = h$regs[21];+    case (52):+      h$regs[22] = h$regs[20];+    case (51):+      h$regs[21] = h$regs[19];+    case (50):+      h$regs[20] = h$regs[18];+    case (49):+      h$regs[19] = h$regs[17];+    case (48):+      h$regs[18] = h$regs[16];+    case (47):+      h$regs[17] = h$regs[15];+    case (46):+      h$regs[16] = h$regs[14];+    case (45):+      h$regs[15] = h$regs[13];+    case (44):+      h$regs[14] = h$regs[12];+    case (43):+      h$regs[13] = h$regs[11];+    case (42):+      h$regs[12] = h$regs[10];+    case (41):+      h$regs[11] = h$regs[9];+    case (40):+      h$regs[10] = h$regs[8];+    case (39):+      h$regs[9] = h$regs[7];+    case (38):+      h$regs[8] = h$regs[6];+    case (37):+      h$regs[7] = h$regs[5];+    case (36):+      h$regs[6] = h$regs[4];+    case (35):+      h$regs[5] = h$regs[3];+    case (34):+      h$regs[4] = h$regs[2];+    case (33):+      h$regs[3] = h$regs[1];+    case (32):+      h$regs[2] = h$regs[0];+    case (31):+      h$regs[1] = h$r32;+    case (30):+      h$regs[0] = h$r31;+    case (29):+      h$r32 = h$r30;+    case (28):+      h$r31 = h$r29;+    case (27):+      h$r30 = h$r28;+    case (26):+      h$r29 = h$r27;+    case (25):+      h$r28 = h$r26;+    case (24):+      h$r27 = h$r25;+    case (23):+      h$r26 = h$r24;+    case (22):+      h$r25 = h$r23;+    case (21):+      h$r24 = h$r22;+    case (20):+      h$r23 = h$r21;+    case (19):+      h$r22 = h$r20;+    case (18):+      h$r21 = h$r19;+    case (17):+      h$r20 = h$r18;+    case (16):+      h$r19 = h$r17;+    case (15):+      h$r18 = h$r16;+    case (14):+      h$r17 = h$r15;+    case (13):+      h$r16 = h$r14;+    case (12):+      h$r15 = h$r13;+    case (11):+      h$r14 = h$r12;+    case (10):+      h$r13 = h$r11;+    case (9):+      h$r12 = h$r10;+    case (8):+      h$r11 = h$r9;+    case (7):+      h$r10 = h$r8;+    case (6):+      h$r9 = h$r7;+    case (5):+      h$r8 = h$r6;+    case (4):+      h$r7 = h$r5;+    case (3):+      h$r6 = h$r4;+    case (2):+      h$r5 = h$r3;+    case (1):+      h$r4 = h$r2;+    default:+  };+  h$r2 = h$RTS_501.d2;+  h$r3 = h$RTS_501.d3;+  h$r1 = h$RTS_500;+  return h$RTS_502;+};+h$o(h$pap_2, 3, 0, 4, (-1), null);+function h$pap_3()+{+  var h$RTS_504 = h$r1.d1;+  var h$RTS_505 = h$r1.d2;+  var h$RTS_506 = h$RTS_504.f;+  var h$RTS_507 = ((((h$RTS_506.t === 1) ? h$RTS_506.a : h$RTS_504.d2.d1) >> 8) - 3);+  switch (h$RTS_507)+  {+    case (124):+      h$regs[95] = h$regs[92];+    case (123):+      h$regs[94] = h$regs[91];+    case (122):+      h$regs[93] = h$regs[90];+    case (121):+      h$regs[92] = h$regs[89];+    case (120):+      h$regs[91] = h$regs[88];+    case (119):+      h$regs[90] = h$regs[87];+    case (118):+      h$regs[89] = h$regs[86];+    case (117):+      h$regs[88] = h$regs[85];+    case (116):+      h$regs[87] = h$regs[84];+    case (115):+      h$regs[86] = h$regs[83];+    case (114):+      h$regs[85] = h$regs[82];+    case (113):+      h$regs[84] = h$regs[81];+    case (112):+      h$regs[83] = h$regs[80];+    case (111):+      h$regs[82] = h$regs[79];+    case (110):+      h$regs[81] = h$regs[78];+    case (109):+      h$regs[80] = h$regs[77];+    case (108):+      h$regs[79] = h$regs[76];+    case (107):+      h$regs[78] = h$regs[75];+    case (106):+      h$regs[77] = h$regs[74];+    case (105):+      h$regs[76] = h$regs[73];+    case (104):+      h$regs[75] = h$regs[72];+    case (103):+      h$regs[74] = h$regs[71];+    case (102):+      h$regs[73] = h$regs[70];+    case (101):+      h$regs[72] = h$regs[69];+    case (100):+      h$regs[71] = h$regs[68];+    case (99):+      h$regs[70] = h$regs[67];+    case (98):+      h$regs[69] = h$regs[66];+    case (97):+      h$regs[68] = h$regs[65];+    case (96):+      h$regs[67] = h$regs[64];+    case (95):+      h$regs[66] = h$regs[63];+    case (94):+      h$regs[65] = h$regs[62];+    case (93):+      h$regs[64] = h$regs[61];+    case (92):+      h$regs[63] = h$regs[60];+    case (91):+      h$regs[62] = h$regs[59];+    case (90):+      h$regs[61] = h$regs[58];+    case (89):+      h$regs[60] = h$regs[57];+    case (88):+      h$regs[59] = h$regs[56];+    case (87):+      h$regs[58] = h$regs[55];+    case (86):+      h$regs[57] = h$regs[54];+    case (85):+      h$regs[56] = h$regs[53];+    case (84):+      h$regs[55] = h$regs[52];+    case (83):+      h$regs[54] = h$regs[51];+    case (82):+      h$regs[53] = h$regs[50];+    case (81):+      h$regs[52] = h$regs[49];+    case (80):+      h$regs[51] = h$regs[48];+    case (79):+      h$regs[50] = h$regs[47];+    case (78):+      h$regs[49] = h$regs[46];+    case (77):+      h$regs[48] = h$regs[45];+    case (76):+      h$regs[47] = h$regs[44];+    case (75):+      h$regs[46] = h$regs[43];+    case (74):+      h$regs[45] = h$regs[42];+    case (73):+      h$regs[44] = h$regs[41];+    case (72):+      h$regs[43] = h$regs[40];+    case (71):+      h$regs[42] = h$regs[39];+    case (70):+      h$regs[41] = h$regs[38];+    case (69):+      h$regs[40] = h$regs[37];+    case (68):+      h$regs[39] = h$regs[36];+    case (67):+      h$regs[38] = h$regs[35];+    case (66):+      h$regs[37] = h$regs[34];+    case (65):+      h$regs[36] = h$regs[33];+    case (64):+      h$regs[35] = h$regs[32];+    case (63):+      h$regs[34] = h$regs[31];+    case (62):+      h$regs[33] = h$regs[30];+    case (61):+      h$regs[32] = h$regs[29];+    case (60):+      h$regs[31] = h$regs[28];+    case (59):+      h$regs[30] = h$regs[27];+    case (58):+      h$regs[29] = h$regs[26];+    case (57):+      h$regs[28] = h$regs[25];+    case (56):+      h$regs[27] = h$regs[24];+    case (55):+      h$regs[26] = h$regs[23];+    case (54):+      h$regs[25] = h$regs[22];+    case (53):+      h$regs[24] = h$regs[21];+    case (52):+      h$regs[23] = h$regs[20];+    case (51):+      h$regs[22] = h$regs[19];+    case (50):+      h$regs[21] = h$regs[18];+    case (49):+      h$regs[20] = h$regs[17];+    case (48):+      h$regs[19] = h$regs[16];+    case (47):+      h$regs[18] = h$regs[15];+    case (46):+      h$regs[17] = h$regs[14];+    case (45):+      h$regs[16] = h$regs[13];+    case (44):+      h$regs[15] = h$regs[12];+    case (43):+      h$regs[14] = h$regs[11];+    case (42):+      h$regs[13] = h$regs[10];+    case (41):+      h$regs[12] = h$regs[9];+    case (40):+      h$regs[11] = h$regs[8];+    case (39):+      h$regs[10] = h$regs[7];+    case (38):+      h$regs[9] = h$regs[6];+    case (37):+      h$regs[8] = h$regs[5];+    case (36):+      h$regs[7] = h$regs[4];+    case (35):+      h$regs[6] = h$regs[3];+    case (34):+      h$regs[5] = h$regs[2];+    case (33):+      h$regs[4] = h$regs[1];+    case (32):+      h$regs[3] = h$regs[0];+    case (31):+      h$regs[2] = h$r32;+    case (30):+      h$regs[1] = h$r31;+    case (29):+      h$regs[0] = h$r30;+    case (28):+      h$r32 = h$r29;+    case (27):+      h$r31 = h$r28;+    case (26):+      h$r30 = h$r27;+    case (25):+      h$r29 = h$r26;+    case (24):+      h$r28 = h$r25;+    case (23):+      h$r27 = h$r24;+    case (22):+      h$r26 = h$r23;+    case (21):+      h$r25 = h$r22;+    case (20):+      h$r24 = h$r21;+    case (19):+      h$r23 = h$r20;+    case (18):+      h$r22 = h$r19;+    case (17):+      h$r21 = h$r18;+    case (16):+      h$r20 = h$r17;+    case (15):+      h$r19 = h$r16;+    case (14):+      h$r18 = h$r15;+    case (13):+      h$r17 = h$r14;+    case (12):+      h$r16 = h$r13;+    case (11):+      h$r15 = h$r12;+    case (10):+      h$r14 = h$r11;+    case (9):+      h$r13 = h$r10;+    case (8):+      h$r12 = h$r9;+    case (7):+      h$r11 = h$r8;+    case (6):+      h$r10 = h$r7;+    case (5):+      h$r9 = h$r6;+    case (4):+      h$r8 = h$r5;+    case (3):+      h$r7 = h$r4;+    case (2):+      h$r6 = h$r3;+    case (1):+      h$r5 = h$r2;+    default:+  };+  h$r2 = h$RTS_505.d2;+  h$r3 = h$RTS_505.d3;+  h$r4 = h$RTS_505.d4;+  h$r1 = h$RTS_504;+  return h$RTS_506;+};+h$o(h$pap_3, 3, 0, 5, (-1), null);+function h$pap_4()+{+  var h$RTS_508 = h$r1.d1;+  var h$RTS_509 = h$r1.d2;+  var h$RTS_510 = h$RTS_508.f;+  var h$RTS_511 = ((((h$RTS_510.t === 1) ? h$RTS_510.a : h$RTS_508.d2.d1) >> 8) - 4);+  switch (h$RTS_511)+  {+    case (123):+      h$regs[95] = h$regs[91];+    case (122):+      h$regs[94] = h$regs[90];+    case (121):+      h$regs[93] = h$regs[89];+    case (120):+      h$regs[92] = h$regs[88];+    case (119):+      h$regs[91] = h$regs[87];+    case (118):+      h$regs[90] = h$regs[86];+    case (117):+      h$regs[89] = h$regs[85];+    case (116):+      h$regs[88] = h$regs[84];+    case (115):+      h$regs[87] = h$regs[83];+    case (114):+      h$regs[86] = h$regs[82];+    case (113):+      h$regs[85] = h$regs[81];+    case (112):+      h$regs[84] = h$regs[80];+    case (111):+      h$regs[83] = h$regs[79];+    case (110):+      h$regs[82] = h$regs[78];+    case (109):+      h$regs[81] = h$regs[77];+    case (108):+      h$regs[80] = h$regs[76];+    case (107):+      h$regs[79] = h$regs[75];+    case (106):+      h$regs[78] = h$regs[74];+    case (105):+      h$regs[77] = h$regs[73];+    case (104):+      h$regs[76] = h$regs[72];+    case (103):+      h$regs[75] = h$regs[71];+    case (102):+      h$regs[74] = h$regs[70];+    case (101):+      h$regs[73] = h$regs[69];+    case (100):+      h$regs[72] = h$regs[68];+    case (99):+      h$regs[71] = h$regs[67];+    case (98):+      h$regs[70] = h$regs[66];+    case (97):+      h$regs[69] = h$regs[65];+    case (96):+      h$regs[68] = h$regs[64];+    case (95):+      h$regs[67] = h$regs[63];+    case (94):+      h$regs[66] = h$regs[62];+    case (93):+      h$regs[65] = h$regs[61];+    case (92):+      h$regs[64] = h$regs[60];+    case (91):+      h$regs[63] = h$regs[59];+    case (90):+      h$regs[62] = h$regs[58];+    case (89):+      h$regs[61] = h$regs[57];+    case (88):+      h$regs[60] = h$regs[56];+    case (87):+      h$regs[59] = h$regs[55];+    case (86):+      h$regs[58] = h$regs[54];+    case (85):+      h$regs[57] = h$regs[53];+    case (84):+      h$regs[56] = h$regs[52];+    case (83):+      h$regs[55] = h$regs[51];+    case (82):+      h$regs[54] = h$regs[50];+    case (81):+      h$regs[53] = h$regs[49];+    case (80):+      h$regs[52] = h$regs[48];+    case (79):+      h$regs[51] = h$regs[47];+    case (78):+      h$regs[50] = h$regs[46];+    case (77):+      h$regs[49] = h$regs[45];+    case (76):+      h$regs[48] = h$regs[44];+    case (75):+      h$regs[47] = h$regs[43];+    case (74):+      h$regs[46] = h$regs[42];+    case (73):+      h$regs[45] = h$regs[41];+    case (72):+      h$regs[44] = h$regs[40];+    case (71):+      h$regs[43] = h$regs[39];+    case (70):+      h$regs[42] = h$regs[38];+    case (69):+      h$regs[41] = h$regs[37];+    case (68):+      h$regs[40] = h$regs[36];+    case (67):+      h$regs[39] = h$regs[35];+    case (66):+      h$regs[38] = h$regs[34];+    case (65):+      h$regs[37] = h$regs[33];+    case (64):+      h$regs[36] = h$regs[32];+    case (63):+      h$regs[35] = h$regs[31];+    case (62):+      h$regs[34] = h$regs[30];+    case (61):+      h$regs[33] = h$regs[29];+    case (60):+      h$regs[32] = h$regs[28];+    case (59):+      h$regs[31] = h$regs[27];+    case (58):+      h$regs[30] = h$regs[26];+    case (57):+      h$regs[29] = h$regs[25];+    case (56):+      h$regs[28] = h$regs[24];+    case (55):+      h$regs[27] = h$regs[23];+    case (54):+      h$regs[26] = h$regs[22];+    case (53):+      h$regs[25] = h$regs[21];+    case (52):+      h$regs[24] = h$regs[20];+    case (51):+      h$regs[23] = h$regs[19];+    case (50):+      h$regs[22] = h$regs[18];+    case (49):+      h$regs[21] = h$regs[17];+    case (48):+      h$regs[20] = h$regs[16];+    case (47):+      h$regs[19] = h$regs[15];+    case (46):+      h$regs[18] = h$regs[14];+    case (45):+      h$regs[17] = h$regs[13];+    case (44):+      h$regs[16] = h$regs[12];+    case (43):+      h$regs[15] = h$regs[11];+    case (42):+      h$regs[14] = h$regs[10];+    case (41):+      h$regs[13] = h$regs[9];+    case (40):+      h$regs[12] = h$regs[8];+    case (39):+      h$regs[11] = h$regs[7];+    case (38):+      h$regs[10] = h$regs[6];+    case (37):+      h$regs[9] = h$regs[5];+    case (36):+      h$regs[8] = h$regs[4];+    case (35):+      h$regs[7] = h$regs[3];+    case (34):+      h$regs[6] = h$regs[2];+    case (33):+      h$regs[5] = h$regs[1];+    case (32):+      h$regs[4] = h$regs[0];+    case (31):+      h$regs[3] = h$r32;+    case (30):+      h$regs[2] = h$r31;+    case (29):+      h$regs[1] = h$r30;+    case (28):+      h$regs[0] = h$r29;+    case (27):+      h$r32 = h$r28;+    case (26):+      h$r31 = h$r27;+    case (25):+      h$r30 = h$r26;+    case (24):+      h$r29 = h$r25;+    case (23):+      h$r28 = h$r24;+    case (22):+      h$r27 = h$r23;+    case (21):+      h$r26 = h$r22;+    case (20):+      h$r25 = h$r21;+    case (19):+      h$r24 = h$r20;+    case (18):+      h$r23 = h$r19;+    case (17):+      h$r22 = h$r18;+    case (16):+      h$r21 = h$r17;+    case (15):+      h$r20 = h$r16;+    case (14):+      h$r19 = h$r15;+    case (13):+      h$r18 = h$r14;+    case (12):+      h$r17 = h$r13;+    case (11):+      h$r16 = h$r12;+    case (10):+      h$r15 = h$r11;+    case (9):+      h$r14 = h$r10;+    case (8):+      h$r13 = h$r9;+    case (7):+      h$r12 = h$r8;+    case (6):+      h$r11 = h$r7;+    case (5):+      h$r10 = h$r6;+    case (4):+      h$r9 = h$r5;+    case (3):+      h$r8 = h$r4;+    case (2):+      h$r7 = h$r3;+    case (1):+      h$r6 = h$r2;+    default:+  };+  h$r2 = h$RTS_509.d2;+  h$r3 = h$RTS_509.d3;+  h$r4 = h$RTS_509.d4;+  h$r5 = h$RTS_509.d5;+  h$r1 = h$RTS_508;+  return h$RTS_510;+};+h$o(h$pap_4, 3, 0, 6, (-1), null);+function h$pap_5()+{+  var h$RTS_512 = h$r1.d1;+  var h$RTS_513 = h$r1.d2;+  var h$RTS_514 = h$RTS_512.f;+  var h$RTS_515 = ((((h$RTS_514.t === 1) ? h$RTS_514.a : h$RTS_512.d2.d1) >> 8) - 5);+  switch (h$RTS_515)+  {+    case (122):+      h$regs[95] = h$regs[90];+    case (121):+      h$regs[94] = h$regs[89];+    case (120):+      h$regs[93] = h$regs[88];+    case (119):+      h$regs[92] = h$regs[87];+    case (118):+      h$regs[91] = h$regs[86];+    case (117):+      h$regs[90] = h$regs[85];+    case (116):+      h$regs[89] = h$regs[84];+    case (115):+      h$regs[88] = h$regs[83];+    case (114):+      h$regs[87] = h$regs[82];+    case (113):+      h$regs[86] = h$regs[81];+    case (112):+      h$regs[85] = h$regs[80];+    case (111):+      h$regs[84] = h$regs[79];+    case (110):+      h$regs[83] = h$regs[78];+    case (109):+      h$regs[82] = h$regs[77];+    case (108):+      h$regs[81] = h$regs[76];+    case (107):+      h$regs[80] = h$regs[75];+    case (106):+      h$regs[79] = h$regs[74];+    case (105):+      h$regs[78] = h$regs[73];+    case (104):+      h$regs[77] = h$regs[72];+    case (103):+      h$regs[76] = h$regs[71];+    case (102):+      h$regs[75] = h$regs[70];+    case (101):+      h$regs[74] = h$regs[69];+    case (100):+      h$regs[73] = h$regs[68];+    case (99):+      h$regs[72] = h$regs[67];+    case (98):+      h$regs[71] = h$regs[66];+    case (97):+      h$regs[70] = h$regs[65];+    case (96):+      h$regs[69] = h$regs[64];+    case (95):+      h$regs[68] = h$regs[63];+    case (94):+      h$regs[67] = h$regs[62];+    case (93):+      h$regs[66] = h$regs[61];+    case (92):+      h$regs[65] = h$regs[60];+    case (91):+      h$regs[64] = h$regs[59];+    case (90):+      h$regs[63] = h$regs[58];+    case (89):+      h$regs[62] = h$regs[57];+    case (88):+      h$regs[61] = h$regs[56];+    case (87):+      h$regs[60] = h$regs[55];+    case (86):+      h$regs[59] = h$regs[54];+    case (85):+      h$regs[58] = h$regs[53];+    case (84):+      h$regs[57] = h$regs[52];+    case (83):+      h$regs[56] = h$regs[51];+    case (82):+      h$regs[55] = h$regs[50];+    case (81):+      h$regs[54] = h$regs[49];+    case (80):+      h$regs[53] = h$regs[48];+    case (79):+      h$regs[52] = h$regs[47];+    case (78):+      h$regs[51] = h$regs[46];+    case (77):+      h$regs[50] = h$regs[45];+    case (76):+      h$regs[49] = h$regs[44];+    case (75):+      h$regs[48] = h$regs[43];+    case (74):+      h$regs[47] = h$regs[42];+    case (73):+      h$regs[46] = h$regs[41];+    case (72):+      h$regs[45] = h$regs[40];+    case (71):+      h$regs[44] = h$regs[39];+    case (70):+      h$regs[43] = h$regs[38];+    case (69):+      h$regs[42] = h$regs[37];+    case (68):+      h$regs[41] = h$regs[36];+    case (67):+      h$regs[40] = h$regs[35];+    case (66):+      h$regs[39] = h$regs[34];+    case (65):+      h$regs[38] = h$regs[33];+    case (64):+      h$regs[37] = h$regs[32];+    case (63):+      h$regs[36] = h$regs[31];+    case (62):+      h$regs[35] = h$regs[30];+    case (61):+      h$regs[34] = h$regs[29];+    case (60):+      h$regs[33] = h$regs[28];+    case (59):+      h$regs[32] = h$regs[27];+    case (58):+      h$regs[31] = h$regs[26];+    case (57):+      h$regs[30] = h$regs[25];+    case (56):+      h$regs[29] = h$regs[24];+    case (55):+      h$regs[28] = h$regs[23];+    case (54):+      h$regs[27] = h$regs[22];+    case (53):+      h$regs[26] = h$regs[21];+    case (52):+      h$regs[25] = h$regs[20];+    case (51):+      h$regs[24] = h$regs[19];+    case (50):+      h$regs[23] = h$regs[18];+    case (49):+      h$regs[22] = h$regs[17];+    case (48):+      h$regs[21] = h$regs[16];+    case (47):+      h$regs[20] = h$regs[15];+    case (46):+      h$regs[19] = h$regs[14];+    case (45):+      h$regs[18] = h$regs[13];+    case (44):+      h$regs[17] = h$regs[12];+    case (43):+      h$regs[16] = h$regs[11];+    case (42):+      h$regs[15] = h$regs[10];+    case (41):+      h$regs[14] = h$regs[9];+    case (40):+      h$regs[13] = h$regs[8];+    case (39):+      h$regs[12] = h$regs[7];+    case (38):+      h$regs[11] = h$regs[6];+    case (37):+      h$regs[10] = h$regs[5];+    case (36):+      h$regs[9] = h$regs[4];+    case (35):+      h$regs[8] = h$regs[3];+    case (34):+      h$regs[7] = h$regs[2];+    case (33):+      h$regs[6] = h$regs[1];+    case (32):+      h$regs[5] = h$regs[0];+    case (31):+      h$regs[4] = h$r32;+    case (30):+      h$regs[3] = h$r31;+    case (29):+      h$regs[2] = h$r30;+    case (28):+      h$regs[1] = h$r29;+    case (27):+      h$regs[0] = h$r28;+    case (26):+      h$r32 = h$r27;+    case (25):+      h$r31 = h$r26;+    case (24):+      h$r30 = h$r25;+    case (23):+      h$r29 = h$r24;+    case (22):+      h$r28 = h$r23;+    case (21):+      h$r27 = h$r22;+    case (20):+      h$r26 = h$r21;+    case (19):+      h$r25 = h$r20;+    case (18):+      h$r24 = h$r19;+    case (17):+      h$r23 = h$r18;+    case (16):+      h$r22 = h$r17;+    case (15):+      h$r21 = h$r16;+    case (14):+      h$r20 = h$r15;+    case (13):+      h$r19 = h$r14;+    case (12):+      h$r18 = h$r13;+    case (11):+      h$r17 = h$r12;+    case (10):+      h$r16 = h$r11;+    case (9):+      h$r15 = h$r10;+    case (8):+      h$r14 = h$r9;+    case (7):+      h$r13 = h$r8;+    case (6):+      h$r12 = h$r7;+    case (5):+      h$r11 = h$r6;+    case (4):+      h$r10 = h$r5;+    case (3):+      h$r9 = h$r4;+    case (2):+      h$r8 = h$r3;+    case (1):+      h$r7 = h$r2;+    default:+  };+  h$r2 = h$RTS_513.d2;+  h$r3 = h$RTS_513.d3;+  h$r4 = h$RTS_513.d4;+  h$r5 = h$RTS_513.d5;+  h$r6 = h$RTS_513.d6;+  h$r1 = h$RTS_512;+  return h$RTS_514;+};+h$o(h$pap_5, 3, 0, 7, (-1), null);+function h$pap_6()+{+  var h$RTS_516 = h$r1.d1;+  var h$RTS_517 = h$r1.d2;+  var h$RTS_518 = h$RTS_516.f;+  var h$RTS_519 = ((((h$RTS_518.t === 1) ? h$RTS_518.a : h$RTS_516.d2.d1) >> 8) - 6);+  switch (h$RTS_519)+  {+    case (121):+      h$regs[95] = h$regs[89];+    case (120):+      h$regs[94] = h$regs[88];+    case (119):+      h$regs[93] = h$regs[87];+    case (118):+      h$regs[92] = h$regs[86];+    case (117):+      h$regs[91] = h$regs[85];+    case (116):+      h$regs[90] = h$regs[84];+    case (115):+      h$regs[89] = h$regs[83];+    case (114):+      h$regs[88] = h$regs[82];+    case (113):+      h$regs[87] = h$regs[81];+    case (112):+      h$regs[86] = h$regs[80];+    case (111):+      h$regs[85] = h$regs[79];+    case (110):+      h$regs[84] = h$regs[78];+    case (109):+      h$regs[83] = h$regs[77];+    case (108):+      h$regs[82] = h$regs[76];+    case (107):+      h$regs[81] = h$regs[75];+    case (106):+      h$regs[80] = h$regs[74];+    case (105):+      h$regs[79] = h$regs[73];+    case (104):+      h$regs[78] = h$regs[72];+    case (103):+      h$regs[77] = h$regs[71];+    case (102):+      h$regs[76] = h$regs[70];+    case (101):+      h$regs[75] = h$regs[69];+    case (100):+      h$regs[74] = h$regs[68];+    case (99):+      h$regs[73] = h$regs[67];+    case (98):+      h$regs[72] = h$regs[66];+    case (97):+      h$regs[71] = h$regs[65];+    case (96):+      h$regs[70] = h$regs[64];+    case (95):+      h$regs[69] = h$regs[63];+    case (94):+      h$regs[68] = h$regs[62];+    case (93):+      h$regs[67] = h$regs[61];+    case (92):+      h$regs[66] = h$regs[60];+    case (91):+      h$regs[65] = h$regs[59];+    case (90):+      h$regs[64] = h$regs[58];+    case (89):+      h$regs[63] = h$regs[57];+    case (88):+      h$regs[62] = h$regs[56];+    case (87):+      h$regs[61] = h$regs[55];+    case (86):+      h$regs[60] = h$regs[54];+    case (85):+      h$regs[59] = h$regs[53];+    case (84):+      h$regs[58] = h$regs[52];+    case (83):+      h$regs[57] = h$regs[51];+    case (82):+      h$regs[56] = h$regs[50];+    case (81):+      h$regs[55] = h$regs[49];+    case (80):+      h$regs[54] = h$regs[48];+    case (79):+      h$regs[53] = h$regs[47];+    case (78):+      h$regs[52] = h$regs[46];+    case (77):+      h$regs[51] = h$regs[45];+    case (76):+      h$regs[50] = h$regs[44];+    case (75):+      h$regs[49] = h$regs[43];+    case (74):+      h$regs[48] = h$regs[42];+    case (73):+      h$regs[47] = h$regs[41];+    case (72):+      h$regs[46] = h$regs[40];+    case (71):+      h$regs[45] = h$regs[39];+    case (70):+      h$regs[44] = h$regs[38];+    case (69):+      h$regs[43] = h$regs[37];+    case (68):+      h$regs[42] = h$regs[36];+    case (67):+      h$regs[41] = h$regs[35];+    case (66):+      h$regs[40] = h$regs[34];+    case (65):+      h$regs[39] = h$regs[33];+    case (64):+      h$regs[38] = h$regs[32];+    case (63):+      h$regs[37] = h$regs[31];+    case (62):+      h$regs[36] = h$regs[30];+    case (61):+      h$regs[35] = h$regs[29];+    case (60):+      h$regs[34] = h$regs[28];+    case (59):+      h$regs[33] = h$regs[27];+    case (58):+      h$regs[32] = h$regs[26];+    case (57):+      h$regs[31] = h$regs[25];+    case (56):+      h$regs[30] = h$regs[24];+    case (55):+      h$regs[29] = h$regs[23];+    case (54):+      h$regs[28] = h$regs[22];+    case (53):+      h$regs[27] = h$regs[21];+    case (52):+      h$regs[26] = h$regs[20];+    case (51):+      h$regs[25] = h$regs[19];+    case (50):+      h$regs[24] = h$regs[18];+    case (49):+      h$regs[23] = h$regs[17];+    case (48):+      h$regs[22] = h$regs[16];+    case (47):+      h$regs[21] = h$regs[15];+    case (46):+      h$regs[20] = h$regs[14];+    case (45):+      h$regs[19] = h$regs[13];+    case (44):+      h$regs[18] = h$regs[12];+    case (43):+      h$regs[17] = h$regs[11];+    case (42):+      h$regs[16] = h$regs[10];+    case (41):+      h$regs[15] = h$regs[9];+    case (40):+      h$regs[14] = h$regs[8];+    case (39):+      h$regs[13] = h$regs[7];+    case (38):+      h$regs[12] = h$regs[6];+    case (37):+      h$regs[11] = h$regs[5];+    case (36):+      h$regs[10] = h$regs[4];+    case (35):+      h$regs[9] = h$regs[3];+    case (34):+      h$regs[8] = h$regs[2];+    case (33):+      h$regs[7] = h$regs[1];+    case (32):+      h$regs[6] = h$regs[0];+    case (31):+      h$regs[5] = h$r32;+    case (30):+      h$regs[4] = h$r31;+    case (29):+      h$regs[3] = h$r30;+    case (28):+      h$regs[2] = h$r29;+    case (27):+      h$regs[1] = h$r28;+    case (26):+      h$regs[0] = h$r27;+    case (25):+      h$r32 = h$r26;+    case (24):+      h$r31 = h$r25;+    case (23):+      h$r30 = h$r24;+    case (22):+      h$r29 = h$r23;+    case (21):+      h$r28 = h$r22;+    case (20):+      h$r27 = h$r21;+    case (19):+      h$r26 = h$r20;+    case (18):+      h$r25 = h$r19;+    case (17):+      h$r24 = h$r18;+    case (16):+      h$r23 = h$r17;+    case (15):+      h$r22 = h$r16;+    case (14):+      h$r21 = h$r15;+    case (13):+      h$r20 = h$r14;+    case (12):+      h$r19 = h$r13;+    case (11):+      h$r18 = h$r12;+    case (10):+      h$r17 = h$r11;+    case (9):+      h$r16 = h$r10;+    case (8):+      h$r15 = h$r9;+    case (7):+      h$r14 = h$r8;+    case (6):+      h$r13 = h$r7;+    case (5):+      h$r12 = h$r6;+    case (4):+      h$r11 = h$r5;+    case (3):+      h$r10 = h$r4;+    case (2):+      h$r9 = h$r3;+    case (1):+      h$r8 = h$r2;+    default:+  };+  h$r2 = h$RTS_517.d2;+  h$r3 = h$RTS_517.d3;+  h$r4 = h$RTS_517.d4;+  h$r5 = h$RTS_517.d5;+  h$r6 = h$RTS_517.d6;+  h$r7 = h$RTS_517.d7;+  h$r1 = h$RTS_516;+  return h$RTS_518;+};+h$o(h$pap_6, 3, 0, 8, (-1), null);+var h$apply = [];+var h$paps = [];+h$initStatic.push((function()+                   {+                     for(var h$RTS_520 = 0;(h$RTS_520 < 65536);(h$RTS_520++)) {+                       h$apply[h$RTS_520] = h$ap_gen;+                     };+                     for(h$RTS_520 = 0;(h$RTS_520 < 128);(h$RTS_520++)) {+                       h$paps[h$RTS_520] = h$pap_gen;+                     };+                     h$apply[0] = h$ap_0_0;+                     h$apply[1] = h$ap_1_0;+                     h$apply[1] = h$ap_1_0;+                     h$apply[257] = h$ap_1_1;+                     h$apply[513] = h$ap_1_2;+                     h$apply[258] = h$ap_2_1;+                     h$apply[514] = h$ap_2_2;+                     h$apply[770] = h$ap_2_3;+                     h$apply[1026] = h$ap_2_4;+                     h$apply[515] = h$ap_3_2;+                     h$apply[771] = h$ap_3_3;+                     h$apply[1027] = h$ap_3_4;+                     h$apply[1283] = h$ap_3_5;+                     h$apply[1539] = h$ap_3_6;+                     h$apply[772] = h$ap_4_3;+                     h$apply[1028] = h$ap_4_4;+                     h$apply[1284] = h$ap_4_5;+                     h$apply[1540] = h$ap_4_6;+                     h$apply[1796] = h$ap_4_7;+                     h$apply[2052] = h$ap_4_8;+                     h$paps[0] = h$pap_0;+                     h$paps[1] = h$pap_1;+                     h$paps[2] = h$pap_2;+                     h$paps[3] = h$pap_3;+                     h$paps[4] = h$pap_4;+                     h$paps[5] = h$pap_5;+                     h$paps[6] = h$pap_6;+                   }));+function h$ap_gen()+{+  var h$RTS_521 = h$r1.f;+  switch (h$RTS_521.t)+  {+    case (0):+      return h$RTS_521;+    case (1):+      var h$RTS_522 = h$stack[(h$sp - 1)];+      var h$RTS_523 = (h$RTS_521.a & 255);+      var h$RTS_524 = (h$RTS_522 & 255);+      var h$RTS_525 = (h$RTS_522 >> 8);+      if((h$RTS_524 === h$RTS_523))+      {+        for(var h$RTS_526 = 0;(h$RTS_526 < h$RTS_525);(h$RTS_526++)) {+          h$setReg((h$RTS_526 + 2), h$stack[((h$sp - 2) - h$RTS_526)]);+        };+        h$sp = ((h$sp - h$RTS_525) - 2);+        return h$RTS_521;+      }+      else+      {+        if((h$RTS_524 > h$RTS_523))+        {+          var h$RTS_527 = (h$RTS_521.a >> 8);+          for(var h$RTS_528 = 0;(h$RTS_528 < h$RTS_527);(h$RTS_528++)) {+            h$setReg((h$RTS_528 + 2), h$stack[((h$sp - 2) - h$RTS_528)]);+          };+          var h$RTS_529 = (((h$RTS_525 - h$RTS_527) << 8) | (h$RTS_524 - h$RTS_523));+          var h$RTS_530 = h$apply[h$RTS_529];+          if((h$RTS_530 === h$ap_gen))+          {+            h$sp -= h$RTS_527;+            h$stack[(h$sp - 1)] = h$RTS_529;+          }+          else+          {+            h$sp = ((h$sp - h$RTS_527) - 1);+          };+          h$stack[h$sp] = h$RTS_530;+          return h$RTS_521;+        }+        else+        {+          var h$RTS_531 = h$paps[h$RTS_525];+          var h$RTS_532 = [h$r1, (((((h$RTS_521.a >> 8) - h$RTS_525) * 256) + h$RTS_523) - h$RTS_524)];+          for(var h$RTS_533 = 0;(h$RTS_533 < h$RTS_525);(h$RTS_533++)) {+            h$RTS_532.push(h$stack[((h$sp - h$RTS_533) - 1)]);+          };+          h$sp = ((h$sp - h$RTS_525) - 2);+          h$r1 = h$init_closure({ d1: null, d2: null, f: h$RTS_531, m: 0+                                }, h$RTS_532);+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_534 = h$stack[(h$sp - 1)];+      var h$RTS_535 = (h$r1.d2.d1 & 255);+      var h$RTS_536 = (h$RTS_534 & 255);+      var h$RTS_537 = (h$RTS_534 >> 8);+      if((h$RTS_536 === h$RTS_535))+      {+        for(var h$RTS_538 = 0;(h$RTS_538 < h$RTS_537);(h$RTS_538++)) {+          h$setReg((h$RTS_538 + 2), h$stack[((h$sp - 2) - h$RTS_538)]);+        };+        h$sp = ((h$sp - h$RTS_537) - 2);+        return h$RTS_521;+      }+      else+      {+        if((h$RTS_536 > h$RTS_535))+        {+          var h$RTS_539 = (h$r1.d2.d1 >> 8);+          for(var h$RTS_540 = 0;(h$RTS_540 < h$RTS_539);(h$RTS_540++)) {+            h$setReg((h$RTS_540 + 2), h$stack[((h$sp - 2) - h$RTS_540)]);+          };+          var h$RTS_541 = (((h$RTS_537 - h$RTS_539) << 8) | (h$RTS_536 - h$RTS_535));+          var h$RTS_542 = h$apply[h$RTS_541];+          if((h$RTS_542 === h$ap_gen))+          {+            h$sp -= h$RTS_539;+            h$stack[(h$sp - 1)] = h$RTS_541;+          }+          else+          {+            h$sp = ((h$sp - h$RTS_539) - 1);+          };+          h$stack[h$sp] = h$RTS_542;+          return h$RTS_521;+        }+        else+        {+          var h$RTS_543 = h$paps[h$RTS_537];+          var h$RTS_544 = [h$r1, (((((h$r1.d2.d1 >> 8) - h$RTS_537) * 256) + h$RTS_535) - h$RTS_536)];+          for(var h$RTS_545 = 0;(h$RTS_545 < h$RTS_537);(h$RTS_545++)) {+            h$RTS_544.push(h$stack[((h$sp - h$RTS_545) - 1)]);+          };+          h$sp = ((h$sp - h$RTS_537) - 2);+          h$r1 = h$init_closure({ d1: null, d2: null, f: h$RTS_543, m: 0+                                }, h$RTS_544);+          return h$stack[h$sp];+        };+      };+    case (5):+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("h$ap_gen: unexpected closure type " + h$RTS_521.t));+  };+};+h$o(h$ap_gen, (-1), 0, (-1), 256, null);+function h$ap_gen_fast(h$RTS_546)+{+  var h$RTS_547 = h$r1.f;+  switch (h$RTS_547.t)+  {+    case (0):+      var h$RTS_548 = (h$RTS_546 >> 8);+      h$sp += h$RTS_548;+      switch (h$RTS_548)+      {+        case (64):+          h$stack[(h$sp - 63)] = h$regs[32];+        case (63):+          h$stack[(h$sp - 62)] = h$regs[31];+        case (62):+          h$stack[(h$sp - 61)] = h$regs[30];+        case (61):+          h$stack[(h$sp - 60)] = h$regs[29];+        case (60):+          h$stack[(h$sp - 59)] = h$regs[28];+        case (59):+          h$stack[(h$sp - 58)] = h$regs[27];+        case (58):+          h$stack[(h$sp - 57)] = h$regs[26];+        case (57):+          h$stack[(h$sp - 56)] = h$regs[25];+        case (56):+          h$stack[(h$sp - 55)] = h$regs[24];+        case (55):+          h$stack[(h$sp - 54)] = h$regs[23];+        case (54):+          h$stack[(h$sp - 53)] = h$regs[22];+        case (53):+          h$stack[(h$sp - 52)] = h$regs[21];+        case (52):+          h$stack[(h$sp - 51)] = h$regs[20];+        case (51):+          h$stack[(h$sp - 50)] = h$regs[19];+        case (50):+          h$stack[(h$sp - 49)] = h$regs[18];+        case (49):+          h$stack[(h$sp - 48)] = h$regs[17];+        case (48):+          h$stack[(h$sp - 47)] = h$regs[16];+        case (47):+          h$stack[(h$sp - 46)] = h$regs[15];+        case (46):+          h$stack[(h$sp - 45)] = h$regs[14];+        case (45):+          h$stack[(h$sp - 44)] = h$regs[13];+        case (44):+          h$stack[(h$sp - 43)] = h$regs[12];+        case (43):+          h$stack[(h$sp - 42)] = h$regs[11];+        case (42):+          h$stack[(h$sp - 41)] = h$regs[10];+        case (41):+          h$stack[(h$sp - 40)] = h$regs[9];+        case (40):+          h$stack[(h$sp - 39)] = h$regs[8];+        case (39):+          h$stack[(h$sp - 38)] = h$regs[7];+        case (38):+          h$stack[(h$sp - 37)] = h$regs[6];+        case (37):+          h$stack[(h$sp - 36)] = h$regs[5];+        case (36):+          h$stack[(h$sp - 35)] = h$regs[4];+        case (35):+          h$stack[(h$sp - 34)] = h$regs[3];+        case (34):+          h$stack[(h$sp - 33)] = h$regs[2];+        case (33):+          h$stack[(h$sp - 32)] = h$regs[1];+        case (32):+          h$stack[(h$sp - 31)] = h$regs[0];+        case (31):+          h$stack[(h$sp - 30)] = h$r32;+        case (30):+          h$stack[(h$sp - 29)] = h$r31;+        case (29):+          h$stack[(h$sp - 28)] = h$r30;+        case (28):+          h$stack[(h$sp - 27)] = h$r29;+        case (27):+          h$stack[(h$sp - 26)] = h$r28;+        case (26):+          h$stack[(h$sp - 25)] = h$r27;+        case (25):+          h$stack[(h$sp - 24)] = h$r26;+        case (24):+          h$stack[(h$sp - 23)] = h$r25;+        case (23):+          h$stack[(h$sp - 22)] = h$r24;+        case (22):+          h$stack[(h$sp - 21)] = h$r23;+        case (21):+          h$stack[(h$sp - 20)] = h$r22;+        case (20):+          h$stack[(h$sp - 19)] = h$r21;+        case (19):+          h$stack[(h$sp - 18)] = h$r20;+        case (18):+          h$stack[(h$sp - 17)] = h$r19;+        case (17):+          h$stack[(h$sp - 16)] = h$r18;+        case (16):+          h$stack[(h$sp - 15)] = h$r17;+        case (15):+          h$stack[(h$sp - 14)] = h$r16;+        case (14):+          h$stack[(h$sp - 13)] = h$r15;+        case (13):+          h$stack[(h$sp - 12)] = h$r14;+        case (12):+          h$stack[(h$sp - 11)] = h$r13;+        case (11):+          h$stack[(h$sp - 10)] = h$r12;+        case (10):+          h$stack[(h$sp - 9)] = h$r11;+        case (9):+          h$stack[(h$sp - 8)] = h$r10;+        case (8):+          h$stack[(h$sp - 7)] = h$r9;+        case (7):+          h$stack[(h$sp - 6)] = h$r8;+        case (6):+          h$stack[(h$sp - 5)] = h$r7;+        case (5):+          h$stack[(h$sp - 4)] = h$r6;+        case (4):+          h$stack[(h$sp - 3)] = h$r5;+        case (3):+          h$stack[(h$sp - 2)] = h$r4;+        case (2):+          h$stack[(h$sp - 1)] = h$r3;+        case (1):+          h$stack[(h$sp - 0)] = h$r2;+        default:+      };+      var h$RTS_549 = h$apply[h$RTS_546];+      if((h$RTS_549 === h$ap_gen))+      {+        h$sp += 2;+        h$stack[(h$sp - 1)] = h$RTS_546;+      }+      else+      {+        ++h$sp;+      };+      h$stack[h$sp] = h$RTS_549;+      return h$RTS_547;+    case (1):+      var h$RTS_550 = h$RTS_547.a;+      var h$RTS_551 = (h$RTS_550 & 255);+      var h$RTS_552 = (h$RTS_546 & 255);+      var h$RTS_553 = (h$RTS_546 >> 8);+      if((h$RTS_552 === h$RTS_551))+      {+        return h$RTS_547;+      }+      else+      {+        if((h$RTS_552 > h$RTS_551))+        {+          var h$RTS_554 = ((h$RTS_550 >> 8) + 1);+          h$sp = (((h$sp + h$RTS_553) - h$RTS_554) + 1);+          for(var h$RTS_555 = h$RTS_553;(h$RTS_555 >= h$RTS_554);(h$RTS_555--)) {+            h$stack[((h$sp + h$RTS_554) - h$RTS_555)] = h$getReg((h$RTS_555 + 1));+          };+          var h$RTS_556 = (((h$RTS_553 - (h$RTS_550 >> 8)) << 8) | (h$RTS_552 - h$RTS_551));+          var h$RTS_557 = h$apply[h$RTS_556];+          if((h$RTS_557 === h$ap_gen))+          {+            h$sp += 2;+            h$stack[(h$sp - 1)] = h$RTS_556;+          }+          else+          {+            ++h$sp;+          };+          h$stack[h$sp] = h$RTS_557;+          return h$RTS_547;+        }+        else+        {+          if((h$RTS_546 != 0))+          {+            var h$RTS_558 = h$paps[h$RTS_553];+            var h$RTS_559 = [h$r1, (((((h$RTS_550 >> 8) - h$RTS_553) * 256) + h$RTS_551) - h$RTS_552)];+            for(var h$RTS_560 = 0;(h$RTS_560 < h$RTS_553);(h$RTS_560++)) {+              h$RTS_559.push(h$getReg((h$RTS_560 + 2)));+            };+            h$r1 = h$init_closure({ d1: null, d2: null, f: h$RTS_558, m: 0+                                  }, h$RTS_559);+          };+          return h$stack[h$sp];+        };+      };+    case (3):+      var h$RTS_561 = h$r1.d2.d1;+      var h$RTS_562 = (h$RTS_561 & 255);+      var h$RTS_563 = (h$RTS_546 & 255);+      var h$RTS_564 = (h$RTS_546 >> 8);+      if((h$RTS_563 === h$RTS_562))+      {+        return h$RTS_547;+      }+      else+      {+        if((h$RTS_563 > h$RTS_562))+        {+          var h$RTS_565 = ((h$RTS_561 >> 8) + 1);+          h$sp = (((h$sp + h$RTS_564) - h$RTS_565) + 1);+          for(var h$RTS_566 = h$RTS_564;(h$RTS_566 >= h$RTS_565);(h$RTS_566--)) {+            h$stack[((h$sp + h$RTS_565) - h$RTS_566)] = h$getReg((h$RTS_566 + 1));+          };+          var h$RTS_567 = (((h$RTS_564 - (h$RTS_561 >> 8)) << 8) | (h$RTS_563 - h$RTS_562));+          var h$RTS_568 = h$apply[h$RTS_567];+          if((h$RTS_568 === h$ap_gen))+          {+            h$sp += 2;+            h$stack[(h$sp - 1)] = h$RTS_567;+          }+          else+          {+            ++h$sp;+          };+          h$stack[h$sp] = h$RTS_568;+          return h$RTS_547;+        }+        else+        {+          if((h$RTS_546 != 0))+          {+            var h$RTS_569 = h$paps[h$RTS_564];+            var h$RTS_570 = [h$r1, (((((h$RTS_561 >> 8) - h$RTS_564) * 256) + h$RTS_562) - h$RTS_563)];+            for(var h$RTS_571 = 0;(h$RTS_571 < h$RTS_564);(h$RTS_571++)) {+              h$RTS_570.push(h$getReg((h$RTS_571 + 2)));+            };+            h$r1 = h$init_closure({ d1: null, d2: null, f: h$RTS_569, m: 0+                                  }, h$RTS_570);+          };+          return h$stack[h$sp];+        };+      };+    case (2):+      if((h$RTS_546 != 0))+      {+        throw("h$ap_gen_fast: invalid apply");+      };+      return h$RTS_547;+    case (5):+      var h$RTS_572 = (h$RTS_546 >> 8);+      h$sp += h$RTS_572;+      switch (h$RTS_572)+      {+        case (64):+          h$stack[(h$sp - 63)] = h$regs[32];+        case (63):+          h$stack[(h$sp - 62)] = h$regs[31];+        case (62):+          h$stack[(h$sp - 61)] = h$regs[30];+        case (61):+          h$stack[(h$sp - 60)] = h$regs[29];+        case (60):+          h$stack[(h$sp - 59)] = h$regs[28];+        case (59):+          h$stack[(h$sp - 58)] = h$regs[27];+        case (58):+          h$stack[(h$sp - 57)] = h$regs[26];+        case (57):+          h$stack[(h$sp - 56)] = h$regs[25];+        case (56):+          h$stack[(h$sp - 55)] = h$regs[24];+        case (55):+          h$stack[(h$sp - 54)] = h$regs[23];+        case (54):+          h$stack[(h$sp - 53)] = h$regs[22];+        case (53):+          h$stack[(h$sp - 52)] = h$regs[21];+        case (52):+          h$stack[(h$sp - 51)] = h$regs[20];+        case (51):+          h$stack[(h$sp - 50)] = h$regs[19];+        case (50):+          h$stack[(h$sp - 49)] = h$regs[18];+        case (49):+          h$stack[(h$sp - 48)] = h$regs[17];+        case (48):+          h$stack[(h$sp - 47)] = h$regs[16];+        case (47):+          h$stack[(h$sp - 46)] = h$regs[15];+        case (46):+          h$stack[(h$sp - 45)] = h$regs[14];+        case (45):+          h$stack[(h$sp - 44)] = h$regs[13];+        case (44):+          h$stack[(h$sp - 43)] = h$regs[12];+        case (43):+          h$stack[(h$sp - 42)] = h$regs[11];+        case (42):+          h$stack[(h$sp - 41)] = h$regs[10];+        case (41):+          h$stack[(h$sp - 40)] = h$regs[9];+        case (40):+          h$stack[(h$sp - 39)] = h$regs[8];+        case (39):+          h$stack[(h$sp - 38)] = h$regs[7];+        case (38):+          h$stack[(h$sp - 37)] = h$regs[6];+        case (37):+          h$stack[(h$sp - 36)] = h$regs[5];+        case (36):+          h$stack[(h$sp - 35)] = h$regs[4];+        case (35):+          h$stack[(h$sp - 34)] = h$regs[3];+        case (34):+          h$stack[(h$sp - 33)] = h$regs[2];+        case (33):+          h$stack[(h$sp - 32)] = h$regs[1];+        case (32):+          h$stack[(h$sp - 31)] = h$regs[0];+        case (31):+          h$stack[(h$sp - 30)] = h$r32;+        case (30):+          h$stack[(h$sp - 29)] = h$r31;+        case (29):+          h$stack[(h$sp - 28)] = h$r30;+        case (28):+          h$stack[(h$sp - 27)] = h$r29;+        case (27):+          h$stack[(h$sp - 26)] = h$r28;+        case (26):+          h$stack[(h$sp - 25)] = h$r27;+        case (25):+          h$stack[(h$sp - 24)] = h$r26;+        case (24):+          h$stack[(h$sp - 23)] = h$r25;+        case (23):+          h$stack[(h$sp - 22)] = h$r24;+        case (22):+          h$stack[(h$sp - 21)] = h$r23;+        case (21):+          h$stack[(h$sp - 20)] = h$r22;+        case (20):+          h$stack[(h$sp - 19)] = h$r21;+        case (19):+          h$stack[(h$sp - 18)] = h$r20;+        case (18):+          h$stack[(h$sp - 17)] = h$r19;+        case (17):+          h$stack[(h$sp - 16)] = h$r18;+        case (16):+          h$stack[(h$sp - 15)] = h$r17;+        case (15):+          h$stack[(h$sp - 14)] = h$r16;+        case (14):+          h$stack[(h$sp - 13)] = h$r15;+        case (13):+          h$stack[(h$sp - 12)] = h$r14;+        case (12):+          h$stack[(h$sp - 11)] = h$r13;+        case (11):+          h$stack[(h$sp - 10)] = h$r12;+        case (10):+          h$stack[(h$sp - 9)] = h$r11;+        case (9):+          h$stack[(h$sp - 8)] = h$r10;+        case (8):+          h$stack[(h$sp - 7)] = h$r9;+        case (7):+          h$stack[(h$sp - 6)] = h$r8;+        case (6):+          h$stack[(h$sp - 5)] = h$r7;+        case (5):+          h$stack[(h$sp - 4)] = h$r6;+        case (4):+          h$stack[(h$sp - 3)] = h$r5;+        case (3):+          h$stack[(h$sp - 2)] = h$r4;+        case (2):+          h$stack[(h$sp - 1)] = h$r3;+        case (1):+          h$stack[(h$sp - 0)] = h$r2;+        default:+      };+      var h$RTS_573 = h$apply[h$RTS_546];+      if((h$RTS_573 === h$ap_gen))+      {+        h$sp += 2;+        h$stack[(h$sp - 1)] = h$RTS_546;+      }+      else+      {+        ++h$sp;+      };+      h$stack[h$sp] = h$RTS_573;+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      throw(("h$ap_gen_fast: unexpected closure type: " + h$RTS_547.t));+  };+};+function h$ap_0_0_fast()+{+  if((typeof h$r1 !== "object"))+  {+    return h$stack[h$sp];+  };+  var h$RTS_574 = h$r1.f;+  if((h$RTS_574 === h$unbox_e))+  {+    h$r1 = h$r1.d1;+    return h$stack[h$sp];+  };+  switch (h$RTS_574.t)+  {+    case (2):+    case (1):+    case (3):+      return h$stack[h$sp];+    case (5):+      h$p3(h$ap_0_0, h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      return h$RTS_574;+  };+};+function h$ap_0_0()+{+  --h$sp;+  if((typeof h$r1 !== "object"))+  {+    return h$stack[h$sp];+  };+  var h$RTS_575 = h$r1.f;+  if((h$RTS_575 === h$unbox_e))+  {+    h$r1 = h$r1.d1;+    return h$stack[h$sp];+  };+  switch (h$RTS_575.t)+  {+    case (2):+    case (1):+    case (3):+      return h$stack[h$sp];+    case (5):+      h$p3(h$ap_0_0, h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    default:+      return h$RTS_575;+  };+};+h$o(h$ap_0_0, (-1), 0, 0, 256, null);+function h$ap_1_0(h$RTS_576)+{+  var h$RTS_577 = h$r1.f;+  if((h$RTS_577.t === 0))+  {+    return h$RTS_577;+  }+  else+  {+    if((h$RTS_577.t === 5))+    {+      h$p2(h$r1, h$return);+      return h$blockOnBlackhole(h$r1);+    }+    else+    {+      --h$sp;+      return h$RTS_577;+    };+  };+};+h$o(h$ap_1_0, (-1), 0, 0, 256, null);+function h$e(h$RTS_578)+{+  h$r1 = h$RTS_578;+  if((typeof h$RTS_578 !== "object"))+  {+    return h$stack[h$sp];+  };+  var h$RTS_579 = h$RTS_578.f;+  if((h$RTS_579 === h$unbox_e))+  {+    h$r1 = h$RTS_578.d1;+    return h$stack[h$sp];+  };+  switch (h$RTS_579.t)+  {+    case (2):+    case (1):+    case (3):+      return h$stack[h$sp];+    case (5):+      h$p3(h$ap_0_0, h$RTS_578, h$return);+      return h$blockOnBlackhole(h$RTS_578);+    default:+      return h$RTS_579;+  };+};+function h$upd_frame()+{+  var h$RTS_580 = h$stack[(h$sp - 1)];+  var h$RTS_581 = h$RTS_580.d2;+  if((h$RTS_581 !== null))+  {+    for(var h$RTS_582 = 0;(h$RTS_582 < h$RTS_581.length);(h$RTS_582++)) {+      h$wakeupThread(h$RTS_581[h$RTS_582]);+    };+  };+  if((typeof h$r1 === "object"))+  {+    h$RTS_580.f = h$r1.f;+    h$RTS_580.d1 = h$r1.d1;+    h$RTS_580.d2 = h$r1.d2;+    h$RTS_580.m = h$r1.m;+  }+  else+  {+    h$RTS_580.f = h$unbox_e;+    h$RTS_580.d1 = h$r1;+    h$RTS_580.d2 = null;+    h$RTS_580.m = 0;+  };+  h$sp -= 2;+  return h$stack[h$sp];+};+h$o(h$upd_frame, (-1), 0, 1, 256, null);+function h$upd_frame_lne()+{+  var h$RTS_583 = h$stack[(h$sp - 1)];+  h$stack[h$RTS_583] = h$r1;+  h$sp -= 2;+  return h$stack[h$sp];+};+h$o(h$upd_frame_lne, (-1), 0, 1, 256, null);+function h$pap_gen()+{+  var h$RTS_584 = h$r1.d1;+  var h$RTS_585 = h$RTS_584.f;+  var h$RTS_586 = h$r1.d2;+  var h$RTS_587 = (((h$RTS_585.t === 1) ? h$RTS_585.a : h$RTS_584.d2.d1) >> 8);+  var h$RTS_588 = (h$r1.d2.d1 >> 8);+  var h$RTS_589 = (h$RTS_587 - h$RTS_588);+  h$moveRegs2(h$RTS_588, h$RTS_589);+  switch (h$RTS_589)+  {+    case (127):+      h$regs[95] = h$RTS_586.d128;+    case (126):+      h$regs[94] = h$RTS_586.d127;+    case (125):+      h$regs[93] = h$RTS_586.d126;+    case (124):+      h$regs[92] = h$RTS_586.d125;+    case (123):+      h$regs[91] = h$RTS_586.d124;+    case (122):+      h$regs[90] = h$RTS_586.d123;+    case (121):+      h$regs[89] = h$RTS_586.d122;+    case (120):+      h$regs[88] = h$RTS_586.d121;+    case (119):+      h$regs[87] = h$RTS_586.d120;+    case (118):+      h$regs[86] = h$RTS_586.d119;+    case (117):+      h$regs[85] = h$RTS_586.d118;+    case (116):+      h$regs[84] = h$RTS_586.d117;+    case (115):+      h$regs[83] = h$RTS_586.d116;+    case (114):+      h$regs[82] = h$RTS_586.d115;+    case (113):+      h$regs[81] = h$RTS_586.d114;+    case (112):+      h$regs[80] = h$RTS_586.d113;+    case (111):+      h$regs[79] = h$RTS_586.d112;+    case (110):+      h$regs[78] = h$RTS_586.d111;+    case (109):+      h$regs[77] = h$RTS_586.d110;+    case (108):+      h$regs[76] = h$RTS_586.d109;+    case (107):+      h$regs[75] = h$RTS_586.d108;+    case (106):+      h$regs[74] = h$RTS_586.d107;+    case (105):+      h$regs[73] = h$RTS_586.d106;+    case (104):+      h$regs[72] = h$RTS_586.d105;+    case (103):+      h$regs[71] = h$RTS_586.d104;+    case (102):+      h$regs[70] = h$RTS_586.d103;+    case (101):+      h$regs[69] = h$RTS_586.d102;+    case (100):+      h$regs[68] = h$RTS_586.d101;+    case (99):+      h$regs[67] = h$RTS_586.d100;+    case (98):+      h$regs[66] = h$RTS_586.d99;+    case (97):+      h$regs[65] = h$RTS_586.d98;+    case (96):+      h$regs[64] = h$RTS_586.d97;+    case (95):+      h$regs[63] = h$RTS_586.d96;+    case (94):+      h$regs[62] = h$RTS_586.d95;+    case (93):+      h$regs[61] = h$RTS_586.d94;+    case (92):+      h$regs[60] = h$RTS_586.d93;+    case (91):+      h$regs[59] = h$RTS_586.d92;+    case (90):+      h$regs[58] = h$RTS_586.d91;+    case (89):+      h$regs[57] = h$RTS_586.d90;+    case (88):+      h$regs[56] = h$RTS_586.d89;+    case (87):+      h$regs[55] = h$RTS_586.d88;+    case (86):+      h$regs[54] = h$RTS_586.d87;+    case (85):+      h$regs[53] = h$RTS_586.d86;+    case (84):+      h$regs[52] = h$RTS_586.d85;+    case (83):+      h$regs[51] = h$RTS_586.d84;+    case (82):+      h$regs[50] = h$RTS_586.d83;+    case (81):+      h$regs[49] = h$RTS_586.d82;+    case (80):+      h$regs[48] = h$RTS_586.d81;+    case (79):+      h$regs[47] = h$RTS_586.d80;+    case (78):+      h$regs[46] = h$RTS_586.d79;+    case (77):+      h$regs[45] = h$RTS_586.d78;+    case (76):+      h$regs[44] = h$RTS_586.d77;+    case (75):+      h$regs[43] = h$RTS_586.d76;+    case (74):+      h$regs[42] = h$RTS_586.d75;+    case (73):+      h$regs[41] = h$RTS_586.d74;+    case (72):+      h$regs[40] = h$RTS_586.d73;+    case (71):+      h$regs[39] = h$RTS_586.d72;+    case (70):+      h$regs[38] = h$RTS_586.d71;+    case (69):+      h$regs[37] = h$RTS_586.d70;+    case (68):+      h$regs[36] = h$RTS_586.d69;+    case (67):+      h$regs[35] = h$RTS_586.d68;+    case (66):+      h$regs[34] = h$RTS_586.d67;+    case (65):+      h$regs[33] = h$RTS_586.d66;+    case (64):+      h$regs[32] = h$RTS_586.d65;+    case (63):+      h$regs[31] = h$RTS_586.d64;+    case (62):+      h$regs[30] = h$RTS_586.d63;+    case (61):+      h$regs[29] = h$RTS_586.d62;+    case (60):+      h$regs[28] = h$RTS_586.d61;+    case (59):+      h$regs[27] = h$RTS_586.d60;+    case (58):+      h$regs[26] = h$RTS_586.d59;+    case (57):+      h$regs[25] = h$RTS_586.d58;+    case (56):+      h$regs[24] = h$RTS_586.d57;+    case (55):+      h$regs[23] = h$RTS_586.d56;+    case (54):+      h$regs[22] = h$RTS_586.d55;+    case (53):+      h$regs[21] = h$RTS_586.d54;+    case (52):+      h$regs[20] = h$RTS_586.d53;+    case (51):+      h$regs[19] = h$RTS_586.d52;+    case (50):+      h$regs[18] = h$RTS_586.d51;+    case (49):+      h$regs[17] = h$RTS_586.d50;+    case (48):+      h$regs[16] = h$RTS_586.d49;+    case (47):+      h$regs[15] = h$RTS_586.d48;+    case (46):+      h$regs[14] = h$RTS_586.d47;+    case (45):+      h$regs[13] = h$RTS_586.d46;+    case (44):+      h$regs[12] = h$RTS_586.d45;+    case (43):+      h$regs[11] = h$RTS_586.d44;+    case (42):+      h$regs[10] = h$RTS_586.d43;+    case (41):+      h$regs[9] = h$RTS_586.d42;+    case (40):+      h$regs[8] = h$RTS_586.d41;+    case (39):+      h$regs[7] = h$RTS_586.d40;+    case (38):+      h$regs[6] = h$RTS_586.d39;+    case (37):+      h$regs[5] = h$RTS_586.d38;+    case (36):+      h$regs[4] = h$RTS_586.d37;+    case (35):+      h$regs[3] = h$RTS_586.d36;+    case (34):+      h$regs[2] = h$RTS_586.d35;+    case (33):+      h$regs[1] = h$RTS_586.d34;+    case (32):+      h$regs[0] = h$RTS_586.d33;+    case (31):+      h$r32 = h$RTS_586.d32;+    case (30):+      h$r31 = h$RTS_586.d31;+    case (29):+      h$r30 = h$RTS_586.d30;+    case (28):+      h$r29 = h$RTS_586.d29;+    case (27):+      h$r28 = h$RTS_586.d28;+    case (26):+      h$r27 = h$RTS_586.d27;+    case (25):+      h$r26 = h$RTS_586.d26;+    case (24):+      h$r25 = h$RTS_586.d25;+    case (23):+      h$r24 = h$RTS_586.d24;+    case (22):+      h$r23 = h$RTS_586.d23;+    case (21):+      h$r22 = h$RTS_586.d22;+    case (20):+      h$r21 = h$RTS_586.d21;+    case (19):+      h$r20 = h$RTS_586.d20;+    case (18):+      h$r19 = h$RTS_586.d19;+    case (17):+      h$r18 = h$RTS_586.d18;+    case (16):+      h$r17 = h$RTS_586.d17;+    case (15):+      h$r16 = h$RTS_586.d16;+    case (14):+      h$r15 = h$RTS_586.d15;+    case (13):+      h$r14 = h$RTS_586.d14;+    case (12):+      h$r13 = h$RTS_586.d13;+    case (11):+      h$r12 = h$RTS_586.d12;+    case (10):+      h$r11 = h$RTS_586.d11;+    case (9):+      h$r10 = h$RTS_586.d10;+    case (8):+      h$r9 = h$RTS_586.d9;+    case (7):+      h$r8 = h$RTS_586.d8;+    case (6):+      h$r7 = h$RTS_586.d7;+    case (5):+      h$r6 = h$RTS_586.d6;+    case (4):+      h$r5 = h$RTS_586.d5;+    case (3):+      h$r4 = h$RTS_586.d4;+    case (2):+      h$r3 = h$RTS_586.d3;+    case (1):+      h$r2 = h$RTS_586.d2;+    default:+  };+  h$r1 = h$RTS_584;+  return h$RTS_585;+};+h$o(h$pap_gen, 3, 0, (-1), (-1), null);+function h$moveRegs2(h$RTS_590, h$RTS_591)+{+  switch (((h$RTS_590 << 8) | h$RTS_591))+  {+    case (257):+      h$r3 = h$r2;+      break;+    case (258):+      h$r4 = h$r2;+      break;+    case (259):+      h$r5 = h$r2;+      break;+    case (260):+      h$r6 = h$r2;+      break;+    case (513):+      h$r4 = h$r3;+      h$r3 = h$r2;+      break;+    case (514):+      h$r5 = h$r3;+      h$r4 = h$r2;+      break;+    case (515):+      h$r6 = h$r3;+      h$r5 = h$r2;+      break;+    case (516):+      h$r7 = h$r3;+      h$r6 = h$r2;+      break;+    case (769):+      h$r5 = h$r4;+      h$r4 = h$r3;+      h$r3 = h$r2;+      break;+    case (770):+      h$r6 = h$r4;+      h$r5 = h$r3;+      h$r4 = h$r2;+      break;+    case (771):+      h$r7 = h$r4;+      h$r6 = h$r3;+      h$r5 = h$r2;+      break;+    case (772):+      h$r8 = h$r4;+      h$r7 = h$r3;+      h$r6 = h$r2;+      break;+    case (1025):+      h$r6 = h$r5;+      h$r5 = h$r4;+      h$r4 = h$r3;+      h$r3 = h$r2;+      break;+    case (1026):+      h$r7 = h$r5;+      h$r6 = h$r4;+      h$r5 = h$r3;+      h$r4 = h$r2;+      break;+    case (1027):+      h$r8 = h$r5;+      h$r7 = h$r4;+      h$r6 = h$r3;+      h$r5 = h$r2;+      break;+    case (1028):+      h$r9 = h$r5;+      h$r8 = h$r4;+      h$r7 = h$r3;+      h$r6 = h$r2;+      break;+    case (1281):+      h$r7 = h$r6;+      h$r6 = h$r5;+      h$r5 = h$r4;+      h$r4 = h$r3;+      h$r3 = h$r2;+      break;+    case (1282):+      h$r8 = h$r6;+      h$r7 = h$r5;+      h$r6 = h$r4;+      h$r5 = h$r3;+      h$r4 = h$r2;+      break;+    case (1283):+      h$r9 = h$r6;+      h$r8 = h$r5;+      h$r7 = h$r4;+      h$r6 = h$r3;+      h$r5 = h$r2;+      break;+    case (1284):+      h$r10 = h$r6;+      h$r9 = h$r5;+      h$r8 = h$r4;+      h$r7 = h$r3;+      h$r6 = h$r2;+      break;+    default:+      for(var h$RTS_592 = h$RTS_590;(h$RTS_592 > 0);(h$RTS_592--)) {+        h$setReg(((h$RTS_592 + 1) + h$RTS_591), h$getReg((h$RTS_592 + 1)));+      };+  };+};+var h$THUNK_CLOSURE = 0;+var h$FUN_CLOSURE = 1;+var h$PAP_CLOSURE = 3;+var h$CON_CLOSURE = 2;+var h$BLACKHOLE_CLOSURE = 5;+var h$STACKFRAME_CLOSURE = (-1);+function h$closureTypeName(h$RTS_593)+{+  if((h$RTS_593 === 0))+  {+    return "Thunk";+  };+  if((h$RTS_593 === 1))+  {+    return "Fun";+  };+  if((h$RTS_593 === 3))+  {+    return "Pap";+  };+  if((h$RTS_593 === 2))+  {+    return "Con";+  };+  if((h$RTS_593 === 5))+  {+    return "Blackhole";+  };+  if((h$RTS_593 === (-1)))+  {+    return "StackFrame";+  };+  return "InvalidClosureType";+};+function h$runio_e()+{+  h$r1 = h$r1.d1;+  h$stack[++h$sp] = h$ap_1_0;+  return h$ap_1_0;+};+h$o(h$runio_e, 0, 0, 1, 256, null);+function h$runio(h$RTS_594)+{+  return h$c1(h$runio_e, h$RTS_594);+};+function h$flushStdout_e()+{+  h$r1 = h$baseZCGHCziIOziHandlezihFlush;+  h$r2 = h$baseZCGHCziIOziHandleziFDzistdout;+  return h$ap_1_1_fast();+};+h$o(h$flushStdout_e, 0, 0, 0, 0, null);+var h$flushStdout = h$static_thunk(h$flushStdout_e);+var h$RTS_595 = new Date();+function h$dumpRes(h$RTS_596)+{+  h$printcl(h$RTS_596);+  var h$RTS_597 = new Date();+  h$log((("elapsed time: " + (h$RTS_597.getTime() - h$RTS_595.getTime())) + "ms"));+};+function h$ascii(h$RTS_598)+{+  var h$RTS_599 = [];+  for(var h$RTS_600 = 0;(h$RTS_600 < h$RTS_598.length);(h$RTS_600++)) {+    h$RTS_599.push(h$RTS_598.charCodeAt(h$RTS_600));+  };+  h$RTS_599.push(0);+  return h$RTS_599;+};+function h$dumpStackTop(h$RTS_601, h$RTS_602, h$RTS_603)+{+  h$RTS_602 = Math.max(h$RTS_602, 0);+  for(var h$RTS_604 = h$RTS_602;(h$RTS_604 <= h$RTS_603);(h$RTS_604++)) {+    var h$RTS_605 = h$RTS_601[h$RTS_604];+    if((h$RTS_605 && h$RTS_605.n))+    {+      h$log(((("stack[" + h$RTS_604) + "] = ") + h$RTS_605.n));+    }+    else+    {+      if((h$RTS_605 === null))+      {+        h$log((("stack[" + h$RTS_604) + "] = null WARNING DANGER"));+      }+      else+      {+        if((((((typeof h$RTS_605 === "object") && (h$RTS_605 !== null)) && h$RTS_605.hasOwnProperty("f")) && h$RTS_605.+        hasOwnProperty("d1")) && h$RTS_605.hasOwnProperty("d2")))+        {+          if((typeof h$RTS_605.f !== "function"))+          {+            h$log((("stack[" + h$RTS_604) + "] = WARNING: dodgy object"));+          }+          else+          {+            if((h$RTS_605.d1 === undefined))+            {+              h$log((("WARNING: stack[" + h$RTS_604) + "] d1 undefined"));+            };+            if((h$RTS_605.d2 === undefined))+            {+              h$log((("WARNING: stack[" + h$RTS_604) + "] d2 undefined"));+            };+            if(((((h$RTS_605.f.t === 5) && h$RTS_605.d1) && h$RTS_605.d1.x1) && h$RTS_605.d1.x1.n))+            {+              h$log(((("stack[" + h$RTS_604) + "] = blackhole -> ") + h$RTS_605.d1.x1.n));+            }+            else+            {+              h$log(((((((((("stack[" + h$RTS_604) + "] = -> ") + (h$RTS_605.alloc ? (h$RTS_605.alloc + ": ") : "")) + h$RTS_605.f.+              n) + " (") + h$closureTypeName(h$RTS_605.f.t)) + ", a: ") + h$RTS_605.f.a) + ")"));+            };+          };+        }+        else+        {+          if(h$isInstanceOf(h$RTS_605, h$MVar))+          {+            var h$RTS_606 = ((h$RTS_605.val === null) ? " empty" : (" value -> " + ((typeof h$RTS_605.+            val === "object") ? (((((h$RTS_605.val.f.n + " (") + h$closureTypeName(h$RTS_605.val.f.t)) + ", a: ") + h$RTS_605.val.f.+            a) + ")") : h$RTS_605.val)));+            h$log(((("stack[" + h$RTS_604) + "] = MVar ") + h$RTS_606));+          }+          else+          {+            if(h$isInstanceOf(h$RTS_605, h$MutVar))+            {+              h$log(((("stack[" + h$RTS_604) + "] = IORef -> ") + ((typeof h$RTS_605.val === "object") ? (((((h$RTS_605.val.f.+              n + " (") + h$closureTypeName(h$RTS_605.val.f.t)) + ", a: ") + h$RTS_605.val.f.a) + ")") : h$RTS_605.val)));+            }+            else+            {+              if((typeof h$RTS_605 === "object"))+              {+                h$log(((("stack[" + h$RTS_604) + "] = ") + h$collectProps(h$RTS_605).substring(0, 50)));+              }+              else+              {+                if((typeof h$RTS_605 === "function"))+                {+                  var h$RTS_607 = new RegExp("([^\\n]+)\\n(.|\\n)*");+                  h$log(((("stack[" + h$RTS_604) + "] = ") + ("" + h$RTS_605).substring(0, 50).replace(h$RTS_607, "$1")));+                }+                else+                {+                  h$log(((("stack[" + h$RTS_604) + "] = ") + ("" + h$RTS_605).substring(0, 50)));+                };+              };+            };+          };+        };+      };+    };+  };+};+function h$checkObj(h$RTS_608)+{+  if(((typeof h$RTS_608 === "boolean") || (typeof h$RTS_608 === "number")))+  {+    return undefined;+  };+  if(((((!h$RTS_608.hasOwnProperty("f") || (h$RTS_608.f === null)) || (h$RTS_608.f === undefined)) || (h$RTS_608.f.+  a === undefined)) || (typeof h$RTS_608.f !== "function")))+  {+    h$log("h$checkObj: WARNING, something wrong with f:");+    h$log(("" + h$RTS_608).substring(0, 200));+    h$log(h$collectProps(h$RTS_608));+    h$log(typeof h$RTS_608.f);+  };+  if((!h$RTS_608.hasOwnProperty("d1") || (h$RTS_608.d1 === undefined)))+  {+    h$log("h$checkObj: WARNING, something wrong with d1:");+    h$log(("" + h$RTS_608).substring(0, 200));+  }+  else+  {+    if((!h$RTS_608.hasOwnProperty("d2") || (h$RTS_608.d2 === undefined)))+    {+      h$log("h$checkObj: WARNING, something wrong with d2:");+      h$log(("" + h$RTS_608).substring(0, 200));+    }+    else+    {+      if((((h$RTS_608.d2 !== null) && (typeof h$RTS_608.d2 === "object")) && (h$RTS_608.f.size !== 2)))+      {+        var h$RTS_609 = h$RTS_608.d2;+        var h$RTS_610;+        for(h$RTS_610 in h$RTS_609)+        {+          if(h$RTS_609.hasOwnProperty(h$RTS_610))+          {+            if((h$RTS_610.substring(0, 1) != "d"))+            {+              h$log(("h$checkObj: WARNING, unexpected field name: " + h$RTS_610));+              h$log(("" + h$RTS_608).substring(0, 200));+            };+            if((h$RTS_609[h$RTS_610] === undefined))+            {+              h$log(("h$checkObj: WARNING, undefined field detected: " + h$RTS_610));+              h$log(("" + h$RTS_608).substring(0, 200));+            };+          };+        };+        switch (h$RTS_608.f.size)+        {+          case (6):+            if((h$RTS_609.d5 === undefined))+            {+              h$log("h$checkObj: WARNING, undefined field detected: d5");+            };+          case (5):+            if((h$RTS_609.d4 === undefined))+            {+              h$log("h$checkObj: WARNING, undefined field detected: d4");+            };+          case (4):+            if((h$RTS_609.d3 === undefined))+            {+              h$log("h$checkObj: WARNING, undefined field detected: d3");+            };+          case (3):+            if((h$RTS_609.d2 === undefined))+            {+              h$log("h$checkObj: WARNING, undefined field detected: d2");+            };+            if((h$RTS_609.d1 === undefined))+            {+              h$log("h$checkObj: WARNING, undefined field detected: d1");+            };+          default:+            h$RTS_609 = h$RTS_608.d2;+        };+      };+    };+  };+};+function h$traceForeign(h$RTS_611, h$RTS_612)+{+  if(true)+  {+    return undefined;+  };+  var h$RTS_613 = [];+  for(var h$RTS_614 = 0;(h$RTS_614 < h$RTS_612.length);(h$RTS_614++)) {+    var h$RTS_615 = h$RTS_612[h$RTS_614];+    if((h$RTS_615 === null))+    {+      h$RTS_613.push("null");+    }+    else+    {+      if((typeof h$RTS_615 === "object"))+      {+        var h$RTS_616 = h$RTS_615.toString();+        if((h$RTS_616.length > 40))+        {+          h$RTS_613.push((h$RTS_616.substring(0, 40) + "..."));+        }+        else+        {+          h$RTS_613.push(h$RTS_616);+        };+      }+      else+      {+        h$RTS_613.push(("" + h$RTS_615));+      };+    };+  };+  h$log((((("ffi: " + h$RTS_611) + "(") + h$RTS_613.join(",")) + ")"));+};+function h$restoreThread()+{+  var h$RTS_617 = h$stack[(h$sp - 2)];+  var h$RTS_618 = h$stack[(h$sp - 1)];+  var h$RTS_619 = (h$RTS_618 - 3);+  for(var h$RTS_620 = 1;(h$RTS_620 <= h$RTS_619);(h$RTS_620++)) {+    h$setReg(h$RTS_620, h$stack[((h$sp - 2) - h$RTS_620)]);+  };+  h$sp -= h$RTS_618;+  return h$RTS_617;+};+h$o(h$restoreThread, (-1), 0, (-1), 0, null);+function h$return()+{+  h$r1 = h$stack[(h$sp - 1)];+  h$sp -= 2;+  return h$stack[h$sp];+};+h$o(h$return, (-1), 0, 1, 0, null);+function h$returnf()+{+  var h$RTS_621 = h$stack[(h$sp - 1)];+  h$sp -= 2;+  return h$RTS_621;+};+h$o(h$returnf, (-1), 0, 1, 256, null);+function h$reschedule()+{+  return h$reschedule;+};+h$o(h$reschedule, 0, 0, 0, 0, null);+function h$suspendCurrentThread(h$RTS_622)+{+  if((h$RTS_622 === h$reschedule))+  {+    throw("suspend called with h$reschedule");+  };+  if((h$RTS_622.t === (-1)))+  {+    h$stack[h$sp] = h$RTS_622;+  };+  if(((h$stack[h$sp] === h$restoreThread) || (h$RTS_622 === h$return)))+  {+    h$currentThread.sp = h$sp;+    return undefined;+  };+  var h$RTS_623;+  var h$RTS_624 = 0;+  var h$RTS_625 = h$RTS_622.t;+  if((h$RTS_625 === 3))+  {+    h$RTS_623 = ((h$r1.d2.d1 >> 8) + 1);+  }+  else+  {+    if(((h$RTS_625 === 1) || (h$RTS_625 === (-1))))+    {+      h$RTS_623 = (h$RTS_622.r >> 8);+      h$RTS_624 = (h$RTS_622.r & 255);+    }+    else+    {+      h$RTS_623 = 1;+    };+  };+  h$sp = (((h$sp + h$RTS_623) + h$RTS_624) + 3);+  for(var h$RTS_626 = 1;(h$RTS_626 <= h$RTS_624);(h$RTS_626++)) {+    h$stack[((h$sp - 2) - h$RTS_626)] = null;+  };+  for(h$RTS_626 = (h$RTS_624 + 1);(h$RTS_626 <= (h$RTS_623 + h$RTS_624));(h$RTS_626++)) {+    h$stack[((h$sp - 2) - h$RTS_626)] = h$getReg(h$RTS_626);+  };+  h$stack[(h$sp - 2)] = h$RTS_622;+  h$stack[(h$sp - 1)] = ((h$RTS_623 + h$RTS_624) + 3);+  h$stack[h$sp] = h$restoreThread;+  h$currentThread.sp = h$sp;+};+function h$dumpRes()+{+  h$log(("h$dumpRes result: " + h$stack[(h$sp - 1)]));+  h$log(h$r1);+  h$log(h$collectProps(h$r1));+  if((h$r1.f && h$r1.f.n))+  {+    h$log(("name: " + h$r1.f.n));+  };+  if(h$r1.hasOwnProperty("d1"))+  {+    h$log(("d1: " + h$r1.d1));+  };+  if(h$r1.hasOwnProperty("d2"))+  {+    h$log(("d2: " + h$r1.d2));+  };+  if(h$r1.f)+  {+    var h$RTS_627 = new RegExp("([^\\n]+)\\n(.|\\n)*");+    h$log(("function: " + ("" + h$r1.f).substring(0, 50).replace(h$RTS_627, "$1")));+  };+  h$sp -= 2;+  return h$stack[h$sp];+};+h$o(h$dumpRes, 0, 0, 1, 256, null);+function h$resume_e()+{+  var h$RTS_628 = h$r1.d1;+  h$bh();+  for(var h$RTS_629 = 0;(h$RTS_629 < h$RTS_628.length);(h$RTS_629++)) {+    h$stack[((h$sp + 1) + h$RTS_629)] = h$RTS_628[h$RTS_629];+  };+  h$sp += h$RTS_628.length;+  h$r1 = null;+  return h$stack[h$sp];+};+h$o(h$resume_e, 0, 0, 0, 256, null);+function h$unmaskFrame()+{+  h$currentThread.mask = 0;+  --h$sp;+  if((h$currentThread.excep.length > 0))+  {+    h$p2(h$r1, h$return);+    return h$reschedule;+  }+  else+  {+    return h$stack[h$sp];+  };+};+h$o(h$unmaskFrame, (-1), 0, 0, 256, null);+function h$maskFrame()+{+  h$currentThread.mask = 2;+  --h$sp;+  return h$stack[h$sp];+};+h$o(h$maskFrame, (-1), 0, 0, 256, null);+function h$maskUnintFrame()+{+  h$currentThread.mask = 1;+  --h$sp;+  return h$stack[h$sp];+};+h$o(h$maskUnintFrame, (-1), 0, 0, 256, null);+function h$unboxFFIResult()+{+  var h$RTS_630 = h$r1.d1;+  for(var h$RTS_631 = 0;(h$RTS_631 < h$RTS_630.length);(h$RTS_631++)) {+    h$setReg((h$RTS_631 + 1), h$RTS_630[h$RTS_631]);+  };+  --h$sp;+  return h$stack[h$sp];+};+h$o(h$unboxFFIResult, (-1), 0, 0, 256, null);+function h$unbox_e()+{+  h$r1 = h$r1.d1;+  return h$stack[h$sp];+};+h$o(h$unbox_e, 0, 0, 1, 256, null);+function h$retryInterrupted()+{+  var h$RTS_632 = h$stack[(h$sp - 1)];+  h$sp -= 2;+  return h$RTS_632[0].apply(this, h$RTS_632.slice(1));+};+h$o(h$retryInterrupted, (-1), 0, 1, 256, null);+function h$atomically_e()+{+  if(h$stmValidateTransaction())+  {+    h$stmCommitTransaction();+    h$sp -= 2;+    return h$stack[h$sp];+  }+  else+  {+    ++h$sp;+    h$stack[h$sp] = h$checkInvariants_e;+    return h$stmStartTransaction(h$stack[(h$sp - 2)]);+  };+};+h$o(h$atomically_e, (-1), 0, 1, 256, null);+function h$checkInvariants_e()+{+  --h$sp;+  return h$stmCheckInvariants();+};+h$o(h$checkInvariants_e, (-1), 0, 0, 256, null);+function h$stmCheckInvariantStart_e()+{+  var h$RTS_633 = h$stack[(h$sp - 2)];+  var h$RTS_634 = h$stack[(h$sp - 1)];+  var h$RTS_635 = h$currentThread.mask;+  h$sp -= 3;+  var h$RTS_636 = new h$Transaction(h$RTS_634.action, h$RTS_633);+  h$RTS_636.checkRead = new h$Set();+  h$currentThread.transaction = h$RTS_636;+  h$p4(h$RTS_636, h$RTS_635, h$stmInvariantViolatedHandler, h$catchStm_e);+  h$r1 = h$RTS_634.action;+  return h$ap_1_0_fast();+};+h$o(h$stmCheckInvariantStart_e, (-1), 0, 2, 0, null);+function h$stmCheckInvariantResult_e()+{+  var h$RTS_637 = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$stmUpdateInvariantDependencies(h$RTS_637);+  h$stmAbortTransaction();+  return h$stack[h$sp];+};+h$o(h$stmCheckInvariantResult_e, (-1), 0, 1, 256, null);+function h$stmInvariantViolatedHandler_e()+{+  if((h$stack[h$sp] !== h$stmCheckInvariantResult_e))+  {+    throw("h$stmInvariantViolatedHandler_e: unexpected value on stack");+  };+  var h$RTS_638 = h$stack[(h$sp - 1)];+  h$sp -= 2;+  h$stmUpdateInvariantDependencies(h$RTS_638);+  h$stmAbortTransaction();+  return h$throw(h$r2, false);+};+h$o(h$stmInvariantViolatedHandler_e, 1, 258, 0, 256, null);+var h$stmInvariantViolatedHandler = h$c(h$stmInvariantViolatedHandler_e);+function h$stmCatchRetry_e()+{+  h$sp -= 2;+  h$stmCommitTransaction();+  return h$stack[h$sp];+};+h$o(h$stmCatchRetry_e, (-1), 0, 1, 256, null);+function h$catchStm_e()+{+  h$sp -= 4;+  return h$stack[h$sp];+};+h$o(h$catchStm_e, (-1), 0, 3, 256, null);+function h$stmResumeRetry_e()+{+  if((h$stack[(h$sp - 2)] !== h$atomically_e))+  {+    throw("h$stmResumeRetry_e: unexpected value on stack");+  };+  var h$RTS_639 = h$stack[(h$sp - 1)];+  h$sp -= 2;+  ++h$sp;+  h$stack[h$sp] = h$checkInvariants_e;+  h$stmRemoveBlockedThread(h$RTS_639, h$currentThread);+  return h$stmStartTransaction(h$stack[(h$sp - 2)]);+};+h$o(h$stmResumeRetry_e, (-1), 0, 0, 256, null);+function h$lazy_e()+{+  var h$RTS_640 = h$r1.d1();+  h$bh();+  h$r1 = h$RTS_640;+  return h$stack[h$sp];+};+h$o(h$lazy_e, 0, 0, 0, 256, null);
haste/haste-demo.html view
@@ -13,7 +13,7 @@     This is a small live demonstration of the Haskell library <a href="http://hackage.haskell.org/package/circle-packing"><tt>circle-packing</tt></a> by <a href="http://www.joachim-breitner.de/">Joachim Breitner</a>:<br/>      Given a number of circles with their radii, this packags tries to arrange them tightly, without overlap and forming a large circle.<br/> Finding the optimal solution is NP hard, so only heuristics are feasible. This particular implementation is neither very good nor very fast, compared to the state of the art in research. Nevertheless it is simple to use and gives visually acceptable results.<br/>-    This particular demonstration uses the <a href="https://github.com/valderman/haste-compiler">Haste compiler</a> to generate JavaScript code from <a href="../Optimisation/CirclePacking.hs">the original Haskell code</a> and some <a href="haste-demo.hs">code to address the HTML5 canvas</a>, so although it runs in your browser, this <em>is</em> the Haskell code at work. There is an analougous <a href="../fay/fay-demo.html">demo based the Fay compiler</a>.+    This particular demonstration uses the <a href="https://github.com/valderman/haste-compiler">Haste compiler</a> to generate JavaScript code from <a href="../Optimisation/CirclePacking.hs">the original Haskell code</a> and some <a href="haste-demo.hs">code to address the HTML5 canvas</a>, so although it runs in your browser, this <em>is</em> the Haskell code at work. There is an analougous <a href="../fay/fay-demo.html">demo based the Fay compiler</a> and one using <a href="../ghcjs/ghcjs-demo.html">GHC-JS</a>.     </p>   </div>   </body>