<snapdata remixID="10413313"><project name="JavaScript blocks" app="Snap! 6, https://snap.berkeley.edu" version="1"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAfXUlEQVR4Xu3cfYyl110f8HPu2Lu269YB8aImMSJIAaKSlhBQQ9MXU0ictXfnxZUTqwkkKgQIKk5IQ0MUQCmEOFHJCyGQUhJwSFolGDxzZ5wsTkOzQYqEEFaLEEogVaFZiwr6Im9Lvdld73OqM3ru6tln78zcu97hF3E+85fX88z9nfP5nXu/93nueW5OfggQIECAAIG/dIH8l15RQQIECBAgQCAJYIuAAAECBAgECAjgAHQlCRAgQICAALYGCBAgQIBAgIAADkBXkgABAgQICGBrgAABAgQIBAgI4AB0JQkQIECAgAC2BggQIECAQICAAA5AV5IAAQIECAhga4AAAQIECAQICOAAdCUJECBAgIAAtgYIECBAgECAgAAOQFeSAAECBAgIYGuAAAECBAgECAjgAHQlCRAgQICAALYGCBAgQIBAgIAADkBXkgABAgQICGBrgAABAgQIBAgI4AB0JQkQIECAgAC2BggQIECAQICAAA5AV5IAAQIECAhga4AAAQIECAQICOAAdCUJECBAgIAAtgYIECBAgECAgAAOQFeSAAECBAgIYGuAAAECBAgECAjgAHQlCRAgQICAALYGCBAgQIBAgIAADkBXkgABAgQICGBrgAABAgQIBAgI4AB0JQkQIECAgAC2BggQIECAQICAAA5AV5IAAQIECAhga4AAAQIECAQICOAAdCUJECBAgIAAtgYIECBAgECAgAAOQFeSAAECBAgIYGuAAAECBAgECAjgAHQlCRAgQICAALYGCBAgQIBAgIAADkBXkgABAgQICGBrgAABAgQIBAgI4AB0JQkQIECAgAC2BggQIECAQICAAA5AV5IAAQIECAhga4AAAQIECAQICOAAdCUJECBAgIAAtgYIECBAgECAgAAOQFeSAAECBAgIYGuAAAECBAgECAjgAHQlCRAgQICAALYGCBAgQIBAgIAADkBXkgABAgQICGBrgAABAgQIBAgI4AB0JQkQIECAgAC2BggQIECAQICAAA5AV5IAAQIECAhga4AAAQIECAQICOAAdCUJECBAgIAAtgYIECBAgECAgAAOQFeSAAECBAgIYGuAAAECBAgECAjgAHQlCRAgQICAALYGCBAgQIBAgIAADkBXkgABAgQICGBrgAABAgQIBAgI4AB0JQkQIECAgAC2BggQIECAQICAAA5AV5IAAQIECAhga4AAAQIECAQICOAAdCUJECBAgIAAtgYIECBAgECAgAAOQFeSAAECBAgIYGuAAAECBAgECAjgAHQlCRAgQICAALYGCBAgQIBAgIAADkBXkgABAgQICGBrgAABAgQIBAgI4AB0JQkQIECAgAC2BggQIECAQICAAA5AV5IAAQIECAhga4AAAQIECAQICOAAdCUJECBAgIAAtgYIECBAgECAgAAOQFeSAAECBAgIYGuAAAECBAgECAjgAHQlCRAgQICAALYGCBAgQIBAgIAADkBXkgABAgQICGBrgAABAgQIBAgI4AB0JQkQIECAgAC2BggQIECAQICAAA5AV5IAAQIECAhga4AAAQIECAQICOAAdCUJECBAgIAAtgYIECBAgECAgAAOQFeSAAECBAgIYGuAAAECBAgECAjgAHQlCRAgQICAALYGCBAgQIBAgIAADkBXkgABAgQICGBrgAABAgQIBAgI4AB0JQkQIECAgAC2BggQIECAQICAAA5AV5IAAQIECAhga4AAAQIECAQICOAAdCUJECBAgIAAtgYIECBAgECAgAAOQFeSAAECBAgIYGuAAAECBAgECAjgAHQlCRAgQICAALYGCBAgQIBAgIAADkBXkgABAgQICGBrgAABAgQIBAgI4AB0JQkQIECAgAC2BggQIECAQICAAA5AV5IAAQIECAhga4AAAQIECAQICOAAdCUJECBAgIAAtgYIECBAgECAgAAOQFeSAAECBAgIYGuAAAECBAgECAjgAHQlCRAgQICAALYGCBAgQIBAgIAADkBXkgABAgQICGBrgAABAgQIBAgI4AB0JQkQIECAgAC2BggQIECAQICAAA5AV5IAAQIECAhga4AAAQIECAQICOAAdCUJECBAgIAAtgYIECBAgECAgAAOQFeSAAECBAgIYGuAAAECBAgECAjgAHQlCRAgQICAALYGCBAgQIBAgIAADkBXkgABAgQICGBrgAABAgQIBAgI4AB0JQkQIECAgAC2BggQIECAQICAAA5AV5IAAQIECAhga4AAAQIECAQICOAAdCUJECBAgIAAtgYIECBAgECAgAAOQFeSAAECBAgIYGuAAAECBAgECAjgAHQlCRAgQICAALYGCBAgQIBAgIAADkBXkgABAgQICGBrgAABAgQIBAgI4AB0JQkQIECAgAC2BggQIECAQICAAA5AV5IAAQIECAhga4AAAQIECAQICOAAdCUJECBAgIAAtgYIECBAgECAgAAOQFeSAAECBAgIYGuAAAECBAgECAjgAHQlCRAgQICAALYGCBAgQIBAgIAADkBXkgABAgQICGBrgAABAgQIBAgI4AB0JQkQIECAgAC2BggQIECAQICAAA5AV5IAAQIECAhga4AAAQIECAQINB3Ad95555dcd911r8k5v7qU8umzZ8+++OMf//j/ezJ9WF1dfWrO+fU555enlG4ppfyXnPNbT58+/SuPPPLIheFjL3rs6urqV+acT+Wcv348tlLKx0bjzhsbG88rpfxkSukfppQmpZQ/TCm988yZMx86derUF/aYX15fX//n9biU0kop5UXT6fThPcZ7T0rpK1JKF0opvzOZTH5kc3Pz0yml0h+/1Bhuu+22G57ylKd8TynlDTnnp6aUzqSUfr7ruvu2t7f/73AMh3TsUuPtxzPZ2Ni4o+u616aU/m7O+aZSymdLKbdtb2//2WzMy4x3Y2PjK7que+Ng7fxxzvkdjz322PtmfXvhC1/412688cZfzTnfsdc6nbMmll3SC81tkfEOCy/6fFv0eVEfe3DsQWtyWQPHEzh0gSYDuA+016WUfqC+cFbla/CiVV8MnpNzfqgPkXHz7tva2nrjLKSWPHbhAN4vrFNKl41hFK67Y08pfWnO+YZxAN91111/s+u6+vtvmvMm4PFSyj/Z3t7+jf5Fcc/xjsfw3Oc+9/pbb731X6eUXj3ncXfOnz//spMnT/6f+rvDOnZZsz543pdzPjEc8ziAlxnvXXfd9fSu63ZSSt8451n/M6dPn/7h+gbusAN40bktOt7Beljo+bbM82KZNXnor6QKELgKgSYDeG1t7a31LLWeGZZSfmwymby5nqk+2TPg/kXp7Sml+0+fPv2JRx555OLq6up6zvmDOedHn3jiiRc89NBDn699WubYWUCklN47nU7fvV+fjx079uVHjhz54clk8subm5v1zDetra19S87536WUzp47d+4fnzx58n8MH+PYsWN/48iRIx/KOd+aUvpUDcNxAG9sbLy8lPL+UsqPnz9//j01FI8dO3b0hhtuuKfrup9PKf3KdDp9VX3cZcawurp6Z87511JKj6SUvnc6nX5mY2PjmV3X/VLO+Xkp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</pentrails><costumes><list struct="atomic" id="2"></list></costumes><sounds><list struct="atomic" id="3"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites><sprite name="Sprite" idx="1" x="152.08203125" y="2.842170943040401e-14" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="0" color="80,80,80,1" pen="tip" id="8"><costumes><list struct="atomic" id="9"></list></costumes><sounds><list struct="atomic" id="10"></list></sounds><blocks></blocks><variables></variables><scripts><script x="464.958984375" y="265"><block var="___speed___"/></script><script x="22" y="127"><custom-block s="js return %txt"><l>t</l></custom-block></script><script x="11" y="87"><custom-block s="variable %s %txt = %s"><l></l><l>t</l><l>10</l></custom-block></script><script x="36" y="164"><custom-block s="%s ? %s : %s"><l>5==5</l><l>10</l><l>17</l></custom-block></script><script x="19" y="196"><custom-block s="create function %txt ( %mult%s ) { %txt }"><l>add</l><list><l>x</l><l>y</l></list><l>return x+y</l></custom-block></script><script x="22" y="258"><custom-block s="variable %s %txt = %s"><l></l><l>test</l><l>0</l></custom-block><custom-block s="if ( %txt ) { %mlt }"><l>8&gt;3</l><l>alert(&apos;ubunty&apos;)&#xD;test=1</l></custom-block><custom-block s="if ( %txt ) { %mlt } else { %s }"><l>test=1</l><l>test=90</l><l>test=150</l></custom-block><custom-block s="alert( %s )"><l>test</l></custom-block></script><script x="24" y="370"><custom-block s="variable %s %txt = %s"><l></l><l>test</l><l>[]</l></custom-block><custom-block s="for ( %s ; %s ; %s ) { %mlt }"><l>i=0</l><l>i&lt;25</l><l>i++</l><l>test.push(i)</l></custom-block><block s="doSetVar"><l>value</l><custom-block s="js return %txt"><l>test</l></custom-block></block></script><script x="14.609375" y="227"><custom-block s="%s .toString()"><l>&apos;sdgffg&apos;</l></custom-block></script><script x="28.609375" y="458"><custom-block s="js list %l"><block s="reportNewList"><list><l>4</l><l>5</l></list></block></custom-block></script><script x="18" y="501"><custom-block s="stringify %s %s"><l>test</l><l>"</l></custom-block></script><script x="141" y="501"><custom-block s="unstringfy %s %s"><l>"test"</l><l>"</l></custom-block></script><script x="287.1435546875" y="497"><custom-block s="unstringfy %s %s"><custom-block s="stringify %s %s"><l>testings</l><l>"</l></custom-block><l>"</l></custom-block></script><script x="20" y="539"><custom-block s="switch( %n ) { %mult%s }"><l>2</l><list><custom-block s="case %n : %mlt break;"><l>1</l><l>alert("it&apos;s 1!");</l></custom-block><custom-block s="case %n : %mlt break;"><l>2</l><l>alert("it&apos;s 2!");</l></custom-block><custom-block s="case %n : %mlt break;"><l>3</l><l>alert("it&apos;s 3!");</l></custom-block></list></custom-block></script><script x="19" y="620"><custom-block s="btoa( %s )"><l>"Hello World"</l></custom-block></script><script x="158" y="620"><custom-block s="atob( %s )"><l>"SGVsbG8gV29ybGQ="</l></custom-block></script><script x="16" y="656"><custom-block s="eval( %s )"><l>8+3^7</l></custom-block></script><script x="25" y="10"><custom-block s="start OmegaNum"></custom-block><block s="write"><custom-block s="%s .toString()"><custom-block s="OmegaNum. %s ( %mult%n )"><l>pow</l><list><l>3</l><l>5</l></list></custom-block></custom-block><l>12</l></block></script><script x="15" y="693"><custom-block s="js calc %s %s %s"><l>76</l><l>&amp;</l><l>20</l></custom-block></script><script x="293" y="204"><custom-block s="js function %txt ( %mult%s )"><l>add</l><list><l>7</l><l>5</l></list></custom-block></script><script x="10" y="728"><custom-block s="variable %s %txt = %s"><l></l><l>interval</l><custom-block s="setInterval( %s , %n )"><l>function(){alert(&apos;test&apos;);}</l><l>2000</l></custom-block></custom-block><block s="doWait"><l>6</l></block><custom-block s="clearInterval( %s )"><l>interval</l></custom-block></script><script x="546" y="12"><block s="receiveGo"></block><custom-block s="start OmegaNum"></custom-block><block s="doSetVar"><l>value</l><l>0</l></block><block s="doSetVar"><l>___speed___</l><l>0</l></block><block s="doSetVar"><l>incremental1</l><l>0</l></block><block s="doForever"><script><block s="gotoXY"><l>-180</l><l>0</l></block><block s="clear"></block><block s="doSetVar"><l>valuePow</l><custom-block s="OmegaNum. %s ( %mult%n )"><l>pow</l><list><block var="value"/><custom-block s="OmegaNum. %s ( %mult%n )"><l>pow</l><list><custom-block s="OmegaNum. %s ( %mult%n )"><l>pow</l><list><l>100</l><block s="reportQuotient"><block var="___speed___"/><l>100</l></block></list></custom-block><l>5</l></list></custom-block></list></custom-block></block><block s="write"><custom-block s="%s .toString()"><custom-block s="stringify %s %s"><custom-block s="OmegaNum. %s ( %mult%n )"><l>tetr</l><list><custom-block s="OmegaNum. %s ( %mult%n )"><l>pow</l><list><block var="valuePow"/><block var="valuePow"/></list></custom-block><custom-block s="OmegaNum. %s ( %mult%n )"><l>pow</l><list><l>10</l><custom-block s="OmegaNum. %s ( %mult%n )"><l>pow</l><list><block s="reportQuotient"><block var="incremental1"/><l>100</l></block><l>2</l></list></custom-block></list></custom-block></list></custom-block><l>"</l></custom-block></custom-block><l>20</l></block><block s="doChangeVar"><l>value</l><l>1</l></block></script></block></script><script x="350" y="636"><block s="reportListAttribute"><l><option>json</option></l><block s="reportNewList"><list><l>A</l><block s="reportNewList"><list><l>b1</l><l>b2</l></list></block><l>c</l><l>d</l></list></block></block></script></scripts></sprite><watcher var="value" style="normal" x="10" y="10" color="243,118,29"/><watcher var="valuePow" style="normal" x="17" y="139.000004" color="243,118,29"/><watcher var="___speed___" style="slider" min="-120" max="1000" x="10" y="31.000001999999995" color="243,118,29"/><watcher var="incremental1" style="slider" min="0" max="10000" x="10" y="63.000005999999985" color="243,118,29"/></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="start OmegaNum" type="command" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>startOmegaNum = function startOmegaNum() {&#xD;//Code snippets and templates from Decimal.js&#xD;&#xD;;(function (globalScope) {&#xD;  "use strict";&#xD;&#xD;&#xD;  // --  EDITABLE DEFAULTS  -- //&#xD;    var OmegaNum = {&#xD;&#xD;      // The maximum number of arrows accepted in operation.&#xD;      // It will warn and then return Infinity if exceeded.&#xD;      // This is to prevent loops to not be breaking, and also to prevent memory leaks.&#xD;      // 1000 means operation above {1000} is disallowed.&#xD;      // It is not recommended to make this number too big.&#xD;      // `OmegaNum.maxArrow = 1000;`&#xD;      maxArrow: 1e3,&#xD;&#xD;      // Specify what format is used when serializing for JSON.stringify&#xD;      // &#xD;      // JSON   0 JSON object&#xD;      // STRING 1 String&#xD;      serializeMode: 0,&#xD;      &#xD;      // Level of debug information printed in console&#xD;      // &#xD;      // NONE   0 Show no information.&#xD;      // NORMAL 1 Show operations.&#xD;      // ALL    2 Show everything.&#xD;      debug: 0&#xD;    },&#xD;&#xD;&#xD;  // -- END OF EDITABLE DEFAULTS -- //&#xD;&#xD;&#xD;    external = true,&#xD;&#xD;    omegaNumError = "[OmegaNumError] ",&#xD;    invalidArgument = omegaNumError + "Invalid argument: ",&#xD;&#xD;    isOmegaNum = /^[-\+]*(Infinity|NaN|(10(\^+|\{[1-9]\d*\})|\(10(\^+|\{[1-9]\d*\})\)\^[1-9]\d* )*((\d+(\.\d*)?|\d*\.\d+)?([Ee][-\+]*))*(0|\d+(\.\d*)?|\d*\.\d+))$/,&#xD;&#xD;    MAX_SAFE_INTEGER = 9007199254740991,&#xD;    MAX_E = Math.log10(MAX_SAFE_INTEGER), //15.954589770191003&#xD;&#xD;    // OmegaNum.prototype object&#xD;    P={},&#xD;    // OmegaNum static object&#xD;    Q={},&#xD;    // OmegaNum constants&#xD;    R={};&#xD;&#xD;  // OmegaNum prototype methods&#xD;&#xD;  /*&#xD;   *  absoluteValue             abs&#xD;   *  affordArithmeticSeries&#xD;   *  affordGeometricSeries&#xD;   *  arrow&#xD;   *  ceiling                   ceil&#xD;   *  chain&#xD;   *  choose&#xD;   *  comparedTo                cmp&#xD;   *  cubeRoot                  cbrt&#xD;   *  divide                    div&#xD;   *  equals                    eq&#xD;   *  exponential               exp&#xD;   *  factorial                 fact&#xD;   *  floor&#xD;   *  gamma&#xD;   *  generalLogarithm          log10&#xD;   *  greaterThan               gt&#xD;   *  greaterThanOrEqualTo      gte&#xD;   *  hyper&#xD;   *  isFinite&#xD;   *  isInfinite&#xD;   *  isInteger                 isint&#xD;   *  isNaN&#xD;   *  isNegative                isneg&#xD;   *  isPositive                ispos&#xD;   *  iteratedexp&#xD;   *  iteratedlog&#xD;   *  lambertw&#xD;   *  layeradd&#xD;   *  layeradd10&#xD;   *  lessThan                  lt&#xD;   *  lessThanOrEqualTo         lte&#xD;   *  logarithm                 logBase&#xD;   *  minus                     sub&#xD;   *  modulo                    mod&#xD;   *  naturalLogarithm          ln        log&#xD;   *  negated                   neg&#xD;   *  notEquals                 neq&#xD;   *  pentate                   pent&#xD;   *  plus                      add&#xD;   *  reciprocate               rec&#xD;   *  root&#xD;   *  round&#xD;   *  slog&#xD;   *  squareRoot                sqrt&#xD;   *  ssqrt                     ssrt&#xD;   *  sumArithmeticSeries&#xD;   *  sumGeometricSeries&#xD;   *  times                     mul&#xD;   *  tetrate                   tetr&#xD;   *  toExponential&#xD;   *  toFixed&#xD;   *  toHyperE&#xD;   *  toJSON&#xD;   *  toNumber&#xD;   *  toPower                   pow&#xD;   *  toPrecision&#xD;   *  toString&#xD;   *  toStringWithDecimalPlaces&#xD;   *  valueOf&#xD;   */&#xD;  R.ZERO=0;&#xD;  R.ONE=1;&#xD;  R.E=Math.E;&#xD;  R.LN2=Math.LN2;&#xD;  R.LN10=Math.LN10;&#xD;  R.LOG2E=Math.LOG2E;&#xD;  R.LOG10E=Math.LOG10E;&#xD;  R.PI=Math.PI;&#xD;  R.SQRT1_2=Math.SQRT1_2;&#xD;  R.SQRT2=Math.SQRT2;&#xD;  R.MAX_SAFE_INTEGER=MAX_SAFE_INTEGER;&#xD;  R.MIN_SAFE_INTEGER=Number.MIN_SAFE_INTEGER;&#xD;  R.NaN=Number.NaN;&#xD;  R.NEGATIVE_INFINITY=Number.NEGATIVE_INFINITY;&#xD;  R.POSITIVE_INFINITY=Number.POSITIVE_INFINITY;&#xD;  R.E_MAX_SAFE_INTEGER="e"+MAX_SAFE_INTEGER;&#xD;  R.EE_MAX_SAFE_INTEGER="ee"+MAX_SAFE_INTEGER;&#xD;  R.TETRATED_MAX_SAFE_INTEGER="10^^"+MAX_SAFE_INTEGER;&#xD;  P.absoluteValue=P.abs=function(){&#xD;    var x=this.clone();&#xD;    x.sign=1;&#xD;    return x;&#xD;  };&#xD;  Q.absoluteValue=Q.abs=function(x){&#xD;    return new OmegaNum(x).abs();&#xD;  };&#xD;  P.negate=P.neg=function (){&#xD;    var x=this.clone();&#xD;    x.sign=x.sign*-1;&#xD;    return x;&#xD;  };&#xD;  Q.negate=Q.neg=function (x){&#xD;    return new OmegaNum(x).neg();&#xD;  };&#xD;  P.compareTo=P.cmp=function (other){&#xD;    if (!(other instanceof OmegaNum)) other=new OmegaNum(other);&#xD;    if (isNaN(this.array[0])||isNaN(other.array[0])) return NaN;&#xD;    if (this.array[0]==Infinity&amp;&amp;other.array[0]!=Infinity) return this.sign;&#xD;    if (this.array[0]!=Infinity&amp;&amp;other.array[0]==Infinity) return -other.sign;&#xD;    if (this.array.length==1&amp;&amp;this.array[0]===0&amp;&amp;other.array.length==1&amp;&amp;other.array[0]===0) return 0;&#xD;    if (this.sign!=other.sign) return this.sign;&#xD;    var m=this.sign;&#xD;    var r;&#xD;    if (this.array.length&gt;other.array.length) r=1;&#xD;    else if (this.array.length&lt;other.array.length) r=-1;&#xD;    else{&#xD;      for (var i=this.array.length-1;i&gt;=0;--i){&#xD;        if (this.array[i]&gt;other.array[i]){&#xD;          r=1;&#xD;          break;&#xD;        }else if (this.array[i]&lt;other.array[i]){&#xD;          r=-1;&#xD;          break;&#xD;        }&#xD;      }&#xD;      r=r||0;&#xD;    }&#xD;    return r*m;&#xD;  };&#xD;  Q.compare=Q.cmp=function (x,y){&#xD;    return new OmegaNum(x).cmp(y);&#xD;  };&#xD;  P.greaterThan=P.gt=function (other){&#xD;    return this.cmp(other)&gt;0;&#xD;  };&#xD;  Q.greaterThan=Q.gt=function (x,y){&#xD;    return new OmegaNum(x).gt(y);&#xD;  };&#xD;  P.greaterThanOrEqualTo=P.gte=function (other){&#xD;    return this.cmp(other)&gt;=0;&#xD;  };&#xD;  Q.greaterThanOrEqualTo=Q.gte=function (x,y){&#xD;    return new OmegaNum(x).gte(y);&#xD;  };&#xD;  P.lessThan=P.lt=function (other){&#xD;    return this.cmp(other)&lt;0;&#xD;  };&#xD;  Q.lessThan=Q.lt=function (x,y){&#xD;    return new OmegaNum(x).lt(y);&#xD;  };&#xD;  P.lessThanOrEqualTo=P.lte=function (other){&#xD;    return this.cmp(other)&lt;=0;&#xD;  };&#xD;  Q.lessThanOrEqualTo=Q.lte=function (x,y){&#xD;    return new OmegaNum(x).lte(y);&#xD;  };&#xD;  P.equalsTo=P.equal=P.eq=function (other){&#xD;    return this.cmp(other)===0;&#xD;  };&#xD;  Q.equalsTo=Q.equal=Q.eq=function (x,y){&#xD;    return new OmegaNum(x).eq(y);&#xD;  };&#xD;  P.notEqualsTo=P.notEqual=P.neq=function (other){&#xD;    return this.cmp(other)!==0;&#xD;  };&#xD;  Q.notEqualsTo=Q.notEqual=Q.neq=function (x,y){&#xD;    return new OmegaNum(x).neq(y);&#xD;  };&#xD;  P.minimum=P.min=function (other){&#xD;    return this.lt(other)?this.clone():new OmegaNum(other);&#xD;  };&#xD;  Q.minimum=Q.min=function (x,y){&#xD;    return new OmegaNum(x).min(y);&#xD;  };&#xD;  P.maximum=P.max=function (other){&#xD;    return this.gt(other)?this.clone():new OmegaNum(other);&#xD;  };&#xD;  Q.maximum=Q.max=function (x,y){&#xD;    return new OmegaNum(x).max(y);&#xD;  };&#xD;  P.isPositive=P.ispos=function (){&#xD;    return this.gt(OmegaNum.ZERO);&#xD;  };&#xD;  Q.isPositive=Q.ispos=function (x){&#xD;    return new OmegaNum(x).ispos();&#xD;  };&#xD;  P.isNegative=P.isneg=function (){&#xD;    return this.lt(OmegaNum.ZERO);&#xD;  };&#xD;  Q.isNegative=Q.isneg=function (x){&#xD;    return new OmegaNum(x).isneg();&#xD;  };&#xD;  P.isNaN=function (){&#xD;    return isNaN(this.array[0]);&#xD;  };&#xD;  Q.isNaN=function (x){&#xD;    return new OmegaNum(x).isNaN();&#xD;  };&#xD;  P.isFinite=function (){&#xD;    return isFinite(this.array[0]);&#xD;  };&#xD;  Q.isFinite=function (x){&#xD;    return new OmegaNum(x).isFinite();&#xD;  };&#xD;  P.isInfinite=function (){&#xD;    return this.array[0]==Infinity;&#xD;  };&#xD;  Q.isInfinite=function (x){&#xD;    return new OmegaNum(x).isInfinite();&#xD;  };&#xD;  P.isInteger=P.isint=function (){&#xD;    if (this.sign==-1) return this.abs().isint();&#xD;    if (this.gt(OmegaNum.MAX_SAFE_INTEGER)) return true;&#xD;    return Number.isInteger(this.toNumber());&#xD;  };&#xD;  Q.isInteger=Q.isint=function (x){&#xD;    return new OmegaNum(x).isint();&#xD;  };&#xD;  P.floor=function (){&#xD;    if (this.isInteger()) return this.clone();&#xD;    return new OmegaNum(Math.floor(this.toNumber()));&#xD;  };&#xD;  Q.floor=function (x){&#xD;    return new OmegaNum(x).floor();&#xD;  };&#xD;  P.ceiling=P.ceil=function (){&#xD;    if (this.isInteger()) return this.clone();&#xD;    return new OmegaNum(Math.ceil(this.toNumber()));&#xD;  };&#xD;  Q.ceiling=Q.ceil=function (x){&#xD;    return new OmegaNum(x).ceil();&#xD;  };&#xD;  P.round=function (){&#xD;    if (this.isInteger()) return this.clone();&#xD;    return new OmegaNum(Math.round(this.toNumber()));&#xD;  };&#xD;  Q.round=function (x){&#xD;    return new OmegaNum(x).round();&#xD;  };&#xD;  P.plus=P.add=function (other){&#xD;    var x=this.clone();&#xD;    other=new OmegaNum(other);&#xD;    if (OmegaNum.debug&gt;=OmegaNum.NORMAL) console.log(this+"+"+other);&#xD;    if (x.sign==-1) return x.neg().add(other.neg()).neg();&#xD;    if (other.sign==-1) return x.sub(other.neg());&#xD;    if (x.eq(OmegaNum.ZERO)) return other;&#xD;    if (other.eq(OmegaNum.ZERO)) return x;&#xD;    if (x.isNaN()||other.isNaN()||x.isInfinite()&amp;&amp;other.isInfinite()&amp;&amp;x.eq(other.neg())) return OmegaNum.NaN.clone();&#xD;    if (x.isInfinite()) return x;&#xD;    if (other.isInfinite()) return other;&#xD;    var p=x.min(other);&#xD;    var q=x.max(other);&#xD;    var t;&#xD;    if (q.gt(OmegaNum.E_MAX_SAFE_INTEGER)||q.div(p).gt(OmegaNum.MAX_SAFE_INTEGER)){&#xD;      t=q;&#xD;    }else if (!q.array[1]){&#xD;      t=new OmegaNum(x.toNumber()+other.toNumber());&#xD;    }else if (q.array[1]==1){&#xD;      var a=p.array[1]?p.array[0]:Math.log10(p.array[0]);&#xD;      t=new OmegaNum([a+Math.log10(Math.pow(10,q.array[0]-a)+1),1]);&#xD;    }&#xD;    p=q=null;&#xD;    return t;&#xD;  };&#xD;  Q.plus=Q.add=function (x,y){&#xD;    return new OmegaNum(x).add(y);&#xD;  };&#xD;  P.minus=P.sub=function (other){&#xD;    var x=this.clone();&#xD;    other=new OmegaNum(other);&#xD;    if (OmegaNum.debug&gt;=OmegaNum.NORMAL) console.log(x+"-"+other);&#xD;    if (x.sign==-1) return x.neg().sub(other.neg()).neg();&#xD;    if (other.sign==-1) return x.add(other.neg());&#xD;    if (x.eq(other)) return OmegaNum.ZERO.clone();&#xD;    if (other.eq(OmegaNum.ZERO)) return x;&#xD;    if (x.isNaN()||other.isNaN()||x.isInfinite()&amp;&amp;other.isInfinite()) return OmegaNum.NaN.clone();&#xD;    if (x.isInfinite()) return x;&#xD;    if (other.isInfinite()) return other.neg();&#xD;    var p=x.min(other);&#xD;    var q=x.max(other);&#xD;    var n=other.gt(x);&#xD;    var t;&#xD;    if (q.gt(OmegaNum.E_MAX_SAFE_INTEGER)||q.div(p).gt(OmegaNum.MAX_SAFE_INTEGER)){&#xD;      t=q;&#xD;      t=n?t.neg():t;&#xD;    }else if (!q.array[1]){&#xD;      t=new OmegaNum(x.toNumber()-other.toNumber());&#xD;    }else if (q.array[1]==1){&#xD;      var a=p.array[1]?p.array[0]:Math.log10(p.array[0]);&#xD;      t=new OmegaNum([a+Math.log10(Math.pow(10,q.array[0]-a)-1),1]);&#xD;      t=n?t.neg():t;&#xD;    }&#xD;    p=q=null;&#xD;    return t;&#xD;  };&#xD;  Q.minus=Q.sub=function (x,y){&#xD;    return new OmegaNum(x).sub(y);&#xD;  };&#xD;  P.times=P.mul=function (other){&#xD;    var x=this.clone();&#xD;    other=new OmegaNum(other);&#xD;    if (OmegaNum.debug&gt;=OmegaNum.NORMAL) console.log(x+"*"+other);&#xD;    if (x.sign*other.sign==-1) return x.abs().mul(other.abs()).neg();&#xD;    if (x.sign==-1) return x.abs().mul(other.abs());&#xD;    if (x.isNaN()||other.isNaN()||x.eq(OmegaNum.ZERO)&amp;&amp;other.isInfinite()||x.isInfinite()&amp;&amp;other.abs().eq(OmegaNum.ZERO)) return OmegaNum.NaN.clone();&#xD;    if (other.eq(OmegaNum.ZERO)) return OmegaNum.ZERO.clone();&#xD;    if (other.eq(OmegaNum.ONE)) return x.clone();&#xD;    if (x.isInfinite()) return x;&#xD;    if (other.isInfinite()) return other;&#xD;    if (x.max(other).gt(OmegaNum.EE_MAX_SAFE_INTEGER)) return x.max(other);&#xD;    var n=x.toNumber()*other.toNumber();&#xD;    if (n&lt;=MAX_SAFE_INTEGER) return new OmegaNum(n);&#xD;    return OmegaNum.pow(10,x.log10().add(other.log10()));&#xD;  };&#xD;  Q.times=Q.mul=function (x,y){&#xD;    return new OmegaNum(x).mul(y);&#xD;  };&#xD;  P.divide=P.div=function (other){&#xD;    var x=this.clone();&#xD;    other=new OmegaNum(other);&#xD;    if (OmegaNum.debug&gt;=OmegaNum.NORMAL) console.log(x+"/"+other);&#xD;    if (x.sign*other.sign==-1) return x.abs().div(other.abs()).neg();&#xD;    if (x.sign==-1) return x.abs().div(other.abs());&#xD;    if (x.isNaN()||other.isNaN()||x.isInfinite()&amp;&amp;other.isInfinite()||x.eq(OmegaNum.ZERO)&amp;&amp;other.eq(OmegaNum.ZERO)) return OmegaNum.NaN.clone();&#xD;    if (other.eq(OmegaNum.ZERO)) return OmegaNum.POSITIVE_INFINITY.clone();&#xD;    if (other.eq(OmegaNum.ONE)) return x.clone();&#xD;    if (x.eq(other)) return OmegaNum.ONE.clone();&#xD;    if (x.isInfinite()) return x;&#xD;    if (other.isInfinite()) return OmegaNum.ZERO.clone();&#xD;    if (x.max(other).gt(OmegaNum.EE_MAX_SAFE_INTEGER)) return x.gt(other)?x.clone():OmegaNum.ZERO.clone();&#xD;    var n=x.toNumber()/other.toNumber();&#xD;    if (n&lt;=MAX_SAFE_INTEGER) return new OmegaNum(n);&#xD;    var pw=OmegaNum.pow(10,x.log10().sub(other.log10()));&#xD;    var fp=pw.floor();&#xD;    if (pw.sub(fp).lt(new OmegaNum(1e-9))) return fp;&#xD;    return pw;&#xD;  };&#xD;  Q.divide=Q.div=function (x,y){&#xD;    return new OmegaNum(x).div(y);&#xD;  };&#xD;  P.reciprocate=P.rec=function (){&#xD;    if (OmegaNum.debug&gt;=OmegaNum.NORMAL) console.log(this+"^-1");&#xD;    if (this.isNaN()||this.eq(OmegaNum.ZERO)) return OmegaNum.NaN.clone();&#xD;    if (this.abs().gt("2e323")) return OmegaNum.ZERO.clone();&#xD;    return new OmegaNum(1/this);&#xD;  };&#xD;  Q.reciprocate=Q.rec=function (x){&#xD;    return new OmegaNum(x).rec();&#xD;  };&#xD;  P.modular=P.mod=function (other){&#xD;    other=new OmegaNum(other);&#xD;    if (other.eq(OmegaNum.ZERO)) return OmegaNum.ZERO.clone();&#xD;    if (this.sign*other.sign==-1) return this.abs().mod(other.abs()).neg();&#xD;    if (this.sign==-1) return this.abs().mod(other.abs());&#xD;    return this.sub(this.div(other).floor().mul(other));&#xD;  };&#xD;  Q.modular=Q.mod=function (x,y){&#xD;    return new OmegaNum(x).mod(y);&#xD;  };&#xD;  //All of these are from Patashu&apos;s break_eternity.js&#xD;  //from HyperCalc source code&#xD;  var f_gamma=function (n){&#xD;    if (!isFinite(n)) return n;&#xD;    if (n&lt;-50){&#xD;      if (n==Math.trunc(n)) return Number.NEGATIVE_INFINITY;&#xD;      return 0;&#xD;    }&#xD;    var scal1=1;&#xD;    while (n&lt;10){&#xD;      scal1=scal1*n;&#xD;      ++n;&#xD;    }&#xD;    n-=1;&#xD;    var l=0.9189385332046727; //0.5*Math.log(2*Math.PI)&#xD;    l+=(n+0.5)*Math.log(n);&#xD;    l-=n;&#xD;    var n2=n*n;&#xD;    var np=n;&#xD;    l+=1/(12*np);&#xD;    np*=n2;&#xD;    l+=1/(360*np);&#xD;    np*=np*n2;&#xD;    l+=1/(1260*np);&#xD;    np*=n2;&#xD;    l+=1/(1680*np);&#xD;    np*=n2;&#xD;    l+=1/(1188*np);&#xD;    np*=n2;&#xD;    l+=691/(360360*np);&#xD;    np*=n2;&#xD;    l+=7/(1092*np);&#xD;    np*=n2;&#xD;    l+=3617/(122400*np);&#xD;    return Math.exp(l)/scal1;&#xD;  };&#xD;  //from HyperCalc source code&#xD;  P.gamma=function (){&#xD;    var x=this.clone();&#xD;    if (x.gt(OmegaNum.TETRATED_MAX_SAFE_INTEGER)) return x;&#xD;    if (x.gt(OmegaNum.E_MAX_SAFE_INTEGER)) return OmegaNum.exp(x);&#xD;    if (x.gt(OmegaNum.MAX_SAFE_INTEGER)) return OmegaNum.exp(OmegaNum.mul(x,OmegaNum.ln(x).sub(1)));&#xD;    var n=x.array[0];&#xD;    if (n&gt;1){&#xD;      if (n&lt;24) return new OmegaNum(f_gamma(x.sign*n));&#xD;      var t=n-1;&#xD;      var l=0.9189385332046727; //0.5*Math.log(2*Math.PI)&#xD;      l+=((t+0.5)*Math.log(t));&#xD;      l-=t;&#xD;      var n2=t*t;&#xD;      var np=t;&#xD;      var lm=12*np;&#xD;      var adj=1/lm;&#xD;      var l2=l+adj;&#xD;      if (l2==l) return OmegaNum.exp(l);&#xD;      l=l2;&#xD;      np*=n2;&#xD;      lm=360*np;&#xD;      adj=1/lm;&#xD;      l2=l-adj;&#xD;      if (l2==l) return OmegaNum.exp(l);&#xD;      l=l2;&#xD;      np*=n2;&#xD;      lm=1260*np;&#xD;      var lt=1/lm;&#xD;      l+=lt;&#xD;      np*=n2;&#xD;      lm=1680*np;&#xD;      lt=1/lm;&#xD;      l-=lt;&#xD;      return OmegaNum.exp(l);&#xD;    }else return this.rec();&#xD;  };&#xD;  Q.gamma=function (x){&#xD;    return new OmegaNum(x).gamma();&#xD;  };&#xD;  //end break_eternity.js excerpt&#xD;  Q.factorials=[1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800, 39916800, 479001600, 6227020800, 87178291200, 1307674368000, 20922789888000, 355687428096000, 6402373705728000, 121645100408832000, 2432902008176640000, 51090942171709440000, 1124000727777607680000, 25852016738884976640000, 620448401733239439360000, 15511210043330985984000000, 403291461126605635584000000, 10888869450418352160768000000, 304888344611713860501504000000, 8841761993739701954543616000000, 265252859812191058636308480000000, 8222838654177922817725562880000000, 263130836933693530167218012160000000, 8683317618811886495518194401280000000, 295232799039604140847618609643520000000, 10333147966386144929666651337523200000000, 371993326789901217467999448150835200000000, 13763753091226345046315979581580902400000000, 523022617466601111760007224100074291200000000, 20397882081197443358640281739902897356800000000, 815915283247897734345611269596115894272000000000, 33452526613163807108170062053440751665152000000000, 1405006117752879898543142606244511569936384000000000, 60415263063373835637355132068513997507264512000000000, 2658271574788448768043625811014615890319638528000000000, 119622220865480194561963161495657715064383733760000000000, 5502622159812088949850305428800254892961651752960000000000, 258623241511168180642964355153611979969197632389120000000000, 12413915592536072670862289047373375038521486354677760000000000, 608281864034267560872252163321295376887552831379210240000000000, 30414093201713378043612608166064768844377641568960512000000000000, 1551118753287382280224243016469303211063259720016986112000000000000, 80658175170943878571660636856403766975289505440883277824000000000000, 4274883284060025564298013753389399649690343788366813724672000000000000, 230843697339241380472092742683027581083278564571807941132288000000000000, 12696403353658275925965100847566516959580321051449436762275840000000000000, 710998587804863451854045647463724949736497978881168458687447040000000000000, 40526919504877216755680601905432322134980384796226602145184481280000000000000, 2350561331282878571829474910515074683828862318181142924420699914240000000000000, 138683118545689835737939019720389406345902876772687432540821294940160000000000000, 8320987112741390144276341183223364380754172606361245952449277696409600000000000000, 507580213877224798800856812176625227226004528988036003099405939480985600000000000000, 31469973260387937525653122354950764088012280797258232192163168247821107200000000000000, 1982608315404440064116146708361898137544773690227268628106279599612729753600000000000000, 126886932185884164103433389335161480802865516174545192198801894375214704230400000000000000, 8247650592082470666723170306785496252186258551345437492922123134388955774976000000000000000, 544344939077443064003729240247842752644293064388798874532860126869671081148416000000000000000, 36471110918188685288249859096605464427167635314049524593701628500267962436943872000000000000000, 2480035542436830599600990418569171581047399201355367672371710738018221445712183296000000000000000, 171122452428141311372468338881272839092270544893520369393648040923257279754140647424000000000000000, 11978571669969891796072783721689098736458938142546425857555362864628009582789845319680000000000000000, 850478588567862317521167644239926010288584608120796235886430763388588680378079017697280000000000000000, 61234458376886086861524070385274672740778091784697328983823014963978384987221689274204160000000000000000, 4470115461512684340891257138125051110076800700282905015819080092370422104067183317016903680000000000000000, 330788544151938641225953028221253782145683251820934971170611926835411235700971565459250872320000000000000000, 24809140811395398091946477116594033660926243886570122837795894512655842677572867409443815424000000000000000000, 1885494701666050254987932260861146558230394535379329335672487982961844043495537923117729972224000000000000000000, 145183092028285869634070784086308284983740379224208358846781574688061991349156420080065207861248000000000000000000, 11324281178206297831457521158732046228731749579488251990048962825668835325234200766245086213177344000000000000000000, 894618213078297528685144171539831652069808216779571907213868063227837990693501860533361810841010176000000000000000000, 71569457046263802294811533723186532165584657342365752577109445058227039255480148842668944867280814080000000000000000000, 5797126020747367985879734231578109105412357244731625958745865049716390179693892056256184534249745940480000000000000000000, 475364333701284174842138206989404946643813294067993328617160934076743994734899148613007131808479167119360000000000000000000, 39455239697206586511897471180120610571436503407643446275224357528369751562996629334879591940103770870906880000000000000000000, 3314240134565353266999387579130131288000666286242049487118846032383059131291716864129885722968716753156177920000000000000000000, 281710411438055027694947944226061159480056634330574206405101912752560026159795933451040286452340924018275123200000000000000000000, 24227095383672732381765523203441259715284870552429381750838764496720162249742450276789464634901319465571660595200000000000000000000, 2107757298379527717213600518699389595229783738061356212322972511214654115727593174080683423236414793504734471782400000000000000000000, 185482642257398439114796845645546284380220968949399346684421580986889562184028199319100141244804501828416633516851200000000000000000000, 16507955160908461081216919262453619309839666236496541854913520707833171034378509739399912570787600662729080382999756800000000000000000000, 1485715964481761497309522733620825737885569961284688766942216863704985393094065876545992131370884059645617234469978112000000000000000000000, 135200152767840296255166568759495142147586866476906677791741734597153670771559994765685283954750449427751168336768008192000000000000000000000, 12438414054641307255475324325873553077577991715875414356840239582938137710983519518443046123837041347353107486982656753664000000000000000000000, 1156772507081641574759205162306240436214753229576413535186142281213246807121467315215203289516844845303838996289387078090752000000000000000000000, 108736615665674308027365285256786601004186803580182872307497374434045199869417927630229109214583415458560865651202385340530688000000000000000000000, 10329978488239059262599702099394727095397746340117372869212250571234293987594703124871765375385424468563282236864226607350415360000000000000000000000, 991677934870949689209571401541893801158183648651267795444376054838492222809091499987689476037000748982075094738965754305639874560000000000000000000000, 96192759682482119853328425949563698712343813919172976158104477319333745612481875498805879175589072651261284189679678167647067832320000000000000000000000, 9426890448883247745626185743057242473809693764078951663494238777294707070023223798882976159207729119823605850588608460429412647567360000000000000000000000, 933262154439441526816992388562667004907159682643816214685929638952175999932299156089414639761565182862536979208272237582511852109168640000000000000000000000, 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000, 9425947759838359420851623124482936749562312794702543768327889353416977599316221476503087861591808346911623490003549599583369706302603264000000000000000000000000, 961446671503512660926865558697259548455355905059659464369444714048531715130254590603314961882364451384985595980362059157503710042865532928000000000000000000000000, 99029007164861804075467152545817733490901658221144924830052805546998766658416222832141441073883538492653516385977292093222882134415149891584000000000000000000000000, 10299016745145627623848583864765044283053772454999072182325491776887871732475287174542709871683888003235965704141638377695179741979175588724736000000000000000000000000, 1081396758240290900504101305800329649720646107774902579144176636573226531909905153326984536526808240339776398934872029657993872907813436816097280000000000000000000000000, 114628056373470835453434738414834942870388487424139673389282723476762012382449946252660360871841673476016298287096435143747350528228224302506311680000000000000000000000000, 12265202031961379393517517010387338887131568154382945052653251412013535324922144249034658613287059061933743916719318560380966506520420000368175349760000000000000000000000000, 1324641819451828974499891837121832599810209360673358065686551152497461815091591578895743130235002378688844343005686404521144382704205360039762937774080000000000000000000000000, 144385958320249358220488210246279753379312820313396029159834075622223337844983482099636001195615259277084033387619818092804737714758384244334160217374720000000000000000000000000, 15882455415227429404253703127090772871724410234473563207581748318444567162948183030959960131517678520479243672638179990208521148623422266876757623911219200000000000000000000000000, 1762952551090244663872161047107075788761409536026565516041574063347346955087248316436555574598462315773196047662837978913145847497199871623320096254145331200000000000000000000000000, 197450685722107402353682037275992488341277868034975337796656295094902858969771811440894224355027779366597957338237853638272334919686385621811850780464277094400000000000000000000000000, 22311927486598136465966070212187151182564399087952213171022161345724023063584214692821047352118139068425569179220877461124773845924561575264739138192463311667200000000000000000000000000, 2543559733472187557120132004189335234812341496026552301496526393412538629248600474981599398141467853800514886431180030568224218435400019580180261753940817530060800000000000000000000000000, 292509369349301569068815180481773552003419272043053514672100535242441942363589054622883930786268803187059211939585703515345785120071002251720730101703194015956992000000000000000000000000000, 33931086844518982011982560935885732032396635556994207701963662088123265314176330336254535971207181169698868584991941607780111073928236261199604691797570505851011072000000000000000000000000000, 3969937160808720895401959629498630647790406360168322301129748464310422041758630649341780708631240196854767624444057168110272995649603642560353748940315749184568295424000000000000000000000000000, 468452584975429065657431236280838416439267950499862031533310318788629800927518416622330123618486343228862579684398745837012213486653229822121742374957258403779058860032000000000000000000000000000, 55745857612076058813234317117419771556272886109483581752463927935846946310374691578057284710599874844234646982443450754604453404911734348832487342619913750049708004343808000000000000000000000000000, 6689502913449127057588118054090372586752746333138029810295671352301633557244962989366874165271984981308157637893214090552534408589408121859898481114389650005964960521256960000000000000000000000000000, 809429852527344373968162284544935082997082306309701607045776233628497660426640521713391773997910182738287074185078904956856663439318382745047716214841147650721760223072092160000000000000000000000000000, 98750442008336013624115798714482080125644041369783596059584700502676714572050143649033796427745042294071023050579626404736512939596842694895821378210620013388054747214795243520000000000000000000000000000, 12146304367025329675766243241881295855454217088483382315328918161829235892362167668831156960612640202170735835221294047782591091570411651472186029519906261646730733907419814952960000000000000000000000000000, 1506141741511140879795014161993280686076322918971939407100785852066825250652908790935063463115967385069171243567440461925041295354731044782551067660468376444194611004520057054167040000000000000000000000000000, 188267717688892609974376770249160085759540364871492425887598231508353156331613598866882932889495923133646405445930057740630161919341380597818883457558547055524326375565007131770880000000000000000000000000000000, 23721732428800468856771473051394170805702085973808045661837377170052497697783313457227249544076486314839447086187187275319400401837013955325179315652376928996065123321190898603130880000000000000000000000000000000, 3012660018457659544809977077527059692324164918673621799053346900596667207618480809067860692097713761984609779945772783965563851033300772326297773087851869982500270661791244122597621760000000000000000000000000000000, 385620482362580421735677065923463640617493109590223590278828403276373402575165543560686168588507361534030051833058916347592172932262498857766114955245039357760034644709279247692495585280000000000000000000000000000000, 49745042224772874403902341504126809639656611137138843145968864022652168932196355119328515747917449637889876686464600208839390308261862352651828829226610077151044469167497022952331930501120000000000000000000000000000000, 6466855489220473672507304395536485253155359447828049608975952322944781961185526165512707047229268452925683969240398027149120740074042105844737747799459310029635780991774612983803150965145600000000000000000000000000000000, 847158069087882051098456875815279568163352087665474498775849754305766436915303927682164623187034167333264599970492141556534816949699515865660644961729169613882287309922474300878212776434073600000000000000000000000000000000, 111824865119600430744996307607616902997562475571842633838412167568361169672820118454045730260688510087990927196104962685462595837360336094267205134948250389032461924909766607715924086489297715200000000000000000000000000000000, 14872707060906857289084508911813048098675809251055070300508818286592035566485075754388082124671571841702793317081960037166525246368924700537538282948117301741317436012998958826217903503076596121600000000000000000000000000000000, 1992942746161518876737324194182948445222558439641379420268181650403332765909000151088003004705990626788174304488982644980314383013435909872030129915047718433336536425741860482713199069412263880294400000000000000000000000000000000, 269047270731805048359538766214698040105045389351586221736204522804449923397715020396880405635308734616403531106012657072342441706813847832724067538531441988500432417475151165166281874370655623839744000000000000000000000000000000000, 36590428819525486576897272205198933454286172951815726156123815101405189582089242773975735166401987907830880230417721361838572072126683305250473185240276110436058808776620558462614334914409164842205184000000000000000000000000000000000, 5012888748274991661034926292112253883237205694398754483388962668892510972746226260034675717797072343372830591567227826571884373881355612819314826377917827129740056802397016509378163883274055583382110208000000000000000000000000000000000, 691778647261948849222819828311491035886734385827028118707676848307166514238979223884785249055995983385450621636277440066920043595627074569065446040152660143904127838730788278294186615891819670506731208704000000000000000000000000000000000, 96157231969410890041971956135297253988256079629956908500367081914696145479218112119985149618783441690577636407442564169301886059792163365100096999581219760002673769583579570682891939608962934200435638009856000000000000000000000000000000000, 13462012475717524605876073858941615558355851148193967190051391468057460367090535696797920946629681836680869097041958983702264048370902871114013579941370766400374327741701139895604871545254810788060989321379840000000000000000000000000000000000, 1898143759076170969428526414110767793728175011895349373797246196996101911759765533248506853474785138972002542682916216702019230820297304827075914771733278062452780211579860725280286887880928321116599494314557440000000000000000000000000000000000, 269536413788816277658850750803729026709400851689139611079208959973446471469886705721287973193419489734024361060974102771686730776482217285444779897586125484868294790044340222989800738079091821598557128192667156480000000000000000000000000000000000, 38543707171800727705215657364933250819444321791546964384326881276202845420193798918144180166658987031965483631719296696351202501036957071818603525354815944336166154976340651887541505545310130488593669331551403376640000000000000000000000000000000000, 5550293832739304789551054660550388117999982337982762871343070903773209740507907044212761943998894132603029642967578724274573160149321818341878907651093495984407926316593053871805976798524658790357488383743402086236160000000000000000000000000000000000, 804792605747199194484902925779806277109997439007500616344745281047115412373646521410850481879839649227439298230298915019813108221651663659572441609408556917739149315905992811411866635786075524601835815642793302504243200000000000000000000000000000000000, 117499720439091082394795827163851716458059626095095089986332811032878850206552392125984170354456588787206137541623641592892713800361142894297576474973649309989915800122274950466132528824767026591868029083847822165619507200000000000000000000000000000000000, 17272458904546389112034986593086202319334765035978978227990923221833190980363201642519673042105118551719302218618675314155228928653088005461743741821126448568517622617974417718521481737240752909004600275325629858346067558400000000000000000000000000000000000, 2556323917872865588581178015776757943261545225324888777742656636831312265093753843092911610231557545654456728355563946494973881440657024808338073789526714388140608147460213822341179297111631430532680840748193219035217998643200000000000000000000000000000000000, 380892263763056972698595524350736933545970238573408427883655838887865527498969322620843829924502074302514052524979028027751108334657896696442372994639480443832950613971571859528835715269633083149369445271480789636247481797836800000000000000000000000000000000000, 57133839564458545904789328652610540031895535786011264182548375833179829124845398393126574488675311145377107878746854204162666250198684504466355949195922066574942592095735778929325357290444962472405416790722118445437122269675520000000000000000000000000000000000000, 8627209774233240431623188626544191544816225903687700891564804750810154197851655157362112747789971982951943289690774984828562603780001360174419748328584232052816331406456102618328128950857189333333217935399039885261005462721003520000000000000000000000000000000000000, 1311335885683452545606724671234717114812066337360530535517850322123143438073451583919041137664075741408695380032997797693941515774560206746511801745944803272028082373781327597985875600530292778666649126180654062559672830333592535040000000000000000000000000000000000000, 200634390509568239477828874698911718566246149616161171934231099284840946025238092339613294062603588435530393145048663047173051913507711632216305667129554900620296603188543122491838966881134795135997316305640071571629943041039657861120000000000000000000000000000000000000, 30897696138473508879585646703632404659201907040888820477871589289865505687886666220300447285640952619071680544337494109264649994680187591361311072737951454695525676891035640863743200899694758450943586711068571022031011228320107310612480000000000000000000000000000000000000, 4789142901463393876335775239063022722176295591337767174070096339929153381622433264146569329274347655956110484372311586936020749175429076661003216274382475477806479918110524333880196139452687559896255940215628508414806740389616633144934400000000000000000000000000000000000000, 747106292628289444708380937293831544659502112248691679154935029028947927533099589206864815366798234329153235562080607562019236871366935959116501738803666174537810867225241796085310597754619259343815926673638047312709851500780194770609766400000000000000000000000000000000000000, 117295687942641442819215807155131552511541831623044593627324799557544824622696635505477776012587322789677057983246655387237020188804608945581290772992175589402436306154362961985393763847475223716979100487761173428095446685622490578985733324800000000000000000000000000000000000000, 18532718694937347965436097530510785296823609396441045793117318330092082290386068409865488609988797000768975161352971551183449189831128213401843942132763743125584936372389347993692214687901085347282697877066265401639080576328353511479745865318400000000000000000000000000000000000000, 2946702272495038326504339507351214862194953894034126281105653614484641084171384877168612688988218723122267050655122476638168421183149385930893186799109435156968004883209906330997062135376272570217948962453536198860613811636208208325279592585625600000000000000000000000000000000000000, 471472363599206132240694321176194377951192623045460204976904578317542573467421580346978030238114995699562728104819596262106947389303901748942909887857509625114880781313585012959529941660203611234871833992565791817698209861793313332044734813700096000000000000000000000000000000000000000, 75907050539472187290751785709367294850142012310319093001281637109124354328254874435863462868336514307629599224875954998199218529677928181579808491945059049643495805791487187086484320607292781408814365272803092482649411787748723446459202305005715456000000000000000000000000000000000000000, 12296942187394494341101789284917501765723005994271693066207625211678145401177289658609880984670515317835995074429904709708273401807824365415928975695099566042246320538220924308010459938381430588227927174194100982189204709615293198326390773410925903872000000000000000000000000000000000000000, 2004401576545302577599591653441552787812849977066285969791842909503537700391898214353410600501293996807267197132074467682448564494675371562796423038301229264886150247730010662205704969956173185881152129393638460096840367667292791327201696065980922331136000000000000000000000000000000000000000, 328721858553429622726333031164414657201307396238870899045862237158580182864271307153959338482212215476391820329660212699921564577126760936298613378281401599441328640627721748601735615072812402484508949220556707455881820297436017777661078154820871262306304000000000000000000000000000000000000000, 54239106661315887749844950142128418438215720379413698342567269131165730172604765680403290849565015553604650354393935095487058155225915554489271207416431263907819225703574088519286376487014046409943976621391856730220500349076942933314077895545443758280540160000000000000000000000000000000000000000, 9003691705778437366474261723593317460743809582982673924866166675773511208652391102946946281027792581898371958829393225850851653767501982045219020431127589808697991466793298694201538496844331704050700119151048217216603057946772526930136930660543663874569666560000000000000000000000000000000000000000, 1503616514864999040201201707840084015944216200358106545452649834854176371844949314192140028931641361177028117124508668717092226179172831001551576411998307498052564574954480881931656928973003394576466919898225052275172710677111011997332867420310791867053134315520000000000000000000000000000000000000000, 252607574497319838753801886917134114678628321660161899636045172255501630469951484784279524860515748677740723676917456344471493998101035608260664837215715659672830848592352788164518364067464570288846442542901808782229015393754650015551921726612213033664926565007360000000000000000000000000000000000000000, 42690680090047052749392518888995665380688186360567361038491634111179775549421800928543239701427161526538182301399050122215682485679075017796052357489455946484708413412107621199803603527401512378815048789750405684196703601544535852628274771797464002689372589486243840000000000000000000000000000000000000000, 7257415615307998967396728211129263114716991681296451376543577798900561843401706157852350749242617459511490991237838520776666022565442753025328900773207510902400430280058295603966612599658257104398558294257568966313439612262571094946806711205568880457193340212661452800000000000000000000000000000000000000000];&#xD;  P.factorial=P.fact=function (){&#xD;    var x=this.clone();&#xD;    var f=OmegaNum.factorials;&#xD;    if (x.lt(OmegaNum.ZERO)||!x.isint()) return x.add(1).gamma();&#xD;    if (x.lte(170)) return new OmegaNum(f[+x]);&#xD;    var errorFixer=1;&#xD;    var e=+x;&#xD;    if (e&lt;500) e+=163879/209018880*Math.pow(e,5);&#xD;    if (e&lt;1000) e+=-571/2488320*Math.pow(e,4);&#xD;    if (e&lt;50000) e+=-139/51840*Math.pow(e,3);&#xD;    if (e&lt;1e7) e+=1/288*Math.pow(e,2);&#xD;    if (e&lt;1e20) e+=1/12*e;&#xD;    return x.div(OmegaNum.E).pow(x).mul(x.mul(OmegaNum.PI).mul(2).sqrt()).times(errorFixer);&#xD;  };&#xD;  Q.factorial=Q.fact=function (x){&#xD;    return new OmegaNum(x).fact();&#xD;  };&#xD;  P.toPower=P.pow=function (other){&#xD;    other=new OmegaNum(other);&#xD;    if (OmegaNum.debug&gt;=OmegaNum.NORMAL) console.log(this+"^"+other);&#xD;    if (other.eq(OmegaNum.ZERO)) return OmegaNum.ONE.clone();&#xD;    if (other.eq(OmegaNum.ONE)) return this.clone();&#xD;    if (other.lt(OmegaNum.ZERO)) return this.pow(other.neg()).rec();&#xD;    if (this.lt(OmegaNum.ZERO)&amp;&amp;other.isint()){&#xD;      if (other.mod(2).lt(OmegaNum.ONE)) return this.abs().pow(other);&#xD;      return this.abs().pow(other).neg();&#xD;    }&#xD;    if (this.lt(OmegaNum.ZERO)) return OmegaNum.NaN.clone();&#xD;    if (this.eq(OmegaNum.ONE)) return OmegaNum.ONE.clone();&#xD;    if (this.eq(OmegaNum.ZERO)) return OmegaNum.ZERO.clone();&#xD;    if (this.max(other).gt(OmegaNum.TETRATED_MAX_SAFE_INTEGER)) return this.max(other);&#xD;    if (this.eq(10)){&#xD;      if (other.gt(OmegaNum.ZERO)){&#xD;        other.array[1]=(other.array[1]+1)||1;&#xD;        other.standardize();&#xD;        return other;&#xD;      }else{&#xD;        return new OmegaNum(Math.pow(10,other.toNumber()));&#xD;      }&#xD;    }&#xD;    if (other.lt(OmegaNum.ONE)) return this.root(other.rec());&#xD;    var n=Math.pow(this.toNumber(),other.toNumber());&#xD;    if (n&lt;=MAX_SAFE_INTEGER) return new OmegaNum(n);&#xD;    return OmegaNum.pow(10,this.log10().mul(other));&#xD;  };&#xD;  Q.toPower=Q.pow=function (x,y){&#xD;    return new OmegaNum(x).pow(y);&#xD;  };&#xD;  P.exponential=P.exp=function (){&#xD;    return OmegaNum.pow(Math.E,this);&#xD;  };&#xD;  Q.exponential=Q.exp=function (x){&#xD;    return OmegaNum.pow(Math.E,x);&#xD;  };&#xD;  P.squareRoot=P.sqrt=function (){&#xD;    return this.root(2);&#xD;  };&#xD;  Q.squareRoot=Q.sqrt=function (x){&#xD;    return new OmegaNum(x).root(2);&#xD;  };&#xD;  P.cubeRoot=P.cbrt=function (){&#xD;    return this.root(3);&#xD;  };&#xD;  Q.cubeRoot=Q.cbrt=function (x){&#xD;    return new OmegaNum(x).root(3);&#xD;  };&#xD;  P.root=function (other){&#xD;    other=new OmegaNum(other);&#xD;    if (OmegaNum.debug&gt;=OmegaNum.NORMAL) console.log(this+"root"+other);&#xD;    if (other.eq(OmegaNum.ONE)) return this.clone();&#xD;    if (other.lt(OmegaNum.ZERO)) return this.root(other.neg()).rec();&#xD;    if (other.lt(OmegaNum.ONE)) return this.pow(other.rec());&#xD;    if (this.lt(OmegaNum.ZERO)&amp;&amp;other.isint()&amp;&amp;other.mod(2).eq(OmegaNum.ONE)) return this.neg().root(other).neg();&#xD;    if (this.lt(OmegaNum.ZERO)) return OmegaNum.NaN.clone();&#xD;    if (this.eq(OmegaNum.ONE)) return OmegaNum.ONE.clone();&#xD;    if (this.eq(OmegaNum.ZERO)) return OmegaNum.ZERO.clone();&#xD;    if (this.max(other).gt(OmegaNum.TETRATED_MAX_SAFE_INTEGER)) return this.gt(other)?this.clone():OmegaNum.ZERO.clone();&#xD;    return OmegaNum.pow(10,this.log10().div(other));&#xD;  };&#xD;  Q.root=function (x,y){&#xD;    return new OmegaNum(x).root(y);&#xD;  };&#xD;  P.generalLogarithm=P.log10=function (){&#xD;    var x=this.clone();&#xD;    if (OmegaNum.debug&gt;=OmegaNum.NORMAL) console.log("log"+this);&#xD;    if (x.lt(OmegaNum.ZERO)) return OmegaNum.NaN.clone();&#xD;    if (x.eq(OmegaNum.ZERO)) return OmegaNum.NEGATIVE_INFINITY.clone();&#xD;    if (x.lte(OmegaNum.MAX_SAFE_INTEGER)) return new OmegaNum(Math.log10(x.toNumber()));&#xD;    if (!x.isFinite()) return x;&#xD;    if (x.gt(OmegaNum.TETRATED_MAX_SAFE_INTEGER)) return x;&#xD;    x.array[1]--;&#xD;    return x.standardize();&#xD;  };&#xD;  Q.generalLogarithm=Q.log10=function (x){&#xD;    return new OmegaNum(x).log10();&#xD;  };&#xD;  P.logarithm=P.logBase=function (base){&#xD;    if (base===undefined) base=Math.E;&#xD;    return this.log10().div(OmegaNum.log10(base));&#xD;  };&#xD;  Q.logarithm=Q.logBase=function (x,base){&#xD;    return new OmegaNum(x).logBase(base);&#xD;  };&#xD;  P.naturalLogarithm=P.log=P.ln=function (){&#xD;    return this.logBase(Math.E);&#xD;  };&#xD;  Q.naturalLogarithm=Q.log=Q.ln=function (x){&#xD;    return new OmegaNum(x).ln();&#xD;  };&#xD;  //All of these are from Patashu&apos;s break_eternity.js&#xD;  var OMEGA=0.56714329040978387299997;  //W(1,0)&#xD;  //from https://math.stackexchange.com/a/465183&#xD;  //The evaluation can become inaccurate very close to the branch point&#xD;  var f_lambertw=function (z,tol){&#xD;    if (tol===undefined) tol=1e-10;&#xD;    var w;&#xD;    var wn;&#xD;    if (!Number.isFinite(z)) return z;&#xD;    if (z===0) return z;&#xD;    if (z===1) return OMEGA;&#xD;    if (z&lt;10) w=0;&#xD;    else w=Math.log(z)-Math.log(Math.log(z));&#xD;    for (var i=0;i&lt;100;++i){&#xD;      wn=(z*Math.exp(-w)+w*w)/(w+1);&#xD;      if (Math.abs(wn-w)&lt;tol*Math.abs(wn)) return wn;&#xD;      w=wn;&#xD;    }&#xD;    throw Error("Iteration failed to converge: "+z);&#xD;    //return Number.NaN;&#xD;  };&#xD;  //from https://github.com/scipy/scipy/blob/8dba340293fe20e62e173bdf2c10ae208286692f/scipy/special/lambertw.pxd&#xD;  //The evaluation can become inaccurate very close to the branch point&#xD;  //at ``-1/e``. In some corner cases, `lambertw` might currently&#xD;  //fail to converge, or can end up on the wrong branch.&#xD;  var d_lambertw=function (z,tol){&#xD;    if (tol===undefined) tol=1e-10;&#xD;    z=new OmegaNum(z);&#xD;    var w;&#xD;    var ew, wewz, wn;&#xD;    if (!z.isFinite()) return z;&#xD;    if (z===0) return z;&#xD;    if (z===1){&#xD;      //Split out this case because the asymptotic series blows up&#xD;      return OMEGA;&#xD;    }&#xD;    //Get an initial guess for Halley&apos;s method&#xD;    w=OmegaNum.ln(z);&#xD;    //Halley&apos;s method; see 5.9 in [1]&#xD;    for (var i=0;i&lt;100;++i){&#xD;      ew=OmegaNum.exp(-w);&#xD;      wewz=w.sub(z.mul(ew));&#xD;      wn=w.sub(wewz.div(w.add(OmegaNum.ONE).sub((w.add(2)).mul(wewz).div((OmegaNum.mul(2,w).add(2))))));&#xD;      if (OmegaNum.abs(wn.sub(w)).lt(OmegaNum.abs(wn).mul(tol))) return wn;&#xD;      w = wn;&#xD;    }&#xD;    throw Error("Iteration failed to converge: "+z);&#xD;    //return Decimal.dNaN;&#xD;  };&#xD;  //The Lambert W function, also called the omega function or product logarithm, is the solution W(x) === x*e^x.&#xD;  //https://en.wikipedia.org/wiki/Lambert_W_function&#xD;  //Some special values, for testing: https://en.wikipedia.org/wiki/Lambert_W_function#Special_values&#xD;  P.lambertw=function (){&#xD;    var x=this.clone();&#xD;    if (x.isNaN()) return x;&#xD;    if (x.lt(-0.3678794411710499)) throw Error("lambertw is unimplemented for results less than -1, sorry!");&#xD;    if (x.gt(OmegaNum.TETRATED_MAX_SAFE_INTEGER)) return x;&#xD;    if (x.gt(OmegaNum.EE_MAX_SAFE_INTEGER)){&#xD;      x.array[1]--;&#xD;      return x;&#xD;    }&#xD;    if (x.gt(OmegaNum.MAX_SAFE_INTEGER)) return d_lambertw(x);&#xD;    else return new OmegaNum(f_lambertw(x.sign*x.array[0]));&#xD;  };&#xD;  Q.lambertw=function (x){&#xD;    return new OmegaNum(x).lambertw();&#xD;  };&#xD;  //end break_eternity.js excerpt&#xD;  //Uses linear approximations for real height&#xD;  P.tetrate=P.tetr=function (other,payload){&#xD;    if (payload===undefined) payload=OmegaNum.ONE;&#xD;    var t=this.clone();&#xD;    other=new OmegaNum(other);&#xD;    payload=new OmegaNum(payload);&#xD;    if (payload.neq(OmegaNum.ONE)) other=other.add(payload.slog(t));&#xD;    if (OmegaNum.debug&gt;=OmegaNum.NORMAL) console.log(t+"^^"+other);&#xD;    var negln;&#xD;    if (t.isNaN()||other.isNaN()||payload.isNaN()) return OmegaNum.NaN.clone();&#xD;    if (other.isInfinite()&amp;&amp;other.sign&gt;0){&#xD;      if (t.gte(Math.exp(1/Math.E))) return OmegaNum.POSITIVE_INFINITY.clone();&#xD;      //Formula for infinite height power tower.&#xD;      negln = t.ln().neg();&#xD;      return negln.lambertw().div(negln);&#xD;    }&#xD;    if (other.lte(-2)) return OmegaNum.NaN.clone();&#xD;    if (t.eq(OmegaNum.ZERO)){&#xD;      if (other.eq(OmegaNum.ZERO)) return OmegaNum.NaN.clone();&#xD;      if (other.mod(2).eq(OmegaNum.ZERO)) return OmegaNum.ZERO.clone();&#xD;      return OmegaNum.ONE.clone();&#xD;    }&#xD;    if (t.eq(OmegaNum.ONE)){&#xD;      if (other.eq(OmegaNum.ONE.neg())) return OmegaNum.NaN.clone();&#xD;      return OmegaNum.ONE.clone();&#xD;    }&#xD;    if (other.eq(OmegaNum.ONE.neg())) return OmegaNum.ZERO.clone();&#xD;    if (other.eq(OmegaNum.ZERO)) return OmegaNum.ONE.clone();&#xD;    if (other.eq(OmegaNum.ONE)) return t;&#xD;    if (other.eq(2)) return t.pow(t);&#xD;    if (t.eq(2)){&#xD;      if (other.eq(3)) return new OmegaNum(16);&#xD;      if (other.eq(4)) return new OmegaNum(65536);&#xD;    }&#xD;    var m=t.max(other);&#xD;    if (m.gt("10^^^"+MAX_SAFE_INTEGER)) return m;&#xD;    if (m.gt(OmegaNum.TETRATED_MAX_SAFE_INTEGER)||other.gt(OmegaNum.MAX_SAFE_INTEGER)){&#xD;      if (this.lt(Math.exp(1/Math.E))){&#xD;        negln = t.ln().neg();&#xD;        return negln.lambertw().div(negln);&#xD;      }&#xD;      var j=t.slog(10).add(other);&#xD;      j.array[2]=(other.array[2]||0)+1;&#xD;      j.standardize();&#xD;      return j;&#xD;    }&#xD;    var y=other.toNumber();&#xD;    var f=Math.floor(y);&#xD;    var r=t.pow(y-f);&#xD;    var l=OmegaNum.NaN;&#xD;    for (var i=0,m=OmegaNum.E_MAX_SAFE_INTEGER;f!==0&amp;&amp;r.lt(m)&amp;&amp;i&lt;100;++i){&#xD;      if (f&gt;0){&#xD;        r=t.pow(r);&#xD;        if (l.eq(r)){&#xD;          f=0;&#xD;          break;&#xD;        }&#xD;        l=r;&#xD;        --f;&#xD;      }else{&#xD;        r=r.logBase(t);&#xD;        if (l.eq(r)){&#xD;          f=0;&#xD;          break;&#xD;        }&#xD;        l=r;&#xD;        ++f;&#xD;      }&#xD;    }&#xD;    if (i==100||this.lt(Math.exp(1/Math.E))) f=0;&#xD;    r.array[1]=(r.array[1]+f)||f;&#xD;    r.standardize();&#xD;    return r;&#xD;  };&#xD;  Q.tetrate=Q.tetr=function (x,y,payload){&#xD;    return new OmegaNum(x).tetr(y,payload);&#xD;  };&#xD;  //Implementation of functions from break_eternity.js&#xD;  P.iteratedexp=function (other,payload){&#xD;    return this.tetr(other,payload);&#xD;  };&#xD;  Q.iteratedexp=function (x,y,payload){&#xD;    return new OmegaNum(x).iteratedexp(other,payload);&#xD;  };&#xD;  //This implementation is highly inaccurate and slow, and probably be given custom code&#xD;  P.iteratedlog=function (base,other){&#xD;    if (base===undefined) base=10;&#xD;    if (other===undefined) other=OmegaNum.ONE.clone();&#xD;    var t=this.clone();&#xD;    if (other.eq(ExpantaNum.ZERO)) return t;&#xD;    if (other.eq(ExpantaNum.ONE)) return t.logBase(base);&#xD;    base=new OmegaNum(base);&#xD;    other=new OmegaNum(other);&#xD;    return base.tetr(t.slog(base).sub(other));&#xD;  };&#xD;  Q.iteratedlog=function (x,y,z){&#xD;    return new OmegaNum(x).iteratedlog(y,z);&#xD;  };&#xD;  P.layeradd=function (other,base){&#xD;    if (base===undefined) base=10;&#xD;    if (other===undefined) other=OmegaNum.ONE.clone();&#xD;    var t=this.clone();&#xD;    base=new OmegaNum(base);&#xD;    other=new OmegaNum(other);&#xD;    return base.tetr(t.slog(base).add(other));&#xD;  };&#xD;  Q.layeradd=function (x,y,z){&#xD;    return new OmegaNum(x).layeradd(y,z);&#xD;  };&#xD;  P.layeradd10=function (other){&#xD;    return this.layeradd(other);&#xD;  };&#xD;  Q.layeradd10=function (x,y){&#xD;    return new OmegaNum(x).layeradd10(y);&#xD;  };&#xD;  //End implementation from break_eternity.js&#xD;  //All of these are from Patashu&apos;s break_eternity.js&#xD;  //The super square-root function - what number, tetrated to height 2, equals this?&#xD;  //Other sroots are possible to calculate probably through guess and check methods, this one is easy though.&#xD;  //https://en.wikipedia.org/wiki/Tetration#Super-root&#xD;  P.ssqrt=P.ssrt=function (){&#xD;    var x=this.clone();&#xD;    if (x.lt(Math.exp(-1/Math.E))) return OmegaNum.NaN.clone();&#xD;    if (!x.isFinite()) return x;&#xD;    if (x.gt(OmegaNum.TETRATED_MAX_SAFE_INTEGER)) return x;&#xD;    if (x.gt(OmegaNum.EE_MAX_SAFE_INTEGER)){&#xD;      x.array[1]--;&#xD;      return x;&#xD;    }&#xD;    var l=x.ln();&#xD;    return l.div(l.lambertw());&#xD;  };&#xD;  Q.ssqrt=Q.ssrt=function (x){&#xD;    return new OmegaNum(x).ssqrt();&#xD;  };&#xD;  //Super-logarithm, one of tetration&apos;s inverses, tells you what size power tower you&apos;d have to tetrate base to to get number. By definition, will never be higher than 1.8e308 in break_eternity.js, since a power tower 1.8e308 numbers tall is the largest representable number.&#xD;  //Uses linear approximation&#xD;  //https://en.wikipedia.org/wiki/Super-logarithm&#xD;  P.slog=function (base){&#xD;    if (base===undefined) base=10;&#xD;    var x=new OmegaNum(this);&#xD;    base=new OmegaNum(base);&#xD;    if (x.isNaN()||base.isNaN()||x.isInfinite()&amp;&amp;base.isInfinite()) return OmegaNum.NaN.clone();&#xD;    if (x.isInfinite()) return x;&#xD;    if (base.isInfinite()) return OmegaNum.ZERO.clone();&#xD;    if (x.lt(OmegaNum.ZERO)) return OmegaNum.ONE.neg();&#xD;    if (x.eq(OmegaNum.ONE)) return OmegaNum.ZERO.clone();&#xD;    if (x.eq(base)) return OmegaNum.ONE.clone();&#xD;    if (base.lt(Math.exp(1/Math.E))){&#xD;      var a=OmegaNum.tetr(base,Infinity);&#xD;      if (x.eq(a)) return OmegaNum.POSITIVE_INFINITY.clone();&#xD;      if (x.gt(a)) return OmegaNum.NaN.clone();&#xD;    }&#xD;    if (x.max(base).gt("10^^^"+MAX_SAFE_INTEGER)){&#xD;      if (x.gt(base)) return x;&#xD;      return OmegaNum.ZERO.clone();&#xD;    }&#xD;    if (x.max(base).gt(OmegaNum.TETRATED_MAX_SAFE_INTEGER)){&#xD;      if (x.gt(base)){&#xD;        x.array[2]--;&#xD;        x.standardize();&#xD;        return x.sub(x.array[1]);&#xD;      }&#xD;      return OmegaNum.ZERO.clone();&#xD;    }&#xD;    var r=0;&#xD;    var t=(x.array[1]||0)-(base.array[1]||0);&#xD;    if (t&gt;3){&#xD;      var l=t-3;&#xD;      r+=l;&#xD;      x.array[1]=x.array[1]-l;&#xD;    }&#xD;    for (var i=0;i&lt;100;++i){&#xD;      if (x.lt(OmegaNum.ZERO)){&#xD;        x=OmegaNum.pow(base,x);&#xD;        --r;&#xD;      }else if (x.lte(1)){&#xD;        return new OmegaNum(r+x.toNumber()-1);&#xD;      }else{&#xD;        ++r;&#xD;        x=OmegaNum.logBase(x,base);&#xD;      }&#xD;    }&#xD;    if (x.gt(10))&#xD;    return new OmegaNum(r);&#xD;  };&#xD;  Q.slog=function (x,y){&#xD;    return new OmegaNum(x).slog(y);&#xD;  };&#xD;  //end break_eternity.js excerpt&#xD;  P.pentate=P.pent=function (other){&#xD;    return this.arrow(3)(other);&#xD;  };&#xD;  Q.pentate=Q.pent=function (x,y){&#xD;    return OmegaNum.arrow(x,3,y);&#xD;  };&#xD;  //Uses linear approximations for real height&#xD;  P.arrow=function (arrows){&#xD;    var t=this.clone();&#xD;    arrows=new OmegaNum(arrows);&#xD;    if (!arrows.isint()||arrows.lt(OmegaNum.ZERO)) return function(other){return OmegaNum.NaN.clone();};&#xD;    if (arrows.eq(OmegaNum.ZERO)) return function(other){return t.mul(other);};&#xD;    if (arrows.eq(OmegaNum.ONE)) return function(other){return t.pow(other);};&#xD;    if (arrows.eq(2)) return function(other){return t.tetr(other);};&#xD;    return function (other){&#xD;      other=new OmegaNum(other);&#xD;      if (OmegaNum.debug&gt;=OmegaNum.NORMAL) console.log(t+"{"+arrows+"}"+other);&#xD;      if (other.lt(OmegaNum.ZERO)) return OmegaNum.NaN.clone();&#xD;      if (other.eq(OmegaNum.ZERO)) return OmegaNum.ONE.clone();&#xD;      if (other.eq(OmegaNum.ONE)) return t.clone();&#xD;      if (arrows.gte(OmegaNum.maxArrow)){&#xD;        console.warn("Number too large to reasonably handle it: tried to "+arrows.add(2)+"-ate.");&#xD;        return OmegaNum.POSITIVE_INFINITY.clone();&#xD;      }&#xD;      if (other.eq(2)) return t.arrow(arrows-1)(t);&#xD;      if (t.max(other).gt("10{"+arrows.add(OmegaNum.ONE)+"}"+MAX_SAFE_INTEGER)) return t.max(other);&#xD;      var r;&#xD;      if (t.gt("10{"+arrows+"}"+MAX_SAFE_INTEGER)||other.gt(OmegaNum.MAX_SAFE_INTEGER)){&#xD;        if (t.gt("10{"+arrows+"}"+MAX_SAFE_INTEGER)){&#xD;          r=t.clone();&#xD;          r.array[arrows]--;&#xD;          r.standardize();&#xD;        }else if (t.gt("10{"+arrows.sub(OmegaNum.ONE)+"}"+MAX_SAFE_INTEGER)){&#xD;          r=new OmegaNum(t.array[arrows.sub(OmegaNum.ONE)]);&#xD;        }else{&#xD;          r=OmegaNum.ZERO;&#xD;        }&#xD;        var j=r.add(other);&#xD;        j.array[arrows]=(other.array[arrows]||0)+1;&#xD;        j.standardize();&#xD;        return j;&#xD;      }&#xD;      var y=other.toNumber();&#xD;      var f=Math.floor(y);&#xD;      r=t.arrow(arrows.sub(1))(y-f);&#xD;      for (var i=0,m=new OmegaNum("10{"+arrows.sub(OmegaNum.ONE)+"}"+MAX_SAFE_INTEGER);f!==0&amp;&amp;r.lt(m)&amp;&amp;i&lt;100;++i){&#xD;        if (f&gt;0){&#xD;          r=t.arrow(arrows.sub(OmegaNum.ONE))(r);&#xD;          --f;&#xD;        }&#xD;      }&#xD;      if (i==100) f=0;&#xD;      r.array[arrows.sub(OmegaNum.ONE)]=(r.array[arrows.sub(OmegaNum.ONE)]+f)||f;&#xD;      r.standardize();&#xD;      return r;&#xD;    };&#xD;  };&#xD;  P.chain=function (other,arrows){&#xD;    return this.arrow(arrows)(other);&#xD;  };&#xD;  Q.arrow=function (x,z,y){&#xD;    return new OmegaNum(x).arrow(z)(y);&#xD;  };&#xD;  Q.chain=function (x,y,z){&#xD;    return new OmegaNum(x).arrow(z)(y);&#xD;  };&#xD;  Q.hyper=function (z){&#xD;    z=new OmegaNum(z);&#xD;    if (z.eq(OmegaNum.ZERO)) return function(x,y){return new OmegaNum(y).eq(OmegaNum.ZERO)?new OmegaNum(x):new OmegaNum(x).add(OmegaNum.ONE);};&#xD;    if (z.eq(OmegaNum.ONE)) return function(x,y){return OmegaNum.add(x,y);};&#xD;    return function(x,y){return new OmegaNum(x).arrow(z.sub(2))(y);};&#xD;  };&#xD;  // All of these are from Patashu&apos;s break_eternity.js&#xD;  Q.affordGeometricSeries = function (resourcesAvailable, priceStart, priceRatio, currentOwned) {&#xD;    /*&#xD;      If you have resourcesAvailable, the price of something starts at&#xD;      priceStart, and on each purchase it gets multiplied by priceRatio,&#xD;      and you have already bought currentOwned, how many of the object&#xD;      can you buy.&#xD;    */&#xD;    resourcesAvailable=new OmegaNum(resourcesAvailable);&#xD;    priceStart=new OmegaNum(priceStart);&#xD;    priceRatio=new OmegaNum(priceRatio);&#xD;    var actualStart = priceStart.mul(priceRatio.pow(currentOwned));&#xD;    return OmegaNum.floor(resourcesAvailable.div(actualStart).mul(priceRatio.sub(OmegaNum.ONE)).add(OmegaNum.ONE).log10().div(priceRatio.log10()));&#xD;  };&#xD;  Q.affordArithmeticSeries = function (resourcesAvailable, priceStart, priceAdd, currentOwned) {&#xD;    /*&#xD;      If you have resourcesAvailable, the price of something starts at&#xD;      priceStart, and on each purchase it gets increased by priceAdd,&#xD;      and you have already bought currentOwned, how many of the object&#xD;      can you buy.&#xD;    */&#xD;    resourcesAvailable=new OmegaNum(resourcesAvailable);&#xD;    priceStart=new OmegaNum(priceStart);&#xD;    priceAdd=new OmegaNum(priceAdd);&#xD;    currentOwned=new OmegaNum(currentOwned);&#xD;    var actualStart = priceStart.add(currentOwned.mul(priceAdd));&#xD;    var b = actualStart.sub(priceAdd.div(2));&#xD;    var b2 = b.pow(2);&#xD;    return b.neg().add(b2.add(priceAdd.mul(resourcesAvailable).mul(2)).sqrt()).div(priceAdd).floor();&#xD;  };&#xD;  Q.sumGeometricSeries = function (numItems, priceStart, priceRatio, currentOwned) {&#xD;    /*&#xD;      If you want to buy numItems of something, the price of something starts at&#xD;      priceStart, and on each purchase it gets multiplied by priceRatio,&#xD;      and you have already bought currentOwned, what will be the price of numItems&#xD;      of something.&#xD;    */&#xD;    priceStart=new OmegaNum(priceStart);&#xD;    priceRatio=new OmegaNum(priceRatio);&#xD;    return priceStart.mul(priceRatio.pow(currentOwned)).mul(OmegaNum.sub(OmegaNum.ONE, priceRatio.pow(numItems))).div(OmegaNum.sub(OmegaNum.ONE, priceRatio));&#xD;  };&#xD;  Q.sumArithmeticSeries = function (numItems, priceStart, priceAdd, currentOwned) {&#xD;    /*&#xD;      If you want to buy numItems of something, the price of something starts at&#xD;      priceStart, and on each purchase it gets increased by priceAdd,&#xD;      and you have already bought currentOwned, what will be the price of numItems&#xD;      of something.&#xD;    */&#xD;    numItems=new OmegaNum(numItems);&#xD;    priceStart=new OmegaNum(priceStart);&#xD;    currentOwned=new OmegaNum(currentOwned);&#xD;    var actualStart = priceStart.add(currentOwned.mul(priceAdd));&#xD;&#xD;    return numItems.div(2).mul(actualStart.mul(2).plus(numItems.sub(OmegaNum.ONE).mul(priceAdd)));&#xD;  };&#xD;  // Binomial Coefficients n choose k&#xD;  Q.choose = function (n, k) {&#xD;    /*&#xD;      If you have n items and you take k out,&#xD;      how many ways could you do this?&#xD;    */&#xD;    return new OmegaNum(n).factorial().div(new OmegaNum(k).factorial().mul(new OmegaNum(n).sub(new OmegaNum(k)).factorial()));&#xD;  };&#xD;  P.choose = function (other) {&#xD;    return OmegaNum.choose(this, other);&#xD;  };&#xD;  //end break_eternity.js excerpt&#xD;  P.standardize=function (){&#xD;    var b;&#xD;    var x=this;&#xD;    if (OmegaNum.debug&gt;=OmegaNum.ALL) console.log(x.toString());&#xD;    if (!x.array||!x.array.length) x.array=[0];&#xD;    if (x.sign!=1&amp;&amp;x.sign!=-1){&#xD;      if (typeof x.sign!="number") x.sign=Number(x.sign);&#xD;      x.sign=x.sign&lt;0?-1:1;&#xD;    }&#xD;    for (var l=x.array.length,i=0;i&lt;l;i++){&#xD;      var e=x.array[i];&#xD;      if (e===null||e===undefined){&#xD;        x.array[i]=0;&#xD;        continue;&#xD;      }&#xD;      if (isNaN(e)){&#xD;        x.array=[NaN];&#xD;        return x;&#xD;      }&#xD;      if (!isFinite(e)){&#xD;        x.array=[Infinity];&#xD;        return x;&#xD;      }&#xD;      if (i!==0&amp;&amp;!Number.isInteger(e)) x.array[i]=Math.floor(e);&#xD;    }&#xD;    do{&#xD;      if (OmegaNum.debug&gt;=OmegaNum.ALL) console.log(x.toString());&#xD;      b=false;&#xD;      while (x.array.length&amp;&amp;x.array[x.array.length-1]===0){&#xD;        x.array.pop();&#xD;        b=true;&#xD;      }&#xD;      if (x.array[0]&gt;MAX_SAFE_INTEGER){&#xD;        x.array[1]=(x.array[1]||0)+1;&#xD;        x.array[0]=Math.log10(x.array[0]);&#xD;        b=true;&#xD;      }&#xD;      while (x.array[0]&lt;MAX_E&amp;&amp;x.array[1]){&#xD;        x.array[0]=Math.pow(10,x.array[0]);&#xD;        x.array[1]--;&#xD;        b=true;&#xD;      }&#xD;      if (x.array.length&gt;2&amp;&amp;!x.array[1]){&#xD;        for (i=2;!x.array[i];++i) continue;&#xD;        x.array[i-1]=x.array[0];&#xD;        x.array[0]=1;&#xD;        x.array[i]--;&#xD;        b=true;&#xD;      }&#xD;      for (l=x.array.length,i=1;i&lt;l;++i){&#xD;        if (x.array[i]&gt;MAX_SAFE_INTEGER){&#xD;          x.array[i+1]=(x.array[i+1]||0)+1;&#xD;          x.array[0]=x.array[i]+1;&#xD;          for (var j=1;j&lt;=i;++j) x.array[j]=0;&#xD;          b=true;&#xD;        }&#xD;      }&#xD;    }while(b);&#xD;    if (!x.array.length) x.array=[0];&#xD;    return x;&#xD;  };&#xD;  P.toNumber=function (){&#xD;    //console.log(this.array);&#xD;    if (this.sign==-1) return -1*this.abs();&#xD;    if (this.array.length&gt;=2&amp;&amp;(this.array[1]&gt;=2||this.array[1]==1&amp;&amp;this.array[0]&gt;Math.log10(Number.MAX_VALUE))) return Infinity;&#xD;    if (this.array[1]==1) return Math.pow(10,this.array[0]);&#xD;    return this.array[0];&#xD;  };&#xD;  P.toString=function (){&#xD;    if (this.sign==-1) return "-"+this.abs();&#xD;    if (isNaN(this.array[0])) return "NaN";&#xD;    if (!isFinite(this.array[0])) return "Infinity";&#xD;    var s="";&#xD;    if (this.array.length&gt;=2){&#xD;      for (var i=this.array.length-1;i&gt;=2;--i){&#xD;        var q=i&gt;=5?"{"+i+"}":"^".repeat(i);&#xD;        if (this.array[i]&gt;1) s+="(10"+q+")^"+this.array[i]+" ";&#xD;        else if (this.array[i]==1) s+="10"+q;&#xD;      }&#xD;    }&#xD;    if (!this.array[1]) s+=String(this.toNumber());&#xD;    else if (this.array[1]&lt;3) s+="e".repeat(this.array[1]-1)+Math.pow(10,this.array[0]-Math.floor(this.array[0]))+"e"+Math.floor(this.array[0]);&#xD;    else if (this.array[1]&lt;8) s+="e".repeat(this.array[1])+this.array[0];&#xD;    else s+="(10^)^"+this.array[1]+" "+this.array[0];&#xD;    return s;&#xD;  };&#xD;  //from break_eternity.js&#xD;  var decimalPlaces=function decimalPlaces(value,places){&#xD;    var len=places+1;&#xD;    var numDigits=Math.ceil(Math.log10(Math.abs(value)));&#xD;    var rounded=Math.round(value*Math.pow(10,len-numDigits))*Math.pow(10,numDigits-len);&#xD;    return parseFloat(rounded.toFixed(Math.max(len-numDigits,0)));&#xD;  };&#xD;  P.toStringWithDecimalPlaces=function (places,applyToOpNums){&#xD;    if (this.sign==-1) return "-"+this.abs();&#xD;    if (isNaN(this.array[0])) return "NaN";&#xD;    if (!isFinite(this.array[0])) return "Infinity";&#xD;    var b=0;&#xD;    var s="";&#xD;    var m=Math.pow(10,places);&#xD;    if (this.array.length&gt;=2){&#xD;      for (var i=this.array.length-1;!b&amp;&amp;i&gt;=2;--i){&#xD;        var x=this.array[i];&#xD;        if (applyToOpNums&amp;&amp;x&gt;=m){&#xD;          ++i;&#xD;          b=x;&#xD;          x=1;&#xD;        }else if (applyToOpNums&amp;&amp;this.array[i-1]&gt;=m){&#xD;          ++x;&#xD;          b=this.array[i-1];&#xD;        }&#xD;        var q=i&gt;=5?"{"+i+"}":"^".repeat(i);&#xD;        if (x&gt;1) s+="(10"+q+")^"+x+" ";&#xD;        else if (x==1) s+="10"+q;&#xD;      }&#xD;    }&#xD;    var k=this.array[0];&#xD;    var l=this.array[1]||0;&#xD;    if (k&gt;m){&#xD;      k=Math.log10(k);&#xD;      ++l;&#xD;    }&#xD;    if (b) s+=decimalPlaces(b,places);&#xD;    else if (!l) s+=String(decimalPlaces(k,places));&#xD;    else if (l&lt;3) s+="e".repeat(l-1)+decimalPlaces(Math.pow(10,k-Math.floor(k)),places)+"e"+decimalPlaces(Math.floor(k),places);&#xD;    else if (l&lt;8) s+="e".repeat(l)+decimalPlaces(k,places);&#xD;    else if (applyToOpNums) s+="(10^)^"+decimalPlaces(l,places)+" "+decimalPlaces(k,places);&#xD;    else s+="(10^)^"+l+" "+decimalPlaces(k,places);&#xD;    return s;&#xD;  };&#xD;  //these are from break_eternity.js as well&#xD;  P.toExponential=function (places,applyToOpNums){&#xD;    if (this.array.length==1) return (this.sign*this.array[0]).toExponential(places);&#xD;    return this.toStringWithDecimalPlaces(places,applyToOpNums);&#xD;  };&#xD;  P.toFixed=function (places,applyToOpNums){&#xD;    if (this.array.length==1) return (this.sign*this.array[0]).toFixed(places);&#xD;    return this.toStringWithDecimalPlaces(places,applyToOpNums);&#xD;  };&#xD;  P.toPrecision=function (places,applyToOpNums){&#xD;    if (this.array[0]===0) return (this.sign*this.array[0]).toFixed(places-1,applyToOpNums);&#xD;    if (this.array.length==1&amp;&amp;this.array[0]&lt;1e-6) return this.toExponential(places-1,applyToOpNums);&#xD;    if (this.array.length==1&amp;&amp;places&gt;Math.log10(this.array[0])) return this.toFixed(places-Math.floor(Math.log10(this.array[0]))-1,applyToOpNums);&#xD;    return this.toExponential(places-1,applyToOpNums);&#xD;  };&#xD;  P.valueOf=function (){&#xD;    return this.toString();&#xD;  };&#xD;  //Note: toArray() would be impossible without changing the layout of the array or lose the information about the sign&#xD;  P.toJSON=function (){&#xD;    if (OmegaNum.serializeMode==OmegaNum.JSON){&#xD;      return {&#xD;        array:this.array.slice(0),&#xD;        sign:this.sign&#xD;      };&#xD;    }else if (OmegaNum.serializeMode==OmegaNum.STRING){&#xD;      return this.toString();&#xD;    }&#xD;  };&#xD;  P.toHyperE=function (){&#xD;    if (this.sign==-1) return "-"+this.abs().toHyperE();&#xD;    if (isNaN(this.array[0])) return "NaN";&#xD;    if (!isFinite(this.array[0])) return "Infinity";&#xD;    if (this.lt(OmegaNum.MAX_SAFE_INTEGER)) return String(this.array[0]);&#xD;    if (this.lt(OmegaNum.E_MAX_SAFE_INTEGER)) return "E"+this.array[0];&#xD;    var r="E"+this.array[0]+"#"+this.array[1];&#xD;    for (var i=2;i&lt;this.array.length;++i){&#xD;      r+="#"+(this.array[i]+1);&#xD;    }&#xD;    return r;&#xD;  };&#xD;  Q.fromNumber=function (input){&#xD;    if (typeof input!="number") throw Error(invalidArgument+"Expected Number");&#xD;    var x=new OmegaNum();&#xD;    x.array[0]=Math.abs(input);&#xD;    x.sign=input&lt;0?-1:1;&#xD;    x.standardize();&#xD;    return x;&#xD;  };&#xD;  Q.fromString=function (input){&#xD;    if (typeof input!="string") throw Error(invalidArgument+"Expected String");&#xD;    var isJSON=false;&#xD;    if (typeof input=="string"&amp;&amp;(input[0]=="["||input[0]=="{")){&#xD;      try {&#xD;        JSON.parse(input);&#xD;      }finally{&#xD;        isJSON=true;&#xD;      }&#xD;    }&#xD;    if (isJSON){&#xD;      return OmegaNum.fromJSON(input);&#xD;    }&#xD;    var x=new OmegaNum();&#xD;    x.array=[0];&#xD;    if (!isOmegaNum.test(input)){&#xD;      console.warn(omegaNumError+"Malformed input: "+input);&#xD;      x.array=[NaN];&#xD;      return x;&#xD;    }&#xD;    var negateIt=false;&#xD;    if (input[0]=="-"||input[0]=="+"){&#xD;      var numSigns=input.search(/[^-\+]/);&#xD;      var signs=input.substring(0,numSigns);&#xD;      negateIt=signs.match(/-/g).length%2==1;&#xD;      input=input.substring(numSigns);&#xD;    }&#xD;    if (input=="NaN") x.array=[NaN];&#xD;    else if (input=="Infinity") x.array=[Infinity];&#xD;    else{&#xD;      var a,b,c,d,i;&#xD;      while (input){&#xD;        if (/^\(?10[\^\{]/.test(input)){&#xD;          if (input[0]=="("){&#xD;            input=input.substring(1);&#xD;          }&#xD;          var arrows;&#xD;          if (input[2]=="^"){&#xD;            a=input.substring(2).search(/[^\^]/);&#xD;            arrows=a;&#xD;            b=a+2;&#xD;          }else{&#xD;            a=input.indexOf("}");&#xD;            arrows=Number(input.substring(3,a));&#xD;            b=a+1;&#xD;          }&#xD;          if (arrows&gt;=OmegaNum.maxArrow){&#xD;            console.warn("Number too large to reasonably handle it: tried to "+arrows.add(2)+"-ate.");&#xD;            x.array=[Infinity];&#xD;            break;&#xD;          }&#xD;          input=input.substring(b);&#xD;          if (input[0]==")"){&#xD;            a=input.indexOf(" ");&#xD;            c=Number(input.substring(2,a));&#xD;            input=input.substring(a+1);&#xD;          }else{&#xD;            c=1;&#xD;          }&#xD;          if (arrows==1){&#xD;            x.array[1]=(x.array[1]||0)+c;&#xD;          }else if (arrows==2){&#xD;            a=x.array[1]||0;&#xD;            b=x.array[0]||0;&#xD;            if (b&gt;=1e10) ++a;&#xD;            if (b&gt;=10) ++a;&#xD;            x.array[0]=a;&#xD;            x.array[1]=0;&#xD;            x.array[2]=(x.array[2]||0)+c;&#xD;          }else{&#xD;            a=x.array[arrows-1]||0;&#xD;            b=x.array[arrows-2]||0;&#xD;            if (b&gt;=10) ++a;&#xD;            for (i=1;i&lt;arrows;++i){&#xD;              x.array[i]=0;&#xD;            }&#xD;            x.array[0]=a;&#xD;            x.array[arrows]=(x.array[arrows]||0)+c;&#xD;          }&#xD;        }else{&#xD;          break;&#xD;        }&#xD;      }&#xD;      a=input.split(/[Ee]/);&#xD;      b=[x.array[0],0];&#xD;      c=1;&#xD;      for (i=a.length-1;i&gt;=0;--i){&#xD;        if (a[i]) d=Number(a[i]);&#xD;        else d=1;&#xD;        //The things that are already there&#xD;        if (b[0]&lt;MAX_E&amp;&amp;b[1]===0){&#xD;          b[0]=Math.pow(10,c*b[0]);&#xD;        }else if (c==-1){&#xD;          if (b[1]===0){&#xD;            b[0]=Math.pow(10,c*b[0]);&#xD;          }else if (b[1]==1&amp;&amp;b[0]&lt;=Math.log10(Number.MAX_VALUE)){&#xD;            b[0]=Math.pow(10,c*Math.pow(10,b[0]));&#xD;          }else{&#xD;            b[0]=0;&#xD;          }&#xD;          b[1]=0;&#xD;        }else{&#xD;          b[1]++;&#xD;        }&#xD;        //Multiplying coefficient&#xD;        if (b[1]===0){&#xD;          b[0]*=Number(d);&#xD;        }else if (b[1]==1){&#xD;          b[0]+=Math.log10(Number(d));&#xD;        }else if (b[1]==2&amp;&amp;b[0]&lt;MAX_E+Math.log10(Math.log10(Number(d)))){&#xD;          b[0]+=Math.log10(1+Math.pow(10,Math.log10(Math.log10(Number(d)))-b[0]));&#xD;        }&#xD;        //Carrying&#xD;        if (b[0]&lt;MAX_E&amp;&amp;b[1]){&#xD;          b[0]=Math.pow(10,b[0]);&#xD;          b[1]--;&#xD;        }else if (b[0]&gt;MAX_SAFE_INTEGER){&#xD;          b[0]=Math.log10(b[0]);&#xD;          b[1]++;&#xD;        }&#xD;      }&#xD;      x.array[0]=b[0];&#xD;      x.array[1]=(x.array[1]||0)+b[1];&#xD;    }&#xD;    if (negateIt) x.sign*=-1;&#xD;    x.standardize();&#xD;    return x;&#xD;  };&#xD;  Q.fromArray=function (input1,input2){&#xD;    var array,sign;&#xD;    if (input1 instanceof Array&amp;&amp;(input2===undefined||typeof input2=="number")){&#xD;      array=input1;&#xD;      sign=input2;&#xD;    }else if (input2 instanceof Array&amp;&amp;typeof input1=="number"){&#xD;      array=input2;&#xD;      sign=input1;&#xD;    }else{&#xD;      throw Error(invalidArgument+"Expected an Array [and Boolean]");&#xD;    }&#xD;    var x=new OmegaNum();&#xD;    x.array=array.slice(0);&#xD;    if (sign) x.sign=Number(sign);&#xD;    else x.sign=1;&#xD;    x.standardize();&#xD;    return x;&#xD;  };&#xD;  Q.fromObject=function (input){&#xD;    if (typeof input!="object") throw Error(invalidArgument+"Expected Object");&#xD;    if (input===null) return OmegaNum.ZERO.clone();&#xD;    if (input instanceof Array) return OmegaNum.fromArray(input);&#xD;    if (input instanceof OmegaNum) return new OmegaNum(input);&#xD;    if (!(input.array instanceof Array)) throw Error(invalidArgument+"Expected that property &apos;array&apos; exists");&#xD;    if (input.sign!==undefined&amp;&amp;typeof input.sign!="number") throw Error(invalidArgument+"Expected that property &apos;sign&apos; is Number");&#xD;    var x=new OmegaNum();&#xD;    x.array=input.array.slice(0);&#xD;    x.sign=Number(input.sign)||1;&#xD;    x.standardize();&#xD;    return x;&#xD;  };&#xD;  Q.fromJSON=function (input){&#xD;    if (typeof input=="object") return OmegaNum.fromObject(parsedObject);&#xD;    if (typeof input!="string") throw Error(invalidArgument+"Expected String");&#xD;    var parsedObject,x;&#xD;    try{&#xD;      parsedObject=JSON.parse(input);&#xD;    }catch(e){&#xD;      parsedObject=null;&#xD;      throw e;&#xD;    }finally{&#xD;      x=OmegaNum.fromObject(parsedObject);&#xD;    }&#xD;    parsedObject=null;&#xD;    return x;&#xD;  };&#xD;  Q.fromHyperE=function (input){&#xD;    if (typeof input!="string") throw Error(invalidArgument+"Expected String");&#xD;    var x=new OmegaNum();&#xD;    x.array=[0];&#xD;    if (!/^[-\+]*(0|[1-9]\d*(\.\d*)?|Infinity|NaN|E[1-9]\d*(\.\d*)?(#[1-9]\d*)*)$/.test(input)){&#xD;      console.warn(omegaNumError+"Malformed input: "+input);&#xD;      x.array=[NaN];&#xD;      return x;&#xD;    }&#xD;    var negateIt=false;&#xD;    if (input[0]=="-"||input[0]=="+"){&#xD;      var numSigns=input.search(/[^-\+]/);&#xD;      var signs=input.substring(0,numSigns);&#xD;      negateIt=signs.match(/-/g).length%2===0;&#xD;      input=input.substring(numSigns);&#xD;    }&#xD;    if (input=="NaN") x.array=[NaN];&#xD;    else if (input=="Infinity") x.array=[Infinity];&#xD;    else if (input[0]!="E"){&#xD;      x.array[0]=Number(input);&#xD;    }else if (input.indexOf("#")==-1){&#xD;      x.array[0]=Number(input.substring(1));&#xD;      x.array[1]=1;&#xD;    }else{&#xD;      var array=input.substring(1).split("#");&#xD;      for (var i=0;i&lt;array.length;++i){&#xD;        var t=Number(array[i]);&#xD;        if (i&gt;=2){&#xD;          --t;&#xD;        }&#xD;        x.array[i]=t;&#xD;      }&#xD;    }&#xD;    if (negateIt) x.sign*=-1;&#xD;    x.standardize();&#xD;    return x;&#xD;  };&#xD;  P.clone=function (){&#xD;    var temp=new OmegaNum();&#xD;    temp.array=this.array.slice(0);&#xD;    temp.sign=this.sign;&#xD;    return temp;&#xD;  };&#xD;  // OmegaNum methods&#xD;&#xD;  /*&#xD;   *  clone&#xD;   *  config/set&#xD;   */&#xD;&#xD;  /*&#xD;   * Create and return a OmegaNum constructor with the same configuration properties as this OmegaNum constructor.&#xD;   *&#xD;   */&#xD;  function clone(obj) {&#xD;    var i, p, ps;&#xD;    function OmegaNum(input,input2) {&#xD;      var x=this;&#xD;      if (!(x instanceof OmegaNum)) return new OmegaNum(input,input2);&#xD;      x.constructor=OmegaNum;&#xD;      var parsedObject=null;&#xD;      if (typeof input=="string"&amp;&amp;(input[0]=="["||input[0]=="{")){&#xD;        try {&#xD;          parsedObject=JSON.parse(input);&#xD;        }catch(e){&#xD;          //lol just keep going&#xD;        }&#xD;      }&#xD;      var temp,temp2;&#xD;      if (typeof input=="number"&amp;&amp;!(input2 instanceof Array)){&#xD;        temp=OmegaNum.fromNumber(input);&#xD;      }else if (parsedObject){&#xD;        temp=OmegaNum.fromObject(parsedObject);&#xD;      }else if (typeof input=="string"&amp;&amp;input[0]=="E"){&#xD;        temp=OmegaNum.fromHyperE(input);&#xD;      }else if (typeof input=="string"){&#xD;        temp=OmegaNum.fromString(input);&#xD;      }else if (input instanceof Array||input2 instanceof Array){&#xD;        temp=OmegaNum.fromArray(input,input2);&#xD;      }else if (input instanceof OmegaNum){&#xD;        temp=input.array.slice(0);&#xD;        temp2=input.sign;&#xD;      }else if (typeof input=="object"){&#xD;        temp=OmegaNum.fromObject(input);&#xD;      }else{&#xD;        temp=[NaN];&#xD;        temp2=1;&#xD;      }&#xD;      if (typeof temp2=="undefined"){&#xD;        x.array=temp.array;&#xD;        x.sign=temp.sign;&#xD;      }else{&#xD;        x.array=temp;&#xD;        x.sign=temp2;&#xD;      }&#xD;      return x;&#xD;    }&#xD;    OmegaNum.prototype = P;&#xD;&#xD;    OmegaNum.JSON = 0;&#xD;    OmegaNum.STRING = 1;&#xD;    &#xD;    OmegaNum.NONE = 0;&#xD;    OmegaNum.NORMAL = 1;&#xD;    OmegaNum.ALL = 2;&#xD;&#xD;    OmegaNum.clone=clone;&#xD;    OmegaNum.config=OmegaNum.set=config;&#xD;    &#xD;    //OmegaNum=Object.assign(OmegaNum,Q);&#xD;    for (var prop in Q){&#xD;      if (Q.hasOwnProperty(prop)){&#xD;        OmegaNum[prop]=Q[prop];&#xD;      }&#xD;    }&#xD;    &#xD;    if (obj === void 0) obj = {};&#xD;    if (obj) {&#xD;      ps = [&apos;maxArrow&apos;, &apos;serializeMode&apos;, &apos;debug&apos;];&#xD;      for (i = 0; i &lt; ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];&#xD;    }&#xD;&#xD;    OmegaNum.config(obj);&#xD;    &#xD;    return OmegaNum;&#xD;  }&#xD;&#xD;  function defineConstants(obj){&#xD;    for (var prop in R){&#xD;      if (R.hasOwnProperty(prop)){&#xD;        if (Object.defineProperty){&#xD;          Object.defineProperty(obj,prop,{&#xD;            configurable: false,&#xD;            enumerable: true,&#xD;            writable: false,&#xD;            value: new OmegaNum(R[prop])&#xD;          });&#xD;        }else{&#xD;          obj[prop]=new OmegaNum(R[prop]);&#xD;        }&#xD;      }&#xD;    }&#xD;    return obj;&#xD;  }&#xD;&#xD;  /*&#xD;   * Configure global settings for a OmegaNum constructor.&#xD;   *&#xD;   * `obj` is an object with one or more of the following properties,&#xD;   *&#xD;   *   precision  {number}&#xD;   *   rounding   {number}&#xD;   *   toExpNeg   {number}&#xD;   *   toExpPos   {number}&#xD;   *&#xD;   * E.g. OmegaNum.config({ precision: 20, rounding: 4 })&#xD;   *&#xD;   */&#xD;  function config(obj){&#xD;    if (!obj||typeof obj!==&apos;object&apos;) {&#xD;      throw Error(omegaNumError+&apos;Object expected&apos;);&#xD;    }&#xD;    var i,p,v,&#xD;      ps = [&#xD;        &apos;maxArrow&apos;,1,Number.MAX_SAFE_INTEGER,&#xD;        &apos;serializeMode&apos;,0,1,&#xD;        &apos;debug&apos;,0,2&#xD;      ];&#xD;    for (i = 0; i &lt; ps.length; i += 3) {&#xD;      if ((v = obj[p = ps[i]]) !== void 0) {&#xD;        if (Math.floor(v) === v &amp;&amp; v &gt;= ps[i + 1] &amp;&amp; v &lt;= ps[i + 2]) this[p] = v;&#xD;        else throw Error(invalidArgument + p + &apos;: &apos; + v);&#xD;      }&#xD;    }&#xD;&#xD;    return this;&#xD;  }&#xD;&#xD;&#xD;  // Create and configure initial OmegaNum constructor.&#xD;  OmegaNum=clone(OmegaNum);&#xD;&#xD;  OmegaNum=defineConstants(OmegaNum);&#xD;&#xD;  OmegaNum[&apos;default&apos;]=OmegaNum.OmegaNum=OmegaNum;&#xD;&#xD;  // Export.&#xD;&#xD;  // AMD.&#xD;  if (typeof define == &apos;function&apos; &amp;&amp; define.amd) {&#xD;    define(function () {&#xD;      return OmegaNum;&#xD;    });&#xD;  // Node and other environments that support module.exports.&#xD;  } else if (typeof module != &apos;undefined&apos; &amp;&amp; module.exports) {&#xD;    module.exports = OmegaNum;&#xD;    // Browser.&#xD;  } else {&#xD;    if (!globalScope) {&#xD;      globalScope = typeof self != &apos;undefined&apos; &amp;&amp; self &amp;&amp; self.self == self&#xD;        ? self : Function(&apos;return this&apos;)();&#xD;    }&#xD;    globalScope.OmegaNum = OmegaNum;&#xD;  }&#xD;})(this);&#xD;}</l></block><list></list></block><block s="doRun"><block s="reportJSFunction"><list></list><l>startOmegaNum();</l></block><list></list></block></script></block-definition><block-definition s="OmegaNum. %&apos;operator&apos; ( %&apos;inputs&apos; )" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s">add<options>removing decimals={&#xD;floor&#xD;round&#xD;ceil&#xD;}&#xD;booleans={&#xD;eq&#xD;gt&#xD;gte&#xD;lt&#xD;lte&#xD;ispos&#xD;isneg&#xD;isin&#xD;isNaN&#xD;isFinite&#xD;isInfinite&#xD;}&#xD;basic operators={&#xD;add&#xD;sub&#xD;mul&#xD;div&#xD;pow&#xD;tetr&#xD;pent&#xD;arrow&#xD;}&#xD;log10&#xD;ln&#xD;sqrt&#xD;cbrt&#xD;max&#xD;min</options></input><input type="%mult%n"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l><l>b</l><l>c</l><l>d</l></list></block><block s="doSetVar"><l>a</l><block s="reportJoinWords"><list><l>OmegaNum(&apos;</l><block s="reportIfElse"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="inputs"/></block><l></l></block><l>0</l><block s="reportListItem"><l>1</l><block var="inputs"/></block></block><l>&apos;)</l></list></block></block><block s="doSetVar"><l>b</l><block s="reportJoinWords"><list><l>OmegaNum(&apos;</l><block s="reportIfElse"><block s="reportEquals"><block s="reportListItem"><l>2</l><block var="inputs"/></block><l></l></block><l>0</l><block s="reportListItem"><l>2</l><block var="inputs"/></block></block><l>&apos;)</l></list></block></block><block s="doSetVar"><l>c</l><block s="reportJoinWords"><list><l>OmegaNum(&apos;</l><block s="reportIfElse"><block s="reportEquals"><block s="reportListItem"><l>3</l><block var="inputs"/></block><l></l></block><l>0</l><block s="reportListItem"><l>3</l><block var="inputs"/></block></block><l>&apos;)</l></list></block></block><block s="doSetVar"><l>d</l><block s="reportJoinWords"><list><l>OmegaNum(&apos;</l><block s="reportIfElse"><block s="reportEquals"><block s="reportListItem"><l>4</l><block var="inputs"/></block><l></l></block><l>0</l><block s="reportListItem"><l>4</l><block var="inputs"/></block></block><l>&apos;)</l></list></block></block><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><block s="reportJoinWords"><list><l>return OmegaNum.</l><block var="operator"/><l>(</l><block var="a"/><block s="reportIfElse"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block var="inputs"/></block><l>1</l></block><block s="reportJoinWords"><list><l>,</l><block var="b"/></list></block><l></l></block><l></l><block s="reportIfElse"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block var="inputs"/></block><l>2</l></block><block s="reportJoinWords"><list><l>,</l><block var="c"/></list></block><l></l></block><l></l><block s="reportIfElse"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block var="inputs"/></block><l>3</l></block><block s="reportJoinWords"><list><l>,</l><block var="d"/></list></block><l></l></block><l></l><l>)</l></list></block></block><list></list></block></block></script><scripts><script x="454" y="152"><block s="evaluate"><block s="reportJSFunction"><list></list><l></l></block><list></list></block></script></scripts></block-definition><block-definition s="%&apos;input&apos; .toString()" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><block s="reportJoinWords"><list><l>return (</l><block var="input"/><l>).toString()</l></list></block></block><list></list></block></block></script></block-definition><block-definition s="variable %&apos;varType&apos; %&apos;var&apos; = %&apos;newvalue&apos;" type="command" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"><options>var&#xD;let&#xD;const</options></input><input type="%txt">a</input><input type="%s">10</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><block s="reportJoinWords"><list><block var="varType"/><l> </l><block var="var"/><l> = </l><block var="newvalue"/></list></block></block><list></list></block></script></block-definition><block-definition s="js return %&apos;var&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><block s="reportJoinWords"><list><l>return </l><block var="var"/></list></block></block><list></list></block></block></script></block-definition><block-definition s="create function %&apos;name&apos; ( %&apos;inputs&apos; ) { %&apos;function&apos; }" type="command" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt">test</input><input type="%mult%s"></input><input type="%txt">return x+y</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><block s="reportJoinWords"><list><block var="name"/><l> = function </l><block var="name"/><l>(</l><block s="reportListAttribute"><l><option>csv</option></l><block var="inputs"/></block><l>) {</l><block var="function"/><l>}</l></list></block></block><list></list></block></script></block-definition><block-definition s="%&apos;condition&apos; ? %&apos;ifTrue&apos; : %&apos;ifFalse&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s">5==5</input><input type="%s">10</input><input type="%s">17</input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><block s="reportJoinWords"><list><l>return </l><block var="condition"/><l>?</l><block var="ifTrue"/><l>:</l><block var="ifFalse"/></list></block></block><list></list></block></block></script></block-definition><block-definition s="js function %&apos;name&apos; ( %&apos;inputs&apos; )" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt">test</input><input type="%mult%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><block s="reportJoinWords"><list><l>return </l><block var="name"/><l>(</l><block s="reportListAttribute"><l><option>csv</option></l><block var="inputs"/></block><l>)</l></list></block></block><list></list></block></block></script></block-definition><block-definition s="stringify %&apos;input&apos; %&apos;by&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s">"<options>&apos;&#xD;&quot;</options></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><block var="by"/><block var="input"/><block var="by"/></list></block></block></script></block-definition><block-definition s="unstringfy %&apos;input&apos; %&apos;by&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s">"<options>&apos;&#xD;&quot;</options></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doIfElse"><block s="reportAnd"><block s="reportEquals"><block s="reportLetter"><l>1</l><block var="input"/></block><block var="by"/></block><block s="reportEquals"><block s="reportLetter"><l><option>last</option></l><block var="input"/></block><block var="by"/></block></block><script><block s="doSetVar"><l>a</l><block s="reportCDR"><block s="reportTextSplit"><block var="input"/><l></l></block></block></block><block s="doDeleteFromList"><l><option>last</option></l><block var="a"/></block><block s="doSetVar"><l>a</l><block s="reportJoinWords"><list><block var="a"/></list></block></block><block s="doReport"><block var="a"/></block></script><script><block s="doReport"><block var="input"/></block></script></block></script></block-definition><block-definition s="js list %&apos;input&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><l>[</l><custom-block s="join all %l separate %s"><block var="input"/><l>,</l></custom-block><l>]</l></list></block></block></script></block-definition><block-definition s="if ( %&apos;condition&apos; ) { %&apos;ifTrue&apos; }" type="command" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt">8&gt;3</input><input type="%mlt">test=90</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><block s="reportJoinWords"><list><l>if (</l><block var="condition"/><l>) {</l><block var="ifTrue"/><l>}</l></list></block></block><list></list></block></script></block-definition><block-definition s="if ( %&apos;condition&apos; ) { %&apos;ifTrue&apos; } else { %&apos;ifFalse&apos; }" type="command" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt">8&gt;3</input><input type="%mlt">test=90</input><input type="%s">test=150</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><block s="reportJoinWords"><list><l>if (</l><block var="condition"/><l>) {</l><block var="ifTrue"/><l>} else {</l><block var="ifFalse"/><l>}</l></list></block></block><list></list></block></script></block-definition><block-definition s="for ( %&apos;start&apos; ; %&apos;until&apos; ; %&apos;change&apos; ) { %&apos;command&apos; }" type="command" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s">i=0</input><input type="%s">i&lt;5</input><input type="%s">i++</input><input type="%mlt">alert(i)</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><block s="reportJoinWords"><list><l>for (</l><block var="start"/><l>; </l><block var="until"/><l>; </l><block var="change"/><l>) {</l><block var="command"/><l>}</l></list></block></block><list></list></block></script></block-definition><block-definition s="setInterval( %&apos;function&apos; , %&apos;ms&apos; )" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s">function(){alert(&apos;4&apos;);}</input><input type="%n">1500</input></inputs><script><block s="doReport"><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l>setInterval(</l><block var="function"/><l>,</l><block var="ms"/><l>)</l></list></block></autolambda><list></list></block><list></list></block></block></script></block-definition><block-definition s="clearInterval( %&apos;var&apos; )" type="command" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s">test</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><block s="reportJoinWords"><list><l>clearInterval(</l><block var="var"/><l>)</l></list></block></block><list></list></block></script></block-definition><block-definition s="alert( %&apos;input&apos; )" type="command" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s">"Hello World"</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><block s="reportJoinWords"><list><l>alert(</l><block var="input"/><l>)</l></list></block></block><list></list></block></script></block-definition><block-definition s="js calc %&apos;x&apos; %&apos;op&apos; %&apos;y&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s">76</input><input type="%s">&amp;<options>**&#xD;&amp;&#xD;|&#xD;^&#xD;&amp;&amp;&#xD;||</options></input><input type="%s">20</input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><block s="reportJoinWords"><list><l>return </l><block var="x"/><block var="op"/><block var="y"/></list></block></block><list></list></block></block></script></block-definition><block-definition s="switch( %&apos;switch&apos; ) { %&apos;cases&apos; }" type="command" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%mult%s"></input></inputs><script><block s="doDeclareVariables"><list><l>caseScript</l></list></block><block s="doSetVar"><l>caseScript</l><block s="reportJoinWords"><list><block var="cases"/></list></block></block><block s="doRun"><block s="reportJSFunction"><list></list><block s="reportJoinWords"><list><l>switch(</l><block var="switch"/><l>) {</l><block var="cases"/><l>}</l></list></block></block><list></list></block></script></block-definition><block-definition s="case %&apos;case&apos; : %&apos;command&apos; break;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%mlt"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><l>case </l><block var="case"/><l>: </l><block var="command"/><l>break;</l></list></block></block></script></block-definition><block-definition s="btoa( %&apos;input&apos; )" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s">"Hello World"</input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><block s="reportJoinWords"><list><l>return btoa(</l><block var="input"/><l>)</l></list></block></block><list></list></block></block></script></block-definition><block-definition s="atob( %&apos;input&apos; )" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s">"SGVsbG8gV29ybGQ="</input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><block s="reportJoinWords"><list><l>return atob(</l><block var="input"/><l>)</l></list></block></block><list></list></block></block></script></block-definition><block-definition s="eval( %&apos;input&apos; )" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s">2 + 4</input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><block s="reportJoinWords"><list><l>return eval(</l><block var="input"/><l>)</l></list></block></block><list></list></block></block></script></block-definition><block-definition s="join all %&apos;list&apos; separate %&apos;by&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%s">,</input></inputs><script><block s="doDeclareVariables"><list><l>output</l></list></block><block s="doSetVar"><l>output</l><l></l></block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block><script><block s="doSetVar"><l>output</l><block s="reportJoinWords"><list><block var="output"/><block s="reportListItem"><block var="i"/><block var="list"/></block><block s="reportIfElse"><block s="reportEquals"><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block></block><l></l><block var="by"/></block></list></block></block></script></block><block s="doReport"><block var="output"/></block></script></block-definition></blocks><variables><variable name="value"><l>16402</l></variable><variable name="___speed___"><l>0</l></variable><variable name="valuePow"></variable><variable name="incremental1"><l>0</l></variable></variables></project><media name="JavaScript blocks" app="Snap! 6, https://snap.berkeley.edu" version="1"></media></snapdata>