!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@canvas-ui/assert")):"function"==typeof define&&define.amd?define(["exports","@canvas-ui/assert"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["@canvas-ui/core"]={},t["@canvas-ui/assert"])}(this,(function(exports,assert){"use strict";class AbstractNode{constructor(){this._depth=0}get depth(){return this._depth}redepthChild(t){assert.assert(t.owner===this.owner),t._depth<=this._depth&&(t._depth=this._depth+1,t.redepthChildren())}get parent(){return this._parent}get owner(){return this._owner}attach(t){assert.assert(!this._owner),this._owner=t}get attached(){return void 0!==this._owner}detach(){var t;assert.assert(this._owner),this._owner=void 0,assert.assert(!(null===(t=this.parent)||void 0===t?void 0:t.attached))}adoptChild(t){assert.assert(!t._parent,"子节点已经有父节点"),t._parent=this,this._owner&&t.attach(this._owner),this.redepthChild(t)}dropChild(t){assert.assert(t._parent===this),assert.assert(t.attached===this.attached),t._parent=void 0,this.attached&&t.detach()}}const K="K";class LinkedList{constructor(){this._length=0}get length(){return this._length}append(t){const e={value:t,prev:this.tail};this.head||(this.head=e),this.tail&&(this.tail.next=e),this.tail=e,this._length++}delete(t){let e=this.head;for(;e;){if(e.value===t)return this.deleteNode(e),!0;e=e.next}return!1}deleteNode(t){t.prev&&(t.prev.next=t.next),t.next&&(t.next.prev=t.prev),this.head===t&&(this.head=t.next),this.tail===t&&(this.tail=t.prev),this._length--}toJSON(){return Array.from(this)}*[Symbol.iterator](){let t=this.head;for(;t;)yield t.value,t=t.next}}const resolveClassName=t=>"function"==typeof t?t.name:t.constructor.name;class ConsoleLogger{log(...t){console.log(...t)}info(...t){console.info(...t)}error(...t){console.error(...t)}warn(...t){console.warn(...t)}group(...t){console.group(...t)}groupEnd(){console.groupEnd()}}class NullLogger{info(){}log(){}error(){}warn(){}group(){}groupEnd(){}}class LoggerFactory{static get defaultLogger(){return!Log.disableAll&&testEnv("development")?ConsoleLogger:NullLogger}static getLogger(t=LoggerFactory.defaultLogger){var e,r,n;return null!==(e=(r=LoggerFactory.instances)[n=t.name])&&void 0!==e?e:r[n]=new t}}function Log({message:t,env:e="development",disabled:r}={}){return function(n,i,s){if(!testEnv(e)||r)return;const{value:a}=s;s.value=function(...e){const r=null!=t?t:`${resolveClassName(this)}.${i.toString()}`,n=LoggerFactory.getLogger();let s,o,u;n.group(r,e);const l=performance.now();try{s=a.apply(this,e),o=performance.now()-l}catch(t){o=performance.now()-l,u=t}if(n.log(`${s} in ${o.toFixed(3)}ms`),n.groupEnd(),u)throw u;return s}}}function testEnv(t){return!!t&&("string"==typeof t?"production"===t:-1!==t.indexOf("production"))}LoggerFactory.instances={},Log.disableAll=!1,Object.defineProperties(Log,{info:{get:()=>LoggerFactory.getLogger().info}});class NonConstructiable{constructor(){}}class HashMap{constructor(t){this.comparator=t,this.storage=new Map}get(t,e){const r=this.storage.get(t);if(r)for(const t of r)if(this.comparator(t.key,e))return t.value}set(t,e,r){let n=this.storage.get(t);if(n||(n=new LinkedList,this.storage.set(t,n)),n.length>0)for(const t of n)if(this.comparator(t.key,e))return;n.append({key:e,value:r})}delete(t,e){const r=this.storage.get(t);if(!r)return!1;for(const n of r)if(this.comparator(n.key,e))return r.delete(n),0===r.length&&this.storage.delete(t),!0;return!1}*[Symbol.iterator](){for(const[t,e]of this.storage)for(const r of e)yield[t,r.key,r.value]}}var PaintStyle;exports.PaintStyle=void 0,PaintStyle=exports.PaintStyle||(exports.PaintStyle={}),PaintStyle[PaintStyle.fill=0]="fill",PaintStyle[PaintStyle.stroke=1]="stroke";class Paint extends NonConstructiable{static isStroke(t){return t.style===exports.PaintStyle.stroke}}function __decorate(t,e,r,n){var i,s=arguments.length,a=s<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,r,n);else for(var o=t.length-1;o>=0;o--)(i=t[o])&&(a=(s<3?i(a):s>3?i(e,r,a):i(e,r))||a);return s>3&&a&&Object.defineProperty(e,r,a),a}function hasOwn(t,e){return Object.prototype.hasOwnProperty.call(t,e)}"function"==typeof SuppressedError&&SuppressedError;class Rect extends NonConstructiable{static fromLTWH(t,e,r,n){return{left:t,right:r+t,top:e,bottom:n+e,width:r,height:n}}static fromLTRB(t,e,r,n){return{left:t,right:r,top:e,bottom:n,width:r-t,height:n-e}}static roundOut(t){return Rect.fromLTRB(Math.floor(t.left),Math.floor(t.top),Math.ceil(t.right),Math.ceil(t.bottom))}static fromSize(t){return Rect.fromLTWH(0,0,t.width,t.height)}static fromOffsetAndSize(t,e){return Rect.fromLTWH(t.x,t.y,e.width,e.height)}static expandToInclude(t,e){return Rect.fromLTRB(Math.min(t.left,e.left),Math.min(t.top,e.top),Math.max(t.right,e.right),Math.max(t.bottom,e.bottom))}static inflate(t,e){return Rect.fromLTRB(t.left-e.width,t.top-e.height,t.right+e.width,t.bottom+e.height)}static isEmpty(t){return t===Rect.zero||t.left>=t.right||t.top>=t.bottom}static shift(t,e){return Rect.fromLTRB(t.left+e.x,t.top+e.y,t.right+e.x,t.bottom+e.y)}static eq(t,e){return t.left===e.left&&t.top===e.top&&t.right===e.right&&t.bottom===e.bottom}static clone({left:t,top:e,right:r,bottom:n,width:i,height:s}){return{left:t,top:e,right:r,bottom:n,width:i,height:s}}static overlaps(t,e){return!(t.right<=e.left||e.right<=t.left)&&!(t.bottom<=e.top||e.bottom<=t.top)}static intersect(t,e){return Rect.fromLTRB(Math.max(t.left,e.left),Math.max(t.top,e.top),Math.min(t.right,e.right),Math.min(t.bottom,e.bottom))}static contains(t,e){return e.x>=t.left&&e.x<=t.right&&e.y>=t.top&&e.y<=t.bottom}}Rect.zero=Rect.fromLTWH(0,0,0,0);class Circle extends NonConstructiable{static fromXYR(t,e,r){return{x:t,y:e,radius:r}}static getBounds(t){return Rect.fromLTWH(t.x-t.radius,t.y-t.radius,2*t.radius,2*t.radius)}}class Point extends NonConstructiable{static clone(t){return{x:t.x,y:t.y}}static fromXY(t,e){return{x:t,y:e}}static fromRect(t){return{x:t.left,y:t.top}}static fromSize(t){return{x:t.width,y:t.height}}static isZero(t){return t===Point.zero||0===t.x&&0===t.y}static eq(t,e){return t.x===e.x&&t.y===e.y}static add(t,e){return{x:t.x+e.x,y:t.y+e.y}}static add3(t,e,r){return{x:t.x+e.x+r.x,y:t.y+e.y+r.y}}static invert(t){return{x:-t.x,y:-t.y}}}Point.zero=Point.fromXY(0,0);class Matrix extends NonConstructiable{static eq({values:t},{values:e}){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]&&t[4]===e[4]&&t[5]===e[5]&&t[6]===e[6]&&t[7]===e[7]&&t[8]===e[8]}static fromArray(t){return{values:new Float32Array(t)}}static fromTranslate(t,e){return Matrix.fromArray([1,0,t,0,1,e,0,0,1])}static fromScale(t,e=t){return Matrix.fromArray([t,0,0,0,e,0,0,0,1])}static fromScaleTranslate(t,e,r,n){return Matrix.fromArray([t,0,r-t*r,0,e,n-e*n,0,0,1])}static fromRotation(t,e,r){const n=Math.sin(t),i=Math.cos(t),s=1-i;return Matrix.fromArray([i,-n,n*r+s*e,n,i,-n*e+s*r,0,0,1])}static clone(t){return{values:new Float32Array(t.values)}}static mul(t,e){const{values:r}=t,{values:n}=e;return Matrix.fromArray([r[0]*n[0]+r[1]*n[3],r[0]*n[1]+r[1]*n[4],r[0]*n[2]+r[1]*n[5]+r[2],r[3]*n[0]+r[4]*n[3],r[3]*n[1]+r[4]*n[4],r[3]*n[2]+r[4]*n[5]+r[5],0,0,1])}static getTranslate(t){return Point.fromXY(t.values[2],t.values[5])}static leftTranslate(t,e){return Matrix.mul(Matrix.fromTranslate(t.x,t.y),e)}static setTranslate(t,e,r){const n=new Float32Array(t.values);return n[2]=e,n[5]=r,{values:n}}static transformPoint({values:t},{x:e,y:r}){const n=t[0]*e+t[1]*r+t[2],i=t[3]*e+t[4]*r+t[5];return Point.fromXY(n,i)}static inverseTransformPoint({values:t},{x:e,y:r}){const n=t[0],i=t[1],s=t[2],a=t[3],o=t[4],u=t[5],l=1/(n*o-i*a),h=o*l*e+-i*l*r+(u*i-s*o)*l,c=n*l*r+-a*l*e+(-u*n+s*a)*l;return Point.fromXY(h,c)}static transformRect(t,{left:e,top:r,right:n,bottom:i}){const s=Matrix.transformPoint(t,Point.fromXY(e,r)),a=Matrix.transformPoint(t,Point.fromXY(n,r)),o=Matrix.transformPoint(t,Point.fromXY(e,i)),u=Matrix.transformPoint(t,Point.fromXY(n,i));return Rect.roundOut(Rect.fromLTRB(Math.min(Math.min(Math.min(s.x,a.x),o.x),u.x),Math.min(Math.min(Math.min(s.y,a.y),o.y),u.y),Math.max(Math.max(Math.max(s.x,a.x),o.x),u.x),Math.max(Math.max(Math.max(s.y,a.y),o.y),u.y)))}}Matrix.identity=Matrix.fromArray([1,0,0,0,1,0,0,0,1]);class MutableMatrix{constructor(t){this.values=t}static fromMatrix(t){return new MutableMatrix(new Float32Array(t.values))}static fromIdentity(){return new MutableMatrix(new Float32Array(Matrix.identity.values))}translate(t,e){const r=this.values[0]*t+this.values[1]*e+this.values[2],n=this.values[3]*t+this.values[4]*e+this.values[5];this.values[2]=r,this.values[5]=n}mul({values:t}){const e=this.values,r=e[0]*t[0]+e[1]*t[3],n=e[0]*t[1]+e[1]*t[4],i=e[0]*t[2]+e[1]*t[5]+e[2],s=e[3]*t[0]+e[4]*t[3],a=e[3]*t[1]+e[4]*t[4],o=e[3]*t[2]+e[4]*t[5]+e[5];e[0]=r,e[1]=n,e[2]=i,e[3]=s,e[4]=a,e[5]=o}}class RRect extends NonConstructiable{static eq(t,e){return t.left===e.left&&t.top===e.top&&t.right===e.right&&t.bottom===e.bottom&&t.radiusX===e.radiusX&&t.radiusY===e.radiusY}static shift(t,e){return RRect.fromLTWHXY(t.left+e.x,t.top+e.y,t.width,t.height,t.radiusX,t.radiusY)}static fromLTWH(t,e,r,n){return RRect.fromLTWHXY(t,e,r,n,0,0)}static fromLTWHXY(t,e,r,n,i,s){return{left:t,right:r+t,top:e,bottom:n+e,width:r,height:n,radiusX:i,radiusY:s}}}RRect.zero=RRect.fromLTWHXY(0,0,0,0,0,0);class Size$1 extends NonConstructiable{static max(t,e){return Size$1.fromWH(Math.max(t.width,e.width),Math.max(t.height,e.height))}static fromWH(t,e){return{width:t,height:e}}static add(t,e){return{width:t.width+e.x,height:t.height+e.y}}static eq(t,e){return t.width===e.width&&t.height===e.height}static isZero(t){return Size$1.eq(t,Size$1.zero)}static clone({width:t,height:e}){return Size$1.fromWH(t,e)}static contains(t,e){return e.x>=0&&e.x<=t.width&&e.y>=0&&e.y<=t.height}static scale(t,e){return Size$1.fromWH(t.width*e,t.height*e)}}Size$1.zero=Size$1.fromWH(0,0);class WebPlatformAdapter{constructor(){this.rafId=-1,this.frameRequestCallback=t=>{this.rafId=-1,this.onFrameCallbacks.forEach((e=>e(t)))},this.onFrameCallbacks=[],this.supportOffscreenCanvas="undefined"!=typeof OffscreenCanvas}static get instance(){var t;return null!==(t=WebPlatformAdapter._instance)&&void 0!==t?t:WebPlatformAdapter._instance=new WebPlatformAdapter}scheduleFrame(){return this.onFrameCallbacks.length>0&&-1===this.rafId&&(this.rafId=self.requestAnimationFrame(this.frameRequestCallback),!0)}onFrame(t){return assert.assert(-1===this.onFrameCallbacks.indexOf(t),"重复添加了 callback"),this.onFrameCallbacks.push(t),()=>{this.onFrameCallbacks=this.onFrameCallbacks.filter((e=>e!==t))}}createCanvas(t,e){const r=document.createElement("canvas");return this.resizeCanvas(r,t,e),r}createOffscreenCanvas(t,e){return new OffscreenCanvas(Math.round(t),Math.round(e))}createRenderingContext(t,e){return this.supportOffscreenCanvas?this.createOffscreenCanvas(t,e).getContext("2d"):this.createCanvas(t,e).getContext("2d")}resizeCanvas(t,e,r){t.width=e,t.height=r}}__decorate([Log({disabled:!0})],WebPlatformAdapter.prototype,"scheduleFrame",null);const PlatformAdapter=WebPlatformAdapter.instance;class Path extends NonConstructiable{static parse(t){const e=[],r=[];let n,i,s,a=null;if(!t||!t.match)return e;const o=t.match(InvalidDirectiveReg);if(!o)return e;for(let t=0,u=o.length;t<u;t++){n=o[t],s=n.slice(1).trim(),r.length=0;let u=n.charAt(0);const l=[u];if("a"===u.toLowerCase())for(let t;t=ArcArgsReg.exec(s);)for(let e=1;e<t.length;e++)r.push(t[e]);else for(;a=FirstArgReg.exec(s);)r.push(a[0]);for(let t=0,e=r.length;t<e;t++)i=parseFloat(r[t]),isNaN(i)||l.push(i);const h=ArgLengths[u.toLowerCase()],c=RepeatedCommands[u]||u;if(l.length-1>h)for(let t=1,r=l.length;t<r;t+=h)e.push([u].concat(l.slice(t,t+h))),u=c;else e.push(l)}return e}static simplify(t){let e=0,r=0;const n=t.length;let i,s,a=0,o=0,u=!1,l=[],h=0,c=0;for(let f=0;f<n;++f){switch(u=!1,i=t[f].slice(0),i[0]){case"l":i[0]="L",i[1]+=e,i[2]+=r;case"L":e=i[1],r=i[2];break;case"h":i[1]+=e;case"H":i[0]="L",i[2]=r,e=i[1];break;case"v":i[1]+=r;case"V":i[0]="L",r=i[1],i[1]=e,i[2]=r;break;case"m":i[0]="M",i[1]+=e,i[2]+=r;case"M":e=i[1],r=i[2],a=i[1],o=i[2];break;case"c":i[0]="C",i[1]+=e,i[2]+=r,i[3]+=e,i[4]+=r,i[5]+=e,i[6]+=r;case"C":h=i[3],c=i[4],e=i[5],r=i[6];break;case"s":i[0]="S",i[1]+=e,i[2]+=r,i[3]+=e,i[4]+=r;case"S":"C"===s?(h=2*e-h,c=2*r-c):(h=e,c=r),e=i[3],r=i[4],i[0]="C",i[5]=i[3],i[6]=i[4],i[3]=i[1],i[4]=i[2],i[1]=h,i[2]=c,h=i[3],c=i[4];break;case"q":i[0]="Q",i[1]+=e,i[2]+=r,i[3]+=e,i[4]+=r;case"Q":h=i[1],c=i[2],e=i[3],r=i[4];break;case"t":i[0]="T",i[1]+=e,i[2]+=r;case"T":"Q"===s?(h=2*e-h,c=2*r-c):(h=e,c=r),i[0]="Q",e=i[1],r=i[2],i[1]=h,i[2]=c,i[3]=e,i[4]=r;break;case"a":i[0]="A",i[6]+=e,i[7]+=r;case"A":u=!0,l=l.concat(fromArcToBeziers(e,r,i)),e=i[6],r=i[7];break;case"z":case"Z":e=a,r=o}u||l.push(i),s=i[0]}return l}static calculateBounds(t){const e=[],r=[];let n,i,s=0,a=0,o=0,u=0;for(let l=0,h=t.length;l<h;++l){switch(n=t[l],n[0]){case"L":o=n[1],u=n[2],i=[];break;case"M":o=n[1],u=n[2],s=o,a=u,i=[];break;case"C":i=getBoundsOfCurve(o,u,n[1],n[2],n[3],n[4],n[5],n[6]),o=n[5],u=n[6];break;case"Q":i=getBoundsOfCurve(o,u,n[1],n[2],n[1],n[2],n[3],n[4]),o=n[3],u=n[4];break;case"z":case"Z":o=s,u=a}i.forEach((function(t){e.push(t.x),r.push(t.y)})),e.push(o),r.push(u)}const l=Math.min(...e),h=Math.min(...r),c=Math.max(...e),f=Math.max(...r);return Rect.fromLTRB(l,h,c,f)}static get testContext(){if(Path._testContext)return Path._testContext;const t=PlatformAdapter.createRenderingContext(1,1);return assert.assert(t),t.lineCap="round",Path._testContext=t}static isPointInStroke(t,e,r=1){const{testContext:n}=Path;return n.lineWidth=r,n.isPointInStroke(t,e.x,e.y)}}const NumberPattern="[-+]?(?:\\d*\\.\\d+|\\d+\\.?)(?:[eE][-+]?\\d+)?\\s*",CommaWspPattern="(?:\\s+,?\\s*|,\\s*)",FirstArgReg=/([-+]?((\d+\.\d+)|((\d+)|(\.\d+)))(?:[eE][-+]?\d+)?)/gi,NumberCommaWspPattern="("+NumberPattern+")"+CommaWspPattern,FlagCommaWspPattern="([01])"+CommaWspPattern+"?",ArcArgsReg=new RegExp(NumberCommaWspPattern+"?"+NumberCommaWspPattern+"?"+NumberCommaWspPattern+FlagCommaWspPattern+FlagCommaWspPattern+NumberCommaWspPattern+"?("+NumberPattern+")","g"),InvalidDirectiveReg=/[mzlhvcsqta][^mzlhvcsqta]*/gi,ArgLengths={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7},RepeatedCommands={m:"l",M:"L"};function fromArcToBeziers(t,e,r){const n=r[1],i=r[2],s=r[3],a=r[4],o=r[5],u=arcToSegments(r[6]-t,r[7]-e,n,i,a,o,s);for(let r=0,n=u.length;r<n;r++)u[r][1]+=t,u[r][2]+=e,u[r][3]+=t,u[r][4]+=e,u[r][5]+=t,u[r][6]+=e;return u}function arcToSegments(t,e,r,n,i,s,a){const o=Math.PI,u=a*o/180,l=Math.sin(u),h=Math.cos(u);let c=0,f=0;const d=-h*t*.5-l*e*.5,p=-h*e*.5+l*t*.5,g=(r=Math.abs(r))*r,v=(n=Math.abs(n))*n,_=p*p,m=d*d,y=g*v-g*_-v*m;let b=0;if(y<0){const t=Math.sqrt(1-y/(g*v));r*=t,n*=t}else b=(i===s?-1:1)*Math.sqrt(y/(g*_+v*m));const w=b*r*p/n,C=-b*n*d/r,S=h*w-l*C+.5*t,T=l*w+h*C+.5*e;let k=calcVectorAngle(1,0,(d-w)/r,(p-C)/n),x=calcVectorAngle((d-w)/r,(p-C)/n,(-d-w)/r,(-p-C)/n);0===s&&x>0?x-=2*o:1===s&&x<0&&(x+=2*o);const E=Math.ceil(Math.abs(x/o*2)),P=[],M=x/E,R=8/3*Math.sin(M/4)*Math.sin(M/4)/Math.sin(M/2);let A=k+M;for(let t=0;t<E;t++)P[t]=segmentToBezier(k,A,h,l,r,n,S,T,R,c,f),c=P[t][5],f=P[t][6],k=A,A+=M;return P}function calcVectorAngle(t,e,r,n){const i=Math.atan2(e,t),s=Math.atan2(n,r);return s>=i?s-i:2*Math.PI-(i-s)}function segmentToBezier(t,e,r,n,i,s,a,o,u,l,h){const c=Math.cos(t),f=Math.sin(t),d=Math.cos(e),p=Math.sin(e),g=r*i*d-n*s*p+a,v=n*i*d+r*s*p+o;return["C",l+u*(-r*i*f-n*s*c),h+u*(-n*i*f+r*s*c),g+u*(r*i*p+n*s*d),v+u*(n*i*p-r*s*d),g,v]}function getBoundsOfCurve(t,e,r,n,i,s,a,o){const u=Math.sqrt,l=Math.min,h=Math.max,c=Math.abs,f=[],d=[[],[]];let p,g,v,_,m,y,b,w;g=6*t-12*r+6*i,p=-3*t+9*r-9*i+3*a,v=3*r-3*t;for(let t=0;t<2;++t)if(t>0&&(g=6*e-12*n+6*s,p=-3*e+9*n-9*s+3*o,v=3*n-3*e),c(p)<1e-12){if(c(g)<1e-12)continue;_=-v/g,0<_&&_<1&&f.push(_)}else b=g*g-4*v*p,b<0||(w=u(b),m=(-g+w)/(2*p),0<m&&m<1&&f.push(m),y=(-g-w)/(2*p),0<y&&y<1&&f.push(y));let C,S,T=f.length;const k=T;let x;for(;T--;)_=f[T],x=1-_,C=x*x*x*t+3*x*x*_*r+3*x*_*_*i+_*_*_*a,d[0][T]=C,S=x*x*x*e+3*x*x*_*n+3*x*_*_*s+_*_*_*o,d[1][T]=S;d[0][k]=t,d[1][k]=e,d[0][k+1]=a,d[1][k+1]=o;return[{x:l.apply(null,d[0]),y:l.apply(null,d[1])},{x:h.apply(null,d[0]),y:h.apply(null,d[1])}]}class Shader extends NonConstructiable{static fromLinearGradient(t,e,r){return new LinearGradientShader(t,e,r)}static fromPattern(t){return new PatternShader(t)}}class LinearGradientShader{constructor(t,e,r){this.p0=t,this.p1=e,this.colorStops=r}asStyle(t){if(this.gradient)return this.gradient;const e=t.createLinearGradient(this.p0.x,this.p0.y,this.p1.x,this.p1.y);for(const{offset:t,color:r}of this.colorStops)e.addColorStop(t,r);return this.gradient=e}}class PatternShader{constructor(t){this.pattern=t}asStyle(){return this.pattern}}let checkerboardImageData;const makeCheckerboardImageData=(t=.1)=>{const e=Math.round(255*t);return null!=checkerboardImageData?checkerboardImageData:checkerboardImageData=new ImageData(new Uint8ClampedArray([255,255,255,e,0,0,0,e,0,0,0,e,255,255,255,e]),2,2)};let shader;const makeCheckerboardShader=()=>{if(!shader){const t=24,e=2,r=PlatformAdapter.createRenderingContext(e,e);assert.assert(r),r.putImageData(makeCheckerboardImageData(),0,0);const n=r.createPattern(r.canvas,"repeat");assert.assert(n),n.setTransform(new DOMMatrix([t,0,0,t,0,0])),shader=Shader.fromPattern(n)}return assert.assert(shader),shader};class Picture extends NonConstructiable{static from(t,e,r){return{id:Picture.nextId++,version:"1.0.0",drawOps:t,cullRect:e,hasDrawText:r}}static playback(t,e){Picture.draw(t.drawOps,e)}static draw(t,e){for(const{name:r,args:n}of t){const t=e[r];n?t.apply(e,n):t.apply(e)}}}Picture.nextId=0,__decorate([Log({disabled:!0})],Picture,"draw",null);const cache$1={},WATERMARK_BOUNDS=Rect.fromLTWH(0,0,96,96);function makeWatermarkShader(t,e=WATERMARK_BOUNDS){if(cache$1[t])return cache$1[t];const r={width:e.width,height:e.height},n=PlatformAdapter.createRenderingContext(r.width,r.height);assert.assert(n),n.beginPath(),n.setLineDash([20,3,3,3,3,3,3,3]),n.moveTo(e.left,e.top),n.lineTo(e.width,e.height),n.moveTo(e.width,e.top),n.lineTo(e.left,e.height),n.closePath(),n.strokeStyle="rgba(0, 0, 0, 0.1)",n.stroke(),n.fillStyle="rgba(0, 0, 0, 0.2)",n.textAlign="center",n.textBaseline="middle",n.font="16px Monospace",n.fillText(t,e.width/2,e.height/2);const i=n.createPattern(n.canvas,"repeat");return assert.assert(i),cache$1[t]=Shader.fromPattern(i)}class Canvas2DCanvas{constructor({context:t}){this.context=t}save(){this.context.save()}restore(){this.context.restore()}translate(t,e){this.context.translate(t,e)}rotate(t){this.context.rotate(t)}transform(t){this.context.transform(t.values[0],t.values[3],t.values[1],t.values[4],t.values[2],t.values[5])}resetTransform(){this.context.resetTransform()}clear(t){const{width:e,height:r}=this.context.canvas;void 0!==t?this.drawRect(0,0,e,r,{color:t}):this.context.clearRect(0,0,e,r)}drawCircle(t,e,r,n){this.context.save();const i=paintToStyle(n,this.context);if(setShadowProps(this.context,n),Paint.isStroke(n)){const{strokeWidth:s=1}=n,a=s*(.5-(1-0));drawCirclePath(this.context,t,e,r+a),i&&(this.context.strokeStyle=i),this.context.lineWidth=s,this.context.stroke()}else drawCirclePath(this.context,t,e,r),i&&(this.context.fillStyle=i),this.context.fill();this.context.restore()}drawRect(t,e,r,n,i){this.context.save(),setShadowProps(this.context,i);const s=paintToStyle(i,this.context);if(Paint.isStroke(i)){s&&(this.context.strokeStyle=s);const{strokeWidth:a=1}=i;hasOwn(i,"strokeWidth")&&(this.context.lineWidth=i.strokeWidth),this.context.strokeRect(t+.5*a,e+.5*a,r-a,n-a)}else s&&(this.context.fillStyle=s),this.context.fillRect(t,e,r,n);this.context.restore()}drawRRect(t,e,r,n,i,s,a){const{context:o}=this;o.save();const u=paintToStyle(a,this.context),l=i;if(setShadowProps(o,a),Paint.isStroke(a)){const{strokeWidth:i=1}=a,s=i*(.5-(1-0)),h=t-s,c=e-s,f=r+2*s,d=n+2*s;let p=l+s*Math.min(r/f,n/d);const g=Math.min(f,d)/2;p=p>g?g:p,drawRRectPath(o,h,c,f,d,p),u&&(this.context.strokeStyle=u),this.context.lineWidth=i,this.context.stroke()}else drawRRectPath(o,t,e,r,n,l),u&&(this.context.fillStyle=u),o.fill();o.restore()}drawImage(t,e,r,n=t.width,i=t.height){hasOwn(t,"sx")?this.context.drawImage(t.source,t.sx,t.sy,t.width,t.height,e,r,n,i):this.context.drawImage(t.source,e,r,n,i)}drawText(t,e,r,n){this.context.save(),this.context.textRendering="geometricPrecision";const i=paintToStyle(n,this.context);n.font&&(this.context.font=n.font),Paint.isStroke(n)?(i&&(this.context.strokeStyle=i),hasOwn(n,"strokeWidth")&&(this.context.lineWidth=n.strokeWidth),this.context.strokeText(t,e,r)):(i&&(this.context.fillStyle=i),this.context.fillText(t,e,r)),this.context.restore()}drawPath(t,e,r,n){this.context.save(),setShadowProps(this.context,n);const i=paintToStyle(n,this.context);Paint.isStroke(n)?(i&&(this.context.strokeStyle=i),hasOwn(n,"strokeWidth")&&(this.context.lineWidth=n.strokeWidth,this.context.translate(e,r),this.context.stroke(t))):i&&(this.context.fillStyle=i,this.context.translate(e,r),this.context.fill(t)),this.context.restore()}drawPicture(t){Picture.playback(t,this)}clipRect(t,e,r,n){this.context.beginPath(),this.context.rect(t,e,r,n),this.context.closePath(),this.context.clip()}clipRRect(t,e,r,n,i,s){drawRRectPath(this.context,t,e,r,n,i),this.context.clip()}clipCircle(t,e,r){drawCirclePath(this.context,t,e,r),this.context.clip()}debugDrawCheckerboard(t){const{width:e,height:r}=this.context.canvas;this.context.save(),this.context.imageSmoothingEnabled=!1,this.context.scale(t,t),this.drawRect(0,0,e,r,{shader:makeCheckerboardShader()}),this.context.restore()}debugDrawText(t,e,r){this.context.save(),this.context.font="12px Monaco";const{width:n}=this.context.measureText(t);this.context.globalAlpha=.334,this.drawRect(e,r,n+4,16,{}),this.context.globalAlpha=1,this.context.textBaseline="middle",this.context.fillStyle="white",this.context.fillText(t,e+2,r+6+2),this.context.restore()}debugDrawWaterMark(t,e,r,n,i){this.context.save(),this.drawRect(e,r,n,i,{shader:makeWatermarkShader(t)}),this.context.restore()}}__decorate([Log({disabled:!0})],Canvas2DCanvas.prototype,"drawText",null);const paintToStyle=({color:t,shader:e},r)=>t||(e?e.asStyle(r):void 0);function drawRRectPath(t,e,r,n,i,s){t.beginPath(),t.moveTo(e,r+s),t.lineTo(e,r+i-s),t.quadraticCurveTo(e,r+i,e+s,r+i),t.lineTo(e+n-s,r+i),t.quadraticCurveTo(e+n,r+i,e+n,r+i-s),t.lineTo(e+n,r+s),t.quadraticCurveTo(e+n,r,e+n-s,r),t.lineTo(e+s,r),t.quadraticCurveTo(e,r,e,r+s),t.closePath()}function drawCirclePath(t,e,r,n){t.beginPath(),t.arc(e,r,n,0,2*Math.PI),t.closePath()}function setShadowProps(t,e){if(hasOwn(e,"shadowColor")){let r=!1;hasOwn(e,"shadowBlur")&&e.shadowBlur>=0&&(t.shadowBlur=e.shadowBlur,r=!0),hasOwn(e,"shadowOffsetX")&&0!==e.shadowOffsetX&&(t.shadowOffsetX=e.shadowOffsetX,r=!0),hasOwn(e,"shadowOffsetY")&&0!==e.shadowOffsetY&&(t.shadowOffsetY=e.shadowOffsetY,r=!0),r&&(t.shadowColor=e.shadowColor)}}class RecorderCanvas{constructor(){this.drawOps=[],this.drawBoundses=[],this.clipBoundses=[],this.hasDrawText=!1}save(){this.drawOps.push({name:"save"})}restore(){this.drawOps.push({name:"restore"})}translate(t,e){this.drawOps.push({name:"translate",args:[t,e]})}rotate(t){this.drawOps.push({name:"rotate",args:[t]})}transform(t){this.drawOps.push({name:"transform",args:[t]})}resetTransform(){this.drawOps.push({name:"resetTransform"})}clear(t){this.drawOps.push({name:"clear",args:[t]})}drawRect(t,e,r,n,i){this.drawOps.push({name:"drawRect",args:[t,e,r,n,i]}),this.drawBoundses.push(addShadowBounds(Rect.fromLTWH(t,e,r,n),i))}drawRRect(t,e,r,n,i,s,a){this.drawOps.push({name:"drawRRect",args:[t,e,r,n,i,s,a]}),this.drawBoundses.push(addShadowBounds(Rect.fromLTWH(t,e,r,n),a))}drawCircle(t,e,r,n){this.drawOps.push({name:"drawCircle",args:[t,e,r,n]}),this.drawBoundses.push(addShadowBounds(Rect.fromLTWH(t-r,e-r,2*r,2*r),n))}drawImage(t,e,r,n=t.width,i=t.height){this.drawOps.push({name:"drawImage",args:[t,e,r,n,i]}),this.drawBoundses.push(Rect.fromLTWH(e,r,n,i))}drawText(t,e,r,n,i,s,a,o){this.drawOps.push({name:"drawText",args:[t,e,r,n,i,s,a,o]}),this.drawBoundses.push(Rect.fromLTWH(i,s,a,o)),this.hasDrawText=!0}drawPath(t,e,r,n,i,s,a,o){this.drawOps.push({name:"drawPath",args:[t,e,r,n,i,s,a,o]}),this.drawBoundses.push(addShadowBounds(Rect.fromLTWH(i,s,a,o),n))}drawPicture(t){this.drawOps.push({name:"drawPicture",args:[t]}),this.drawBoundses.push(t.cullRect)}clipRect(t,e,r,n){this.drawOps.push({name:"clipRect",args:[t,e,r,n]}),this.clipBoundses.push(Rect.fromLTWH(t,e,r,n))}clipRRect(t,e,r,n,i,s){this.drawOps.push({name:"clipRRect",args:[t,e,r,n,i,s]})}clipCircle(t,e,r){this.drawOps.push({name:"clipCircle",args:[t,e,r]})}debugDrawCheckerboard(t){this.drawOps.push({name:"debugDrawCheckerboard",args:[t]})}debugDrawText(t,e,r){this.drawOps.push({name:"debugDrawText",args:[t,e,r]})}debugDrawWaterMark(t){this.drawOps.push({name:"debugDrawWaterMark",args:[t]})}}function addShadowBounds(t,e){if(!hasOwn(e,"shadowColor"))return t;if(hasOwn(e,"shadowBlur")||hasOwn(e,"shadowOffsetX")||hasOwn(e,"shadowOffsetY")){const{shadowOffsetX:r=0,shadowOffsetY:n=0,shadowBlur:i=0}=e;return Rect.expandToInclude(Rect.shift(Rect.inflate(t,Size$1.fromWH(i/2,i/2)),Point.fromXY(r/2,n/2)),t)}return t}class PictureRecoder{begin(t=Rect.zero){return assert.assert(!this.canvas),this.cullRect=t,this.canvas=new RecorderCanvas,this.canvas}end(){assert.assert(this.canvas),assert.assert(this.cullRect);const{clipBoundses:t,drawBoundses:e,drawOps:r,hasDrawText:n}=this.canvas;if(Rect.isEmpty(this.cullRect)){let r=e.length>0?e[0]:Rect.zero,n=t.length>0?t[0]:Rect.zero,i=1,s=e.length;for(i=1;i<s;i++)r=Rect.expandToInclude(r,e[i]);for(s=t.length,i=1;i<s;i++)n=Rect.expandToInclude(n,t[i]);Rect.isEmpty(n)?this.cullRect=r:Rect.overlaps(r,n)?this.cullRect=Rect.intersect(r,n):this.cullRect=Rect.zero}return Picture.from(r,this.cullRect,n)}}class Image$1 extends NonConstructiable{static fromXYWH(t,e,r,n,i){return{source:t,sx:e,sy:r,width:n,height:i}}static from(t,e,r){if(t instanceof SVGImageElement){if("number"!=typeof e)throw new TypeError("SVG Element requires width in pixels.");if("number"!=typeof r)throw new TypeError("SVG Element requires height in pixels.");return{source:t,width:e,height:r}}return t instanceof VideoFrame?{source:t,width:t.displayWidth,height:t.displayHeight}:{source:t,width:null!=e?e:t.width,height:null!=r?r:t.height}}}function ShelfPack(t,e,r){r=r||{},this.w=t||64,this.h=e||64,this.autoResize=!!r.autoResize,this.shelves=[],this.freebins=[],this.stats={},this.bins={},this.maxId=0}function Shelf(t,e,r){this.x=0,this.y=t,this.w=this.free=e,this.h=r}function Bin(t,e,r,n,i,s,a){this.id=t,this.x=e,this.y=r,this.w=n,this.h=i,this.maxw=s||n,this.maxh=a||i,this.refcount=0}ShelfPack.prototype.pack=function(t,e){t=[].concat(t),e=e||{};for(var r,n,i,s,a=[],o=0;o<t.length;o++)if(r=t[o].w||t[o].width,n=t[o].h||t[o].height,i=t[o].id,r&&n){if(!(s=this.packOne(r,n,i)))continue;e.inPlace&&(t[o].x=s.x,t[o].y=s.y,t[o].id=s.id),a.push(s)}return this.shrink(),a},ShelfPack.prototype.packOne=function(t,e,r){var n,i,s,a,o,u,l,h,c={freebin:-1,shelf:-1,waste:1/0},f=0;if("string"==typeof r||"number"==typeof r){if(n=this.getBin(r))return this.ref(n),n;"number"==typeof r&&(this.maxId=Math.max(r,this.maxId))}else r=++this.maxId;for(a=0;a<this.freebins.length;a++){if(e===(n=this.freebins[a]).maxh&&t===n.maxw)return this.allocFreebin(a,t,e,r);e>n.maxh||t>n.maxw||e<=n.maxh&&t<=n.maxw&&(s=n.maxw*n.maxh-t*e)<c.waste&&(c.waste=s,c.freebin=a)}for(a=0;a<this.shelves.length;a++)if(f+=(i=this.shelves[a]).h,!(t>i.free)){if(e===i.h)return this.allocShelf(a,t,e,r);e>i.h||e<i.h&&(s=(i.h-e)*t)<c.waste&&(c.freebin=-1,c.waste=s,c.shelf=a)}return-1!==c.freebin?this.allocFreebin(c.freebin,t,e,r):-1!==c.shelf?this.allocShelf(c.shelf,t,e,r):e<=this.h-f&&t<=this.w?(i=new Shelf(f,this.w,e),this.allocShelf(this.shelves.push(i)-1,t,e,r)):this.autoResize?(o=u=this.h,((l=h=this.w)<=o||t>l)&&(h=2*Math.max(t,l)),(o<l||e>o)&&(u=2*Math.max(e,o)),this.resize(h,u),this.packOne(t,e,r)):null},ShelfPack.prototype.allocFreebin=function(t,e,r,n){var i=this.freebins.splice(t,1)[0];return i.id=n,i.w=e,i.h=r,i.refcount=0,this.bins[n]=i,this.ref(i),i},ShelfPack.prototype.allocShelf=function(t,e,r,n){var i=this.shelves[t].alloc(e,r,n);return this.bins[n]=i,this.ref(i),i},ShelfPack.prototype.shrink=function(){if(this.shelves.length>0){for(var t=0,e=0,r=0;r<this.shelves.length;r++){var n=this.shelves[r];e+=n.h,t=Math.max(n.w-n.free,t)}this.resize(t,e)}},ShelfPack.prototype.getBin=function(t){return this.bins[t]},ShelfPack.prototype.ref=function(t){if(1==++t.refcount){var e=t.h;this.stats[e]=1+(0|this.stats[e])}return t.refcount},ShelfPack.prototype.unref=function(t){return 0===t.refcount?0:(0==--t.refcount&&(this.stats[t.h]--,delete this.bins[t.id],this.freebins.push(t)),t.refcount)},ShelfPack.prototype.clear=function(){this.shelves=[],this.freebins=[],this.stats={},this.bins={},this.maxId=0},ShelfPack.prototype.resize=function(t,e){this.w=t,this.h=e;for(var r=0;r<this.shelves.length;r++)this.shelves[r].resize(t);return!0},Shelf.prototype.alloc=function(t,e,r){if(t>this.free||e>this.h)return null;var n=this.x;return this.x+=t,this.free-=t,new Bin(r,n,this.y,t,e,t,this.h)},Shelf.prototype.resize=function(t){return this.free+=t-this.w,this.w=t,!0};class DebugFlags{static set(t){const e=DebugFlags.currentFlags;return DebugFlags.paintLayerBounds=!!(t&DebugFlags.LayerBounds),DebugFlags.paintNodeBounds=!!(t&DebugFlags.NodeBounds),DebugFlags.paintNodeId=!!(t&DebugFlags.NodeId),DebugFlags.paintTextLineBounds=!!(t&DebugFlags.TextLineBounds),DebugFlags.paintRasterCacheWaterMark=!!(t&DebugFlags.RasterCacheWaterMark),DebugFlags.paintPathBounds=!!(t&DebugFlags.PathBounds),DebugFlags.currentFlags=t,()=>{DebugFlags.set(e)}}}DebugFlags.LayerBounds=1,DebugFlags.NodeBounds=2,DebugFlags.NodeId=4,DebugFlags.TextLineBounds=8,DebugFlags.RasterCacheWaterMark=16,DebugFlags.PathBounds=32,DebugFlags.currentFlags=0,DebugFlags.paintLayerBounds=!1,DebugFlags.paintNodeBounds=!1,DebugFlags.paintNodeId=!1,DebugFlags.paintTextLineBounds=!1,DebugFlags.paintRasterCacheWaterMark=!1,DebugFlags.paintPathBounds=!1;class SurfaceFrame{constructor(t,e,r){this.canvas=t,this.size=e,this.onSubmit=r,this.submitted=!1}submit(){assert.assert(!this.submitted),this.submitted=!1,this.onSubmit(this.canvas)}}class CanvasSurface{constructor({el:t}={}){this.present=()=>{},this.el=t}acquireFrame(t){this.createOrUpdateEl(t);const e=new SurfaceFrame(this.canvas,t,this.present);return this.prevFrame=e,e}createOrUpdateEl(t){if(this.el){(!this.prevFrame||!Size$1.eq(this.prevFrame.size,t))&&PlatformAdapter.resizeCanvas(this.el,t.width,t.height)}else this.el=PlatformAdapter.createCanvas(t.width,t.height)}get context(){if(!this._context){assert.assert(this.el);const t=this.el.getContext("2d");assert.assert(t),this._context=t}return this._context}get canvas(){return this._canvas||(assert.assert(this.context),this._canvas=new Canvas2DCanvas({context:this.context})),assert.assert(this._canvas),this._canvas}toImage(t,e,r,n){return assert.assert(this.el),assert.assert(this.prevFrame),"number"!=typeof t?Image$1.from(this.el,this.prevFrame.size.width,this.prevFrame.size.height):Image$1.fromXYWH(this.el,t,e,r,n)}}class OffscreenCanvasSurface{constructor(){this.present=()=>{}}acquireFrame(t){this.createOrUpdateEl(t);const e=new SurfaceFrame(this.canvas,t,this.present);return this.prevFrame=e,e}createOrUpdateEl(t){if(this.el){(!this.prevFrame||!Size$1.eq(this.prevFrame.size,t))&&(this.el.width=t.width,this.el.height=t.height)}else this.el=PlatformAdapter.supportOffscreenCanvas?PlatformAdapter.createOffscreenCanvas(t.width,t.height):PlatformAdapter.createCanvas(t.width,t.height)}get context(){if(!this._context){assert.assert(this.el);const t=this.el.getContext("2d");assert.assert(t),this._context=t}return this._context}get canvas(){return this._canvas||(assert.assert(this.context),this._canvas=new Canvas2DCanvas({context:this.context})),assert.assert(this._canvas),this._canvas}toImage(t,e,r,n){return assert.assert(this.el),assert.assert(this.prevFrame),"number"!=typeof t?Image$1.from(this.el,this.prevFrame.size.width,this.prevFrame.size.height):Image$1.fromXYWH(this.el,t,e,r,n)}}class Surface extends NonConstructiable{static makeCanvasSurface(t){return new CanvasSurface(t)}static makeOffscreenCanvasSurface(){return new OffscreenCanvasSurface}}class RasterCacheResult{constructor(t,e,r){this.image=t,this.paintBounds=e,this.surface=r}draw(t,e){t.save();const r=RasterCache.getCacheBounds(this.paintBounds,e);t.resetTransform(),t.drawImage(this.image,r.left,r.top),t.restore()}}class SurfacePool{constructor(t=4){this.capacity=t,this.nodes=[]}take(){return this.nodes.length>0?this.nodes.pop():Surface.makeOffscreenCanvasSurface()}return(t){this.nodes.length<this.capacity&&this.nodes.push(t)}}class RasterCache{constructor(){this.entries=new Map,this.accessThreshold=RasterCache.DEFAULT_ACCESS_THRESHOLD,this.pictureCacheLimitPerFrame=RasterCache.DEFAULT_PICTURE_CACHE_LIMIT_PER_FRAME,this.pictureCachedThisFrame=0}onDeleteEntry(t){var e;(null===(e=t.result)||void 0===e?void 0:e.surface)&&RasterCache.surfacePool.return(t.result.surface)}prepareBeforeFrame(){}sweepAfterFrame(){var t;const e=this.entries[Symbol.iterator]();let r=e.next();for(;!r.done;){const{value:[n,i]}=r;i.usedThisFrame||(this.entries.delete(n),null===(t=this.onDeleteEntry)||void 0===t||t.call(this,i)),i.usedThisFrame=!1,r=e.next()}this.pictureCachedThisFrame=0}getOrCreateRasterCacheEntry(t,e){const r=RasterCache.getCacheKey(t,e);let n=this.entries.get(r);return n||(n={key:r,usedThisFrame:!1,accessCount:0,failed:!1},this.entries.set(r,n),n)}getRasterCacheEntry(t,e){const r=RasterCache.getCacheKey(t,e);return this.entries.get(r)}prepare(t,e,r){if(0===this.accessThreshold)return!1;if(this.pictureCachedThisFrame>=this.pictureCacheLimitPerFrame)return!1;if(r)return!1;if(t.drawOps.length<RasterCache.COMPLEX_PICTURE&&!t.hasDrawText)return!1;const n=this.getOrCreateRasterCacheEntry(t,e);return n.failed||n.accessCount<this.accessThreshold||n.result||(this.updateCacheResult(n,t,e),this.pictureCachedThisFrame++),!1}updateCacheResult(t,e,r){t.result=RasterCache.rasterizePicture(e,r),t.failed=!t.result}static rasterizePicture(t,e){const r=RasterCache.getCacheBounds(t.cullRect,e);if(r.width>RasterCache.DEFAULT_PICTURE_CACHE_LONG_SIDE||r.height>RasterCache.DEFAULT_PICTURE_CACHE_LONG_SIDE||r.width*r.height>RasterCache.DEFAULT_PICTURE_CACHE_AREA)return;const n=RasterCache.surfacePool.take(),i=n.acquireFrame(Size$1.fromWH(r.width,r.height)).canvas;return i.resetTransform(),i.clear(),i.translate(-r.left,-r.top),i.transform(e),i.drawPicture(t),DebugFlags.paintRasterCacheWaterMark&&(i.resetTransform(),i.debugDrawCheckerboard(1)),new RasterCacheResult(n.toImage(),t.cullRect,n)}drawPicture(t,e,r){const n=this.getRasterCacheEntry(t,r);return!!n&&(n.accessCount++,n.usedThisFrame=!0,!!n.result&&(n.result.draw(e,r),!0))}static getCacheBounds(t,e){return Rect.roundOut(Matrix.transformRect(e,t))}static getCacheKey(t,e){return t.id+Matrix.setTranslate(e,0,0).values.toString()}}RasterCache.DEFAULT_ACCESS_THRESHOLD=3,RasterCache.DEFAULT_PICTURE_CACHE_LIMIT_PER_FRAME=1,RasterCache.DEFAULT_PICTURE_CACHE_AREA=1658880,RasterCache.DEFAULT_PICTURE_CACHE_LONG_SIDE=8192,RasterCache.DEFAULT_SURFACE_POOL_CAPACITY=4,RasterCache.COMPLEX_PICTURE=5,RasterCache.surfacePool=new SurfacePool(RasterCache.DEFAULT_SURFACE_POOL_CAPACITY);class Page{constructor(t,e,r,n,i){this.id=t,this.width=e,this.height=r,this.maxWidth=n,this.maxHeight=i,this.pack=new ShelfPack(this.width,this.height),this.surface=Surface.makeOffscreenCanvasSurface()}rasterizePicture(t,e,r){const n=RasterCache.getCacheBounds(e.cullRect,r);if(n.width>this.maxWidth||n.height>this.maxHeight)return;const i=this.pack.packOne(n.width,n.height,t);if(!i)return;const s=this.surface.acquireFrame(Size$1.fromWH(this.width,this.height)).canvas;return s.resetTransform(),s.translate(i.x,i.y),s.translate(-n.left,-n.top),s.transform(r),s.drawPicture(e),DebugFlags.paintRasterCacheWaterMark&&s.debugDrawWaterMark("ADV",i.x,i.y,i.w,i.h),new RasterCacheResult(this.surface.toImage(i.x,i.y,i.w,i.h),e.cullRect)}delete(t){const e=this.pack.getBin(t);return!!e&&(this.pack.unref(e),!0)}}class AdvancedRasterCache extends RasterCache{constructor(){super(...arguments),this.page=new Page(0,AdvancedRasterCache.DEFAULT_PAGE_WIDTH,AdvancedRasterCache.DEFAULT_PAGE_HEIGHT,AdvancedRasterCache.MAX_WIDTH,AdvancedRasterCache.MAX_HEIGHT),this.jobQueue=[]}prepareBeforeFrame(){for(var t;this.jobQueue.length;){const{entry:e,picture:r,matrix:n}=this.jobQueue.shift();e.result=null!==(t=this.page.rasterizePicture(e.key,r,n))&&void 0!==t?t:RasterCache.rasterizePicture(r,n)}}onDeleteEntry(t){this.page.delete(t.key)}updateCacheResult(t,e,r){t.usedThisFrame=!0,this.jobQueue.push({entry:t,picture:e,matrix:r})}}AdvancedRasterCache.DEFAULT_PAGE_WIDTH=4096,AdvancedRasterCache.DEFAULT_PAGE_HEIGHT=4096,AdvancedRasterCache.DEFAULT_MAX_PAGES=1,AdvancedRasterCache.MAX_WIDTH=512,AdvancedRasterCache.MAX_HEIGHT=512;class PrerollContext{constructor(t){this.rasterCache=t}}class PaintContext{constructor(t,e){this.canvas=t,this.rasterCache=e}}class Layer extends AbstractNode{constructor(){super(...arguments),this.paintBounds=Rect.zero}get parent(){return this._parent}redepthChildren(){}removeFromParent(){var t;return null===(t=this.parent)||void 0===t?void 0:t.removeChild(this)}get needsPainting(){return!Rect.isEmpty(this.paintBounds)}}class ContainerLayer extends Layer{get hasChildren(){return void 0!==this.firstChild}attach(t){super.attach(t);let e=this.firstChild;for(;e;)e.attach(t),e=e.nextSibling}detach(){super.detach();let t=this.firstChild;for(;t;)t.detach(),t=t.nextSibling}appendChild(t){var e;assert.assert(t!==this),assert.assert(t!==this.firstChild),assert.assert(t!==this.lastChild),assert.assert(!t.parent),assert.assert(!t.attached),assert.assert(!t.nextSibling),assert.assert(!t.prevSibling),assert.assert((()=>{let e=this;for(;e.parent;)e=e.parent;return assert.assert(e!==t),!0})()),this.adoptChild(t),t.prevSibling=this.lastChild,this.lastChild&&(this.lastChild.nextSibling=t),this.lastChild=t,null!==(e=this.firstChild)&&void 0!==e||(this.firstChild=t),assert.assert(t.attached===this.attached)}removeChild(t){assert.assert(t.parent===this),assert.assert(t.attached===this.attached),assert.assert(this.debugUltimatePrevSiblingOf(t,this.firstChild)),assert.assert(this.debugUltimateNextSiblingOf(t,this.lastChild)),t.prevSibling?t.prevSibling.nextSibling=t.nextSibling:(assert.assert(this.firstChild===t),this.firstChild=t.nextSibling),t.nextSibling?t.nextSibling.prevSibling=t.prevSibling:(assert.assert(this.lastChild===t),this.lastChild=t.prevSibling),assert.assert(!this.firstChild==!this.lastChild,"如果移除了最后一个子节点，则 firstChild 和 lastChild 都为 undefined，否则 firstChild 和 lastChild 都不能为 undefined"),assert.assert(!this.firstChild||this.firstChild.attached===this.attached),assert.assert(!this.lastChild||this.lastChild.attached===this.attached),assert.assert(!this.firstChild||this.debugUltimateNextSiblingOf(this.firstChild,this.lastChild),"firstChild 和 lastChild 不能是循环兄弟节点"),assert.assert(!this.lastChild||this.debugUltimatePrevSiblingOf(this.lastChild,this.firstChild),"lastChild 和 firstChild 不能是循环兄弟节点"),t.prevSibling=void 0,t.nextSibling=void 0,this.dropChild(t),assert.assert(!t.attached)}removeAllChildren(){let t=this.firstChild;for(;t;){const e=t.nextSibling;t.prevSibling=void 0,t.nextSibling=void 0,assert.assert(t.attached===this.attached),this.dropChild(t),t=e}this.firstChild=void 0,this.lastChild=void 0}debugDFSChildren(){if(!this.firstChild)return[];const t=[];let e=this.firstChild;for(;e;)t.push(e),e instanceof ContainerLayer&&t.push(...e.debugDFSChildren()),e=e.nextSibling;return t}debugUltimatePrevSiblingOf(t,e){for(assert.assert(t.attached===this.attached);t.prevSibling;)assert.assert(t.prevSibling!==t),t=t.prevSibling,assert.assert(t.attached===this.attached);return t===e}debugUltimateNextSiblingOf(t,e){for(assert.assert(t.attached===this.attached);t.nextSibling;)assert.assert(t.nextSibling!==t),t=t.nextSibling,assert.assert(t.attached===this.attached);return t===e}preroll(t,e){this.paintBounds=this.prerollChildren(t,e)}prerollChildren(t,e){let r=Rect.zero,n=this.firstChild;for(;n;)n.preroll(t,e),r=Rect.isEmpty(r)?n.paintBounds:Rect.expandToInclude(r,n.paintBounds),n=n.nextSibling;return r}paintChildren(t){assert.assert(this.needsPainting);let e=this.firstChild;for(;e;)e.needsPainting&&e.paint(t),e=e.nextSibling}paint(t){this.paintChildren(t)}}class PictureLayer extends Layer{constructor(t=Point.zero,e=!1){super(),this.offset=t,this.willChange=e}preroll(t,e){assert.assert(this.picture),assert.assert(Point.isZero(this.offset),"暂不支持 PictureLayer.offset"),Point.isZero(this.offset)?this.paintBounds=this.picture.cullRect:this.paintBounds=Rect.shift(this.picture.cullRect,this.offset),t.rasterCache.prepare(this.picture,e,this.willChange),this.matrix=e}paint(t){assert.assert(this.picture),assert.assert(this.needsPainting),assert.assert(this.matrix),t.canvas.save(),assert.assert(Point.isZero(this.offset),"暂不支持 PictureLayer.offset"),t.rasterCache.drawPicture(this.picture,t.canvas,this.matrix)||t.canvas.drawPicture(this.picture),t.canvas.restore()}}class TransformLayer extends ContainerLayer{constructor(t=Matrix.identity){super(),this.transform=t}preroll(t,e){const r=Matrix.mul(e,this.transform),n=this.prerollChildren(t,r);this.paintBounds=Rect.shift(n,Matrix.getTranslate(this.transform))}paint(t){t.canvas.save(),t.canvas.transform(this.transform),this.paintChildren(t),t.canvas.restore()}}class OffsetLayer extends TransformLayer{constructor(t=Point.zero){super(Matrix.fromTranslate(t.x,t.y))}set offset(t){this.transform=Matrix.fromTranslate(t.x,t.y)}get offset(){return Matrix.getTranslate(this.transform)}}class ClipRectLayer extends ContainerLayer{constructor(t){super(),this.clipRect=t}preroll(t,e){const r=this.prerollChildren(t,e);Rect.overlaps(this.clipRect,r)&&(this.paintBounds=Rect.intersect(this.clipRect,r))}paint(t){t.canvas.save(),t.canvas.clipRect(this.clipRect.left,this.clipRect.top,this.clipRect.width,this.clipRect.height),this.paintChildren(t),t.canvas.restore()}}class ClipRRectLayer extends ContainerLayer{constructor(t){super(),this.clipRRect=t}preroll(t,e){const r=this.prerollChildren(t,e);Rect.overlaps(this.clipRRect,r)&&(this.paintBounds=Rect.intersect(this.clipRRect,r))}paint(t){t.canvas.save(),t.canvas.clipRRect(this.clipRRect.left,this.clipRRect.top,this.clipRRect.width,this.clipRRect.height,this.clipRRect.radiusX,this.clipRRect.radiusY),this.paintChildren(t),t.canvas.restore()}}class ClipCircleLayer extends ContainerLayer{constructor(t){super(),this.clipCircle=t}get clipCircle(){return this._clipCircle}set clipCircle(t){this._clipCircle=t,this.clipBounds=Circle.getBounds(this._clipCircle)}preroll(t,e){const r=this.prerollChildren(t,e);Rect.overlaps(this.clipBounds,r)&&(this.paintBounds=Rect.intersect(this.clipBounds,r))}paint(t){t.canvas.save(),t.canvas.clipCircle(this.clipCircle.x,this.clipCircle.y,this.clipCircle.radius),this.paintChildren(t),t.canvas.restore()}}class LayerTree{constructor({rootLayer:t}){this.rootLayer=t}preroll(t){const e=new PrerollContext(t.rasterCache);this.rootLayer.preroll(e,t.surfaceTransform)}paint(t){const e=new PaintContext(t.canvas,t.rasterCache);this.rootLayer.needsPainting&&this.rootLayer.paint(e)}}class CompositorContext{constructor({surfaceTransform:t}){this.rasterCache=new RasterCache,this.surfaceTransform=t}acquireFrame(t){return new CompositorFrame(t,this.rasterCache,this.surfaceTransform)}}class CompositorFrame{constructor(t,e,r){this.canvas=t,this.rasterCache=e,this.surfaceTransform=r}raster(t){t.preroll(this),t.paint(this)}beforeFrame(){this.canvas.clear(),this.rasterCache.prepareBeforeFrame()}endFrame(){this.rasterCache.sweepAfterFrame()}}class Rasterizer{constructor({surface:t}){this.context=new CompositorContext({surfaceTransform:Matrix.identity}),this.surface=t}draw(t,e){const r=this.surface.acquireFrame(e),n=this.context.acquireFrame(r.canvas);n.beforeFrame(),n.raster(t),n.endFrame(),r.submit()}}class UnimplementedError extends Error{constructor(t="Unimplemented"){super(t)}}class UnsupportedError extends Error{constructor(t="Unsupported"){super(t)}}class IllegalStateError extends Error{constructor(t="IllegalState"){super(t)}}class WheelEventSaveTarget{constructor(t){this.original=t,this.offsetX=this.original.offsetX,this.offsetY=this.original.offsetY,this.target=this.original.target,this.currentTarget=this.original.currentTarget,this.relatedTarget=this.original.relatedTarget,this.srcElement=this.original.srcElement}get layerX(){return this.original.layerX}get layerY(){return this.original.layerY}get deltaMode(){return this.original.deltaMode}get deltaX(){return this.original.deltaX}get deltaY(){return this.original.deltaY}get deltaZ(){return this.original.deltaZ}get DOM_DELTA_LINE(){return this.original.DOM_DELTA_LINE}get DOM_DELTA_PAGE(){return this.original.DOM_DELTA_PAGE}get DOM_DELTA_PIXEL(){return this.original.DOM_DELTA_PIXEL}get altKey(){return this.original.altKey}get button(){return this.original.button}get buttons(){return this.original.buttons}get clientX(){return this.original.clientX}get clientY(){return this.original.clientY}get ctrlKey(){return this.original.ctrlKey}get metaKey(){return this.original.metaKey}get movementX(){return this.original.movementX}get movementY(){return this.original.movementY}get pageX(){return this.original.pageX}get pageY(){return this.original.pageY}get screenX(){return this.original.screenX}get screenY(){return this.original.screenY}get shiftKey(){return this.original.shiftKey}get x(){return this.original.x}get y(){return this.original.y}getModifierState(t){return this.original.getModifierState(t)}initMouseEvent(t,e,r,n,i,s,a,o,u,l,h,c,f,d,p){throw new Error("Method not implemented.")}get detail(){return this.original.detail}get view(){return this.original.view}get which(){return this.original.which}initUIEvent(t,e,r,n,i){throw new Error("Method not implemented.")}get bubbles(){return this.original.bubbles}get cancelBubble(){return this.original.cancelBubble}get cancelable(){return this.original.cancelable}get composed(){return this.original.composed}get defaultPrevented(){return this.original.defaultPrevented}get eventPhase(){return this.original.eventPhase}get isTrusted(){return this.original.isTrusted}get returnValue(){return this.original.returnValue}get timeStamp(){return this.original.timeStamp}get type(){return this.original.type}composedPath(){return this.original.composedPath()}initEvent(){throw new Error("Method not implemented.")}preventDefault(){this.original.preventDefault()}stopImmediatePropagation(){this.original.stopImmediatePropagation()}stopPropagation(){this.original.stopPropagation()}get AT_TARGET(){return this.original.AT_TARGET}get BUBBLING_PHASE(){return this.original.BUBBLING_PHASE}get CAPTURING_PHASE(){return this.original.CAPTURING_PHASE}get NONE(){return this.original.NONE}}class PointerEventSaveTarget{constructor(t){this.original=t,this.offsetX=this.original.offsetX,this.offsetY=this.original.offsetY,this.target=this.original.target,this.currentTarget=this.original.currentTarget,this.relatedTarget=this.original.relatedTarget,this.srcElement=this.original.srcElement}get layerX(){return this.original.layerX}get layerY(){return this.original.layerY}get altitudeAngle(){return this.original.altitudeAngle}get azimuthAngle(){return this.original.azimuthAngle}get height(){return this.original.height}get isPrimary(){return this.original.isPrimary}get pointerId(){return this.original.pointerId}get pointerType(){return this.original.pointerType}get pressure(){return this.original.pressure}get tangentialPressure(){return this.original.tangentialPressure}get tiltX(){return this.original.tiltX}get tiltY(){return this.original.tiltY}get twist(){return this.original.twist}get width(){return this.original.width}getCoalescedEvents(){return this.original.getCoalescedEvents()}getPredictedEvents(){return this.original.getPredictedEvents()}get altKey(){return this.original.altKey}get button(){return this.original.button}get buttons(){return this.original.buttons}get clientX(){return this.original.clientX}get clientY(){return this.original.clientY}get ctrlKey(){return this.original.ctrlKey}get metaKey(){return this.original.metaKey}get movementX(){return this.original.movementX}get movementY(){return this.original.movementY}get pageX(){return this.original.pageX}get pageY(){return this.original.pageY}get screenX(){return this.original.screenX}get screenY(){return this.original.screenY}get shiftKey(){return this.original.shiftKey}get x(){return this.original.x}get y(){return this.original.y}getModifierState(t){return this.original.getModifierState(t)}initMouseEvent(t,e,r,n,i,s,a,o,u,l,h,c,f,d,p){throw new Error("Method not implemented.")}get detail(){return this.original.detail}get view(){return this.original.view}get which(){return this.original.which}initUIEvent(t,e,r,n,i){throw new Error("Method not implemented.")}get bubbles(){return this.original.bubbles}get cancelBubble(){return this.original.cancelBubble}get cancelable(){return this.original.cancelable}get composed(){return this.original.composed}get defaultPrevented(){return this.original.defaultPrevented}get eventPhase(){return this.original.eventPhase}get isTrusted(){return this.original.isTrusted}get returnValue(){return this.original.returnValue}get timeStamp(){return this.original.timeStamp}get type(){return this.original.type}composedPath(){return this.original.composedPath()}initEvent(){throw new Error("Method not implemented.")}preventDefault(){this.original.preventDefault()}stopImmediatePropagation(){this.original.stopImmediatePropagation()}stopPropagation(){this.original.stopPropagation()}get AT_TARGET(){return this.original.AT_TARGET}get BUBBLING_PHASE(){return this.original.BUBBLING_PHASE}get CAPTURING_PHASE(){return this.original.CAPTURING_PHASE}get NONE(){return this.original.NONE}}class DOMEventBinding{constructor(){this.pointerEventsBuffer={},this.handleWheelEvent=t=>{var e;t.preventDefault(),this.wheelEvent=DOMEventBinding.isFirefox?new WheelEventSaveTarget(t):t,null===(e=this.onEvents)||void 0===e||e.call(this)}}static get supportsPointerEvents(){return!!self.PointerEvent}get el(){return this._el}set el(t){t!==this._el&&(this._el&&this.removeListeners(),this._el=t,this._el&&this.addListeners())}get bound(){return!!this._el}get document(){var t;return null===(t=this._el)||void 0===t?void 0:t.ownerDocument}flushPointerEvents(){const{pointerEventsBuffer:t}=this;return this.pointerEventsBuffer={},t}flushWheelEvent(){const{wheelEvent:t}=this;return this.wheelEvent=void 0,t}get hasWheelEvent(){return!!this.wheelEvent}removeListeners(){const{_el:t,document:e}=this;assert.assert(t),assert.assert(e),DOMEventBinding.supportsPointerEvents&&(t.style.touchAction="none"),t.removeEventListener("pointermove",this,!0),t.removeEventListener("pointerenter",this,!0),t.removeEventListener("pointerdown",this,!0),self.removeEventListener("pointerup",this,!0),t.removeEventListener("pointerleave",this,!0),t.removeEventListener("wheel",this.handleWheelEvent,{capture:!0})}addListeners(){const{_el:t,document:e}=this;assert.assert(t),assert.assert(e),DOMEventBinding.supportsPointerEvents&&(t.style.touchAction="none"),t.addEventListener("pointermove",this,!0),t.addEventListener("pointerenter",this,!0),t.addEventListener("pointerdown",this,!0),self.addEventListener("pointerup",this,!0),t.addEventListener("pointerleave",this,!0),t.addEventListener("wheel",this.handleWheelEvent,{capture:!0})}handleEvent(t){var e;let{type:r}=t;t.target!==this._el&&(r+="outside"),this.pointerEventsBuffer[t.pointerId]?this.pointerEventsBuffer[t.pointerId][r]=DOMEventBinding.isFirefox?new PointerEventSaveTarget(t):t:this.pointerEventsBuffer[t.pointerId]={[r]:DOMEventBinding.isFirefox?new PointerEventSaveTarget(t):t},null===(e=this.onEvents)||void 0===e||e.call(this)}}DOMEventBinding.isFirefox=void 0!==window.InstallTrigger;class SyntheticEvent{constructor(t,{nativeEvent:e,bubbles:r=!1,cancelable:n=!1,path:i=SyntheticEvent.SHARED_EMPTY_PATH,target:s}){this.type=t,this.target=null,this.currentTarget=null,this.eventPhase=SyntheticEvent.NONE,this._timeStamp=Date.now(),this.preventDefaultFlag=!1,this.stopImmediatePropagationFlag=!1,this.stopPropagationFlag=!1,this.nativeEvent=e,this.bubbles=r,this.cancelable=n,this.path=i,this.target=null!=s?s:null}composedPath(){return this.path}get isTrusted(){var t,e;return null!==(e=null===(t=this.nativeEvent)||void 0===t?void 0:t.isTrusted)&&void 0!==e&&e}get timeStamp(){var t,e;return null!==(e=null===(t=this.nativeEvent)||void 0===t?void 0:t.timeStamp)&&void 0!==e?e:this._timeStamp}isDefaultPrevented(){return this.preventDefaultFlag}preventDefault(){var t;(null===(t=this.nativeEvent)||void 0===t?void 0:t.cancelable)&&this.nativeEvent.preventDefault(),this.cancelable&&(this.preventDefaultFlag=!0)}isImmediatePropagationStopped(){return this.stopImmediatePropagationFlag}stopImmediatePropagation(){this.stopImmediatePropagationFlag=!0}isPropagationStopped(){return this.stopPropagationFlag}stopPropagation(){this.stopPropagationFlag=!0}}SyntheticEvent.NONE=0,SyntheticEvent.CAPTURING_PHASE=1,SyntheticEvent.AT_TARGET=2,SyntheticEvent.BUBBLING_PHASE=3,SyntheticEvent.SHARED_EMPTY_PATH=[];class SyntheticMouseEvent extends SyntheticEvent{constructor(t,e){var r,n,i,s,a,o,u,l,h;super(t,e),this.clientX=null!==(r=e.clientX)&&void 0!==r?r:0,this.clientY=null!==(n=e.clientY)&&void 0!==n?n:0,this.movementX=null!==(i=e.movementX)&&void 0!==i?i:0,this.movementY=null!==(s=e.movementY)&&void 0!==s?s:0,this.relatedTarget=null!==(a=e.relatedTarget)&&void 0!==a?a:null,this.screenX=null!==(o=e.screenX)&&void 0!==o?o:0,this.screenY=null!==(u=e.screenY)&&void 0!==u?u:0,this.offsetX=null!==(l=e.offsetX)&&void 0!==l?l:0,this.offsetY=null!==(h=e.offsetY)&&void 0!==h?h:0}get altKey(){return assert.assert(this.nativeEvent),this.nativeEvent.altKey}get button(){return assert.assert(this.nativeEvent),this.nativeEvent.button}get buttons(){return assert.assert(this.nativeEvent),this.nativeEvent.buttons}get ctrlKey(){return assert.assert(this.nativeEvent),this.nativeEvent.ctrlKey}get metaKey(){return assert.assert(this.nativeEvent),this.nativeEvent.metaKey}get shiftKey(){return assert.assert(this.nativeEvent),this.nativeEvent.shiftKey}getModifierState(t){return assert.assert(this.nativeEvent),this.nativeEvent.getModifierState(t)}get x(){return this.clientX}get y(){return this.clientY}get pageX(){return assert.assert(this.nativeEvent),this.nativeEvent.pageX}get pageY(){return assert.assert(this.nativeEvent),this.nativeEvent.pageY}}class SyntheticPointerEvent extends SyntheticMouseEvent{}class SyntheticWheelEvent extends SyntheticMouseEvent{constructor(t,e){var r,n,i,s;super(t,e),this.deltaMode=null!==(r=e.deltaMode)&&void 0!==r?r:0,this.deltaX=null!==(n=e.deltaX)&&void 0!==n?n:0,this.deltaY=null!==(i=e.deltaY)&&void 0!==i?i:0,this.deltaZ=null!==(s=e.deltaZ)&&void 0!==s?s:0}get DOM_DELTA_LINE(){return WheelEvent.DOM_DELTA_LINE}get DOM_DELTA_PAGE(){return WheelEvent.DOM_DELTA_PAGE}get DOM_DELTA_PIXEL(){return WheelEvent.DOM_DELTA_PIXEL}}var commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function commonjsRequire(t){throw new Error('Could not dynamically require "'+t+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var eventemitter3={exports:{}};!function(t){var e=Object.prototype.hasOwnProperty,r="~";function n(){}function i(t,e,r){this.fn=t,this.context=e,this.once=r||!1}function s(t,e,n,s,a){if("function"!=typeof n)throw new TypeError("The listener must be a function");var o=new i(n,s||t,a),u=r?r+e:e;return t._events[u]?t._events[u].fn?t._events[u]=[t._events[u],o]:t._events[u].push(o):(t._events[u]=o,t._eventsCount++),t}function a(t,e){0==--t._eventsCount?t._events=new n:delete t._events[e]}function o(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(r=!1)),o.prototype.eventNames=function(){var t,n,i=[];if(0===this._eventsCount)return i;for(n in t=this._events)e.call(t,n)&&i.push(r?n.slice(1):n);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(t)):i},o.prototype.listeners=function(t){var e=r?r+t:t,n=this._events[e];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,s=n.length,a=new Array(s);i<s;i++)a[i]=n[i].fn;return a},o.prototype.listenerCount=function(t){var e=r?r+t:t,n=this._events[e];return n?n.fn?1:n.length:0},o.prototype.emit=function(t,e,n,i,s,a){var o=r?r+t:t;if(!this._events[o])return!1;var u,l,h=this._events[o],c=arguments.length;if(h.fn){switch(h.once&&this.removeListener(t,h.fn,void 0,!0),c){case 1:return h.fn.call(h.context),!0;case 2:return h.fn.call(h.context,e),!0;case 3:return h.fn.call(h.context,e,n),!0;case 4:return h.fn.call(h.context,e,n,i),!0;case 5:return h.fn.call(h.context,e,n,i,s),!0;case 6:return h.fn.call(h.context,e,n,i,s,a),!0}for(l=1,u=new Array(c-1);l<c;l++)u[l-1]=arguments[l];h.fn.apply(h.context,u)}else{var f,d=h.length;for(l=0;l<d;l++)switch(h[l].once&&this.removeListener(t,h[l].fn,void 0,!0),c){case 1:h[l].fn.call(h[l].context);break;case 2:h[l].fn.call(h[l].context,e);break;case 3:h[l].fn.call(h[l].context,e,n);break;case 4:h[l].fn.call(h[l].context,e,n,i);break;default:if(!u)for(f=1,u=new Array(c-1);f<c;f++)u[f-1]=arguments[f];h[l].fn.apply(h[l].context,u)}}return!0},o.prototype.on=function(t,e,r){return s(this,t,e,r,!1)},o.prototype.once=function(t,e,r){return s(this,t,e,r,!0)},o.prototype.removeListener=function(t,e,n,i){var s=r?r+t:t;if(!this._events[s])return this;if(!e)return a(this,s),this;var o=this._events[s];if(o.fn)o.fn!==e||i&&!o.once||n&&o.context!==n||a(this,s);else{for(var u=0,l=[],h=o.length;u<h;u++)(o[u].fn!==e||i&&!o[u].once||n&&o[u].context!==n)&&l.push(o[u]);l.length?this._events[s]=1===l.length?l[0]:l:a(this,s)}return this},o.prototype.removeAllListeners=function(t){var e;return t?(e=r?r+t:t,this._events[e]&&a(this,e)):(this._events=new n,this._eventsCount=0),this},o.prototype.off=o.prototype.removeListener,o.prototype.addListener=o.prototype.on,o.prefixed=r,o.EventEmitter=o,t.exports=o}(eventemitter3);var EventEmitter=eventemitter3.exports;class SyntheticEventDispatcher extends EventEmitter{addEventListener(t,e,r){const n="boolean"==typeof r?r:null==r?void 0:r.capture;this.addListener(SyntheticEventDispatcher.getEventKey(t,n),e)}static getEventKey(t,e){return e?`${t}capture`:t}emitEvent(t,e){if(!this._events[t])return;const r=this._events[t];if("fn"in r)r.once&&this.removeListener(t,r.fn,void 0,!0),r.fn.call(this,e);else{const n=r.length;for(let i=0;i<n&&!e.isImmediatePropagationStopped();i++)r[i].once&&this.removeListener(t,r[i].fn,void 0,!0),r[i].fn.call(this,e)}}removeEventListener(t,e,r){const n="boolean"==typeof r?r:null==r?void 0:r.capture;this.removeListener(SyntheticEventDispatcher.getEventKey(t,n),e)}}class PointerState{constructor(){this.position=Point.zero,this.isPointerDown=!1}}class SyntheticEventManager{constructor(){this.primaryPointerState=new PointerState,this.wheelState=new PointerState}get rootNode(){return this._rootNode}set rootNode(t){this._rootNode!==t&&(this._rootNode&&SyntheticEventManager.instances.delete(this._rootNode),this._rootNode=t,this._rootNode&&SyntheticEventManager.instances.set(this._rootNode,this))}flushNativeEvents(){assert.assert(this.binding);const t=this.binding.flushWheelEvent();t?this.handleWheelEvent(t):this.handlePointerEvents(this.binding.flushPointerEvents())}handleWheelEvent(t){const{offsetX:e,offsetY:r}=t,{wheelState:n}=this;n.position=Point.fromXY(e,r),assert.assert(this.rootNode);const i=this.rootNode.hitTestFromRoot(n.position);n.path=i.path.map((t=>t.target)),n.offset=i.path[0].position,assert.assert(n.path),assert.assert(n.offset);const s=new SyntheticWheelEvent("wheel",{nativeEvent:t,bubbles:t.bubbles,cancelable:t.cancelable,path:n.path,target:n.path[0],deltaMode:t.deltaMode,deltaX:t.deltaX,deltaY:t.deltaY,deltaZ:t.deltaZ,offsetX:n.offset.x,offsetY:n.offset.y,screenX:n.position.x,screenY:n.position.y});this.dispatchEvent(s)}handlePointerEvents(t){for(const e in t){const{pointermove:r,pointerdown:n,pointerup:i,pointerleave:s}=t[e],{primaryPointerState:a}=this;if(s){const t=a.path;a.path=void 0;const e={path:t,offset:a.offset,position:a.position};t&&(this.dispatchEvent(this.createSyntheticPointerEvent("pointerout",s,e)),this.dispatchEventAtTarget(this.createSyntheticPointerEvent("pointerleave",s,e)))}if(r){a.position=Point.fromXY(r.offsetX,r.offsetY),assert.assert(this.rootNode);const t=a.path,e=this.rootNode.hitTestFromRoot(a.position);a.path=e.path.map((t=>t.target)),a.offset=e.path[0].position;const n=this.createSyntheticPointerEvent("pointermove",r,a);if(this.dispatchEvent(n),t&&t[0]!==a.path[0]){const e={path:t,offset:a.offset,position:a.position};this.dispatchEvent(this.createSyntheticPointerEvent("pointerout",r,e)),this.dispatchEventAtTarget(this.createSyntheticPointerEvent("pointerleave",r,e)),this.dispatchEvent(this.createSyntheticPointerEvent("pointerover",r,a)),this.dispatchEventAtTarget(this.createSyntheticPointerEvent("pointerenter",r,a))}}if(n){a.isPointerDown=!0,a.position=Point.fromXY(n.offsetX,n.offsetY),assert.assert(this.rootNode);const t=this.rootNode.hitTestFromRoot(a.position);a.path=t.path.map((t=>t.target)),a.offset=t.path[0].position;const e=this.createSyntheticPointerEvent("pointerdown",n,a);this.dispatchEvent(e)}if(i){a.isPointerDown=!1,a.position=Point.fromXY(i.offsetX,i.offsetY),assert.assert(this.rootNode);const t=this.rootNode.hitTestFromRoot(a.position);a.path=t.path.map((t=>t.target)),a.offset=t.path[0].position;const e=this.createSyntheticPointerEvent("pointerup",i,a);this.dispatchEvent(e)}}}dispatchEventAtTarget(t){var e;t.eventPhase=SyntheticEvent.AT_TARGET;const r=t.composedPath()[0];return t.currentTarget=r,null===(e=r.getDispatcher())||void 0===e||e.emitEvent(SyntheticEventDispatcher.getEventKey(t.type),t),!t.isDefaultPrevented()}dispatchEvent(t){var e,r,n;assert.assert(t.target,"event.target 不能是 null");const i=t.composedPath();assert.assert(i[0]===t.target,"event.composedPath()[0] !== event.target");const s=i.length;t.eventPhase=SyntheticEvent.CAPTURING_PHASE;let a=SyntheticEventDispatcher.getEventKey(t.type,!0);for(let r=s-1;r>0&&this.shouldPropagate(t);r--){const n=i[r];t.currentTarget=n,null===(e=n.getDispatcher())||void 0===e||e.emitEvent(a,t)}if(this.shouldPropagate(t)){t.eventPhase=SyntheticEvent.AT_TARGET;const e=i[0];t.currentTarget=e,a=SyntheticEventDispatcher.getEventKey(t.type),null===(r=e.getDispatcher())||void 0===r||r.emitEvent(a,t)}t.eventPhase=SyntheticEvent.BUBBLING_PHASE;for(let e=1;e<s&&this.shouldPropagate(t);e++){const r=i[e];t.currentTarget=r,null===(n=r.getDispatcher())||void 0===n||n.emitEvent(a,t)}return t.currentTarget=null,!t.isDefaultPrevented()}shouldPropagate(t){return!(t.isPropagationStopped()||t.isImmediatePropagationStopped())}createSyntheticPointerEvent(t,e,r){assert.assert(r.path),assert.assert(r.offset);return new SyntheticPointerEvent(t,{nativeEvent:e,bubbles:e.bubbles,cancelable:e.cancelable,path:r.path,target:r.path[0],clientX:e.clientX,clientY:e.clientY,movementX:e.movementX,movementY:e.movementY,relatedTarget:null,offsetX:r.offset.x,offsetY:r.offset.y,screenX:r.position.x,screenY:r.position.y})}static findInstance(t){return SyntheticEventManager.instances.get(t)}}SyntheticEventManager.instances=new WeakMap;class BoxShadow extends NonConstructiable{static fromCss(t){const e=t.trim(),r=offsetsAndBlurPattern.exec(e)||[];return{color:e.replace(offsetsAndBlurPattern,"").trim()||"rgb(0,0,0)",offsetX:parseFloat(r[1])||0,offsetY:parseFloat(r[2])||0,blur:parseFloat(r[3])||0}}static applyToPaint(t,e){e.shadowBlur=t.blur,e.shadowColor=t.color,e.shadowOffsetX=t.offsetX,e.shadowOffsetY=t.offsetY}}const offsetsAndBlurPattern=/(?:\s|^)(-?\d+(?:\.\d*)?(?:px)?(?:\s?|$))?(-?\d+(?:\.\d*)?(?:px)?(?:\s?|$))?(\d+(?:\.\d*)?(?:px)?)?(?:\s?|$)(?:$|\s)/;class BoxDecorator{paintBackground(t,e,r){if("backgroundColor"in this||"boxShadow"in this){const n={style:exports.PaintStyle.fill,color:this.backgroundColor,shader:this.backgroundImage};this.boxShadow&&BoxShadow.applyToPaint(this.boxShadow,n),hasOwn(this,"borderRadius")&&this.borderRadius>0?t.canvas.drawRRect(e.x,e.y,r.width,r.height,this.borderRadius,this.borderRadius,n):t.canvas.drawRect(e.x,e.y,r.width,r.height,n)}}paintBorder(t,e,r){if(hasOwn(this,"borderWidth")&&this.borderWidth>0&&(hasOwn(this,"borderColor")||hasOwn(this,"borderImage"))){const n={style:exports.PaintStyle.stroke,color:this.borderColor,shader:this.borderImage,strokeWidth:this.borderWidth};hasOwn(this,"borderRadius")&&this.borderRadius>0?t.canvas.drawRRect(e.x,e.y,r.width,r.height,this.borderRadius,this.borderRadius,n):t.canvas.drawRect(e.x,e.y,r.width,r.height,n)}}get hasBorderRadius(){return void 0!==this.borderRadius&&this.borderRadius>0}clipBorderRadiusAndPaint(t,e,r,n,i,s){void 0!==this.borderRadius&&this.borderRadius>0?t.pushClipRRect(e,r,RRect.fromLTWHXY(0,0,n.width,n.height,this.borderRadius,this.borderRadius),i.bind(s)):i.call(s,t,r)}}class HitTestEntry{constructor(t,e){this.target=t,this.position=e}}class OffsetTransformPart{constructor(t){this.offset=t}multiply(t){return Matrix.leftTranslate(this.offset,t)}}class HitTestResult{constructor(){this.path=[],this._transforms=[Matrix.identity],this._localTransforms=[]}globalizeTransforms(){if(0===this._localTransforms.length)return;let t=this._transforms[this._transforms.length-1];for(const e of this._localTransforms)t=e.multiply(t),this._transforms.push(t);this._localTransforms.length=0}get lastTransform(){return this.globalizeTransforms(),assert.assert(0===this._localTransforms.length),this._transforms[this._transforms.length-1]}add(t){assert.assert(!t._transform),t._transform=this.lastTransform,this.path.push(t)}pushOffset(t){this._localTransforms.push(new OffsetTransformPart(t))}popTransform(){this._localTransforms.length>0?this._localTransforms.pop():this._transforms.pop(),assert.assert(this._transforms.length>0)}addWithPaintOffset(t,e,r){const n=Point.invert(t),i=Point.add(e,n);this.pushOffset(n);const s=r(this,i);return this.popTransform(),s}}class PaintingContext{static repaintCompositedChild(t,e=!1){assert.assert(t._paintDirty,"子节点的 paintDirty 不为 true"),PaintingContext._repaintCompositedChild(t,e)}static _repaintCompositedChild(t,e=!1){assert.assert(t.repaintBoundary,"子节点不是 repaintBoundary");let r=t._layer;r?(assert.assert(e||r.attached),r.removeAllChildren()):(assert.assert(e),t._layer=r=new OffsetLayer),assert.assert(r===t._layer),assert.assert(t._layer instanceof TransformLayer);const n=new PaintingContext(t._layer,t.paintBounds);t.paintWithContext(n,Point.zero),assert.assert(r===t._layer),n.stopRecordingIfNeeded()}constructor(t,e){this.containerLayer=t,this.estimatedBounds=e}paintChild(t,e){t.repaintBoundary?(this.stopRecordingIfNeeded(),this.compositeChild(t,e)):t.paintWithContext(this,e)}compositeChild(t,e){assert.assert(!this.isRecording),assert.assert(t.repaintBoundary),assert.assert(!this._canvas),t._paintDirty&&PaintingContext.repaintCompositedChild(t,!0),assert.assert(t._layer instanceof OffsetLayer),t._layer.offset=e,this.appendLayer(t._layer)}appendLayer(t){assert.assert(!this.isRecording),t.removeFromParent(),this.containerLayer.appendChild(t)}get canvas(){return this._canvas||this.startRecording(),this._canvas}get isRecording(){const t=!!this._canvas;return assert.assert((()=>{t?(assert.assert(this.pictureLayer),assert.assert(this.recorder),assert.assert(this._canvas)):(assert.assert(!this.pictureLayer),assert.assert(!this.recorder),assert.assert(!this._canvas))})),t}startRecording(){assert.assert(!this.isRecording),this.pictureLayer=new PictureLayer,this.recorder=new PictureRecoder,this._canvas=this.recorder.begin(),this.containerLayer.appendChild(this.pictureLayer)}stopRecordingIfNeeded(){if(!this.isRecording)return;const t=this.recorder.end();assert.assert((()=>{if(DebugFlags.paintLayerBounds){const e={style:exports.PaintStyle.stroke,strokeWidth:1,color:"#FF9800"},r=Rect.isEmpty(this.estimatedBounds)?t.cullRect:this.estimatedBounds;this.canvas.drawRect(r.left,r.top,r.width,r.height,e)}})),this.pictureLayer.picture=t,this.pictureLayer=void 0,this.recorder=void 0,this._canvas=void 0}pushLayer(t,e,r,n){t.hasChildren&&t.removeAllChildren(),this.stopRecordingIfNeeded(),this.appendLayer(t);const i=this.createChildContext(t,null!=n?n:this.estimatedBounds);e(i,r),i.stopRecordingIfNeeded()}createChildContext(t,e){return new PaintingContext(t,e)}pushClipRect(t,e,r,n,i){const s=Rect.shift(r,e);if(t){const t=null!=i?i:new ClipRectLayer(s);return t.clipRect=s,this.pushLayer(t,n,e,s),t}return this.clipRectAndPaint(s,(()=>n(this,e))),null}clipRectAndPaint(t,e){this.canvas.save(),this.canvas.clipRect(t.left,t.top,t.width,t.height),e(),this.canvas.restore()}pushClipRRect(t,e,r,n,i){const s=RRect.shift(r,e);if(t){const t=null!=i?i:new ClipRRectLayer(s);return t.clipRRect=s,this.pushLayer(t,n,e,s),t}return this.clipRRectAndPaint(s,(()=>n(this,e))),null}clipRRectAndPaint(t,e){this.canvas.save(),this.canvas.clipRRect(t.left,t.top,t.width,t.height,t.radiusX,t.radiusY),e(),this.canvas.restore()}setWillChange(){this.pictureLayer&&(this.pictureLayer.willChange=!0)}}__decorate([Log({disabled:!0})],PaintingContext,"repaintCompositedChild",null);class RenderPipeline{constructor(t){this.onRequestVisualUpdate=t,this.paintDirtyObjects=[],this.needsCompositingDirtyObjects=[],this.layoutDirtyObjects=[],this.enterFrameObjects=[]}get rootNode(){return this._rootNode}set rootNode(t){var e,r;t!==this._rootNode&&(null===(e=this._rootNode)||void 0===e||e.detach(),this._rootNode=t,null===(r=this._rootNode)||void 0===r||r.attach(this))}get debugPaintDirtyObjects(){return this.paintDirtyObjects}get debugNeedsCompositingDirtyObjects(){return this.needsCompositingDirtyObjects}get debugLayoutDirtyObjects(){return this.layoutDirtyObjects}addEnterFrame(t){-1===this.enterFrameObjects.indexOf(t)&&this.enterFrameObjects.push(t)}addLayoutDirty(t){-1===this.layoutDirtyObjects.indexOf(t)&&this.layoutDirtyObjects.push(t)}addNeedsCompositingDirty(t){-1===this.needsCompositingDirtyObjects.indexOf(t)&&this.needsCompositingDirtyObjects.push(t)}addPaintDirty(t){-1===this.paintDirtyObjects.indexOf(t)&&this.paintDirtyObjects.push(t)}requestVisualUpdate(){this.onRequestVisualUpdate()}flushEnterFrame(){const t=this.enterFrameObjects;this.enterFrameObjects=[];const e=t.length;for(let r=0;r<e;r++){t[r].enterFrame()}}flushLayout(){for(;this.layoutDirtyObjects.length>0;){const t=this.layoutDirtyObjects;this.layoutDirtyObjects=[],t.sort(((t,e)=>t.depth-e.depth));const e=t.length;for(let r=0;r<e;r++){const e=t[r];e._layoutDirty&&e.owner===this&&e.layoutAsBoundary()}}}flushNeedsCompositing(){this.needsCompositingDirtyObjects.sort(((t,e)=>t.depth-e.depth));const t=this.needsCompositingDirtyObjects.length;for(let e=0;e<t;e++){const t=this.needsCompositingDirtyObjects[e];t._needsCompositingDirty&&t.owner===this&&t.updateNeedsCompositing()}this.needsCompositingDirtyObjects=[]}flushPaint(){const t=this.paintDirtyObjects;this.paintDirtyObjects=[],t.sort(((t,e)=>e.depth-t.depth));const e=t.length;for(let r=0;r<e;r++){const e=t[r];e._paintDirty&&e.owner===this&&(e._layer.attached?PaintingContext.repaintCompositedChild(e):e.skipPaint())}assert.assert(0===this.paintDirtyObjects.length,"flushPaint 结束后仍有节点没有被绘制")}}__decorate([Log({disabled:!0})],RenderPipeline.prototype,"addLayoutDirty",null),__decorate([Log({disabled:!0})],RenderPipeline.prototype,"addPaintDirty",null);const EventKeys=["onPointerMove","onPointerOver","onPointerEnter","onPointerDown","onPointerUp","onPointerOut","onPointerLeave","onWheel"];class EventHandlers{static mixin(t){const e={};EventKeys.forEach((t=>{const r=`_${t}`,n=t.substr(2).toLowerCase();e[t]={get(){return this[r]},set(t){this[r]&&this.removeEventListener(n,this[r]),this[r]=t,this[r]&&this.addEventListener(n,this[r])}}})),EventKeys.forEach((t=>{const r=`_${t}Capture`,n=t.substr(2).toLowerCase();e[`${t}Capture`]={get(){return this[r]},set(t){this[r]&&this.removeEventListener(n,this[r],{capture:!0}),this[r]=t,this[r]&&this.addEventListener(n,this[r],{capture:!0})}}})),Object.defineProperties(t.prototype,e)}}class StyleMap extends EventEmitter{constructor(){return super(),Object.defineProperties(this,{_events:{enumerable:!1,configurable:!0},_eventsCount:{enumerable:!1,configurable:!0}}),new Proxy(this,{set:(t,e,r)=>(t[e]!==r&&(t[e]=r,t.emit(e,r)),!0),deleteProperty:(t,e)=>(delete t[e],t.emit(e,void 0),!0)})}has(t){return hasOwn(this,t)}}var CONSTANTS$1={ALIGN_COUNT:8,ALIGN_AUTO:0,ALIGN_FLEX_START:1,ALIGN_CENTER:2,ALIGN_FLEX_END:3,ALIGN_STRETCH:4,ALIGN_BASELINE:5,ALIGN_SPACE_BETWEEN:6,ALIGN_SPACE_AROUND:7,DIMENSION_COUNT:2,DIMENSION_WIDTH:0,DIMENSION_HEIGHT:1,DIRECTION_COUNT:3,DIRECTION_INHERIT:0,DIRECTION_LTR:1,DIRECTION_RTL:2,DISPLAY_COUNT:2,DISPLAY_FLEX:0,DISPLAY_NONE:1,EDGE_COUNT:9,EDGE_LEFT:0,EDGE_TOP:1,EDGE_RIGHT:2,EDGE_BOTTOM:3,EDGE_START:4,EDGE_END:5,EDGE_HORIZONTAL:6,EDGE_VERTICAL:7,EDGE_ALL:8,EXPERIMENTAL_FEATURE_COUNT:1,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:0,FLEX_DIRECTION_COUNT:4,FLEX_DIRECTION_COLUMN:0,FLEX_DIRECTION_COLUMN_REVERSE:1,FLEX_DIRECTION_ROW:2,FLEX_DIRECTION_ROW_REVERSE:3,JUSTIFY_COUNT:6,JUSTIFY_FLEX_START:0,JUSTIFY_CENTER:1,JUSTIFY_FLEX_END:2,JUSTIFY_SPACE_BETWEEN:3,JUSTIFY_SPACE_AROUND:4,JUSTIFY_SPACE_EVENLY:5,LOG_LEVEL_COUNT:6,LOG_LEVEL_ERROR:0,LOG_LEVEL_WARN:1,LOG_LEVEL_INFO:2,LOG_LEVEL_DEBUG:3,LOG_LEVEL_VERBOSE:4,LOG_LEVEL_FATAL:5,MEASURE_MODE_COUNT:3,MEASURE_MODE_UNDEFINED:0,MEASURE_MODE_EXACTLY:1,MEASURE_MODE_AT_MOST:2,NODE_TYPE_COUNT:2,NODE_TYPE_DEFAULT:0,NODE_TYPE_TEXT:1,OVERFLOW_COUNT:3,OVERFLOW_VISIBLE:0,OVERFLOW_HIDDEN:1,OVERFLOW_SCROLL:2,POSITION_TYPE_COUNT:2,POSITION_TYPE_RELATIVE:0,POSITION_TYPE_ABSOLUTE:1,PRINT_OPTIONS_COUNT:3,PRINT_OPTIONS_LAYOUT:1,PRINT_OPTIONS_STYLE:2,PRINT_OPTIONS_CHILDREN:4,UNIT_COUNT:4,UNIT_UNDEFINED:0,UNIT_POINT:1,UNIT_PERCENT:2,UNIT_AUTO:3,WRAP_COUNT:3,WRAP_NO_WRAP:0,WRAP_WRAP:1,WRAP_WRAP_REVERSE:2},YGEnums=CONSTANTS$1,_extends=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},_createClass=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}();function _defineProperty(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var CONSTANTS=YGEnums,Layout=function(){function t(e,r,n,i,s,a){_classCallCheck(this,t),this.left=e,this.right=r,this.top=n,this.bottom=i,this.width=s,this.height=a}return _createClass(t,[{key:"fromJS",value:function(t){t(this.left,this.right,this.top,this.bottom,this.width,this.height)}},{key:"toString",value:function(){return"<Layout#"+this.left+":"+this.right+";"+this.top+":"+this.bottom+";"+this.width+":"+this.height+">"}}]),t}(),Size=function(){function t(e,r){_classCallCheck(this,t),this.width=e,this.height=r}return _createClass(t,null,[{key:"fromJS",value:function(e){return new t(e.width,e.height)}}]),_createClass(t,[{key:"fromJS",value:function(t){t(this.width,this.height)}},{key:"toString",value:function(){return"<Size#"+this.width+"x"+this.height+">"}}]),t}(),Value=function(){function t(e,r){_classCallCheck(this,t),this.unit=e,this.value=r}return _createClass(t,[{key:"fromJS",value:function(t){t(this.unit,this.value)}},{key:"toString",value:function(){switch(this.unit){case CONSTANTS.UNIT_POINT:return String(this.value);case CONSTANTS.UNIT_PERCENT:return this.value+"%";case CONSTANTS.UNIT_AUTO:return"auto";default:return this.value+"?"}}},{key:"valueOf",value:function(){return this.value}}]),t}(),entryCommon=function(t,e){function r(t,e,r){var n=t[e];t[e]=function(){for(var t=arguments.length,e=Array(t),i=0;i<t;i++)e[i]=arguments[i];return r.call.apply(r,[this,n].concat(e))}}for(var n=["setPosition","setMargin","setFlexBasis","setWidth","setHeight","setMinWidth","setMinHeight","setMaxWidth","setMaxHeight","setPadding"],i=function(){var t,i=n[s],a=(_defineProperty(t={},CONSTANTS.UNIT_POINT,e.Node.prototype[i]),_defineProperty(t,CONSTANTS.UNIT_PERCENT,e.Node.prototype[i+"Percent"]),_defineProperty(t,CONSTANTS.UNIT_AUTO,e.Node.prototype[i+"Auto"]),t);r(e.Node.prototype,i,(function(t){for(var e=arguments.length,r=Array(e>1?e-1:0),n=1;n<e;n++)r[n-1]=arguments[n];var s,o,u=r.pop(),l=void 0,h=void 0;if("auto"===u)l=CONSTANTS.UNIT_AUTO,h=void 0;else if(u instanceof Value)l=u.unit,h=u.valueOf();else if(l="string"==typeof u&&u.endsWith("%")?CONSTANTS.UNIT_PERCENT:CONSTANTS.UNIT_POINT,h=parseFloat(u),!Number.isNaN(u)&&Number.isNaN(h))throw new Error("Invalid value "+u+" for "+i);if(!a[l])throw new Error('Failed to execute "'+i+"\": Unsupported unit '"+u+"'");return void 0!==h?(s=a[l]).call.apply(s,[this].concat(r,[h])):(o=a[l]).call.apply(o,[this].concat(r))}))},s=0;s<n.length;s++)i();return r(e.Config.prototype,"free",(function(){e.Config.destroy(this)})),r(e.Node,"create",(function(t,r){return r?e.Node.createWithConfig(r):e.Node.createDefault()})),r(e.Node.prototype,"free",(function(){e.Node.destroy(this)})),r(e.Node.prototype,"freeRecursive",(function(){for(var t=0,e=this.getChildCount();t<e;++t)this.getChild(0).freeRecursive();this.free()})),r(e.Node.prototype,"setMeasureFunc",(function(t,e){return e?t.call(this,(function(){return Size.fromJS(e.apply(void 0,arguments))})):this.unsetMeasureFunc()})),r(e.Node.prototype,"calculateLayout",(function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:NaN,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:NaN,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:CONSTANTS.DIRECTION_LTR;return t.call(this,e,r,n)})),_extends({Config:e.Config,Node:e.Node,Layout:t("Layout",Layout),Size:t("Size",Size),Value:t("Value",Value),getInstanceCount:function(){return e.getInstanceCount.apply(e,arguments)}},CONSTANTS)},nbind$1={exports:{}};(function(module){var root,wrapper;root=commonjsGlobal,wrapper=function(Module,cb){var Module;"function"==typeof Module&&(cb=Module,Module={}),Module.onRuntimeInitialized=function(t,e){return function(){t&&t.apply(this,arguments);try{Module.ccall("nbind_init")}catch(t){return void e(t)}e(null,{bind:Module._nbind_value,reflect:Module.NBind.reflect,queryType:Module.NBind.queryType,toggleLightGC:Module.toggleLightGC,lib:Module})}}(Module.onRuntimeInitialized,cb),Module||(Module=(void 0!==Module?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1,nodeFS,nodePath;if(Module.ENVIRONMENT)if("WEB"===Module.ENVIRONMENT)ENVIRONMENT_IS_WEB=!0;else if("WORKER"===Module.ENVIRONMENT)ENVIRONMENT_IS_WORKER=!0;else if("NODE"===Module.ENVIRONMENT)ENVIRONMENT_IS_NODE=!0;else{if("SHELL"!==Module.ENVIRONMENT)throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");ENVIRONMENT_IS_SHELL=!0}else ENVIRONMENT_IS_WEB="object"==typeof window,ENVIRONMENT_IS_WORKER="function"==typeof importScripts,ENVIRONMENT_IS_NODE="object"==typeof process&&"function"==typeof commonjsRequire&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE)Module.print||(Module.print=console.log),Module.printErr||(Module.printErr=console.warn),Module.read=function(t,e){nodeFS||(nodeFS={}("")),nodePath||(nodePath={}("")),t=nodePath.normalize(t);var r=nodeFS.readFileSync(t);return e?r:r.toString()},Module.readBinary=function(t){var e=Module.read(t,!0);return e.buffer||(e=new Uint8Array(e)),assert(e.buffer),e},Module.load=function(t){globalEval(read(t))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),module.exports=Module,process.on("uncaughtException",(function(t){if(!(t instanceof ExitStatus))throw t})),Module.inspect=function(){return"[Emscripten Module object]"};else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),"undefined"!=typeof printErr&&(Module.printErr=printErr),"undefined"!=typeof read?Module.read=read:Module.read=function(){throw"no read() available"},Module.readBinary=function(t){if("function"==typeof readbuffer)return new Uint8Array(readbuffer(t));var e=read(t,"binary");return assert("object"==typeof e),e},"undefined"!=typeof scriptArgs?Module.arguments=scriptArgs:void 0!==arguments&&(Module.arguments=arguments),"function"==typeof quit&&(Module.quit=function(t,e){quit(t)});else{if(!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER)throw"Unknown runtime environment. Where are we?";if(Module.read=function(t){var e=new XMLHttpRequest;return e.open("GET",t,!1),e.send(null),e.responseText},ENVIRONMENT_IS_WORKER&&(Module.readBinary=function(t){var e=new XMLHttpRequest;return e.open("GET",t,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}),Module.readAsync=function(t,e,r){var n=new XMLHttpRequest;n.open("GET",t,!0),n.responseType="arraybuffer",n.onload=function(){200==n.status||0==n.status&&n.response?e(n.response):r()},n.onerror=r,n.send(null)},void 0!==arguments&&(Module.arguments=arguments),"undefined"!=typeof console)Module.print||(Module.print=function(t){}),Module.printErr||(Module.printErr=function(t){});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&"undefined"!=typeof dump?function(t){dump(t)}:function(t){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),void 0===Module.setWindowTitle&&(Module.setWindowTitle=function(t){document.title=t})}function globalEval(t){eval.call(null,t)}for(var key in!Module.load&&Module.read&&(Module.load=function(t){globalEval(Module.read(t))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.quit||(Module.quit=function(t,e){throw e}),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[],moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=void 0;var Runtime={setTempRet0:function(t){return tempRet0=t,t},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(t){STACKTOP=t},getNativeTypeSize:function(t){switch(t){case"i1":case"i8":return 1;case"i16":return 2;case"i32":case"float":return 4;case"i64":case"double":return 8;default:if("*"===t[t.length-1])return Runtime.QUANTUM_SIZE;if("i"===t[0]){var e=parseInt(t.substr(1));return assert(e%8==0),e/8}return 0}},getNativeFieldSize:function(t){return Math.max(Runtime.getNativeTypeSize(t),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(t,e){return"double"===e||"i64"===e?7&t&&(assert(4==(7&t)),t+=4):assert(!(3&t)),t},getAlignSize:function(t,e,r){return r||"i64"!=t&&"double"!=t?t?Math.min(e||(t?Runtime.getNativeFieldSize(t):0),Runtime.QUANTUM_SIZE):Math.min(e,8):8},dynCall:function(t,e,r){return r&&r.length?Module["dynCall_"+t].apply(null,[e].concat(r)):Module["dynCall_"+t].call(null,e)},functionPointers:[],addFunction:function(t){for(var e=0;e<Runtime.functionPointers.length;e++)if(!Runtime.functionPointers[e])return Runtime.functionPointers[e]=t,2*(1+e);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."},removeFunction:function(t){Runtime.functionPointers[(t-2)/2]=null},warnOnce:function(t){Runtime.warnOnce.shown||(Runtime.warnOnce.shown={}),Runtime.warnOnce.shown[t]||(Runtime.warnOnce.shown[t]=1,Module.printErr(t))},funcWrappers:{},getFuncWrapper:function(t,e){if(t){assert(e),Runtime.funcWrappers[e]||(Runtime.funcWrappers[e]={});var r=Runtime.funcWrappers[e];return r[t]||(1===e.length?r[t]=function(){return Runtime.dynCall(e,t)}:2===e.length?r[t]=function(r){return Runtime.dynCall(e,t,[r])}:r[t]=function(){return Runtime.dynCall(e,t,Array.prototype.slice.call(arguments))}),r[t]}},getCompilerSetting:function(t){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"},stackAlloc:function(t){var e=STACKTOP;return STACKTOP=15+(STACKTOP=STACKTOP+t|0)&-16,e},staticAlloc:function(t){var e=STATICTOP;return STATICTOP=15+(STATICTOP=STATICTOP+t|0)&-16,e},dynamicAlloc:function(t){var e=HEAP32[DYNAMICTOP_PTR>>2],r=e+t+15&-16;return HEAP32[DYNAMICTOP_PTR>>2]=r,r>=TOTAL_MEMORY&&!enlargeMemory()?(HEAP32[DYNAMICTOP_PTR>>2]=e,0):e},alignMemory:function(t,e){return t=Math.ceil(t/(e||16))*(e||16)},makeBigInt:function(t,e,r){return r?+(t>>>0)+4294967296*+(e>>>0):+(t>>>0)+4294967296*+(0|e)},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var ABORT=0,cwrap,ccall;function assert(t,e){t||abort("Assertion failed: "+e)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(t){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}function setValue(t,e,r,n){switch("*"===(r=r||"i8").charAt(r.length-1)&&(r="i32"),r){case"i1":case"i8":HEAP8[0|t]=e;break;case"i16":HEAP16[t>>1]=e;break;case"i32":HEAP32[t>>2]=e;break;case"i64":tempI64=[e>>>0,(tempDouble=e,+Math_abs(tempDouble)>=1?tempDouble>0?(0|Math_min(+Math_floor(tempDouble/4294967296),4294967295))>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[t>>2]=tempI64[0],HEAP32[t+4>>2]=tempI64[1];break;case"float":HEAPF32[t>>2]=e;break;case"double":HEAPF64[t>>3]=e;break;default:abort("invalid type for setValue: "+r)}}function getValue(t,e,r){switch("*"===(e=e||"i8").charAt(e.length-1)&&(e="i32"),e){case"i1":case"i8":return HEAP8[0|t];case"i16":return HEAP16[t>>1];case"i32":case"i64":return HEAP32[t>>2];case"float":return HEAPF32[t>>2];case"double":return HEAPF64[t>>3];default:abort("invalid type for setValue: "+e)}return null}(function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(t){var e=Runtime.stackAlloc(t.length);return writeArrayToMemory(t,e),e},stringToC:function(t){var e=0;if(null!=t&&0!==t){var r=1+(t.length<<2);stringToUTF8(t,e=Runtime.stackAlloc(r),r)}return e}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(t,e,r,n,i){var s=getCFunc(t),a=[],o=0;if(n)for(var u=0;u<n.length;u++){var l=toC[r[u]];l?(0===o&&(o=Runtime.stackSave()),a[u]=l(n[u])):a[u]=n[u]}var h=s.apply(null,a);if("string"===e&&(h=Pointer_stringify(h)),0!==o){if(i&&i.async)return void EmterpreterAsync.asyncFinalizers.push((function(){Runtime.stackRestore(o)}));Runtime.stackRestore(o)}return h};var sourceRegex=/^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/;function parseJSFunc(t){var e=t.toString().match(sourceRegex).slice(1);return{arguments:e[0],body:e[1],returnValue:e[2]}}var JSsource=null;function ensureJSsource(){if(!JSsource)for(var t in JSsource={},JSfuncs)JSfuncs.hasOwnProperty(t)&&(JSsource[t]=parseJSFunc(JSfuncs[t]))}cwrap=function cwrap(ident,returnType,argTypes){argTypes=argTypes||[];var cfunc=getCFunc(ident),numericArgs=argTypes.every((function(t){return"number"===t})),numericRet="string"!==returnType;if(numericRet&&numericArgs)return cfunc;var argNames=argTypes.map((function(t,e){return"$"+e})),funcstr="(function("+argNames.join(",")+") {",nargs=argTypes.length;if(!numericArgs){ensureJSsource(),funcstr+="var stack = "+JSsource.stackSave.body+";";for(var i=0;i<nargs;i++){var arg=argNames[i],type=argTypes[i];if("number"!==type){var convertCode=JSsource[type+"ToC"];funcstr+="var "+convertCode.arguments+" = "+arg+";",funcstr+=convertCode.body+";",funcstr+=arg+"=("+convertCode.returnValue+");"}}}var cfuncname=parseJSFunc((function(){return cfunc})).returnValue;if(funcstr+="var ret = "+cfuncname+"("+argNames.join(",")+");",!numericRet){var strgfy=parseJSFunc((function(){return Pointer_stringify})).returnValue;funcstr+="ret = "+strgfy+"(ret);"}return numericArgs||(ensureJSsource(),funcstr+=JSsource.stackRestore.body.replace("()","(stack)")+";"),funcstr+="return ret})",eval(funcstr)}})(),Module.ccall=ccall,Module.cwrap=cwrap,Module.setValue=setValue,Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;function allocate(t,e,r,n){var i,s;"number"==typeof t?(i=!0,s=t):(i=!1,s=t.length);var a,o="string"==typeof e?e:null;if(a=r==ALLOC_NONE?n:["function"==typeof _malloc?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][void 0===r?ALLOC_STATIC:r](Math.max(s,o?1:e.length)),i){var u;for(n=a,assert(!(3&a)),u=a+(-4&s);n<u;n+=4)HEAP32[n>>2]=0;for(u=a+s;n<u;)HEAP8[0|n++]=0;return a}if("i8"===o)return t.subarray||t.slice?HEAPU8.set(t,a):HEAPU8.set(new Uint8Array(t),a),a;for(var l,h,c,f=0;f<s;){var d=t[f];"function"==typeof d&&(d=Runtime.getFunctionIndex(d)),0!==(l=o||e[f])?("i64"==l&&(l="i32"),setValue(a+f,d,l),c!==l&&(h=Runtime.getNativeTypeSize(l),c=l),f+=h):f++}return a}function getMemory(t){return staticSealed?runtimeInitialized?_malloc(t):Runtime.dynamicAlloc(t):Runtime.staticAlloc(t)}function Pointer_stringify(t,e){if(0===e||!t)return"";for(var r,n=0,i=0;n|=r=HEAPU8[t+i|0],(0!=r||e)&&(i++,!e||i!=e););e||(e=i);var s="";if(n<128){for(var a,o=1024;e>0;)a=String.fromCharCode.apply(String,HEAPU8.subarray(t,t+Math.min(e,o))),s=s?s+a:a,t+=o,e-=o;return s}return Module.UTF8ToString(t)}function AsciiToString(t){for(var e="";;){var r=HEAP8[0|t++];if(!r)return e;e+=String.fromCharCode(r)}}function stringToAscii(t,e){return writeAsciiToMemory(t,e,!1)}Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE,Module.allocate=allocate,Module.getMemory=getMemory,Module.Pointer_stringify=Pointer_stringify,Module.AsciiToString=AsciiToString,Module.stringToAscii=stringToAscii;var UTF8Decoder="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64,STATIC_BASE,STATICTOP,staticSealed,STACK_BASE,STACKTOP,STACK_MAX,DYNAMIC_BASE,DYNAMICTOP_PTR;function UTF8ArrayToString(t,e){for(var r=e;t[r];)++r;if(r-e>16&&t.subarray&&UTF8Decoder)return UTF8Decoder.decode(t.subarray(e,r));for(var n,i,s,a,o,u="";;){if(!(n=t[e++]))return u;if(128&n)if(i=63&t[e++],192!=(224&n))if(s=63&t[e++],224==(240&n)?n=(15&n)<<12|i<<6|s:(a=63&t[e++],240==(248&n)?n=(7&n)<<18|i<<12|s<<6|a:(o=63&t[e++],n=248==(252&n)?(3&n)<<24|i<<18|s<<12|a<<6|o:(1&n)<<30|i<<24|s<<18|a<<12|o<<6|63&t[e++])),n<65536)u+=String.fromCharCode(n);else{var l=n-65536;u+=String.fromCharCode(55296|l>>10,56320|1023&l)}else u+=String.fromCharCode((31&n)<<6|i);else u+=String.fromCharCode(n)}}function UTF8ToString(t){return UTF8ArrayToString(HEAPU8,t)}function stringToUTF8Array(t,e,r,n){if(!(n>0))return 0;for(var i=r,s=r+n-1,a=0;a<t.length;++a){var o=t.charCodeAt(a);if(o>=55296&&o<=57343&&(o=65536+((1023&o)<<10)|1023&t.charCodeAt(++a)),o<=127){if(r>=s)break;e[r++]=o}else if(o<=2047){if(r+1>=s)break;e[r++]=192|o>>6,e[r++]=128|63&o}else if(o<=65535){if(r+2>=s)break;e[r++]=224|o>>12,e[r++]=128|o>>6&63,e[r++]=128|63&o}else if(o<=2097151){if(r+3>=s)break;e[r++]=240|o>>18,e[r++]=128|o>>12&63,e[r++]=128|o>>6&63,e[r++]=128|63&o}else if(o<=67108863){if(r+4>=s)break;e[r++]=248|o>>24,e[r++]=128|o>>18&63,e[r++]=128|o>>12&63,e[r++]=128|o>>6&63,e[r++]=128|63&o}else{if(r+5>=s)break;e[r++]=252|o>>30,e[r++]=128|o>>24&63,e[r++]=128|o>>18&63,e[r++]=128|o>>12&63,e[r++]=128|o>>6&63,e[r++]=128|63&o}}return e[r]=0,r-i}function stringToUTF8(t,e,r){return stringToUTF8Array(t,HEAPU8,e,r)}function lengthBytesUTF8(t){for(var e=0,r=0;r<t.length;++r){var n=t.charCodeAt(r);n>=55296&&n<=57343&&(n=65536+((1023&n)<<10)|1023&t.charCodeAt(++r)),n<=127?++e:e+=n<=2047?2:n<=65535?3:n<=2097151?4:n<=67108863?5:6}return e}function demangle(t){var e=Module.___cxa_demangle||Module.__cxa_demangle;if(e){try{var r=t.substr(1),n=lengthBytesUTF8(r)+1,i=_malloc(n);stringToUTF8(r,i,n);var s=_malloc(4),a=e(i,0,0,s);if(0===getValue(s,"i32")&&a)return Pointer_stringify(a)}catch(t){}finally{i&&_free(i),s&&_free(s),a&&_free(a)}return t}return Runtime.warnOnce("warning: build with  -s DEMANGLE_SUPPORT=1  to link in libcxxabi demangling"),t}function demangleAll(t){return t.replace(/__Z[\w\d_]+/g,(function(t){var e=demangle(t);return t===e?t:t+" ["+e+"]"}))}function jsStackTrace(){var t=new Error;if(!t.stack){try{throw new Error(0)}catch(e){t=e}if(!t.stack)return"(no stack trace available)"}return t.stack.toString()}function stackTrace(){var t=jsStackTrace();return Module.extraStackTrace&&(t+="\n"+Module.extraStackTrace()),demangleAll(t)}function updateGlobalBufferViews(){Module.HEAP8=HEAP8=new Int8Array(buffer),Module.HEAP16=HEAP16=new Int16Array(buffer),Module.HEAP32=HEAP32=new Int32Array(buffer),Module.HEAPU8=HEAPU8=new Uint8Array(buffer),Module.HEAPU16=HEAPU16=new Uint16Array(buffer),Module.HEAPU32=HEAPU32=new Uint32Array(buffer),Module.HEAPF32=HEAPF32=new Float32Array(buffer),Module.HEAPF64=HEAPF64=new Float64Array(buffer)}function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with  -s TOTAL_MEMORY=X  with X higher than the current value "+TOTAL_MEMORY+", (2) compile with  -s ALLOW_MEMORY_GROWTH=1  which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with  -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}Module.UTF8ArrayToString=UTF8ArrayToString,Module.UTF8ToString=UTF8ToString,Module.stringToUTF8Array=stringToUTF8Array,Module.stringToUTF8=stringToUTF8,Module.lengthBytesUTF8=lengthBytesUTF8,"undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le"),Module.stackTrace=stackTrace,STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0,staticSealed=!1;var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||134217728;function getTotalMemory(){return TOTAL_MEMORY}if(TOTAL_MEMORY<TOTAL_STACK&&Module.printErr("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+TOTAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")"),buffer=Module.buffer?Module.buffer:new ArrayBuffer(TOTAL_MEMORY),updateGlobalBufferViews(),HEAP32[0]=1668509029,HEAP16[1]=25459,115!==HEAPU8[2]||99!==HEAPU8[3])throw"Runtime error: expected the system to be little-endian!";function callRuntimeCallbacks(t){for(;t.length>0;){var e=t.shift();if("function"!=typeof e){var r=e.func;"number"==typeof r?void 0===e.arg?Module.dynCall_v(r):Module.dynCall_vi(r,e.arg):r(void 0===e.arg?null:e.arg)}else e()}}Module.HEAP=HEAP,Module.buffer=buffer,Module.HEAP8=HEAP8,Module.HEAP16=HEAP16,Module.HEAP32=HEAP32,Module.HEAPU8=HEAPU8,Module.HEAPU16=HEAPU16,Module.HEAPU32=HEAPU32,Module.HEAPF32=HEAPF32,Module.HEAPF64=HEAPF64;var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1;function preRun(){if(Module.preRun)for("function"==typeof Module.preRun&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__)}function postRun(){if(Module.postRun)for("function"==typeof Module.postRun&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(t){__ATPRERUN__.unshift(t)}function addOnInit(t){__ATINIT__.unshift(t)}function addOnPreMain(t){__ATMAIN__.unshift(t)}function addOnExit(t){__ATEXIT__.unshift(t)}function addOnPostRun(t){__ATPOSTRUN__.unshift(t)}function intArrayFromString(t,e,r){var n=r>0?r:lengthBytesUTF8(t)+1,i=new Array(n),s=stringToUTF8Array(t,i,0,i.length);return e&&(i.length=s),i}function intArrayToString(t){for(var e=[],r=0;r<t.length;r++){var n=t[r];n>255&&(n&=255),e.push(String.fromCharCode(n))}return e.join("")}function writeStringToMemory(t,e,r){var n,i;Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!"),r&&(i=e+lengthBytesUTF8(t),n=HEAP8[i]),stringToUTF8(t,e,1/0),r&&(HEAP8[i]=n)}function writeArrayToMemory(t,e){HEAP8.set(t,e)}function writeAsciiToMemory(t,e,r){for(var n=0;n<t.length;++n)HEAP8[0|e++]=t.charCodeAt(n);r||(HEAP8[0|e]=0)}if(Module.addOnPreRun=addOnPreRun,Module.addOnInit=addOnInit,Module.addOnPreMain=addOnPreMain,Module.addOnExit=addOnExit,Module.addOnPostRun=addOnPostRun,Module.intArrayFromString=intArrayFromString,Module.intArrayToString=intArrayToString,Module.writeStringToMemory=writeStringToMemory,Module.writeArrayToMemory=writeArrayToMemory,Module.writeAsciiToMemory=writeAsciiToMemory,Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(t,e){var r=65535&t,n=65535&e;return r*n+((t>>>16)*n+r*(e>>>16)<<16)|0}),Math.imul=Math.imul,!Math.fround){var froundBuffer=new Float32Array(1);Math.fround=function(t){return froundBuffer[0]=t,froundBuffer[0]}}Math.fround=Math.fround,Math.clz32||(Math.clz32=function(t){t>>>=0;for(var e=0;e<32;e++)if(t&1<<31-e)return e;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(t){return t<0?Math.ceil(t):Math.floor(t)}),Math.trunc=Math.trunc;var Math_abs=Math.abs,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_min=Math.min,runDependencies=0,dependenciesFulfilled=null;function getUniqueRunDependency(t){return t}function addRunDependency(t){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(t){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),0==runDependencies&&dependenciesFulfilled){var e=dependenciesFulfilled;dependenciesFulfilled=null,e()}}Module.addRunDependency=addRunDependency,Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var ASM_CONSTS=[function(t,e,r,n,i,s,a,o){return _nbind.callbackSignatureList[t].apply(this,arguments)}];function _emscripten_asm_const_iiiiiiii(t,e,r,n,i,s,a,o){return ASM_CONSTS[t](e,r,n,i,s,a,o)}function _emscripten_asm_const_iiiii(t,e,r,n,i){return ASM_CONSTS[t](e,r,n,i)}function _emscripten_asm_const_iiidddddd(t,e,r,n,i,s,a,o,u){return ASM_CONSTS[t](e,r,n,i,s,a,o,u)}function _emscripten_asm_const_iiididi(t,e,r,n,i,s,a){return ASM_CONSTS[t](e,r,n,i,s,a)}function _emscripten_asm_const_iiii(t,e,r,n){return ASM_CONSTS[t](e,r,n)}function _emscripten_asm_const_iiiid(t,e,r,n,i){return ASM_CONSTS[t](e,r,n,i)}function _emscripten_asm_const_iiiiii(t,e,r,n,i,s){return ASM_CONSTS[t](e,r,n,i,s)}STATIC_BASE=Runtime.GLOBAL_BASE,STATICTOP=STATIC_BASE+12800,__ATINIT__.push({func:function(){__GLOBAL__sub_I_Yoga_cpp()}},{func:function(){__GLOBAL__sub_I_nbind_cc()}},{func:function(){__GLOBAL__sub_I_common_cc()}},{func:function(){__GLOBAL__sub_I_Binding_cc()}}),allocate([0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,192,127,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,128,191,0,0,128,191,0,0,192,127,0,0,0,0,0,0,0,0,0,0,128,63,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,190,12,0,0,200,12,0,0,208,12,0,0,216,12,0,0,230,12,0,0,242,12,0,0,1,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,0,0,192,127,3,0,0,0,180,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,182,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,4,0,0,0,183,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,184,45,0,0,185,45,0,0,181,45,0,0,181,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,148,4,0,0,3,0,0,0,187,45,0,0,164,4,0,0,188,45,0,0,2,0,0,0,189,45,0,0,164,4,0,0,188,45,0,0,185,45,0,0,164,4,0,0,185,45,0,0,164,4,0,0,188,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,183,45,0,0,182,45,0,0,181,45,0,0,190,45,0,0,190,45,0,0,182,45,0,0,182,45,0,0,185,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,185,45,0,0,48,5,0,0,3,0,0,0,56,5,0,0,1,0,0,0,189,45,0,0,185,45,0,0,164,4,0,0,76,5,0,0,2,0,0,0,191,45,0,0,186,45,0,0,182,45,0,0,185,45,0,0,192,45,0,0,185,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,76,5,0,0,76,5,0,0,136,5,0,0,182,45,0,0,181,45,0,0,2,0,0,0,190,45,0,0,136,5,0,0,56,19,0,0,156,5,0,0,2,0,0,0,184,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,9,0,0,0,1,0,0,0,10,0,0,0,204,5,0,0,181,45,0,0,181,45,0,0,2,0,0,0,180,45,0,0,204,5,0,0,2,0,0,0,195,45,0,0,236,5,0,0,97,19,0,0,198,45,0,0,211,45,0,0,212,45,0,0,213,45,0,0,214,45,0,0,215,45,0,0,188,45,0,0,182,45,0,0,216,45,0,0,217,45,0,0,218,45,0,0,219,45,0,0,192,45,0,0,181,45,0,0,0,0,0,0,185,45,0,0,110,19,0,0,186,45,0,0,115,19,0,0,221,45,0,0,120,19,0,0,148,4,0,0,132,19,0,0,96,6,0,0,145,19,0,0,222,45,0,0,164,19,0,0,223,45,0,0,173,19,0,0,0,0,0,0,3,0,0,0,104,6,0,0,1,0,0,0,187,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,185,45,0,0,224,45,0,0,164,6,0,0,188,45,0,0,172,6,0,0,180,6,0,0,2,0,0,0,188,6,0,0,7,0,0,0,224,45,0,0,7,0,0,0,164,6,0,0,1,0,0,0,213,45,0,0,185,45,0,0,224,45,0,0,172,6,0,0,185,45,0,0,224,45,0,0,164,6,0,0,185,45,0,0,224,45,0,0,211,45,0,0,211,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,172,6,0,0,222,45,0,0,211,45,0,0,224,45,0,0,188,45,0,0,222,45,0,0,211,45,0,0,40,7,0,0,188,45,0,0,2,0,0,0,224,45,0,0,185,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,222,45,0,0,224,45,0,0,148,4,0,0,185,45,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,185,45,0,0,164,6,0,0,148,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,14,0,0,0,15,0,0,0,1,0,0,0,16,0,0,0,148,7,0,0,2,0,0,0,225,45,0,0,183,45,0,0,188,45,0,0,168,7,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,234,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,148,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,9,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,242,45,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,110,111,100,101,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,119,104,105,99,104,32,115,116,105,108,108,32,104,97,115,32,99,104,105,108,100,114,101,110,32,97,116,116,97,99,104,101,100,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,115,116,105,108,108,32,97,116,116,97,99,104,101,100,32,116,111,32,97,32,112,97,114,101,110,116,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,99,111,110,102,105,103,0,67,97,110,110,111,116,32,115,101,116,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,67,104,105,108,100,32,97,108,114,101,97,100,121,32,104,97,115,32,97,32,112,97,114,101,110,116,44,32,105,116,32,109,117,115,116,32,98,101,32,114,101,109,111,118,101,100,32,102,105,114,115,116,46,0,67,97,110,110,111,116,32,97,100,100,32,99,104,105,108,100,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,79,110,108,121,32,108,101,97,102,32,110,111,100,101,115,32,119,105,116,104,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,115,104,111,117,108,100,32,109,97,110,117,97,108,108,121,32,109,97,114,107,32,116,104,101,109,115,101,108,118,101,115,32,97,115,32,100,105,114,116,121,0,67,97,110,110,111,116,32,103,101,116,32,108,97,121,111,117,116,32,112,114,111,112,101,114,116,105,101,115,32,111,102,32,109,117,108,116,105,45,101,100,103,101,32,115,104,111,114,116,104,97,110,100,115,0,37,115,37,100,46,123,91,115,107,105,112,112,101,100,93,32,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,61,62,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,37,115,37,100,46,123,37,115,0,42,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,37,115,10,0,37,115,37,100,46,125,37,115,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,79,117,116,32,111,102,32,99,97,99,104,101,32,101,110,116,114,105,101,115,33,10,0,83,99,97,108,101,32,102,97,99,116,111,114,32,115,104,111,117,108,100,32,110,111,116,32,98,101,32,108,101,115,115,32,116,104,97,110,32,122,101,114,111,0,105,110,105,116,105,97,108,0,37,115,10,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,85,78,68,69,70,73,78,69,68,0,69,88,65,67,84,76,89,0,65,84,95,77,79,83,84,0,76,65,89,95,85,78,68,69,70,73,78,69,68,0,76,65,89,95,69,88,65,67,84,76,89,0,76,65,89,95,65,84,95,77,79,83,84,0,97,118,97,105,108,97,98,108,101,87,105,100,116,104,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,119,105,100,116,104,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,97,118,97,105,108,97,98,108,101,72,101,105,103,104,116,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,104,101,105,103,104,116,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,102,108,101,120,0,115,116,114,101,116,99,104,0,109,117,108,116,105,108,105,110,101,45,115,116,114,101,116,99,104,0,69,120,112,101,99,116,101,100,32,110,111,100,101,32,116,111,32,104,97,118,101,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,0,109,101,97,115,117,114,101,0,69,120,112,101,99,116,32,99,117,115,116,111,109,32,98,97,115,101,108,105,110,101,32,102,117,110,99,116,105,111,110,32,116,111,32,110,111,116,32,114,101,116,117,114,110,32,78,97,78,0,97,98,115,45,109,101,97,115,117,114,101,0,97,98,115,45,108,97,121,111,117,116,0,78,111,100,101,0,99,114,101,97,116,101,68,101,102,97,117,108,116,0,99,114,101,97,116,101,87,105,116,104,67,111,110,102,105,103,0,100,101,115,116,114,111,121,0,114,101,115,101,116,0,99,111,112,121,83,116,121,108,101,0,115,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,115,101,116,80,111,115,105,116,105,111,110,0,115,101,116,80,111,115,105,116,105,111,110,80,101,114,99,101,110,116,0,115,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,115,101,116,65,108,105,103,110,73,116,101,109,115,0,115,101,116,65,108,105,103,110,83,101,108,102,0,115,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,115,101,116,70,108,101,120,87,114,97,112,0,115,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,115,101,116,77,97,114,103,105,110,0,115,101,116,77,97,114,103,105,110,80,101,114,99,101,110,116,0,115,101,116,77,97,114,103,105,110,65,117,116,111,0,115,101,116,79,118,101,114,102,108,111,119,0,115,101,116,68,105,115,112,108,97,121,0,115,101,116,70,108,101,120,0,115,101,116,70,108,101,120,66,97,115,105,115,0,115,101,116,70,108,101,120,66,97,115,105,115,80,101,114,99,101,110,116,0,115,101,116,70,108,101,120,71,114,111,119,0,115,101,116,70,108,101,120,83,104,114,105,110,107,0,115,101,116,87,105,100,116,104,0,115,101,116,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,87,105,100,116,104,65,117,116,111,0,115,101,116,72,101,105,103,104,116,0,115,101,116,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,72,101,105,103,104,116,65,117,116,111,0,115,101,116,77,105,110,87,105,100,116,104,0,115,101,116,77,105,110,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,105,110,72,101,105,103,104,116,0,115,101,116,77,105,110,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,77,97,120,87,105,100,116,104,0,115,101,116,77,97,120,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,97,120,72,101,105,103,104,116,0,115,101,116,77,97,120,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,65,115,112,101,99,116,82,97,116,105,111,0,115,101,116,66,111,114,100,101,114,0,115,101,116,80,97,100,100,105,110,103,0,115,101,116,80,97,100,100,105,110,103,80,101,114,99,101,110,116,0,103,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,103,101,116,80,111,115,105,116,105,111,110,0,103,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,103,101,116,65,108,105,103,110,73,116,101,109,115,0,103,101,116,65,108,105,103,110,83,101,108,102,0,103,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,103,101,116,70,108,101,120,87,114,97,112,0,103,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,103,101,116,77,97,114,103,105,110,0,103,101,116,70,108,101,120,66,97,115,105,115,0,103,101,116,70,108,101,120,71,114,111,119,0,103,101,116,70,108,101,120,83,104,114,105,110,107,0,103,101,116,87,105,100,116,104,0,103,101,116,72,101,105,103,104,116,0,103,101,116,77,105,110,87,105,100,116,104,0,103,101,116,77,105,110,72,101,105,103,104,116,0,103,101,116,77,97,120,87,105,100,116,104,0,103,101,116,77,97,120,72,101,105,103,104,116,0,103,101,116,65,115,112,101,99,116,82,97,116,105,111,0,103,101,116,66,111,114,100,101,114,0,103,101,116,79,118,101,114,102,108,111,119,0,103,101,116,68,105,115,112,108,97,121,0,103,101,116,80,97,100,100,105,110,103,0,105,110,115,101,114,116,67,104,105,108,100,0,114,101,109,111,118,101,67,104,105,108,100,0,103,101,116,67,104,105,108,100,67,111,117,110,116,0,103,101,116,80,97,114,101,110,116,0,103,101,116,67,104,105,108,100,0,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,117,110,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,109,97,114,107,68,105,114,116,121,0,105,115,68,105,114,116,121,0,99,97,108,99,117,108,97,116,101,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,76,101,102,116,0,103,101,116,67,111,109,112,117,116,101,100,82,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,84,111,112,0,103,101,116,67,111,109,112,117,116,101,100,66,111,116,116,111,109,0,103,101,116,67,111,109,112,117,116,101,100,87,105,100,116,104,0,103,101,116,67,111,109,112,117,116,101,100,72,101,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,77,97,114,103,105,110,0,103,101,116,67,111,109,112,117,116,101,100,66,111,114,100,101,114,0,103,101,116,67,111,109,112,117,116,101,100,80,97,100,100,105,110,103,0,67,111,110,102,105,103,0,99,114,101,97,116,101,0,115,101,116,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,115,101,116,80,111,105,110,116,83,99,97,108,101,70,97,99,116,111,114,0,105,115,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,86,97,108,117,101,0,76,97,121,111,117,116,0,83,105,122,101,0,103,101,116,73,110,115,116,97,110,99,101,67,111,117,110,116,0,73,110,116,54,52,0,1,1,1,2,2,4,4,4,4,8,8,4,8,118,111,105,100,0,98,111,111,108,0,115,116,100,58,58,115,116,114,105,110,103,0,99,98,70,117,110,99,116,105,111,110,32,38,0,99,111,110,115,116,32,99,98,70,117,110,99,116,105,111,110,32,38,0,69,120,116,101,114,110,97,108,0,66,117,102,102,101,114,0,78,66,105,110,100,73,68,0,78,66,105,110,100,0,98,105,110,100,95,118,97,108,117,101,0,114,101,102,108,101,99,116,0,113,117,101,114,121,84,121,112,101,0,108,97,108,108,111,99,0,108,114,101,115,101,116,0,123,114,101,116,117,114,110,40,95,110,98,105,110,100,46,99,97,108,108,98,97,99,107,83,105,103,110,97,116,117,114,101,76,105,115,116,91,36,48,93,46,97,112,112,108,121,40,116,104,105,115,44,97,114,103,117,109,101,110,116,115,41,41,59,125,0,95,110,98,105,110,100,95,110,101,119,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=STATICTOP;function _atexit(t,e){__ATEXIT__.unshift({func:t,arg:e})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}function _abort(){Module.abort()}function __ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj(){Module.printErr("missing function: _ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj"),abort(-1)}function __decorate(t,e,r,n){var i,s=arguments.length,a=s<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,r,n);else for(var o=t.length-1;o>=0;o--)(i=t[o])&&(a=(s<3?i(a):s>3?i(e,r,a):i(e,r))||a);return s>3&&a&&Object.defineProperty(e,r,a),a}function _defineHidden(t){return function(e,r){Object.defineProperty(e,r,{configurable:!1,enumerable:!1,value:t,writable:!0})}}STATICTOP+=16;var _nbind={};function __nbind_free_external(t){_nbind.externalList[t].dereference(t)}function __nbind_reference_external(t){_nbind.externalList[t].reference()}function _llvm_stackrestore(t){var e=_llvm_stacksave,r=e.LLVM_SAVEDSTACKS[t];e.LLVM_SAVEDSTACKS.splice(t,1),Runtime.stackRestore(r)}function __nbind_register_pool(t,e,r,n){_nbind.Pool.pageSize=t,_nbind.Pool.usedPtr=e/4,_nbind.Pool.rootPtr=r,_nbind.Pool.pagePtr=n/4,HEAP32[e/4]=16909060,1==HEAP8[e]&&(_nbind.bigEndian=!0),HEAP32[e/4]=0,_nbind.makeTypeKindTbl=((i={})[1024]=_nbind.PrimitiveType,i[64]=_nbind.Int64Type,i[2048]=_nbind.BindClass,i[3072]=_nbind.BindClassPtr,i[4096]=_nbind.SharedClassPtr,i[5120]=_nbind.ArrayType,i[6144]=_nbind.ArrayType,i[7168]=_nbind.CStringType,i[9216]=_nbind.CallbackType,i[10240]=_nbind.BindType,i),_nbind.makeTypeNameTbl={Buffer:_nbind.BufferType,External:_nbind.ExternalType,Int64:_nbind.Int64Type,_nbind_new:_nbind.CreateValueType,bool:_nbind.BooleanType,"cbFunction &":_nbind.CallbackType,"const cbFunction &":_nbind.CallbackType,"const std::string &":_nbind.StringType,"std::string":_nbind.StringType},Module.toggleLightGC=_nbind.toggleLightGC,_nbind.callUpcast=Module.dynCall_ii;var i,s=_nbind.makeType(_nbind.constructType,{flags:2048,id:0,name:""});s.proto=Module,_nbind.BindClass.list.push(s)}function _emscripten_set_main_loop_timing(t,e){if(Browser.mainLoop.timingMode=t,Browser.mainLoop.timingValue=e,!Browser.mainLoop.func)return 1;if(0==t)Browser.mainLoop.scheduler=function(){var t=0|Math.max(0,Browser.mainLoop.tickStartTime+e-_emscripten_get_now());setTimeout(Browser.mainLoop.runner,t)},Browser.mainLoop.method="timeout";else if(1==t)Browser.mainLoop.scheduler=function(){Browser.requestAnimationFrame(Browser.mainLoop.runner)},Browser.mainLoop.method="rAF";else if(2==t){if(!window.setImmediate){var r=[],n="setimmediate";function i(t){t.source===window&&t.data===n&&(t.stopPropagation(),r.shift()())}window.addEventListener("message",i,!0),window.setImmediate=function(t){r.push(t),ENVIRONMENT_IS_WORKER?(void 0===Module.setImmediates&&(Module.setImmediates=[]),Module.setImmediates.push(t),window.postMessage({target:n})):window.postMessage(n,"*")}}Browser.mainLoop.scheduler=function(){window.setImmediate(Browser.mainLoop.runner)},Browser.mainLoop.method="immediate"}return 0}function _emscripten_get_now(){abort()}function _emscripten_set_main_loop(t,e,r,n,i){var s;Module.noExitRuntime=!0,assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),Browser.mainLoop.func=t,Browser.mainLoop.arg=n,s=void 0!==n?function(){Module.dynCall_vi(t,n)}:function(){Module.dynCall_v(t)};var a=Browser.mainLoop.currentlyRunningMainloop;if(Browser.mainLoop.runner=function(){if(!ABORT)if(Browser.mainLoop.queue.length>0){var t=Browser.mainLoop.queue.shift();if(t.func(t.arg),Browser.mainLoop.remainingBlockers){var e=Browser.mainLoop.remainingBlockers,r=e%1==0?e-1:Math.floor(e);t.counted?Browser.mainLoop.remainingBlockers=r:(r+=.5,Browser.mainLoop.remainingBlockers=(8*e+r)/9)}if(Browser.mainLoop.updateStatus(),a<Browser.mainLoop.currentlyRunningMainloop)return;setTimeout(Browser.mainLoop.runner,0)}else a<Browser.mainLoop.currentlyRunningMainloop||(Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0,1==Browser.mainLoop.timingMode&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0?Browser.mainLoop.scheduler():(0==Browser.mainLoop.timingMode&&(Browser.mainLoop.tickStartTime=_emscripten_get_now()),"timeout"===Browser.mainLoop.method&&Module.ctx&&(Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),Browser.mainLoop.method=""),Browser.mainLoop.runIter(s),a<Browser.mainLoop.currentlyRunningMainloop||("object"==typeof SDL&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),Browser.mainLoop.scheduler())))},i||(e&&e>0?_emscripten_set_main_loop_timing(0,1e3/e):_emscripten_set_main_loop_timing(1,1),Browser.mainLoop.scheduler()),r)throw"SimulateInfiniteLoop"}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null,Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var t=Browser.mainLoop.timingMode,e=Browser.mainLoop.timingValue,r=Browser.mainLoop.func;Browser.mainLoop.func=null,_emscripten_set_main_loop(r,0,!1,Browser.mainLoop.arg,!0),_emscripten_set_main_loop_timing(t,e),Browser.mainLoop.scheduler()},updateStatus:function(){if(Module.setStatus){var t=Module.statusMessage||"Please wait...",e=Browser.mainLoop.remainingBlockers,r=Browser.mainLoop.expectedBlockers;e?e<r?Module.setStatus(t+" ("+(r-e)+"/"+r+")"):Module.setStatus(t):Module.setStatus("")}},runIter:function(t){if(!ABORT){if(Module.preMainLoop&&!1===Module.preMainLoop())return;try{t()}catch(t){if(t instanceof ExitStatus)return;throw t&&"object"==typeof t&&t.stack&&Module.printErr("exception thrown: "+[t,t.stack]),t}Module.postMainLoop&&Module.postMainLoop()}}},isFullscreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init:function(){if(Module.preloadPlugins||(Module.preloadPlugins=[]),!Browser.initted){Browser.initted=!0;try{new Blob,Browser.hasBlobConstructor=!0}catch(t){Browser.hasBlobConstructor=!1}Browser.BlobBuilder="undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:Browser.hasBlobConstructor?null:void 0,Browser.URLObject="undefined"!=typeof window?window.URL?window.URL:window.webkitURL:void 0,Module.noImageDecoding||void 0!==Browser.URLObject||(Module.noImageDecoding=!0);var t={canHandle:function(t){return!Module.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(t)},handle:function(t,e,r,n){var i=null;if(Browser.hasBlobConstructor)try{(i=new Blob([t],{type:Browser.getMimetype(e)})).size!==t.length&&(i=new Blob([new Uint8Array(t).buffer],{type:Browser.getMimetype(e)}))}catch(t){Runtime.warnOnce("Blob constructor present but fails: "+t+"; falling back to blob builder")}if(!i){var s=new Browser.BlobBuilder;s.append(new Uint8Array(t).buffer),i=s.getBlob()}var a=Browser.URLObject.createObjectURL(i),o=new Image;o.onload=function(){assert(o.complete,"Image "+e+" could not be decoded");var n=document.createElement("canvas");n.width=o.width,n.height=o.height,n.getContext("2d").drawImage(o,0,0),Module.preloadedImages[e]=n,Browser.URLObject.revokeObjectURL(a),r&&r(t)},o.onerror=function(t){n&&n()},o.src=a}};Module.preloadPlugins.push(t);var e={canHandle:function(t){return!Module.noAudioDecoding&&t.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},handle:function(t,e,r,n){var i=!1;function s(n){i||(i=!0,Module.preloadedAudios[e]=n,r&&r(t))}function a(){i||(i=!0,Module.preloadedAudios[e]=new Audio,n&&n())}if(!Browser.hasBlobConstructor)return a();try{var o=new Blob([t],{type:Browser.getMimetype(e)})}catch(t){return a()}var u=Browser.URLObject.createObjectURL(o),l=new Audio;l.addEventListener("canplaythrough",(function(){s(l)}),!1),l.onerror=function(r){i||(l.src="data:audio/x-"+e.substr(-3)+";base64,"+function(t){for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r="",n=0,i=0,s=0;s<t.length;s++)for(n=n<<8|t[s],i+=8;i>=6;){var a=n>>i-6&63;i-=6,r+=e[a]}return 2==i?(r+=e[(3&n)<<4],r+="=="):4==i&&(r+=e[(15&n)<<2],r+="="),r}(t),s(l))},l.src=u,Browser.safeSetTimeout((function(){s(l)}),1e4)}};Module.preloadPlugins.push(e);var r=Module.canvas;r&&(r.requestPointerLock=r.requestPointerLock||r.mozRequestPointerLock||r.webkitRequestPointerLock||r.msRequestPointerLock||function(){},r.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},r.exitPointerLock=r.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",n,!1),document.addEventListener("mozpointerlockchange",n,!1),document.addEventListener("webkitpointerlockchange",n,!1),document.addEventListener("mspointerlockchange",n,!1),Module.elementPointerLock&&r.addEventListener("click",(function(t){!Browser.pointerLock&&Module.canvas.requestPointerLock&&(Module.canvas.requestPointerLock(),t.preventDefault())}),!1))}function n(){Browser.pointerLock=document.pointerLockElement===Module.canvas||document.mozPointerLockElement===Module.canvas||document.webkitPointerLockElement===Module.canvas||document.msPointerLockElement===Module.canvas}},createContext:function(t,e,r,n){if(e&&Module.ctx&&t==Module.canvas)return Module.ctx;var i,s;if(e){var a={antialias:!1,alpha:!1};if(n)for(var o in n)a[o]=n[o];(s=GL.createContext(t,a))&&(i=GL.getContext(s).GLctx)}else i=t.getContext("2d");return i?(r&&(e||assert("undefined"==typeof GLctx,"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),Module.ctx=i,e&&GL.makeContextCurrent(s),Module.useWebGL=e,Browser.moduleContextCreatedCallbacks.forEach((function(t){t()})),Browser.init()),i):null},destroyContext:function(t,e,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(t,e,r){Browser.lockPointer=t,Browser.resizeCanvas=e,Browser.vrDevice=r,void 0===Browser.lockPointer&&(Browser.lockPointer=!0),void 0===Browser.resizeCanvas&&(Browser.resizeCanvas=!1),void 0===Browser.vrDevice&&(Browser.vrDevice=null);var n=Module.canvas;function i(){Browser.isFullscreen=!1;var t=n.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===t?(n.exitFullscreen=document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){},n.exitFullscreen=n.exitFullscreen.bind(document),Browser.lockPointer&&n.requestPointerLock(),Browser.isFullscreen=!0,Browser.resizeCanvas&&Browser.setFullscreenCanvasSize()):(t.parentNode.insertBefore(n,t),t.parentNode.removeChild(t),Browser.resizeCanvas&&Browser.setWindowedCanvasSize()),Module.onFullScreen&&Module.onFullScreen(Browser.isFullscreen),Module.onFullscreen&&Module.onFullscreen(Browser.isFullscreen),Browser.updateCanvasDimensions(n)}Browser.fullscreenHandlersInstalled||(Browser.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",i,!1),document.addEventListener("mozfullscreenchange",i,!1),document.addEventListener("webkitfullscreenchange",i,!1),document.addEventListener("MSFullscreenChange",i,!1));var s=document.createElement("div");n.parentNode.insertBefore(s,n),s.appendChild(n),s.requestFullscreen=s.requestFullscreen||s.mozRequestFullScreen||s.msRequestFullscreen||(s.webkitRequestFullscreen?function(){s.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(s.webkitRequestFullScreen?function(){s.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),r?s.requestFullscreen({vrDisplay:r}):s.requestFullscreen()},requestFullScreen:function(t,e,r){return Module.printErr("Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead."),Browser.requestFullScreen=function(t,e,r){return Browser.requestFullscreen(t,e,r)},Browser.requestFullscreen(t,e,r)},nextRAF:0,fakeRequestAnimationFrame:function(t){var e=Date.now();if(0===Browser.nextRAF)Browser.nextRAF=e+1e3/60;else for(;e+2>=Browser.nextRAF;)Browser.nextRAF+=1e3/60;var r=Math.max(Browser.nextRAF-e,0);setTimeout(t,r)},requestAnimationFrame:function(t){"undefined"==typeof window?Browser.fakeRequestAnimationFrame(t):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||Browser.fakeRequestAnimationFrame),window.requestAnimationFrame(t))},safeCallback:function(t){return function(){if(!ABORT)return t.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){if(Browser.allowAsyncCallbacks=!0,Browser.queuedAsyncCallbacks.length>0){var t=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[],t.forEach((function(t){t()}))}},safeRequestAnimationFrame:function(t){return Browser.requestAnimationFrame((function(){ABORT||(Browser.allowAsyncCallbacks?t():Browser.queuedAsyncCallbacks.push(t))}))},safeSetTimeout:function(t,e){return Module.noExitRuntime=!0,setTimeout((function(){ABORT||(Browser.allowAsyncCallbacks?t():Browser.queuedAsyncCallbacks.push(t))}),e)},safeSetInterval:function(t,e){return Module.noExitRuntime=!0,setInterval((function(){ABORT||Browser.allowAsyncCallbacks&&t()}),e)},getMimetype:function(t){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[t.substr(t.lastIndexOf(".")+1)]},getUserMedia:function(t){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(t)},getMovementX:function(t){return t.movementX||t.mozMovementX||t.webkitMovementX||0},getMovementY:function(t){return t.movementY||t.mozMovementY||t.webkitMovementY||0},getMouseWheelDelta:function(t){var e=0;switch(t.type){case"DOMMouseScroll":e=t.detail;break;case"mousewheel":e=t.wheelDelta;break;case"wheel":e=t.deltaY;break;default:throw"unrecognized mouse wheel event: "+t.type}return e},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(t){if(Browser.pointerLock)"mousemove"!=t.type&&"mozMovementX"in t?Browser.mouseMovementX=Browser.mouseMovementY=0:(Browser.mouseMovementX=Browser.getMovementX(t),Browser.mouseMovementY=Browser.getMovementY(t)),"undefined"!=typeof SDL?(Browser.mouseX=SDL.mouseX+Browser.mouseMovementX,Browser.mouseY=SDL.mouseY+Browser.mouseMovementY):(Browser.mouseX+=Browser.mouseMovementX,Browser.mouseY+=Browser.mouseMovementY);else{var e=Module.canvas.getBoundingClientRect(),r=Module.canvas.width,n=Module.canvas.height,i=void 0!==window.scrollX?window.scrollX:window.pageXOffset,s=void 0!==window.scrollY?window.scrollY:window.pageYOffset;if("touchstart"===t.type||"touchend"===t.type||"touchmove"===t.type){var a=t.touch;if(void 0===a)return;var o=a.pageX-(i+e.left),u=a.pageY-(s+e.top),l={x:o*=r/e.width,y:u*=n/e.height};if("touchstart"===t.type)Browser.lastTouches[a.identifier]=l,Browser.touches[a.identifier]=l;else if("touchend"===t.type||"touchmove"===t.type){var h=Browser.touches[a.identifier];h||(h=l),Browser.lastTouches[a.identifier]=h,Browser.touches[a.identifier]=l}return}var c=t.pageX-(i+e.left),f=t.pageY-(s+e.top);c*=r/e.width,f*=n/e.height,Browser.mouseMovementX=c-Browser.mouseX,Browser.mouseMovementY=f-Browser.mouseY,Browser.mouseX=c,Browser.mouseY=f}},asyncLoad:function(t,e,r,n){var i=n?"":getUniqueRunDependency("al "+t);Module.readAsync(t,(function(r){assert(r,'Loading data file "'+t+'" failed (no arrayBuffer).'),e(new Uint8Array(r)),i&&removeRunDependency()}),(function(e){if(!r)throw'Loading data file "'+t+'" failed.';r()})),i&&addRunDependency()},resizeListeners:[],updateResizeListeners:function(){var t=Module.canvas;Browser.resizeListeners.forEach((function(e){e(t.width,t.height)}))},setCanvasSize:function(t,e,r){var n=Module.canvas;Browser.updateCanvasDimensions(n,t,e),r||Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if("undefined"!=typeof SDL){var t=HEAPU32[SDL.screen+0*Runtime.QUANTUM_SIZE>>2];t|=8388608,HEAP32[SDL.screen+0*Runtime.QUANTUM_SIZE>>2]=t}Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if("undefined"!=typeof SDL){var t=HEAPU32[SDL.screen+0*Runtime.QUANTUM_SIZE>>2];t&=-8388609,HEAP32[SDL.screen+0*Runtime.QUANTUM_SIZE>>2]=t}Browser.updateResizeListeners()},updateCanvasDimensions:function(t,e,r){e&&r?(t.widthNative=e,t.heightNative=r):(e=t.widthNative,r=t.heightNative);var n=e,i=r;if(Module.forcedAspectRatio&&Module.forcedAspectRatio>0&&(n/i<Module.forcedAspectRatio?n=Math.round(i*Module.forcedAspectRatio):i=Math.round(n/Module.forcedAspectRatio)),(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===t.parentNode&&"undefined"!=typeof screen){var s=Math.min(screen.width/n,screen.height/i);n=Math.round(n*s),i=Math.round(i*s)}Browser.resizeCanvas?(t.width!=n&&(t.width=n),t.height!=i&&(t.height=i),void 0!==t.style&&(t.style.removeProperty("width"),t.style.removeProperty("height"))):(t.width!=e&&(t.width=e),t.height!=r&&(t.height=r),void 0!==t.style&&(n!=e||i!=r?(t.style.setProperty("width",n+"px","important"),t.style.setProperty("height",i+"px","important")):(t.style.removeProperty("width"),t.style.removeProperty("height"))))},wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:function(){var t=Browser.nextWgetRequestHandle;return Browser.nextWgetRequestHandle++,t}},SYSCALLS={varargs:0,get:function(t){return SYSCALLS.varargs+=4,HEAP32[SYSCALLS.varargs-4>>2]},getStr:function(){return Pointer_stringify(SYSCALLS.get())},get64:function(){var t=SYSCALLS.get(),e=SYSCALLS.get();return assert(t>=0?0===e:-1===e),t},getZero:function(){assert(0===SYSCALLS.get())}};function ___syscall6(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.getStreamFromFD();return FS.close(r),0}catch(t){return"undefined"!=typeof FS&&t instanceof FS.ErrnoError||abort(t),-t.errno}}function ___syscall54(t,e){SYSCALLS.varargs=e;try{return 0}catch(t){return"undefined"!=typeof FS&&t instanceof FS.ErrnoError||abort(t),-t.errno}}function _typeModule(t){var e=[[0,1,"X"],[1,1,"const X"],[128,1,"X *"],[256,1,"X &"],[384,1,"X &&"],[512,1,"std::shared_ptr<X>"],[640,1,"std::unique_ptr<X>"],[5120,1,"std::vector<X>"],[6144,2,"std::array<X, Y>"],[9216,-1,"std::function<X (Y)>"]];function r(t,e,r,n,i,s){if(1==e){var a=896&n;128!=a&&256!=a&&384!=a||(t="X const")}return(s?r.replace("X",t).replace("Y",i):t.replace("X",r).replace("Y",i)).replace(/([*&]) (?=[*&])/g,"$1")}function n(t,e){var r=e.flags,n=896&r,i=15360&r;return e.name||1024!=i||(1==e.ptrSize?e.name=(16&r?"":(8&r?"un":"")+"signed ")+"char":e.name=(8&r?"u":"")+(32&r?"float":"int")+8*e.ptrSize+"_t"),8!=e.ptrSize||32&r||(i=64),2048==i&&(512==n||640==n?i=4096:n&&(i=3072)),t(i,e)}var i={Type:function(){function t(t){this.id=t.id,this.name=t.name,this.flags=t.flags,this.spec=t}return t.prototype.toString=function(){return this.name},t}(),getComplexType:function t(i,s,a,o,u,l,h,c){void 0===l&&(l="X"),void 0===c&&(c=1);var f=a(i);if(f)return f;var d,p=o(i),g=p.placeholderFlag,v=e[g];h&&v&&(l=r(h[2],h[0],l,v[0],"?",!0)),0==g&&(d="Unbound"),g>=10&&(d="Corrupt"),c>20&&(d="Deeply nested"),d&&function(t,e,r,n,i){throw new Error(t+" type "+r.replace("X",e+"?")+(n?" with flag "+n:"")+" in "+i)}(d,i,l,g,u||"?");var _,m=t(p.paramList[0],s,a,o,u,l,v,c+1),y={flags:v[0],id:i,name:"",paramList:[m]},b=[],w="?";switch(p.placeholderFlag){case 1:_=m.spec;break;case 2:if(1024==(15360&m.flags)&&1==m.spec.ptrSize){y.flags=7168;break}case 3:case 6:case 5:_=m.spec,m.flags;break;case 8:w=""+p.paramList[1],y.paramList.push(p.paramList[1]);break;case 9:for(var C=0,S=p.paramList[1];C<S.length;C++){var T=t(S[C],s,a,o,u,l,v,c+1);b.push(T.name),y.paramList.push(T)}w=b.join(", ")}if(y.name=r(v[2],v[0],m.name,m.flags,w),_){for(var k=0,x=Object.keys(_);k<x.length;k++){var E=x[k];y[E]=y[E]||_[E]}y.flags|=_.flags}return n(s,y)},makeType:n,structureList:e};return t.output=i,t.output||i}function __nbind_register_type(t,e){var r={flags:10240,id:t,name:_nbind.readAsciiString(e)};_nbind.makeType(_nbind.constructType,r)}function __nbind_register_callback_signature(t,e){var r=_nbind.readTypeIdList(t,e),n=_nbind.callbackSignatureList.length;return _nbind.callbackSignatureList[n]=_nbind.makeJSCaller(r),n}function __extends(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);function n(){this.constructor=t}n.prototype=e.prototype,t.prototype=new n}function __nbind_register_class(t,e,r,n,i,s,a){var o=_nbind.readAsciiString(a),u=_nbind.readPolicyList(e),l=HEAPU32.subarray(t/4,t/4+2),h={flags:2048|(u.Value?2:0),id:l[0],name:o},c=_nbind.makeType(_nbind.constructType,h);c.ptrType=_nbind.getComplexType(l[1],_nbind.constructType,_nbind.getType,_nbind.queryType),c.destroy=_nbind.makeMethodCaller(c.ptrType,{boundID:h.id,flags:0,name:"destroy",num:0,ptr:s,title:c.name+".free",typeList:["void","uint32_t","uint32_t"]}),i&&(c.superIdList=Array.prototype.slice.call(HEAPU32.subarray(r/4,r/4+i)),c.upcastList=Array.prototype.slice.call(HEAPU32.subarray(n/4,n/4+i))),Module[c.name]=c.makeBound(u),_nbind.BindClass.list.push(c)}function _removeAccessorPrefix(t){return t.replace(/^[Gg]et_?([A-Z]?([A-Z]?))/,(function(t,e,r){return r?e:e.toLowerCase()}))}function __nbind_register_function(t,e,r,n,i,s,a,o,u,l){var h,c=_nbind.getType(t),f=_nbind.readPolicyList(e),d=_nbind.readTypeIdList(r,n);if(5==a)h=[{direct:i,name:"__nbindConstructor",ptr:0,title:c.name+" constructor",typeList:["uint32_t"].concat(d.slice(1))},{direct:s,name:"__nbindValueConstructor",ptr:0,title:c.name+" value constructor",typeList:["void","uint32_t"].concat(d.slice(1))}];else{var p=_nbind.readAsciiString(o),g=(c.name&&c.name+".")+p;3!=a&&4!=a||(p=_removeAccessorPrefix(p)),h=[{boundID:t,direct:s,name:p,ptr:i,title:g,typeList:d}]}for(var v=0,_=h;v<_.length;v++){var m=_[v];m.signatureType=a,m.policyTbl=f,m.num=u,m.flags=l,c.addMethod(m)}}function _nbind_value(t,e){_nbind.typeNameTbl[t]||_nbind.throwError("Unknown value type "+t),Module.NBind.bind_value(t,e),_defineHidden(_nbind.typeNameTbl[t].proto.prototype.__nbindValueConstructor)(e.prototype,"__nbindValueConstructor")}function __nbind_get_value_object(t,e){var r=_nbind.popValue(t);if(!r.fromJS)throw new Error("Object "+r+" has no fromJS function");r.fromJS((function(){r.__nbindValueConstructor.apply(this,Array.prototype.concat.apply([e],arguments))}))}function _emscripten_memcpy_big(t,e,r){return HEAPU8.set(HEAPU8.subarray(e,e+r),t),t}function __nbind_register_primitive(t,e,r){var n={flags:1024|r,id:t,ptrSize:e};_nbind.makeType(_nbind.constructType,n)}Module._nbind_value=_nbind_value;var cttz_i8=allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",ALLOC_STATIC);function ___setErrNo(t){return Module.___errno_location&&(HEAP32[Module.___errno_location()>>2]=t),t}function _llvm_stacksave(){var t=_llvm_stacksave;return t.LLVM_SAVEDSTACKS||(t.LLVM_SAVEDSTACKS=[]),t.LLVM_SAVEDSTACKS.push(Runtime.stackSave()),t.LLVM_SAVEDSTACKS.length-1}function ___syscall140(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.getStreamFromFD(),n=(SYSCALLS.get(),SYSCALLS.get()),i=SYSCALLS.get(),s=SYSCALLS.get(),a=n;return FS.llseek(r,a,s),HEAP32[i>>2]=r.position,r.getdents&&0===a&&0===s&&(r.getdents=null),0}catch(t){return"undefined"!=typeof FS&&t instanceof FS.ErrnoError||abort(t),-t.errno}}function ___syscall146(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.get(),n=SYSCALLS.get(),i=SYSCALLS.get(),s=0;___syscall146.buffer||(___syscall146.buffers=[null,[],[]],___syscall146.printChar=function(t,e){var r=___syscall146.buffers[t];assert(r),0===e||10===e?((1===t?Module.print:Module.printErr)(UTF8ArrayToString(r,0)),r.length=0):r.push(e)});for(var a=0;a<i;a++){for(var o=HEAP32[n+8*a>>2],u=HEAP32[n+(8*a+4)>>2],l=0;l<u;l++)___syscall146.printChar(r,HEAPU8[o+l]);s+=u}return s}catch(t){return"undefined"!=typeof FS&&t instanceof FS.ErrnoError||abort(t),-t.errno}}function __nbind_finish(){for(var t=0,e=_nbind.BindClass.list;t<e.length;t++)e[t].finish()}var ___dso_handle=STATICTOP;function invoke_viiiii(t,e,r,n,i,s){try{Module.dynCall_viiiii(t,e,r,n,i,s)}catch(t){if("number"!=typeof t&&"longjmp"!==t)throw t;Module.setThrew(1,0)}}function invoke_vif(t,e,r){try{Module.dynCall_vif(t,e,r)}catch(t){if("number"!=typeof t&&"longjmp"!==t)throw t;Module.setThrew(1,0)}}function invoke_vid(t,e,r){try{Module.dynCall_vid(t,e,r)}catch(t){if("number"!=typeof t&&"longjmp"!==t)throw t;Module.setThrew(1,0)}}function invoke_fiff(t,e,r,n){try{return Module.dynCall_fiff(t,e,r,n)}catch(t){if("number"!=typeof t&&"longjmp"!==t)throw t;Module.setThrew(1,0)}}function invoke_vi(t,e){try{Module.dynCall_vi(t,e)}catch(t){if("number"!=typeof t&&"longjmp"!==t)throw t;Module.setThrew(1,0)}}function invoke_vii(t,e,r){try{Module.dynCall_vii(t,e,r)}catch(t){if("number"!=typeof t&&"longjmp"!==t)throw t;Module.setThrew(1,0)}}function invoke_ii(t,e){try{return Module.dynCall_ii(t,e)}catch(t){if("number"!=typeof t&&"longjmp"!==t)throw t;Module.setThrew(1,0)}}function invoke_viddi(t,e,r,n,i){try{Module.dynCall_viddi(t,e,r,n,i)}catch(t){if("number"!=typeof t&&"longjmp"!==t)throw t;Module.setThrew(1,0)}}function invoke_vidd(t,e,r,n){try{Module.dynCall_vidd(t,e,r,n)}catch(t){if("number"!=typeof t&&"longjmp"!==t)throw t;Module.setThrew(1,0)}}function invoke_iiii(t,e,r,n){try{return Module.dynCall_iiii(t,e,r,n)}catch(t){if("number"!=typeof t&&"longjmp"!==t)throw t;Module.setThrew(1,0)}}function invoke_diii(t,e,r,n){try{return Module.dynCall_diii(t,e,r,n)}catch(t){if("number"!=typeof t&&"longjmp"!==t)throw t;Module.setThrew(1,0)}}function invoke_di(t,e){try{return Module.dynCall_di(t,e)}catch(t){if("number"!=typeof t&&"longjmp"!==t)throw t;Module.setThrew(1,0)}}function invoke_iid(t,e,r){try{return Module.dynCall_iid(t,e,r)}catch(t){if("number"!=typeof t&&"longjmp"!==t)throw t;Module.setThrew(1,0)}}function invoke_iii(t,e,r){try{return Module.dynCall_iii(t,e,r)}catch(t){if("number"!=typeof t&&"longjmp"!==t)throw t;Module.setThrew(1,0)}}function invoke_viiddi(t,e,r,n,i,s){try{Module.dynCall_viiddi(t,e,r,n,i,s)}catch(t){if("number"!=typeof t&&"longjmp"!==t)throw t;Module.setThrew(1,0)}}function invoke_viiiiii(t,e,r,n,i,s,a){try{Module.dynCall_viiiiii(t,e,r,n,i,s,a)}catch(t){if("number"!=typeof t&&"longjmp"!==t)throw t;Module.setThrew(1,0)}}function invoke_dii(t,e,r){try{return Module.dynCall_dii(t,e,r)}catch(t){if("number"!=typeof t&&"longjmp"!==t)throw t;Module.setThrew(1,0)}}function invoke_i(t){try{return Module.dynCall_i(t)}catch(t){if("number"!=typeof t&&"longjmp"!==t)throw t;Module.setThrew(1,0)}}function invoke_iiiiii(t,e,r,n,i,s){try{return Module.dynCall_iiiiii(t,e,r,n,i,s)}catch(t){if("number"!=typeof t&&"longjmp"!==t)throw t;Module.setThrew(1,0)}}function invoke_viiid(t,e,r,n,i){try{Module.dynCall_viiid(t,e,r,n,i)}catch(t){if("number"!=typeof t&&"longjmp"!==t)throw t;Module.setThrew(1,0)}}function invoke_viififi(t,e,r,n,i,s,a){try{Module.dynCall_viififi(t,e,r,n,i,s,a)}catch(t){if("number"!=typeof t&&"longjmp"!==t)throw t;Module.setThrew(1,0)}}function invoke_viii(t,e,r,n){try{Module.dynCall_viii(t,e,r,n)}catch(t){if("number"!=typeof t&&"longjmp"!==t)throw t;Module.setThrew(1,0)}}function invoke_v(t){try{Module.dynCall_v(t)}catch(t){if("number"!=typeof t&&"longjmp"!==t)throw t;Module.setThrew(1,0)}}function invoke_viid(t,e,r,n){try{Module.dynCall_viid(t,e,r,n)}catch(t){if("number"!=typeof t&&"longjmp"!==t)throw t;Module.setThrew(1,0)}}function invoke_idd(t,e,r){try{return Module.dynCall_idd(t,e,r)}catch(t){if("number"!=typeof t&&"longjmp"!==t)throw t;Module.setThrew(1,0)}}function invoke_viiii(t,e,r,n,i){try{Module.dynCall_viiii(t,e,r,n,i)}catch(t){if("number"!=typeof t&&"longjmp"!==t)throw t;Module.setThrew(1,0)}}STATICTOP+=16,function(_nbind){var typeIdTbl={};_nbind.typeNameTbl={};var Pool=function(){function t(){}return t.lalloc=function(e){e=e+7&-8;var r=HEAPU32[t.usedPtr];return e>t.pageSize/2||e>t.pageSize-r?_nbind.typeNameTbl.NBind.proto.lalloc(e):(HEAPU32[t.usedPtr]=r+e,t.rootPtr+r)},t.lreset=function(e,r){HEAPU32[t.pagePtr]?_nbind.typeNameTbl.NBind.proto.lreset(e,r):HEAPU32[t.usedPtr]=e},t}();function constructType(t,e){var r=new(10240==t?_nbind.makeTypeNameTbl[e.name]||_nbind.BindType:_nbind.makeTypeKindTbl[t])(e);return typeIdTbl[e.id]=r,_nbind.typeNameTbl[e.name]=r,r}function getType(t){return typeIdTbl[t]}function queryType(t){var e=HEAPU8[t],r=_nbind.structureList[e][1];t/=4,r<0&&(++t,r=HEAPU32[t]+1);var n=Array.prototype.slice.call(HEAPU32.subarray(t+1,t+1+r));return 9==e&&(n=[n[0],n.slice(1)]),{paramList:n,placeholderFlag:e}}function getTypes(t,e){return t.map((function(t){return"number"==typeof t?_nbind.getComplexType(t,constructType,getType,queryType,e):_nbind.typeNameTbl[t]}))}function readTypeIdList(t,e){return Array.prototype.slice.call(HEAPU32,t/4,t/4+e)}function readAsciiString(t){for(var e=t;HEAPU8[e++];);return String.fromCharCode.apply("",HEAPU8.subarray(t,e-1))}function readPolicyList(t){var e={};if(t)for(;;){var r=HEAPU32[t/4];if(!r)break;e[readAsciiString(r)]=!0,t+=4}return e}function getDynCall(t,e){var r={float32_t:"d",float64_t:"d",int64_t:"d",uint64_t:"d",void:"v"},n=t.map((function(t){return r[t.name]||"i"})).join(""),i=Module["dynCall_"+n];if(!i)throw new Error("dynCall_"+n+" not found for "+e+"("+t.map((function(t){return t.name})).join(", ")+")");return i}function addMethod(t,e,r,n){var i=t[e];t.hasOwnProperty(e)&&i?((i.arity||0===i.arity)&&(i=_nbind.makeOverloader(i,i.arity),t[e]=i),i.addMethod(r,n)):(r.arity=n,t[e]=r)}function throwError(t){throw new Error(t)}_nbind.Pool=Pool,_nbind.constructType=constructType,_nbind.getType=getType,_nbind.queryType=queryType,_nbind.getTypes=getTypes,_nbind.readTypeIdList=readTypeIdList,_nbind.readAsciiString=readAsciiString,_nbind.readPolicyList=readPolicyList,_nbind.getDynCall=getDynCall,_nbind.addMethod=addMethod,_nbind.throwError=throwError,_nbind.bigEndian=!1;var _a=_typeModule(_typeModule);_nbind.Type=_a.Type,_nbind.makeType=_a.makeType,_nbind.getComplexType=_a.getComplexType,_nbind.structureList=_a.structureList;var BindType=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.heap=HEAPU32,e.ptrSize=4,e}return __extends(e,t),e.prototype.needsWireRead=function(t){return!!this.wireRead||!!this.makeWireRead},e.prototype.needsWireWrite=function(t){return!!this.wireWrite||!!this.makeWireWrite},e}(_nbind.Type);_nbind.BindType=BindType;var PrimitiveType=function(t){function e(e){var r=t.call(this,e)||this,n=32&e.flags?{32:HEAPF32,64:HEAPF64}:8&e.flags?{8:HEAPU8,16:HEAPU16,32:HEAPU32}:{8:HEAP8,16:HEAP16,32:HEAP32};return r.heap=n[8*e.ptrSize],r.ptrSize=e.ptrSize,r}return __extends(e,t),e.prototype.needsWireWrite=function(t){return!!t&&!!t.Strict},e.prototype.makeWireWrite=function(t,e){return e&&e.Strict&&function(t){if("number"==typeof t)return t;throw new Error("Type mismatch")}},e}(BindType);function pushCString(t,e){if(null==t){if(e&&e.Nullable)return 0;throw new Error("Type mismatch")}if(e&&e.Strict){if("string"!=typeof t)throw new Error("Type mismatch")}else t=t.toString();var r=Module.lengthBytesUTF8(t)+1,n=_nbind.Pool.lalloc(r);return Module.stringToUTF8Array(t,HEAPU8,n,r),n}function popCString(t){return 0===t?null:Module.Pointer_stringify(t)}_nbind.PrimitiveType=PrimitiveType,_nbind.pushCString=pushCString,_nbind.popCString=popCString;var CStringType=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.wireRead=popCString,e.wireWrite=pushCString,e.readResources=[_nbind.resources.pool],e.writeResources=[_nbind.resources.pool],e}return __extends(e,t),e.prototype.makeWireWrite=function(t,e){return function(t){return pushCString(t,e)}},e}(BindType);_nbind.CStringType=CStringType;var BooleanType=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.wireRead=function(t){return!!t},e}return __extends(e,t),e.prototype.needsWireWrite=function(t){return!!t&&!!t.Strict},e.prototype.makeWireRead=function(t){return"!!("+t+")"},e.prototype.makeWireWrite=function(t,e){return e&&e.Strict&&function(t){if("boolean"==typeof t)return t;throw new Error("Type mismatch")}||t},e}(BindType);_nbind.BooleanType=BooleanType;var Wrapper=function(){function t(){}return t.prototype.persist=function(){this.__nbindState|=1},t}();function makeBound(t,e){var r=function(t){function r(e,n,i,s){var a=t.call(this)||this;if(!(a instanceof r))return new(Function.prototype.bind.apply(r,Array.prototype.concat.apply([null],arguments)));var o=n,u=i,l=s;if(e!==_nbind.ptrMarker){var h=a.__nbindConstructor.apply(a,arguments);o=4608,l=HEAPU32[h/4],u=HEAPU32[h/4+1]}var c={configurable:!0,enumerable:!1,value:null,writable:!1},f={__nbindFlags:o,__nbindPtr:u};l&&(f.__nbindShared=l,_nbind.mark(a));for(var d=0,p=Object.keys(f);d<p.length;d++){var g=p[d];c.value=f[g],Object.defineProperty(a,g,c)}return _defineHidden(0)(a,"__nbindState"),a}return __extends(r,t),r.prototype.free=function(){e.destroy.call(this,this.__nbindShared,this.__nbindFlags),this.__nbindState|=2,disableMember(this,"__nbindShared"),disableMember(this,"__nbindPtr")},r}(Wrapper);return __decorate([_defineHidden()],r.prototype,"__nbindConstructor",void 0),__decorate([_defineHidden()],r.prototype,"__nbindValueConstructor",void 0),__decorate([_defineHidden(t)],r.prototype,"__nbindPolicies",void 0),r}function disableMember(t,e){function r(){throw new Error("Accessing deleted object")}Object.defineProperty(t,e,{configurable:!1,enumerable:!1,get:r,set:r})}_nbind.Wrapper=Wrapper,_nbind.makeBound=makeBound,_nbind.ptrMarker={};var BindClass=function(t){function e(e){var r=t.call(this,e)||this;return r.wireRead=function(t){return _nbind.popValue(t,r.ptrType)},r.wireWrite=function(t){return pushPointer(t,r.ptrType,!0)},r.pendingSuperCount=0,r.ready=!1,r.methodTbl={},e.paramList?(r.classType=e.paramList[0].classType,r.proto=r.classType.proto):r.classType=r,r}return __extends(e,t),e.prototype.makeBound=function(t){var e=_nbind.makeBound(t,this);return this.proto=e,this.ptrType.proto=e,e},e.prototype.addMethod=function(t){var e=this.methodTbl[t.name]||[];e.push(t),this.methodTbl[t.name]=e},e.prototype.registerMethods=function(t,e){for(var r,n=0,i=Object.keys(t.methodTbl);n<i.length;n++)for(var s=i[n],a=0,o=t.methodTbl[s];a<o.length;a++){var u=o[a],l=void 0,h=void 0;if(l=this.proto.prototype,!e||1==u.signatureType)switch(u.signatureType){case 1:l=this.proto;case 5:h=_nbind.makeCaller(u),_nbind.addMethod(l,u.name,h,u.typeList.length-1);break;case 4:r=_nbind.makeMethodCaller(t.ptrType,u);break;case 3:Object.defineProperty(l,u.name,{configurable:!0,enumerable:!1,get:_nbind.makeMethodCaller(t.ptrType,u),set:r});break;case 2:h=_nbind.makeMethodCaller(t.ptrType,u),_nbind.addMethod(l,u.name,h,u.typeList.length-1)}}},e.prototype.registerSuperMethods=function(t,e,r){if(!r[t.name]){r[t.name]=!0;for(var n,i=0,s=0,a=t.superIdList||[];s<a.length;s++){var o=a[s],u=_nbind.getType(o);n=i++<e||e<0?-1:0,this.registerSuperMethods(u,n,r)}this.registerMethods(t,e<0)}},e.prototype.finish=function(){if(this.ready)return this;this.ready=!0,this.superList=(this.superIdList||[]).map((function(t){return _nbind.getType(t).finish()}));var t=this.proto;if(this.superList.length){var e=function(){this.constructor=t};e.prototype=this.superList[0].proto.prototype,t.prototype=new e}return t!=Module&&(t.prototype.__nbindType=this),this.registerSuperMethods(this,1,{}),this},e.prototype.upcastStep=function(t,e){if(t==this)return e;for(var r=0;r<this.superList.length;++r){var n=this.superList[r].upcastStep(t,_nbind.callUpcast(this.upcastList[r],e));if(n)return n}return 0},e}(_nbind.BindType);function popPointer(t,e){return t?new e.proto(_nbind.ptrMarker,e.flags,t):null}function pushPointer(t,e,r){if(!(t instanceof _nbind.Wrapper)){if(r)return _nbind.pushValue(t);throw new Error("Type mismatch")}var n=t.__nbindPtr,i=t.__nbindType.classType,s=e.classType;if(t instanceof e.proto)for(;i!=s;)n=_nbind.callUpcast(i.upcastList[0],n),i=i.superList[0];else if(!(n=i.upcastStep(s,n)))throw new Error("Type mismatch");return n}function pushMutablePointer(t,e){var r=pushPointer(t,e);if(1&t.__nbindFlags)throw new Error("Passing a const value as a non-const argument");return r}BindClass.list=[],_nbind.BindClass=BindClass,_nbind.popPointer=popPointer,_nbind.pushPointer=pushPointer;var BindClassPtr=function(t){function e(e){var r=t.call(this,e)||this;r.classType=e.paramList[0].classType,r.proto=r.classType.proto;var n=1&e.flags,i=256==(896&r.flags)&&2&e.flags,s=n?pushPointer:pushMutablePointer,a=i?_nbind.popValue:popPointer;return r.makeWireWrite=function(t,e){return e.Nullable?function(t){return t?s(t,r):0}:function(t){return s(t,r)}},r.wireRead=function(t){return a(t,r)},r.wireWrite=function(t){return s(t,r)},r}return __extends(e,t),e}(_nbind.BindType);function popShared(t,e){var r=HEAPU32[t/4],n=HEAPU32[t/4+1];return n?new e.proto(_nbind.ptrMarker,e.flags,n,r):null}function pushShared(t,e){if(!(t instanceof e.proto))throw new Error("Type mismatch");return t.__nbindShared}function pushMutableShared(t,e){if(!(t instanceof e.proto))throw new Error("Type mismatch");if(1&t.__nbindFlags)throw new Error("Passing a const value as a non-const argument");return t.__nbindShared}_nbind.BindClassPtr=BindClassPtr,_nbind.popShared=popShared;var SharedClassPtr=function(t){function e(e){var r=t.call(this,e)||this;r.readResources=[_nbind.resources.pool],r.classType=e.paramList[0].classType,r.proto=r.classType.proto;var n=1&e.flags?pushShared:pushMutableShared;return r.wireRead=function(t){return popShared(t,r)},r.wireWrite=function(t){return n(t,r)},r}return __extends(e,t),e}(_nbind.BindType);_nbind.SharedClassPtr=SharedClassPtr,_nbind.externalList=[0];var firstFreeExternal=0,External=function(){function t(t){this.refCount=1,this.data=t}return t.prototype.register=function(){var t=firstFreeExternal;return t?firstFreeExternal=_nbind.externalList[t]:t=_nbind.externalList.length,_nbind.externalList[t]=this,t},t.prototype.reference=function(){++this.refCount},t.prototype.dereference=function(t){0==--this.refCount&&(this.free&&this.free(),_nbind.externalList[t]=firstFreeExternal,firstFreeExternal=t)},t}();function popExternal(t){var e=_nbind.externalList[t];return e.dereference(t),e.data}function pushExternal(t){var e=new External(t);return e.reference(),e.register()}_nbind.External=External;var ExternalType=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.wireRead=popExternal,e.wireWrite=pushExternal,e}return __extends(e,t),e}(_nbind.BindType);_nbind.ExternalType=ExternalType,_nbind.callbackSignatureList=[];var CallbackType=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.wireWrite=function(t){return"function"!=typeof t&&_nbind.throwError("Type mismatch"),new _nbind.External(t).register()},e}return __extends(e,t),e}(_nbind.BindType);_nbind.CallbackType=CallbackType,_nbind.valueList=[0];var firstFreeValue=0;function pushValue(t){var e=firstFreeValue;return e?firstFreeValue=_nbind.valueList[e]:e=_nbind.valueList.length,_nbind.valueList[e]=t,2*e+1}function popValue(t,e){if(t||_nbind.throwError("Value type JavaScript class is missing or not registered"),1&t){t>>=1;var r=_nbind.valueList[t];return _nbind.valueList[t]=firstFreeValue,firstFreeValue=t,r}if(e)return _nbind.popShared(t,e);throw new Error("Invalid value slot "+t)}_nbind.pushValue=pushValue,_nbind.popValue=popValue;var valueBase=0x10000000000000000;function push64(t){return"number"==typeof t?t:4096*pushValue(t)+valueBase}function pop64(t){return t<valueBase?t:popValue((t-valueBase)/4096)}var CreateValueType=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return __extends(e,t),e.prototype.makeWireWrite=function(t){return"(_nbind.pushValue(new "+t+"))"},e}(_nbind.BindType);_nbind.CreateValueType=CreateValueType;var Int64Type=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.wireWrite=push64,e.wireRead=pop64,e}return __extends(e,t),e}(_nbind.BindType);function pushArray(t,e){if(!t)return 0;var r=t.length;if((e.size||0===e.size)&&r<e.size)throw new Error("Type mismatch");var n=e.memberType.ptrSize,i=_nbind.Pool.lalloc(4+r*n);HEAPU32[i/4]=r;var s=e.memberType.heap,a=(i+4)/n,o=e.memberType.wireWrite,u=0;if(o)for(;u<r;)s[a++]=o(t[u++]);else for(;u<r;)s[a++]=t[u++];return i}function popArray(t,e){if(0===t)return null;var r=HEAPU32[t/4],n=new Array(r),i=e.memberType.heap;t=(t+4)/e.memberType.ptrSize;var s=e.memberType.wireRead,a=0;if(s)for(;a<r;)n[a++]=s(i[t++]);else for(;a<r;)n[a++]=i[t++];return n}_nbind.Int64Type=Int64Type,_nbind.pushArray=pushArray,_nbind.popArray=popArray;var ArrayType=function(t){function e(e){var r=t.call(this,e)||this;return r.wireRead=function(t){return popArray(t,r)},r.wireWrite=function(t){return pushArray(t,r)},r.readResources=[_nbind.resources.pool],r.writeResources=[_nbind.resources.pool],r.memberType=e.paramList[0],e.paramList[1]&&(r.size=e.paramList[1]),r}return __extends(e,t),e}(_nbind.BindType);function pushString(t,e){if(null==t){if(!e||!e.Nullable)throw new Error("Type mismatch");t=""}if(e&&e.Strict){if("string"!=typeof t)throw new Error("Type mismatch")}else t=t.toString();var r=Module.lengthBytesUTF8(t),n=_nbind.Pool.lalloc(4+r+1);return HEAPU32[n/4]=r,Module.stringToUTF8Array(t,HEAPU8,n+4,r+1),n}function popString(t){if(0===t)return null;var e=HEAPU32[t/4];return Module.Pointer_stringify(t+4,e)}_nbind.ArrayType=ArrayType,_nbind.pushString=pushString,_nbind.popString=popString;var StringType=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.wireRead=popString,e.wireWrite=pushString,e.readResources=[_nbind.resources.pool],e.writeResources=[_nbind.resources.pool],e}return __extends(e,t),e.prototype.makeWireWrite=function(t,e){return function(t){return pushString(t,e)}},e}(_nbind.BindType);function makeArgList(t){return Array.apply(null,Array(t)).map((function(t,e){return"a"+(e+1)}))}function anyNeedsWireWrite(t,e){return t.reduce((function(t,r){return t||r.needsWireWrite(e)}),!1)}function anyNeedsWireRead(t,e){return t.reduce((function(t,r){return t||!!r.needsWireRead(e)}),!1)}function makeWireRead(t,e,r,n){var i=t.length;return r.makeWireRead?r.makeWireRead(n,t,i):r.wireRead?(t[i]=r.wireRead,"(convertParamList["+i+"]("+n+"))"):n}function makeWireWrite(t,e,r,n){var i,s=t.length;return(i=r.makeWireWrite?r.makeWireWrite(n,e,t,s):r.wireWrite)?"string"==typeof i?i:(t[s]=i,"(convertParamList["+s+"]("+n+"))"):n}function buildCallerFunction(dynCall,ptrType,ptr,num,policyTbl,needsWireWrite,prefix,returnType,argTypeList,mask,err){var argList=makeArgList(argTypeList.length),convertParamList=[],callExpression=makeWireRead(convertParamList,policyTbl,returnType,"dynCall("+[prefix].concat(argList.map((function(t,e){return makeWireWrite(convertParamList,policyTbl,argTypeList[e],t)}))).join(",")+")"),resourceSet=_nbind.listResources([returnType],argTypeList),sourceCode="function("+argList.join(",")+"){"+(mask?"this.__nbindFlags&mask&&err();":"")+resourceSet.makeOpen()+"var r="+callExpression+";"+resourceSet.makeClose()+"return r;}";return eval("("+sourceCode+")")}function buildJSCallerFunction(returnType,argTypeList){var argList=makeArgList(argTypeList.length),convertParamList=[],callExpression=makeWireWrite(convertParamList,null,returnType,"_nbind.externalList[num].data("+argList.map((function(t,e){return makeWireRead(convertParamList,null,argTypeList[e],t)})).join(",")+")"),resourceSet=_nbind.listResources(argTypeList,[returnType]);resourceSet.remove(_nbind.resources.pool);var sourceCode="function("+["dummy","num"].concat(argList).join(",")+"){"+resourceSet.makeOpen()+"var r="+callExpression+";"+resourceSet.makeClose()+"return r;}";return eval("("+sourceCode+")")}function makeJSCaller(t){var e=t.length-1,r=_nbind.getTypes(t,"callback"),n=r[0],i=r.slice(1),s=anyNeedsWireRead(i,null);if(!n.needsWireWrite(null)&&!s)switch(e){case 0:return function(t,e){return _nbind.externalList[e].data()};case 1:return function(t,e,r){return _nbind.externalList[e].data(r)};case 2:return function(t,e,r,n){return _nbind.externalList[e].data(r,n)};case 3:return function(t,e,r,n,i){return _nbind.externalList[e].data(r,n,i)}}return buildJSCallerFunction(n,i)}function makeMethodCaller(t,e){var r=e.typeList.length-1,n=e.typeList.slice(0);n.splice(1,0,"uint32_t",e.boundID);var i=_nbind.getTypes(n,e.title),s=i[0],a=i.slice(3),o=s.needsWireRead(e.policyTbl),u=anyNeedsWireWrite(a,e.policyTbl),l=e.ptr,h=e.num,c=_nbind.getDynCall(i,e.title),f=1&~e.flags;function d(){throw new Error("Calling a non-const method on a const object")}if(!o&&!u)switch(r){case 0:return function(){return this.__nbindFlags&f?d():c(l,h,_nbind.pushPointer(this,t))};case 1:return function(e){return this.__nbindFlags&f?d():c(l,h,_nbind.pushPointer(this,t),e)};case 2:return function(e,r){return this.__nbindFlags&f?d():c(l,h,_nbind.pushPointer(this,t),e,r)};case 3:return function(e,r,n){return this.__nbindFlags&f?d():c(l,h,_nbind.pushPointer(this,t),e,r,n)}}return buildCallerFunction(c,t,l,h,e.policyTbl,u,"ptr,num,pushPointer(this,ptrType)",s,a,f)}function makeCaller(t){var e,r=t.typeList.length-1,n=_nbind.getTypes(t.typeList,t.title),i=n[0],s=n.slice(1),a=i.needsWireRead(t.policyTbl),o=anyNeedsWireWrite(s,t.policyTbl),u=t.direct,l=t.ptr;if(t.direct&&!a&&!o){var h=_nbind.getDynCall(n,t.title);switch(r){case 0:return function(){return h(u)};case 1:return function(t){return h(u,t)};case 2:return function(t,e){return h(u,t,e)};case 3:return function(t,e,r){return h(u,t,e,r)}}l=0}if(l){var c=t.typeList.slice(0);c.splice(1,0,"uint32_t"),n=_nbind.getTypes(c,t.title),e="ptr,num"}else l=u,e="ptr";return buildCallerFunction(_nbind.getDynCall(n,t.title),null,l,t.num,t.policyTbl,o,e,i,s)}function makeOverloader(t,e){var r=[];function n(){return r[arguments.length].apply(this,arguments)}return n.addMethod=function(t,e){r[e]=t},n.addMethod(t,e),n}_nbind.StringType=StringType,_nbind.buildJSCallerFunction=buildJSCallerFunction,_nbind.makeJSCaller=makeJSCaller,_nbind.makeMethodCaller=makeMethodCaller,_nbind.makeCaller=makeCaller,_nbind.makeOverloader=makeOverloader;var Resource=function(){function t(t,e){var r=this;this.makeOpen=function(){return Object.keys(r.openTbl).join("")},this.makeClose=function(){return Object.keys(r.closeTbl).join("")},this.openTbl={},this.closeTbl={},t&&(this.openTbl[t]=!0),e&&(this.closeTbl[e]=!0)}return t.prototype.add=function(t){for(var e=0,r=Object.keys(t.openTbl);e<r.length;e++){var n=r[e];this.openTbl[n]=!0}for(var i=0,s=Object.keys(t.closeTbl);i<s.length;i++)n=s[i],this.closeTbl[n]=!0},t.prototype.remove=function(t){for(var e=0,r=Object.keys(t.openTbl);e<r.length;e++){var n=r[e];delete this.openTbl[n]}for(var i=0,s=Object.keys(t.closeTbl);i<s.length;i++)n=s[i],delete this.closeTbl[n]},t}();function listResources(t,e){for(var r=new Resource,n=0,i=t;n<i.length;n++)for(var s=0,a=i[n].readResources||[];s<a.length;s++){var o=a[s];r.add(o)}for(var u=0,l=e;u<l.length;u++)for(var h=0,c=l[u].writeResources||[];h<c.length;h++)o=c[h],r.add(o);return r}_nbind.Resource=Resource,_nbind.listResources=listResources,_nbind.resources={pool:new Resource("var used=HEAPU32[_nbind.Pool.usedPtr],page=HEAPU32[_nbind.Pool.pagePtr];","_nbind.Pool.lreset(used,page);")};var ExternalBuffer=function(t){function e(e,r){var n=t.call(this,e)||this;return n.ptr=r,n}return __extends(e,t),e.prototype.free=function(){_free(this.ptr)},e}(_nbind.External);function getBuffer(t){return t instanceof ArrayBuffer?new Uint8Array(t):t instanceof DataView?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function pushBuffer(t,e){if(null==t&&e&&e.Nullable&&(t=[]),"object"!=typeof t)throw new Error("Type mismatch");var r=t,n=r.byteLength||r.length;if(!n&&0!==n&&0!==r.byteLength)throw new Error("Type mismatch");var i=_nbind.Pool.lalloc(8),s=_malloc(n),a=i/4;return HEAPU32[a++]=n,HEAPU32[a++]=s,HEAPU32[a++]=new ExternalBuffer(t,s).register(),HEAPU8.set(getBuffer(t),s),i}var BufferType=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.wireWrite=pushBuffer,e.readResources=[_nbind.resources.pool],e.writeResources=[_nbind.resources.pool],e}return __extends(e,t),e.prototype.makeWireWrite=function(t,e){return function(t){return pushBuffer(t,e)}},e}(_nbind.BindType);function commitBuffer(t,e,r){var n=_nbind.externalList[t].data,i=Buffer;if("function"!=typeof Buffer&&(i=function(){}),n instanceof Array);else{var s=HEAPU8.subarray(e,e+r);n instanceof i?("function"==typeof Buffer.from&&Buffer.from.length>=3?Buffer.from(s):new Buffer(s)).copy(n):getBuffer(n).set(s)}}_nbind.BufferType=BufferType,_nbind.commitBuffer=commitBuffer;var dirtyList=[],gcTimer=0;function sweep(){for(var t=0,e=dirtyList;t<e.length;t++){var r=e[t];3&r.__nbindState||r.free()}dirtyList=[],gcTimer=0}function toggleLightGC(t){_nbind.mark=t?function(t){dirtyList.push(t),gcTimer||(gcTimer=setTimeout(sweep,0))}:function(t){}}_nbind.mark=function(t){},_nbind.toggleLightGC=toggleLightGC}(_nbind),Module.requestFullScreen=function(t,e,r){Module.printErr("Module.requestFullScreen is deprecated. Please call Module.requestFullscreen instead."),Module.requestFullScreen=Module.requestFullscreen,Browser.requestFullScreen(t,e,r)},Module.requestFullscreen=function(t,e,r){Browser.requestFullscreen(t,e,r)},Module.requestAnimationFrame=function(t){Browser.requestAnimationFrame(t)},Module.setCanvasSize=function(t,e,r){Browser.setCanvasSize(t,e,r)},Module.pauseMainLoop=function(){Browser.mainLoop.pause()},Module.resumeMainLoop=function(){Browser.mainLoop.resume()},Module.getUserMedia=function(){Browser.getUserMedia()},Module.createContext=function(t,e,r,n){return Browser.createContext(t,e,r,n)},_emscripten_get_now=ENVIRONMENT_IS_NODE?function(){var t=process.hrtime();return 1e3*t[0]+t[1]/1e6}:"undefined"!=typeof dateNow?dateNow:"object"==typeof self&&self.performance&&"function"==typeof self.performance.now?function(){return self.performance.now()}:"object"==typeof performance&&"function"==typeof performance.now?function(){return performance.now()}:Date.now,__ATEXIT__.push((function(){var t=Module._fflush;t&&t(0);var e=___syscall146.printChar;if(e){var r=___syscall146.buffers;r[1].length&&e(1,10),r[2].length&&e(2,10)}})),DYNAMICTOP_PTR=allocate(1,"i32",ALLOC_STATIC),STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP),STACK_MAX=STACK_BASE+TOTAL_STACK,DYNAMIC_BASE=Runtime.alignMemory(STACK_MAX),HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE,staticSealed=!0,Module.asmGlobalArg={Math:Math,Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array,NaN:NaN,Infinity:1/0},Module.asmLibraryArg={abort:abort,assert:assert,enlargeMemory:enlargeMemory,getTotalMemory:getTotalMemory,abortOnCannotGrowMemory:abortOnCannotGrowMemory,invoke_viiiii:invoke_viiiii,invoke_vif:invoke_vif,invoke_vid:invoke_vid,invoke_fiff:invoke_fiff,invoke_vi:invoke_vi,invoke_vii:invoke_vii,invoke_ii:invoke_ii,invoke_viddi:invoke_viddi,invoke_vidd:invoke_vidd,invoke_iiii:invoke_iiii,invoke_diii:invoke_diii,invoke_di:invoke_di,invoke_iid:invoke_iid,invoke_iii:invoke_iii,invoke_viiddi:invoke_viiddi,invoke_viiiiii:invoke_viiiiii,invoke_dii:invoke_dii,invoke_i:invoke_i,invoke_iiiiii:invoke_iiiiii,invoke_viiid:invoke_viiid,invoke_viififi:invoke_viififi,invoke_viii:invoke_viii,invoke_v:invoke_v,invoke_viid:invoke_viid,invoke_idd:invoke_idd,invoke_viiii:invoke_viiii,_emscripten_asm_const_iiiii:_emscripten_asm_const_iiiii,_emscripten_asm_const_iiidddddd:_emscripten_asm_const_iiidddddd,_emscripten_asm_const_iiiid:_emscripten_asm_const_iiiid,__nbind_reference_external:__nbind_reference_external,_emscripten_asm_const_iiiiiiii:_emscripten_asm_const_iiiiiiii,_removeAccessorPrefix:_removeAccessorPrefix,_typeModule:_typeModule,__nbind_register_pool:__nbind_register_pool,__decorate:__decorate,_llvm_stackrestore:_llvm_stackrestore,___cxa_atexit:___cxa_atexit,__extends:__extends,__nbind_get_value_object:__nbind_get_value_object,__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj:__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,_emscripten_set_main_loop_timing:_emscripten_set_main_loop_timing,__nbind_register_primitive:__nbind_register_primitive,__nbind_register_type:__nbind_register_type,_emscripten_memcpy_big:_emscripten_memcpy_big,__nbind_register_function:__nbind_register_function,___setErrNo:___setErrNo,__nbind_register_class:__nbind_register_class,__nbind_finish:__nbind_finish,_abort:_abort,_nbind_value:_nbind_value,_llvm_stacksave:_llvm_stacksave,___syscall54:___syscall54,_defineHidden:_defineHidden,_emscripten_set_main_loop:_emscripten_set_main_loop,_emscripten_get_now:_emscripten_get_now,__nbind_register_callback_signature:__nbind_register_callback_signature,_emscripten_asm_const_iiiiii:_emscripten_asm_const_iiiiii,__nbind_free_external:__nbind_free_external,_emscripten_asm_const_iiii:_emscripten_asm_const_iiii,_emscripten_asm_const_iiididi:_emscripten_asm_const_iiididi,___syscall6:___syscall6,_atexit:_atexit,___syscall140:___syscall140,___syscall146:___syscall146,DYNAMICTOP_PTR:DYNAMICTOP_PTR,tempDoublePtr:tempDoublePtr,ABORT:ABORT,STACKTOP:STACKTOP,STACK_MAX:STACK_MAX,cttz_i8:cttz_i8,___dso_handle:___dso_handle};var asm=function(t,e,r){"use asm";var n=new t.Int8Array(r);var i=new t.Int16Array(r);var s=new t.Int32Array(r);var a=new t.Uint8Array(r);var o=new t.Uint16Array(r);var u=new t.Uint32Array(r);var l=new t.Float32Array(r);var h=new t.Float64Array(r);var c=e.DYNAMICTOP_PTR|0;var f=e.tempDoublePtr|0;var d=e.ABORT|0;var p=e.STACKTOP|0;var g=e.STACK_MAX|0;var v=e.cttz_i8|0;var _=e.___dso_handle|0;var m=0;var y=0;var b=0;var w=0;var C=t.NaN,S=t.Infinity;var T=0,k=0,x=0,E=0,P=0.0;var M=0;var R=t.Math.floor;var A=t.Math.abs;var L=t.Math.sqrt;var O=t.Math.pow;var N=t.Math.cos;var B=t.Math.sin;var D=t.Math.tan;var I=t.Math.acos;var F=t.Math.asin;var W=t.Math.atan;var z=t.Math.atan2;var U=t.Math.exp;var H=t.Math.log;var Y=t.Math.ceil;var G=t.Math.imul;var X=t.Math.min;var V=t.Math.max;var j=t.Math.clz32;var q=t.Math.fround;var $=e.abort;var K=e.assert;var J=e.enlargeMemory;var Z=e.getTotalMemory;var Q=e.abortOnCannotGrowMemory;var tt=e.invoke_viiiii;var et=e.invoke_vif;var rt=e.invoke_vid;var nt=e.invoke_fiff;var it=e.invoke_vi;var st=e.invoke_vii;var at=e.invoke_ii;var ot=e.invoke_viddi;var ut=e.invoke_vidd;var lt=e.invoke_iiii;var ht=e.invoke_diii;var ct=e.invoke_di;var ft=e.invoke_iid;var dt=e.invoke_iii;var pt=e.invoke_viiddi;var gt=e.invoke_viiiiii;var vt=e.invoke_dii;var _t=e.invoke_i;var mt=e.invoke_iiiiii;var yt=e.invoke_viiid;var bt=e.invoke_viififi;var wt=e.invoke_viii;var Ct=e.invoke_v;var St=e.invoke_viid;var Tt=e.invoke_idd;var kt=e.invoke_viiii;var xt=e._emscripten_asm_const_iiiii;var Et=e._emscripten_asm_const_iiidddddd;var Pt=e._emscripten_asm_const_iiiid;var Mt=e.__nbind_reference_external;var Rt=e._emscripten_asm_const_iiiiiiii;var At=e._removeAccessorPrefix;var Lt=e._typeModule;var Ot=e.__nbind_register_pool;var Nt=e.__decorate;var Bt=e._llvm_stackrestore;var Dt=e.___cxa_atexit;var It=e.__extends;var Ft=e.__nbind_get_value_object;var Wt=e.__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj;var zt=e._emscripten_set_main_loop_timing;var Ut=e.__nbind_register_primitive;var Ht=e.__nbind_register_type;var Yt=e._emscripten_memcpy_big;var Gt=e.__nbind_register_function;var Xt=e.___setErrNo;var Vt=e.__nbind_register_class;var jt=e.__nbind_finish;var qt=e._abort;var $t=e._nbind_value;var Kt=e._llvm_stacksave;var Jt=e.___syscall54;var Zt=e._defineHidden;var Qt=e._emscripten_set_main_loop;var te=e._emscripten_get_now;var ee=e.__nbind_register_callback_signature;var re=e._emscripten_asm_const_iiiiii;var ne=e.__nbind_free_external;var ie=e._emscripten_asm_const_iiii;var se=e._emscripten_asm_const_iiididi;var ae=e.___syscall6;var oe=e._atexit;var ue=e.___syscall140;var le=e.___syscall146;var he=q(0);const ce=q(0);function fe(t){t=t|0;var e=0;e=p;p=p+t|0;p=p+15&-16;return e|0}function de(){return p|0}function pe(t){t=t|0;p=t}function ge(t,e){t=t|0;e=e|0;p=t;g=e}function ve(t,e){t=t|0;e=e|0;if(!m){m=t;y=e}}function _e(t){t=t|0;M=t}function me(){return M|0}function ye(){var t=0,e=0;iP(8104,8,400)|0;iP(8504,408,540)|0;t=9044;e=t+44|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));n[9088]=0;n[9089]=1;s[2273]=0;s[2274]=948;s[2275]=948;Dt(17,8104,_|0)|0;return}function be(t){t=t|0;Xe(t+948|0);return}function we(t){t=q(t);return((Li(t)|0)&2147483647)>>>0>2139095040|0}function Ce(t,e,r){t=t|0;e=e|0;r=r|0;t:do{if(!(s[t+(e<<3)+4>>2]|0)){if((e|2|0)==3?s[t+60>>2]|0:0){t=t+56|0;break}switch(e|0){case 0:case 2:case 4:case 5:{if(s[t+52>>2]|0){t=t+48|0;break t}break}default:{}}if(!(s[t+68>>2]|0)){t=(e|1|0)==5?948:r;break}else{t=t+64|0;break}}else t=t+(e<<3)|0}while(0);return t|0}function Se(t){t=t|0;var e=0;e=Xx(1e3)|0;Te(t,(e|0)!=0,2456);s[2276]=(s[2276]|0)+1;iP(e|0,8104,1e3)|0;if(n[t+2>>0]|0){s[e+4>>2]=2;s[e+12>>2]=4}s[e+976>>2]=t;return e|0}function Te(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0;i=p;p=p+16|0;n=i;if(!e){s[n>>2]=r;In(t,5,3197,n)}p=i;return}function ke(){return Se(956)|0}function xe(t){t=t|0;var e=0;e=jE(1e3)|0;Ee(e,t);Te(s[t+976>>2]|0,1,2456);s[2276]=(s[2276]|0)+1;s[e+944>>2]=0;return e|0}function Ee(t,e){t=t|0;e=e|0;var r=0;iP(t|0,e|0,948)|0;zn(t+948|0,e+948|0);r=t+960|0;t=e+960|0;e=r+40|0;do{s[r>>2]=s[t>>2];r=r+4|0;t=t+4|0}while((r|0)<(e|0));return}function Pe(t){t=t|0;var e=0,r=0,n=0,i=0;e=t+944|0;r=s[e>>2]|0;if(r|0){Me(r+948|0,t)|0;s[e>>2]=0}r=Re(t)|0;if(r|0){e=0;do{s[(Ae(t,e)|0)+944>>2]=0;e=e+1|0}while((e|0)!=(r|0))}r=t+948|0;n=s[r>>2]|0;i=t+952|0;e=s[i>>2]|0;if((e|0)!=(n|0))s[i>>2]=e+(~((e+-4-n|0)>>>2)<<2);Le(r);Vx(t);s[2276]=(s[2276]|0)+-1;return}function Me(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0;n=s[t>>2]|0;u=t+4|0;r=s[u>>2]|0;a=r;t:do{if((n|0)==(r|0)){i=n;o=4}else{t=n;while(1){if((s[t>>2]|0)==(e|0)){i=t;o=4;break t}t=t+4|0;if((t|0)==(r|0)){t=0;break}}}}while(0);if((o|0)==4)if((i|0)!=(r|0)){n=i+4|0;t=a-n|0;e=t>>2;if(e){lP(i|0,n|0,t|0)|0;r=s[u>>2]|0}t=i+(e<<2)|0;if((r|0)==(t|0))t=1;else{s[u>>2]=r+(~((r+-4-t|0)>>>2)<<2);t=1}}else t=0;return t|0}function Re(t){t=t|0;return(s[t+952>>2]|0)-(s[t+948>>2]|0)>>2|0}function Ae(t,e){t=t|0;e=e|0;var r=0;r=s[t+948>>2]|0;if((s[t+952>>2]|0)-r>>2>>>0>e>>>0)t=s[r+(e<<2)>>2]|0;else t=0;return t|0}function Le(t){t=t|0;var e=0,r=0,n=0,i=0;n=p;p=p+32|0;e=n;i=s[t>>2]|0;r=(s[t+4>>2]|0)-i|0;if(((s[t+8>>2]|0)-i|0)>>>0>r>>>0){i=r>>2;Oi(e,i,i,t+8|0);Ni(t,e);Bi(e)}p=n;return}function Oe(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0,h=0;h=Re(t)|0;do{if(h|0){if((s[(Ae(t,0)|0)+944>>2]|0)==(t|0)){if(!(Me(t+948|0,e)|0))break;iP(e+400|0,8504,540)|0;s[e+944>>2]=0;Ge(t);break}o=s[(s[t+976>>2]|0)+12>>2]|0;u=t+948|0;l=(o|0)==0;r=0;a=0;do{n=s[(s[u>>2]|0)+(a<<2)>>2]|0;if((n|0)==(e|0))Ge(t);else{i=xe(n)|0;s[(s[u>>2]|0)+(r<<2)>>2]=i;s[i+944>>2]=t;if(!l)BM[o&15](n,i,t,r);r=r+1|0}a=a+1|0}while((a|0)!=(h|0));if(r>>>0<h>>>0){l=t+948|0;u=t+952|0;o=r;r=s[u>>2]|0;do{a=(s[l>>2]|0)+(o<<2)|0;n=a+4|0;i=r-n|0;e=i>>2;if(!e)i=r;else{lP(a|0,n|0,i|0)|0;r=s[u>>2]|0;i=r}n=a+(e<<2)|0;if((i|0)!=(n|0)){r=i+(~((i+-4-n|0)>>>2)<<2)|0;s[u>>2]=r}o=o+1|0}while((o|0)!=(h|0))}}}while(0);return}function Ne(t){t=t|0;var e=0,r=0,i=0,a=0;Be(t,(Re(t)|0)==0,2491);Be(t,(s[t+944>>2]|0)==0,2545);e=t+948|0;r=s[e>>2]|0;i=t+952|0;a=s[i>>2]|0;if((a|0)!=(r|0))s[i>>2]=a+(~((a+-4-r|0)>>>2)<<2);Le(e);e=t+976|0;r=s[e>>2]|0;iP(t|0,8104,1e3)|0;if(n[r+2>>0]|0){s[t+4>>2]=2;s[t+12>>2]=4}s[e>>2]=r;return}function Be(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0;i=p;p=p+16|0;n=i;if(!e){s[n>>2]=r;kn(t,5,3197,n)}p=i;return}function De(){return s[2276]|0}function Ie(){var t=0;t=Xx(20)|0;Fe((t|0)!=0,2592);s[2277]=(s[2277]|0)+1;s[t>>2]=s[239];s[t+4>>2]=s[240];s[t+8>>2]=s[241];s[t+12>>2]=s[242];s[t+16>>2]=s[243];return t|0}function Fe(t,e){t=t|0;e=e|0;var r=0,n=0;n=p;p=p+16|0;r=n;if(!t){s[r>>2]=e;kn(0,5,3197,r)}p=n;return}function We(t){t=t|0;Vx(t);s[2277]=(s[2277]|0)+-1;return}function ze(t,e){t=t|0;e=e|0;var r=0;if(!e){r=0;e=0}else{Be(t,(Re(t)|0)==0,2629);r=1}s[t+964>>2]=e;s[t+988>>2]=r;return}function Ue(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;n=p;p=p+16|0;a=n+8|0;i=n+4|0;o=n;s[i>>2]=e;Be(t,(s[e+944>>2]|0)==0,2709);Be(t,(s[t+964>>2]|0)==0,2763);He(t);e=t+948|0;s[o>>2]=(s[e>>2]|0)+(r<<2);s[a>>2]=s[o>>2];Ye(e,a,i)|0;s[(s[i>>2]|0)+944>>2]=t;Ge(t);p=n;return}function He(t){t=t|0;var e=0,r=0,n=0,i=0,a=0,o=0,u=0;r=Re(t)|0;if(r|0?(s[(Ae(t,0)|0)+944>>2]|0)!=(t|0):0){n=s[(s[t+976>>2]|0)+12>>2]|0;i=t+948|0;a=(n|0)==0;e=0;do{o=s[(s[i>>2]|0)+(e<<2)>>2]|0;u=xe(o)|0;s[(s[i>>2]|0)+(e<<2)>>2]=u;s[u+944>>2]=t;if(!a)BM[n&15](o,u,t,e);e=e+1|0}while((e|0)!=(r|0))}return}function Ye(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0,d=0,g=0,v=0,_=0,m=0,y=0;m=p;p=p+64|0;f=m+52|0;u=m+48|0;d=m+28|0;g=m+24|0;v=m+20|0;_=m;n=s[t>>2]|0;a=n;e=n+((s[e>>2]|0)-a>>2<<2)|0;n=t+4|0;i=s[n>>2]|0;o=t+8|0;do{if(i>>>0<(s[o>>2]|0)>>>0){if((e|0)==(i|0)){s[e>>2]=s[r>>2];s[n>>2]=(s[n>>2]|0)+4;break}Di(t,e,i,e+4|0);if(e>>>0<=r>>>0)r=(s[n>>2]|0)>>>0>r>>>0?r+4|0:r;s[e>>2]=s[r>>2]}else{n=(i-a>>2)+1|0;i=Yn(t)|0;if(i>>>0<n>>>0)zE(t);c=s[t>>2]|0;h=(s[o>>2]|0)-c|0;a=h>>1;Oi(_,h>>2>>>0<i>>>1>>>0?a>>>0<n>>>0?n:a:i,e-c>>2,t+8|0);c=_+8|0;n=s[c>>2]|0;a=_+12|0;h=s[a>>2]|0;o=h;l=n;do{if((n|0)==(h|0)){h=_+4|0;n=s[h>>2]|0;y=s[_>>2]|0;i=y;if(n>>>0<=y>>>0){n=o-i>>1;n=(n|0)==0?1:n;Oi(d,n,n>>>2,s[_+16>>2]|0);s[g>>2]=s[h>>2];s[v>>2]=s[c>>2];s[u>>2]=s[g>>2];s[f>>2]=s[v>>2];Fi(d,u,f);n=s[_>>2]|0;s[_>>2]=s[d>>2];s[d>>2]=n;n=d+4|0;y=s[h>>2]|0;s[h>>2]=s[n>>2];s[n>>2]=y;n=d+8|0;y=s[c>>2]|0;s[c>>2]=s[n>>2];s[n>>2]=y;n=d+12|0;y=s[a>>2]|0;s[a>>2]=s[n>>2];s[n>>2]=y;Bi(d);n=s[c>>2]|0;break}a=n;o=((a-i>>2)+1|0)/-2|0;u=n+(o<<2)|0;i=l-a|0;a=i>>2;if(a){lP(u|0,n|0,i|0)|0;n=s[h>>2]|0}y=u+(a<<2)|0;s[c>>2]=y;s[h>>2]=n+(o<<2);n=y}}while(0);s[n>>2]=s[r>>2];s[c>>2]=(s[c>>2]|0)+4;e=Ii(t,_,e)|0;Bi(_)}}while(0);p=m;return e|0}function Ge(t){t=t|0;var e=0;do{e=t+984|0;if(n[e>>0]|0)break;n[e>>0]=1;l[t+504>>2]=q(C);t=s[t+944>>2]|0}while((t|0)!=0);return}function Xe(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~((e+-4-n|0)>>>2)<<2);$E(r)}return}function Ve(t){t=t|0;return s[t+944>>2]|0}function je(t){t=t|0;Be(t,(s[t+964>>2]|0)!=0,2832);Ge(t);return}function qe(t){t=t|0;return(n[t+984>>0]|0)!=0|0}function $e(t,e){t=t|0;e=e|0;if(iE(t,e,400)|0){iP(t|0,e|0,400)|0;Ge(t)}return}function Ke(t){t=t|0;var e=ce;e=q(l[t+44>>2]);t=we(e)|0;return q(t?q(0.0):e)}function Je(t){t=t|0;var e=ce;e=q(l[t+48>>2]);if(we(e)|0)e=n[(s[t+976>>2]|0)+2>>0]|0?q(1.0):q(0.0);return q(e)}function Ze(t,e){t=t|0;e=e|0;s[t+980>>2]=e;return}function Qe(t){t=t|0;return s[t+980>>2]|0}function tr(t,e){t=t|0;e=e|0;var r=0;r=t+4|0;if((s[r>>2]|0)!=(e|0)){s[r>>2]=e;Ge(t)}return}function er(t){t=t|0;return s[t+4>>2]|0}function rr(t,e){t=t|0;e=e|0;var r=0;r=t+8|0;if((s[r>>2]|0)!=(e|0)){s[r>>2]=e;Ge(t)}return}function nr(t){t=t|0;return s[t+8>>2]|0}function ir(t,e){t=t|0;e=e|0;var r=0;r=t+12|0;if((s[r>>2]|0)!=(e|0)){s[r>>2]=e;Ge(t)}return}function sr(t){t=t|0;return s[t+12>>2]|0}function ar(t,e){t=t|0;e=e|0;var r=0;r=t+16|0;if((s[r>>2]|0)!=(e|0)){s[r>>2]=e;Ge(t)}return}function or(t){t=t|0;return s[t+16>>2]|0}function ur(t,e){t=t|0;e=e|0;var r=0;r=t+20|0;if((s[r>>2]|0)!=(e|0)){s[r>>2]=e;Ge(t)}return}function lr(t){t=t|0;return s[t+20>>2]|0}function hr(t,e){t=t|0;e=e|0;var r=0;r=t+24|0;if((s[r>>2]|0)!=(e|0)){s[r>>2]=e;Ge(t)}return}function cr(t){t=t|0;return s[t+24>>2]|0}function fr(t,e){t=t|0;e=e|0;var r=0;r=t+28|0;if((s[r>>2]|0)!=(e|0)){s[r>>2]=e;Ge(t)}return}function dr(t){t=t|0;return s[t+28>>2]|0}function pr(t,e){t=t|0;e=e|0;var r=0;r=t+32|0;if((s[r>>2]|0)!=(e|0)){s[r>>2]=e;Ge(t)}return}function gr(t){t=t|0;return s[t+32>>2]|0}function vr(t,e){t=t|0;e=e|0;var r=0;r=t+36|0;if((s[r>>2]|0)!=(e|0)){s[r>>2]=e;Ge(t)}return}function _r(t){t=t|0;return s[t+36>>2]|0}function mr(t,e){t=t|0;e=q(e);var r=0;r=t+40|0;if(q(l[r>>2])!=e){l[r>>2]=e;Ge(t)}return}function yr(t,e){t=t|0;e=q(e);var r=0;r=t+44|0;if(q(l[r>>2])!=e){l[r>>2]=e;Ge(t)}return}function br(t,e){t=t|0;e=q(e);var r=0;r=t+48|0;if(q(l[r>>2])!=e){l[r>>2]=e;Ge(t)}return}function wr(t,e){t=t|0;e=q(e);var r=0,n=0,i=0,a=0;a=we(e)|0;r=(a^1)&1;n=t+52|0;i=t+56|0;if(!(a|q(l[n>>2])==e?(s[i>>2]|0)==(r|0):0)){l[n>>2]=e;s[i>>2]=r;Ge(t)}return}function Cr(t,e){t=t|0;e=q(e);var r=0,n=0;n=t+52|0;r=t+56|0;if(!(!(q(l[n>>2])!=e)?(s[r>>2]|0)==2:0)){l[n>>2]=e;n=we(e)|0;s[r>>2]=n?3:2;Ge(t)}return}function Sr(t,e){t=t|0;e=e|0;var r=0,n=0;n=e+52|0;r=s[n+4>>2]|0;e=t;s[e>>2]=s[n>>2];s[e+4>>2]=r;return}function Tr(t,e,r){t=t|0;e=e|0;r=q(r);var n=0,i=0,a=0;a=we(r)|0;n=(a^1)&1;i=t+132+(e<<3)|0;e=t+132+(e<<3)+4|0;if(!(a|q(l[i>>2])==r?(s[e>>2]|0)==(n|0):0)){l[i>>2]=r;s[e>>2]=n;Ge(t)}return}function kr(t,e,r){t=t|0;e=e|0;r=q(r);var n=0,i=0,a=0;a=we(r)|0;n=a?0:2;i=t+132+(e<<3)|0;e=t+132+(e<<3)+4|0;if(!(a|q(l[i>>2])==r?(s[e>>2]|0)==(n|0):0)){l[i>>2]=r;s[e>>2]=n;Ge(t)}return}function xr(t,e,r){t=t|0;e=e|0;r=r|0;var n=0;n=e+132+(r<<3)|0;e=s[n+4>>2]|0;r=t;s[r>>2]=s[n>>2];s[r+4>>2]=e;return}function Er(t,e,r){t=t|0;e=e|0;r=q(r);var n=0,i=0,a=0;a=we(r)|0;n=(a^1)&1;i=t+60+(e<<3)|0;e=t+60+(e<<3)+4|0;if(!(a|q(l[i>>2])==r?(s[e>>2]|0)==(n|0):0)){l[i>>2]=r;s[e>>2]=n;Ge(t)}return}function Pr(t,e,r){t=t|0;e=e|0;r=q(r);var n=0,i=0,a=0;a=we(r)|0;n=a?0:2;i=t+60+(e<<3)|0;e=t+60+(e<<3)+4|0;if(!(a|q(l[i>>2])==r?(s[e>>2]|0)==(n|0):0)){l[i>>2]=r;s[e>>2]=n;Ge(t)}return}function Mr(t,e,r){t=t|0;e=e|0;r=r|0;var n=0;n=e+60+(r<<3)|0;e=s[n+4>>2]|0;r=t;s[r>>2]=s[n>>2];s[r+4>>2]=e;return}function Rr(t,e){t=t|0;e=e|0;var r=0;r=t+60+(e<<3)+4|0;if((s[r>>2]|0)!=3){l[t+60+(e<<3)>>2]=q(C);s[r>>2]=3;Ge(t)}return}function Ar(t,e,r){t=t|0;e=e|0;r=q(r);var n=0,i=0,a=0;a=we(r)|0;n=(a^1)&1;i=t+204+(e<<3)|0;e=t+204+(e<<3)+4|0;if(!(a|q(l[i>>2])==r?(s[e>>2]|0)==(n|0):0)){l[i>>2]=r;s[e>>2]=n;Ge(t)}return}function Lr(t,e,r){t=t|0;e=e|0;r=q(r);var n=0,i=0,a=0;a=we(r)|0;n=a?0:2;i=t+204+(e<<3)|0;e=t+204+(e<<3)+4|0;if(!(a|q(l[i>>2])==r?(s[e>>2]|0)==(n|0):0)){l[i>>2]=r;s[e>>2]=n;Ge(t)}return}function Or(t,e,r){t=t|0;e=e|0;r=r|0;var n=0;n=e+204+(r<<3)|0;e=s[n+4>>2]|0;r=t;s[r>>2]=s[n>>2];s[r+4>>2]=e;return}function Nr(t,e,r){t=t|0;e=e|0;r=q(r);var n=0,i=0,a=0;a=we(r)|0;n=(a^1)&1;i=t+276+(e<<3)|0;e=t+276+(e<<3)+4|0;if(!(a|q(l[i>>2])==r?(s[e>>2]|0)==(n|0):0)){l[i>>2]=r;s[e>>2]=n;Ge(t)}return}function Br(t,e){t=t|0;e=e|0;return q(l[t+276+(e<<3)>>2])}function Dr(t,e){t=t|0;e=q(e);var r=0,n=0,i=0,a=0;a=we(e)|0;r=(a^1)&1;n=t+348|0;i=t+352|0;if(!(a|q(l[n>>2])==e?(s[i>>2]|0)==(r|0):0)){l[n>>2]=e;s[i>>2]=r;Ge(t)}return}function Ir(t,e){t=t|0;e=q(e);var r=0,n=0;n=t+348|0;r=t+352|0;if(!(!(q(l[n>>2])!=e)?(s[r>>2]|0)==2:0)){l[n>>2]=e;n=we(e)|0;s[r>>2]=n?3:2;Ge(t)}return}function Fr(t){t=t|0;var e=0;e=t+352|0;if((s[e>>2]|0)!=3){l[t+348>>2]=q(C);s[e>>2]=3;Ge(t)}return}function Wr(t,e){t=t|0;e=e|0;var r=0,n=0;n=e+348|0;r=s[n+4>>2]|0;e=t;s[e>>2]=s[n>>2];s[e+4>>2]=r;return}function zr(t,e){t=t|0;e=q(e);var r=0,n=0,i=0,a=0;a=we(e)|0;r=(a^1)&1;n=t+356|0;i=t+360|0;if(!(a|q(l[n>>2])==e?(s[i>>2]|0)==(r|0):0)){l[n>>2]=e;s[i>>2]=r;Ge(t)}return}function Ur(t,e){t=t|0;e=q(e);var r=0,n=0;n=t+356|0;r=t+360|0;if(!(!(q(l[n>>2])!=e)?(s[r>>2]|0)==2:0)){l[n>>2]=e;n=we(e)|0;s[r>>2]=n?3:2;Ge(t)}return}function Hr(t){t=t|0;var e=0;e=t+360|0;if((s[e>>2]|0)!=3){l[t+356>>2]=q(C);s[e>>2]=3;Ge(t)}return}function Yr(t,e){t=t|0;e=e|0;var r=0,n=0;n=e+356|0;r=s[n+4>>2]|0;e=t;s[e>>2]=s[n>>2];s[e+4>>2]=r;return}function Gr(t,e){t=t|0;e=q(e);var r=0,n=0,i=0,a=0;a=we(e)|0;r=(a^1)&1;n=t+364|0;i=t+368|0;if(!(a|q(l[n>>2])==e?(s[i>>2]|0)==(r|0):0)){l[n>>2]=e;s[i>>2]=r;Ge(t)}return}function Xr(t,e){t=t|0;e=q(e);var r=0,n=0,i=0,a=0;a=we(e)|0;r=a?0:2;n=t+364|0;i=t+368|0;if(!(a|q(l[n>>2])==e?(s[i>>2]|0)==(r|0):0)){l[n>>2]=e;s[i>>2]=r;Ge(t)}return}function Vr(t,e){t=t|0;e=e|0;var r=0,n=0;n=e+364|0;r=s[n+4>>2]|0;e=t;s[e>>2]=s[n>>2];s[e+4>>2]=r;return}function jr(t,e){t=t|0;e=q(e);var r=0,n=0,i=0,a=0;a=we(e)|0;r=(a^1)&1;n=t+372|0;i=t+376|0;if(!(a|q(l[n>>2])==e?(s[i>>2]|0)==(r|0):0)){l[n>>2]=e;s[i>>2]=r;Ge(t)}return}function qr(t,e){t=t|0;e=q(e);var r=0,n=0,i=0,a=0;a=we(e)|0;r=a?0:2;n=t+372|0;i=t+376|0;if(!(a|q(l[n>>2])==e?(s[i>>2]|0)==(r|0):0)){l[n>>2]=e;s[i>>2]=r;Ge(t)}return}function $r(t,e){t=t|0;e=e|0;var r=0,n=0;n=e+372|0;r=s[n+4>>2]|0;e=t;s[e>>2]=s[n>>2];s[e+4>>2]=r;return}function Kr(t,e){t=t|0;e=q(e);var r=0,n=0,i=0,a=0;a=we(e)|0;r=(a^1)&1;n=t+380|0;i=t+384|0;if(!(a|q(l[n>>2])==e?(s[i>>2]|0)==(r|0):0)){l[n>>2]=e;s[i>>2]=r;Ge(t)}return}function Jr(t,e){t=t|0;e=q(e);var r=0,n=0,i=0,a=0;a=we(e)|0;r=a?0:2;n=t+380|0;i=t+384|0;if(!(a|q(l[n>>2])==e?(s[i>>2]|0)==(r|0):0)){l[n>>2]=e;s[i>>2]=r;Ge(t)}return}function Zr(t,e){t=t|0;e=e|0;var r=0,n=0;n=e+380|0;r=s[n+4>>2]|0;e=t;s[e>>2]=s[n>>2];s[e+4>>2]=r;return}function Qr(t,e){t=t|0;e=q(e);var r=0,n=0,i=0,a=0;a=we(e)|0;r=(a^1)&1;n=t+388|0;i=t+392|0;if(!(a|q(l[n>>2])==e?(s[i>>2]|0)==(r|0):0)){l[n>>2]=e;s[i>>2]=r;Ge(t)}return}function tn(t,e){t=t|0;e=q(e);var r=0,n=0,i=0,a=0;a=we(e)|0;r=a?0:2;n=t+388|0;i=t+392|0;if(!(a|q(l[n>>2])==e?(s[i>>2]|0)==(r|0):0)){l[n>>2]=e;s[i>>2]=r;Ge(t)}return}function en(t,e){t=t|0;e=e|0;var r=0,n=0;n=e+388|0;r=s[n+4>>2]|0;e=t;s[e>>2]=s[n>>2];s[e+4>>2]=r;return}function rn(t,e){t=t|0;e=q(e);var r=0;r=t+396|0;if(q(l[r>>2])!=e){l[r>>2]=e;Ge(t)}return}function nn(t){t=t|0;return q(l[t+396>>2])}function sn(t){t=t|0;return q(l[t+400>>2])}function an(t){t=t|0;return q(l[t+404>>2])}function on(t){t=t|0;return q(l[t+408>>2])}function un(t){t=t|0;return q(l[t+412>>2])}function ln(t){t=t|0;return q(l[t+416>>2])}function hn(t){t=t|0;return q(l[t+420>>2])}function cn(t,e){t=t|0;e=e|0;Be(t,(e|0)<6,2918);switch(e|0){case 0:{e=(s[t+496>>2]|0)==2?5:4;break}case 2:{e=(s[t+496>>2]|0)==2?4:5;break}default:{}}return q(l[t+424+(e<<2)>>2])}function fn(t,e){t=t|0;e=e|0;Be(t,(e|0)<6,2918);switch(e|0){case 0:{e=(s[t+496>>2]|0)==2?5:4;break}case 2:{e=(s[t+496>>2]|0)==2?4:5;break}default:{}}return q(l[t+448+(e<<2)>>2])}function dn(t,e){t=t|0;e=e|0;Be(t,(e|0)<6,2918);switch(e|0){case 0:{e=(s[t+496>>2]|0)==2?5:4;break}case 2:{e=(s[t+496>>2]|0)==2?4:5;break}default:{}}return q(l[t+472+(e<<2)>>2])}function pn(t,e){t=t|0;e=e|0;var r=0,n=ce;r=s[t+4>>2]|0;if((r|0)==(s[e+4>>2]|0)){if(!r)t=1;else{n=q(l[t>>2]);t=q(A(q(n-q(l[e>>2]))))<q(.0000999999974)}}else t=0;return t|0}function gn(t,e){t=q(t);e=q(e);var r=0;if(we(t)|0)r=we(e)|0;else r=q(A(q(t-e)))<q(.0000999999974);return r|0}function vn(t,e){t=t|0;e=e|0;_n(t,e);return}function _n(t,e){t=t|0;e=e|0;var r=0,i=0;r=p;p=p+16|0;i=r+4|0;s[i>>2]=0;s[i+4>>2]=0;s[i+8>>2]=0;Wt(i|0,t|0,e|0,0);kn(t,3,(n[i+11>>0]|0)<0?s[i>>2]|0:i,r);KE(i);p=r;return}function mn(t,e,r,n){t=q(t);e=q(e);r=r|0;n=n|0;var i=ce;t=q(t*e);i=q(IE(t,q(1.0)));do{if(!(gn(i,q(0.0))|0)){t=q(t-i);if(gn(i,q(1.0))|0){t=q(t+q(1.0));break}if(r){t=q(t+q(1.0));break}if(!n){if(i>q(.5))i=q(1.0);else{n=gn(i,q(.5))|0;i=n?q(1.0):q(0.0)}t=q(t+i)}}else t=q(t-i)}while(0);return q(t/e)}function yn(t,e,r,n,i,s,a,o,u,h,c,f,d){t=t|0;e=q(e);r=r|0;n=q(n);i=i|0;s=q(s);a=a|0;o=q(o);u=q(u);h=q(h);c=q(c);f=q(f);d=d|0;var p=0,g=ce,v=ce,_=ce,m=ce,y=ce,b=ce;if(u<q(0.0)|h<q(0.0))d=0;else{if((d|0)!=0?(g=q(l[d+4>>2]),g!=q(0.0)):0){_=q(mn(e,g,0,0));m=q(mn(n,g,0,0));v=q(mn(s,g,0,0));g=q(mn(o,g,0,0))}else{v=s;_=e;g=o;m=n}if((i|0)==(t|0))p=gn(v,_)|0;else p=0;if((a|0)==(r|0))d=gn(g,m)|0;else d=0;if((!p?(y=q(e-c),!(bn(t,y,u)|0)):0)?!(wn(t,y,i,u)|0):0)p=Cn(t,y,i,s,u)|0;else p=1;if((!d?(b=q(n-f),!(bn(r,b,h)|0)):0)?!(wn(r,b,a,h)|0):0)d=Cn(r,b,a,o,h)|0;else d=1;d=p&d}return d|0}function bn(t,e,r){t=t|0;e=q(e);r=q(r);if((t|0)==1)t=gn(e,r)|0;else t=0;return t|0}function wn(t,e,r,n){t=t|0;e=q(e);r=r|0;n=q(n);if((t|0)==2&(r|0)==0){if(!(e>=n))t=gn(e,n)|0;else t=1}else t=0;return t|0}function Cn(t,e,r,n,i){t=t|0;e=q(e);r=r|0;n=q(n);i=q(i);if((t|0)==2&(r|0)==2&n>e){if(!(i<=e))t=gn(e,i)|0;else t=1}else t=0;return t|0}function Sn(t,e,r,i,a,o,u,c,f,d,g){t=t|0;e=q(e);r=q(r);i=i|0;a=a|0;o=o|0;u=q(u);c=q(c);f=f|0;d=d|0;g=g|0;var v=0,_=0,m=0,y=0,b=ce,w=ce,C=0,S=0,T=0,k=0,x=0,E=0,P=0,M=0,R=0,A=0,L=0,O=ce,N=ce,B=ce,D=0.0,I=0.0;L=p;p=p+160|0;M=L+152|0;P=L+120|0;E=L+104|0;T=L+72|0;y=L+56|0;x=L+8|0;S=L;k=(s[2279]|0)+1|0;s[2279]=k;R=t+984|0;if((n[R>>0]|0)!=0?(s[t+512>>2]|0)!=(s[2278]|0):0)C=4;else if((s[t+516>>2]|0)==(i|0))A=0;else C=4;if((C|0)==4){s[t+520>>2]=0;s[t+924>>2]=-1;s[t+928>>2]=-1;l[t+932>>2]=q(-1.0);l[t+936>>2]=q(-1.0);A=1}t:do{if(!(s[t+964>>2]|0)){if(f){v=t+916|0;if(!(gn(q(l[v>>2]),e)|0)){C=21;break}if(!(gn(q(l[t+920>>2]),r)|0)){C=21;break}if((s[t+924>>2]|0)!=(a|0)){C=21;break}v=(s[t+928>>2]|0)==(o|0)?v:0;C=22;break}m=s[t+520>>2]|0;if(!m)C=21;else{_=0;while(1){v=t+524+(_*24|0)|0;if(((gn(q(l[v>>2]),e)|0?gn(q(l[t+524+(_*24|0)+4>>2]),r)|0:0)?(s[t+524+(_*24|0)+8>>2]|0)==(a|0):0)?(s[t+524+(_*24|0)+12>>2]|0)==(o|0):0){C=22;break t}_=_+1|0;if(_>>>0>=m>>>0){C=21;break}}}}else{b=q(Tn(t,2,u));w=q(Tn(t,0,u));v=t+916|0;B=q(l[v>>2]);N=q(l[t+920>>2]);O=q(l[t+932>>2]);if(!(yn(a,e,o,r,s[t+924>>2]|0,B,s[t+928>>2]|0,N,O,q(l[t+936>>2]),b,w,g)|0)){m=s[t+520>>2]|0;if(!m)C=21;else{_=0;while(1){v=t+524+(_*24|0)|0;O=q(l[v>>2]);N=q(l[t+524+(_*24|0)+4>>2]);B=q(l[t+524+(_*24|0)+16>>2]);if(yn(a,e,o,r,s[t+524+(_*24|0)+8>>2]|0,O,s[t+524+(_*24|0)+12>>2]|0,N,B,q(l[t+524+(_*24|0)+20>>2]),b,w,g)|0){C=22;break t}_=_+1|0;if(_>>>0>=m>>>0){C=21;break}}}}else C=22}}while(0);do{if((C|0)==21){if(!(n[11697]|0)){v=0;C=31}else{v=0;C=28}}else if((C|0)==22){_=(n[11697]|0)!=0;if(!((v|0)!=0&(A^1)))if(_){C=28;break}else{C=31;break}y=v+16|0;s[t+908>>2]=s[y>>2];m=v+20|0;s[t+912>>2]=s[m>>2];if(!((n[11698]|0)==0|_^1)){s[S>>2]=xn(k)|0;s[S+4>>2]=k;kn(t,4,2972,S);_=s[t+972>>2]|0;if(_|0)pM[_&127](t);a=En(a,f)|0;o=En(o,f)|0;I=+q(l[y>>2]);D=+q(l[m>>2]);s[x>>2]=a;s[x+4>>2]=o;h[x+8>>3]=+e;h[x+16>>3]=+r;h[x+24>>3]=I;h[x+32>>3]=D;s[x+40>>2]=d;kn(t,4,2989,x)}}}while(0);if((C|0)==28){_=xn(k)|0;s[y>>2]=_;s[y+4>>2]=k;s[y+8>>2]=A?3047:11699;kn(t,4,3038,y);_=s[t+972>>2]|0;if(_|0)pM[_&127](t);x=En(a,f)|0;C=En(o,f)|0;s[T>>2]=x;s[T+4>>2]=C;h[T+8>>3]=+e;h[T+16>>3]=+r;s[T+24>>2]=d;kn(t,4,3049,T);C=31}if((C|0)==31){Pn(t,e,r,i,a,o,u,c,f,g);if(n[11697]|0){_=s[2279]|0;x=xn(_)|0;s[E>>2]=x;s[E+4>>2]=_;s[E+8>>2]=A?3047:11699;kn(t,4,3083,E);_=s[t+972>>2]|0;if(_|0)pM[_&127](t);x=En(a,f)|0;E=En(o,f)|0;D=+q(l[t+908>>2]);I=+q(l[t+912>>2]);s[P>>2]=x;s[P+4>>2]=E;h[P+8>>3]=D;h[P+16>>3]=I;s[P+24>>2]=d;kn(t,4,3092,P)}s[t+516>>2]=i;if(!v){_=t+520|0;v=s[_>>2]|0;if((v|0)==16){if(n[11697]|0)kn(t,4,3124,M);s[_>>2]=0;v=0}if(f)v=t+916|0;else{s[_>>2]=v+1;v=t+524+(v*24|0)|0}l[v>>2]=e;l[v+4>>2]=r;s[v+8>>2]=a;s[v+12>>2]=o;s[v+16>>2]=s[t+908>>2];s[v+20>>2]=s[t+912>>2];v=0}}if(f){s[t+416>>2]=s[t+908>>2];s[t+420>>2]=s[t+912>>2];n[t+985>>0]=1;n[R>>0]=0}s[2279]=(s[2279]|0)+-1;s[t+512>>2]=s[2278];p=L;return A|(v|0)==0|0}function Tn(t,e,r){t=t|0;e=e|0;r=q(r);var n=ce;n=q(Gn(t,e,r));return q(n+q(Xn(t,e,r)))}function kn(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0;a=p;p=p+16|0;i=a;s[i>>2]=n;if(!t)n=0;else n=s[t+976>>2]|0;Fn(n,t,e,r,i);p=a;return}function xn(t){t=t|0;return(t>>>0>60?3201:3201+(60-t)|0)|0}function En(t,e){t=t|0;e=e|0;var r=0,n=0,i=0;i=p;p=p+32|0;r=i+12|0;n=i;s[r>>2]=s[254];s[r+4>>2]=s[255];s[r+8>>2]=s[256];s[n>>2]=s[257];s[n+4>>2]=s[258];s[n+8>>2]=s[259];if((t|0)>2)t=11699;else t=s[(e?n:r)+(t<<2)>>2]|0;p=i;return t|0}function Pn(t,e,r,i,o,u,h,c,d,g){t=t|0;e=q(e);r=q(r);i=i|0;o=o|0;u=u|0;h=q(h);c=q(c);d=d|0;g=g|0;var v=0,_=0,m=0,y=0,b=ce,w=ce,C=ce,S=ce,T=ce,k=ce,x=ce,E=0,P=0,M=0,R=ce,A=ce,L=0,O=ce,N=0,B=0,D=0,I=0,F=0,W=0,z=0,U=0,H=0,Y=0,G=0,X=0,V=0,j=0,$=0,K=0,J=0,Z=0,Q=ce,tt=ce,et=ce,rt=ce,nt=ce,it=0,st=0,at=0,ot=0,ut=0,lt=ce,ht=ce,ct=ce,ft=ce,dt=ce,pt=ce,gt=0,vt=ce,_t=ce,mt=ce,yt=ce,bt=ce,wt=ce,Ct=0,St=0,Tt=ce,kt=ce,xt=0,Et=0,Pt=0,Mt=0,Rt=ce,At=0,Lt=0,Ot=0,Nt=0,Bt=0,Dt=0,It=0,Ft=ce,Wt=0,zt=0;It=p;p=p+16|0;it=It+12|0;st=It+8|0;at=It+4|0;ot=It;Be(t,(o|0)==0|(we(e)|0)^1,3326);Be(t,(u|0)==0|(we(r)|0)^1,3406);Lt=qn(t,i)|0;s[t+496>>2]=Lt;Bt=$n(2,Lt)|0;Dt=$n(0,Lt)|0;l[t+440>>2]=q(Gn(t,Bt,h));l[t+444>>2]=q(Xn(t,Bt,h));l[t+428>>2]=q(Gn(t,Dt,h));l[t+436>>2]=q(Xn(t,Dt,h));l[t+464>>2]=q(Kn(t,Bt));l[t+468>>2]=q(Jn(t,Bt));l[t+452>>2]=q(Kn(t,Dt));l[t+460>>2]=q(Jn(t,Dt));l[t+488>>2]=q(Zn(t,Bt,h));l[t+492>>2]=q(Qn(t,Bt,h));l[t+476>>2]=q(Zn(t,Dt,h));l[t+484>>2]=q(Qn(t,Dt,h));do{if(!(s[t+964>>2]|0)){Ot=t+948|0;Nt=(s[t+952>>2]|0)-(s[Ot>>2]|0)>>2;if(!Nt){ei(t,e,r,o,u,h,c);break}if(!d?ri(t,e,r,o,u,h,c)|0:0)break;He(t);K=t+508|0;n[K>>0]=0;Bt=$n(s[t+4>>2]|0,Lt)|0;Dt=ni(Bt,Lt)|0;At=Vn(Bt)|0;J=s[t+8>>2]|0;Et=t+28|0;Z=(s[Et>>2]|0)!=0;bt=At?h:c;Tt=At?c:h;Q=q(ii(t,Bt,h));tt=q(si(t,Bt,h));b=q(ii(t,Dt,h));wt=q(ai(t,Bt,h));kt=q(ai(t,Dt,h));M=At?o:u;xt=At?u:o;Rt=At?wt:kt;T=At?kt:wt;yt=q(Tn(t,2,h));S=q(Tn(t,0,h));w=q(q(On(t+364|0,h))-Rt);C=q(q(On(t+380|0,h))-Rt);k=q(q(On(t+372|0,c))-T);x=q(q(On(t+388|0,c))-T);et=At?w:k;rt=At?C:x;yt=q(e-yt);e=q(yt-Rt);if(we(e)|0)Rt=e;else Rt=q(OE(q(BE(e,C)),w));_t=q(r-S);e=q(_t-T);if(we(e)|0)mt=e;else mt=q(OE(q(BE(e,x)),k));w=At?Rt:mt;vt=At?mt:Rt;t:do{if((M|0)==1){i=0;_=0;while(1){v=Ae(t,_)|0;if(!i){if(q(ui(v))>q(0.0)?q(li(v))>q(0.0):0)i=v;else i=0}else if(oi(v)|0){y=0;break t}_=_+1|0;if(_>>>0>=Nt>>>0){y=i;break}}}else y=0}while(0);E=y+500|0;P=y+504|0;i=0;v=0;e=q(0.0);m=0;do{_=s[(s[Ot>>2]|0)+(m<<2)>>2]|0;if((s[_+36>>2]|0)==1){hi(_);n[_+985>>0]=1;n[_+984>>0]=0}else{An(_);if(d)Nn(_,qn(_,Lt)|0,w,vt,Rt);do{if((s[_+24>>2]|0)!=1){if((_|0)==(y|0)){s[E>>2]=s[2278];l[P>>2]=q(0.0);break}else{ci(t,_,Rt,o,mt,Rt,mt,u,Lt,g);break}}else{if(v|0)s[v+960>>2]=_;s[_+960>>2]=0;v=_;i=(i|0)==0?_:i}}while(0);pt=q(l[_+504>>2]);e=q(e+q(pt+q(Tn(_,Bt,Rt))))}m=m+1|0}while((m|0)!=(Nt|0));D=e>w;gt=Z&((M|0)==2&D)?1:M;N=(xt|0)==1;F=N&(d^1);W=(gt|0)==1;z=(gt|0)==2;U=976+(Bt<<2)|0;H=(xt|2|0)==2;j=N&(Z^1);Y=1040+(Dt<<2)|0;G=1040+(Bt<<2)|0;X=976+(Dt<<2)|0;V=(xt|0)!=1;D=Z&((M|0)!=0&D);B=t+976|0;N=N^1;e=w;L=0;I=0;pt=q(0.0);nt=q(0.0);while(1){t:do{if(L>>>0<Nt>>>0){P=s[Ot>>2]|0;m=0;x=q(0.0);k=q(0.0);C=q(0.0);w=q(0.0);_=0;v=0;y=L;while(1){E=s[P+(y<<2)>>2]|0;if((s[E+36>>2]|0)!=1?(s[E+940>>2]=I,(s[E+24>>2]|0)!=1):0){S=q(Tn(E,Bt,Rt));$=s[U>>2]|0;r=q(On(E+380+($<<3)|0,bt));T=q(l[E+504>>2]);r=q(BE(r,T));r=q(OE(q(On(E+364+($<<3)|0,bt)),r));if(Z&(m|0)!=0&q(S+q(k+r))>e){u=m;S=x;M=y;break t}S=q(S+r);r=q(k+S);S=q(x+S);if(oi(E)|0){C=q(C+q(ui(E)));w=q(w-q(T*q(li(E))))}if(v|0)s[v+960>>2]=E;s[E+960>>2]=0;m=m+1|0;v=E;_=(_|0)==0?E:_}else{S=x;r=k}y=y+1|0;if(y>>>0<Nt>>>0){x=S;k=r}else{u=m;M=y;break}}}else{u=0;S=q(0.0);C=q(0.0);w=q(0.0);_=0;M=L}}while(0);$=C>q(0.0)&C<q(1.0);R=$?q(1.0):C;$=w>q(0.0)&w<q(1.0);x=$?q(1.0):w;do{if(!W){if(!(S<et&((we(et)|0)^1))){if(!(S>rt&((we(rt)|0)^1))){if(!(n[(s[B>>2]|0)+3>>0]|0)){if(!(R==q(0.0))?!(q(ui(t))==q(0.0)):0){$=53;break}e=S;$=53}else $=51}else{e=rt;$=51}}else{e=et;$=51}}else $=51}while(0);if(($|0)==51){$=0;if(we(e)|0)$=53;else{A=q(e-S);O=e}}if(($|0)==53){$=0;if(S<q(0.0)){A=q(-S);O=e}else{A=q(0.0);O=e}}if(!F?(ut=(_|0)==0,!ut):0){m=s[U>>2]|0;y=A<q(0.0);T=q(A/x);E=A>q(0.0);k=q(A/R);C=q(0.0);S=q(0.0);e=q(0.0);v=_;do{r=q(On(v+380+(m<<3)|0,bt));w=q(On(v+364+(m<<3)|0,bt));w=q(BE(r,q(OE(w,q(l[v+504>>2])))));if(y){r=q(w*q(li(v)));if(r!=q(-0.0)?(Ft=q(w-q(T*r)),lt=q(fi(v,Bt,Ft,O,Rt)),Ft!=lt):0){C=q(C-q(lt-w));e=q(e+r)}}else if((E?(ht=q(ui(v)),ht!=q(0.0)):0)?(Ft=q(w+q(k*ht)),ct=q(fi(v,Bt,Ft,O,Rt)),Ft!=ct):0){C=q(C-q(ct-w));S=q(S-ht)}v=s[v+960>>2]|0}while((v|0)!=0);e=q(x+e);w=q(A+C);if(!ut){T=q(R+S);y=s[U>>2]|0;E=w<q(0.0);P=e==q(0.0);k=q(w/e);m=w>q(0.0);T=q(w/T);e=q(0.0);do{Ft=q(On(_+380+(y<<3)|0,bt));C=q(On(_+364+(y<<3)|0,bt));C=q(BE(Ft,q(OE(C,q(l[_+504>>2])))));if(E){Ft=q(C*q(li(_)));w=q(-Ft);if(Ft!=q(-0.0)){Ft=q(k*w);w=q(fi(_,Bt,q(C+(P?w:Ft)),O,Rt))}else w=C}else if(m?(ft=q(ui(_)),ft!=q(0.0)):0)w=q(fi(_,Bt,q(C+q(T*ft)),O,Rt));else w=C;e=q(e-q(w-C));S=q(Tn(_,Bt,Rt));r=q(Tn(_,Dt,Rt));w=q(w+S);l[st>>2]=w;s[ot>>2]=1;C=q(l[_+396>>2]);t:do{if(we(C)|0){v=we(vt)|0;do{if(!v){if(D|(Ln(_,Dt,vt)|0|N))break;if((di(t,_)|0)!=4)break;if((s[(pi(_,Dt)|0)+4>>2]|0)==3)break;if((s[(gi(_,Dt)|0)+4>>2]|0)==3)break;l[it>>2]=vt;s[at>>2]=1;break t}}while(0);if(Ln(_,Dt,vt)|0){v=s[_+992+(s[X>>2]<<2)>>2]|0;Ft=q(r+q(On(v,vt)));l[it>>2]=Ft;v=V&(s[v+4>>2]|0)==2;s[at>>2]=((we(Ft)|0|v)^1)&1;break}else{l[it>>2]=vt;s[at>>2]=v?0:2;break}}else{Ft=q(w-S);R=q(Ft/C);Ft=q(C*Ft);s[at>>2]=1;l[it>>2]=q(r+(At?R:Ft))}}while(0);vi(_,Bt,O,Rt,ot,st);vi(_,Dt,vt,Rt,at,it);do{if(!(Ln(_,Dt,vt)|0)?(di(t,_)|0)==4:0){if((s[(pi(_,Dt)|0)+4>>2]|0)==3){v=0;break}v=(s[(gi(_,Dt)|0)+4>>2]|0)!=3}else v=0}while(0);Ft=q(l[st>>2]);R=q(l[it>>2]);Wt=s[ot>>2]|0;zt=s[at>>2]|0;Sn(_,At?Ft:R,At?R:Ft,Lt,At?Wt:zt,At?zt:Wt,Rt,mt,d&(v^1),3488,g)|0;n[K>>0]=n[K>>0]|n[_+508>>0];_=s[_+960>>2]|0}while((_|0)!=0)}else e=q(0.0)}else e=q(0.0);e=q(A+e);zt=e<q(0.0)&1;n[K>>0]=zt|a[K>>0];if(z&e>q(0.0)){v=s[U>>2]|0;if((s[t+364+(v<<3)+4>>2]|0)!=0?(dt=q(On(t+364+(v<<3)|0,bt)),dt>=q(0.0)):0)w=q(OE(q(0.0),q(dt-q(O-e))));else w=q(0.0)}else w=e;E=L>>>0<M>>>0;if(E){y=s[Ot>>2]|0;m=L;v=0;do{_=s[y+(m<<2)>>2]|0;if(!(s[_+24>>2]|0)){v=((s[(pi(_,Bt)|0)+4>>2]|0)==3&1)+v|0;v=v+((s[(gi(_,Bt)|0)+4>>2]|0)==3&1)|0}m=m+1|0}while((m|0)!=(M|0));if(v){S=q(0.0);r=q(0.0)}else $=101}else $=101;t:do{if(($|0)==101){$=0;switch(J|0){case 1:{v=0;S=q(w*q(.5));r=q(0.0);break t}case 2:{v=0;S=w;r=q(0.0);break t}case 3:{if(u>>>0<=1){v=0;S=q(0.0);r=q(0.0);break t}r=q((u+-1|0)>>>0);v=0;S=q(0.0);r=q(q(OE(w,q(0.0)))/r);break t}case 5:{r=q(w/q((u+1|0)>>>0));v=0;S=r;break t}case 4:{r=q(w/q(u>>>0));v=0;S=q(r*q(.5));break t}default:{v=0;S=q(0.0);r=q(0.0);break t}}}}while(0);e=q(Q+S);if(E){C=q(w/q(v|0));m=s[Ot>>2]|0;_=L;w=q(0.0);do{v=s[m+(_<<2)>>2]|0;t:do{if((s[v+36>>2]|0)!=1){switch(s[v+24>>2]|0){case 1:{if(_i(v,Bt)|0){if(!d)break t;Ft=q(mi(v,Bt,O));Ft=q(Ft+q(Kn(t,Bt)));Ft=q(Ft+q(Gn(v,Bt,Rt)));l[v+400+(s[G>>2]<<2)>>2]=Ft;break t}break}case 0:{zt=(s[(pi(v,Bt)|0)+4>>2]|0)==3;Ft=q(C+e);e=zt?Ft:e;if(d){zt=v+400+(s[G>>2]<<2)|0;l[zt>>2]=q(e+q(l[zt>>2]))}zt=(s[(gi(v,Bt)|0)+4>>2]|0)==3;Ft=q(C+e);e=zt?Ft:e;if(F){Ft=q(r+q(Tn(v,Bt,Rt)));w=vt;e=q(e+q(Ft+q(l[v+504>>2])));break t}else{e=q(e+q(r+q(yi(v,Bt,Rt))));w=q(OE(w,q(yi(v,Dt,Rt))));break t}}default:{}}if(d){Ft=q(S+q(Kn(t,Bt)));zt=v+400+(s[G>>2]<<2)|0;l[zt>>2]=q(Ft+q(l[zt>>2]))}}}while(0);_=_+1|0}while((_|0)!=(M|0))}else w=q(0.0);r=q(tt+e);if(H)S=q(q(fi(t,Dt,q(kt+w),Tt,h))-kt);else S=vt;C=q(q(fi(t,Dt,q(kt+(j?vt:w)),Tt,h))-kt);if(E&d){_=L;do{m=s[(s[Ot>>2]|0)+(_<<2)>>2]|0;do{if((s[m+36>>2]|0)!=1){if((s[m+24>>2]|0)==1){if(_i(m,Dt)|0){Ft=q(mi(m,Dt,vt));Ft=q(Ft+q(Kn(t,Dt)));Ft=q(Ft+q(Gn(m,Dt,Rt)));v=s[Y>>2]|0;l[m+400+(v<<2)>>2]=Ft;if(!(we(Ft)|0))break}else v=s[Y>>2]|0;Ft=q(Kn(t,Dt));l[m+400+(v<<2)>>2]=q(Ft+q(Gn(m,Dt,Rt)));break}v=di(t,m)|0;do{if((v|0)==4){if((s[(pi(m,Dt)|0)+4>>2]|0)==3){$=139;break}if((s[(gi(m,Dt)|0)+4>>2]|0)==3){$=139;break}if(Ln(m,Dt,vt)|0){e=b;break}Wt=s[m+908+(s[U>>2]<<2)>>2]|0;s[it>>2]=Wt;e=q(l[m+396>>2]);zt=we(e)|0;w=(s[f>>2]=Wt,q(l[f>>2]));if(zt)e=C;else{A=q(Tn(m,Dt,Rt));Ft=q(w/e);e=q(e*w);e=q(A+(At?Ft:e))}l[st>>2]=e;l[it>>2]=q(q(Tn(m,Bt,Rt))+w);s[at>>2]=1;s[ot>>2]=1;vi(m,Bt,O,Rt,at,it);vi(m,Dt,vt,Rt,ot,st);e=q(l[it>>2]);A=q(l[st>>2]);Ft=At?e:A;e=At?A:e;zt=((we(Ft)|0)^1)&1;Sn(m,Ft,e,Lt,zt,((we(e)|0)^1)&1,Rt,mt,1,3493,g)|0;e=b}else $=139}while(0);t:do{if(($|0)==139){$=0;e=q(S-q(yi(m,Dt,Rt)));do{if((s[(pi(m,Dt)|0)+4>>2]|0)==3){if((s[(gi(m,Dt)|0)+4>>2]|0)!=3)break;e=q(b+q(OE(q(0.0),q(e*q(.5)))));break t}}while(0);if((s[(gi(m,Dt)|0)+4>>2]|0)==3){e=b;break}if((s[(pi(m,Dt)|0)+4>>2]|0)==3){e=q(b+q(OE(q(0.0),e)));break}switch(v|0){case 1:{e=b;break t}case 2:{e=q(b+q(e*q(.5)));break t}default:{e=q(b+e);break t}}}}while(0);Ft=q(pt+e);zt=m+400+(s[Y>>2]<<2)|0;l[zt>>2]=q(Ft+q(l[zt>>2]))}}while(0);_=_+1|0}while((_|0)!=(M|0))}pt=q(pt+C);nt=q(OE(nt,r));u=I+1|0;if(M>>>0>=Nt>>>0)break;else{e=O;L=M;I=u}}do{if(d){v=u>>>0>1;if(!v?!(bi(t)|0):0)break;if(!(we(vt)|0)){e=q(vt-pt);t:do{switch(s[t+12>>2]|0){case 3:{b=q(b+e);k=q(0.0);break}case 2:{b=q(b+q(e*q(.5)));k=q(0.0);break}case 4:{if(vt>pt)k=q(e/q(u>>>0));else k=q(0.0);break}case 7:if(vt>pt){b=q(b+q(e/q(u<<1>>>0)));k=q(e/q(u>>>0));k=v?k:q(0.0);break t}else{b=q(b+q(e*q(.5)));k=q(0.0);break t}case 6:{k=q(e/q(I>>>0));k=vt>pt&v?k:q(0.0);break}default:k=q(0.0)}}while(0);if(u|0){E=1040+(Dt<<2)|0;P=976+(Dt<<2)|0;y=0;_=0;while(1){t:do{if(_>>>0<Nt>>>0){w=q(0.0);C=q(0.0);e=q(0.0);m=_;while(1){v=s[(s[Ot>>2]|0)+(m<<2)>>2]|0;do{if((s[v+36>>2]|0)!=1?(s[v+24>>2]|0)==0:0){if((s[v+940>>2]|0)!=(y|0))break t;if(wi(v,Dt)|0){Ft=q(l[v+908+(s[P>>2]<<2)>>2]);e=q(OE(e,q(Ft+q(Tn(v,Dt,Rt)))))}if((di(t,v)|0)!=5)break;dt=q(Ci(v));dt=q(dt+q(Gn(v,0,Rt)));Ft=q(l[v+912>>2]);Ft=q(q(Ft+q(Tn(v,0,Rt)))-dt);dt=q(OE(C,dt));Ft=q(OE(w,Ft));w=Ft;C=dt;e=q(OE(e,q(dt+Ft)))}}while(0);v=m+1|0;if(v>>>0<Nt>>>0)m=v;else{m=v;break}}}else{C=q(0.0);e=q(0.0);m=_}}while(0);T=q(k+e);r=b;b=q(b+T);if(_>>>0<m>>>0){S=q(r+C);v=_;do{_=s[(s[Ot>>2]|0)+(v<<2)>>2]|0;t:do{if((s[_+36>>2]|0)!=1?(s[_+24>>2]|0)==0:0)switch(di(t,_)|0){case 1:{Ft=q(r+q(Gn(_,Dt,Rt)));l[_+400+(s[E>>2]<<2)>>2]=Ft;break t}case 3:{Ft=q(q(b-q(Xn(_,Dt,Rt)))-q(l[_+908+(s[P>>2]<<2)>>2]));l[_+400+(s[E>>2]<<2)>>2]=Ft;break t}case 2:{Ft=q(r+q(q(T-q(l[_+908+(s[P>>2]<<2)>>2]))*q(.5)));l[_+400+(s[E>>2]<<2)>>2]=Ft;break t}case 4:{Ft=q(r+q(Gn(_,Dt,Rt)));l[_+400+(s[E>>2]<<2)>>2]=Ft;if(Ln(_,Dt,vt)|0)break t;if(At){w=q(l[_+908>>2]);e=q(w+q(Tn(_,Bt,Rt)));C=T}else{C=q(l[_+912>>2]);C=q(C+q(Tn(_,Dt,Rt)));e=T;w=q(l[_+908>>2])}if(gn(e,w)|0?gn(C,q(l[_+912>>2]))|0:0)break t;Sn(_,e,C,Lt,1,1,Rt,mt,1,3501,g)|0;break t}case 5:{l[_+404>>2]=q(q(S-q(Ci(_)))+q(mi(_,0,vt)));break t}default:break t}}while(0);v=v+1|0}while((v|0)!=(m|0))}y=y+1|0;if((y|0)==(u|0))break;else _=m}}}}}while(0);l[t+908>>2]=q(fi(t,2,yt,h,h));l[t+912>>2]=q(fi(t,0,_t,c,h));if((gt|0)!=0?(Ct=s[t+32>>2]|0,St=(gt|0)==2,!(St&(Ct|0)!=2)):0){if(St&(Ct|0)==2){e=q(wt+O);e=q(OE(q(BE(e,q(Si(t,Bt,nt,bt)))),wt));$=198}}else{e=q(fi(t,Bt,nt,bt,h));$=198}if(($|0)==198)l[t+908+(s[976+(Bt<<2)>>2]<<2)>>2]=e;if((xt|0)!=0?(Pt=s[t+32>>2]|0,Mt=(xt|0)==2,!(Mt&(Pt|0)!=2)):0){if(Mt&(Pt|0)==2){e=q(kt+vt);e=q(OE(q(BE(e,q(Si(t,Dt,q(kt+pt),Tt)))),kt));$=204}}else{e=q(fi(t,Dt,q(kt+pt),Tt,h));$=204}if(($|0)==204)l[t+908+(s[976+(Dt<<2)>>2]<<2)>>2]=e;if(d){if((s[Et>>2]|0)==2){_=976+(Dt<<2)|0;m=1040+(Dt<<2)|0;v=0;do{y=Ae(t,v)|0;if(!(s[y+24>>2]|0)){Wt=s[_>>2]|0;Ft=q(l[t+908+(Wt<<2)>>2]);zt=y+400+(s[m>>2]<<2)|0;Ft=q(Ft-q(l[zt>>2]));l[zt>>2]=q(Ft-q(l[y+908+(Wt<<2)>>2]))}v=v+1|0}while((v|0)!=(Nt|0))}if(i|0){v=At?gt:o;do{Ti(t,i,Rt,v,mt,Lt,g);i=s[i+960>>2]|0}while((i|0)!=0)}v=(Bt|2|0)==3;_=(Dt|2|0)==3;if(v|_){i=0;do{m=s[(s[Ot>>2]|0)+(i<<2)>>2]|0;if((s[m+36>>2]|0)!=1){if(v)ki(t,m,Bt);if(_)ki(t,m,Dt)}i=i+1|0}while((i|0)!=(Nt|0))}}}else ti(t,e,r,o,u,h,c)}while(0);p=It;return}function Mn(t,e){t=t|0;e=q(e);var r=0;Te(t,e>=q(0.0),3147);r=e==q(0.0);l[t+4>>2]=r?q(0.0):e;return}function Rn(t,e,r,i){t=t|0;e=q(e);r=q(r);i=i|0;var a=ce,o=ce,u=0,h=0,c=0;s[2278]=(s[2278]|0)+1;An(t);if(!(Ln(t,2,e)|0)){a=q(On(t+380|0,e));if(!(a>=q(0.0))){c=((we(e)|0)^1)&1;a=e}else c=2}else{a=q(On(s[t+992>>2]|0,e));c=1;a=q(a+q(Tn(t,2,e)))}if(!(Ln(t,0,r)|0)){o=q(On(t+388|0,r));if(!(o>=q(0.0))){h=((we(r)|0)^1)&1;o=r}else h=2}else{o=q(On(s[t+996>>2]|0,r));h=1;o=q(o+q(Tn(t,0,e)))}u=t+976|0;if(Sn(t,a,o,i,c,h,e,r,1,3189,s[u>>2]|0)|0?(Nn(t,s[t+496>>2]|0,e,r,e),Bn(t,q(l[(s[u>>2]|0)+4>>2]),q(0.0),q(0.0)),n[11696]|0):0)vn(t,7);return}function An(t){t=t|0;var e=0,r=0,n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0;u=p;p=p+32|0;o=u+24|0;a=u+16|0;n=u+8|0;i=u;r=0;do{e=t+380+(r<<3)|0;if(!((s[t+380+(r<<3)+4>>2]|0)!=0?(l=e,h=s[l+4>>2]|0,c=n,s[c>>2]=s[l>>2],s[c+4>>2]=h,c=t+364+(r<<3)|0,h=s[c+4>>2]|0,l=i,s[l>>2]=s[c>>2],s[l+4>>2]=h,s[a>>2]=s[n>>2],s[a+4>>2]=s[n+4>>2],s[o>>2]=s[i>>2],s[o+4>>2]=s[i+4>>2],pn(a,o)|0):0))e=t+348+(r<<3)|0;s[t+992+(r<<2)>>2]=e;r=r+1|0}while((r|0)!=2);p=u;return}function Ln(t,e,r){t=t|0;e=e|0;r=q(r);var n=0;t=s[t+992+(s[976+(e<<2)>>2]<<2)>>2]|0;switch(s[t+4>>2]|0){case 0:case 3:{t=0;break}case 1:{if(q(l[t>>2])<q(0.0))t=0;else n=5;break}case 2:{if(q(l[t>>2])<q(0.0))t=0;else t=(we(r)|0)^1;break}default:n=5}if((n|0)==5)t=1;return t|0}function On(t,e){t=t|0;e=q(e);switch(s[t+4>>2]|0){case 2:{e=q(q(q(l[t>>2])*e)/q(100.0));break}case 1:{e=q(l[t>>2]);break}default:e=q(C)}return q(e)}function Nn(t,e,r,n,i){t=t|0;e=e|0;r=q(r);n=q(n);i=q(i);var a=0,o=ce;e=s[t+944>>2]|0?e:1;a=$n(s[t+4>>2]|0,e)|0;e=ni(a,e)|0;r=q(Ai(t,a,r));n=q(Ai(t,e,n));o=q(r+q(Gn(t,a,i)));l[t+400+(s[1040+(a<<2)>>2]<<2)>>2]=o;r=q(r+q(Xn(t,a,i)));l[t+400+(s[1e3+(a<<2)>>2]<<2)>>2]=r;r=q(n+q(Gn(t,e,i)));l[t+400+(s[1040+(e<<2)>>2]<<2)>>2]=r;i=q(n+q(Xn(t,e,i)));l[t+400+(s[1e3+(e<<2)>>2]<<2)>>2]=i;return}function Bn(t,e,r,n){t=t|0;e=q(e);r=q(r);n=q(n);var i=0,a=0,o=ce,u=ce,h=0,c=0,f=ce,d=0,p=ce,g=ce,v=ce,_=ce;if(!(e==q(0.0))){i=t+400|0;_=q(l[i>>2]);a=t+404|0;v=q(l[a>>2]);d=t+416|0;g=q(l[d>>2]);c=t+420|0;o=q(l[c>>2]);p=q(_+r);f=q(v+n);n=q(p+g);u=q(f+o);h=(s[t+988>>2]|0)==1;l[i>>2]=q(mn(_,e,0,h));l[a>>2]=q(mn(v,e,0,h));r=q(IE(q(g*e),q(1.0)));if(gn(r,q(0.0))|0)a=0;else a=(gn(r,q(1.0))|0)^1;r=q(IE(q(o*e),q(1.0)));if(gn(r,q(0.0))|0)i=0;else i=(gn(r,q(1.0))|0)^1;_=q(mn(n,e,h&a,h&(a^1)));l[d>>2]=q(_-q(mn(p,e,0,h)));_=q(mn(u,e,h&i,h&(i^1)));l[c>>2]=q(_-q(mn(f,e,0,h)));a=(s[t+952>>2]|0)-(s[t+948>>2]|0)>>2;if(a|0){i=0;do{Bn(Ae(t,i)|0,e,p,f);i=i+1|0}while((i|0)!=(a|0))}}return}function Dn(t,e,r,n,i){t=t|0;e=e|0;r=r|0;n=n|0;i=i|0;switch(r|0){case 5:case 0:{t=sE(s[489]|0,n,i)|0;break}default:t=WE(n,i)|0}return t|0}function In(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0;i=p;p=p+16|0;a=i;s[a>>2]=n;Fn(t,0,e,r,a);p=i;return}function Fn(t,e,r,n,i){t=t|0;e=e|0;r=r|0;n=n|0;i=i|0;t=t|0?t:956;PM[s[t+8>>2]&1](t,e,r,n,i)|0;if((r|0)==5)qt();else return}function Wn(t,e,r){t=t|0;e=e|0;r=r|0;n[t+e>>0]=r&1;return}function zn(t,e){t=t|0;e=e|0;var r=0,n=0;s[t>>2]=0;s[t+4>>2]=0;s[t+8>>2]=0;r=e+4|0;n=(s[r>>2]|0)-(s[e>>2]|0)>>2;if(n|0){Un(t,n);Hn(t,s[e>>2]|0,s[r>>2]|0,n)}return}function Un(t,e){t=t|0;e=e|0;var r=0;if((Yn(t)|0)>>>0<e>>>0)zE(t);if(e>>>0>1073741823)qt();else{r=jE(e<<2)|0;s[t+4>>2]=r;s[t>>2]=r;s[t+8>>2]=r+(e<<2);return}}function Hn(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;n=t+4|0;t=r-e|0;if((t|0)>0){iP(s[n>>2]|0,e|0,t|0)|0;s[n>>2]=(s[n>>2]|0)+(t>>>2<<2)}return}function Yn(t){t=t|0;return 1073741823}function Gn(t,e,r){t=t|0;e=e|0;r=q(r);if(Vn(e)|0?(s[t+96>>2]|0)!=0:0)t=t+92|0;else t=Ce(t+60|0,s[1040+(e<<2)>>2]|0,992)|0;return q(jn(t,r))}function Xn(t,e,r){t=t|0;e=e|0;r=q(r);if(Vn(e)|0?(s[t+104>>2]|0)!=0:0)t=t+100|0;else t=Ce(t+60|0,s[1e3+(e<<2)>>2]|0,992)|0;return q(jn(t,r))}function Vn(t){t=t|0;return(t|1|0)==3|0}function jn(t,e){t=t|0;e=q(e);if((s[t+4>>2]|0)==3)e=q(0.0);else e=q(On(t,e));return q(e)}function qn(t,e){t=t|0;e=e|0;t=s[t>>2]|0;return((t|0)==0?(e|0)>1?e:1:t)|0}function $n(t,e){t=t|0;e=e|0;var r=0;t:do{if((e|0)==2){switch(t|0){case 2:{t=3;break t}case 3:break;default:{r=4;break t}}t=2}else r=4}while(0);return t|0}function Kn(t,e){t=t|0;e=e|0;var r=ce;if(!((Vn(e)|0?(s[t+312>>2]|0)!=0:0)?(r=q(l[t+308>>2]),r>=q(0.0)):0))r=q(OE(q(l[(Ce(t+276|0,s[1040+(e<<2)>>2]|0,992)|0)>>2]),q(0.0)));return q(r)}function Jn(t,e){t=t|0;e=e|0;var r=ce;if(!((Vn(e)|0?(s[t+320>>2]|0)!=0:0)?(r=q(l[t+316>>2]),r>=q(0.0)):0))r=q(OE(q(l[(Ce(t+276|0,s[1e3+(e<<2)>>2]|0,992)|0)>>2]),q(0.0)));return q(r)}function Zn(t,e,r){t=t|0;e=e|0;r=q(r);var n=ce;if(!((Vn(e)|0?(s[t+240>>2]|0)!=0:0)?(n=q(On(t+236|0,r)),n>=q(0.0)):0))n=q(OE(q(On(Ce(t+204|0,s[1040+(e<<2)>>2]|0,992)|0,r)),q(0.0)));return q(n)}function Qn(t,e,r){t=t|0;e=e|0;r=q(r);var n=ce;if(!((Vn(e)|0?(s[t+248>>2]|0)!=0:0)?(n=q(On(t+244|0,r)),n>=q(0.0)):0))n=q(OE(q(On(Ce(t+204|0,s[1e3+(e<<2)>>2]|0,992)|0,r)),q(0.0)));return q(n)}function ti(t,e,r,n,i,a,o){t=t|0;e=q(e);r=q(r);n=n|0;i=i|0;a=q(a);o=q(o);var u=ce,h=ce,c=ce,f=ce,d=ce,g=ce,v=0,_=0,m=0;m=p;p=p+16|0;v=m;_=t+964|0;Be(t,(s[_>>2]|0)!=0,3519);u=q(ai(t,2,e));h=q(ai(t,0,e));c=q(Tn(t,2,e));f=q(Tn(t,0,e));if(we(e)|0)d=e;else d=q(OE(q(0.0),q(q(e-c)-u)));if(we(r)|0)g=r;else g=q(OE(q(0.0),q(q(r-f)-h)));if((n|0)==1&(i|0)==1){l[t+908>>2]=q(fi(t,2,q(e-c),a,a));e=q(fi(t,0,q(r-f),o,a))}else{RM[s[_>>2]&1](v,t,d,n,g,i);d=q(u+q(l[v>>2]));g=q(e-c);l[t+908>>2]=q(fi(t,2,(n|2|0)==2?d:g,a,a));g=q(h+q(l[v+4>>2]));e=q(r-f);e=q(fi(t,0,(i|2|0)==2?g:e,o,a))}l[t+912>>2]=e;p=m;return}function ei(t,e,r,n,i,s,a){t=t|0;e=q(e);r=q(r);n=n|0;i=i|0;s=q(s);a=q(a);var o=ce,u=ce,h=ce,c=ce;h=q(ai(t,2,s));o=q(ai(t,0,s));c=q(Tn(t,2,s));u=q(Tn(t,0,s));e=q(e-c);l[t+908>>2]=q(fi(t,2,(n|2|0)==2?h:e,s,s));r=q(r-u);l[t+912>>2]=q(fi(t,0,(i|2|0)==2?o:r,a,s));return}function ri(t,e,r,n,i,s,a){t=t|0;e=q(e);r=q(r);n=n|0;i=i|0;s=q(s);a=q(a);var o=0,u=ce,h=ce;o=(n|0)==2;if((!(e<=q(0.0)&o)?!(r<=q(0.0)&(i|0)==2):0)?!((n|0)==1&(i|0)==1):0)t=0;else{u=q(Tn(t,0,s));h=q(Tn(t,2,s));o=e<q(0.0)&o|(we(e)|0);e=q(e-h);l[t+908>>2]=q(fi(t,2,o?q(0.0):e,s,s));e=q(r-u);o=r<q(0.0)&(i|0)==2|(we(r)|0);l[t+912>>2]=q(fi(t,0,o?q(0.0):e,a,s));t=1}return t|0}function ni(t,e){t=t|0;e=e|0;if(xi(t)|0)t=$n(2,e)|0;else t=0;return t|0}function ii(t,e,r){t=t|0;e=e|0;r=q(r);r=q(Zn(t,e,r));return q(r+q(Kn(t,e)))}function si(t,e,r){t=t|0;e=e|0;r=q(r);r=q(Qn(t,e,r));return q(r+q(Jn(t,e)))}function ai(t,e,r){t=t|0;e=e|0;r=q(r);var n=ce;n=q(ii(t,e,r));return q(n+q(si(t,e,r)))}function oi(t){t=t|0;if(!(s[t+24>>2]|0)){if(q(ui(t))!=q(0.0))t=1;else t=q(li(t))!=q(0.0)}else t=0;return t|0}function ui(t){t=t|0;var e=ce;if(s[t+944>>2]|0){e=q(l[t+44>>2]);if(we(e)|0){e=q(l[t+40>>2]);t=e>q(0.0)&((we(e)|0)^1);return q(t?e:q(0.0))}}else e=q(0.0);return q(e)}function li(t){t=t|0;var e=ce,r=0,i=ce;do{if(s[t+944>>2]|0){e=q(l[t+48>>2]);if(we(e)|0){r=n[(s[t+976>>2]|0)+2>>0]|0;if(r<<24>>24==0?(i=q(l[t+40>>2]),i<q(0.0)&((we(i)|0)^1)):0){e=q(-i);break}e=r<<24>>24?q(1.0):q(0.0)}}else e=q(0.0)}while(0);return q(e)}function hi(t){t=t|0;var e=0,r=0;eP(t+400|0,0,540)|0;n[t+985>>0]=1;He(t);r=Re(t)|0;if(r|0){e=t+948|0;t=0;do{hi(s[(s[e>>2]|0)+(t<<2)>>2]|0);t=t+1|0}while((t|0)!=(r|0))}return}function ci(t,e,r,n,i,a,o,u,h,c){t=t|0;e=e|0;r=q(r);n=n|0;i=q(i);a=q(a);o=q(o);u=u|0;h=h|0;c=c|0;var f=0,d=ce,g=0,v=0,_=ce,m=ce,y=0,b=ce,w=0,S=ce,T=0,k=0,x=0,E=0,P=0,M=0,R=0,A=0,L=0,O=0;L=p;p=p+16|0;x=L+12|0;E=L+8|0;P=L+4|0;M=L;A=$n(s[t+4>>2]|0,h)|0;T=Vn(A)|0;d=q(On(Ei(e)|0,T?a:o));k=Ln(e,2,a)|0;R=Ln(e,0,o)|0;do{if(!(we(d)|0)?!(we(T?r:i)|0):0){f=e+504|0;if(!(we(q(l[f>>2]))|0)){if(!(Pi(s[e+976>>2]|0,0)|0))break;if((s[e+500>>2]|0)==(s[2278]|0))break}l[f>>2]=q(OE(d,q(ai(e,A,a))))}else g=7}while(0);do{if((g|0)==7){w=T^1;if(!(w|k^1)){o=q(On(s[e+992>>2]|0,a));l[e+504>>2]=q(OE(o,q(ai(e,2,a))));break}if(!(T|R^1)){o=q(On(s[e+996>>2]|0,o));l[e+504>>2]=q(OE(o,q(ai(e,0,a))));break}l[x>>2]=q(C);l[E>>2]=q(C);s[P>>2]=0;s[M>>2]=0;b=q(Tn(e,2,a));S=q(Tn(e,0,a));if(k){_=q(b+q(On(s[e+992>>2]|0,a)));l[x>>2]=_;s[P>>2]=1;v=1}else{v=0;_=q(C)}if(R){d=q(S+q(On(s[e+996>>2]|0,o)));l[E>>2]=d;s[M>>2]=1;f=1}else{f=0;d=q(C)}g=s[t+32>>2]|0;if(!(T&(g|0)==2)){if(we(_)|0?!(we(r)|0):0){l[x>>2]=r;s[P>>2]=2;v=2;_=r}}else g=2;if((!((g|0)==2&w)?we(d)|0:0)?!(we(i)|0):0){l[E>>2]=i;s[M>>2]=2;f=2;d=i}m=q(l[e+396>>2]);y=we(m)|0;do{if(!y){if((v|0)==1&w){l[E>>2]=q(q(_-b)/m);s[M>>2]=1;f=1;g=1;break}if(T&(f|0)==1){l[x>>2]=q(m*q(d-S));s[P>>2]=1;f=1;g=1}else g=v}else g=v}while(0);O=we(r)|0;v=(di(t,e)|0)!=4;if(!(T|k|((n|0)!=1|O)|(v|(g|0)==1))?(l[x>>2]=r,s[P>>2]=1,!y):0){l[E>>2]=q(q(r-b)/m);s[M>>2]=1;f=1}if(!(R|w|((u|0)!=1|(we(i)|0))|(v|(f|0)==1))?(l[E>>2]=i,s[M>>2]=1,!y):0){l[x>>2]=q(m*q(i-S));s[P>>2]=1}vi(e,2,a,a,P,x);vi(e,0,o,a,M,E);r=q(l[x>>2]);i=q(l[E>>2]);Sn(e,r,i,h,s[P>>2]|0,s[M>>2]|0,a,o,0,3565,c)|0;o=q(l[e+908+(s[976+(A<<2)>>2]<<2)>>2]);l[e+504>>2]=q(OE(o,q(ai(e,A,a))))}}while(0);s[e+500>>2]=s[2278];p=L;return}function fi(t,e,r,n,i){t=t|0;e=e|0;r=q(r);n=q(n);i=q(i);n=q(Si(t,e,r,n));return q(OE(n,q(ai(t,e,i))))}function di(t,e){t=t|0;e=e|0;e=e+20|0;e=s[((s[e>>2]|0)==0?t+16|0:e)>>2]|0;if((e|0)==5?xi(s[t+4>>2]|0)|0:0)e=1;return e|0}function pi(t,e){t=t|0;e=e|0;if(Vn(e)|0?(s[t+96>>2]|0)!=0:0)e=4;else e=s[1040+(e<<2)>>2]|0;return t+60+(e<<3)|0}function gi(t,e){t=t|0;e=e|0;if(Vn(e)|0?(s[t+104>>2]|0)!=0:0)e=5;else e=s[1e3+(e<<2)>>2]|0;return t+60+(e<<3)|0}function vi(t,e,r,n,i,a){t=t|0;e=e|0;r=q(r);n=q(n);i=i|0;a=a|0;r=q(On(t+380+(s[976+(e<<2)>>2]<<3)|0,r));r=q(r+q(Tn(t,e,n)));switch(s[i>>2]|0){case 2:case 1:{i=we(r)|0;n=q(l[a>>2]);l[a>>2]=i|n<r?n:r;break}case 0:{if(!(we(r)|0)){s[i>>2]=2;l[a>>2]=r}break}default:{}}return}function _i(t,e){t=t|0;e=e|0;t=t+132|0;if(Vn(e)|0?(s[(Ce(t,4,948)|0)+4>>2]|0)!=0:0)t=1;else t=(s[(Ce(t,s[1040+(e<<2)>>2]|0,948)|0)+4>>2]|0)!=0;return t|0}function mi(t,e,r){t=t|0;e=e|0;r=q(r);var n=0,i=0;t=t+132|0;if(Vn(e)|0?(n=Ce(t,4,948)|0,(s[n+4>>2]|0)!=0):0)i=4;else{n=Ce(t,s[1040+(e<<2)>>2]|0,948)|0;if(!(s[n+4>>2]|0))r=q(0.0);else i=4}if((i|0)==4)r=q(On(n,r));return q(r)}function yi(t,e,r){t=t|0;e=e|0;r=q(r);var n=ce;n=q(l[t+908+(s[976+(e<<2)>>2]<<2)>>2]);n=q(n+q(Gn(t,e,r)));return q(n+q(Xn(t,e,r)))}function bi(t){t=t|0;var e=0,r=0,n=0;t:do{if(!(xi(s[t+4>>2]|0)|0)){if((s[t+16>>2]|0)!=5){r=Re(t)|0;if(!r)e=0;else{e=0;while(1){n=Ae(t,e)|0;if((s[n+24>>2]|0)==0?(s[n+20>>2]|0)==5:0){e=1;break t}e=e+1|0;if(e>>>0>=r>>>0){e=0;break}}}}else e=1}else e=0}while(0);return e|0}function wi(t,e){t=t|0;e=e|0;var r=ce;r=q(l[t+908+(s[976+(e<<2)>>2]<<2)>>2]);return r>=q(0.0)&((we(r)|0)^1)|0}function Ci(t){t=t|0;var e=ce,r=0,n=0,i=0,a=0,o=0,u=0,h=ce;r=s[t+968>>2]|0;if(!r){a=Re(t)|0;do{if(a|0){r=0;i=0;while(1){n=Ae(t,i)|0;if(s[n+940>>2]|0){o=8;break}if((s[n+24>>2]|0)!=1){u=(di(t,n)|0)==5;if(u){r=n;break}else r=(r|0)==0?n:r}i=i+1|0;if(i>>>0>=a>>>0){o=8;break}}if((o|0)==8)if(!r)break;e=q(Ci(r));return q(e+q(l[r+404>>2]))}}while(0);e=q(l[t+912>>2])}else{h=q(l[t+908>>2]);e=q(l[t+912>>2]);e=q(dM[r&0](t,h,e));Be(t,(we(e)|0)^1,3573)}return q(e)}function Si(t,e,r,n){t=t|0;e=e|0;r=q(r);n=q(n);var i=ce,s=0;if(!(xi(e)|0)){if(Vn(e)|0){e=0;s=3}else{n=q(C);i=q(C)}}else{e=1;s=3}if((s|0)==3){i=q(On(t+364+(e<<3)|0,n));n=q(On(t+380+(e<<3)|0,n))}s=n<r&(n>=q(0.0)&((we(n)|0)^1));r=s?n:r;s=i>=q(0.0)&((we(i)|0)^1)&r<i;return q(s?i:r)}function Ti(t,e,r,n,i,a,o){t=t|0;e=e|0;r=q(r);n=n|0;i=q(i);a=a|0;o=o|0;var u=ce,h=ce,c=0,f=0,d=ce,p=ce,g=ce,v=0,_=0,m=0,y=0,b=ce,w=0;m=$n(s[t+4>>2]|0,a)|0;v=ni(m,a)|0;_=Vn(m)|0;d=q(Tn(e,2,r));p=q(Tn(e,0,r));if(!(Ln(e,2,r)|0)){if(_i(e,2)|0?Mi(e,2)|0:0){u=q(l[t+908>>2]);h=q(Kn(t,2));h=q(u-q(h+q(Jn(t,2))));u=q(mi(e,2,r));u=q(fi(e,2,q(h-q(u+q(Ri(e,2,r)))),r,r))}else u=q(C)}else u=q(d+q(On(s[e+992>>2]|0,r)));if(!(Ln(e,0,i)|0)){if(_i(e,0)|0?Mi(e,0)|0:0){h=q(l[t+912>>2]);b=q(Kn(t,0));b=q(h-q(b+q(Jn(t,0))));h=q(mi(e,0,i));h=q(fi(e,0,q(b-q(h+q(Ri(e,0,i)))),i,r))}else h=q(C)}else h=q(p+q(On(s[e+996>>2]|0,i)));c=we(u)|0;f=we(h)|0;do{if(c^f?(g=q(l[e+396>>2]),!(we(g)|0)):0)if(c){u=q(d+q(q(h-p)*g));break}else{b=q(p+q(q(u-d)/g));h=f?b:h;break}}while(0);f=we(u)|0;c=we(h)|0;if(f|c){w=(f^1)&1;n=r>q(0.0)&((n|0)!=0&f);u=_?u:n?r:u;Sn(e,u,h,a,_?w:n?2:w,f&(c^1)&1,u,h,0,3623,o)|0;u=q(l[e+908>>2]);u=q(u+q(Tn(e,2,r)));h=q(l[e+912>>2]);h=q(h+q(Tn(e,0,r)))}Sn(e,u,h,a,1,1,u,h,1,3635,o)|0;if(Mi(e,m)|0?!(_i(e,m)|0):0){w=s[976+(m<<2)>>2]|0;b=q(l[t+908+(w<<2)>>2]);b=q(b-q(l[e+908+(w<<2)>>2]));b=q(b-q(Jn(t,m)));b=q(b-q(Xn(e,m,r)));b=q(b-q(Ri(e,m,_?r:i)));l[e+400+(s[1040+(m<<2)>>2]<<2)>>2]=b}else y=21;do{if((y|0)==21){if(!(_i(e,m)|0)?(s[t+8>>2]|0)==1:0){w=s[976+(m<<2)>>2]|0;b=q(l[t+908+(w<<2)>>2]);b=q(q(b-q(l[e+908+(w<<2)>>2]))*q(.5));l[e+400+(s[1040+(m<<2)>>2]<<2)>>2]=b;break}if(!(_i(e,m)|0)?(s[t+8>>2]|0)==2:0){w=s[976+(m<<2)>>2]|0;b=q(l[t+908+(w<<2)>>2]);b=q(b-q(l[e+908+(w<<2)>>2]));l[e+400+(s[1040+(m<<2)>>2]<<2)>>2]=b}}}while(0);if(Mi(e,v)|0?!(_i(e,v)|0):0){w=s[976+(v<<2)>>2]|0;b=q(l[t+908+(w<<2)>>2]);b=q(b-q(l[e+908+(w<<2)>>2]));b=q(b-q(Jn(t,v)));b=q(b-q(Xn(e,v,r)));b=q(b-q(Ri(e,v,_?i:r)));l[e+400+(s[1040+(v<<2)>>2]<<2)>>2]=b}else y=30;do{if((y|0)==30?!(_i(e,v)|0):0){if((di(t,e)|0)==2){w=s[976+(v<<2)>>2]|0;b=q(l[t+908+(w<<2)>>2]);b=q(q(b-q(l[e+908+(w<<2)>>2]))*q(.5));l[e+400+(s[1040+(v<<2)>>2]<<2)>>2]=b;break}w=(di(t,e)|0)==3;if(w^(s[t+28>>2]|0)==2){w=s[976+(v<<2)>>2]|0;b=q(l[t+908+(w<<2)>>2]);b=q(b-q(l[e+908+(w<<2)>>2]));l[e+400+(s[1040+(v<<2)>>2]<<2)>>2]=b}}}while(0);return}function ki(t,e,r){t=t|0;e=e|0;r=r|0;var n=ce,i=0;i=s[976+(r<<2)>>2]|0;n=q(l[e+908+(i<<2)>>2]);n=q(q(l[t+908+(i<<2)>>2])-n);n=q(n-q(l[e+400+(s[1040+(r<<2)>>2]<<2)>>2]));l[e+400+(s[1e3+(r<<2)>>2]<<2)>>2]=n;return}function xi(t){t=t|0;return(t|1|0)==1|0}function Ei(t){t=t|0;var e=ce;switch(s[t+56>>2]|0){case 0:case 3:{e=q(l[t+40>>2]);if(e>q(0.0)&((we(e)|0)^1))t=n[(s[t+976>>2]|0)+2>>0]|0?1056:992;else t=1056;break}default:t=t+52|0}return t|0}function Pi(t,e){t=t|0;e=e|0;return(n[t+e>>0]|0)!=0|0}function Mi(t,e){t=t|0;e=e|0;t=t+132|0;if(Vn(e)|0?(s[(Ce(t,5,948)|0)+4>>2]|0)!=0:0)t=1;else t=(s[(Ce(t,s[1e3+(e<<2)>>2]|0,948)|0)+4>>2]|0)!=0;return t|0}function Ri(t,e,r){t=t|0;e=e|0;r=q(r);var n=0,i=0;t=t+132|0;if(Vn(e)|0?(n=Ce(t,5,948)|0,(s[n+4>>2]|0)!=0):0)i=4;else{n=Ce(t,s[1e3+(e<<2)>>2]|0,948)|0;if(!(s[n+4>>2]|0))r=q(0.0);else i=4}if((i|0)==4)r=q(On(n,r));return q(r)}function Ai(t,e,r){t=t|0;e=e|0;r=q(r);if(_i(t,e)|0)r=q(mi(t,e,r));else r=q(-q(Ri(t,e,r)));return q(r)}function Li(t){t=q(t);return(l[f>>2]=t,s[f>>2]|0)|0}function Oi(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>1073741823)qt();else{i=jE(e<<2)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r<<2)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e<<2);return}function Ni(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(0-(i>>2)<<2)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function Bi(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~((n+-4-e|0)>>>2)<<2);t=s[t>>2]|0;if(t|0)$E(t);return}function Di(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0,o=0,u=0;o=t+4|0;u=s[o>>2]|0;i=u-n|0;a=i>>2;t=e+(a<<2)|0;if(t>>>0<r>>>0){n=u;do{s[n>>2]=s[t>>2];t=t+4|0;n=(s[o>>2]|0)+4|0;s[o>>2]=n}while(t>>>0<r>>>0)}if(a|0)lP(u+(0-a<<2)|0,e|0,i|0)|0;return}function Ii(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0;u=e+4|0;l=s[u>>2]|0;i=s[t>>2]|0;o=r;a=o-i|0;n=l+(0-(a>>2)<<2)|0;s[u>>2]=n;if((a|0)>0)iP(n|0,i|0,a|0)|0;i=t+4|0;a=e+8|0;n=(s[i>>2]|0)-o|0;if((n|0)>0){iP(s[a>>2]|0,r|0,n|0)|0;s[a>>2]=(s[a>>2]|0)+(n>>>2<<2)}o=s[t>>2]|0;s[t>>2]=s[u>>2];s[u>>2]=o;o=s[i>>2]|0;s[i>>2]=s[a>>2];s[a>>2]=o;o=t+8|0;r=e+12|0;t=s[o>>2]|0;s[o>>2]=s[r>>2];s[r>>2]=t;s[e>>2]=s[u>>2];return l|0}function Fi(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;o=s[e>>2]|0;a=s[r>>2]|0;if((o|0)!=(a|0)){i=t+8|0;r=((a+-4-o|0)>>>2)+1|0;t=o;n=s[i>>2]|0;do{s[n>>2]=s[t>>2];n=(s[i>>2]|0)+4|0;s[i>>2]=n;t=t+4|0}while((t|0)!=(a|0));s[e>>2]=o+(r<<2)}return}function Wi(){ye();return}function zi(){var t=0;t=jE(4)|0;Ui(t);return t|0}function Ui(t){t=t|0;s[t>>2]=Ie()|0;return}function Hi(t){t=t|0;if(t|0){Yi(t);$E(t)}return}function Yi(t){t=t|0;We(s[t>>2]|0);return}function Gi(t,e,r){t=t|0;e=e|0;r=r|0;Wn(s[t>>2]|0,e,r);return}function Xi(t,e){t=t|0;e=q(e);Mn(s[t>>2]|0,e);return}function Vi(t,e){t=t|0;e=e|0;return Pi(s[t>>2]|0,e)|0}function ji(){var t=0;t=jE(8)|0;qi(t,0);return t|0}function qi(t,e){t=t|0;e=e|0;if(!e)e=ke()|0;else e=Se(s[e>>2]|0)|0;s[t>>2]=e;s[t+4>>2]=0;Ze(e,t);return}function $i(t){t=t|0;var e=0;e=jE(8)|0;qi(e,t);return e|0}function Ki(t){t=t|0;if(t|0){Ji(t);$E(t)}return}function Ji(t){t=t|0;var e=0;Pe(s[t>>2]|0);e=t+4|0;t=s[e>>2]|0;s[e>>2]=0;if(t|0){Zi(t);$E(t)}return}function Zi(t){t=t|0;Qi(t);return}function Qi(t){t=t|0;t=s[t>>2]|0;if(t|0)ne(t|0);return}function ts(t){t=t|0;return Qe(t)|0}function es(t){t=t|0;var e=0,r=0;r=t+4|0;e=s[r>>2]|0;s[r>>2]=0;if(e|0){Zi(e);$E(e)}Ne(s[t>>2]|0);return}function rs(t,e){t=t|0;e=e|0;$e(s[t>>2]|0,s[e>>2]|0);return}function ns(t,e){t=t|0;e=e|0;hr(s[t>>2]|0,e);return}function is(t,e,r){t=t|0;e=e|0;r=+r;Tr(s[t>>2]|0,e,q(r));return}function ss(t,e,r){t=t|0;e=e|0;r=+r;kr(s[t>>2]|0,e,q(r));return}function as(t,e){t=t|0;e=e|0;ir(s[t>>2]|0,e);return}function os(t,e){t=t|0;e=e|0;ar(s[t>>2]|0,e);return}function us(t,e){t=t|0;e=e|0;ur(s[t>>2]|0,e);return}function ls(t,e){t=t|0;e=e|0;tr(s[t>>2]|0,e);return}function hs(t,e){t=t|0;e=e|0;fr(s[t>>2]|0,e);return}function cs(t,e){t=t|0;e=e|0;rr(s[t>>2]|0,e);return}function fs(t,e,r){t=t|0;e=e|0;r=+r;Er(s[t>>2]|0,e,q(r));return}function ds(t,e,r){t=t|0;e=e|0;r=+r;Pr(s[t>>2]|0,e,q(r));return}function ps(t,e){t=t|0;e=e|0;Rr(s[t>>2]|0,e);return}function gs(t,e){t=t|0;e=e|0;pr(s[t>>2]|0,e);return}function vs(t,e){t=t|0;e=e|0;vr(s[t>>2]|0,e);return}function _s(t,e){t=t|0;e=+e;mr(s[t>>2]|0,q(e));return}function ms(t,e){t=t|0;e=+e;wr(s[t>>2]|0,q(e));return}function ys(t,e){t=t|0;e=+e;Cr(s[t>>2]|0,q(e));return}function bs(t,e){t=t|0;e=+e;yr(s[t>>2]|0,q(e));return}function ws(t,e){t=t|0;e=+e;br(s[t>>2]|0,q(e));return}function Cs(t,e){t=t|0;e=+e;Dr(s[t>>2]|0,q(e));return}function Ss(t,e){t=t|0;e=+e;Ir(s[t>>2]|0,q(e));return}function Ts(t){t=t|0;Fr(s[t>>2]|0);return}function ks(t,e){t=t|0;e=+e;zr(s[t>>2]|0,q(e));return}function xs(t,e){t=t|0;e=+e;Ur(s[t>>2]|0,q(e));return}function Es(t){t=t|0;Hr(s[t>>2]|0);return}function Ps(t,e){t=t|0;e=+e;Gr(s[t>>2]|0,q(e));return}function Ms(t,e){t=t|0;e=+e;Xr(s[t>>2]|0,q(e));return}function Rs(t,e){t=t|0;e=+e;jr(s[t>>2]|0,q(e));return}function As(t,e){t=t|0;e=+e;qr(s[t>>2]|0,q(e));return}function Ls(t,e){t=t|0;e=+e;Kr(s[t>>2]|0,q(e));return}function Os(t,e){t=t|0;e=+e;Jr(s[t>>2]|0,q(e));return}function Ns(t,e){t=t|0;e=+e;Qr(s[t>>2]|0,q(e));return}function Bs(t,e){t=t|0;e=+e;tn(s[t>>2]|0,q(e));return}function Ds(t,e){t=t|0;e=+e;rn(s[t>>2]|0,q(e));return}function Is(t,e,r){t=t|0;e=e|0;r=+r;Nr(s[t>>2]|0,e,q(r));return}function Fs(t,e,r){t=t|0;e=e|0;r=+r;Ar(s[t>>2]|0,e,q(r));return}function Ws(t,e,r){t=t|0;e=e|0;r=+r;Lr(s[t>>2]|0,e,q(r));return}function zs(t){t=t|0;return cr(s[t>>2]|0)|0}function Us(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0;n=p;p=p+16|0;i=n;xr(i,s[e>>2]|0,r);Hs(t,i);p=n;return}function Hs(t,e){t=t|0;e=e|0;Ys(t,s[e+4>>2]|0,+q(l[e>>2]));return}function Ys(t,e,r){t=t|0;e=e|0;r=+r;s[t>>2]=e;h[t+8>>3]=r;return}function Gs(t){t=t|0;return sr(s[t>>2]|0)|0}function Xs(t){t=t|0;return or(s[t>>2]|0)|0}function Vs(t){t=t|0;return lr(s[t>>2]|0)|0}function js(t){t=t|0;return er(s[t>>2]|0)|0}function qs(t){t=t|0;return dr(s[t>>2]|0)|0}function $s(t){t=t|0;return nr(s[t>>2]|0)|0}function Ks(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0;n=p;p=p+16|0;i=n;Mr(i,s[e>>2]|0,r);Hs(t,i);p=n;return}function Js(t){t=t|0;return gr(s[t>>2]|0)|0}function Zs(t){t=t|0;return _r(s[t>>2]|0)|0}function Qs(t,e){t=t|0;e=e|0;var r=0,n=0;r=p;p=p+16|0;n=r;Sr(n,s[e>>2]|0);Hs(t,n);p=r;return}function ta(t){t=t|0;return+ +q(Ke(s[t>>2]|0))}function ea(t){t=t|0;return+ +q(Je(s[t>>2]|0))}function ra(t,e){t=t|0;e=e|0;var r=0,n=0;r=p;p=p+16|0;n=r;Wr(n,s[e>>2]|0);Hs(t,n);p=r;return}function na(t,e){t=t|0;e=e|0;var r=0,n=0;r=p;p=p+16|0;n=r;Yr(n,s[e>>2]|0);Hs(t,n);p=r;return}function ia(t,e){t=t|0;e=e|0;var r=0,n=0;r=p;p=p+16|0;n=r;Vr(n,s[e>>2]|0);Hs(t,n);p=r;return}function sa(t,e){t=t|0;e=e|0;var r=0,n=0;r=p;p=p+16|0;n=r;$r(n,s[e>>2]|0);Hs(t,n);p=r;return}function aa(t,e){t=t|0;e=e|0;var r=0,n=0;r=p;p=p+16|0;n=r;Zr(n,s[e>>2]|0);Hs(t,n);p=r;return}function oa(t,e){t=t|0;e=e|0;var r=0,n=0;r=p;p=p+16|0;n=r;en(n,s[e>>2]|0);Hs(t,n);p=r;return}function ua(t){t=t|0;return+ +q(nn(s[t>>2]|0))}function la(t,e){t=t|0;e=e|0;return+ +q(Br(s[t>>2]|0,e))}function ha(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0;n=p;p=p+16|0;i=n;Or(i,s[e>>2]|0,r);Hs(t,i);p=n;return}function ca(t,e,r){t=t|0;e=e|0;r=r|0;Ue(s[t>>2]|0,s[e>>2]|0,r);return}function fa(t,e){t=t|0;e=e|0;Oe(s[t>>2]|0,s[e>>2]|0);return}function da(t){t=t|0;return Re(s[t>>2]|0)|0}function pa(t){t=t|0;t=Ve(s[t>>2]|0)|0;if(!t)t=0;else t=ts(t)|0;return t|0}function ga(t,e){t=t|0;e=e|0;t=Ae(s[t>>2]|0,e)|0;if(!t)t=0;else t=ts(t)|0;return t|0}function va(t,e){t=t|0;e=e|0;var r=0,n=0;n=jE(4)|0;_a(n,e);r=t+4|0;e=s[r>>2]|0;s[r>>2]=n;if(e|0){Zi(e);$E(e)}ze(s[t>>2]|0,1);return}function _a(t,e){t=t|0;e=e|0;Ia(t,e);return}function ma(t,e,r,n,i,s){t=t|0;e=e|0;r=q(r);n=n|0;i=q(i);s=s|0;var a=0,o=0;a=p;p=p+16|0;o=a;ya(o,Qe(e)|0,+r,n,+i,s);l[t>>2]=q(+h[o>>3]);l[t+4>>2]=q(+h[o+8>>3]);p=a;return}function ya(t,e,r,n,i,a){t=t|0;e=e|0;r=+r;n=n|0;i=+i;a=a|0;var o=0,u=0,l=0,c=0,f=0;o=p;p=p+32|0;f=o+8|0;c=o+20|0;l=o;u=o+16|0;h[f>>3]=r;s[c>>2]=n;h[l>>3]=i;s[u>>2]=a;ba(t,s[e+4>>2]|0,f,c,l,u);p=o;return}function ba(t,e,r,n,i,a){t=t|0;e=e|0;r=r|0;n=n|0;i=i|0;a=a|0;var o=0,u=0;o=p;p=p+16|0;u=o;Sx(u);e=wa(e)|0;Ca(t,e,+h[r>>3],s[n>>2]|0,+h[i>>3],s[a>>2]|0);kx(u);p=o;return}function wa(t){t=t|0;return s[t>>2]|0}function Ca(t,e,r,n,i,s){t=t|0;e=e|0;r=+r;n=n|0;i=+i;s=s|0;var a=0;a=Ta(Sa()|0)|0;r=+ka(r);n=xa(n)|0;i=+ka(i);Ea(t,se(0,a|0,e|0,+r,n|0,+i,xa(s)|0)|0);return}function Sa(){var t=0;if(!(n[7608]|0)){Na(9120);t=7608;s[t>>2]=1;s[t+4>>2]=0}return 9120}function Ta(t){t=t|0;return s[t+8>>2]|0}function ka(t){t=+t;return+ +Oa(t)}function xa(t){t=t|0;return La(t)|0}function Ea(t,e){t=t|0;e=e|0;var r=0,n=0,i=0;i=p;p=p+32|0;r=i;n=e;if(!(n&1)){s[t>>2]=s[e>>2];s[t+4>>2]=s[e+4>>2];s[t+8>>2]=s[e+8>>2];s[t+12>>2]=s[e+12>>2]}else{Pa(r,0);Ft(n|0,r|0)|0;Ma(t,r);Ra(r)}p=i;return}function Pa(t,e){t=t|0;e=e|0;Aa(t,e);s[t+8>>2]=0;n[t+24>>0]=0;return}function Ma(t,e){t=t|0;e=e|0;e=e+8|0;s[t>>2]=s[e>>2];s[t+4>>2]=s[e+4>>2];s[t+8>>2]=s[e+8>>2];s[t+12>>2]=s[e+12>>2];return}function Ra(t){t=t|0;n[t+24>>0]=0;return}function Aa(t,e){t=t|0;e=e|0;s[t>>2]=e;return}function La(t){t=t|0;return t|0}function Oa(t){t=+t;return+t}function Na(t){t=t|0;Da(t,Ba()|0,4);return}function Ba(){return 1064}function Da(t,e,r){t=t|0;e=e|0;r=r|0;s[t>>2]=e;s[t+4>>2]=r;s[t+8>>2]=ee(e|0,r+1|0)|0;return}function Ia(t,e){t=t|0;e=e|0;e=s[e>>2]|0;s[t>>2]=e;Mt(e|0);return}function Fa(t){t=t|0;var e=0,r=0;r=t+4|0;e=s[r>>2]|0;s[r>>2]=0;if(e|0){Zi(e);$E(e)}ze(s[t>>2]|0,0);return}function Wa(t){t=t|0;je(s[t>>2]|0);return}function za(t){t=t|0;return qe(s[t>>2]|0)|0}function Ua(t,e,r,n){t=t|0;e=+e;r=+r;n=n|0;Rn(s[t>>2]|0,q(e),q(r),n);return}function Ha(t){t=t|0;return+ +q(sn(s[t>>2]|0))}function Ya(t){t=t|0;return+ +q(on(s[t>>2]|0))}function Ga(t){t=t|0;return+ +q(an(s[t>>2]|0))}function Xa(t){t=t|0;return+ +q(un(s[t>>2]|0))}function Va(t){t=t|0;return+ +q(ln(s[t>>2]|0))}function ja(t){t=t|0;return+ +q(hn(s[t>>2]|0))}function qa(t,e){t=t|0;e=e|0;h[t>>3]=+q(sn(s[e>>2]|0));h[t+8>>3]=+q(on(s[e>>2]|0));h[t+16>>3]=+q(an(s[e>>2]|0));h[t+24>>3]=+q(un(s[e>>2]|0));h[t+32>>3]=+q(ln(s[e>>2]|0));h[t+40>>3]=+q(hn(s[e>>2]|0));return}function $a(t,e){t=t|0;e=e|0;return+ +q(cn(s[t>>2]|0,e))}function Ka(t,e){t=t|0;e=e|0;return+ +q(fn(s[t>>2]|0,e))}function Ja(t,e){t=t|0;e=e|0;return+ +q(dn(s[t>>2]|0,e))}function Za(){return De()|0}function Qa(){to();eo();ro();no();io();so();return}function to(){Ub(11713,4938,1);return}function eo(){eb(10448);return}function ro(){By(10408);return}function no(){Zm(10324);return}function io(){Xv(10096);return}function so(){ao(9132);return}function ao(t){t=t|0;var e=0,r=0,n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0,d=0,g=0,v=0,_=0,m=0,y=0,b=0,w=0,C=0,S=0,T=0,k=0,x=0,E=0,P=0,M=0,R=0,A=0,L=0,O=0,N=0,B=0,D=0,I=0,F=0,W=0,z=0,U=0,H=0,Y=0,G=0,X=0,V=0,j=0,q=0,$=0,K=0,J=0,Z=0,Q=0,tt=0,et=0,rt=0,nt=0,it=0,st=0,at=0,ot=0,ut=0,lt=0,ht=0,ct=0,ft=0,dt=0,pt=0,gt=0,vt=0,_t=0,mt=0,yt=0,bt=0,wt=0,Ct=0,St=0,Tt=0,kt=0,xt=0,Et=0,Pt=0,Mt=0,Rt=0,At=0,Lt=0;e=p;p=p+672|0;r=e+656|0;Lt=e+648|0;At=e+640|0;Rt=e+632|0;Mt=e+624|0;Pt=e+616|0;Et=e+608|0;xt=e+600|0;kt=e+592|0;Tt=e+584|0;St=e+576|0;Ct=e+568|0;wt=e+560|0;bt=e+552|0;yt=e+544|0;mt=e+536|0;_t=e+528|0;vt=e+520|0;gt=e+512|0;pt=e+504|0;dt=e+496|0;ft=e+488|0;ct=e+480|0;ht=e+472|0;lt=e+464|0;ut=e+456|0;ot=e+448|0;at=e+440|0;st=e+432|0;it=e+424|0;nt=e+416|0;rt=e+408|0;et=e+400|0;tt=e+392|0;Q=e+384|0;Z=e+376|0;J=e+368|0;K=e+360|0;$=e+352|0;q=e+344|0;j=e+336|0;V=e+328|0;X=e+320|0;G=e+312|0;Y=e+304|0;H=e+296|0;U=e+288|0;z=e+280|0;W=e+272|0;F=e+264|0;I=e+256|0;D=e+248|0;B=e+240|0;N=e+232|0;O=e+224|0;L=e+216|0;A=e+208|0;R=e+200|0;M=e+192|0;P=e+184|0;E=e+176|0;x=e+168|0;k=e+160|0;T=e+152|0;S=e+144|0;C=e+136|0;w=e+128|0;b=e+120|0;y=e+112|0;m=e+104|0;_=e+96|0;v=e+88|0;g=e+80|0;d=e+72|0;f=e+64|0;c=e+56|0;h=e+48|0;l=e+40|0;u=e+32|0;o=e+24|0;a=e+16|0;i=e+8|0;n=e;oo(t,3646);uo(t,3651,2)|0;lo(t,3665,2)|0;ho(t,3682,18)|0;s[Lt>>2]=19;s[Lt+4>>2]=0;s[r>>2]=s[Lt>>2];s[r+4>>2]=s[Lt+4>>2];co(t,3690,r)|0;s[At>>2]=1;s[At+4>>2]=0;s[r>>2]=s[At>>2];s[r+4>>2]=s[At+4>>2];fo(t,3696,r)|0;s[Rt>>2]=2;s[Rt+4>>2]=0;s[r>>2]=s[Rt>>2];s[r+4>>2]=s[Rt+4>>2];po(t,3706,r)|0;s[Mt>>2]=1;s[Mt+4>>2]=0;s[r>>2]=s[Mt>>2];s[r+4>>2]=s[Mt+4>>2];go(t,3722,r)|0;s[Pt>>2]=2;s[Pt+4>>2]=0;s[r>>2]=s[Pt>>2];s[r+4>>2]=s[Pt+4>>2];go(t,3734,r)|0;s[Et>>2]=3;s[Et+4>>2]=0;s[r>>2]=s[Et>>2];s[r+4>>2]=s[Et+4>>2];po(t,3753,r)|0;s[xt>>2]=4;s[xt+4>>2]=0;s[r>>2]=s[xt>>2];s[r+4>>2]=s[xt+4>>2];po(t,3769,r)|0;s[kt>>2]=5;s[kt+4>>2]=0;s[r>>2]=s[kt>>2];s[r+4>>2]=s[kt+4>>2];po(t,3783,r)|0;s[Tt>>2]=6;s[Tt+4>>2]=0;s[r>>2]=s[Tt>>2];s[r+4>>2]=s[Tt+4>>2];po(t,3796,r)|0;s[St>>2]=7;s[St+4>>2]=0;s[r>>2]=s[St>>2];s[r+4>>2]=s[St+4>>2];po(t,3813,r)|0;s[Ct>>2]=8;s[Ct+4>>2]=0;s[r>>2]=s[Ct>>2];s[r+4>>2]=s[Ct+4>>2];po(t,3825,r)|0;s[wt>>2]=3;s[wt+4>>2]=0;s[r>>2]=s[wt>>2];s[r+4>>2]=s[wt+4>>2];go(t,3843,r)|0;s[bt>>2]=4;s[bt+4>>2]=0;s[r>>2]=s[bt>>2];s[r+4>>2]=s[bt+4>>2];go(t,3853,r)|0;s[yt>>2]=9;s[yt+4>>2]=0;s[r>>2]=s[yt>>2];s[r+4>>2]=s[yt+4>>2];po(t,3870,r)|0;s[mt>>2]=10;s[mt+4>>2]=0;s[r>>2]=s[mt>>2];s[r+4>>2]=s[mt+4>>2];po(t,3884,r)|0;s[_t>>2]=11;s[_t+4>>2]=0;s[r>>2]=s[_t>>2];s[r+4>>2]=s[_t+4>>2];po(t,3896,r)|0;s[vt>>2]=1;s[vt+4>>2]=0;s[r>>2]=s[vt>>2];s[r+4>>2]=s[vt+4>>2];vo(t,3907,r)|0;s[gt>>2]=2;s[gt+4>>2]=0;s[r>>2]=s[gt>>2];s[r+4>>2]=s[gt+4>>2];vo(t,3915,r)|0;s[pt>>2]=3;s[pt+4>>2]=0;s[r>>2]=s[pt>>2];s[r+4>>2]=s[pt+4>>2];vo(t,3928,r)|0;s[dt>>2]=4;s[dt+4>>2]=0;s[r>>2]=s[dt>>2];s[r+4>>2]=s[dt+4>>2];vo(t,3948,r)|0;s[ft>>2]=5;s[ft+4>>2]=0;s[r>>2]=s[ft>>2];s[r+4>>2]=s[ft+4>>2];vo(t,3960,r)|0;s[ct>>2]=6;s[ct+4>>2]=0;s[r>>2]=s[ct>>2];s[r+4>>2]=s[ct+4>>2];vo(t,3974,r)|0;s[ht>>2]=7;s[ht+4>>2]=0;s[r>>2]=s[ht>>2];s[r+4>>2]=s[ht+4>>2];vo(t,3983,r)|0;s[lt>>2]=20;s[lt+4>>2]=0;s[r>>2]=s[lt>>2];s[r+4>>2]=s[lt+4>>2];co(t,3999,r)|0;s[ut>>2]=8;s[ut+4>>2]=0;s[r>>2]=s[ut>>2];s[r+4>>2]=s[ut+4>>2];vo(t,4012,r)|0;s[ot>>2]=9;s[ot+4>>2]=0;s[r>>2]=s[ot>>2];s[r+4>>2]=s[ot+4>>2];vo(t,4022,r)|0;s[at>>2]=21;s[at+4>>2]=0;s[r>>2]=s[at>>2];s[r+4>>2]=s[at+4>>2];co(t,4039,r)|0;s[st>>2]=10;s[st+4>>2]=0;s[r>>2]=s[st>>2];s[r+4>>2]=s[st+4>>2];vo(t,4053,r)|0;s[it>>2]=11;s[it+4>>2]=0;s[r>>2]=s[it>>2];s[r+4>>2]=s[it+4>>2];vo(t,4065,r)|0;s[nt>>2]=12;s[nt+4>>2]=0;s[r>>2]=s[nt>>2];s[r+4>>2]=s[nt+4>>2];vo(t,4084,r)|0;s[rt>>2]=13;s[rt+4>>2]=0;s[r>>2]=s[rt>>2];s[r+4>>2]=s[rt+4>>2];vo(t,4097,r)|0;s[et>>2]=14;s[et+4>>2]=0;s[r>>2]=s[et>>2];s[r+4>>2]=s[et+4>>2];vo(t,4117,r)|0;s[tt>>2]=15;s[tt+4>>2]=0;s[r>>2]=s[tt>>2];s[r+4>>2]=s[tt+4>>2];vo(t,4129,r)|0;s[Q>>2]=16;s[Q+4>>2]=0;s[r>>2]=s[Q>>2];s[r+4>>2]=s[Q+4>>2];vo(t,4148,r)|0;s[Z>>2]=17;s[Z+4>>2]=0;s[r>>2]=s[Z>>2];s[r+4>>2]=s[Z+4>>2];vo(t,4161,r)|0;s[J>>2]=18;s[J+4>>2]=0;s[r>>2]=s[J>>2];s[r+4>>2]=s[J+4>>2];vo(t,4181,r)|0;s[K>>2]=5;s[K+4>>2]=0;s[r>>2]=s[K>>2];s[r+4>>2]=s[K+4>>2];go(t,4196,r)|0;s[$>>2]=6;s[$+4>>2]=0;s[r>>2]=s[$>>2];s[r+4>>2]=s[$+4>>2];go(t,4206,r)|0;s[q>>2]=7;s[q+4>>2]=0;s[r>>2]=s[q>>2];s[r+4>>2]=s[q+4>>2];go(t,4217,r)|0;s[j>>2]=3;s[j+4>>2]=0;s[r>>2]=s[j>>2];s[r+4>>2]=s[j+4>>2];_o(t,4235,r)|0;s[V>>2]=1;s[V+4>>2]=0;s[r>>2]=s[V>>2];s[r+4>>2]=s[V+4>>2];mo(t,4251,r)|0;s[X>>2]=4;s[X+4>>2]=0;s[r>>2]=s[X>>2];s[r+4>>2]=s[X+4>>2];_o(t,4263,r)|0;s[G>>2]=5;s[G+4>>2]=0;s[r>>2]=s[G>>2];s[r+4>>2]=s[G+4>>2];_o(t,4279,r)|0;s[Y>>2]=6;s[Y+4>>2]=0;s[r>>2]=s[Y>>2];s[r+4>>2]=s[Y+4>>2];_o(t,4293,r)|0;s[H>>2]=7;s[H+4>>2]=0;s[r>>2]=s[H>>2];s[r+4>>2]=s[H+4>>2];_o(t,4306,r)|0;s[U>>2]=8;s[U+4>>2]=0;s[r>>2]=s[U>>2];s[r+4>>2]=s[U+4>>2];_o(t,4323,r)|0;s[z>>2]=9;s[z+4>>2]=0;s[r>>2]=s[z>>2];s[r+4>>2]=s[z+4>>2];_o(t,4335,r)|0;s[W>>2]=2;s[W+4>>2]=0;s[r>>2]=s[W>>2];s[r+4>>2]=s[W+4>>2];mo(t,4353,r)|0;s[F>>2]=12;s[F+4>>2]=0;s[r>>2]=s[F>>2];s[r+4>>2]=s[F+4>>2];yo(t,4363,r)|0;s[I>>2]=1;s[I+4>>2]=0;s[r>>2]=s[I>>2];s[r+4>>2]=s[I+4>>2];bo(t,4376,r)|0;s[D>>2]=2;s[D+4>>2]=0;s[r>>2]=s[D>>2];s[r+4>>2]=s[D+4>>2];bo(t,4388,r)|0;s[B>>2]=13;s[B+4>>2]=0;s[r>>2]=s[B>>2];s[r+4>>2]=s[B+4>>2];yo(t,4402,r)|0;s[N>>2]=14;s[N+4>>2]=0;s[r>>2]=s[N>>2];s[r+4>>2]=s[N+4>>2];yo(t,4411,r)|0;s[O>>2]=15;s[O+4>>2]=0;s[r>>2]=s[O>>2];s[r+4>>2]=s[O+4>>2];yo(t,4421,r)|0;s[L>>2]=16;s[L+4>>2]=0;s[r>>2]=s[L>>2];s[r+4>>2]=s[L+4>>2];yo(t,4433,r)|0;s[A>>2]=17;s[A+4>>2]=0;s[r>>2]=s[A>>2];s[r+4>>2]=s[A+4>>2];yo(t,4446,r)|0;s[R>>2]=18;s[R+4>>2]=0;s[r>>2]=s[R>>2];s[r+4>>2]=s[R+4>>2];yo(t,4458,r)|0;s[M>>2]=3;s[M+4>>2]=0;s[r>>2]=s[M>>2];s[r+4>>2]=s[M+4>>2];bo(t,4471,r)|0;s[P>>2]=1;s[P+4>>2]=0;s[r>>2]=s[P>>2];s[r+4>>2]=s[P+4>>2];wo(t,4486,r)|0;s[E>>2]=10;s[E+4>>2]=0;s[r>>2]=s[E>>2];s[r+4>>2]=s[E+4>>2];_o(t,4496,r)|0;s[x>>2]=11;s[x+4>>2]=0;s[r>>2]=s[x>>2];s[r+4>>2]=s[x+4>>2];_o(t,4508,r)|0;s[k>>2]=3;s[k+4>>2]=0;s[r>>2]=s[k>>2];s[r+4>>2]=s[k+4>>2];mo(t,4519,r)|0;s[T>>2]=4;s[T+4>>2]=0;s[r>>2]=s[T>>2];s[r+4>>2]=s[T+4>>2];Co(t,4530,r)|0;s[S>>2]=19;s[S+4>>2]=0;s[r>>2]=s[S>>2];s[r+4>>2]=s[S+4>>2];So(t,4542,r)|0;s[C>>2]=12;s[C+4>>2]=0;s[r>>2]=s[C>>2];s[r+4>>2]=s[C+4>>2];To(t,4554,r)|0;s[w>>2]=13;s[w+4>>2]=0;s[r>>2]=s[w>>2];s[r+4>>2]=s[w+4>>2];ko(t,4568,r)|0;s[b>>2]=2;s[b+4>>2]=0;s[r>>2]=s[b>>2];s[r+4>>2]=s[b+4>>2];xo(t,4578,r)|0;s[y>>2]=20;s[y+4>>2]=0;s[r>>2]=s[y>>2];s[r+4>>2]=s[y+4>>2];Eo(t,4587,r)|0;s[m>>2]=22;s[m+4>>2]=0;s[r>>2]=s[m>>2];s[r+4>>2]=s[m+4>>2];co(t,4602,r)|0;s[_>>2]=23;s[_+4>>2]=0;s[r>>2]=s[_>>2];s[r+4>>2]=s[_+4>>2];co(t,4619,r)|0;s[v>>2]=14;s[v+4>>2]=0;s[r>>2]=s[v>>2];s[r+4>>2]=s[v+4>>2];Po(t,4629,r)|0;s[g>>2]=1;s[g+4>>2]=0;s[r>>2]=s[g>>2];s[r+4>>2]=s[g+4>>2];Mo(t,4637,r)|0;s[d>>2]=4;s[d+4>>2]=0;s[r>>2]=s[d>>2];s[r+4>>2]=s[d+4>>2];bo(t,4653,r)|0;s[f>>2]=5;s[f+4>>2]=0;s[r>>2]=s[f>>2];s[r+4>>2]=s[f+4>>2];bo(t,4669,r)|0;s[c>>2]=6;s[c+4>>2]=0;s[r>>2]=s[c>>2];s[r+4>>2]=s[c+4>>2];bo(t,4686,r)|0;s[h>>2]=7;s[h+4>>2]=0;s[r>>2]=s[h>>2];s[r+4>>2]=s[h+4>>2];bo(t,4701,r)|0;s[l>>2]=8;s[l+4>>2]=0;s[r>>2]=s[l>>2];s[r+4>>2]=s[l+4>>2];bo(t,4719,r)|0;s[u>>2]=9;s[u+4>>2]=0;s[r>>2]=s[u>>2];s[r+4>>2]=s[u+4>>2];bo(t,4736,r)|0;s[o>>2]=21;s[o+4>>2]=0;s[r>>2]=s[o>>2];s[r+4>>2]=s[o+4>>2];Ro(t,4754,r)|0;s[a>>2]=2;s[a+4>>2]=0;s[r>>2]=s[a>>2];s[r+4>>2]=s[a+4>>2];wo(t,4772,r)|0;s[i>>2]=3;s[i+4>>2]=0;s[r>>2]=s[i>>2];s[r+4>>2]=s[i+4>>2];wo(t,4790,r)|0;s[n>>2]=4;s[n+4>>2]=0;s[r>>2]=s[n>>2];s[r+4>>2]=s[n+4>>2];wo(t,4808,r)|0;p=e;return}function oo(t,e){t=t|0;e=e|0;var r=0;r=Nv()|0;s[t>>2]=r;Bv(r,e);hw(s[t>>2]|0);return}function uo(t,e,r){t=t|0;e=e|0;r=r|0;_v(t,Lo(e)|0,r,0);return t|0}function lo(t,e,r){t=t|0;e=e|0;r=r|0;Kg(t,Lo(e)|0,r,0);return t|0}function ho(t,e,r){t=t|0;e=e|0;r=r|0;Og(t,Lo(e)|0,r,0);return t|0}function co(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;n=p;p=p+16|0;i=n+8|0;a=n;o=s[r+4>>2]|0;s[a>>2]=s[r>>2];s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];pg(t,e,i);p=n;return t|0}function fo(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;n=p;p=p+16|0;i=n+8|0;a=n;o=s[r+4>>2]|0;s[a>>2]=s[r>>2];s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];Vp(t,e,i);p=n;return t|0}function po(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;n=p;p=p+16|0;i=n+8|0;a=n;o=s[r+4>>2]|0;s[a>>2]=s[r>>2];s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];Ep(t,e,i);p=n;return t|0}function go(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;n=p;p=p+16|0;i=n+8|0;a=n;o=s[r+4>>2]|0;s[a>>2]=s[r>>2];s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];up(t,e,i);p=n;return t|0}function vo(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;n=p;p=p+16|0;i=n+8|0;a=n;o=s[r+4>>2]|0;s[a>>2]=s[r>>2];s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];Yd(t,e,i);p=n;return t|0}function _o(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;n=p;p=p+16|0;i=n+8|0;a=n;o=s[r+4>>2]|0;s[a>>2]=s[r>>2];s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];Td(t,e,i);p=n;return t|0}function mo(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;n=p;p=p+16|0;i=n+8|0;a=n;o=s[r+4>>2]|0;s[a>>2]=s[r>>2];s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];sd(t,e,i);p=n;return t|0}function yo(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;n=p;p=p+16|0;i=n+8|0;a=n;o=s[r+4>>2]|0;s[a>>2]=s[r>>2];s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];kf(t,e,i);p=n;return t|0}function bo(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;n=p;p=p+16|0;i=n+8|0;a=n;o=s[r+4>>2]|0;s[a>>2]=s[r>>2];s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];af(t,e,i);p=n;return t|0}function wo(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;n=p;p=p+16|0;i=n+8|0;a=n;o=s[r+4>>2]|0;s[a>>2]=s[r>>2];s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];zc(t,e,i);p=n;return t|0}function Co(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;n=p;p=p+16|0;i=n+8|0;a=n;o=s[r+4>>2]|0;s[a>>2]=s[r>>2];s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];wc(t,e,i);p=n;return t|0}function So(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;n=p;p=p+16|0;i=n+8|0;a=n;o=s[r+4>>2]|0;s[a>>2]=s[r>>2];s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];Qh(t,e,i);p=n;return t|0}function To(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;n=p;p=p+16|0;i=n+8|0;a=n;o=s[r+4>>2]|0;s[a>>2]=s[r>>2];s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];Oh(t,e,i);p=n;return t|0}function ko(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;n=p;p=p+16|0;i=n+8|0;a=n;o=s[r+4>>2]|0;s[a>>2]=s[r>>2];s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];ph(t,e,i);p=n;return t|0}function xo(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;n=p;p=p+16|0;i=n+8|0;a=n;o=s[r+4>>2]|0;s[a>>2]=s[r>>2];s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];Xl(t,e,i);p=n;return t|0}function Eo(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;n=p;p=p+16|0;i=n+8|0;a=n;o=s[r+4>>2]|0;s[a>>2]=s[r>>2];s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];wl(t,e,i);p=n;return t|0}function Po(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;n=p;p=p+16|0;i=n+8|0;a=n;o=s[r+4>>2]|0;s[a>>2]=s[r>>2];s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];el(t,e,i);p=n;return t|0}function Mo(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;n=p;p=p+16|0;i=n+8|0;a=n;o=s[r+4>>2]|0;s[a>>2]=s[r>>2];s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];Ru(t,e,i);p=n;return t|0}function Ro(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;n=p;p=p+16|0;i=n+8|0;a=n;o=s[r+4>>2]|0;s[a>>2]=s[r>>2];s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];Ao(t,e,i);p=n;return t|0}function Ao(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0;n=p;p=p+16|0;i=n+8|0;a=n;u=s[r>>2]|0;o=s[r+4>>2]|0;r=Lo(e)|0;s[a>>2]=u;s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];Oo(t,r,i,1);p=n;return}function Lo(t){t=t|0;return t|0}function Oo(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0,o=0,u=0,l=0,h=0,c=0;i=p;p=p+32|0;a=i+16|0;c=i+8|0;u=i;h=s[r>>2]|0;l=s[r+4>>2]|0;o=s[t>>2]|0;t=No()|0;s[c>>2]=h;s[c+4>>2]=l;s[a>>2]=s[c>>2];s[a+4>>2]=s[c+4>>2];r=Bo(a)|0;s[u>>2]=h;s[u+4>>2]=l;s[a>>2]=s[u>>2];s[a+4>>2]=s[u+4>>2];Io(o,e,t,r,Do(a,n)|0,n);p=i;return}function No(){var t=0,e=0;if(!(n[7616]|0)){qo(9136);Dt(24,9136,_|0)|0;e=7616;s[e>>2]=1;s[e+4>>2]=0}if(!(Ko(9136)|0)){t=9136;e=t+36|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));qo(9136)}return 9136}function Bo(t){t=t|0;return 0}function Do(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0;c=p;p=p+32|0;i=c+24|0;o=c+16|0;u=c;l=c+8|0;a=s[t>>2]|0;n=s[t+4>>2]|0;s[u>>2]=a;s[u+4>>2]=n;f=No()|0;h=f+24|0;t=Uo(e,4)|0;s[l>>2]=t;e=f+28|0;r=s[e>>2]|0;if(r>>>0<(s[f+32>>2]|0)>>>0){s[o>>2]=a;s[o+4>>2]=n;s[i>>2]=s[o>>2];s[i+4>>2]=s[o+4>>2];Ho(r,i,t);t=(s[e>>2]|0)+12|0;s[e>>2]=t}else{Yo(h,u,l);t=s[e>>2]|0}p=c;return((t-(s[h>>2]|0)|0)/12|0)+-1|0}function Io(t,e,r,n,i,a){t=t|0;e=e|0;r=r|0;n=n|0;i=i|0;a=a|0;var o=0,u=0,l=0,h=0,c=0,f=0,d=0,g=0;o=p;p=p+32|0;d=o+24|0;f=o+20|0;l=o+16|0;c=o+12|0;h=o+8|0;u=o+4|0;g=o;s[f>>2]=e;s[l>>2]=r;s[c>>2]=n;s[h>>2]=i;s[u>>2]=a;a=t+28|0;s[g>>2]=s[a>>2];s[d>>2]=s[g>>2];Fo(t+24|0,d,f,c,h,l,u)|0;s[a>>2]=s[s[a>>2]>>2];p=o;return}function Fo(t,e,r,n,i,a,o){t=t|0;e=e|0;r=r|0;n=n|0;i=i|0;a=a|0;o=o|0;t=Wo(e)|0;e=jE(24)|0;zo(e+4|0,s[r>>2]|0,s[n>>2]|0,s[i>>2]|0,s[a>>2]|0,s[o>>2]|0);s[e>>2]=s[t>>2];s[t>>2]=e;return e|0}function Wo(t){t=t|0;return s[t>>2]|0}function zo(t,e,r,n,i,a){t=t|0;e=e|0;r=r|0;n=n|0;i=i|0;a=a|0;s[t>>2]=e;s[t+4>>2]=r;s[t+8>>2]=n;s[t+12>>2]=i;s[t+16>>2]=a;return}function Uo(t,e){t=t|0;e=e|0;return e|t|0}function Ho(t,e,r){t=t|0;e=e|0;r=r|0;var n=0;n=s[e+4>>2]|0;s[t>>2]=s[e>>2];s[t+4>>2]=n;s[t+8>>2]=r;return}function Yo(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0,d=0;h=p;p=p+48|0;n=h+32|0;o=h+24|0;u=h;l=t+4|0;i=(((s[l>>2]|0)-(s[t>>2]|0)|0)/12|0)+1|0;a=Go(t)|0;if(a>>>0<i>>>0)zE(t);else{c=s[t>>2]|0;d=((s[t+8>>2]|0)-c|0)/12|0;f=d<<1;Xo(u,d>>>0<a>>>1>>>0?f>>>0<i>>>0?i:f:a,((s[l>>2]|0)-c|0)/12|0,t+8|0);l=u+8|0;a=s[l>>2]|0;i=s[e+4>>2]|0;r=s[r>>2]|0;s[o>>2]=s[e>>2];s[o+4>>2]=i;s[n>>2]=s[o>>2];s[n+4>>2]=s[o+4>>2];Ho(a,n,r);s[l>>2]=(s[l>>2]|0)+12;Vo(t,u);jo(u);p=h;return}}function Go(t){t=t|0;return 357913941}function Xo(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>357913941)qt();else{i=jE(e*12|0)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r*12|0)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e*12|0);return}function Vo(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(((i|0)/-12|0)*12|0)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function jo(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~(((n+-12-e|0)>>>0)/12|0)*12|0);t=s[t>>2]|0;if(t|0)$E(t);return}function qo(t){t=t|0;Zo(t);return}function $o(t){t=t|0;Jo(t+24|0);return}function Ko(t){t=t|0;return s[t>>2]|0}function Jo(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~(((e+-12-n|0)>>>0)/12|0)*12|0);$E(r)}return}function Zo(t){t=t|0;var e=0;e=Qo()|0;ru(t,2,3,e,tu()|0,0);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function Qo(){return 9228}function tu(){return 1140}function eu(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0;r=p;p=p+16|0;n=r+8|0;i=r;a=nu(t)|0;t=s[a+4>>2]|0;s[i>>2]=s[a>>2];s[i+4>>2]=t;s[n>>2]=s[i>>2];s[n+4>>2]=s[i+4>>2];e=iu(e,n)|0;p=r;return e|0}function ru(t,e,r,n,i,a){t=t|0;e=e|0;r=r|0;n=n|0;i=i|0;a=a|0;s[t>>2]=e;s[t+4>>2]=r;s[t+8>>2]=n;s[t+12>>2]=i;s[t+16>>2]=a;return}function nu(t){t=t|0;return(s[(No()|0)+24>>2]|0)+(t*12|0)|0}function iu(t,e){t=t|0;e=e|0;var r=0,n=0,i=0;i=p;p=p+48|0;n=i;r=s[e>>2]|0;e=s[e+4>>2]|0;t=t+(e>>1)|0;if(e&1)r=s[(s[t>>2]|0)+r>>2]|0;gM[r&31](n,t);n=su(n)|0;p=i;return n|0}function su(t){t=t|0;var e=0,r=0,n=0,i=0;i=p;p=p+32|0;e=i+12|0;r=i;n=ou(au()|0)|0;if(!n)t=fu(t)|0;else{uu(e,n);lu(r,e);hu(t,r);t=cu(e)|0}p=i;return t|0}function au(){var t=0;if(!(n[7632]|0)){Su(9184);Dt(25,9184,_|0)|0;t=7632;s[t>>2]=1;s[t+4>>2]=0}return 9184}function ou(t){t=t|0;return s[t+36>>2]|0}function uu(t,e){t=t|0;e=e|0;s[t>>2]=e;s[t+4>>2]=t;s[t+8>>2]=0;return}function lu(t,e){t=t|0;e=e|0;s[t>>2]=s[e>>2];s[t+4>>2]=s[e+4>>2];s[t+8>>2]=0;return}function hu(t,e){t=t|0;e=e|0;_u(e,t,t+8|0,t+16|0,t+24|0,t+32|0,t+40|0)|0;return}function cu(t){t=t|0;return s[(s[t+4>>2]|0)+8>>2]|0}function fu(t){t=t|0;var e=0,r=0,n=0,i=0,a=0,o=0,u=0,l=0;l=p;p=p+16|0;r=l+4|0;n=l;i=zS(8)|0;a=i;o=jE(48)|0;u=o;e=u+48|0;do{s[u>>2]=s[t>>2];u=u+4|0;t=t+4|0}while((u|0)<(e|0));e=a+4|0;s[e>>2]=o;u=jE(8)|0;o=s[e>>2]|0;s[n>>2]=0;s[r>>2]=s[n>>2];du(u,o,r);s[i>>2]=u;p=l;return a|0}function du(t,e,r){t=t|0;e=e|0;r=r|0;s[t>>2]=e;r=jE(16)|0;s[r+4>>2]=0;s[r+8>>2]=0;s[r>>2]=1092;s[r+12>>2]=e;s[t+4>>2]=r;return}function pu(t){t=t|0;UE(t);$E(t);return}function gu(t){t=t|0;t=s[t+12>>2]|0;if(t|0)$E(t);return}function vu(t){t=t|0;$E(t);return}function _u(t,e,r,n,i,a,o){t=t|0;e=e|0;r=r|0;n=n|0;i=i|0;a=a|0;o=o|0;a=mu(s[t>>2]|0,e,r,n,i,a,o)|0;o=t+4|0;s[(s[o>>2]|0)+8>>2]=a;return s[(s[o>>2]|0)+8>>2]|0}function mu(t,e,r,n,i,s,a){t=t|0;e=e|0;r=r|0;n=n|0;i=i|0;s=s|0;a=a|0;var o=0,u=0;o=p;p=p+16|0;u=o;Sx(u);t=wa(t)|0;a=yu(t,+h[e>>3],+h[r>>3],+h[n>>3],+h[i>>3],+h[s>>3],+h[a>>3])|0;kx(u);p=o;return a|0}function yu(t,e,r,n,i,s,a){t=t|0;e=+e;r=+r;n=+n;i=+i;s=+s;a=+a;var o=0;o=Ta(bu()|0)|0;e=+ka(e);r=+ka(r);n=+ka(n);i=+ka(i);s=+ka(s);return Et(0,o|0,t|0,+e,+r,+n,+i,+s,+ +ka(a))|0}function bu(){var t=0;if(!(n[7624]|0)){wu(9172);t=7624;s[t>>2]=1;s[t+4>>2]=0}return 9172}function wu(t){t=t|0;Da(t,Cu()|0,6);return}function Cu(){return 1112}function Su(t){t=t|0;Mu(t);return}function Tu(t){t=t|0;ku(t+24|0);xu(t+16|0);return}function ku(t){t=t|0;Pu(t);return}function xu(t){t=t|0;Eu(t);return}function Eu(t){t=t|0;var e=0,r=0;e=s[t>>2]|0;if(e|0)do{r=e;e=s[e>>2]|0;$E(r)}while((e|0)!=0);s[t>>2]=0;return}function Pu(t){t=t|0;var e=0,r=0;e=s[t>>2]|0;if(e|0)do{r=e;e=s[e>>2]|0;$E(r)}while((e|0)!=0);s[t>>2]=0;return}function Mu(t){t=t|0;var e=0;s[t+16>>2]=0;s[t+20>>2]=0;e=t+24|0;s[e>>2]=0;s[t+28>>2]=e;s[t+36>>2]=0;n[t+40>>0]=0;n[t+41>>0]=0;return}function Ru(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0;n=p;p=p+16|0;i=n+8|0;a=n;u=s[r>>2]|0;o=s[r+4>>2]|0;r=Lo(e)|0;s[a>>2]=u;s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];Au(t,r,i,0);p=n;return}function Au(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0,o=0,u=0,l=0,h=0,c=0;i=p;p=p+32|0;a=i+16|0;c=i+8|0;u=i;h=s[r>>2]|0;l=s[r+4>>2]|0;o=s[t>>2]|0;t=Lu()|0;s[c>>2]=h;s[c+4>>2]=l;s[a>>2]=s[c>>2];s[a+4>>2]=s[c+4>>2];r=Ou(a)|0;s[u>>2]=h;s[u+4>>2]=l;s[a>>2]=s[u>>2];s[a+4>>2]=s[u+4>>2];Io(o,e,t,r,Nu(a,n)|0,n);p=i;return}function Lu(){var t=0,e=0;if(!(n[7640]|0)){Uu(9232);Dt(26,9232,_|0)|0;e=7640;s[e>>2]=1;s[e+4>>2]=0}if(!(Ko(9232)|0)){t=9232;e=t+36|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));Uu(9232)}return 9232}function Ou(t){t=t|0;return 0}function Nu(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0;c=p;p=p+32|0;i=c+24|0;o=c+16|0;u=c;l=c+8|0;a=s[t>>2]|0;n=s[t+4>>2]|0;s[u>>2]=a;s[u+4>>2]=n;f=Lu()|0;h=f+24|0;t=Uo(e,4)|0;s[l>>2]=t;e=f+28|0;r=s[e>>2]|0;if(r>>>0<(s[f+32>>2]|0)>>>0){s[o>>2]=a;s[o+4>>2]=n;s[i>>2]=s[o>>2];s[i+4>>2]=s[o+4>>2];Bu(r,i,t);t=(s[e>>2]|0)+12|0;s[e>>2]=t}else{Du(h,u,l);t=s[e>>2]|0}p=c;return((t-(s[h>>2]|0)|0)/12|0)+-1|0}function Bu(t,e,r){t=t|0;e=e|0;r=r|0;var n=0;n=s[e+4>>2]|0;s[t>>2]=s[e>>2];s[t+4>>2]=n;s[t+8>>2]=r;return}function Du(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0,d=0;h=p;p=p+48|0;n=h+32|0;o=h+24|0;u=h;l=t+4|0;i=(((s[l>>2]|0)-(s[t>>2]|0)|0)/12|0)+1|0;a=Iu(t)|0;if(a>>>0<i>>>0)zE(t);else{c=s[t>>2]|0;d=((s[t+8>>2]|0)-c|0)/12|0;f=d<<1;Fu(u,d>>>0<a>>>1>>>0?f>>>0<i>>>0?i:f:a,((s[l>>2]|0)-c|0)/12|0,t+8|0);l=u+8|0;a=s[l>>2]|0;i=s[e+4>>2]|0;r=s[r>>2]|0;s[o>>2]=s[e>>2];s[o+4>>2]=i;s[n>>2]=s[o>>2];s[n+4>>2]=s[o+4>>2];Bu(a,n,r);s[l>>2]=(s[l>>2]|0)+12;Wu(t,u);zu(u);p=h;return}}function Iu(t){t=t|0;return 357913941}function Fu(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>357913941)qt();else{i=jE(e*12|0)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r*12|0)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e*12|0);return}function Wu(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(((i|0)/-12|0)*12|0)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function zu(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~(((n+-12-e|0)>>>0)/12|0)*12|0);t=s[t>>2]|0;if(t|0)$E(t);return}function Uu(t){t=t|0;Gu(t);return}function Hu(t){t=t|0;Yu(t+24|0);return}function Yu(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~(((e+-12-n|0)>>>0)/12|0)*12|0);$E(r)}return}function Gu(t){t=t|0;var e=0;e=Qo()|0;ru(t,2,1,e,Xu()|0,3);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function Xu(){return 1144}function Vu(t,e,r,n,i){t=t|0;e=e|0;r=+r;n=+n;i=i|0;var a=0,o=0,u=0,l=0;a=p;p=p+16|0;o=a+8|0;u=a;l=ju(t)|0;t=s[l+4>>2]|0;s[u>>2]=s[l>>2];s[u+4>>2]=t;s[o>>2]=s[u>>2];s[o+4>>2]=s[u+4>>2];qu(e,o,r,n,i);p=a;return}function ju(t){t=t|0;return(s[(Lu()|0)+24>>2]|0)+(t*12|0)|0}function qu(t,e,r,n,i){t=t|0;e=e|0;r=+r;n=+n;i=i|0;var a=0,o=0,u=0,l=0,h=0;h=p;p=p+16|0;o=h+2|0;u=h+1|0;l=h;a=s[e>>2]|0;e=s[e+4>>2]|0;t=t+(e>>1)|0;if(e&1)a=s[(s[t>>2]|0)+a>>2]|0;$u(o,r);r=+Ku(o,r);$u(u,n);n=+Ku(u,n);Ju(l,i);l=Zu(l,i)|0;_M[a&1](t,r,n,l);p=h;return}function $u(t,e){t=t|0;e=+e;return}function Ku(t,e){t=t|0;e=+e;return+ +tl(e)}function Ju(t,e){t=t|0;e=e|0;return}function Zu(t,e){t=t|0;e=e|0;return Qu(e)|0}function Qu(t){t=t|0;return t|0}function tl(t){t=+t;return+t}function el(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0;n=p;p=p+16|0;i=n+8|0;a=n;u=s[r>>2]|0;o=s[r+4>>2]|0;r=Lo(e)|0;s[a>>2]=u;s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];rl(t,r,i,1);p=n;return}function rl(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0,o=0,u=0,l=0,h=0,c=0;i=p;p=p+32|0;a=i+16|0;c=i+8|0;u=i;h=s[r>>2]|0;l=s[r+4>>2]|0;o=s[t>>2]|0;t=nl()|0;s[c>>2]=h;s[c+4>>2]=l;s[a>>2]=s[c>>2];s[a+4>>2]=s[c+4>>2];r=il(a)|0;s[u>>2]=h;s[u+4>>2]=l;s[a>>2]=s[u>>2];s[a+4>>2]=s[u+4>>2];Io(o,e,t,r,sl(a,n)|0,n);p=i;return}function nl(){var t=0,e=0;if(!(n[7648]|0)){fl(9268);Dt(27,9268,_|0)|0;e=7648;s[e>>2]=1;s[e+4>>2]=0}if(!(Ko(9268)|0)){t=9268;e=t+36|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));fl(9268)}return 9268}function il(t){t=t|0;return 0}function sl(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0;c=p;p=p+32|0;i=c+24|0;o=c+16|0;u=c;l=c+8|0;a=s[t>>2]|0;n=s[t+4>>2]|0;s[u>>2]=a;s[u+4>>2]=n;f=nl()|0;h=f+24|0;t=Uo(e,4)|0;s[l>>2]=t;e=f+28|0;r=s[e>>2]|0;if(r>>>0<(s[f+32>>2]|0)>>>0){s[o>>2]=a;s[o+4>>2]=n;s[i>>2]=s[o>>2];s[i+4>>2]=s[o+4>>2];al(r,i,t);t=(s[e>>2]|0)+12|0;s[e>>2]=t}else{ol(h,u,l);t=s[e>>2]|0}p=c;return((t-(s[h>>2]|0)|0)/12|0)+-1|0}function al(t,e,r){t=t|0;e=e|0;r=r|0;var n=0;n=s[e+4>>2]|0;s[t>>2]=s[e>>2];s[t+4>>2]=n;s[t+8>>2]=r;return}function ol(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0,d=0;h=p;p=p+48|0;n=h+32|0;o=h+24|0;u=h;l=t+4|0;i=(((s[l>>2]|0)-(s[t>>2]|0)|0)/12|0)+1|0;a=ul(t)|0;if(a>>>0<i>>>0)zE(t);else{c=s[t>>2]|0;d=((s[t+8>>2]|0)-c|0)/12|0;f=d<<1;ll(u,d>>>0<a>>>1>>>0?f>>>0<i>>>0?i:f:a,((s[l>>2]|0)-c|0)/12|0,t+8|0);l=u+8|0;a=s[l>>2]|0;i=s[e+4>>2]|0;r=s[r>>2]|0;s[o>>2]=s[e>>2];s[o+4>>2]=i;s[n>>2]=s[o>>2];s[n+4>>2]=s[o+4>>2];al(a,n,r);s[l>>2]=(s[l>>2]|0)+12;hl(t,u);cl(u);p=h;return}}function ul(t){t=t|0;return 357913941}function ll(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>357913941)qt();else{i=jE(e*12|0)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r*12|0)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e*12|0);return}function hl(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(((i|0)/-12|0)*12|0)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function cl(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~(((n+-12-e|0)>>>0)/12|0)*12|0);t=s[t>>2]|0;if(t|0)$E(t);return}function fl(t){t=t|0;gl(t);return}function dl(t){t=t|0;pl(t+24|0);return}function pl(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~(((e+-12-n|0)>>>0)/12|0)*12|0);$E(r)}return}function gl(t){t=t|0;var e=0;e=Qo()|0;ru(t,2,4,e,vl()|0,0);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function vl(){return 1160}function _l(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0;r=p;p=p+16|0;n=r+8|0;i=r;a=ml(t)|0;t=s[a+4>>2]|0;s[i>>2]=s[a>>2];s[i+4>>2]=t;s[n>>2]=s[i>>2];s[n+4>>2]=s[i+4>>2];e=yl(e,n)|0;p=r;return e|0}function ml(t){t=t|0;return(s[(nl()|0)+24>>2]|0)+(t*12|0)|0}function yl(t,e){t=t|0;e=e|0;var r=0;r=s[e>>2]|0;e=s[e+4>>2]|0;t=t+(e>>1)|0;if(e&1)r=s[(s[t>>2]|0)+r>>2]|0;return bl(vM[r&31](t)|0)|0}function bl(t){t=t|0;return t&1|0}function wl(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0;n=p;p=p+16|0;i=n+8|0;a=n;u=s[r>>2]|0;o=s[r+4>>2]|0;r=Lo(e)|0;s[a>>2]=u;s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];Cl(t,r,i,0);p=n;return}function Cl(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0,o=0,u=0,l=0,h=0,c=0;i=p;p=p+32|0;a=i+16|0;c=i+8|0;u=i;h=s[r>>2]|0;l=s[r+4>>2]|0;o=s[t>>2]|0;t=Sl()|0;s[c>>2]=h;s[c+4>>2]=l;s[a>>2]=s[c>>2];s[a+4>>2]=s[c+4>>2];r=Tl(a)|0;s[u>>2]=h;s[u+4>>2]=l;s[a>>2]=s[u>>2];s[a+4>>2]=s[u+4>>2];Io(o,e,t,r,kl(a,n)|0,n);p=i;return}function Sl(){var t=0,e=0;if(!(n[7656]|0)){Ll(9304);Dt(28,9304,_|0)|0;e=7656;s[e>>2]=1;s[e+4>>2]=0}if(!(Ko(9304)|0)){t=9304;e=t+36|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));Ll(9304)}return 9304}function Tl(t){t=t|0;return 0}function kl(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0;c=p;p=p+32|0;i=c+24|0;o=c+16|0;u=c;l=c+8|0;a=s[t>>2]|0;n=s[t+4>>2]|0;s[u>>2]=a;s[u+4>>2]=n;f=Sl()|0;h=f+24|0;t=Uo(e,4)|0;s[l>>2]=t;e=f+28|0;r=s[e>>2]|0;if(r>>>0<(s[f+32>>2]|0)>>>0){s[o>>2]=a;s[o+4>>2]=n;s[i>>2]=s[o>>2];s[i+4>>2]=s[o+4>>2];xl(r,i,t);t=(s[e>>2]|0)+12|0;s[e>>2]=t}else{El(h,u,l);t=s[e>>2]|0}p=c;return((t-(s[h>>2]|0)|0)/12|0)+-1|0}function xl(t,e,r){t=t|0;e=e|0;r=r|0;var n=0;n=s[e+4>>2]|0;s[t>>2]=s[e>>2];s[t+4>>2]=n;s[t+8>>2]=r;return}function El(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0,d=0;h=p;p=p+48|0;n=h+32|0;o=h+24|0;u=h;l=t+4|0;i=(((s[l>>2]|0)-(s[t>>2]|0)|0)/12|0)+1|0;a=Pl(t)|0;if(a>>>0<i>>>0)zE(t);else{c=s[t>>2]|0;d=((s[t+8>>2]|0)-c|0)/12|0;f=d<<1;Ml(u,d>>>0<a>>>1>>>0?f>>>0<i>>>0?i:f:a,((s[l>>2]|0)-c|0)/12|0,t+8|0);l=u+8|0;a=s[l>>2]|0;i=s[e+4>>2]|0;r=s[r>>2]|0;s[o>>2]=s[e>>2];s[o+4>>2]=i;s[n>>2]=s[o>>2];s[n+4>>2]=s[o+4>>2];xl(a,n,r);s[l>>2]=(s[l>>2]|0)+12;Rl(t,u);Al(u);p=h;return}}function Pl(t){t=t|0;return 357913941}function Ml(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>357913941)qt();else{i=jE(e*12|0)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r*12|0)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e*12|0);return}function Rl(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(((i|0)/-12|0)*12|0)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function Al(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~(((n+-12-e|0)>>>0)/12|0)*12|0);t=s[t>>2]|0;if(t|0)$E(t);return}function Ll(t){t=t|0;Bl(t);return}function Ol(t){t=t|0;Nl(t+24|0);return}function Nl(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~(((e+-12-n|0)>>>0)/12|0)*12|0);$E(r)}return}function Bl(t){t=t|0;var e=0;e=Qo()|0;ru(t,2,5,e,Dl()|0,1);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function Dl(){return 1164}function Il(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;n=p;p=p+16|0;i=n+8|0;a=n;o=Fl(t)|0;t=s[o+4>>2]|0;s[a>>2]=s[o>>2];s[a+4>>2]=t;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];Wl(e,i,r);p=n;return}function Fl(t){t=t|0;return(s[(Sl()|0)+24>>2]|0)+(t*12|0)|0}function Wl(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0;a=p;p=p+16|0;i=a;n=s[e>>2]|0;e=s[e+4>>2]|0;t=t+(e>>1)|0;if(e&1)n=s[(s[t>>2]|0)+n>>2]|0;zl(i,r);r=Ul(i,r)|0;gM[n&31](t,r);Hl(i);p=a;return}function zl(t,e){t=t|0;e=e|0;Yl(t,e);return}function Ul(t,e){t=t|0;e=e|0;return t|0}function Hl(t){t=t|0;Zi(t);return}function Yl(t,e){t=t|0;e=e|0;Gl(t,e);return}function Gl(t,e){t=t|0;e=e|0;s[t>>2]=e;return}function Xl(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0;n=p;p=p+16|0;i=n+8|0;a=n;u=s[r>>2]|0;o=s[r+4>>2]|0;r=Lo(e)|0;s[a>>2]=u;s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];Vl(t,r,i,0);p=n;return}function Vl(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0,o=0,u=0,l=0,h=0,c=0;i=p;p=p+32|0;a=i+16|0;c=i+8|0;u=i;h=s[r>>2]|0;l=s[r+4>>2]|0;o=s[t>>2]|0;t=jl()|0;s[c>>2]=h;s[c+4>>2]=l;s[a>>2]=s[c>>2];s[a+4>>2]=s[c+4>>2];r=ql(a)|0;s[u>>2]=h;s[u+4>>2]=l;s[a>>2]=s[u>>2];s[a+4>>2]=s[u+4>>2];Io(o,e,t,r,$l(a,n)|0,n);p=i;return}function jl(){var t=0,e=0;if(!(n[7664]|0)){rh(9340);Dt(29,9340,_|0)|0;e=7664;s[e>>2]=1;s[e+4>>2]=0}if(!(Ko(9340)|0)){t=9340;e=t+36|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));rh(9340)}return 9340}function ql(t){t=t|0;return 0}function $l(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0;c=p;p=p+32|0;i=c+24|0;o=c+16|0;u=c;l=c+8|0;a=s[t>>2]|0;n=s[t+4>>2]|0;s[u>>2]=a;s[u+4>>2]=n;f=jl()|0;h=f+24|0;t=Uo(e,4)|0;s[l>>2]=t;e=f+28|0;r=s[e>>2]|0;if(r>>>0<(s[f+32>>2]|0)>>>0){s[o>>2]=a;s[o+4>>2]=n;s[i>>2]=s[o>>2];s[i+4>>2]=s[o+4>>2];Kl(r,i,t);t=(s[e>>2]|0)+12|0;s[e>>2]=t}else{Jl(h,u,l);t=s[e>>2]|0}p=c;return((t-(s[h>>2]|0)|0)/12|0)+-1|0}function Kl(t,e,r){t=t|0;e=e|0;r=r|0;var n=0;n=s[e+4>>2]|0;s[t>>2]=s[e>>2];s[t+4>>2]=n;s[t+8>>2]=r;return}function Jl(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0,d=0;h=p;p=p+48|0;n=h+32|0;o=h+24|0;u=h;l=t+4|0;i=(((s[l>>2]|0)-(s[t>>2]|0)|0)/12|0)+1|0;a=Zl(t)|0;if(a>>>0<i>>>0)zE(t);else{c=s[t>>2]|0;d=((s[t+8>>2]|0)-c|0)/12|0;f=d<<1;Ql(u,d>>>0<a>>>1>>>0?f>>>0<i>>>0?i:f:a,((s[l>>2]|0)-c|0)/12|0,t+8|0);l=u+8|0;a=s[l>>2]|0;i=s[e+4>>2]|0;r=s[r>>2]|0;s[o>>2]=s[e>>2];s[o+4>>2]=i;s[n>>2]=s[o>>2];s[n+4>>2]=s[o+4>>2];Kl(a,n,r);s[l>>2]=(s[l>>2]|0)+12;th(t,u);eh(u);p=h;return}}function Zl(t){t=t|0;return 357913941}function Ql(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>357913941)qt();else{i=jE(e*12|0)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r*12|0)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e*12|0);return}function th(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(((i|0)/-12|0)*12|0)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function eh(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~(((n+-12-e|0)>>>0)/12|0)*12|0);t=s[t>>2]|0;if(t|0)$E(t);return}function rh(t){t=t|0;sh(t);return}function nh(t){t=t|0;ih(t+24|0);return}function ih(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~(((e+-12-n|0)>>>0)/12|0)*12|0);$E(r)}return}function sh(t){t=t|0;var e=0;e=Qo()|0;ru(t,2,4,e,ah()|0,1);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function ah(){return 1180}function oh(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;n=p;p=p+16|0;i=n+8|0;a=n;o=uh(t)|0;t=s[o+4>>2]|0;s[a>>2]=s[o>>2];s[a+4>>2]=t;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];r=lh(e,i,r)|0;p=n;return r|0}function uh(t){t=t|0;return(s[(jl()|0)+24>>2]|0)+(t*12|0)|0}function lh(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0;a=p;p=p+16|0;i=a;n=s[e>>2]|0;e=s[e+4>>2]|0;t=t+(e>>1)|0;if(e&1)n=s[(s[t>>2]|0)+n>>2]|0;hh(i,r);i=ch(i,r)|0;i=fh(SM[n&15](t,i)|0)|0;p=a;return i|0}function hh(t,e){t=t|0;e=e|0;return}function ch(t,e){t=t|0;e=e|0;return dh(e)|0}function fh(t){t=t|0;return t|0}function dh(t){t=t|0;return t|0}function ph(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0;n=p;p=p+16|0;i=n+8|0;a=n;u=s[r>>2]|0;o=s[r+4>>2]|0;r=Lo(e)|0;s[a>>2]=u;s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];gh(t,r,i,0);p=n;return}function gh(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0,o=0,u=0,l=0,h=0,c=0;i=p;p=p+32|0;a=i+16|0;c=i+8|0;u=i;h=s[r>>2]|0;l=s[r+4>>2]|0;o=s[t>>2]|0;t=vh()|0;s[c>>2]=h;s[c+4>>2]=l;s[a>>2]=s[c>>2];s[a+4>>2]=s[c+4>>2];r=_h(a)|0;s[u>>2]=h;s[u+4>>2]=l;s[a>>2]=s[u>>2];s[a+4>>2]=s[u+4>>2];Io(o,e,t,r,mh(a,n)|0,n);p=i;return}function vh(){var t=0,e=0;if(!(n[7672]|0)){kh(9376);Dt(30,9376,_|0)|0;e=7672;s[e>>2]=1;s[e+4>>2]=0}if(!(Ko(9376)|0)){t=9376;e=t+36|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));kh(9376)}return 9376}function _h(t){t=t|0;return 0}function mh(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0;c=p;p=p+32|0;i=c+24|0;o=c+16|0;u=c;l=c+8|0;a=s[t>>2]|0;n=s[t+4>>2]|0;s[u>>2]=a;s[u+4>>2]=n;f=vh()|0;h=f+24|0;t=Uo(e,4)|0;s[l>>2]=t;e=f+28|0;r=s[e>>2]|0;if(r>>>0<(s[f+32>>2]|0)>>>0){s[o>>2]=a;s[o+4>>2]=n;s[i>>2]=s[o>>2];s[i+4>>2]=s[o+4>>2];yh(r,i,t);t=(s[e>>2]|0)+12|0;s[e>>2]=t}else{bh(h,u,l);t=s[e>>2]|0}p=c;return((t-(s[h>>2]|0)|0)/12|0)+-1|0}function yh(t,e,r){t=t|0;e=e|0;r=r|0;var n=0;n=s[e+4>>2]|0;s[t>>2]=s[e>>2];s[t+4>>2]=n;s[t+8>>2]=r;return}function bh(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0,d=0;h=p;p=p+48|0;n=h+32|0;o=h+24|0;u=h;l=t+4|0;i=(((s[l>>2]|0)-(s[t>>2]|0)|0)/12|0)+1|0;a=wh(t)|0;if(a>>>0<i>>>0)zE(t);else{c=s[t>>2]|0;d=((s[t+8>>2]|0)-c|0)/12|0;f=d<<1;Ch(u,d>>>0<a>>>1>>>0?f>>>0<i>>>0?i:f:a,((s[l>>2]|0)-c|0)/12|0,t+8|0);l=u+8|0;a=s[l>>2]|0;i=s[e+4>>2]|0;r=s[r>>2]|0;s[o>>2]=s[e>>2];s[o+4>>2]=i;s[n>>2]=s[o>>2];s[n+4>>2]=s[o+4>>2];yh(a,n,r);s[l>>2]=(s[l>>2]|0)+12;Sh(t,u);Th(u);p=h;return}}function wh(t){t=t|0;return 357913941}function Ch(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>357913941)qt();else{i=jE(e*12|0)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r*12|0)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e*12|0);return}function Sh(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(((i|0)/-12|0)*12|0)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function Th(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~(((n+-12-e|0)>>>0)/12|0)*12|0);t=s[t>>2]|0;if(t|0)$E(t);return}function kh(t){t=t|0;Ph(t);return}function xh(t){t=t|0;Eh(t+24|0);return}function Eh(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~(((e+-12-n|0)>>>0)/12|0)*12|0);$E(r)}return}function Ph(t){t=t|0;var e=0;e=Qo()|0;ru(t,2,5,e,Mh()|0,0);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function Mh(){return 1196}function Rh(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0;r=p;p=p+16|0;n=r+8|0;i=r;a=Ah(t)|0;t=s[a+4>>2]|0;s[i>>2]=s[a>>2];s[i+4>>2]=t;s[n>>2]=s[i>>2];s[n+4>>2]=s[i+4>>2];e=Lh(e,n)|0;p=r;return e|0}function Ah(t){t=t|0;return(s[(vh()|0)+24>>2]|0)+(t*12|0)|0}function Lh(t,e){t=t|0;e=e|0;var r=0;r=s[e>>2]|0;e=s[e+4>>2]|0;t=t+(e>>1)|0;if(e&1)r=s[(s[t>>2]|0)+r>>2]|0;return fh(vM[r&31](t)|0)|0}function Oh(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0;n=p;p=p+16|0;i=n+8|0;a=n;u=s[r>>2]|0;o=s[r+4>>2]|0;r=Lo(e)|0;s[a>>2]=u;s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];Nh(t,r,i,1);p=n;return}function Nh(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0,o=0,u=0,l=0,h=0,c=0;i=p;p=p+32|0;a=i+16|0;c=i+8|0;u=i;h=s[r>>2]|0;l=s[r+4>>2]|0;o=s[t>>2]|0;t=Bh()|0;s[c>>2]=h;s[c+4>>2]=l;s[a>>2]=s[c>>2];s[a+4>>2]=s[c+4>>2];r=Dh(a)|0;s[u>>2]=h;s[u+4>>2]=l;s[a>>2]=s[u>>2];s[a+4>>2]=s[u+4>>2];Io(o,e,t,r,Ih(a,n)|0,n);p=i;return}function Bh(){var t=0,e=0;if(!(n[7680]|0)){Gh(9412);Dt(31,9412,_|0)|0;e=7680;s[e>>2]=1;s[e+4>>2]=0}if(!(Ko(9412)|0)){t=9412;e=t+36|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));Gh(9412)}return 9412}function Dh(t){t=t|0;return 0}function Ih(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0;c=p;p=p+32|0;i=c+24|0;o=c+16|0;u=c;l=c+8|0;a=s[t>>2]|0;n=s[t+4>>2]|0;s[u>>2]=a;s[u+4>>2]=n;f=Bh()|0;h=f+24|0;t=Uo(e,4)|0;s[l>>2]=t;e=f+28|0;r=s[e>>2]|0;if(r>>>0<(s[f+32>>2]|0)>>>0){s[o>>2]=a;s[o+4>>2]=n;s[i>>2]=s[o>>2];s[i+4>>2]=s[o+4>>2];Fh(r,i,t);t=(s[e>>2]|0)+12|0;s[e>>2]=t}else{Wh(h,u,l);t=s[e>>2]|0}p=c;return((t-(s[h>>2]|0)|0)/12|0)+-1|0}function Fh(t,e,r){t=t|0;e=e|0;r=r|0;var n=0;n=s[e+4>>2]|0;s[t>>2]=s[e>>2];s[t+4>>2]=n;s[t+8>>2]=r;return}function Wh(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0,d=0;h=p;p=p+48|0;n=h+32|0;o=h+24|0;u=h;l=t+4|0;i=(((s[l>>2]|0)-(s[t>>2]|0)|0)/12|0)+1|0;a=zh(t)|0;if(a>>>0<i>>>0)zE(t);else{c=s[t>>2]|0;d=((s[t+8>>2]|0)-c|0)/12|0;f=d<<1;Uh(u,d>>>0<a>>>1>>>0?f>>>0<i>>>0?i:f:a,((s[l>>2]|0)-c|0)/12|0,t+8|0);l=u+8|0;a=s[l>>2]|0;i=s[e+4>>2]|0;r=s[r>>2]|0;s[o>>2]=s[e>>2];s[o+4>>2]=i;s[n>>2]=s[o>>2];s[n+4>>2]=s[o+4>>2];Fh(a,n,r);s[l>>2]=(s[l>>2]|0)+12;Hh(t,u);Yh(u);p=h;return}}function zh(t){t=t|0;return 357913941}function Uh(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>357913941)qt();else{i=jE(e*12|0)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r*12|0)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e*12|0);return}function Hh(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(((i|0)/-12|0)*12|0)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function Yh(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~(((n+-12-e|0)>>>0)/12|0)*12|0);t=s[t>>2]|0;if(t|0)$E(t);return}function Gh(t){t=t|0;jh(t);return}function Xh(t){t=t|0;Vh(t+24|0);return}function Vh(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~(((e+-12-n|0)>>>0)/12|0)*12|0);$E(r)}return}function jh(t){t=t|0;var e=0;e=Qo()|0;ru(t,2,6,e,qh()|0,0);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function qh(){return 1200}function $h(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0;r=p;p=p+16|0;n=r+8|0;i=r;a=Kh(t)|0;t=s[a+4>>2]|0;s[i>>2]=s[a>>2];s[i+4>>2]=t;s[n>>2]=s[i>>2];s[n+4>>2]=s[i+4>>2];e=Jh(e,n)|0;p=r;return e|0}function Kh(t){t=t|0;return(s[(Bh()|0)+24>>2]|0)+(t*12|0)|0}function Jh(t,e){t=t|0;e=e|0;var r=0;r=s[e>>2]|0;e=s[e+4>>2]|0;t=t+(e>>1)|0;if(e&1)r=s[(s[t>>2]|0)+r>>2]|0;return Zh(vM[r&31](t)|0)|0}function Zh(t){t=t|0;return t|0}function Qh(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0;n=p;p=p+16|0;i=n+8|0;a=n;u=s[r>>2]|0;o=s[r+4>>2]|0;r=Lo(e)|0;s[a>>2]=u;s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];tc(t,r,i,0);p=n;return}function tc(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0,o=0,u=0,l=0,h=0,c=0;i=p;p=p+32|0;a=i+16|0;c=i+8|0;u=i;h=s[r>>2]|0;l=s[r+4>>2]|0;o=s[t>>2]|0;t=ec()|0;s[c>>2]=h;s[c+4>>2]=l;s[a>>2]=s[c>>2];s[a+4>>2]=s[c+4>>2];r=rc(a)|0;s[u>>2]=h;s[u+4>>2]=l;s[a>>2]=s[u>>2];s[a+4>>2]=s[u+4>>2];Io(o,e,t,r,nc(a,n)|0,n);p=i;return}function ec(){var t=0,e=0;if(!(n[7688]|0)){hc(9448);Dt(32,9448,_|0)|0;e=7688;s[e>>2]=1;s[e+4>>2]=0}if(!(Ko(9448)|0)){t=9448;e=t+36|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));hc(9448)}return 9448}function rc(t){t=t|0;return 0}function nc(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0;c=p;p=p+32|0;i=c+24|0;o=c+16|0;u=c;l=c+8|0;a=s[t>>2]|0;n=s[t+4>>2]|0;s[u>>2]=a;s[u+4>>2]=n;f=ec()|0;h=f+24|0;t=Uo(e,4)|0;s[l>>2]=t;e=f+28|0;r=s[e>>2]|0;if(r>>>0<(s[f+32>>2]|0)>>>0){s[o>>2]=a;s[o+4>>2]=n;s[i>>2]=s[o>>2];s[i+4>>2]=s[o+4>>2];ic(r,i,t);t=(s[e>>2]|0)+12|0;s[e>>2]=t}else{sc(h,u,l);t=s[e>>2]|0}p=c;return((t-(s[h>>2]|0)|0)/12|0)+-1|0}function ic(t,e,r){t=t|0;e=e|0;r=r|0;var n=0;n=s[e+4>>2]|0;s[t>>2]=s[e>>2];s[t+4>>2]=n;s[t+8>>2]=r;return}function sc(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0,d=0;h=p;p=p+48|0;n=h+32|0;o=h+24|0;u=h;l=t+4|0;i=(((s[l>>2]|0)-(s[t>>2]|0)|0)/12|0)+1|0;a=ac(t)|0;if(a>>>0<i>>>0)zE(t);else{c=s[t>>2]|0;d=((s[t+8>>2]|0)-c|0)/12|0;f=d<<1;oc(u,d>>>0<a>>>1>>>0?f>>>0<i>>>0?i:f:a,((s[l>>2]|0)-c|0)/12|0,t+8|0);l=u+8|0;a=s[l>>2]|0;i=s[e+4>>2]|0;r=s[r>>2]|0;s[o>>2]=s[e>>2];s[o+4>>2]=i;s[n>>2]=s[o>>2];s[n+4>>2]=s[o+4>>2];ic(a,n,r);s[l>>2]=(s[l>>2]|0)+12;uc(t,u);lc(u);p=h;return}}function ac(t){t=t|0;return 357913941}function oc(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>357913941)qt();else{i=jE(e*12|0)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r*12|0)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e*12|0);return}function uc(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(((i|0)/-12|0)*12|0)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function lc(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~(((n+-12-e|0)>>>0)/12|0)*12|0);t=s[t>>2]|0;if(t|0)$E(t);return}function hc(t){t=t|0;dc(t);return}function cc(t){t=t|0;fc(t+24|0);return}function fc(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~(((e+-12-n|0)>>>0)/12|0)*12|0);$E(r)}return}function dc(t){t=t|0;var e=0;e=Qo()|0;ru(t,2,6,e,pc()|0,1);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function pc(){return 1204}function gc(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;n=p;p=p+16|0;i=n+8|0;a=n;o=vc(t)|0;t=s[o+4>>2]|0;s[a>>2]=s[o>>2];s[a+4>>2]=t;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];_c(e,i,r);p=n;return}function vc(t){t=t|0;return(s[(ec()|0)+24>>2]|0)+(t*12|0)|0}function _c(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0;a=p;p=p+16|0;i=a;n=s[e>>2]|0;e=s[e+4>>2]|0;t=t+(e>>1)|0;if(e&1)n=s[(s[t>>2]|0)+n>>2]|0;mc(i,r);i=yc(i,r)|0;gM[n&31](t,i);p=a;return}function mc(t,e){t=t|0;e=e|0;return}function yc(t,e){t=t|0;e=e|0;return bc(e)|0}function bc(t){t=t|0;return t|0}function wc(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0;n=p;p=p+16|0;i=n+8|0;a=n;u=s[r>>2]|0;o=s[r+4>>2]|0;r=Lo(e)|0;s[a>>2]=u;s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];Cc(t,r,i,0);p=n;return}function Cc(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0,o=0,u=0,l=0,h=0,c=0;i=p;p=p+32|0;a=i+16|0;c=i+8|0;u=i;h=s[r>>2]|0;l=s[r+4>>2]|0;o=s[t>>2]|0;t=Sc()|0;s[c>>2]=h;s[c+4>>2]=l;s[a>>2]=s[c>>2];s[a+4>>2]=s[c+4>>2];r=Tc(a)|0;s[u>>2]=h;s[u+4>>2]=l;s[a>>2]=s[u>>2];s[a+4>>2]=s[u+4>>2];Io(o,e,t,r,kc(a,n)|0,n);p=i;return}function Sc(){var t=0,e=0;if(!(n[7696]|0)){Lc(9484);Dt(33,9484,_|0)|0;e=7696;s[e>>2]=1;s[e+4>>2]=0}if(!(Ko(9484)|0)){t=9484;e=t+36|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));Lc(9484)}return 9484}function Tc(t){t=t|0;return 0}function kc(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0;c=p;p=p+32|0;i=c+24|0;o=c+16|0;u=c;l=c+8|0;a=s[t>>2]|0;n=s[t+4>>2]|0;s[u>>2]=a;s[u+4>>2]=n;f=Sc()|0;h=f+24|0;t=Uo(e,4)|0;s[l>>2]=t;e=f+28|0;r=s[e>>2]|0;if(r>>>0<(s[f+32>>2]|0)>>>0){s[o>>2]=a;s[o+4>>2]=n;s[i>>2]=s[o>>2];s[i+4>>2]=s[o+4>>2];xc(r,i,t);t=(s[e>>2]|0)+12|0;s[e>>2]=t}else{Ec(h,u,l);t=s[e>>2]|0}p=c;return((t-(s[h>>2]|0)|0)/12|0)+-1|0}function xc(t,e,r){t=t|0;e=e|0;r=r|0;var n=0;n=s[e+4>>2]|0;s[t>>2]=s[e>>2];s[t+4>>2]=n;s[t+8>>2]=r;return}function Ec(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0,d=0;h=p;p=p+48|0;n=h+32|0;o=h+24|0;u=h;l=t+4|0;i=(((s[l>>2]|0)-(s[t>>2]|0)|0)/12|0)+1|0;a=Pc(t)|0;if(a>>>0<i>>>0)zE(t);else{c=s[t>>2]|0;d=((s[t+8>>2]|0)-c|0)/12|0;f=d<<1;Mc(u,d>>>0<a>>>1>>>0?f>>>0<i>>>0?i:f:a,((s[l>>2]|0)-c|0)/12|0,t+8|0);l=u+8|0;a=s[l>>2]|0;i=s[e+4>>2]|0;r=s[r>>2]|0;s[o>>2]=s[e>>2];s[o+4>>2]=i;s[n>>2]=s[o>>2];s[n+4>>2]=s[o+4>>2];xc(a,n,r);s[l>>2]=(s[l>>2]|0)+12;Rc(t,u);Ac(u);p=h;return}}function Pc(t){t=t|0;return 357913941}function Mc(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>357913941)qt();else{i=jE(e*12|0)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r*12|0)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e*12|0);return}function Rc(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(((i|0)/-12|0)*12|0)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function Ac(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~(((n+-12-e|0)>>>0)/12|0)*12|0);t=s[t>>2]|0;if(t|0)$E(t);return}function Lc(t){t=t|0;Bc(t);return}function Oc(t){t=t|0;Nc(t+24|0);return}function Nc(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~(((e+-12-n|0)>>>0)/12|0)*12|0);$E(r)}return}function Bc(t){t=t|0;var e=0;e=Qo()|0;ru(t,2,1,e,Dc()|0,2);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function Dc(){return 1212}function Ic(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0,o=0,u=0;i=p;p=p+16|0;a=i+8|0;o=i;u=Fc(t)|0;t=s[u+4>>2]|0;s[o>>2]=s[u>>2];s[o+4>>2]=t;s[a>>2]=s[o>>2];s[a+4>>2]=s[o+4>>2];Wc(e,a,r,n);p=i;return}function Fc(t){t=t|0;return(s[(Sc()|0)+24>>2]|0)+(t*12|0)|0}function Wc(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0,o=0,u=0;u=p;p=p+16|0;a=u+1|0;o=u;i=s[e>>2]|0;e=s[e+4>>2]|0;t=t+(e>>1)|0;if(e&1)i=s[(s[t>>2]|0)+i>>2]|0;mc(a,r);a=yc(a,r)|0;hh(o,n);o=ch(o,n)|0;AM[i&15](t,a,o);p=u;return}function zc(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0;n=p;p=p+16|0;i=n+8|0;a=n;u=s[r>>2]|0;o=s[r+4>>2]|0;r=Lo(e)|0;s[a>>2]=u;s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];Uc(t,r,i,1);p=n;return}function Uc(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0,o=0,u=0,l=0,h=0,c=0;i=p;p=p+32|0;a=i+16|0;c=i+8|0;u=i;h=s[r>>2]|0;l=s[r+4>>2]|0;o=s[t>>2]|0;t=Hc()|0;s[c>>2]=h;s[c+4>>2]=l;s[a>>2]=s[c>>2];s[a+4>>2]=s[c+4>>2];r=Yc(a)|0;s[u>>2]=h;s[u+4>>2]=l;s[a>>2]=s[u>>2];s[a+4>>2]=s[u+4>>2];Io(o,e,t,r,Gc(a,n)|0,n);p=i;return}function Hc(){var t=0,e=0;if(!(n[7704]|0)){Jc(9520);Dt(34,9520,_|0)|0;e=7704;s[e>>2]=1;s[e+4>>2]=0}if(!(Ko(9520)|0)){t=9520;e=t+36|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));Jc(9520)}return 9520}function Yc(t){t=t|0;return 0}function Gc(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0;c=p;p=p+32|0;i=c+24|0;o=c+16|0;u=c;l=c+8|0;a=s[t>>2]|0;n=s[t+4>>2]|0;s[u>>2]=a;s[u+4>>2]=n;f=Hc()|0;h=f+24|0;t=Uo(e,4)|0;s[l>>2]=t;e=f+28|0;r=s[e>>2]|0;if(r>>>0<(s[f+32>>2]|0)>>>0){s[o>>2]=a;s[o+4>>2]=n;s[i>>2]=s[o>>2];s[i+4>>2]=s[o+4>>2];Xc(r,i,t);t=(s[e>>2]|0)+12|0;s[e>>2]=t}else{Vc(h,u,l);t=s[e>>2]|0}p=c;return((t-(s[h>>2]|0)|0)/12|0)+-1|0}function Xc(t,e,r){t=t|0;e=e|0;r=r|0;var n=0;n=s[e+4>>2]|0;s[t>>2]=s[e>>2];s[t+4>>2]=n;s[t+8>>2]=r;return}function Vc(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0,d=0;h=p;p=p+48|0;n=h+32|0;o=h+24|0;u=h;l=t+4|0;i=(((s[l>>2]|0)-(s[t>>2]|0)|0)/12|0)+1|0;a=jc(t)|0;if(a>>>0<i>>>0)zE(t);else{c=s[t>>2]|0;d=((s[t+8>>2]|0)-c|0)/12|0;f=d<<1;qc(u,d>>>0<a>>>1>>>0?f>>>0<i>>>0?i:f:a,((s[l>>2]|0)-c|0)/12|0,t+8|0);l=u+8|0;a=s[l>>2]|0;i=s[e+4>>2]|0;r=s[r>>2]|0;s[o>>2]=s[e>>2];s[o+4>>2]=i;s[n>>2]=s[o>>2];s[n+4>>2]=s[o+4>>2];Xc(a,n,r);s[l>>2]=(s[l>>2]|0)+12;$c(t,u);Kc(u);p=h;return}}function jc(t){t=t|0;return 357913941}function qc(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>357913941)qt();else{i=jE(e*12|0)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r*12|0)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e*12|0);return}function $c(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(((i|0)/-12|0)*12|0)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function Kc(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~(((n+-12-e|0)>>>0)/12|0)*12|0);t=s[t>>2]|0;if(t|0)$E(t);return}function Jc(t){t=t|0;tf(t);return}function Zc(t){t=t|0;Qc(t+24|0);return}function Qc(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~(((e+-12-n|0)>>>0)/12|0)*12|0);$E(r)}return}function tf(t){t=t|0;var e=0;e=Qo()|0;ru(t,2,1,e,ef()|0,1);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function ef(){return 1224}function rf(t,e,r){t=t|0;e=e|0;r=r|0;var n=0.0,i=0,a=0,o=0,u=0;i=p;p=p+16|0;a=i+8|0;o=i;u=nf(t)|0;t=s[u+4>>2]|0;s[o>>2]=s[u>>2];s[o+4>>2]=t;s[a>>2]=s[o>>2];s[a+4>>2]=s[o+4>>2];n=+sf(e,a,r);p=i;return+n}function nf(t){t=t|0;return(s[(Hc()|0)+24>>2]|0)+(t*12|0)|0}function sf(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0.0;a=p;p=p+16|0;i=a;n=s[e>>2]|0;e=s[e+4>>2]|0;t=t+(e>>1)|0;if(e&1)n=s[(s[t>>2]|0)+n>>2]|0;Ju(i,r);i=Zu(i,r)|0;o=+Oa(+xM[n&7](t,i));p=a;return+o}function af(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0;n=p;p=p+16|0;i=n+8|0;a=n;u=s[r>>2]|0;o=s[r+4>>2]|0;r=Lo(e)|0;s[a>>2]=u;s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];of(t,r,i,1);p=n;return}function of(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0,o=0,u=0,l=0,h=0,c=0;i=p;p=p+32|0;a=i+16|0;c=i+8|0;u=i;h=s[r>>2]|0;l=s[r+4>>2]|0;o=s[t>>2]|0;t=uf()|0;s[c>>2]=h;s[c+4>>2]=l;s[a>>2]=s[c>>2];s[a+4>>2]=s[c+4>>2];r=lf(a)|0;s[u>>2]=h;s[u+4>>2]=l;s[a>>2]=s[u>>2];s[a+4>>2]=s[u+4>>2];Io(o,e,t,r,hf(a,n)|0,n);p=i;return}function uf(){var t=0,e=0;if(!(n[7712]|0)){_f(9556);Dt(35,9556,_|0)|0;e=7712;s[e>>2]=1;s[e+4>>2]=0}if(!(Ko(9556)|0)){t=9556;e=t+36|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));_f(9556)}return 9556}function lf(t){t=t|0;return 0}function hf(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0;c=p;p=p+32|0;i=c+24|0;o=c+16|0;u=c;l=c+8|0;a=s[t>>2]|0;n=s[t+4>>2]|0;s[u>>2]=a;s[u+4>>2]=n;f=uf()|0;h=f+24|0;t=Uo(e,4)|0;s[l>>2]=t;e=f+28|0;r=s[e>>2]|0;if(r>>>0<(s[f+32>>2]|0)>>>0){s[o>>2]=a;s[o+4>>2]=n;s[i>>2]=s[o>>2];s[i+4>>2]=s[o+4>>2];cf(r,i,t);t=(s[e>>2]|0)+12|0;s[e>>2]=t}else{ff(h,u,l);t=s[e>>2]|0}p=c;return((t-(s[h>>2]|0)|0)/12|0)+-1|0}function cf(t,e,r){t=t|0;e=e|0;r=r|0;var n=0;n=s[e+4>>2]|0;s[t>>2]=s[e>>2];s[t+4>>2]=n;s[t+8>>2]=r;return}function ff(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0,d=0;h=p;p=p+48|0;n=h+32|0;o=h+24|0;u=h;l=t+4|0;i=(((s[l>>2]|0)-(s[t>>2]|0)|0)/12|0)+1|0;a=df(t)|0;if(a>>>0<i>>>0)zE(t);else{c=s[t>>2]|0;d=((s[t+8>>2]|0)-c|0)/12|0;f=d<<1;pf(u,d>>>0<a>>>1>>>0?f>>>0<i>>>0?i:f:a,((s[l>>2]|0)-c|0)/12|0,t+8|0);l=u+8|0;a=s[l>>2]|0;i=s[e+4>>2]|0;r=s[r>>2]|0;s[o>>2]=s[e>>2];s[o+4>>2]=i;s[n>>2]=s[o>>2];s[n+4>>2]=s[o+4>>2];cf(a,n,r);s[l>>2]=(s[l>>2]|0)+12;gf(t,u);vf(u);p=h;return}}function df(t){t=t|0;return 357913941}function pf(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>357913941)qt();else{i=jE(e*12|0)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r*12|0)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e*12|0);return}function gf(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(((i|0)/-12|0)*12|0)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function vf(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~(((n+-12-e|0)>>>0)/12|0)*12|0);t=s[t>>2]|0;if(t|0)$E(t);return}function _f(t){t=t|0;bf(t);return}function mf(t){t=t|0;yf(t+24|0);return}function yf(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~(((e+-12-n|0)>>>0)/12|0)*12|0);$E(r)}return}function bf(t){t=t|0;var e=0;e=Qo()|0;ru(t,2,5,e,wf()|0,0);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function wf(){return 1232}function Cf(t,e){t=t|0;e=e|0;var r=0.0,n=0,i=0,a=0,o=0;n=p;p=p+16|0;i=n+8|0;a=n;o=Sf(t)|0;t=s[o+4>>2]|0;s[a>>2]=s[o>>2];s[a+4>>2]=t;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];r=+Tf(e,i);p=n;return+r}function Sf(t){t=t|0;return(s[(uf()|0)+24>>2]|0)+(t*12|0)|0}function Tf(t,e){t=t|0;e=e|0;var r=0;r=s[e>>2]|0;e=s[e+4>>2]|0;t=t+(e>>1)|0;if(e&1)r=s[(s[t>>2]|0)+r>>2]|0;return+ +Oa(+wM[r&15](t))}function kf(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0;n=p;p=p+16|0;i=n+8|0;a=n;u=s[r>>2]|0;o=s[r+4>>2]|0;r=Lo(e)|0;s[a>>2]=u;s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];xf(t,r,i,1);p=n;return}function xf(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0,o=0,u=0,l=0,h=0,c=0;i=p;p=p+32|0;a=i+16|0;c=i+8|0;u=i;h=s[r>>2]|0;l=s[r+4>>2]|0;o=s[t>>2]|0;t=Ef()|0;s[c>>2]=h;s[c+4>>2]=l;s[a>>2]=s[c>>2];s[a+4>>2]=s[c+4>>2];r=Pf(a)|0;s[u>>2]=h;s[u+4>>2]=l;s[a>>2]=s[u>>2];s[a+4>>2]=s[u+4>>2];Io(o,e,t,r,Mf(a,n)|0,n);p=i;return}function Ef(){var t=0,e=0;if(!(n[7720]|0)){Df(9592);Dt(36,9592,_|0)|0;e=7720;s[e>>2]=1;s[e+4>>2]=0}if(!(Ko(9592)|0)){t=9592;e=t+36|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));Df(9592)}return 9592}function Pf(t){t=t|0;return 0}function Mf(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0;c=p;p=p+32|0;i=c+24|0;o=c+16|0;u=c;l=c+8|0;a=s[t>>2]|0;n=s[t+4>>2]|0;s[u>>2]=a;s[u+4>>2]=n;f=Ef()|0;h=f+24|0;t=Uo(e,4)|0;s[l>>2]=t;e=f+28|0;r=s[e>>2]|0;if(r>>>0<(s[f+32>>2]|0)>>>0){s[o>>2]=a;s[o+4>>2]=n;s[i>>2]=s[o>>2];s[i+4>>2]=s[o+4>>2];Rf(r,i,t);t=(s[e>>2]|0)+12|0;s[e>>2]=t}else{Af(h,u,l);t=s[e>>2]|0}p=c;return((t-(s[h>>2]|0)|0)/12|0)+-1|0}function Rf(t,e,r){t=t|0;e=e|0;r=r|0;var n=0;n=s[e+4>>2]|0;s[t>>2]=s[e>>2];s[t+4>>2]=n;s[t+8>>2]=r;return}function Af(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0,d=0;h=p;p=p+48|0;n=h+32|0;o=h+24|0;u=h;l=t+4|0;i=(((s[l>>2]|0)-(s[t>>2]|0)|0)/12|0)+1|0;a=Lf(t)|0;if(a>>>0<i>>>0)zE(t);else{c=s[t>>2]|0;d=((s[t+8>>2]|0)-c|0)/12|0;f=d<<1;Of(u,d>>>0<a>>>1>>>0?f>>>0<i>>>0?i:f:a,((s[l>>2]|0)-c|0)/12|0,t+8|0);l=u+8|0;a=s[l>>2]|0;i=s[e+4>>2]|0;r=s[r>>2]|0;s[o>>2]=s[e>>2];s[o+4>>2]=i;s[n>>2]=s[o>>2];s[n+4>>2]=s[o+4>>2];Rf(a,n,r);s[l>>2]=(s[l>>2]|0)+12;Nf(t,u);Bf(u);p=h;return}}function Lf(t){t=t|0;return 357913941}function Of(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>357913941)qt();else{i=jE(e*12|0)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r*12|0)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e*12|0);return}function Nf(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(((i|0)/-12|0)*12|0)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function Bf(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~(((n+-12-e|0)>>>0)/12|0)*12|0);t=s[t>>2]|0;if(t|0)$E(t);return}function Df(t){t=t|0;Wf(t);return}function If(t){t=t|0;Ff(t+24|0);return}function Ff(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~(((e+-12-n|0)>>>0)/12|0)*12|0);$E(r)}return}function Wf(t){t=t|0;var e=0;e=Qo()|0;ru(t,2,7,e,zf()|0,0);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function zf(){return 1276}function Uf(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0;r=p;p=p+16|0;n=r+8|0;i=r;a=Hf(t)|0;t=s[a+4>>2]|0;s[i>>2]=s[a>>2];s[i+4>>2]=t;s[n>>2]=s[i>>2];s[n+4>>2]=s[i+4>>2];e=Yf(e,n)|0;p=r;return e|0}function Hf(t){t=t|0;return(s[(Ef()|0)+24>>2]|0)+(t*12|0)|0}function Yf(t,e){t=t|0;e=e|0;var r=0,n=0,i=0;i=p;p=p+16|0;n=i;r=s[e>>2]|0;e=s[e+4>>2]|0;t=t+(e>>1)|0;if(e&1)r=s[(s[t>>2]|0)+r>>2]|0;gM[r&31](n,t);n=Gf(n)|0;p=i;return n|0}function Gf(t){t=t|0;var e=0,r=0,n=0,i=0;i=p;p=p+32|0;e=i+12|0;r=i;n=ou(Xf()|0)|0;if(!n)t=jf(t)|0;else{uu(e,n);lu(r,e);Vf(t,r);t=cu(e)|0}p=i;return t|0}function Xf(){var t=0;if(!(n[7736]|0)){id(9640);Dt(25,9640,_|0)|0;t=7736;s[t>>2]=1;s[t+4>>2]=0}return 9640}function Vf(t,e){t=t|0;e=e|0;Zf(e,t,t+8|0)|0;return}function jf(t){t=t|0;var e=0,r=0,n=0,i=0,a=0,o=0,u=0;r=p;p=p+16|0;i=r+4|0;o=r;n=zS(8)|0;e=n;u=jE(16)|0;s[u>>2]=s[t>>2];s[u+4>>2]=s[t+4>>2];s[u+8>>2]=s[t+8>>2];s[u+12>>2]=s[t+12>>2];a=e+4|0;s[a>>2]=u;t=jE(8)|0;a=s[a>>2]|0;s[o>>2]=0;s[i>>2]=s[o>>2];qf(t,a,i);s[n>>2]=t;p=r;return e|0}function qf(t,e,r){t=t|0;e=e|0;r=r|0;s[t>>2]=e;r=jE(16)|0;s[r+4>>2]=0;s[r+8>>2]=0;s[r>>2]=1244;s[r+12>>2]=e;s[t+4>>2]=r;return}function $f(t){t=t|0;UE(t);$E(t);return}function Kf(t){t=t|0;t=s[t+12>>2]|0;if(t|0)$E(t);return}function Jf(t){t=t|0;$E(t);return}function Zf(t,e,r){t=t|0;e=e|0;r=r|0;e=Qf(s[t>>2]|0,e,r)|0;r=t+4|0;s[(s[r>>2]|0)+8>>2]=e;return s[(s[r>>2]|0)+8>>2]|0}function Qf(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0;n=p;p=p+16|0;i=n;Sx(i);t=wa(t)|0;r=td(t,s[e>>2]|0,+h[r>>3])|0;kx(i);p=n;return r|0}function td(t,e,r){t=t|0;e=e|0;r=+r;var n=0;n=Ta(ed()|0)|0;e=xa(e)|0;return Pt(0,n|0,t|0,e|0,+ +ka(r))|0}function ed(){var t=0;if(!(n[7728]|0)){rd(9628);t=7728;s[t>>2]=1;s[t+4>>2]=0}return 9628}function rd(t){t=t|0;Da(t,nd()|0,2);return}function nd(){return 1264}function id(t){t=t|0;Mu(t);return}function sd(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0;n=p;p=p+16|0;i=n+8|0;a=n;u=s[r>>2]|0;o=s[r+4>>2]|0;r=Lo(e)|0;s[a>>2]=u;s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];ad(t,r,i,1);p=n;return}function ad(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0,o=0,u=0,l=0,h=0,c=0;i=p;p=p+32|0;a=i+16|0;c=i+8|0;u=i;h=s[r>>2]|0;l=s[r+4>>2]|0;o=s[t>>2]|0;t=od()|0;s[c>>2]=h;s[c+4>>2]=l;s[a>>2]=s[c>>2];s[a+4>>2]=s[c+4>>2];r=ud(a)|0;s[u>>2]=h;s[u+4>>2]=l;s[a>>2]=s[u>>2];s[a+4>>2]=s[u+4>>2];Io(o,e,t,r,ld(a,n)|0,n);p=i;return}function od(){var t=0,e=0;if(!(n[7744]|0)){vd(9684);Dt(37,9684,_|0)|0;e=7744;s[e>>2]=1;s[e+4>>2]=0}if(!(Ko(9684)|0)){t=9684;e=t+36|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));vd(9684)}return 9684}function ud(t){t=t|0;return 0}function ld(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0;c=p;p=p+32|0;i=c+24|0;o=c+16|0;u=c;l=c+8|0;a=s[t>>2]|0;n=s[t+4>>2]|0;s[u>>2]=a;s[u+4>>2]=n;f=od()|0;h=f+24|0;t=Uo(e,4)|0;s[l>>2]=t;e=f+28|0;r=s[e>>2]|0;if(r>>>0<(s[f+32>>2]|0)>>>0){s[o>>2]=a;s[o+4>>2]=n;s[i>>2]=s[o>>2];s[i+4>>2]=s[o+4>>2];hd(r,i,t);t=(s[e>>2]|0)+12|0;s[e>>2]=t}else{cd(h,u,l);t=s[e>>2]|0}p=c;return((t-(s[h>>2]|0)|0)/12|0)+-1|0}function hd(t,e,r){t=t|0;e=e|0;r=r|0;var n=0;n=s[e+4>>2]|0;s[t>>2]=s[e>>2];s[t+4>>2]=n;s[t+8>>2]=r;return}function cd(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0,d=0;h=p;p=p+48|0;n=h+32|0;o=h+24|0;u=h;l=t+4|0;i=(((s[l>>2]|0)-(s[t>>2]|0)|0)/12|0)+1|0;a=fd(t)|0;if(a>>>0<i>>>0)zE(t);else{c=s[t>>2]|0;d=((s[t+8>>2]|0)-c|0)/12|0;f=d<<1;dd(u,d>>>0<a>>>1>>>0?f>>>0<i>>>0?i:f:a,((s[l>>2]|0)-c|0)/12|0,t+8|0);l=u+8|0;a=s[l>>2]|0;i=s[e+4>>2]|0;r=s[r>>2]|0;s[o>>2]=s[e>>2];s[o+4>>2]=i;s[n>>2]=s[o>>2];s[n+4>>2]=s[o+4>>2];hd(a,n,r);s[l>>2]=(s[l>>2]|0)+12;pd(t,u);gd(u);p=h;return}}function fd(t){t=t|0;return 357913941}function dd(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>357913941)qt();else{i=jE(e*12|0)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r*12|0)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e*12|0);return}function pd(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(((i|0)/-12|0)*12|0)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function gd(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~(((n+-12-e|0)>>>0)/12|0)*12|0);t=s[t>>2]|0;if(t|0)$E(t);return}function vd(t){t=t|0;yd(t);return}function _d(t){t=t|0;md(t+24|0);return}function md(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~(((e+-12-n|0)>>>0)/12|0)*12|0);$E(r)}return}function yd(t){t=t|0;var e=0;e=Qo()|0;ru(t,2,5,e,bd()|0,1);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function bd(){return 1280}function wd(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;n=p;p=p+16|0;i=n+8|0;a=n;o=Cd(t)|0;t=s[o+4>>2]|0;s[a>>2]=s[o>>2];s[a+4>>2]=t;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];r=Sd(e,i,r)|0;p=n;return r|0}function Cd(t){t=t|0;return(s[(od()|0)+24>>2]|0)+(t*12|0)|0}function Sd(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;o=p;p=p+32|0;i=o;a=o+16|0;n=s[e>>2]|0;e=s[e+4>>2]|0;t=t+(e>>1)|0;if(e&1)n=s[(s[t>>2]|0)+n>>2]|0;Ju(a,r);a=Zu(a,r)|0;AM[n&15](i,t,a);a=Gf(i)|0;p=o;return a|0}function Td(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0;n=p;p=p+16|0;i=n+8|0;a=n;u=s[r>>2]|0;o=s[r+4>>2]|0;r=Lo(e)|0;s[a>>2]=u;s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];kd(t,r,i,1);p=n;return}function kd(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0,o=0,u=0,l=0,h=0,c=0;i=p;p=p+32|0;a=i+16|0;c=i+8|0;u=i;h=s[r>>2]|0;l=s[r+4>>2]|0;o=s[t>>2]|0;t=xd()|0;s[c>>2]=h;s[c+4>>2]=l;s[a>>2]=s[c>>2];s[a+4>>2]=s[c+4>>2];r=Ed(a)|0;s[u>>2]=h;s[u+4>>2]=l;s[a>>2]=s[u>>2];s[a+4>>2]=s[u+4>>2];Io(o,e,t,r,Pd(a,n)|0,n);p=i;return}function xd(){var t=0,e=0;if(!(n[7752]|0)){Bd(9720);Dt(38,9720,_|0)|0;e=7752;s[e>>2]=1;s[e+4>>2]=0}if(!(Ko(9720)|0)){t=9720;e=t+36|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));Bd(9720)}return 9720}function Ed(t){t=t|0;return 0}function Pd(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0;c=p;p=p+32|0;i=c+24|0;o=c+16|0;u=c;l=c+8|0;a=s[t>>2]|0;n=s[t+4>>2]|0;s[u>>2]=a;s[u+4>>2]=n;f=xd()|0;h=f+24|0;t=Uo(e,4)|0;s[l>>2]=t;e=f+28|0;r=s[e>>2]|0;if(r>>>0<(s[f+32>>2]|0)>>>0){s[o>>2]=a;s[o+4>>2]=n;s[i>>2]=s[o>>2];s[i+4>>2]=s[o+4>>2];Md(r,i,t);t=(s[e>>2]|0)+12|0;s[e>>2]=t}else{Rd(h,u,l);t=s[e>>2]|0}p=c;return((t-(s[h>>2]|0)|0)/12|0)+-1|0}function Md(t,e,r){t=t|0;e=e|0;r=r|0;var n=0;n=s[e+4>>2]|0;s[t>>2]=s[e>>2];s[t+4>>2]=n;s[t+8>>2]=r;return}function Rd(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0,d=0;h=p;p=p+48|0;n=h+32|0;o=h+24|0;u=h;l=t+4|0;i=(((s[l>>2]|0)-(s[t>>2]|0)|0)/12|0)+1|0;a=Ad(t)|0;if(a>>>0<i>>>0)zE(t);else{c=s[t>>2]|0;d=((s[t+8>>2]|0)-c|0)/12|0;f=d<<1;Ld(u,d>>>0<a>>>1>>>0?f>>>0<i>>>0?i:f:a,((s[l>>2]|0)-c|0)/12|0,t+8|0);l=u+8|0;a=s[l>>2]|0;i=s[e+4>>2]|0;r=s[r>>2]|0;s[o>>2]=s[e>>2];s[o+4>>2]=i;s[n>>2]=s[o>>2];s[n+4>>2]=s[o+4>>2];Md(a,n,r);s[l>>2]=(s[l>>2]|0)+12;Od(t,u);Nd(u);p=h;return}}function Ad(t){t=t|0;return 357913941}function Ld(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>357913941)qt();else{i=jE(e*12|0)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r*12|0)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e*12|0);return}function Od(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(((i|0)/-12|0)*12|0)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function Nd(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~(((n+-12-e|0)>>>0)/12|0)*12|0);t=s[t>>2]|0;if(t|0)$E(t);return}function Bd(t){t=t|0;Fd(t);return}function Dd(t){t=t|0;Id(t+24|0);return}function Id(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~(((e+-12-n|0)>>>0)/12|0)*12|0);$E(r)}return}function Fd(t){t=t|0;var e=0;e=Qo()|0;ru(t,2,8,e,Wd()|0,0);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function Wd(){return 1288}function zd(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0;r=p;p=p+16|0;n=r+8|0;i=r;a=Ud(t)|0;t=s[a+4>>2]|0;s[i>>2]=s[a>>2];s[i+4>>2]=t;s[n>>2]=s[i>>2];s[n+4>>2]=s[i+4>>2];e=Hd(e,n)|0;p=r;return e|0}function Ud(t){t=t|0;return(s[(xd()|0)+24>>2]|0)+(t*12|0)|0}function Hd(t,e){t=t|0;e=e|0;var r=0;r=s[e>>2]|0;e=s[e+4>>2]|0;t=t+(e>>1)|0;if(e&1)r=s[(s[t>>2]|0)+r>>2]|0;return La(vM[r&31](t)|0)|0}function Yd(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0;n=p;p=p+16|0;i=n+8|0;a=n;u=s[r>>2]|0;o=s[r+4>>2]|0;r=Lo(e)|0;s[a>>2]=u;s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];Gd(t,r,i,0);p=n;return}function Gd(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0,o=0,u=0,l=0,h=0,c=0;i=p;p=p+32|0;a=i+16|0;c=i+8|0;u=i;h=s[r>>2]|0;l=s[r+4>>2]|0;o=s[t>>2]|0;t=Xd()|0;s[c>>2]=h;s[c+4>>2]=l;s[a>>2]=s[c>>2];s[a+4>>2]=s[c+4>>2];r=Vd(a)|0;s[u>>2]=h;s[u+4>>2]=l;s[a>>2]=s[u>>2];s[a+4>>2]=s[u+4>>2];Io(o,e,t,r,jd(a,n)|0,n);p=i;return}function Xd(){var t=0,e=0;if(!(n[7760]|0)){tp(9756);Dt(39,9756,_|0)|0;e=7760;s[e>>2]=1;s[e+4>>2]=0}if(!(Ko(9756)|0)){t=9756;e=t+36|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));tp(9756)}return 9756}function Vd(t){t=t|0;return 0}function jd(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0;c=p;p=p+32|0;i=c+24|0;o=c+16|0;u=c;l=c+8|0;a=s[t>>2]|0;n=s[t+4>>2]|0;s[u>>2]=a;s[u+4>>2]=n;f=Xd()|0;h=f+24|0;t=Uo(e,4)|0;s[l>>2]=t;e=f+28|0;r=s[e>>2]|0;if(r>>>0<(s[f+32>>2]|0)>>>0){s[o>>2]=a;s[o+4>>2]=n;s[i>>2]=s[o>>2];s[i+4>>2]=s[o+4>>2];qd(r,i,t);t=(s[e>>2]|0)+12|0;s[e>>2]=t}else{$d(h,u,l);t=s[e>>2]|0}p=c;return((t-(s[h>>2]|0)|0)/12|0)+-1|0}function qd(t,e,r){t=t|0;e=e|0;r=r|0;var n=0;n=s[e+4>>2]|0;s[t>>2]=s[e>>2];s[t+4>>2]=n;s[t+8>>2]=r;return}function $d(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0,d=0;h=p;p=p+48|0;n=h+32|0;o=h+24|0;u=h;l=t+4|0;i=(((s[l>>2]|0)-(s[t>>2]|0)|0)/12|0)+1|0;a=Kd(t)|0;if(a>>>0<i>>>0)zE(t);else{c=s[t>>2]|0;d=((s[t+8>>2]|0)-c|0)/12|0;f=d<<1;Jd(u,d>>>0<a>>>1>>>0?f>>>0<i>>>0?i:f:a,((s[l>>2]|0)-c|0)/12|0,t+8|0);l=u+8|0;a=s[l>>2]|0;i=s[e+4>>2]|0;r=s[r>>2]|0;s[o>>2]=s[e>>2];s[o+4>>2]=i;s[n>>2]=s[o>>2];s[n+4>>2]=s[o+4>>2];qd(a,n,r);s[l>>2]=(s[l>>2]|0)+12;Zd(t,u);Qd(u);p=h;return}}function Kd(t){t=t|0;return 357913941}function Jd(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>357913941)qt();else{i=jE(e*12|0)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r*12|0)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e*12|0);return}function Zd(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(((i|0)/-12|0)*12|0)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function Qd(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~(((n+-12-e|0)>>>0)/12|0)*12|0);t=s[t>>2]|0;if(t|0)$E(t);return}function tp(t){t=t|0;np(t);return}function ep(t){t=t|0;rp(t+24|0);return}function rp(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~(((e+-12-n|0)>>>0)/12|0)*12|0);$E(r)}return}function np(t){t=t|0;var e=0;e=Qo()|0;ru(t,2,8,e,ip()|0,1);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function ip(){return 1292}function sp(t,e,r){t=t|0;e=e|0;r=+r;var n=0,i=0,a=0,o=0;n=p;p=p+16|0;i=n+8|0;a=n;o=ap(t)|0;t=s[o+4>>2]|0;s[a>>2]=s[o>>2];s[a+4>>2]=t;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];op(e,i,r);p=n;return}function ap(t){t=t|0;return(s[(Xd()|0)+24>>2]|0)+(t*12|0)|0}function op(t,e,r){t=t|0;e=e|0;r=+r;var n=0,i=0,a=0;a=p;p=p+16|0;i=a;n=s[e>>2]|0;e=s[e+4>>2]|0;t=t+(e>>1)|0;if(e&1)n=s[(s[t>>2]|0)+n>>2]|0;$u(i,r);r=+Ku(i,r);fM[n&31](t,r);p=a;return}function up(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0;n=p;p=p+16|0;i=n+8|0;a=n;u=s[r>>2]|0;o=s[r+4>>2]|0;r=Lo(e)|0;s[a>>2]=u;s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];lp(t,r,i,0);p=n;return}function lp(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0,o=0,u=0,l=0,h=0,c=0;i=p;p=p+32|0;a=i+16|0;c=i+8|0;u=i;h=s[r>>2]|0;l=s[r+4>>2]|0;o=s[t>>2]|0;t=hp()|0;s[c>>2]=h;s[c+4>>2]=l;s[a>>2]=s[c>>2];s[a+4>>2]=s[c+4>>2];r=cp(a)|0;s[u>>2]=h;s[u+4>>2]=l;s[a>>2]=s[u>>2];s[a+4>>2]=s[u+4>>2];Io(o,e,t,r,fp(a,n)|0,n);p=i;return}function hp(){var t=0,e=0;if(!(n[7768]|0)){yp(9792);Dt(40,9792,_|0)|0;e=7768;s[e>>2]=1;s[e+4>>2]=0}if(!(Ko(9792)|0)){t=9792;e=t+36|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));yp(9792)}return 9792}function cp(t){t=t|0;return 0}function fp(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0;c=p;p=p+32|0;i=c+24|0;o=c+16|0;u=c;l=c+8|0;a=s[t>>2]|0;n=s[t+4>>2]|0;s[u>>2]=a;s[u+4>>2]=n;f=hp()|0;h=f+24|0;t=Uo(e,4)|0;s[l>>2]=t;e=f+28|0;r=s[e>>2]|0;if(r>>>0<(s[f+32>>2]|0)>>>0){s[o>>2]=a;s[o+4>>2]=n;s[i>>2]=s[o>>2];s[i+4>>2]=s[o+4>>2];dp(r,i,t);t=(s[e>>2]|0)+12|0;s[e>>2]=t}else{pp(h,u,l);t=s[e>>2]|0}p=c;return((t-(s[h>>2]|0)|0)/12|0)+-1|0}function dp(t,e,r){t=t|0;e=e|0;r=r|0;var n=0;n=s[e+4>>2]|0;s[t>>2]=s[e>>2];s[t+4>>2]=n;s[t+8>>2]=r;return}function pp(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0,d=0;h=p;p=p+48|0;n=h+32|0;o=h+24|0;u=h;l=t+4|0;i=(((s[l>>2]|0)-(s[t>>2]|0)|0)/12|0)+1|0;a=gp(t)|0;if(a>>>0<i>>>0)zE(t);else{c=s[t>>2]|0;d=((s[t+8>>2]|0)-c|0)/12|0;f=d<<1;vp(u,d>>>0<a>>>1>>>0?f>>>0<i>>>0?i:f:a,((s[l>>2]|0)-c|0)/12|0,t+8|0);l=u+8|0;a=s[l>>2]|0;i=s[e+4>>2]|0;r=s[r>>2]|0;s[o>>2]=s[e>>2];s[o+4>>2]=i;s[n>>2]=s[o>>2];s[n+4>>2]=s[o+4>>2];dp(a,n,r);s[l>>2]=(s[l>>2]|0)+12;_p(t,u);mp(u);p=h;return}}function gp(t){t=t|0;return 357913941}function vp(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>357913941)qt();else{i=jE(e*12|0)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r*12|0)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e*12|0);return}function _p(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(((i|0)/-12|0)*12|0)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function mp(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~(((n+-12-e|0)>>>0)/12|0)*12|0);t=s[t>>2]|0;if(t|0)$E(t);return}function yp(t){t=t|0;Cp(t);return}function bp(t){t=t|0;wp(t+24|0);return}function wp(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~(((e+-12-n|0)>>>0)/12|0)*12|0);$E(r)}return}function Cp(t){t=t|0;var e=0;e=Qo()|0;ru(t,2,1,e,Sp()|0,2);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function Sp(){return 1300}function Tp(t,e,r,n){t=t|0;e=e|0;r=r|0;n=+n;var i=0,a=0,o=0,u=0;i=p;p=p+16|0;a=i+8|0;o=i;u=kp(t)|0;t=s[u+4>>2]|0;s[o>>2]=s[u>>2];s[o+4>>2]=t;s[a>>2]=s[o>>2];s[a+4>>2]=s[o+4>>2];xp(e,a,r,n);p=i;return}function kp(t){t=t|0;return(s[(hp()|0)+24>>2]|0)+(t*12|0)|0}function xp(t,e,r,n){t=t|0;e=e|0;r=r|0;n=+n;var i=0,a=0,o=0,u=0;u=p;p=p+16|0;a=u+1|0;o=u;i=s[e>>2]|0;e=s[e+4>>2]|0;t=t+(e>>1)|0;if(e&1)i=s[(s[t>>2]|0)+i>>2]|0;Ju(a,r);a=Zu(a,r)|0;$u(o,n);n=+Ku(o,n);OM[i&15](t,a,n);p=u;return}function Ep(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0;n=p;p=p+16|0;i=n+8|0;a=n;u=s[r>>2]|0;o=s[r+4>>2]|0;r=Lo(e)|0;s[a>>2]=u;s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];Pp(t,r,i,0);p=n;return}function Pp(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0,o=0,u=0,l=0,h=0,c=0;i=p;p=p+32|0;a=i+16|0;c=i+8|0;u=i;h=s[r>>2]|0;l=s[r+4>>2]|0;o=s[t>>2]|0;t=Mp()|0;s[c>>2]=h;s[c+4>>2]=l;s[a>>2]=s[c>>2];s[a+4>>2]=s[c+4>>2];r=Rp(a)|0;s[u>>2]=h;s[u+4>>2]=l;s[a>>2]=s[u>>2];s[a+4>>2]=s[u+4>>2];Io(o,e,t,r,Ap(a,n)|0,n);p=i;return}function Mp(){var t=0,e=0;if(!(n[7776]|0)){Fp(9828);Dt(41,9828,_|0)|0;e=7776;s[e>>2]=1;s[e+4>>2]=0}if(!(Ko(9828)|0)){t=9828;e=t+36|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));Fp(9828)}return 9828}function Rp(t){t=t|0;return 0}function Ap(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0;c=p;p=p+32|0;i=c+24|0;o=c+16|0;u=c;l=c+8|0;a=s[t>>2]|0;n=s[t+4>>2]|0;s[u>>2]=a;s[u+4>>2]=n;f=Mp()|0;h=f+24|0;t=Uo(e,4)|0;s[l>>2]=t;e=f+28|0;r=s[e>>2]|0;if(r>>>0<(s[f+32>>2]|0)>>>0){s[o>>2]=a;s[o+4>>2]=n;s[i>>2]=s[o>>2];s[i+4>>2]=s[o+4>>2];Lp(r,i,t);t=(s[e>>2]|0)+12|0;s[e>>2]=t}else{Op(h,u,l);t=s[e>>2]|0}p=c;return((t-(s[h>>2]|0)|0)/12|0)+-1|0}function Lp(t,e,r){t=t|0;e=e|0;r=r|0;var n=0;n=s[e+4>>2]|0;s[t>>2]=s[e>>2];s[t+4>>2]=n;s[t+8>>2]=r;return}function Op(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0,d=0;h=p;p=p+48|0;n=h+32|0;o=h+24|0;u=h;l=t+4|0;i=(((s[l>>2]|0)-(s[t>>2]|0)|0)/12|0)+1|0;a=Np(t)|0;if(a>>>0<i>>>0)zE(t);else{c=s[t>>2]|0;d=((s[t+8>>2]|0)-c|0)/12|0;f=d<<1;Bp(u,d>>>0<a>>>1>>>0?f>>>0<i>>>0?i:f:a,((s[l>>2]|0)-c|0)/12|0,t+8|0);l=u+8|0;a=s[l>>2]|0;i=s[e+4>>2]|0;r=s[r>>2]|0;s[o>>2]=s[e>>2];s[o+4>>2]=i;s[n>>2]=s[o>>2];s[n+4>>2]=s[o+4>>2];Lp(a,n,r);s[l>>2]=(s[l>>2]|0)+12;Dp(t,u);Ip(u);p=h;return}}function Np(t){t=t|0;return 357913941}function Bp(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>357913941)qt();else{i=jE(e*12|0)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r*12|0)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e*12|0);return}function Dp(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(((i|0)/-12|0)*12|0)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function Ip(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~(((n+-12-e|0)>>>0)/12|0)*12|0);t=s[t>>2]|0;if(t|0)$E(t);return}function Fp(t){t=t|0;Up(t);return}function Wp(t){t=t|0;zp(t+24|0);return}function zp(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~(((e+-12-n|0)>>>0)/12|0)*12|0);$E(r)}return}function Up(t){t=t|0;var e=0;e=Qo()|0;ru(t,2,7,e,Hp()|0,1);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function Hp(){return 1312}function Yp(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;n=p;p=p+16|0;i=n+8|0;a=n;o=Gp(t)|0;t=s[o+4>>2]|0;s[a>>2]=s[o>>2];s[a+4>>2]=t;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];Xp(e,i,r);p=n;return}function Gp(t){t=t|0;return(s[(Mp()|0)+24>>2]|0)+(t*12|0)|0}function Xp(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0;a=p;p=p+16|0;i=a;n=s[e>>2]|0;e=s[e+4>>2]|0;t=t+(e>>1)|0;if(e&1)n=s[(s[t>>2]|0)+n>>2]|0;Ju(i,r);i=Zu(i,r)|0;gM[n&31](t,i);p=a;return}function Vp(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0;n=p;p=p+16|0;i=n+8|0;a=n;u=s[r>>2]|0;o=s[r+4>>2]|0;r=Lo(e)|0;s[a>>2]=u;s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];jp(t,r,i,0);p=n;return}function jp(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0,o=0,u=0,l=0,h=0,c=0;i=p;p=p+32|0;a=i+16|0;c=i+8|0;u=i;h=s[r>>2]|0;l=s[r+4>>2]|0;o=s[t>>2]|0;t=qp()|0;s[c>>2]=h;s[c+4>>2]=l;s[a>>2]=s[c>>2];s[a+4>>2]=s[c+4>>2];r=$p(a)|0;s[u>>2]=h;s[u+4>>2]=l;s[a>>2]=s[u>>2];s[a+4>>2]=s[u+4>>2];Io(o,e,t,r,Kp(a,n)|0,n);p=i;return}function qp(){var t=0,e=0;if(!(n[7784]|0)){ng(9864);Dt(42,9864,_|0)|0;e=7784;s[e>>2]=1;s[e+4>>2]=0}if(!(Ko(9864)|0)){t=9864;e=t+36|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));ng(9864)}return 9864}function $p(t){t=t|0;return 0}function Kp(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0;c=p;p=p+32|0;i=c+24|0;o=c+16|0;u=c;l=c+8|0;a=s[t>>2]|0;n=s[t+4>>2]|0;s[u>>2]=a;s[u+4>>2]=n;f=qp()|0;h=f+24|0;t=Uo(e,4)|0;s[l>>2]=t;e=f+28|0;r=s[e>>2]|0;if(r>>>0<(s[f+32>>2]|0)>>>0){s[o>>2]=a;s[o+4>>2]=n;s[i>>2]=s[o>>2];s[i+4>>2]=s[o+4>>2];Jp(r,i,t);t=(s[e>>2]|0)+12|0;s[e>>2]=t}else{Zp(h,u,l);t=s[e>>2]|0}p=c;return((t-(s[h>>2]|0)|0)/12|0)+-1|0}function Jp(t,e,r){t=t|0;e=e|0;r=r|0;var n=0;n=s[e+4>>2]|0;s[t>>2]=s[e>>2];s[t+4>>2]=n;s[t+8>>2]=r;return}function Zp(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0,d=0;h=p;p=p+48|0;n=h+32|0;o=h+24|0;u=h;l=t+4|0;i=(((s[l>>2]|0)-(s[t>>2]|0)|0)/12|0)+1|0;a=Qp(t)|0;if(a>>>0<i>>>0)zE(t);else{c=s[t>>2]|0;d=((s[t+8>>2]|0)-c|0)/12|0;f=d<<1;tg(u,d>>>0<a>>>1>>>0?f>>>0<i>>>0?i:f:a,((s[l>>2]|0)-c|0)/12|0,t+8|0);l=u+8|0;a=s[l>>2]|0;i=s[e+4>>2]|0;r=s[r>>2]|0;s[o>>2]=s[e>>2];s[o+4>>2]=i;s[n>>2]=s[o>>2];s[n+4>>2]=s[o+4>>2];Jp(a,n,r);s[l>>2]=(s[l>>2]|0)+12;eg(t,u);rg(u);p=h;return}}function Qp(t){t=t|0;return 357913941}function tg(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>357913941)qt();else{i=jE(e*12|0)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r*12|0)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e*12|0);return}function eg(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(((i|0)/-12|0)*12|0)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function rg(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~(((n+-12-e|0)>>>0)/12|0)*12|0);t=s[t>>2]|0;if(t|0)$E(t);return}function ng(t){t=t|0;ag(t);return}function ig(t){t=t|0;sg(t+24|0);return}function sg(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~(((e+-12-n|0)>>>0)/12|0)*12|0);$E(r)}return}function ag(t){t=t|0;var e=0;e=Qo()|0;ru(t,2,8,e,og()|0,1);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function og(){return 1320}function ug(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;n=p;p=p+16|0;i=n+8|0;a=n;o=lg(t)|0;t=s[o+4>>2]|0;s[a>>2]=s[o>>2];s[a+4>>2]=t;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];hg(e,i,r);p=n;return}function lg(t){t=t|0;return(s[(qp()|0)+24>>2]|0)+(t*12|0)|0}function hg(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0;a=p;p=p+16|0;i=a;n=s[e>>2]|0;e=s[e+4>>2]|0;t=t+(e>>1)|0;if(e&1)n=s[(s[t>>2]|0)+n>>2]|0;cg(i,r);i=fg(i,r)|0;gM[n&31](t,i);p=a;return}function cg(t,e){t=t|0;e=e|0;return}function fg(t,e){t=t|0;e=e|0;return dg(e)|0}function dg(t){t=t|0;return t|0}function pg(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0;n=p;p=p+16|0;i=n+8|0;a=n;u=s[r>>2]|0;o=s[r+4>>2]|0;r=Lo(e)|0;s[a>>2]=u;s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];gg(t,r,i,0);p=n;return}function gg(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0,o=0,u=0,l=0,h=0,c=0;i=p;p=p+32|0;a=i+16|0;c=i+8|0;u=i;h=s[r>>2]|0;l=s[r+4>>2]|0;o=s[t>>2]|0;t=vg()|0;s[c>>2]=h;s[c+4>>2]=l;s[a>>2]=s[c>>2];s[a+4>>2]=s[c+4>>2];r=_g(a)|0;s[u>>2]=h;s[u+4>>2]=l;s[a>>2]=s[u>>2];s[a+4>>2]=s[u+4>>2];Io(o,e,t,r,mg(a,n)|0,n);p=i;return}function vg(){var t=0,e=0;if(!(n[7792]|0)){kg(9900);Dt(43,9900,_|0)|0;e=7792;s[e>>2]=1;s[e+4>>2]=0}if(!(Ko(9900)|0)){t=9900;e=t+36|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));kg(9900)}return 9900}function _g(t){t=t|0;return 0}function mg(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0;c=p;p=p+32|0;i=c+24|0;o=c+16|0;u=c;l=c+8|0;a=s[t>>2]|0;n=s[t+4>>2]|0;s[u>>2]=a;s[u+4>>2]=n;f=vg()|0;h=f+24|0;t=Uo(e,4)|0;s[l>>2]=t;e=f+28|0;r=s[e>>2]|0;if(r>>>0<(s[f+32>>2]|0)>>>0){s[o>>2]=a;s[o+4>>2]=n;s[i>>2]=s[o>>2];s[i+4>>2]=s[o+4>>2];yg(r,i,t);t=(s[e>>2]|0)+12|0;s[e>>2]=t}else{bg(h,u,l);t=s[e>>2]|0}p=c;return((t-(s[h>>2]|0)|0)/12|0)+-1|0}function yg(t,e,r){t=t|0;e=e|0;r=r|0;var n=0;n=s[e+4>>2]|0;s[t>>2]=s[e>>2];s[t+4>>2]=n;s[t+8>>2]=r;return}function bg(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0,d=0;h=p;p=p+48|0;n=h+32|0;o=h+24|0;u=h;l=t+4|0;i=(((s[l>>2]|0)-(s[t>>2]|0)|0)/12|0)+1|0;a=wg(t)|0;if(a>>>0<i>>>0)zE(t);else{c=s[t>>2]|0;d=((s[t+8>>2]|0)-c|0)/12|0;f=d<<1;Cg(u,d>>>0<a>>>1>>>0?f>>>0<i>>>0?i:f:a,((s[l>>2]|0)-c|0)/12|0,t+8|0);l=u+8|0;a=s[l>>2]|0;i=s[e+4>>2]|0;r=s[r>>2]|0;s[o>>2]=s[e>>2];s[o+4>>2]=i;s[n>>2]=s[o>>2];s[n+4>>2]=s[o+4>>2];yg(a,n,r);s[l>>2]=(s[l>>2]|0)+12;Sg(t,u);Tg(u);p=h;return}}function wg(t){t=t|0;return 357913941}function Cg(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>357913941)qt();else{i=jE(e*12|0)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r*12|0)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e*12|0);return}function Sg(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(((i|0)/-12|0)*12|0)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function Tg(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~(((n+-12-e|0)>>>0)/12|0)*12|0);t=s[t>>2]|0;if(t|0)$E(t);return}function kg(t){t=t|0;Pg(t);return}function xg(t){t=t|0;Eg(t+24|0);return}function Eg(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~(((e+-12-n|0)>>>0)/12|0)*12|0);$E(r)}return}function Pg(t){t=t|0;var e=0;e=Qo()|0;ru(t,2,22,e,Mg()|0,0);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function Mg(){return 1344}function Rg(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0;r=p;p=p+16|0;n=r+8|0;i=r;a=Ag(t)|0;t=s[a+4>>2]|0;s[i>>2]=s[a>>2];s[i+4>>2]=t;s[n>>2]=s[i>>2];s[n+4>>2]=s[i+4>>2];Lg(e,n);p=r;return}function Ag(t){t=t|0;return(s[(vg()|0)+24>>2]|0)+(t*12|0)|0}function Lg(t,e){t=t|0;e=e|0;var r=0;r=s[e>>2]|0;e=s[e+4>>2]|0;t=t+(e>>1)|0;if(e&1)r=s[(s[t>>2]|0)+r>>2]|0;pM[r&127](t);return}function Og(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0;a=s[t>>2]|0;i=Ng()|0;t=Bg(r)|0;Io(a,e,i,t,Dg(r,n)|0,n);return}function Ng(){var t=0,e=0;if(!(n[7800]|0)){Yg(9936);Dt(44,9936,_|0)|0;e=7800;s[e>>2]=1;s[e+4>>2]=0}if(!(Ko(9936)|0)){t=9936;e=t+36|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));Yg(9936)}return 9936}function Bg(t){t=t|0;return t|0}function Dg(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0;u=p;p=p+16|0;i=u;a=u+4|0;s[i>>2]=t;l=Ng()|0;o=l+24|0;e=Uo(e,4)|0;s[a>>2]=e;r=l+28|0;n=s[r>>2]|0;if(n>>>0<(s[l+32>>2]|0)>>>0){Ig(n,t,e);e=(s[r>>2]|0)+8|0;s[r>>2]=e}else{Fg(o,i,a);e=s[r>>2]|0}p=u;return(e-(s[o>>2]|0)>>3)+-1|0}function Ig(t,e,r){t=t|0;e=e|0;r=r|0;s[t>>2]=e;s[t+4>>2]=r;return}function Fg(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0;u=p;p=p+32|0;i=u;a=t+4|0;o=((s[a>>2]|0)-(s[t>>2]|0)>>3)+1|0;n=Wg(t)|0;if(n>>>0<o>>>0)zE(t);else{l=s[t>>2]|0;c=(s[t+8>>2]|0)-l|0;h=c>>2;zg(i,c>>3>>>0<n>>>1>>>0?h>>>0<o>>>0?o:h:n,(s[a>>2]|0)-l>>3,t+8|0);o=i+8|0;Ig(s[o>>2]|0,s[e>>2]|0,s[r>>2]|0);s[o>>2]=(s[o>>2]|0)+8;Ug(t,i);Hg(i);p=u;return}}function Wg(t){t=t|0;return 536870911}function zg(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>536870911)qt();else{i=jE(e<<3)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r<<3)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e<<3);return}function Ug(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(0-(i>>3)<<3)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function Hg(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~((n+-8-e|0)>>>3)<<3);t=s[t>>2]|0;if(t|0)$E(t);return}function Yg(t){t=t|0;Vg(t);return}function Gg(t){t=t|0;Xg(t+24|0);return}function Xg(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~((e+-8-n|0)>>>3)<<3);$E(r)}return}function Vg(t){t=t|0;var e=0;e=Qo()|0;ru(t,1,23,e,pc()|0,1);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function jg(t,e){t=t|0;e=e|0;$g(s[(qg(t)|0)>>2]|0,e);return}function qg(t){t=t|0;return(s[(Ng()|0)+24>>2]|0)+(t<<3)|0}function $g(t,e){t=t|0;e=e|0;var r=0,n=0;r=p;p=p+16|0;n=r;mc(n,e);e=yc(n,e)|0;pM[t&127](e);p=r;return}function Kg(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0;a=s[t>>2]|0;i=Jg()|0;t=Zg(r)|0;Io(a,e,i,t,Qg(r,n)|0,n);return}function Jg(){var t=0,e=0;if(!(n[7808]|0)){av(9972);Dt(45,9972,_|0)|0;e=7808;s[e>>2]=1;s[e+4>>2]=0}if(!(Ko(9972)|0)){t=9972;e=t+36|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));av(9972)}return 9972}function Zg(t){t=t|0;return t|0}function Qg(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0;u=p;p=p+16|0;i=u;a=u+4|0;s[i>>2]=t;l=Jg()|0;o=l+24|0;e=Uo(e,4)|0;s[a>>2]=e;r=l+28|0;n=s[r>>2]|0;if(n>>>0<(s[l+32>>2]|0)>>>0){tv(n,t,e);e=(s[r>>2]|0)+8|0;s[r>>2]=e}else{ev(o,i,a);e=s[r>>2]|0}p=u;return(e-(s[o>>2]|0)>>3)+-1|0}function tv(t,e,r){t=t|0;e=e|0;r=r|0;s[t>>2]=e;s[t+4>>2]=r;return}function ev(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0;u=p;p=p+32|0;i=u;a=t+4|0;o=((s[a>>2]|0)-(s[t>>2]|0)>>3)+1|0;n=rv(t)|0;if(n>>>0<o>>>0)zE(t);else{l=s[t>>2]|0;c=(s[t+8>>2]|0)-l|0;h=c>>2;nv(i,c>>3>>>0<n>>>1>>>0?h>>>0<o>>>0?o:h:n,(s[a>>2]|0)-l>>3,t+8|0);o=i+8|0;tv(s[o>>2]|0,s[e>>2]|0,s[r>>2]|0);s[o>>2]=(s[o>>2]|0)+8;iv(t,i);sv(i);p=u;return}}function rv(t){t=t|0;return 536870911}function nv(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>536870911)qt();else{i=jE(e<<3)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r<<3)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e<<3);return}function iv(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(0-(i>>3)<<3)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function sv(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~((n+-8-e|0)>>>3)<<3);t=s[t>>2]|0;if(t|0)$E(t);return}function av(t){t=t|0;lv(t);return}function ov(t){t=t|0;uv(t+24|0);return}function uv(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~((e+-8-n|0)>>>3)<<3);$E(r)}return}function lv(t){t=t|0;var e=0;e=Qo()|0;ru(t,1,9,e,hv()|0,1);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function hv(){return 1348}function cv(t,e){t=t|0;e=e|0;return dv(s[(fv(t)|0)>>2]|0,e)|0}function fv(t){t=t|0;return(s[(Jg()|0)+24>>2]|0)+(t<<3)|0}function dv(t,e){t=t|0;e=e|0;var r=0,n=0;r=p;p=p+16|0;n=r;pv(n,e);e=gv(n,e)|0;e=fh(vM[t&31](e)|0)|0;p=r;return e|0}function pv(t,e){t=t|0;e=e|0;return}function gv(t,e){t=t|0;e=e|0;return vv(e)|0}function vv(t){t=t|0;return t|0}function _v(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0;a=s[t>>2]|0;i=mv()|0;t=yv(r)|0;Io(a,e,i,t,bv(r,n)|0,n);return}function mv(){var t=0,e=0;if(!(n[7816]|0)){Ev(10008);Dt(46,10008,_|0)|0;e=7816;s[e>>2]=1;s[e+4>>2]=0}if(!(Ko(10008)|0)){t=10008;e=t+36|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));Ev(10008)}return 10008}function yv(t){t=t|0;return t|0}function bv(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0;u=p;p=p+16|0;i=u;a=u+4|0;s[i>>2]=t;l=mv()|0;o=l+24|0;e=Uo(e,4)|0;s[a>>2]=e;r=l+28|0;n=s[r>>2]|0;if(n>>>0<(s[l+32>>2]|0)>>>0){wv(n,t,e);e=(s[r>>2]|0)+8|0;s[r>>2]=e}else{Cv(o,i,a);e=s[r>>2]|0}p=u;return(e-(s[o>>2]|0)>>3)+-1|0}function wv(t,e,r){t=t|0;e=e|0;r=r|0;s[t>>2]=e;s[t+4>>2]=r;return}function Cv(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0;u=p;p=p+32|0;i=u;a=t+4|0;o=((s[a>>2]|0)-(s[t>>2]|0)>>3)+1|0;n=Sv(t)|0;if(n>>>0<o>>>0)zE(t);else{l=s[t>>2]|0;c=(s[t+8>>2]|0)-l|0;h=c>>2;Tv(i,c>>3>>>0<n>>>1>>>0?h>>>0<o>>>0?o:h:n,(s[a>>2]|0)-l>>3,t+8|0);o=i+8|0;wv(s[o>>2]|0,s[e>>2]|0,s[r>>2]|0);s[o>>2]=(s[o>>2]|0)+8;kv(t,i);xv(i);p=u;return}}function Sv(t){t=t|0;return 536870911}function Tv(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>536870911)qt();else{i=jE(e<<3)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r<<3)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e<<3);return}function kv(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(0-(i>>3)<<3)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function xv(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~((n+-8-e|0)>>>3)<<3);t=s[t>>2]|0;if(t|0)$E(t);return}function Ev(t){t=t|0;Rv(t);return}function Pv(t){t=t|0;Mv(t+24|0);return}function Mv(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~((e+-8-n|0)>>>3)<<3);$E(r)}return}function Rv(t){t=t|0;var e=0;e=Qo()|0;ru(t,1,15,e,Mh()|0,0);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function Av(t){t=t|0;return Ov(s[(Lv(t)|0)>>2]|0)|0}function Lv(t){t=t|0;return(s[(mv()|0)+24>>2]|0)+(t<<3)|0}function Ov(t){t=t|0;return fh(EM[t&7]()|0)|0}function Nv(){var t=0;if(!(n[7832]|0)){Gv(10052);Dt(25,10052,_|0)|0;t=7832;s[t>>2]=1;s[t+4>>2]=0}return 10052}function Bv(t,e){t=t|0;e=e|0;s[t>>2]=Dv()|0;s[t+4>>2]=Iv()|0;s[t+12>>2]=e;s[t+8>>2]=Fv()|0;s[t+32>>2]=2;return}function Dv(){return 11709}function Iv(){return 1188}function Fv(){return Hv()|0}function Wv(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;if((zv(n,896)|0)==512){if(r|0){Uv(r);$E(r)}}else if(e|0){Ji(e);$E(e)}return}function zv(t,e){t=t|0;e=e|0;return e&t|0}function Uv(t){t=t|0;t=s[t+4>>2]|0;if(t|0)XE(t);return}function Hv(){var t=0;if(!(n[7824]|0)){s[2511]=Yv()|0;s[2512]=0;t=7824;s[t>>2]=1;s[t+4>>2]=0}return 10044}function Yv(){return 0}function Gv(t){t=t|0;Mu(t);return}function Xv(t){t=t|0;var e=0,r=0,n=0,i=0,a=0;e=p;p=p+32|0;r=e+24|0;a=e+16|0;i=e+8|0;n=e;Vv(t,4827);jv(t,4834,3)|0;qv(t,3682,47)|0;s[a>>2]=9;s[a+4>>2]=0;s[r>>2]=s[a>>2];s[r+4>>2]=s[a+4>>2];$v(t,4841,r)|0;s[i>>2]=1;s[i+4>>2]=0;s[r>>2]=s[i>>2];s[r+4>>2]=s[i+4>>2];Kv(t,4871,r)|0;s[n>>2]=10;s[n+4>>2]=0;s[r>>2]=s[n>>2];s[r+4>>2]=s[n+4>>2];Jv(t,4891,r)|0;p=e;return}function Vv(t,e){t=t|0;e=e|0;var r=0;r=Gm()|0;s[t>>2]=r;Xm(r,e);hw(s[t>>2]|0);return}function jv(t,e,r){t=t|0;e=e|0;r=r|0;km(t,Lo(e)|0,r,0);return t|0}function qv(t,e,r){t=t|0;e=e|0;r=r|0;om(t,Lo(e)|0,r,0);return t|0}function $v(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;n=p;p=p+16|0;i=n+8|0;a=n;o=s[r+4>>2]|0;s[a>>2]=s[r>>2];s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];W_(t,e,i);p=n;return t|0}function Kv(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;n=p;p=p+16|0;i=n+8|0;a=n;o=s[r+4>>2]|0;s[a>>2]=s[r>>2];s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];__(t,e,i);p=n;return t|0}function Jv(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;n=p;p=p+16|0;i=n+8|0;a=n;o=s[r+4>>2]|0;s[a>>2]=s[r>>2];s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];Zv(t,e,i);p=n;return t|0}function Zv(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0;n=p;p=p+16|0;i=n+8|0;a=n;u=s[r>>2]|0;o=s[r+4>>2]|0;r=Lo(e)|0;s[a>>2]=u;s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];Qv(t,r,i,1);p=n;return}function Qv(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0,o=0,u=0,l=0,h=0,c=0;i=p;p=p+32|0;a=i+16|0;c=i+8|0;u=i;h=s[r>>2]|0;l=s[r+4>>2]|0;o=s[t>>2]|0;t=t_()|0;s[c>>2]=h;s[c+4>>2]=l;s[a>>2]=s[c>>2];s[a+4>>2]=s[c+4>>2];r=e_(a)|0;s[u>>2]=h;s[u+4>>2]=l;s[a>>2]=s[u>>2];s[a+4>>2]=s[u+4>>2];Io(o,e,t,r,r_(a,n)|0,n);p=i;return}function t_(){var t=0,e=0;if(!(n[7840]|0)){l_(10100);Dt(48,10100,_|0)|0;e=7840;s[e>>2]=1;s[e+4>>2]=0}if(!(Ko(10100)|0)){t=10100;e=t+36|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));l_(10100)}return 10100}function e_(t){t=t|0;return 0}function r_(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0;c=p;p=p+32|0;i=c+24|0;o=c+16|0;u=c;l=c+8|0;a=s[t>>2]|0;n=s[t+4>>2]|0;s[u>>2]=a;s[u+4>>2]=n;f=t_()|0;h=f+24|0;t=Uo(e,4)|0;s[l>>2]=t;e=f+28|0;r=s[e>>2]|0;if(r>>>0<(s[f+32>>2]|0)>>>0){s[o>>2]=a;s[o+4>>2]=n;s[i>>2]=s[o>>2];s[i+4>>2]=s[o+4>>2];n_(r,i,t);t=(s[e>>2]|0)+12|0;s[e>>2]=t}else{i_(h,u,l);t=s[e>>2]|0}p=c;return((t-(s[h>>2]|0)|0)/12|0)+-1|0}function n_(t,e,r){t=t|0;e=e|0;r=r|0;var n=0;n=s[e+4>>2]|0;s[t>>2]=s[e>>2];s[t+4>>2]=n;s[t+8>>2]=r;return}function i_(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0,d=0;h=p;p=p+48|0;n=h+32|0;o=h+24|0;u=h;l=t+4|0;i=(((s[l>>2]|0)-(s[t>>2]|0)|0)/12|0)+1|0;a=s_(t)|0;if(a>>>0<i>>>0)zE(t);else{c=s[t>>2]|0;d=((s[t+8>>2]|0)-c|0)/12|0;f=d<<1;a_(u,d>>>0<a>>>1>>>0?f>>>0<i>>>0?i:f:a,((s[l>>2]|0)-c|0)/12|0,t+8|0);l=u+8|0;a=s[l>>2]|0;i=s[e+4>>2]|0;r=s[r>>2]|0;s[o>>2]=s[e>>2];s[o+4>>2]=i;s[n>>2]=s[o>>2];s[n+4>>2]=s[o+4>>2];n_(a,n,r);s[l>>2]=(s[l>>2]|0)+12;o_(t,u);u_(u);p=h;return}}function s_(t){t=t|0;return 357913941}function a_(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>357913941)qt();else{i=jE(e*12|0)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r*12|0)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e*12|0);return}function o_(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(((i|0)/-12|0)*12|0)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function u_(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~(((n+-12-e|0)>>>0)/12|0)*12|0);t=s[t>>2]|0;if(t|0)$E(t);return}function l_(t){t=t|0;f_(t);return}function h_(t){t=t|0;c_(t+24|0);return}function c_(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~(((e+-12-n|0)>>>0)/12|0)*12|0);$E(r)}return}function f_(t){t=t|0;var e=0;e=Qo()|0;ru(t,2,6,e,d_()|0,1);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function d_(){return 1364}function p_(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;n=p;p=p+16|0;i=n+8|0;a=n;o=g_(t)|0;t=s[o+4>>2]|0;s[a>>2]=s[o>>2];s[a+4>>2]=t;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];r=v_(e,i,r)|0;p=n;return r|0}function g_(t){t=t|0;return(s[(t_()|0)+24>>2]|0)+(t*12|0)|0}function v_(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0;a=p;p=p+16|0;i=a;n=s[e>>2]|0;e=s[e+4>>2]|0;t=t+(e>>1)|0;if(e&1)n=s[(s[t>>2]|0)+n>>2]|0;Ju(i,r);i=Zu(i,r)|0;i=bl(SM[n&15](t,i)|0)|0;p=a;return i|0}function __(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0;n=p;p=p+16|0;i=n+8|0;a=n;u=s[r>>2]|0;o=s[r+4>>2]|0;r=Lo(e)|0;s[a>>2]=u;s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];m_(t,r,i,0);p=n;return}function m_(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0,o=0,u=0,l=0,h=0,c=0;i=p;p=p+32|0;a=i+16|0;c=i+8|0;u=i;h=s[r>>2]|0;l=s[r+4>>2]|0;o=s[t>>2]|0;t=y_()|0;s[c>>2]=h;s[c+4>>2]=l;s[a>>2]=s[c>>2];s[a+4>>2]=s[c+4>>2];r=b_(a)|0;s[u>>2]=h;s[u+4>>2]=l;s[a>>2]=s[u>>2];s[a+4>>2]=s[u+4>>2];Io(o,e,t,r,w_(a,n)|0,n);p=i;return}function y_(){var t=0,e=0;if(!(n[7848]|0)){P_(10136);Dt(49,10136,_|0)|0;e=7848;s[e>>2]=1;s[e+4>>2]=0}if(!(Ko(10136)|0)){t=10136;e=t+36|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));P_(10136)}return 10136}function b_(t){t=t|0;return 0}function w_(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0;c=p;p=p+32|0;i=c+24|0;o=c+16|0;u=c;l=c+8|0;a=s[t>>2]|0;n=s[t+4>>2]|0;s[u>>2]=a;s[u+4>>2]=n;f=y_()|0;h=f+24|0;t=Uo(e,4)|0;s[l>>2]=t;e=f+28|0;r=s[e>>2]|0;if(r>>>0<(s[f+32>>2]|0)>>>0){s[o>>2]=a;s[o+4>>2]=n;s[i>>2]=s[o>>2];s[i+4>>2]=s[o+4>>2];C_(r,i,t);t=(s[e>>2]|0)+12|0;s[e>>2]=t}else{S_(h,u,l);t=s[e>>2]|0}p=c;return((t-(s[h>>2]|0)|0)/12|0)+-1|0}function C_(t,e,r){t=t|0;e=e|0;r=r|0;var n=0;n=s[e+4>>2]|0;s[t>>2]=s[e>>2];s[t+4>>2]=n;s[t+8>>2]=r;return}function S_(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0,d=0;h=p;p=p+48|0;n=h+32|0;o=h+24|0;u=h;l=t+4|0;i=(((s[l>>2]|0)-(s[t>>2]|0)|0)/12|0)+1|0;a=T_(t)|0;if(a>>>0<i>>>0)zE(t);else{c=s[t>>2]|0;d=((s[t+8>>2]|0)-c|0)/12|0;f=d<<1;k_(u,d>>>0<a>>>1>>>0?f>>>0<i>>>0?i:f:a,((s[l>>2]|0)-c|0)/12|0,t+8|0);l=u+8|0;a=s[l>>2]|0;i=s[e+4>>2]|0;r=s[r>>2]|0;s[o>>2]=s[e>>2];s[o+4>>2]=i;s[n>>2]=s[o>>2];s[n+4>>2]=s[o+4>>2];C_(a,n,r);s[l>>2]=(s[l>>2]|0)+12;x_(t,u);E_(u);p=h;return}}function T_(t){t=t|0;return 357913941}function k_(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>357913941)qt();else{i=jE(e*12|0)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r*12|0)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e*12|0);return}function x_(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(((i|0)/-12|0)*12|0)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function E_(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~(((n+-12-e|0)>>>0)/12|0)*12|0);t=s[t>>2]|0;if(t|0)$E(t);return}function P_(t){t=t|0;A_(t);return}function M_(t){t=t|0;R_(t+24|0);return}function R_(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~(((e+-12-n|0)>>>0)/12|0)*12|0);$E(r)}return}function A_(t){t=t|0;var e=0;e=Qo()|0;ru(t,2,9,e,L_()|0,1);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function L_(){return 1372}function O_(t,e,r){t=t|0;e=e|0;r=+r;var n=0,i=0,a=0,o=0;n=p;p=p+16|0;i=n+8|0;a=n;o=N_(t)|0;t=s[o+4>>2]|0;s[a>>2]=s[o>>2];s[a+4>>2]=t;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];B_(e,i,r);p=n;return}function N_(t){t=t|0;return(s[(y_()|0)+24>>2]|0)+(t*12|0)|0}function B_(t,e,r){t=t|0;e=e|0;r=+r;var n=0,i=0,a=0,o=ce;a=p;p=p+16|0;i=a;n=s[e>>2]|0;e=s[e+4>>2]|0;t=t+(e>>1)|0;if(e&1)n=s[(s[t>>2]|0)+n>>2]|0;D_(i,r);o=q(I_(i,r));cM[n&1](t,o);p=a;return}function D_(t,e){t=t|0;e=+e;return}function I_(t,e){t=t|0;e=+e;return q(F_(e))}function F_(t){t=+t;return q(t)}function W_(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0;n=p;p=p+16|0;i=n+8|0;a=n;u=s[r>>2]|0;o=s[r+4>>2]|0;r=Lo(e)|0;s[a>>2]=u;s[a+4>>2]=o;s[i>>2]=s[a>>2];s[i+4>>2]=s[a+4>>2];z_(t,r,i,0);p=n;return}function z_(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0,o=0,u=0,l=0,h=0,c=0;i=p;p=p+32|0;a=i+16|0;c=i+8|0;u=i;h=s[r>>2]|0;l=s[r+4>>2]|0;o=s[t>>2]|0;t=U_()|0;s[c>>2]=h;s[c+4>>2]=l;s[a>>2]=s[c>>2];s[a+4>>2]=s[c+4>>2];r=H_(a)|0;s[u>>2]=h;s[u+4>>2]=l;s[a>>2]=s[u>>2];s[a+4>>2]=s[u+4>>2];Io(o,e,t,r,Y_(a,n)|0,n);p=i;return}function U_(){var t=0,e=0;if(!(n[7856]|0)){K_(10172);Dt(50,10172,_|0)|0;e=7856;s[e>>2]=1;s[e+4>>2]=0}if(!(Ko(10172)|0)){t=10172;e=t+36|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));K_(10172)}return 10172}function H_(t){t=t|0;return 0}function Y_(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0;c=p;p=p+32|0;i=c+24|0;o=c+16|0;u=c;l=c+8|0;a=s[t>>2]|0;n=s[t+4>>2]|0;s[u>>2]=a;s[u+4>>2]=n;f=U_()|0;h=f+24|0;t=Uo(e,4)|0;s[l>>2]=t;e=f+28|0;r=s[e>>2]|0;if(r>>>0<(s[f+32>>2]|0)>>>0){s[o>>2]=a;s[o+4>>2]=n;s[i>>2]=s[o>>2];s[i+4>>2]=s[o+4>>2];G_(r,i,t);t=(s[e>>2]|0)+12|0;s[e>>2]=t}else{X_(h,u,l);t=s[e>>2]|0}p=c;return((t-(s[h>>2]|0)|0)/12|0)+-1|0}function G_(t,e,r){t=t|0;e=e|0;r=r|0;var n=0;n=s[e+4>>2]|0;s[t>>2]=s[e>>2];s[t+4>>2]=n;s[t+8>>2]=r;return}function X_(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0,d=0;h=p;p=p+48|0;n=h+32|0;o=h+24|0;u=h;l=t+4|0;i=(((s[l>>2]|0)-(s[t>>2]|0)|0)/12|0)+1|0;a=V_(t)|0;if(a>>>0<i>>>0)zE(t);else{c=s[t>>2]|0;d=((s[t+8>>2]|0)-c|0)/12|0;f=d<<1;j_(u,d>>>0<a>>>1>>>0?f>>>0<i>>>0?i:f:a,((s[l>>2]|0)-c|0)/12|0,t+8|0);l=u+8|0;a=s[l>>2]|0;i=s[e+4>>2]|0;r=s[r>>2]|0;s[o>>2]=s[e>>2];s[o+4>>2]=i;s[n>>2]=s[o>>2];s[n+4>>2]=s[o+4>>2];G_(a,n,r);s[l>>2]=(s[l>>2]|0)+12;q_(t,u);$_(u);p=h;return}}function V_(t){t=t|0;return 357913941}function j_(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>357913941)qt();else{i=jE(e*12|0)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r*12|0)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e*12|0);return}function q_(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(((i|0)/-12|0)*12|0)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function $_(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~(((n+-12-e|0)>>>0)/12|0)*12|0);t=s[t>>2]|0;if(t|0)$E(t);return}function K_(t){t=t|0;Q_(t);return}function J_(t){t=t|0;Z_(t+24|0);return}function Z_(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~(((e+-12-n|0)>>>0)/12|0)*12|0);$E(r)}return}function Q_(t){t=t|0;var e=0;e=Qo()|0;ru(t,2,3,e,tm()|0,2);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function tm(){return 1380}function em(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0,o=0,u=0;i=p;p=p+16|0;a=i+8|0;o=i;u=rm(t)|0;t=s[u+4>>2]|0;s[o>>2]=s[u>>2];s[o+4>>2]=t;s[a>>2]=s[o>>2];s[a+4>>2]=s[o+4>>2];nm(e,a,r,n);p=i;return}function rm(t){t=t|0;return(s[(U_()|0)+24>>2]|0)+(t*12|0)|0}function nm(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0,o=0,u=0;u=p;p=p+16|0;a=u+1|0;o=u;i=s[e>>2]|0;e=s[e+4>>2]|0;t=t+(e>>1)|0;if(e&1)i=s[(s[t>>2]|0)+i>>2]|0;Ju(a,r);a=Zu(a,r)|0;im(o,n);o=sm(o,n)|0;AM[i&15](t,a,o);p=u;return}function im(t,e){t=t|0;e=e|0;return}function sm(t,e){t=t|0;e=e|0;return am(e)|0}function am(t){t=t|0;return(t|0)!=0|0}function om(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0;a=s[t>>2]|0;i=um()|0;t=lm(r)|0;Io(a,e,i,t,hm(r,n)|0,n);return}function um(){var t=0,e=0;if(!(n[7864]|0)){_m(10208);Dt(51,10208,_|0)|0;e=7864;s[e>>2]=1;s[e+4>>2]=0}if(!(Ko(10208)|0)){t=10208;e=t+36|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));_m(10208)}return 10208}function lm(t){t=t|0;return t|0}function hm(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0;u=p;p=p+16|0;i=u;a=u+4|0;s[i>>2]=t;l=um()|0;o=l+24|0;e=Uo(e,4)|0;s[a>>2]=e;r=l+28|0;n=s[r>>2]|0;if(n>>>0<(s[l+32>>2]|0)>>>0){cm(n,t,e);e=(s[r>>2]|0)+8|0;s[r>>2]=e}else{fm(o,i,a);e=s[r>>2]|0}p=u;return(e-(s[o>>2]|0)>>3)+-1|0}function cm(t,e,r){t=t|0;e=e|0;r=r|0;s[t>>2]=e;s[t+4>>2]=r;return}function fm(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0;u=p;p=p+32|0;i=u;a=t+4|0;o=((s[a>>2]|0)-(s[t>>2]|0)>>3)+1|0;n=dm(t)|0;if(n>>>0<o>>>0)zE(t);else{l=s[t>>2]|0;c=(s[t+8>>2]|0)-l|0;h=c>>2;pm(i,c>>3>>>0<n>>>1>>>0?h>>>0<o>>>0?o:h:n,(s[a>>2]|0)-l>>3,t+8|0);o=i+8|0;cm(s[o>>2]|0,s[e>>2]|0,s[r>>2]|0);s[o>>2]=(s[o>>2]|0)+8;gm(t,i);vm(i);p=u;return}}function dm(t){t=t|0;return 536870911}function pm(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>536870911)qt();else{i=jE(e<<3)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r<<3)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e<<3);return}function gm(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(0-(i>>3)<<3)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function vm(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~((n+-8-e|0)>>>3)<<3);t=s[t>>2]|0;if(t|0)$E(t);return}function _m(t){t=t|0;bm(t);return}function mm(t){t=t|0;ym(t+24|0);return}function ym(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~((e+-8-n|0)>>>3)<<3);$E(r)}return}function bm(t){t=t|0;var e=0;e=Qo()|0;ru(t,1,24,e,wm()|0,1);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function wm(){return 1392}function Cm(t,e){t=t|0;e=e|0;Tm(s[(Sm(t)|0)>>2]|0,e);return}function Sm(t){t=t|0;return(s[(um()|0)+24>>2]|0)+(t<<3)|0}function Tm(t,e){t=t|0;e=e|0;var r=0,n=0;r=p;p=p+16|0;n=r;pv(n,e);e=gv(n,e)|0;pM[t&127](e);p=r;return}function km(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0;a=s[t>>2]|0;i=xm()|0;t=Em(r)|0;Io(a,e,i,t,Pm(r,n)|0,n);return}function xm(){var t=0,e=0;if(!(n[7872]|0)){Bm(10244);Dt(52,10244,_|0)|0;e=7872;s[e>>2]=1;s[e+4>>2]=0}if(!(Ko(10244)|0)){t=10244;e=t+36|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));Bm(10244)}return 10244}function Em(t){t=t|0;return t|0}function Pm(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0;u=p;p=p+16|0;i=u;a=u+4|0;s[i>>2]=t;l=xm()|0;o=l+24|0;e=Uo(e,4)|0;s[a>>2]=e;r=l+28|0;n=s[r>>2]|0;if(n>>>0<(s[l+32>>2]|0)>>>0){Mm(n,t,e);e=(s[r>>2]|0)+8|0;s[r>>2]=e}else{Rm(o,i,a);e=s[r>>2]|0}p=u;return(e-(s[o>>2]|0)>>3)+-1|0}function Mm(t,e,r){t=t|0;e=e|0;r=r|0;s[t>>2]=e;s[t+4>>2]=r;return}function Rm(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0;u=p;p=p+32|0;i=u;a=t+4|0;o=((s[a>>2]|0)-(s[t>>2]|0)>>3)+1|0;n=Am(t)|0;if(n>>>0<o>>>0)zE(t);else{l=s[t>>2]|0;c=(s[t+8>>2]|0)-l|0;h=c>>2;Lm(i,c>>3>>>0<n>>>1>>>0?h>>>0<o>>>0?o:h:n,(s[a>>2]|0)-l>>3,t+8|0);o=i+8|0;Mm(s[o>>2]|0,s[e>>2]|0,s[r>>2]|0);s[o>>2]=(s[o>>2]|0)+8;Om(t,i);Nm(i);p=u;return}}function Am(t){t=t|0;return 536870911}function Lm(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>536870911)qt();else{i=jE(e<<3)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r<<3)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e<<3);return}function Om(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(0-(i>>3)<<3)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function Nm(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~((n+-8-e|0)>>>3)<<3);t=s[t>>2]|0;if(t|0)$E(t);return}function Bm(t){t=t|0;Fm(t);return}function Dm(t){t=t|0;Im(t+24|0);return}function Im(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~((e+-8-n|0)>>>3)<<3);$E(r)}return}function Fm(t){t=t|0;var e=0;e=Qo()|0;ru(t,1,16,e,Wm()|0,0);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function Wm(){return 1400}function zm(t){t=t|0;return Hm(s[(Um(t)|0)>>2]|0)|0}function Um(t){t=t|0;return(s[(xm()|0)+24>>2]|0)+(t<<3)|0}function Hm(t){t=t|0;return Ym(EM[t&7]()|0)|0}function Ym(t){t=t|0;return t|0}function Gm(){var t=0;if(!(n[7880]|0)){Jm(10280);Dt(25,10280,_|0)|0;t=7880;s[t>>2]=1;s[t+4>>2]=0}return 10280}function Xm(t,e){t=t|0;e=e|0;s[t>>2]=Vm()|0;s[t+4>>2]=jm()|0;s[t+12>>2]=e;s[t+8>>2]=qm()|0;s[t+32>>2]=4;return}function Vm(){return 11711}function jm(){return 1356}function qm(){return Hv()|0}function $m(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;if((zv(n,896)|0)==512){if(r|0){Km(r);$E(r)}}else if(e|0){Yi(e);$E(e)}return}function Km(t){t=t|0;t=s[t+4>>2]|0;if(t|0)XE(t);return}function Jm(t){t=t|0;Mu(t);return}function Zm(t){t=t|0;Qm(t,4920);ty(t)|0;ey(t)|0;return}function Qm(t,e){t=t|0;e=e|0;var r=0;r=Xf()|0;s[t>>2]=r;Ey(r,e);hw(s[t>>2]|0);return}function ty(t){t=t|0;var e=0;e=s[t>>2]|0;ny(e,gy()|0);return t|0}function ey(t){t=t|0;var e=0;e=s[t>>2]|0;ny(e,ry()|0);return t|0}function ry(){var t=0;if(!(n[7888]|0)){iy(10328);Dt(53,10328,_|0)|0;t=7888;s[t>>2]=1;s[t+4>>2]=0}if(!(Ko(10328)|0))iy(10328);return 10328}function ny(t,e){t=t|0;e=e|0;Io(t,0,e,0,0,0);return}function iy(t){t=t|0;oy(t);ly(t,10);return}function sy(t){t=t|0;ay(t+24|0);return}function ay(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~((e+-8-n|0)>>>3)<<3);$E(r)}return}function oy(t){t=t|0;var e=0;e=Qo()|0;ru(t,5,1,e,fy()|0,2);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function uy(t,e,r){t=t|0;e=e|0;r=+r;hy(t,e,r);return}function ly(t,e){t=t|0;e=e|0;s[t+20>>2]=e;return}function hy(t,e,r){t=t|0;e=e|0;r=+r;var n=0,i=0,a=0,o=0,u=0;n=p;p=p+16|0;a=n+8|0;u=n+13|0;i=n;o=n+12|0;Ju(u,e);s[a>>2]=Zu(u,e)|0;$u(o,r);h[i>>3]=+Ku(o,r);cy(t,a,i);p=n;return}function cy(t,e,r){t=t|0;e=e|0;r=r|0;Ys(t+8|0,s[e>>2]|0,+h[r>>3]);n[t+24>>0]=1;return}function fy(){return 1404}function dy(t,e){t=t|0;e=+e;return py(t,e)|0}function py(t,e){t=t|0;e=+e;var r=0,n=0,i=0,a=0,o=0,u=0,l=0;n=p;p=p+16|0;a=n+4|0;o=n+8|0;u=n;i=zS(8)|0;r=i;l=jE(16)|0;Ju(a,t);t=Zu(a,t)|0;$u(o,e);Ys(l,t,+Ku(o,e));o=r+4|0;s[o>>2]=l;t=jE(8)|0;o=s[o>>2]|0;s[u>>2]=0;s[a>>2]=s[u>>2];qf(t,o,a);s[i>>2]=t;p=n;return r|0}function gy(){var t=0;if(!(n[7896]|0)){vy(10364);Dt(54,10364,_|0)|0;t=7896;s[t>>2]=1;s[t+4>>2]=0}if(!(Ko(10364)|0))vy(10364);return 10364}function vy(t){t=t|0;yy(t);ly(t,55);return}function _y(t){t=t|0;my(t+24|0);return}function my(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~((e+-8-n|0)>>>3)<<3);$E(r)}return}function yy(t){t=t|0;var e=0;e=Qo()|0;ru(t,5,4,e,Ty()|0,0);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function by(t){t=t|0;wy(t);return}function wy(t){t=t|0;Cy(t);return}function Cy(t){t=t|0;Sy(t+8|0);n[t+24>>0]=1;return}function Sy(t){t=t|0;s[t>>2]=0;h[t+8>>3]=0.0;return}function Ty(){return 1424}function ky(){return xy()|0}function xy(){var t=0,e=0,r=0,n=0,i=0,a=0,o=0;e=p;p=p+16|0;i=e+4|0;o=e;r=zS(8)|0;t=r;n=jE(16)|0;Sy(n);a=t+4|0;s[a>>2]=n;n=jE(8)|0;a=s[a>>2]|0;s[o>>2]=0;s[i>>2]=s[o>>2];qf(n,a,i);s[r>>2]=n;p=e;return t|0}function Ey(t,e){t=t|0;e=e|0;s[t>>2]=Py()|0;s[t+4>>2]=My()|0;s[t+12>>2]=e;s[t+8>>2]=Ry()|0;s[t+32>>2]=5;return}function Py(){return 11710}function My(){return 1416}function Ry(){return Oy()|0}function Ay(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;if((zv(n,896)|0)==512){if(r|0){Ly(r);$E(r)}}else if(e|0)$E(e);return}function Ly(t){t=t|0;t=s[t+4>>2]|0;if(t|0)XE(t);return}function Oy(){var t=0;if(!(n[7904]|0)){s[2600]=Ny()|0;s[2601]=0;t=7904;s[t>>2]=1;s[t+4>>2]=0}return 10400}function Ny(){return s[357]|0}function By(t){t=t|0;Dy(t,4926);Iy(t)|0;return}function Dy(t,e){t=t|0;e=e|0;var r=0;r=au()|0;s[t>>2]=r;$y(r,e);hw(s[t>>2]|0);return}function Iy(t){t=t|0;var e=0;e=s[t>>2]|0;ny(e,Fy()|0);return t|0}function Fy(){var t=0;if(!(n[7912]|0)){Wy(10412);Dt(56,10412,_|0)|0;t=7912;s[t>>2]=1;s[t+4>>2]=0}if(!(Ko(10412)|0))Wy(10412);return 10412}function Wy(t){t=t|0;Hy(t);ly(t,57);return}function zy(t){t=t|0;Uy(t+24|0);return}function Uy(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~((e+-8-n|0)>>>3)<<3);$E(r)}return}function Hy(t){t=t|0;var e=0;e=Qo()|0;ru(t,5,5,e,Vy()|0,0);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function Yy(t){t=t|0;Gy(t);return}function Gy(t){t=t|0;Xy(t);return}function Xy(t){t=t|0;var e=0,r=0;e=t+8|0;r=e+48|0;do{s[e>>2]=0;e=e+4|0}while((e|0)<(r|0));n[t+56>>0]=1;return}function Vy(){return 1432}function jy(){return qy()|0}function qy(){var t=0,e=0,r=0,n=0,i=0,a=0,o=0,u=0;o=p;p=p+16|0;t=o+4|0;e=o;r=zS(8)|0;n=r;i=jE(48)|0;a=i;u=a+48|0;do{s[a>>2]=0;a=a+4|0}while((a|0)<(u|0));a=n+4|0;s[a>>2]=i;u=jE(8)|0;a=s[a>>2]|0;s[e>>2]=0;s[t>>2]=s[e>>2];du(u,a,t);s[r>>2]=u;p=o;return n|0}function $y(t,e){t=t|0;e=e|0;s[t>>2]=Ky()|0;s[t+4>>2]=Jy()|0;s[t+12>>2]=e;s[t+8>>2]=Zy()|0;s[t+32>>2]=6;return}function Ky(){return 11704}function Jy(){return 1436}function Zy(){return Oy()|0}function Qy(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;if((zv(n,896)|0)==512){if(r|0){tb(r);$E(r)}}else if(e|0)$E(e);return}function tb(t){t=t|0;t=s[t+4>>2]|0;if(t|0)XE(t);return}function eb(t){t=t|0;rb(t,4933);nb(t)|0;ib(t)|0;return}function rb(t,e){t=t|0;e=e|0;var r=0;r=Ob()|0;s[t>>2]=r;Nb(r,e);hw(s[t>>2]|0);return}function nb(t){t=t|0;var e=0;e=s[t>>2]|0;ny(e,wb()|0);return t|0}function ib(t){t=t|0;var e=0;e=s[t>>2]|0;ny(e,sb()|0);return t|0}function sb(){var t=0;if(!(n[7920]|0)){ab(10452);Dt(58,10452,_|0)|0;t=7920;s[t>>2]=1;s[t+4>>2]=0}if(!(Ko(10452)|0))ab(10452);return 10452}function ab(t){t=t|0;lb(t);ly(t,1);return}function ob(t){t=t|0;ub(t+24|0);return}function ub(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~((e+-8-n|0)>>>3)<<3);$E(r)}return}function lb(t){t=t|0;var e=0;e=Qo()|0;ru(t,5,1,e,pb()|0,2);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function hb(t,e,r){t=t|0;e=+e;r=+r;cb(t,e,r);return}function cb(t,e,r){t=t|0;e=+e;r=+r;var n=0,i=0,s=0,a=0,o=0;n=p;p=p+32|0;s=n+8|0;o=n+17|0;i=n;a=n+16|0;$u(o,e);h[s>>3]=+Ku(o,e);$u(a,r);h[i>>3]=+Ku(a,r);fb(t,s,i);p=n;return}function fb(t,e,r){t=t|0;e=e|0;r=r|0;db(t+8|0,+h[e>>3],+h[r>>3]);n[t+24>>0]=1;return}function db(t,e,r){t=t|0;e=+e;r=+r;h[t>>3]=e;h[t+8>>3]=r;return}function pb(){return 1472}function gb(t,e){t=+t;e=+e;return vb(t,e)|0}function vb(t,e){t=+t;e=+e;var r=0,n=0,i=0,a=0,o=0,u=0,l=0;n=p;p=p+16|0;o=n+4|0;u=n+8|0;l=n;i=zS(8)|0;r=i;a=jE(16)|0;$u(o,t);t=+Ku(o,t);$u(u,e);db(a,t,+Ku(u,e));u=r+4|0;s[u>>2]=a;a=jE(8)|0;u=s[u>>2]|0;s[l>>2]=0;s[o>>2]=s[l>>2];_b(a,u,o);s[i>>2]=a;p=n;return r|0}function _b(t,e,r){t=t|0;e=e|0;r=r|0;s[t>>2]=e;r=jE(16)|0;s[r+4>>2]=0;s[r+8>>2]=0;s[r>>2]=1452;s[r+12>>2]=e;s[t+4>>2]=r;return}function mb(t){t=t|0;UE(t);$E(t);return}function yb(t){t=t|0;t=s[t+12>>2]|0;if(t|0)$E(t);return}function bb(t){t=t|0;$E(t);return}function wb(){var t=0;if(!(n[7928]|0)){Cb(10488);Dt(59,10488,_|0)|0;t=7928;s[t>>2]=1;s[t+4>>2]=0}if(!(Ko(10488)|0))Cb(10488);return 10488}function Cb(t){t=t|0;kb(t);ly(t,60);return}function Sb(t){t=t|0;Tb(t+24|0);return}function Tb(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~((e+-8-n|0)>>>3)<<3);$E(r)}return}function kb(t){t=t|0;var e=0;e=Qo()|0;ru(t,5,6,e,Rb()|0,0);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function xb(t){t=t|0;Eb(t);return}function Eb(t){t=t|0;Pb(t);return}function Pb(t){t=t|0;Mb(t+8|0);n[t+24>>0]=1;return}function Mb(t){t=t|0;s[t>>2]=0;s[t+4>>2]=0;s[t+8>>2]=0;s[t+12>>2]=0;return}function Rb(){return 1492}function Ab(){return Lb()|0}function Lb(){var t=0,e=0,r=0,n=0,i=0,a=0,o=0;e=p;p=p+16|0;i=e+4|0;o=e;r=zS(8)|0;t=r;n=jE(16)|0;Mb(n);a=t+4|0;s[a>>2]=n;n=jE(8)|0;a=s[a>>2]|0;s[o>>2]=0;s[i>>2]=s[o>>2];_b(n,a,i);s[r>>2]=n;p=e;return t|0}function Ob(){var t=0;if(!(n[7936]|0)){zb(10524);Dt(25,10524,_|0)|0;t=7936;s[t>>2]=1;s[t+4>>2]=0}return 10524}function Nb(t,e){t=t|0;e=e|0;s[t>>2]=Bb()|0;s[t+4>>2]=Db()|0;s[t+12>>2]=e;s[t+8>>2]=Ib()|0;s[t+32>>2]=7;return}function Bb(){return 11700}function Db(){return 1484}function Ib(){return Oy()|0}function Fb(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;if((zv(n,896)|0)==512){if(r|0){Wb(r);$E(r)}}else if(e|0)$E(e);return}function Wb(t){t=t|0;t=s[t+4>>2]|0;if(t|0)XE(t);return}function zb(t){t=t|0;Mu(t);return}function Ub(t,e,r){t=t|0;e=e|0;r=r|0;t=Lo(e)|0;e=Hb(r)|0;r=Yb(r,0)|0;Pw(t,e,r,Gb()|0,0);return}function Hb(t){t=t|0;return t|0}function Yb(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0;u=p;p=p+16|0;i=u;a=u+4|0;s[i>>2]=t;l=Gb()|0;o=l+24|0;e=Uo(e,4)|0;s[a>>2]=e;r=l+28|0;n=s[r>>2]|0;if(n>>>0<(s[l+32>>2]|0)>>>0){Zb(n,t,e);e=(s[r>>2]|0)+8|0;s[r>>2]=e}else{Qb(o,i,a);e=s[r>>2]|0}p=u;return(e-(s[o>>2]|0)>>3)+-1|0}function Gb(){var t=0,e=0;if(!(n[7944]|0)){Xb(10568);Dt(61,10568,_|0)|0;e=7944;s[e>>2]=1;s[e+4>>2]=0}if(!(Ko(10568)|0)){t=10568;e=t+36|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));Xb(10568)}return 10568}function Xb(t){t=t|0;qb(t);return}function Vb(t){t=t|0;jb(t+24|0);return}function jb(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~((e+-8-n|0)>>>3)<<3);$E(r)}return}function qb(t){t=t|0;var e=0;e=Qo()|0;ru(t,1,17,e,qh()|0,0);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function $b(t){t=t|0;return Jb(s[(Kb(t)|0)>>2]|0)|0}function Kb(t){t=t|0;return(s[(Gb()|0)+24>>2]|0)+(t<<3)|0}function Jb(t){t=t|0;return Zh(EM[t&7]()|0)|0}function Zb(t,e,r){t=t|0;e=e|0;r=r|0;s[t>>2]=e;s[t+4>>2]=r;return}function Qb(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0;u=p;p=p+32|0;i=u;a=t+4|0;o=((s[a>>2]|0)-(s[t>>2]|0)>>3)+1|0;n=tw(t)|0;if(n>>>0<o>>>0)zE(t);else{l=s[t>>2]|0;c=(s[t+8>>2]|0)-l|0;h=c>>2;ew(i,c>>3>>>0<n>>>1>>>0?h>>>0<o>>>0?o:h:n,(s[a>>2]|0)-l>>3,t+8|0);o=i+8|0;Zb(s[o>>2]|0,s[e>>2]|0,s[r>>2]|0);s[o>>2]=(s[o>>2]|0)+8;rw(t,i);nw(i);p=u;return}}function tw(t){t=t|0;return 536870911}function ew(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>536870911)qt();else{i=jE(e<<3)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r<<3)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e<<3);return}function rw(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(0-(i>>3)<<3)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function nw(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~((n+-8-e|0)>>>3)<<3);t=s[t>>2]|0;if(t|0)$E(t);return}function iw(){sw();return}function sw(){aw(10604);return}function aw(t){t=t|0;ow(t,4955);return}function ow(t,e){t=t|0;e=e|0;var r=0;r=uw()|0;s[t>>2]=r;lw(r,e);hw(s[t>>2]|0);return}function uw(){var t=0;if(!(n[7952]|0)){bw(10612);Dt(25,10612,_|0)|0;t=7952;s[t>>2]=1;s[t+4>>2]=0}return 10612}function lw(t,e){t=t|0;e=e|0;s[t>>2]=gw()|0;s[t+4>>2]=vw()|0;s[t+12>>2]=e;s[t+8>>2]=_w()|0;s[t+32>>2]=8;return}function hw(t){t=t|0;var e=0,r=0;e=p;p=p+16|0;r=e;cw()|0;s[r>>2]=t;fw(10608,r);p=e;return}function cw(){if(!(n[11714]|0)){s[2652]=0;Dt(62,10608,_|0)|0;n[11714]=1}return 10608}function fw(t,e){t=t|0;e=e|0;var r=0;r=jE(8)|0;s[r+4>>2]=s[e>>2];s[r>>2]=s[t>>2];s[t>>2]=r;return}function dw(t){t=t|0;pw(t);return}function pw(t){t=t|0;var e=0,r=0;e=s[t>>2]|0;if(e|0)do{r=e;e=s[e>>2]|0;$E(r)}while((e|0)!=0);s[t>>2]=0;return}function gw(){return 11715}function vw(){return 1496}function _w(){return Hv()|0}function mw(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;if((zv(n,896)|0)==512){if(r|0){yw(r);$E(r)}}else if(e|0)$E(e);return}function yw(t){t=t|0;t=s[t+4>>2]|0;if(t|0)XE(t);return}function bw(t){t=t|0;Mu(t);return}function ww(t,e){t=t|0;e=e|0;var r=0,n=0;cw()|0;r=s[2652]|0;t:do{if(r|0){while(1){n=s[r+4>>2]|0;if(n|0?(nE(Cw(n)|0,t)|0)==0:0)break;r=s[r>>2]|0;if(!r)break t}Sw(n,e)}}while(0);return}function Cw(t){t=t|0;return s[t+12>>2]|0}function Sw(t,e){t=t|0;e=e|0;var r=0;t=t+36|0;r=s[t>>2]|0;if(r|0){Zi(r);$E(r)}r=jE(4)|0;_a(r,e);s[t>>2]=r;return}function Tw(){if(!(n[11716]|0)){s[2664]=0;Dt(63,10656,_|0)|0;n[11716]=1}return 10656}function kw(){var t=0;if(!(n[11717]|0)){xw();s[2665]=1504;n[11717]=1;t=1504}else t=s[2665]|0;return t|0}function xw(){if(!(n[11740]|0)){n[11718]=Uo(Uo(8,0)|0,0)|0;n[11719]=Uo(Uo(0,0)|0,0)|0;n[11720]=Uo(Uo(0,16)|0,0)|0;n[11721]=Uo(Uo(8,0)|0,0)|0;n[11722]=Uo(Uo(0,0)|0,0)|0;n[11723]=Uo(Uo(8,0)|0,0)|0;n[11724]=Uo(Uo(0,0)|0,0)|0;n[11725]=Uo(Uo(8,0)|0,0)|0;n[11726]=Uo(Uo(0,0)|0,0)|0;n[11727]=Uo(Uo(8,0)|0,0)|0;n[11728]=Uo(Uo(0,0)|0,0)|0;n[11729]=Uo(Uo(0,0)|0,32)|0;n[11730]=Uo(Uo(0,0)|0,32)|0;n[11740]=1}return}function Ew(){return 1572}function Pw(t,e,r,n,i){t=t|0;e=e|0;r=r|0;n=n|0;i=i|0;var a=0,o=0,u=0,l=0,h=0,c=0;a=p;p=p+32|0;c=a+16|0;h=a+12|0;l=a+8|0;u=a+4|0;o=a;s[c>>2]=t;s[h>>2]=e;s[l>>2]=r;s[u>>2]=n;s[o>>2]=i;Tw()|0;Mw(10656,c,h,l,u,o);p=a;return}function Mw(t,e,r,n,i,a){t=t|0;e=e|0;r=r|0;n=n|0;i=i|0;a=a|0;var o=0;o=jE(24)|0;zo(o+4|0,s[e>>2]|0,s[r>>2]|0,s[n>>2]|0,s[i>>2]|0,s[a>>2]|0);s[o>>2]=s[t>>2];s[t>>2]=o;return}function Rw(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0,d=0,g=0,v=0,_=0,m=0,y=0,b=0;b=p;p=p+32|0;v=b+20|0;_=b+8|0;m=b+4|0;y=b;e=s[e>>2]|0;if(e|0){g=v+4|0;l=v+8|0;h=_+4|0;c=_+8|0;f=_+8|0;d=v+8|0;do{o=e+4|0;u=Aw(o)|0;if(u|0){i=Lw(u)|0;s[v>>2]=0;s[g>>2]=0;s[l>>2]=0;n=(Ow(u)|0)+1|0;Nw(v,n);if(n|0)while(1){n=n+-1|0;_x(_,s[i>>2]|0);a=s[g>>2]|0;if(a>>>0<(s[d>>2]|0)>>>0){s[a>>2]=s[_>>2];s[g>>2]=(s[g>>2]|0)+4}else Bw(v,_);if(!n)break;else i=i+4|0}n=Dw(u)|0;s[_>>2]=0;s[h>>2]=0;s[c>>2]=0;t:do{if(s[n>>2]|0){i=0;a=0;while(1){if((i|0)==(a|0))Iw(_,n);else{s[i>>2]=s[n>>2];s[h>>2]=(s[h>>2]|0)+4}n=n+4|0;if(!(s[n>>2]|0))break t;i=s[h>>2]|0;a=s[f>>2]|0}}}while(0);s[m>>2]=Fw(o)|0;s[y>>2]=Ko(u)|0;Ww(r,t,m,y,v,_);zw(_);Uw(v)}e=s[e>>2]|0}while((e|0)!=0)}p=b;return}function Aw(t){t=t|0;return s[t+12>>2]|0}function Lw(t){t=t|0;return s[t+12>>2]|0}function Ow(t){t=t|0;return s[t+16>>2]|0}function Nw(t,e){t=t|0;e=e|0;var r=0,n=0,i=0;i=p;p=p+32|0;r=i;n=s[t>>2]|0;if((s[t+8>>2]|0)-n>>2>>>0<e>>>0){bC(r,e,(s[t+4>>2]|0)-n>>2,t+8|0);wC(t,r);CC(r)}p=i;return}function Bw(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0,h=0;o=p;p=p+32|0;r=o;n=t+4|0;i=((s[n>>2]|0)-(s[t>>2]|0)>>2)+1|0;a=vC(t)|0;if(a>>>0<i>>>0)zE(t);else{u=s[t>>2]|0;h=(s[t+8>>2]|0)-u|0;l=h>>1;bC(r,h>>2>>>0<a>>>1>>>0?l>>>0<i>>>0?i:l:a,(s[n>>2]|0)-u>>2,t+8|0);a=r+8|0;s[s[a>>2]>>2]=s[e>>2];s[a>>2]=(s[a>>2]|0)+4;wC(t,r);CC(r);p=o;return}}function Dw(t){t=t|0;return s[t+8>>2]|0}function Iw(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0,h=0;o=p;p=p+32|0;r=o;n=t+4|0;i=((s[n>>2]|0)-(s[t>>2]|0)>>2)+1|0;a=dC(t)|0;if(a>>>0<i>>>0)zE(t);else{u=s[t>>2]|0;h=(s[t+8>>2]|0)-u|0;l=h>>1;_C(r,h>>2>>>0<a>>>1>>>0?l>>>0<i>>>0?i:l:a,(s[n>>2]|0)-u>>2,t+8|0);a=r+8|0;s[s[a>>2]>>2]=s[e>>2];s[a>>2]=(s[a>>2]|0)+4;mC(t,r);yC(r);p=o;return}}function Fw(t){t=t|0;return s[t>>2]|0}function Ww(t,e,r,n,i,s){t=t|0;e=e|0;r=r|0;n=n|0;i=i|0;s=s|0;Hw(t,e,r,n,i,s);return}function zw(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~((e+-4-n|0)>>>2)<<2);$E(r)}return}function Uw(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~((e+-4-n|0)>>>2)<<2);$E(r)}return}function Hw(t,e,r,n,i,a){t=t|0;e=e|0;r=r|0;n=n|0;i=i|0;a=a|0;var o=0,u=0,l=0,h=0,c=0,f=0;o=p;p=p+48|0;c=o+40|0;u=o+32|0;f=o+24|0;l=o+12|0;h=o;Sx(u);t=wa(t)|0;s[f>>2]=s[e>>2];r=s[r>>2]|0;n=s[n>>2]|0;Yw(l,i);Gw(h,a);s[c>>2]=s[f>>2];Xw(t,c,r,n,l,h);zw(h);Uw(l);kx(u);p=o;return}function Yw(t,e){t=t|0;e=e|0;var r=0,n=0;s[t>>2]=0;s[t+4>>2]=0;s[t+8>>2]=0;r=e+4|0;n=(s[r>>2]|0)-(s[e>>2]|0)>>2;if(n|0){pC(t,n);gC(t,s[e>>2]|0,s[r>>2]|0,n)}return}function Gw(t,e){t=t|0;e=e|0;var r=0,n=0;s[t>>2]=0;s[t+4>>2]=0;s[t+8>>2]=0;r=e+4|0;n=(s[r>>2]|0)-(s[e>>2]|0)>>2;if(n|0){cC(t,n);fC(t,s[e>>2]|0,s[r>>2]|0,n)}return}function Xw(t,e,r,n,i,a){t=t|0;e=e|0;r=r|0;n=n|0;i=i|0;a=a|0;var o=0,u=0,l=0,h=0,c=0,f=0;o=p;p=p+32|0;c=o+28|0;f=o+24|0;u=o+12|0;l=o;h=Ta(Vw()|0)|0;s[f>>2]=s[e>>2];s[c>>2]=s[f>>2];e=jw(c)|0;r=qw(r)|0;n=$w(n)|0;s[u>>2]=s[i>>2];c=i+4|0;s[u+4>>2]=s[c>>2];f=i+8|0;s[u+8>>2]=s[f>>2];s[f>>2]=0;s[c>>2]=0;s[i>>2]=0;i=Kw(u)|0;s[l>>2]=s[a>>2];c=a+4|0;s[l+4>>2]=s[c>>2];f=a+8|0;s[l+8>>2]=s[f>>2];s[f>>2]=0;s[c>>2]=0;s[a>>2]=0;Rt(0,h|0,t|0,e|0,r|0,n|0,i|0,Jw(l)|0)|0;zw(l);Uw(u);p=o;return}function Vw(){var t=0;if(!(n[7968]|0)){lC(10708);t=7968;s[t>>2]=1;s[t+4>>2]=0}return 10708}function jw(t){t=t|0;return eC(t)|0}function qw(t){t=t|0;return Qw(t)|0}function $w(t){t=t|0;return Zh(t)|0}function Kw(t){t=t|0;return tC(t)|0}function Jw(t){t=t|0;return Zw(t)|0}function Zw(t){t=t|0;var e=0,r=0,n=0;n=(s[t+4>>2]|0)-(s[t>>2]|0)|0;r=n>>2;n=zS(n+4|0)|0;s[n>>2]=r;if(r|0){e=0;do{s[n+4+(e<<2)>>2]=Qw(s[(s[t>>2]|0)+(e<<2)>>2]|0)|0;e=e+1|0}while((e|0)!=(r|0))}return n|0}function Qw(t){t=t|0;return t|0}function tC(t){t=t|0;var e=0,r=0,n=0;n=(s[t+4>>2]|0)-(s[t>>2]|0)|0;r=n>>2;n=zS(n+4|0)|0;s[n>>2]=r;if(r|0){e=0;do{s[n+4+(e<<2)>>2]=eC((s[t>>2]|0)+(e<<2)|0)|0;e=e+1|0}while((e|0)!=(r|0))}return n|0}function eC(t){t=t|0;var e=0,r=0,n=0,i=0;i=p;p=p+32|0;e=i+12|0;r=i;n=ou(rC()|0)|0;if(!n)t=nC(t)|0;else{uu(e,n);lu(r,e);bx(t,r);t=cu(e)|0}p=i;return t|0}function rC(){var t=0;if(!(n[7960]|0)){uC(10664);Dt(25,10664,_|0)|0;t=7960;s[t>>2]=1;s[t+4>>2]=0}return 10664}function nC(t){t=t|0;var e=0,r=0,n=0,i=0,a=0,o=0,u=0;r=p;p=p+16|0;i=r+4|0;o=r;n=zS(8)|0;e=n;u=jE(4)|0;s[u>>2]=s[t>>2];a=e+4|0;s[a>>2]=u;t=jE(8)|0;a=s[a>>2]|0;s[o>>2]=0;s[i>>2]=s[o>>2];iC(t,a,i);s[n>>2]=t;p=r;return e|0}function iC(t,e,r){t=t|0;e=e|0;r=r|0;s[t>>2]=e;r=jE(16)|0;s[r+4>>2]=0;s[r+8>>2]=0;s[r>>2]=1656;s[r+12>>2]=e;s[t+4>>2]=r;return}function sC(t){t=t|0;UE(t);$E(t);return}function aC(t){t=t|0;t=s[t+12>>2]|0;if(t|0)$E(t);return}function oC(t){t=t|0;$E(t);return}function uC(t){t=t|0;Mu(t);return}function lC(t){t=t|0;Da(t,hC()|0,5);return}function hC(){return 1676}function cC(t,e){t=t|0;e=e|0;var r=0;if((dC(t)|0)>>>0<e>>>0)zE(t);if(e>>>0>1073741823)qt();else{r=jE(e<<2)|0;s[t+4>>2]=r;s[t>>2]=r;s[t+8>>2]=r+(e<<2);return}}function fC(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;n=t+4|0;t=r-e|0;if((t|0)>0){iP(s[n>>2]|0,e|0,t|0)|0;s[n>>2]=(s[n>>2]|0)+(t>>>2<<2)}return}function dC(t){t=t|0;return 1073741823}function pC(t,e){t=t|0;e=e|0;var r=0;if((vC(t)|0)>>>0<e>>>0)zE(t);if(e>>>0>1073741823)qt();else{r=jE(e<<2)|0;s[t+4>>2]=r;s[t>>2]=r;s[t+8>>2]=r+(e<<2);return}}function gC(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;n=t+4|0;t=r-e|0;if((t|0)>0){iP(s[n>>2]|0,e|0,t|0)|0;s[n>>2]=(s[n>>2]|0)+(t>>>2<<2)}return}function vC(t){t=t|0;return 1073741823}function _C(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>1073741823)qt();else{i=jE(e<<2)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r<<2)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e<<2);return}function mC(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(0-(i>>2)<<2)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function yC(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~((n+-4-e|0)>>>2)<<2);t=s[t>>2]|0;if(t|0)$E(t);return}function bC(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>1073741823)qt();else{i=jE(e<<2)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r<<2)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e<<2);return}function wC(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(0-(i>>2)<<2)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function CC(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~((n+-4-e|0)>>>2)<<2);t=s[t>>2]|0;if(t|0)$E(t);return}function SC(t,e,r,n,i){t=t|0;e=e|0;r=r|0;n=n|0;i=i|0;var a=0,o=0,u=0,l=0,h=0,c=0,f=0,d=0,g=0,v=0,_=0;_=p;p=p+32|0;c=_+20|0;f=_+12|0;h=_+16|0;d=_+4|0;g=_;v=_+8|0;u=kw()|0;a=s[u>>2]|0;o=s[a>>2]|0;if(o|0){l=s[u+8>>2]|0;u=s[u+4>>2]|0;while(1){_x(c,o);TC(t,c,u,l);a=a+4|0;o=s[a>>2]|0;if(!o)break;else{l=l+1|0;u=u+1|0}}}a=Ew()|0;o=s[a>>2]|0;if(o|0)do{_x(c,o);s[f>>2]=s[a+4>>2];kC(e,c,f);a=a+8|0;o=s[a>>2]|0}while((o|0)!=0);a=s[(cw()|0)>>2]|0;if(a|0)do{e=s[a+4>>2]|0;_x(c,s[(xC(e)|0)>>2]|0);s[f>>2]=Cw(e)|0;EC(r,c,f);a=s[a>>2]|0}while((a|0)!=0);_x(h,0);a=Tw()|0;s[c>>2]=s[h>>2];Rw(c,a,i);a=s[(cw()|0)>>2]|0;if(a|0){t=c+4|0;e=c+8|0;r=c+8|0;do{l=s[a+4>>2]|0;_x(f,s[(xC(l)|0)>>2]|0);MC(d,PC(l)|0);o=s[d>>2]|0;if(o|0){s[c>>2]=0;s[t>>2]=0;s[e>>2]=0;do{_x(g,s[(xC(s[o+4>>2]|0)|0)>>2]|0);u=s[t>>2]|0;if(u>>>0<(s[r>>2]|0)>>>0){s[u>>2]=s[g>>2];s[t>>2]=(s[t>>2]|0)+4}else Bw(c,g);o=s[o>>2]|0}while((o|0)!=0);RC(n,f,c);Uw(c)}s[v>>2]=s[f>>2];h=AC(l)|0;s[c>>2]=s[v>>2];Rw(c,h,i);xu(d);a=s[a>>2]|0}while((a|0)!=0)}p=_;return}function TC(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;XC(t,e,r,n);return}function kC(t,e,r){t=t|0;e=e|0;r=r|0;GC(t,e,r);return}function xC(t){t=t|0;return t|0}function EC(t,e,r){t=t|0;e=e|0;r=r|0;WC(t,e,r);return}function PC(t){t=t|0;return t+16|0}function MC(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0;a=p;p=p+16|0;i=a+8|0;r=a;s[t>>2]=0;n=s[e>>2]|0;s[i>>2]=n;s[r>>2]=t;r=IC(r)|0;if(n|0){n=jE(12)|0;o=(FC(i)|0)+4|0;t=s[o+4>>2]|0;e=n+4|0;s[e>>2]=s[o>>2];s[e+4>>2]=t;e=s[s[i>>2]>>2]|0;s[i>>2]=e;if(!e)t=n;else{e=n;while(1){t=jE(12)|0;l=(FC(i)|0)+4|0;u=s[l+4>>2]|0;o=t+4|0;s[o>>2]=s[l>>2];s[o+4>>2]=u;s[e>>2]=t;o=s[s[i>>2]>>2]|0;s[i>>2]=o;if(!o)break;else e=t}}s[t>>2]=s[r>>2];s[r>>2]=n}p=a;return}function RC(t,e,r){t=t|0;e=e|0;r=r|0;LC(t,e,r);return}function AC(t){t=t|0;return t+24|0}function LC(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0;n=p;p=p+32|0;o=n+24|0;i=n+16|0;u=n+12|0;a=n;Sx(i);t=wa(t)|0;s[u>>2]=s[e>>2];Yw(a,r);s[o>>2]=s[u>>2];OC(t,o,a);Uw(a);kx(i);p=n;return}function OC(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0;n=p;p=p+32|0;o=n+16|0;u=n+12|0;i=n;a=Ta(NC()|0)|0;s[u>>2]=s[e>>2];s[o>>2]=s[u>>2];e=jw(o)|0;s[i>>2]=s[r>>2];o=r+4|0;s[i+4>>2]=s[o>>2];u=r+8|0;s[i+8>>2]=s[u>>2];s[u>>2]=0;s[o>>2]=0;s[r>>2]=0;xt(0,a|0,t|0,e|0,Kw(i)|0)|0;Uw(i);p=n;return}function NC(){var t=0;if(!(n[7976]|0)){BC(10720);t=7976;s[t>>2]=1;s[t+4>>2]=0}return 10720}function BC(t){t=t|0;Da(t,DC()|0,2);return}function DC(){return 1732}function IC(t){t=t|0;return s[t>>2]|0}function FC(t){t=t|0;return s[t>>2]|0}function WC(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;n=p;p=p+32|0;a=n+16|0;i=n+8|0;o=n;Sx(i);t=wa(t)|0;s[o>>2]=s[e>>2];r=s[r>>2]|0;s[a>>2]=s[o>>2];zC(t,a,r);kx(i);p=n;return}function zC(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;n=p;p=p+16|0;a=n+4|0;o=n;i=Ta(UC()|0)|0;s[o>>2]=s[e>>2];s[a>>2]=s[o>>2];e=jw(a)|0;xt(0,i|0,t|0,e|0,qw(r)|0)|0;p=n;return}function UC(){var t=0;if(!(n[7984]|0)){HC(10732);t=7984;s[t>>2]=1;s[t+4>>2]=0}return 10732}function HC(t){t=t|0;Da(t,YC()|0,2);return}function YC(){return 1744}function GC(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0;n=p;p=p+32|0;a=n+16|0;i=n+8|0;o=n;Sx(i);t=wa(t)|0;s[o>>2]=s[e>>2];r=s[r>>2]|0;s[a>>2]=s[o>>2];zC(t,a,r);kx(i);p=n;return}function XC(t,e,r,i){t=t|0;e=e|0;r=r|0;i=i|0;var a=0,o=0,u=0,l=0;a=p;p=p+32|0;u=a+16|0;o=a+8|0;l=a;Sx(o);t=wa(t)|0;s[l>>2]=s[e>>2];r=n[r>>0]|0;i=n[i>>0]|0;s[u>>2]=s[l>>2];VC(t,u,r,i);kx(o);p=a;return}function VC(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0,o=0,u=0;i=p;p=p+16|0;o=i+4|0;u=i;a=Ta(jC()|0)|0;s[u>>2]=s[e>>2];s[o>>2]=s[u>>2];e=jw(o)|0;r=qC(r)|0;re(0,a|0,t|0,e|0,r|0,qC(n)|0)|0;p=i;return}function jC(){var t=0;if(!(n[7992]|0)){KC(10744);t=7992;s[t>>2]=1;s[t+4>>2]=0}return 10744}function qC(t){t=t|0;return $C(t)|0}function $C(t){t=t|0;return t&255|0}function KC(t){t=t|0;Da(t,JC()|0,3);return}function JC(){return 1756}function ZC(t,e,r){t=t|0;e=e|0;r=r|0;var i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0,d=0,g=0;g=p;p=p+32|0;l=g+8|0;h=g+4|0;c=g+20|0;f=g;Gl(t,0);i=yx(e)|0;s[l>>2]=0;d=l+4|0;s[d>>2]=0;s[l+8>>2]=0;switch(i<<24>>24){case 0:{n[c>>0]=0;QC(h,r,c);tS(t,h)|0;Qi(h);break}case 8:{d=mx(e)|0;n[c>>0]=8;_x(f,s[d+4>>2]|0);eS(h,r,c,f,d+8|0);tS(t,h)|0;Qi(h);break}case 9:{o=mx(e)|0;e=s[o+4>>2]|0;if(e|0){u=l+8|0;a=o+12|0;while(1){e=e+-1|0;_x(h,s[a>>2]|0);i=s[d>>2]|0;if(i>>>0<(s[u>>2]|0)>>>0){s[i>>2]=s[h>>2];s[d>>2]=(s[d>>2]|0)+4}else Bw(l,h);if(!e)break;else a=a+4|0}}n[c>>0]=9;_x(f,s[o+8>>2]|0);rS(h,r,c,f,l);tS(t,h)|0;Qi(h);break}default:{d=mx(e)|0;n[c>>0]=i;_x(f,s[d+4>>2]|0);nS(h,r,c,f);tS(t,h)|0;Qi(h)}}Uw(l);p=g;return}function QC(t,e,r){t=t|0;e=e|0;r=r|0;var i=0,s=0;i=p;p=p+16|0;s=i;Sx(s);e=wa(e)|0;_S(t,e,n[r>>0]|0);kx(s);p=i;return}function tS(t,e){t=t|0;e=e|0;var r=0;r=s[t>>2]|0;if(r|0)ne(r|0);s[t>>2]=s[e>>2];s[e>>2]=0;return t|0}function eS(t,e,r,i,a){t=t|0;e=e|0;r=r|0;i=i|0;a=a|0;var o=0,u=0,l=0,h=0;o=p;p=p+32|0;l=o+16|0;u=o+8|0;h=o;Sx(u);e=wa(e)|0;r=n[r>>0]|0;s[h>>2]=s[i>>2];a=s[a>>2]|0;s[l>>2]=s[h>>2];dS(t,e,r,l,a);kx(u);p=o;return}function rS(t,e,r,i,a){t=t|0;e=e|0;r=r|0;i=i|0;a=a|0;var o=0,u=0,l=0,h=0,c=0;o=p;p=p+32|0;h=o+24|0;u=o+16|0;c=o+12|0;l=o;Sx(u);e=wa(e)|0;r=n[r>>0]|0;s[c>>2]=s[i>>2];Yw(l,a);s[h>>2]=s[c>>2];lS(t,e,r,h,l);Uw(l);kx(u);p=o;return}function nS(t,e,r,i){t=t|0;e=e|0;r=r|0;i=i|0;var a=0,o=0,u=0,l=0;a=p;p=p+32|0;u=a+16|0;o=a+8|0;l=a;Sx(o);e=wa(e)|0;r=n[r>>0]|0;s[l>>2]=s[i>>2];s[u>>2]=s[l>>2];iS(t,e,r,u);kx(o);p=a;return}function iS(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0,o=0,u=0;i=p;p=p+16|0;a=i+4|0;u=i;o=Ta(sS()|0)|0;r=qC(r)|0;s[u>>2]=s[n>>2];s[a>>2]=s[u>>2];aS(t,xt(0,o|0,e|0,r|0,jw(a)|0)|0);p=i;return}function sS(){var t=0;if(!(n[8e3]|0)){oS(10756);t=8e3;s[t>>2]=1;s[t+4>>2]=0}return 10756}function aS(t,e){t=t|0;e=e|0;Gl(t,e);return}function oS(t){t=t|0;Da(t,uS()|0,2);return}function uS(){return 1772}function lS(t,e,r,n,i){t=t|0;e=e|0;r=r|0;n=n|0;i=i|0;var a=0,o=0,u=0,l=0,h=0;a=p;p=p+32|0;l=a+16|0;h=a+12|0;o=a;u=Ta(hS()|0)|0;r=qC(r)|0;s[h>>2]=s[n>>2];s[l>>2]=s[h>>2];n=jw(l)|0;s[o>>2]=s[i>>2];l=i+4|0;s[o+4>>2]=s[l>>2];h=i+8|0;s[o+8>>2]=s[h>>2];s[h>>2]=0;s[l>>2]=0;s[i>>2]=0;aS(t,re(0,u|0,e|0,r|0,n|0,Kw(o)|0)|0);Uw(o);p=a;return}function hS(){var t=0;if(!(n[8008]|0)){cS(10768);t=8008;s[t>>2]=1;s[t+4>>2]=0}return 10768}function cS(t){t=t|0;Da(t,fS()|0,3);return}function fS(){return 1784}function dS(t,e,r,n,i){t=t|0;e=e|0;r=r|0;n=n|0;i=i|0;var a=0,o=0,u=0,l=0;a=p;p=p+16|0;u=a+4|0;l=a;o=Ta(pS()|0)|0;r=qC(r)|0;s[l>>2]=s[n>>2];s[u>>2]=s[l>>2];n=jw(u)|0;aS(t,re(0,o|0,e|0,r|0,n|0,$w(i)|0)|0);p=a;return}function pS(){var t=0;if(!(n[8016]|0)){gS(10780);t=8016;s[t>>2]=1;s[t+4>>2]=0}return 10780}function gS(t){t=t|0;Da(t,vS()|0,3);return}function vS(){return 1800}function _S(t,e,r){t=t|0;e=e|0;r=r|0;var n=0;n=Ta(mS()|0)|0;aS(t,ie(0,n|0,e|0,qC(r)|0)|0);return}function mS(){var t=0;if(!(n[8024]|0)){yS(10792);t=8024;s[t>>2]=1;s[t+4>>2]=0}return 10792}function yS(t){t=t|0;Da(t,bS()|0,1);return}function bS(){return 1816}function wS(){CS();SS();TS();return}function CS(){s[2702]=qE(65536)|0;return}function SS(){jS(10856);return}function TS(){kS(10816);return}function kS(t){t=t|0;xS(t,5044);ES(t)|0;return}function xS(t,e){t=t|0;e=e|0;var r=0;r=rC()|0;s[t>>2]=r;US(r,e);hw(s[t>>2]|0);return}function ES(t){t=t|0;var e=0;e=s[t>>2]|0;ny(e,PS()|0);return t|0}function PS(){var t=0;if(!(n[8032]|0)){MS(10820);Dt(64,10820,_|0)|0;t=8032;s[t>>2]=1;s[t+4>>2]=0}if(!(Ko(10820)|0))MS(10820);return 10820}function MS(t){t=t|0;LS(t);ly(t,25);return}function RS(t){t=t|0;AS(t+24|0);return}function AS(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~((e+-8-n|0)>>>3)<<3);$E(r)}return}function LS(t){t=t|0;var e=0;e=Qo()|0;ru(t,5,18,e,IS()|0,1);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function OS(t,e){t=t|0;e=e|0;NS(t,e);return}function NS(t,e){t=t|0;e=e|0;var r=0,n=0,i=0;r=p;p=p+16|0;n=r;i=r+4|0;hh(i,e);s[n>>2]=ch(i,e)|0;BS(t,n);p=r;return}function BS(t,e){t=t|0;e=e|0;DS(t+4|0,s[e>>2]|0);n[t+8>>0]=1;return}function DS(t,e){t=t|0;e=e|0;s[t>>2]=e;return}function IS(){return 1824}function FS(t){t=t|0;return WS(t)|0}function WS(t){t=t|0;var e=0,r=0,n=0,i=0,a=0,o=0,u=0;r=p;p=p+16|0;i=r+4|0;o=r;n=zS(8)|0;e=n;u=jE(4)|0;hh(i,t);DS(u,ch(i,t)|0);a=e+4|0;s[a>>2]=u;t=jE(8)|0;a=s[a>>2]|0;s[o>>2]=0;s[i>>2]=s[o>>2];iC(t,a,i);s[n>>2]=t;p=r;return e|0}function zS(t){t=t|0;var e=0,r=0;t=t+7&-8;if(t>>>0<=32768?(e=s[2701]|0,t>>>0<=(65536-e|0)>>>0):0){r=(s[2702]|0)+e|0;s[2701]=e+t;t=r}else{t=qE(t+8|0)|0;s[t>>2]=s[2703];s[2703]=t;t=t+8|0}return t|0}function US(t,e){t=t|0;e=e|0;s[t>>2]=HS()|0;s[t+4>>2]=YS()|0;s[t+12>>2]=e;s[t+8>>2]=GS()|0;s[t+32>>2]=9;return}function HS(){return 11744}function YS(){return 1832}function GS(){return Oy()|0}function XS(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;if((zv(n,896)|0)==512){if(r|0){VS(r);$E(r)}}else if(e|0)$E(e);return}function VS(t){t=t|0;t=s[t+4>>2]|0;if(t|0)XE(t);return}function jS(t){t=t|0;qS(t,5052);$S(t)|0;KS(t,5058,26)|0;JS(t,5069,1)|0;ZS(t,5077,10)|0;QS(t,5087,19)|0;eT(t,5094,27)|0;return}function qS(t,e){t=t|0;e=e|0;var r=0;r=lx()|0;s[t>>2]=r;hx(r,e);hw(s[t>>2]|0);return}function $S(t){t=t|0;var e=0;e=s[t>>2]|0;ny(e,qk()|0);return t|0}function KS(t,e,r){t=t|0;e=e|0;r=r|0;Ek(t,Lo(e)|0,r,0);return t|0}function JS(t,e,r){t=t|0;e=e|0;r=r|0;lk(t,Lo(e)|0,r,0);return t|0}function ZS(t,e,r){t=t|0;e=e|0;r=r|0;FT(t,Lo(e)|0,r,0);return t|0}function QS(t,e,r){t=t|0;e=e|0;r=r|0;bT(t,Lo(e)|0,r,0);return t|0}function tT(t,e){t=t|0;e=e|0;var r=0,n=0;t:while(1){r=s[2703]|0;while(1){if((r|0)==(e|0))break t;n=s[r>>2]|0;s[2703]=n;if(!r)r=n;else break}$E(r)}s[2701]=t;return}function eT(t,e,r){t=t|0;e=e|0;r=r|0;rT(t,Lo(e)|0,r,0);return t|0}function rT(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0;a=s[t>>2]|0;i=nT()|0;t=iT(r)|0;Io(a,e,i,t,sT(r,n)|0,n);return}function nT(){var t=0,e=0;if(!(n[8040]|0)){fT(10860);Dt(65,10860,_|0)|0;e=8040;s[e>>2]=1;s[e+4>>2]=0}if(!(Ko(10860)|0)){t=10860;e=t+36|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));fT(10860)}return 10860}function iT(t){t=t|0;return t|0}function sT(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0;u=p;p=p+16|0;i=u;a=u+4|0;s[i>>2]=t;l=nT()|0;o=l+24|0;e=Uo(e,4)|0;s[a>>2]=e;r=l+28|0;n=s[r>>2]|0;if(n>>>0<(s[l+32>>2]|0)>>>0){aT(n,t,e);e=(s[r>>2]|0)+8|0;s[r>>2]=e}else{oT(o,i,a);e=s[r>>2]|0}p=u;return(e-(s[o>>2]|0)>>3)+-1|0}function aT(t,e,r){t=t|0;e=e|0;r=r|0;s[t>>2]=e;s[t+4>>2]=r;return}function oT(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0;u=p;p=p+32|0;i=u;a=t+4|0;o=((s[a>>2]|0)-(s[t>>2]|0)>>3)+1|0;n=uT(t)|0;if(n>>>0<o>>>0)zE(t);else{l=s[t>>2]|0;c=(s[t+8>>2]|0)-l|0;h=c>>2;lT(i,c>>3>>>0<n>>>1>>>0?h>>>0<o>>>0?o:h:n,(s[a>>2]|0)-l>>3,t+8|0);o=i+8|0;aT(s[o>>2]|0,s[e>>2]|0,s[r>>2]|0);s[o>>2]=(s[o>>2]|0)+8;hT(t,i);cT(i);p=u;return}}function uT(t){t=t|0;return 536870911}function lT(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>536870911)qt();else{i=jE(e<<3)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r<<3)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e<<3);return}function hT(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(0-(i>>3)<<3)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function cT(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~((n+-8-e|0)>>>3)<<3);t=s[t>>2]|0;if(t|0)$E(t);return}function fT(t){t=t|0;gT(t);return}function dT(t){t=t|0;pT(t+24|0);return}function pT(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~((e+-8-n|0)>>>3)<<3);$E(r)}return}function gT(t){t=t|0;var e=0;e=Qo()|0;ru(t,1,11,e,vT()|0,2);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function vT(){return 1840}function _T(t,e,r){t=t|0;e=e|0;r=r|0;yT(s[(mT(t)|0)>>2]|0,e,r);return}function mT(t){t=t|0;return(s[(nT()|0)+24>>2]|0)+(t<<3)|0}function yT(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,s=0;n=p;p=p+16|0;s=n+1|0;i=n;hh(s,e);e=ch(s,e)|0;hh(i,r);r=ch(i,r)|0;gM[t&31](e,r);p=n;return}function bT(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0;a=s[t>>2]|0;i=wT()|0;t=CT(r)|0;Io(a,e,i,t,ST(r,n)|0,n);return}function wT(){var t=0,e=0;if(!(n[8048]|0)){RT(10896);Dt(66,10896,_|0)|0;e=8048;s[e>>2]=1;s[e+4>>2]=0}if(!(Ko(10896)|0)){t=10896;e=t+36|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));RT(10896)}return 10896}function CT(t){t=t|0;return t|0}function ST(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0;u=p;p=p+16|0;i=u;a=u+4|0;s[i>>2]=t;l=wT()|0;o=l+24|0;e=Uo(e,4)|0;s[a>>2]=e;r=l+28|0;n=s[r>>2]|0;if(n>>>0<(s[l+32>>2]|0)>>>0){TT(n,t,e);e=(s[r>>2]|0)+8|0;s[r>>2]=e}else{kT(o,i,a);e=s[r>>2]|0}p=u;return(e-(s[o>>2]|0)>>3)+-1|0}function TT(t,e,r){t=t|0;e=e|0;r=r|0;s[t>>2]=e;s[t+4>>2]=r;return}function kT(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0;u=p;p=p+32|0;i=u;a=t+4|0;o=((s[a>>2]|0)-(s[t>>2]|0)>>3)+1|0;n=xT(t)|0;if(n>>>0<o>>>0)zE(t);else{l=s[t>>2]|0;c=(s[t+8>>2]|0)-l|0;h=c>>2;ET(i,c>>3>>>0<n>>>1>>>0?h>>>0<o>>>0?o:h:n,(s[a>>2]|0)-l>>3,t+8|0);o=i+8|0;TT(s[o>>2]|0,s[e>>2]|0,s[r>>2]|0);s[o>>2]=(s[o>>2]|0)+8;PT(t,i);MT(i);p=u;return}}function xT(t){t=t|0;return 536870911}function ET(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>536870911)qt();else{i=jE(e<<3)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r<<3)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e<<3);return}function PT(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(0-(i>>3)<<3)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function MT(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~((n+-8-e|0)>>>3)<<3);t=s[t>>2]|0;if(t|0)$E(t);return}function RT(t){t=t|0;OT(t);return}function AT(t){t=t|0;LT(t+24|0);return}function LT(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~((e+-8-n|0)>>>3)<<3);$E(r)}return}function OT(t){t=t|0;var e=0;e=Qo()|0;ru(t,1,11,e,NT()|0,1);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function NT(){return 1852}function BT(t,e){t=t|0;e=e|0;return IT(s[(DT(t)|0)>>2]|0,e)|0}function DT(t){t=t|0;return(s[(wT()|0)+24>>2]|0)+(t<<3)|0}function IT(t,e){t=t|0;e=e|0;var r=0,n=0;r=p;p=p+16|0;n=r;hh(n,e);e=ch(n,e)|0;e=Zh(vM[t&31](e)|0)|0;p=r;return e|0}function FT(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0;a=s[t>>2]|0;i=WT()|0;t=zT(r)|0;Io(a,e,i,t,UT(r,n)|0,n);return}function WT(){var t=0,e=0;if(!(n[8056]|0)){qT(10932);Dt(67,10932,_|0)|0;e=8056;s[e>>2]=1;s[e+4>>2]=0}if(!(Ko(10932)|0)){t=10932;e=t+36|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));qT(10932)}return 10932}function zT(t){t=t|0;return t|0}function UT(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0;u=p;p=p+16|0;i=u;a=u+4|0;s[i>>2]=t;l=WT()|0;o=l+24|0;e=Uo(e,4)|0;s[a>>2]=e;r=l+28|0;n=s[r>>2]|0;if(n>>>0<(s[l+32>>2]|0)>>>0){HT(n,t,e);e=(s[r>>2]|0)+8|0;s[r>>2]=e}else{YT(o,i,a);e=s[r>>2]|0}p=u;return(e-(s[o>>2]|0)>>3)+-1|0}function HT(t,e,r){t=t|0;e=e|0;r=r|0;s[t>>2]=e;s[t+4>>2]=r;return}function YT(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0;u=p;p=p+32|0;i=u;a=t+4|0;o=((s[a>>2]|0)-(s[t>>2]|0)>>3)+1|0;n=GT(t)|0;if(n>>>0<o>>>0)zE(t);else{l=s[t>>2]|0;c=(s[t+8>>2]|0)-l|0;h=c>>2;XT(i,c>>3>>>0<n>>>1>>>0?h>>>0<o>>>0?o:h:n,(s[a>>2]|0)-l>>3,t+8|0);o=i+8|0;HT(s[o>>2]|0,s[e>>2]|0,s[r>>2]|0);s[o>>2]=(s[o>>2]|0)+8;VT(t,i);jT(i);p=u;return}}function GT(t){t=t|0;return 536870911}function XT(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>536870911)qt();else{i=jE(e<<3)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r<<3)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e<<3);return}function VT(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(0-(i>>3)<<3)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function jT(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~((n+-8-e|0)>>>3)<<3);t=s[t>>2]|0;if(t|0)$E(t);return}function qT(t){t=t|0;JT(t);return}function $T(t){t=t|0;KT(t+24|0);return}function KT(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~((e+-8-n|0)>>>3)<<3);$E(r)}return}function JT(t){t=t|0;var e=0;e=Qo()|0;ru(t,1,7,e,ZT()|0,2);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function ZT(){return 1860}function QT(t,e,r){t=t|0;e=e|0;r=r|0;return ek(s[(tk(t)|0)>>2]|0,e,r)|0}function tk(t){t=t|0;return(s[(WT()|0)+24>>2]|0)+(t<<3)|0}function ek(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0;n=p;p=p+32|0;o=n+12|0;a=n+8|0;u=n;l=n+16|0;i=n+4|0;rk(l,e);nk(u,l,e);zl(i,r);r=Ul(i,r)|0;s[o>>2]=s[u>>2];AM[t&15](a,o,r);r=ik(a)|0;Qi(a);Hl(i);p=n;return r|0}function rk(t,e){t=t|0;e=e|0;return}function nk(t,e,r){t=t|0;e=e|0;r=r|0;sk(t,r);return}function ik(t){t=t|0;return wa(t)|0}function sk(t,e){t=t|0;e=e|0;var r=0,n=0,i=0;i=p;p=p+16|0;r=i;n=e;if(!(n&1))s[t>>2]=s[e>>2];else{ak(r,0);Ft(n|0,r|0)|0;ok(t,r);uk(r)}p=i;return}function ak(t,e){t=t|0;e=e|0;Aa(t,e);s[t+4>>2]=0;n[t+8>>0]=0;return}function ok(t,e){t=t|0;e=e|0;s[t>>2]=s[e+4>>2];return}function uk(t){t=t|0;n[t+8>>0]=0;return}function lk(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0;a=s[t>>2]|0;i=hk()|0;t=ck(r)|0;Io(a,e,i,t,fk(r,n)|0,n);return}function hk(){var t=0,e=0;if(!(n[8064]|0)){yk(10968);Dt(68,10968,_|0)|0;e=8064;s[e>>2]=1;s[e+4>>2]=0}if(!(Ko(10968)|0)){t=10968;e=t+36|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));yk(10968)}return 10968}function ck(t){t=t|0;return t|0}function fk(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0;u=p;p=p+16|0;i=u;a=u+4|0;s[i>>2]=t;l=hk()|0;o=l+24|0;e=Uo(e,4)|0;s[a>>2]=e;r=l+28|0;n=s[r>>2]|0;if(n>>>0<(s[l+32>>2]|0)>>>0){dk(n,t,e);e=(s[r>>2]|0)+8|0;s[r>>2]=e}else{pk(o,i,a);e=s[r>>2]|0}p=u;return(e-(s[o>>2]|0)>>3)+-1|0}function dk(t,e,r){t=t|0;e=e|0;r=r|0;s[t>>2]=e;s[t+4>>2]=r;return}function pk(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0;u=p;p=p+32|0;i=u;a=t+4|0;o=((s[a>>2]|0)-(s[t>>2]|0)>>3)+1|0;n=gk(t)|0;if(n>>>0<o>>>0)zE(t);else{l=s[t>>2]|0;c=(s[t+8>>2]|0)-l|0;h=c>>2;vk(i,c>>3>>>0<n>>>1>>>0?h>>>0<o>>>0?o:h:n,(s[a>>2]|0)-l>>3,t+8|0);o=i+8|0;dk(s[o>>2]|0,s[e>>2]|0,s[r>>2]|0);s[o>>2]=(s[o>>2]|0)+8;_k(t,i);mk(i);p=u;return}}function gk(t){t=t|0;return 536870911}function vk(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>536870911)qt();else{i=jE(e<<3)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r<<3)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e<<3);return}function _k(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(0-(i>>3)<<3)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function mk(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~((n+-8-e|0)>>>3)<<3);t=s[t>>2]|0;if(t|0)$E(t);return}function yk(t){t=t|0;Ck(t);return}function bk(t){t=t|0;wk(t+24|0);return}function wk(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~((e+-8-n|0)>>>3)<<3);$E(r)}return}function Ck(t){t=t|0;var e=0;e=Qo()|0;ru(t,1,1,e,Sk()|0,5);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function Sk(){return 1872}function Tk(t,e,r,n,i,a){t=t|0;e=e|0;r=r|0;n=n|0;i=i|0;a=a|0;xk(s[(kk(t)|0)>>2]|0,e,r,n,i,a);return}function kk(t){t=t|0;return(s[(hk()|0)+24>>2]|0)+(t<<3)|0}function xk(t,e,r,n,i,s){t=t|0;e=e|0;r=r|0;n=n|0;i=i|0;s=s|0;var a=0,o=0,u=0,l=0,h=0,c=0;a=p;p=p+32|0;o=a+16|0;u=a+12|0;l=a+8|0;h=a+4|0;c=a;zl(o,e);e=Ul(o,e)|0;zl(u,r);r=Ul(u,r)|0;zl(l,n);n=Ul(l,n)|0;zl(h,i);i=Ul(h,i)|0;zl(c,s);s=Ul(c,s)|0;hM[t&1](e,r,n,i,s);Hl(c);Hl(h);Hl(l);Hl(u);Hl(o);p=a;return}function Ek(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0;a=s[t>>2]|0;i=Pk()|0;t=Mk(r)|0;Io(a,e,i,t,Rk(r,n)|0,n);return}function Pk(){var t=0,e=0;if(!(n[8072]|0)){Ik(11004);Dt(69,11004,_|0)|0;e=8072;s[e>>2]=1;s[e+4>>2]=0}if(!(Ko(11004)|0)){t=11004;e=t+36|0;do{s[t>>2]=0;t=t+4|0}while((t|0)<(e|0));Ik(11004)}return 11004}function Mk(t){t=t|0;return t|0}function Rk(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0,u=0,l=0;u=p;p=p+16|0;i=u;a=u+4|0;s[i>>2]=t;l=Pk()|0;o=l+24|0;e=Uo(e,4)|0;s[a>>2]=e;r=l+28|0;n=s[r>>2]|0;if(n>>>0<(s[l+32>>2]|0)>>>0){Ak(n,t,e);e=(s[r>>2]|0)+8|0;s[r>>2]=e}else{Lk(o,i,a);e=s[r>>2]|0}p=u;return(e-(s[o>>2]|0)>>3)+-1|0}function Ak(t,e,r){t=t|0;e=e|0;r=r|0;s[t>>2]=e;s[t+4>>2]=r;return}function Lk(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0;u=p;p=p+32|0;i=u;a=t+4|0;o=((s[a>>2]|0)-(s[t>>2]|0)>>3)+1|0;n=Ok(t)|0;if(n>>>0<o>>>0)zE(t);else{l=s[t>>2]|0;c=(s[t+8>>2]|0)-l|0;h=c>>2;Nk(i,c>>3>>>0<n>>>1>>>0?h>>>0<o>>>0?o:h:n,(s[a>>2]|0)-l>>3,t+8|0);o=i+8|0;Ak(s[o>>2]|0,s[e>>2]|0,s[r>>2]|0);s[o>>2]=(s[o>>2]|0)+8;Bk(t,i);Dk(i);p=u;return}}function Ok(t){t=t|0;return 536870911}function Nk(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0;s[t+12>>2]=0;s[t+16>>2]=n;do{if(e){if(e>>>0>536870911)qt();else{i=jE(e<<3)|0;break}}else i=0}while(0);s[t>>2]=i;n=i+(r<<3)|0;s[t+8>>2]=n;s[t+4>>2]=n;s[t+12>>2]=i+(e<<3);return}function Bk(t,e){t=t|0;e=e|0;var r=0,n=0,i=0,a=0,o=0;n=s[t>>2]|0;o=t+4|0;a=e+4|0;i=(s[o>>2]|0)-n|0;r=(s[a>>2]|0)+(0-(i>>3)<<3)|0;s[a>>2]=r;if((i|0)>0){iP(r|0,n|0,i|0)|0;n=a;r=s[a>>2]|0}else n=a;a=s[t>>2]|0;s[t>>2]=r;s[n>>2]=a;a=e+8|0;i=s[o>>2]|0;s[o>>2]=s[a>>2];s[a>>2]=i;a=t+8|0;o=e+12|0;t=s[a>>2]|0;s[a>>2]=s[o>>2];s[o>>2]=t;s[e>>2]=s[n>>2];return}function Dk(t){t=t|0;var e=0,r=0,n=0;e=s[t+4>>2]|0;r=t+8|0;n=s[r>>2]|0;if((n|0)!=(e|0))s[r>>2]=n+(~((n+-8-e|0)>>>3)<<3);t=s[t>>2]|0;if(t|0)$E(t);return}function Ik(t){t=t|0;zk(t);return}function Fk(t){t=t|0;Wk(t+24|0);return}function Wk(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~((e+-8-n|0)>>>3)<<3);$E(r)}return}function zk(t){t=t|0;var e=0;e=Qo()|0;ru(t,1,12,e,Uk()|0,2);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function Uk(){return 1896}function Hk(t,e,r){t=t|0;e=e|0;r=r|0;Gk(s[(Yk(t)|0)>>2]|0,e,r);return}function Yk(t){t=t|0;return(s[(Pk()|0)+24>>2]|0)+(t<<3)|0}function Gk(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,s=0;n=p;p=p+16|0;s=n+4|0;i=n;Xk(s,e);e=Vk(s,e)|0;zl(i,r);r=Ul(i,r)|0;gM[t&31](e,r);Hl(i);p=n;return}function Xk(t,e){t=t|0;e=e|0;return}function Vk(t,e){t=t|0;e=e|0;return jk(e)|0}function jk(t){t=t|0;return t|0}function qk(){var t=0;if(!(n[8080]|0)){$k(11040);Dt(70,11040,_|0)|0;t=8080;s[t>>2]=1;s[t+4>>2]=0}if(!(Ko(11040)|0))$k(11040);return 11040}function $k(t){t=t|0;Zk(t);ly(t,71);return}function Kk(t){t=t|0;Jk(t+24|0);return}function Jk(t){t=t|0;var e=0,r=0,n=0;r=s[t>>2]|0;n=r;if(r|0){t=t+4|0;e=s[t>>2]|0;if((e|0)!=(r|0))s[t>>2]=e+(~((e+-8-n|0)>>>3)<<3);$E(r)}return}function Zk(t){t=t|0;var e=0;e=Qo()|0;ru(t,5,7,e,rx()|0,0);s[t+24>>2]=0;s[t+28>>2]=0;s[t+32>>2]=0;return}function Qk(t){t=t|0;tx(t);return}function tx(t){t=t|0;ex(t);return}function ex(t){t=t|0;n[t+8>>0]=1;return}function rx(){return 1936}function nx(){return ix()|0}function ix(){var t=0,e=0,r=0,n=0,i=0,a=0,o=0;e=p;p=p+16|0;i=e+4|0;o=e;r=zS(8)|0;t=r;a=t+4|0;s[a>>2]=jE(1)|0;n=jE(8)|0;a=s[a>>2]|0;s[o>>2]=0;s[i>>2]=s[o>>2];sx(n,a,i);s[r>>2]=n;p=e;return t|0}function sx(t,e,r){t=t|0;e=e|0;r=r|0;s[t>>2]=e;r=jE(16)|0;s[r+4>>2]=0;s[r+8>>2]=0;s[r>>2]=1916;s[r+12>>2]=e;s[t+4>>2]=r;return}function ax(t){t=t|0;UE(t);$E(t);return}function ox(t){t=t|0;t=s[t+12>>2]|0;if(t|0)$E(t);return}function ux(t){t=t|0;$E(t);return}function lx(){var t=0;if(!(n[8088]|0)){vx(11076);Dt(25,11076,_|0)|0;t=8088;s[t>>2]=1;s[t+4>>2]=0}return 11076}function hx(t,e){t=t|0;e=e|0;s[t>>2]=cx()|0;s[t+4>>2]=fx()|0;s[t+12>>2]=e;s[t+8>>2]=dx()|0;s[t+32>>2]=10;return}function cx(){return 11745}function fx(){return 1940}function dx(){return Hv()|0}function px(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;if((zv(n,896)|0)==512){if(r|0){gx(r);$E(r)}}else if(e|0)$E(e);return}function gx(t){t=t|0;t=s[t+4>>2]|0;if(t|0)XE(t);return}function vx(t){t=t|0;Mu(t);return}function _x(t,e){t=t|0;e=e|0;s[t>>2]=e;return}function mx(t){t=t|0;return s[t>>2]|0}function yx(t){t=t|0;return n[s[t>>2]>>0]|0}function bx(t,e){t=t|0;e=e|0;var r=0,n=0;r=p;p=p+16|0;n=r;s[n>>2]=s[t>>2];wx(e,n)|0;p=r;return}function wx(t,e){t=t|0;e=e|0;var r=0;r=Cx(s[t>>2]|0,e)|0;e=t+4|0;s[(s[e>>2]|0)+8>>2]=r;return s[(s[e>>2]|0)+8>>2]|0}function Cx(t,e){t=t|0;e=e|0;var r=0,n=0;r=p;p=p+16|0;n=r;Sx(n);t=wa(t)|0;e=Tx(t,s[e>>2]|0)|0;kx(n);p=r;return e|0}function Sx(t){t=t|0;s[t>>2]=s[2701];s[t+4>>2]=s[2703];return}function Tx(t,e){t=t|0;e=e|0;var r=0;r=Ta(xx()|0)|0;return ie(0,r|0,t|0,$w(e)|0)|0}function kx(t){t=t|0;tT(s[t>>2]|0,s[t+4>>2]|0);return}function xx(){var t=0;if(!(n[8096]|0)){Ex(11120);t=8096;s[t>>2]=1;s[t+4>>2]=0}return 11120}function Ex(t){t=t|0;Da(t,Px()|0,1);return}function Px(){return 1948}function Mx(){Rx();return}function Rx(){var t=0,e=0,r=0,i=0,o=0,u=0,l=0,h=0,c=0,f=0,d=0,g=0,v=0,_=0,m=0,y=0;m=p;p=p+16|0;d=m+4|0;g=m;Ot(65536,10804,s[2702]|0,10812);r=kw()|0;e=s[r>>2]|0;t=s[e>>2]|0;if(t|0){i=s[r+8>>2]|0;r=s[r+4>>2]|0;while(1){Ut(t|0,a[r>>0]|0|0,n[i>>0]|0);e=e+4|0;t=s[e>>2]|0;if(!t)break;else{i=i+1|0;r=r+1|0}}}t=Ew()|0;e=s[t>>2]|0;if(e|0)do{Ht(e|0,s[t+4>>2]|0);t=t+8|0;e=s[t>>2]|0}while((e|0)!=0);Ht(Ax()|0,5167);f=cw()|0;t=s[f>>2]|0;t:do{if(t|0){do{Lx(s[t+4>>2]|0);t=s[t>>2]|0}while((t|0)!=0);t=s[f>>2]|0;if(t|0){c=f;do{while(1){o=t;t=s[t>>2]|0;o=s[o+4>>2]|0;if(!(Ox(o)|0))break;s[g>>2]=c;s[d>>2]=s[g>>2];Nx(f,d)|0;if(!t)break t}Bx(o);c=s[c>>2]|0;e=Dx(o)|0;u=Kt()|0;l=p;p=p+((1*(e<<2)|0)+15&-16)|0;h=p;p=p+((1*(e<<2)|0)+15&-16)|0;e=s[(PC(o)|0)>>2]|0;if(e|0){r=l;i=h;while(1){s[r>>2]=s[(xC(s[e+4>>2]|0)|0)>>2];s[i>>2]=s[e+8>>2];e=s[e>>2]|0;if(!e)break;else{r=r+4|0;i=i+4|0}}}y=xC(o)|0;e=Ix(o)|0;r=Dx(o)|0;i=Fx(o)|0;Vt(y|0,e|0,l|0,h|0,r|0,i|0,Cw(o)|0);Bt(u|0)}while((t|0)!=0)}}}while(0);t=s[(Tw()|0)>>2]|0;if(t|0)do{y=t+4|0;f=Aw(y)|0;o=Dw(f)|0;u=Lw(f)|0;l=(Ow(f)|0)+1|0;h=Wx(f)|0;c=zx(y)|0;f=Ko(f)|0;d=Fw(y)|0;g=Ux(y)|0;Gt(0,o|0,u|0,l|0,h|0,c|0,f|0,d|0,g|0,Hx(y)|0);t=s[t>>2]|0}while((t|0)!=0);t=s[(cw()|0)>>2]|0;t:do{if(t|0){e:while(1){e=s[t+4>>2]|0;if(e|0?(v=s[(xC(e)|0)>>2]|0,_=s[(AC(e)|0)>>2]|0,_|0):0){r=_;do{e=r+4|0;i=Aw(e)|0;r:do{if(i|0)switch(Ko(i)|0){case 0:break e;case 4:case 3:case 2:{h=Dw(i)|0;c=Lw(i)|0;f=(Ow(i)|0)+1|0;d=Wx(i)|0;g=Ko(i)|0;y=Fw(e)|0;Gt(v|0,h|0,c|0,f|0,d|0,0,g|0,y|0,Ux(e)|0,Hx(e)|0);break r}case 1:{l=Dw(i)|0;h=Lw(i)|0;c=(Ow(i)|0)+1|0;f=Wx(i)|0;d=zx(e)|0;g=Ko(i)|0;y=Fw(e)|0;Gt(v|0,l|0,h|0,c|0,f|0,d|0,g|0,y|0,Ux(e)|0,Hx(e)|0);break r}case 5:{f=Dw(i)|0;d=Lw(i)|0;g=(Ow(i)|0)+1|0;y=Wx(i)|0;Gt(v|0,f|0,d|0,g|0,y|0,Yx(i)|0,Ko(i)|0,0,0,0);break r}default:break r}}while(0);r=s[r>>2]|0}while((r|0)!=0)}t=s[t>>2]|0;if(!t)break t}qt()}}while(0);jt();p=m;return}function Ax(){return 11703}function Lx(t){t=t|0;n[t+40>>0]=0;return}function Ox(t){t=t|0;return(n[t+40>>0]|0)!=0|0}function Nx(t,e){t=t|0;e=e|0;e=Gx(e)|0;t=s[e>>2]|0;s[e>>2]=s[t>>2];$E(t);return s[e>>2]|0}function Bx(t){t=t|0;n[t+40>>0]=1;return}function Dx(t){t=t|0;return s[t+20>>2]|0}function Ix(t){t=t|0;return s[t+8>>2]|0}function Fx(t){t=t|0;return s[t+32>>2]|0}function Wx(t){t=t|0;return s[t+4>>2]|0}function zx(t){t=t|0;return s[t+4>>2]|0}function Ux(t){t=t|0;return s[t+8>>2]|0}function Hx(t){t=t|0;return s[t+16>>2]|0}function Yx(t){t=t|0;return s[t+20>>2]|0}function Gx(t){t=t|0;return s[t>>2]|0}function Xx(t){t=t|0;var e=0,r=0,n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0,d=0,g=0,v=0,_=0,m=0,y=0,b=0,w=0,C=0,S=0;S=p;p=p+16|0;d=S;do{if(t>>>0<245){h=t>>>0<11?16:t+11&-8;t=h>>>3;f=s[2783]|0;r=f>>>t;if(r&3|0){e=(r&1^1)+t|0;t=11172+(e<<1<<2)|0;r=t+8|0;n=s[r>>2]|0;i=n+8|0;a=s[i>>2]|0;if((t|0)==(a|0))s[2783]=f&~(1<<e);else{s[a+12>>2]=t;s[r>>2]=a}C=e<<3;s[n+4>>2]=C|3;C=n+C+4|0;s[C>>2]=s[C>>2]|1;C=i;p=S;return C|0}c=s[2785]|0;if(h>>>0>c>>>0){if(r|0){e=2<<t;e=r<<t&(e|0-e);e=(e&0-e)+-1|0;o=e>>>12&16;e=e>>>o;r=e>>>5&8;e=e>>>r;i=e>>>2&4;e=e>>>i;t=e>>>1&2;e=e>>>t;n=e>>>1&1;n=(r|o|i|t|n)+(e>>>n)|0;e=11172+(n<<1<<2)|0;t=e+8|0;i=s[t>>2]|0;o=i+8|0;r=s[o>>2]|0;if((e|0)==(r|0)){t=f&~(1<<n);s[2783]=t}else{s[r+12>>2]=e;s[t>>2]=r;t=f}a=(n<<3)-h|0;s[i+4>>2]=h|3;n=i+h|0;s[n+4>>2]=a|1;s[n+a>>2]=a;if(c|0){i=s[2788]|0;e=c>>>3;r=11172+(e<<1<<2)|0;e=1<<e;if(!(t&e)){s[2783]=t|e;e=r;t=r+8|0}else{t=r+8|0;e=s[t>>2]|0}s[t>>2]=i;s[e+12>>2]=i;s[i+8>>2]=e;s[i+12>>2]=r}s[2785]=a;s[2788]=n;C=o;p=S;return C|0}u=s[2784]|0;if(u){r=(u&0-u)+-1|0;o=r>>>12&16;r=r>>>o;a=r>>>5&8;r=r>>>a;l=r>>>2&4;r=r>>>l;n=r>>>1&2;r=r>>>n;t=r>>>1&1;t=s[11436+((a|o|l|n|t)+(r>>>t)<<2)>>2]|0;r=(s[t+4>>2]&-8)-h|0;n=s[t+16+(((s[t+16>>2]|0)==0&1)<<2)>>2]|0;if(!n){l=t;a=r}else{do{o=(s[n+4>>2]&-8)-h|0;l=o>>>0<r>>>0;r=l?o:r;t=l?n:t;n=s[n+16+(((s[n+16>>2]|0)==0&1)<<2)>>2]|0}while((n|0)!=0);l=t;a=r}o=l+h|0;if(l>>>0<o>>>0){i=s[l+24>>2]|0;e=s[l+12>>2]|0;do{if((e|0)==(l|0)){t=l+20|0;e=s[t>>2]|0;if(!e){t=l+16|0;e=s[t>>2]|0;if(!e){r=0;break}}while(1){r=e+20|0;n=s[r>>2]|0;if(n|0){e=n;t=r;continue}r=e+16|0;n=s[r>>2]|0;if(!n)break;else{e=n;t=r}}s[t>>2]=0;r=e}else{r=s[l+8>>2]|0;s[r+12>>2]=e;s[e+8>>2]=r;r=e}}while(0);do{if(i|0){e=s[l+28>>2]|0;t=11436+(e<<2)|0;if((l|0)==(s[t>>2]|0)){s[t>>2]=r;if(!r){s[2784]=u&~(1<<e);break}}else{s[i+16+(((s[i+16>>2]|0)!=(l|0)&1)<<2)>>2]=r;if(!r)break}s[r+24>>2]=i;e=s[l+16>>2]|0;if(e|0){s[r+16>>2]=e;s[e+24>>2]=r}e=s[l+20>>2]|0;if(e|0){s[r+20>>2]=e;s[e+24>>2]=r}}}while(0);if(a>>>0<16){C=a+h|0;s[l+4>>2]=C|3;C=l+C+4|0;s[C>>2]=s[C>>2]|1}else{s[l+4>>2]=h|3;s[o+4>>2]=a|1;s[o+a>>2]=a;if(c|0){n=s[2788]|0;e=c>>>3;r=11172+(e<<1<<2)|0;e=1<<e;if(!(f&e)){s[2783]=f|e;e=r;t=r+8|0}else{t=r+8|0;e=s[t>>2]|0}s[t>>2]=n;s[e+12>>2]=n;s[n+8>>2]=e;s[n+12>>2]=r}s[2785]=a;s[2788]=o}C=l+8|0;p=S;return C|0}else f=h}else f=h}else f=h}else if(t>>>0<=4294967231){t=t+11|0;h=t&-8;l=s[2784]|0;if(l){n=0-h|0;t=t>>>8;if(t){if(h>>>0>16777215)u=31;else{f=(t+1048320|0)>>>16&8;w=t<<f;c=(w+520192|0)>>>16&4;w=w<<c;u=(w+245760|0)>>>16&2;u=14-(c|f|u)+(w<<u>>>15)|0;u=h>>>(u+7|0)&1|u<<1}}else u=0;r=s[11436+(u<<2)>>2]|0;t:do{if(!r){r=0;t=0;w=57}else{t=0;o=h<<((u|0)==31?0:25-(u>>>1)|0);a=0;while(1){i=(s[r+4>>2]&-8)-h|0;if(i>>>0<n>>>0)if(!i){t=r;n=0;i=r;w=61;break t}else{t=r;n=i}i=s[r+20>>2]|0;r=s[r+16+(o>>>31<<2)>>2]|0;a=(i|0)==0|(i|0)==(r|0)?a:i;i=(r|0)==0;if(i){r=a;w=57;break}else o=o<<((i^1)&1)}}}while(0);if((w|0)==57){if((r|0)==0&(t|0)==0){t=2<<u;t=l&(t|0-t);if(!t){f=h;break}f=(t&0-t)+-1|0;o=f>>>12&16;f=f>>>o;a=f>>>5&8;f=f>>>a;u=f>>>2&4;f=f>>>u;c=f>>>1&2;f=f>>>c;r=f>>>1&1;t=0;r=s[11436+((a|o|u|c|r)+(f>>>r)<<2)>>2]|0}if(!r){u=t;o=n}else{i=r;w=61}}if((w|0)==61)while(1){w=0;r=(s[i+4>>2]&-8)-h|0;f=r>>>0<n>>>0;r=f?r:n;t=f?i:t;i=s[i+16+(((s[i+16>>2]|0)==0&1)<<2)>>2]|0;if(!i){u=t;o=r;break}else{n=r;w=61}}if((u|0)!=0?o>>>0<((s[2785]|0)-h|0)>>>0:0){a=u+h|0;if(u>>>0>=a>>>0){C=0;p=S;return C|0}i=s[u+24>>2]|0;e=s[u+12>>2]|0;do{if((e|0)==(u|0)){t=u+20|0;e=s[t>>2]|0;if(!e){t=u+16|0;e=s[t>>2]|0;if(!e){e=0;break}}while(1){r=e+20|0;n=s[r>>2]|0;if(n|0){e=n;t=r;continue}r=e+16|0;n=s[r>>2]|0;if(!n)break;else{e=n;t=r}}s[t>>2]=0}else{C=s[u+8>>2]|0;s[C+12>>2]=e;s[e+8>>2]=C}}while(0);do{if(i){t=s[u+28>>2]|0;r=11436+(t<<2)|0;if((u|0)==(s[r>>2]|0)){s[r>>2]=e;if(!e){n=l&~(1<<t);s[2784]=n;break}}else{s[i+16+(((s[i+16>>2]|0)!=(u|0)&1)<<2)>>2]=e;if(!e){n=l;break}}s[e+24>>2]=i;t=s[u+16>>2]|0;if(t|0){s[e+16>>2]=t;s[t+24>>2]=e}t=s[u+20>>2]|0;if(t){s[e+20>>2]=t;s[t+24>>2]=e;n=l}else n=l}else n=l}while(0);do{if(o>>>0>=16){s[u+4>>2]=h|3;s[a+4>>2]=o|1;s[a+o>>2]=o;e=o>>>3;if(o>>>0<256){r=11172+(e<<1<<2)|0;t=s[2783]|0;e=1<<e;if(!(t&e)){s[2783]=t|e;e=r;t=r+8|0}else{t=r+8|0;e=s[t>>2]|0}s[t>>2]=a;s[e+12>>2]=a;s[a+8>>2]=e;s[a+12>>2]=r;break}e=o>>>8;if(e){if(o>>>0>16777215)e=31;else{w=(e+1048320|0)>>>16&8;C=e<<w;b=(C+520192|0)>>>16&4;C=C<<b;e=(C+245760|0)>>>16&2;e=14-(b|w|e)+(C<<e>>>15)|0;e=o>>>(e+7|0)&1|e<<1}}else e=0;r=11436+(e<<2)|0;s[a+28>>2]=e;t=a+16|0;s[t+4>>2]=0;s[t>>2]=0;t=1<<e;if(!(n&t)){s[2784]=n|t;s[r>>2]=a;s[a+24>>2]=r;s[a+12>>2]=a;s[a+8>>2]=a;break}t=o<<((e|0)==31?0:25-(e>>>1)|0);r=s[r>>2]|0;while(1){if((s[r+4>>2]&-8|0)==(o|0)){w=97;break}n=r+16+(t>>>31<<2)|0;e=s[n>>2]|0;if(!e){w=96;break}else{t=t<<1;r=e}}if((w|0)==96){s[n>>2]=a;s[a+24>>2]=r;s[a+12>>2]=a;s[a+8>>2]=a;break}else if((w|0)==97){w=r+8|0;C=s[w>>2]|0;s[C+12>>2]=a;s[w>>2]=a;s[a+8>>2]=C;s[a+12>>2]=r;s[a+24>>2]=0;break}}else{C=o+h|0;s[u+4>>2]=C|3;C=u+C+4|0;s[C>>2]=s[C>>2]|1}}while(0);C=u+8|0;p=S;return C|0}else f=h}else f=h}else f=-1}while(0);r=s[2785]|0;if(r>>>0>=f>>>0){e=r-f|0;t=s[2788]|0;if(e>>>0>15){C=t+f|0;s[2788]=C;s[2785]=e;s[C+4>>2]=e|1;s[C+e>>2]=e;s[t+4>>2]=f|3}else{s[2785]=0;s[2788]=0;s[t+4>>2]=r|3;C=t+r+4|0;s[C>>2]=s[C>>2]|1}C=t+8|0;p=S;return C|0}o=s[2786]|0;if(o>>>0>f>>>0){b=o-f|0;s[2786]=b;C=s[2789]|0;w=C+f|0;s[2789]=w;s[w+4>>2]=b|1;s[C+4>>2]=f|3;C=C+8|0;p=S;return C|0}if(!(s[2901]|0)){s[2903]=4096;s[2902]=4096;s[2904]=-1;s[2905]=-1;s[2906]=0;s[2894]=0;t=d&-16^1431655768;s[d>>2]=t;s[2901]=t;t=4096}else t=s[2903]|0;u=f+48|0;l=f+47|0;a=t+l|0;i=0-t|0;h=a&i;if(h>>>0<=f>>>0){C=0;p=S;return C|0}t=s[2893]|0;if(t|0?(c=s[2891]|0,d=c+h|0,d>>>0<=c>>>0|d>>>0>t>>>0):0){C=0;p=S;return C|0}t:do{if(!(s[2894]&4)){r=s[2789]|0;e:do{if(r){n=11580;while(1){t=s[n>>2]|0;if(t>>>0<=r>>>0?(_=n+4|0,(t+(s[_>>2]|0)|0)>>>0>r>>>0):0)break;t=s[n+8>>2]|0;if(!t){w=118;break e}else n=t}e=a-o&i;if(e>>>0<2147483647){t=uP(e|0)|0;if((t|0)==((s[n>>2]|0)+(s[_>>2]|0)|0)){if((t|0)!=(-1|0)){o=e;a=t;w=135;break t}}else{n=t;w=126}}else e=0}else w=118}while(0);do{if((w|0)==118){r=uP(0)|0;if((r|0)!=(-1|0)?(e=r,g=s[2902]|0,v=g+-1|0,e=((v&e|0)==0?0:(v+e&0-g)-e|0)+h|0,g=s[2891]|0,v=e+g|0,e>>>0>f>>>0&e>>>0<2147483647):0){_=s[2893]|0;if(_|0?v>>>0<=g>>>0|v>>>0>_>>>0:0){e=0;break}t=uP(e|0)|0;if((t|0)==(r|0)){o=e;a=r;w=135;break t}else{n=t;w=126}}else e=0}}while(0);do{if((w|0)==126){r=0-e|0;if(!(u>>>0>e>>>0&(e>>>0<2147483647&(n|0)!=(-1|0))))if((n|0)==(-1|0)){e=0;break}else{o=e;a=n;w=135;break t}t=s[2903]|0;t=l-e+t&0-t;if(t>>>0>=2147483647){o=e;a=n;w=135;break t}if((uP(t|0)|0)==(-1|0)){uP(r|0)|0;e=0;break}else{o=t+e|0;a=n;w=135;break t}}}while(0);s[2894]=s[2894]|4;w=133}else{e=0;w=133}}while(0);if(((w|0)==133?h>>>0<2147483647:0)?(b=uP(h|0)|0,_=uP(0)|0,m=_-b|0,y=m>>>0>(f+40|0)>>>0,!((b|0)==(-1|0)|y^1|b>>>0<_>>>0&((b|0)!=(-1|0)&(_|0)!=(-1|0))^1)):0){o=y?m:e;a=b;w=135}if((w|0)==135){e=(s[2891]|0)+o|0;s[2891]=e;if(e>>>0>(s[2892]|0)>>>0)s[2892]=e;l=s[2789]|0;do{if(l){e=11580;while(1){t=s[e>>2]|0;r=e+4|0;n=s[r>>2]|0;if((a|0)==(t+n|0)){w=145;break}i=s[e+8>>2]|0;if(!i)break;else e=i}if(((w|0)==145?(s[e+12>>2]&8|0)==0:0)?l>>>0<a>>>0&l>>>0>=t>>>0:0){s[r>>2]=n+o;C=l+8|0;C=(C&7|0)==0?0:0-C&7;w=l+C|0;C=(s[2786]|0)+(o-C)|0;s[2789]=w;s[2786]=C;s[w+4>>2]=C|1;s[w+C+4>>2]=40;s[2790]=s[2905];break}if(a>>>0<(s[2787]|0)>>>0)s[2787]=a;r=a+o|0;e=11580;while(1){if((s[e>>2]|0)==(r|0)){w=153;break}t=s[e+8>>2]|0;if(!t)break;else e=t}if((w|0)==153?(s[e+12>>2]&8|0)==0:0){s[e>>2]=a;c=e+4|0;s[c>>2]=(s[c>>2]|0)+o;c=a+8|0;c=a+((c&7|0)==0?0:0-c&7)|0;e=r+8|0;e=r+((e&7|0)==0?0:0-e&7)|0;h=c+f|0;u=e-c-f|0;s[c+4>>2]=f|3;do{if((e|0)!=(l|0)){if((e|0)==(s[2788]|0)){C=(s[2785]|0)+u|0;s[2785]=C;s[2788]=h;s[h+4>>2]=C|1;s[h+C>>2]=C;break}t=s[e+4>>2]|0;if((t&3|0)==1){o=t&-8;n=t>>>3;t:do{if(t>>>0<256){t=s[e+8>>2]|0;r=s[e+12>>2]|0;if((r|0)==(t|0)){s[2783]=s[2783]&~(1<<n);break}else{s[t+12>>2]=r;s[r+8>>2]=t;break}}else{a=s[e+24>>2]|0;t=s[e+12>>2]|0;do{if((t|0)==(e|0)){n=e+16|0;r=n+4|0;t=s[r>>2]|0;if(!t){t=s[n>>2]|0;if(!t){t=0;break}else r=n}while(1){n=t+20|0;i=s[n>>2]|0;if(i|0){t=i;r=n;continue}n=t+16|0;i=s[n>>2]|0;if(!i)break;else{t=i;r=n}}s[r>>2]=0}else{C=s[e+8>>2]|0;s[C+12>>2]=t;s[t+8>>2]=C}}while(0);if(!a)break;r=s[e+28>>2]|0;n=11436+(r<<2)|0;do{if((e|0)!=(s[n>>2]|0)){s[a+16+(((s[a+16>>2]|0)!=(e|0)&1)<<2)>>2]=t;if(!t)break t}else{s[n>>2]=t;if(t|0)break;s[2784]=s[2784]&~(1<<r);break t}}while(0);s[t+24>>2]=a;r=e+16|0;n=s[r>>2]|0;if(n|0){s[t+16>>2]=n;s[n+24>>2]=t}r=s[r+4>>2]|0;if(!r)break;s[t+20>>2]=r;s[r+24>>2]=t}}while(0);e=e+o|0;i=o+u|0}else i=u;e=e+4|0;s[e>>2]=s[e>>2]&-2;s[h+4>>2]=i|1;s[h+i>>2]=i;e=i>>>3;if(i>>>0<256){r=11172+(e<<1<<2)|0;t=s[2783]|0;e=1<<e;if(!(t&e)){s[2783]=t|e;e=r;t=r+8|0}else{t=r+8|0;e=s[t>>2]|0}s[t>>2]=h;s[e+12>>2]=h;s[h+8>>2]=e;s[h+12>>2]=r;break}e=i>>>8;do{if(!e)e=0;else{if(i>>>0>16777215){e=31;break}w=(e+1048320|0)>>>16&8;C=e<<w;b=(C+520192|0)>>>16&4;C=C<<b;e=(C+245760|0)>>>16&2;e=14-(b|w|e)+(C<<e>>>15)|0;e=i>>>(e+7|0)&1|e<<1}}while(0);n=11436+(e<<2)|0;s[h+28>>2]=e;t=h+16|0;s[t+4>>2]=0;s[t>>2]=0;t=s[2784]|0;r=1<<e;if(!(t&r)){s[2784]=t|r;s[n>>2]=h;s[h+24>>2]=n;s[h+12>>2]=h;s[h+8>>2]=h;break}t=i<<((e|0)==31?0:25-(e>>>1)|0);r=s[n>>2]|0;while(1){if((s[r+4>>2]&-8|0)==(i|0)){w=194;break}n=r+16+(t>>>31<<2)|0;e=s[n>>2]|0;if(!e){w=193;break}else{t=t<<1;r=e}}if((w|0)==193){s[n>>2]=h;s[h+24>>2]=r;s[h+12>>2]=h;s[h+8>>2]=h;break}else if((w|0)==194){w=r+8|0;C=s[w>>2]|0;s[C+12>>2]=h;s[w>>2]=h;s[h+8>>2]=C;s[h+12>>2]=r;s[h+24>>2]=0;break}}else{C=(s[2786]|0)+u|0;s[2786]=C;s[2789]=h;s[h+4>>2]=C|1}}while(0);C=c+8|0;p=S;return C|0}e=11580;while(1){t=s[e>>2]|0;if(t>>>0<=l>>>0?(C=t+(s[e+4>>2]|0)|0,C>>>0>l>>>0):0)break;e=s[e+8>>2]|0}i=C+-47|0;t=i+8|0;t=i+((t&7|0)==0?0:0-t&7)|0;i=l+16|0;t=t>>>0<i>>>0?l:t;e=t+8|0;r=a+8|0;r=(r&7|0)==0?0:0-r&7;w=a+r|0;r=o+-40-r|0;s[2789]=w;s[2786]=r;s[w+4>>2]=r|1;s[w+r+4>>2]=40;s[2790]=s[2905];r=t+4|0;s[r>>2]=27;s[e>>2]=s[2895];s[e+4>>2]=s[2896];s[e+8>>2]=s[2897];s[e+12>>2]=s[2898];s[2895]=a;s[2896]=o;s[2898]=0;s[2897]=e;e=t+24|0;do{w=e;e=e+4|0;s[e>>2]=7}while((w+8|0)>>>0<C>>>0);if((t|0)!=(l|0)){a=t-l|0;s[r>>2]=s[r>>2]&-2;s[l+4>>2]=a|1;s[t>>2]=a;e=a>>>3;if(a>>>0<256){r=11172+(e<<1<<2)|0;t=s[2783]|0;e=1<<e;if(!(t&e)){s[2783]=t|e;e=r;t=r+8|0}else{t=r+8|0;e=s[t>>2]|0}s[t>>2]=l;s[e+12>>2]=l;s[l+8>>2]=e;s[l+12>>2]=r;break}e=a>>>8;if(e){if(a>>>0>16777215)r=31;else{w=(e+1048320|0)>>>16&8;C=e<<w;b=(C+520192|0)>>>16&4;C=C<<b;r=(C+245760|0)>>>16&2;r=14-(b|w|r)+(C<<r>>>15)|0;r=a>>>(r+7|0)&1|r<<1}}else r=0;n=11436+(r<<2)|0;s[l+28>>2]=r;s[l+20>>2]=0;s[i>>2]=0;e=s[2784]|0;t=1<<r;if(!(e&t)){s[2784]=e|t;s[n>>2]=l;s[l+24>>2]=n;s[l+12>>2]=l;s[l+8>>2]=l;break}t=a<<((r|0)==31?0:25-(r>>>1)|0);r=s[n>>2]|0;while(1){if((s[r+4>>2]&-8|0)==(a|0)){w=216;break}n=r+16+(t>>>31<<2)|0;e=s[n>>2]|0;if(!e){w=215;break}else{t=t<<1;r=e}}if((w|0)==215){s[n>>2]=l;s[l+24>>2]=r;s[l+12>>2]=l;s[l+8>>2]=l;break}else if((w|0)==216){w=r+8|0;C=s[w>>2]|0;s[C+12>>2]=l;s[w>>2]=l;s[l+8>>2]=C;s[l+12>>2]=r;s[l+24>>2]=0;break}}}else{C=s[2787]|0;if((C|0)==0|a>>>0<C>>>0)s[2787]=a;s[2895]=a;s[2896]=o;s[2898]=0;s[2792]=s[2901];s[2791]=-1;e=0;do{C=11172+(e<<1<<2)|0;s[C+12>>2]=C;s[C+8>>2]=C;e=e+1|0}while((e|0)!=32);C=a+8|0;C=(C&7|0)==0?0:0-C&7;w=a+C|0;C=o+-40-C|0;s[2789]=w;s[2786]=C;s[w+4>>2]=C|1;s[w+C+4>>2]=40;s[2790]=s[2905]}}while(0);e=s[2786]|0;if(e>>>0>f>>>0){b=e-f|0;s[2786]=b;C=s[2789]|0;w=C+f|0;s[2789]=w;s[w+4>>2]=b|1;s[C+4>>2]=f|3;C=C+8|0;p=S;return C|0}}s[(Zx()|0)>>2]=12;C=0;p=S;return C|0}function Vx(t){t=t|0;var e=0,r=0,n=0,i=0,a=0,o=0,u=0,l=0;if(!t)return;r=t+-8|0;i=s[2787]|0;t=s[t+-4>>2]|0;e=t&-8;l=r+e|0;do{if(!(t&1)){n=s[r>>2]|0;if(!(t&3))return;o=r+(0-n)|0;a=n+e|0;if(o>>>0<i>>>0)return;if((o|0)==(s[2788]|0)){t=l+4|0;e=s[t>>2]|0;if((e&3|0)!=3){u=o;e=a;break}s[2785]=a;s[t>>2]=e&-2;s[o+4>>2]=a|1;s[o+a>>2]=a;return}r=n>>>3;if(n>>>0<256){t=s[o+8>>2]|0;e=s[o+12>>2]|0;if((e|0)==(t|0)){s[2783]=s[2783]&~(1<<r);u=o;e=a;break}else{s[t+12>>2]=e;s[e+8>>2]=t;u=o;e=a;break}}i=s[o+24>>2]|0;t=s[o+12>>2]|0;do{if((t|0)==(o|0)){r=o+16|0;e=r+4|0;t=s[e>>2]|0;if(!t){t=s[r>>2]|0;if(!t){t=0;break}else e=r}while(1){r=t+20|0;n=s[r>>2]|0;if(n|0){t=n;e=r;continue}r=t+16|0;n=s[r>>2]|0;if(!n)break;else{t=n;e=r}}s[e>>2]=0}else{u=s[o+8>>2]|0;s[u+12>>2]=t;s[t+8>>2]=u}}while(0);if(i){e=s[o+28>>2]|0;r=11436+(e<<2)|0;if((o|0)==(s[r>>2]|0)){s[r>>2]=t;if(!t){s[2784]=s[2784]&~(1<<e);u=o;e=a;break}}else{s[i+16+(((s[i+16>>2]|0)!=(o|0)&1)<<2)>>2]=t;if(!t){u=o;e=a;break}}s[t+24>>2]=i;e=o+16|0;r=s[e>>2]|0;if(r|0){s[t+16>>2]=r;s[r+24>>2]=t}e=s[e+4>>2]|0;if(e){s[t+20>>2]=e;s[e+24>>2]=t;u=o;e=a}else{u=o;e=a}}else{u=o;e=a}}else{u=r;o=r}}while(0);if(o>>>0>=l>>>0)return;t=l+4|0;n=s[t>>2]|0;if(!(n&1))return;if(!(n&2)){t=s[2788]|0;if((l|0)==(s[2789]|0)){l=(s[2786]|0)+e|0;s[2786]=l;s[2789]=u;s[u+4>>2]=l|1;if((u|0)!=(t|0))return;s[2788]=0;s[2785]=0;return}if((l|0)==(t|0)){l=(s[2785]|0)+e|0;s[2785]=l;s[2788]=o;s[u+4>>2]=l|1;s[o+l>>2]=l;return}i=(n&-8)+e|0;r=n>>>3;do{if(n>>>0<256){e=s[l+8>>2]|0;t=s[l+12>>2]|0;if((t|0)==(e|0)){s[2783]=s[2783]&~(1<<r);break}else{s[e+12>>2]=t;s[t+8>>2]=e;break}}else{a=s[l+24>>2]|0;t=s[l+12>>2]|0;do{if((t|0)==(l|0)){r=l+16|0;e=r+4|0;t=s[e>>2]|0;if(!t){t=s[r>>2]|0;if(!t){r=0;break}else e=r}while(1){r=t+20|0;n=s[r>>2]|0;if(n|0){t=n;e=r;continue}r=t+16|0;n=s[r>>2]|0;if(!n)break;else{t=n;e=r}}s[e>>2]=0;r=t}else{r=s[l+8>>2]|0;s[r+12>>2]=t;s[t+8>>2]=r;r=t}}while(0);if(a|0){t=s[l+28>>2]|0;e=11436+(t<<2)|0;if((l|0)==(s[e>>2]|0)){s[e>>2]=r;if(!r){s[2784]=s[2784]&~(1<<t);break}}else{s[a+16+(((s[a+16>>2]|0)!=(l|0)&1)<<2)>>2]=r;if(!r)break}s[r+24>>2]=a;t=l+16|0;e=s[t>>2]|0;if(e|0){s[r+16>>2]=e;s[e+24>>2]=r}t=s[t+4>>2]|0;if(t|0){s[r+20>>2]=t;s[t+24>>2]=r}}}}while(0);s[u+4>>2]=i|1;s[o+i>>2]=i;if((u|0)==(s[2788]|0)){s[2785]=i;return}}else{s[t>>2]=n&-2;s[u+4>>2]=e|1;s[o+e>>2]=e;i=e}t=i>>>3;if(i>>>0<256){r=11172+(t<<1<<2)|0;e=s[2783]|0;t=1<<t;if(!(e&t)){s[2783]=e|t;t=r;e=r+8|0}else{e=r+8|0;t=s[e>>2]|0}s[e>>2]=u;s[t+12>>2]=u;s[u+8>>2]=t;s[u+12>>2]=r;return}t=i>>>8;if(t){if(i>>>0>16777215)t=31;else{o=(t+1048320|0)>>>16&8;l=t<<o;a=(l+520192|0)>>>16&4;l=l<<a;t=(l+245760|0)>>>16&2;t=14-(a|o|t)+(l<<t>>>15)|0;t=i>>>(t+7|0)&1|t<<1}}else t=0;n=11436+(t<<2)|0;s[u+28>>2]=t;s[u+20>>2]=0;s[u+16>>2]=0;e=s[2784]|0;r=1<<t;do{if(e&r){e=i<<((t|0)==31?0:25-(t>>>1)|0);r=s[n>>2]|0;while(1){if((s[r+4>>2]&-8|0)==(i|0)){t=73;break}n=r+16+(e>>>31<<2)|0;t=s[n>>2]|0;if(!t){t=72;break}else{e=e<<1;r=t}}if((t|0)==72){s[n>>2]=u;s[u+24>>2]=r;s[u+12>>2]=u;s[u+8>>2]=u;break}else if((t|0)==73){o=r+8|0;l=s[o>>2]|0;s[l+12>>2]=u;s[o>>2]=u;s[u+8>>2]=l;s[u+12>>2]=r;s[u+24>>2]=0;break}}else{s[2784]=e|r;s[n>>2]=u;s[u+24>>2]=n;s[u+12>>2]=u;s[u+8>>2]=u}}while(0);l=(s[2791]|0)+-1|0;s[2791]=l;if(!l)t=11588;else return;while(1){t=s[t>>2]|0;if(!t)break;else t=t+8|0}s[2791]=-1;return}function jx(){return 11628}function qx(t){t=t|0;var e=0,r=0;e=p;p=p+16|0;r=e;s[r>>2]=eE(s[t+60>>2]|0)|0;t=Jx(ae(6,r|0)|0)|0;p=e;return t|0}function $x(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0,d=0,g=0;f=p;p=p+48|0;h=f+16|0;a=f;i=f+32|0;u=t+28|0;n=s[u>>2]|0;s[i>>2]=n;l=t+20|0;n=(s[l>>2]|0)-n|0;s[i+4>>2]=n;s[i+8>>2]=e;s[i+12>>2]=r;n=n+r|0;o=t+60|0;s[a>>2]=s[o>>2];s[a+4>>2]=i;s[a+8>>2]=2;a=Jx(le(146,a|0)|0)|0;t:do{if((n|0)!=(a|0)){e=2;while(1){if((a|0)<0)break;n=n-a|0;g=s[i+4>>2]|0;d=a>>>0>g>>>0;i=d?i+8|0:i;e=(d<<31>>31)+e|0;g=a-(d?g:0)|0;s[i>>2]=(s[i>>2]|0)+g;d=i+4|0;s[d>>2]=(s[d>>2]|0)-g;s[h>>2]=s[o>>2];s[h+4>>2]=i;s[h+8>>2]=e;a=Jx(le(146,h|0)|0)|0;if((n|0)==(a|0)){c=3;break t}}s[t+16>>2]=0;s[u>>2]=0;s[l>>2]=0;s[t>>2]=s[t>>2]|32;if((e|0)==2)r=0;else r=r-(s[i+4>>2]|0)|0}else c=3}while(0);if((c|0)==3){g=s[t+44>>2]|0;s[t+16>>2]=g+(s[t+48>>2]|0);s[u>>2]=g;s[l>>2]=g}p=f;return r|0}function Kx(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0;i=p;p=p+32|0;a=i;n=i+20|0;s[a>>2]=s[t+60>>2];s[a+4>>2]=0;s[a+8>>2]=e;s[a+12>>2]=n;s[a+16>>2]=r;if((Jx(ue(140,a|0)|0)|0)<0){s[n>>2]=-1;t=-1}else t=s[n>>2]|0;p=i;return t|0}function Jx(t){t=t|0;if(t>>>0>4294963200){s[(Zx()|0)>>2]=0-t;t=-1}return t|0}function Zx(){return(Qx()|0)+64|0}function Qx(){return tE()|0}function tE(){return 2084}function eE(t){t=t|0;return t|0}function rE(t,e,r){t=t|0;e=e|0;r=r|0;var i=0,a=0;a=p;p=p+32|0;i=a;s[t+36>>2]=1;if((s[t>>2]&64|0)==0?(s[i>>2]=s[t+60>>2],s[i+4>>2]=21523,s[i+8>>2]=a+16,Jt(54,i|0)|0):0)n[t+75>>0]=-1;i=$x(t,e,r)|0;p=a;return i|0}function nE(t,e){t=t|0;e=e|0;var r=0,i=0;r=n[t>>0]|0;i=n[e>>0]|0;if(r<<24>>24==0?1:r<<24>>24!=i<<24>>24)t=i;else{do{t=t+1|0;e=e+1|0;r=n[t>>0]|0;i=n[e>>0]|0}while(!(r<<24>>24==0?1:r<<24>>24!=i<<24>>24));t=i}return(r&255)-(t&255)|0}function iE(t,e,r){t=t|0;e=e|0;r=r|0;var i=0,s=0;t:do{if(!r)t=0;else{while(1){i=n[t>>0]|0;s=n[e>>0]|0;if(i<<24>>24!=s<<24>>24)break;r=r+-1|0;if(!r){t=0;break t}else{t=t+1|0;e=e+1|0}}t=(i&255)-(s&255)|0}}while(0);return t|0}function sE(t,e,r){t=t|0;e=e|0;r=r|0;var i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0,d=0,g=0,v=0,_=0,m=0;m=p;p=p+224|0;f=m+120|0;d=m+80|0;v=m;_=m+136|0;i=d;a=i+40|0;do{s[i>>2]=0;i=i+4|0}while((i|0)<(a|0));s[f>>2]=s[r>>2];if((aE(0,e,f,v,d)|0)<0)r=-1;else{if((s[t+76>>2]|0)>-1)g=oE(t)|0;else g=0;r=s[t>>2]|0;c=r&32;if((n[t+74>>0]|0)<1)s[t>>2]=r&-33;i=t+48|0;if(!(s[i>>2]|0)){a=t+44|0;o=s[a>>2]|0;s[a>>2]=_;u=t+28|0;s[u>>2]=_;l=t+20|0;s[l>>2]=_;s[i>>2]=80;h=t+16|0;s[h>>2]=_+80;r=aE(t,e,f,v,d)|0;if(o){yM[s[t+36>>2]&7](t,0,0)|0;r=(s[l>>2]|0)==0?-1:r;s[a>>2]=o;s[i>>2]=0;s[h>>2]=0;s[u>>2]=0;s[l>>2]=0}}else r=aE(t,e,f,v,d)|0;i=s[t>>2]|0;s[t>>2]=i|c;if(g|0)uE(t);r=(i&32|0)==0?r:-1}p=m;return r|0}function aE(t,e,r,a,o){t=t|0;e=e|0;r=r|0;a=a|0;o=o|0;var u=0,l=0,c=0,f=0,d=0,g=0,v=0,_=0,m=0,y=0,b=0,w=0,C=0,S=0,T=0,k=0,x=0,E=0,P=0,R=0,A=0,L=0,O=0;O=p;p=p+64|0;P=O+16|0;R=O;x=O+24|0;A=O+8|0;L=O+20|0;s[P>>2]=e;S=(t|0)!=0;T=x+40|0;k=T;x=x+39|0;E=A+4|0;l=0;u=0;g=0;t:while(1){do{if((u|0)>-1)if((l|0)>(2147483647-u|0)){s[(Zx()|0)>>2]=75;u=-1;break}else{u=l+u|0;break}}while(0);l=n[e>>0]|0;if(!(l<<24>>24)){C=87;break}else c=e;e:while(1){switch(l<<24>>24){case 37:{l=c;C=9;break e}case 0:{l=c;break e}default:{}}w=c+1|0;s[P>>2]=w;l=n[w>>0]|0;c=w}e:do{if((C|0)==9)while(1){C=0;if((n[c+1>>0]|0)!=37)break e;l=l+1|0;c=c+2|0;s[P>>2]=c;if((n[c>>0]|0)==37)C=9;else break}}while(0);l=l-e|0;if(S)lE(t,e,l);if(l|0){e=c;continue}f=c+1|0;l=(n[f>>0]|0)+-48|0;if(l>>>0<10){w=(n[c+2>>0]|0)==36;b=w?l:-1;g=w?1:g;f=w?c+3|0:f}else b=-1;s[P>>2]=f;l=n[f>>0]|0;c=(l<<24>>24)+-32|0;e:do{if(c>>>0<32){d=0;v=l;while(1){l=1<<c;if(!(l&75913)){l=v;break e}d=l|d;f=f+1|0;s[P>>2]=f;l=n[f>>0]|0;c=(l<<24>>24)+-32|0;if(c>>>0>=32)break;else v=l}}else d=0}while(0);if(l<<24>>24==42){c=f+1|0;l=(n[c>>0]|0)+-48|0;if(l>>>0<10?(n[f+2>>0]|0)==36:0){s[o+(l<<2)>>2]=10;l=s[a+((n[c>>0]|0)+-48<<3)>>2]|0;g=1;f=f+3|0}else{if(g|0){u=-1;break}if(S){g=(s[r>>2]|0)+(4-1)&~(4-1);l=s[g>>2]|0;s[r>>2]=g+4;g=0;f=c}else{l=0;g=0;f=c}}s[P>>2]=f;w=(l|0)<0;l=w?0-l|0:l;d=w?d|8192:d}else{l=hE(P)|0;if((l|0)<0){u=-1;break}f=s[P>>2]|0}do{if((n[f>>0]|0)==46){if((n[f+1>>0]|0)!=42){s[P>>2]=f+1;c=hE(P)|0;f=s[P>>2]|0;break}v=f+2|0;c=(n[v>>0]|0)+-48|0;if(c>>>0<10?(n[f+3>>0]|0)==36:0){s[o+(c<<2)>>2]=10;c=s[a+((n[v>>0]|0)+-48<<3)>>2]|0;f=f+4|0;s[P>>2]=f;break}if(g|0){u=-1;break t}if(S){w=(s[r>>2]|0)+(4-1)&~(4-1);c=s[w>>2]|0;s[r>>2]=w+4}else c=0;s[P>>2]=v;f=v}else c=-1}while(0);y=0;while(1){if(((n[f>>0]|0)+-65|0)>>>0>57){u=-1;break t}w=f+1|0;s[P>>2]=w;v=n[(n[f>>0]|0)+-65+(5178+(y*58|0))>>0]|0;_=v&255;if((_+-1|0)>>>0<8){y=_;f=w}else break}if(!(v<<24>>24)){u=-1;break}m=(b|0)>-1;do{if(v<<24>>24==19){if(m){u=-1;break t}else C=49}else{if(m){s[o+(b<<2)>>2]=_;m=a+(b<<3)|0;b=s[m+4>>2]|0;C=R;s[C>>2]=s[m>>2];s[C+4>>2]=b;C=49;break}if(!S){u=0;break t}cE(R,_,r)}}while(0);if((C|0)==49?(C=0,!S):0){l=0;e=w;continue}f=n[f>>0]|0;f=(y|0)!=0&(f&15|0)==3?f&-33:f;m=d&-65537;b=(d&8192|0)==0?d:m;e:do{switch(f|0){case 110:switch((y&255)<<24>>24){case 0:{s[s[R>>2]>>2]=u;l=0;e=w;continue t}case 1:{s[s[R>>2]>>2]=u;l=0;e=w;continue t}case 2:{l=s[R>>2]|0;s[l>>2]=u;s[l+4>>2]=((u|0)<0)<<31>>31;l=0;e=w;continue t}case 3:{i[s[R>>2]>>1]=u;l=0;e=w;continue t}case 4:{n[s[R>>2]>>0]=u;l=0;e=w;continue t}case 6:{s[s[R>>2]>>2]=u;l=0;e=w;continue t}case 7:{l=s[R>>2]|0;s[l>>2]=u;s[l+4>>2]=((u|0)<0)<<31>>31;l=0;e=w;continue t}default:{l=0;e=w;continue t}}case 112:{f=120;c=c>>>0>8?c:8;e=b|8;C=61;break}case 88:case 120:{e=b;C=61;break}case 111:{f=R;e=s[f>>2]|0;f=s[f+4>>2]|0;_=dE(e,f,T)|0;m=k-_|0;d=0;v=5642;c=(b&8|0)==0|(c|0)>(m|0)?c:m+1|0;m=b;C=67;break}case 105:case 100:{f=R;e=s[f>>2]|0;f=s[f+4>>2]|0;if((f|0)<0){e=QE(0,0,e|0,f|0)|0;f=M;d=R;s[d>>2]=e;s[d+4>>2]=f;d=1;v=5642;C=66;break e}else{d=(b&2049|0)!=0&1;v=(b&2048|0)==0?(b&1|0)==0?5642:5644:5643;C=66;break e}}case 117:{f=R;d=0;v=5642;e=s[f>>2]|0;f=s[f+4>>2]|0;C=66;break}case 99:{n[x>>0]=s[R>>2];e=x;d=0;v=5642;_=T;f=1;c=m;break}case 109:{f=gE(s[(Zx()|0)>>2]|0)|0;C=71;break}case 115:{f=s[R>>2]|0;f=f|0?f:5652;C=71;break}case 67:{s[A>>2]=s[R>>2];s[E>>2]=0;s[R>>2]=A;_=-1;f=A;C=75;break}case 83:{e=s[R>>2]|0;if(!c){_E(t,32,l,0,b);e=0;C=84}else{_=c;f=e;C=75}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{l=yE(t,+h[R>>3],l,c,b,f)|0;e=w;continue t}default:{d=0;v=5642;_=T;f=c;c=b}}}while(0);e:do{if((C|0)==61){b=R;y=s[b>>2]|0;b=s[b+4>>2]|0;_=fE(y,b,T,f&32)|0;v=(e&8|0)==0|(y|0)==0&(b|0)==0;d=v?0:2;v=v?5642:5642+(f>>4)|0;m=e;e=y;f=b;C=67}else if((C|0)==66){_=pE(e,f,T)|0;m=b;C=67}else if((C|0)==71){C=0;b=vE(f,0,c)|0;y=(b|0)==0;e=f;d=0;v=5642;_=y?f+c|0:b;f=y?c:b-f|0;c=m}else if((C|0)==75){C=0;v=f;e=0;c=0;while(1){d=s[v>>2]|0;if(!d)break;c=mE(L,d)|0;if((c|0)<0|c>>>0>(_-e|0)>>>0)break;e=c+e|0;if(_>>>0>e>>>0)v=v+4|0;else break}if((c|0)<0){u=-1;break t}_E(t,32,l,e,b);if(!e){e=0;C=84}else{d=0;while(1){c=s[f>>2]|0;if(!c){C=84;break e}c=mE(L,c)|0;d=c+d|0;if((d|0)>(e|0)){C=84;break e}lE(t,L,c);if(d>>>0>=e>>>0){C=84;break}else f=f+4|0}}}}while(0);if((C|0)==67){C=0;f=(e|0)!=0|(f|0)!=0;b=(c|0)!=0|f;f=((f^1)&1)+(k-_)|0;e=b?_:T;_=T;f=b?(c|0)>(f|0)?c:f:c;c=(c|0)>-1?m&-65537:m}else if((C|0)==84){C=0;_E(t,32,l,e,b^8192);l=(l|0)>(e|0)?l:e;e=w;continue}y=_-e|0;m=(f|0)<(y|0)?y:f;b=m+d|0;l=(l|0)<(b|0)?b:l;_E(t,32,l,b,c);lE(t,v,d);_E(t,48,l,b,c^65536);_E(t,48,m,y,0);lE(t,e,y);_E(t,32,l,b,c^8192);e=w}t:do{if((C|0)==87)if(!t)if(!g)u=0;else{u=1;while(1){e=s[o+(u<<2)>>2]|0;if(!e)break;cE(a+(u<<3)|0,e,r);u=u+1|0;if((u|0)>=10){u=1;break t}}while(1){if(s[o+(u<<2)>>2]|0){u=-1;break t}u=u+1|0;if((u|0)>=10){u=1;break}}}}while(0);p=O;return u|0}function oE(t){t=t|0;return 0}function uE(t){t=t|0;return}function lE(t,e,r){t=t|0;e=e|0;r=r|0;if(!(s[t>>2]&32))AE(e,r,t)|0;return}function hE(t){t=t|0;var e=0,r=0,i=0;r=s[t>>2]|0;i=(n[r>>0]|0)+-48|0;if(i>>>0<10){e=0;do{e=i+(e*10|0)|0;r=r+1|0;s[t>>2]=r;i=(n[r>>0]|0)+-48|0}while(i>>>0<10)}else e=0;return e|0}function cE(t,e,r){t=t|0;e=e|0;r=r|0;var n=0,i=0,a=0.0;t:do{if(e>>>0<=20)do{switch(e|0){case 9:{n=(s[r>>2]|0)+(4-1)&~(4-1);e=s[n>>2]|0;s[r>>2]=n+4;s[t>>2]=e;break t}case 10:{n=(s[r>>2]|0)+(4-1)&~(4-1);e=s[n>>2]|0;s[r>>2]=n+4;n=t;s[n>>2]=e;s[n+4>>2]=((e|0)<0)<<31>>31;break t}case 11:{n=(s[r>>2]|0)+(4-1)&~(4-1);e=s[n>>2]|0;s[r>>2]=n+4;n=t;s[n>>2]=e;s[n+4>>2]=0;break t}case 12:{n=(s[r>>2]|0)+(8-1)&~(8-1);e=n;i=s[e>>2]|0;e=s[e+4>>2]|0;s[r>>2]=n+8;n=t;s[n>>2]=i;s[n+4>>2]=e;break t}case 13:{i=(s[r>>2]|0)+(4-1)&~(4-1);n=s[i>>2]|0;s[r>>2]=i+4;n=(n&65535)<<16>>16;i=t;s[i>>2]=n;s[i+4>>2]=((n|0)<0)<<31>>31;break t}case 14:{i=(s[r>>2]|0)+(4-1)&~(4-1);n=s[i>>2]|0;s[r>>2]=i+4;i=t;s[i>>2]=n&65535;s[i+4>>2]=0;break t}case 15:{i=(s[r>>2]|0)+(4-1)&~(4-1);n=s[i>>2]|0;s[r>>2]=i+4;n=(n&255)<<24>>24;i=t;s[i>>2]=n;s[i+4>>2]=((n|0)<0)<<31>>31;break t}case 16:{i=(s[r>>2]|0)+(4-1)&~(4-1);n=s[i>>2]|0;s[r>>2]=i+4;i=t;s[i>>2]=n&255;s[i+4>>2]=0;break t}case 17:{i=(s[r>>2]|0)+(8-1)&~(8-1);a=+h[i>>3];s[r>>2]=i+8;h[t>>3]=a;break t}case 18:{i=(s[r>>2]|0)+(8-1)&~(8-1);a=+h[i>>3];s[r>>2]=i+8;h[t>>3]=a;break t}default:break t}}while(0)}while(0);return}function fE(t,e,r,i){t=t|0;e=e|0;r=r|0;i=i|0;if(!((t|0)==0&(e|0)==0))do{r=r+-1|0;n[r>>0]=a[5694+(t&15)>>0]|0|i;t=nP(t|0,e|0,4)|0;e=M}while(!((t|0)==0&(e|0)==0));return r|0}function dE(t,e,r){t=t|0;e=e|0;r=r|0;if(!((t|0)==0&(e|0)==0))do{r=r+-1|0;n[r>>0]=t&7|48;t=nP(t|0,e|0,3)|0;e=M}while(!((t|0)==0&(e|0)==0));return r|0}function pE(t,e,r){t=t|0;e=e|0;r=r|0;var i=0;if(e>>>0>0|(e|0)==0&t>>>0>4294967295){while(1){i=hP(t|0,e|0,10,0)|0;r=r+-1|0;n[r>>0]=i&255|48;i=t;t=oP(t|0,e|0,10,0)|0;if(!(e>>>0>9|(e|0)==9&i>>>0>4294967295))break;else e=M}e=t}else e=t;if(e)while(1){r=r+-1|0;n[r>>0]=(e>>>0)%10|0|48;if(e>>>0<10)break;else e=(e>>>0)/10|0}return r|0}function gE(t){t=t|0;return xE(t,s[(kE()|0)+188>>2]|0)|0}function vE(t,e,r){t=t|0;e=e|0;r=r|0;var i=0,a=0,o=0,u=0;o=e&255;i=(r|0)!=0;t:do{if(i&(t&3|0)!=0){a=e&255;while(1){if((n[t>>0]|0)==a<<24>>24){u=6;break t}t=t+1|0;r=r+-1|0;i=(r|0)!=0;if(!(i&(t&3|0)!=0)){u=5;break}}}else u=5}while(0);if((u|0)==5)if(i)u=6;else r=0;t:do{if((u|0)==6){a=e&255;if((n[t>>0]|0)!=a<<24>>24){i=G(o,16843009)|0;e:do{if(r>>>0>3)while(1){o=s[t>>2]^i;if((o&-2139062144^-2139062144)&o+-16843009|0)break;t=t+4|0;r=r+-4|0;if(r>>>0<=3){u=11;break e}}else u=11}while(0);if((u|0)==11)if(!r){r=0;break}while(1){if((n[t>>0]|0)==a<<24>>24)break t;t=t+1|0;r=r+-1|0;if(!r){r=0;break}}}}}while(0);return(r|0?t:0)|0}function _E(t,e,r,n,i){t=t|0;e=e|0;r=r|0;n=n|0;i=i|0;var s=0,a=0;a=p;p=p+256|0;s=a;if((r|0)>(n|0)&(i&73728|0)==0){i=r-n|0;eP(s|0,e|0,(i>>>0<256?i:256)|0)|0;if(i>>>0>255){e=r-n|0;do{lE(t,s,256);i=i+-256|0}while(i>>>0>255);i=e&255}lE(t,s,i)}p=a;return}function mE(t,e){t=t|0;e=e|0;if(!t)t=0;else t=SE(t,e,0)|0;return t|0}function yE(t,e,r,i,o,u){t=t|0;e=+e;r=r|0;i=i|0;o=o|0;u=u|0;var l=0,h=0,c=0,f=0,d=0,g=0,v=0,_=0.0,m=0,y=0,b=0,w=0,C=0,S=0,T=0,k=0,x=0,E=0,P=0,R=0,A=0,L=0,O=0;O=p;p=p+560|0;c=O+8|0;b=O;L=O+524|0;A=L;f=O+512|0;s[b>>2]=0;R=f+12|0;bE(e)|0;if((M|0)<0){e=-e;E=1;x=5659}else{E=(o&2049|0)!=0&1;x=(o&2048|0)==0?(o&1|0)==0?5660:5665:5662}bE(e)|0;P=M&2146435072;do{if(P>>>0<2146435072|(P|0)==2146435072&0<0){_=+wE(e,b)*2.0;l=_!=0.0;if(l)s[b>>2]=(s[b>>2]|0)+-1;C=u|32;if((C|0)==97){m=u&32;v=(m|0)==0?x:x+9|0;g=E|2;l=12-i|0;do{if(!(i>>>0>11|(l|0)==0)){e=8.0;do{l=l+-1|0;e=e*16.0}while((l|0)!=0);if((n[v>>0]|0)==45){e=-(e+(-_-e));break}else{e=_+e-e;break}}else e=_}while(0);h=s[b>>2]|0;l=(h|0)<0?0-h|0:h;l=pE(l,((l|0)<0)<<31>>31,R)|0;if((l|0)==(R|0)){l=f+11|0;n[l>>0]=48}n[l+-1>>0]=(h>>31&2)+43;d=l+-2|0;n[d>>0]=u+15;f=(i|0)<1;c=(o&8|0)==0;l=L;do{P=~~e;h=l+1|0;n[l>>0]=a[5694+P>>0]|m;e=(e-+(P|0))*16.0;if((h-A|0)==1?!(c&(f&e==0.0)):0){n[h>>0]=46;l=l+2|0}else l=h}while(e!=0.0);P=l-A|0;A=R-d|0;R=(i|0)!=0&(P+-2|0)<(i|0)?i+2|0:P;l=A+g+R|0;_E(t,32,r,l,o);lE(t,v,g);_E(t,48,r,l,o^65536);lE(t,L,P);_E(t,48,R-P|0,0,0);lE(t,d,A);_E(t,32,r,l,o^8192);break}h=(i|0)<0?6:i;if(l){l=(s[b>>2]|0)+-28|0;s[b>>2]=l;e=_*268435456.0}else{e=_;l=s[b>>2]|0}P=(l|0)<0?c:c+288|0;c=P;do{T=~~e>>>0;s[c>>2]=T;c=c+4|0;e=(e-+(T>>>0))*1.0e9}while(e!=0.0);if((l|0)>0){f=P;g=c;while(1){d=(l|0)<29?l:29;l=g+-4|0;if(l>>>0>=f>>>0){c=0;do{S=rP(s[l>>2]|0,0,d|0)|0;S=tP(S|0,M|0,c|0,0)|0;T=M;w=hP(S|0,T|0,1e9,0)|0;s[l>>2]=w;c=oP(S|0,T|0,1e9,0)|0;l=l+-4|0}while(l>>>0>=f>>>0);if(c){f=f+-4|0;s[f>>2]=c}}c=g;while(1){if(c>>>0<=f>>>0)break;l=c+-4|0;if(!(s[l>>2]|0))c=l;else break}l=(s[b>>2]|0)-d|0;s[b>>2]=l;if((l|0)>0)g=c;else break}}else f=P;if((l|0)<0){i=((h+25|0)/9|0)+1|0;y=(C|0)==102;do{m=0-l|0;m=(m|0)<9?m:9;if(f>>>0<c>>>0){d=(1<<m)+-1|0;g=1e9>>>m;v=0;l=f;do{T=s[l>>2]|0;s[l>>2]=(T>>>m)+v;v=G(T&d,g)|0;l=l+4|0}while(l>>>0<c>>>0);l=(s[f>>2]|0)==0?f+4|0:f;if(!v){f=l;l=c}else{s[c>>2]=v;f=l;l=c+4|0}}else{f=(s[f>>2]|0)==0?f+4|0:f;l=c}c=y?P:f;c=(l-c>>2|0)>(i|0)?c+(i<<2)|0:l;l=(s[b>>2]|0)+m|0;s[b>>2]=l}while((l|0)<0);l=f;i=c}else{l=f;i=c}T=P;if(l>>>0<i>>>0){c=(T-l>>2)*9|0;d=s[l>>2]|0;if(d>>>0>=10){f=10;do{f=f*10|0;c=c+1|0}while(d>>>0>=f>>>0)}}else c=0;y=(C|0)==103;w=(h|0)!=0;f=h-((C|0)!=102?c:0)+((w&y)<<31>>31)|0;if((f|0)<(((i-T>>2)*9|0)+-9|0)){f=f+9216|0;m=P+4+(((f|0)/9|0)+-1024<<2)|0;f=((f|0)%9|0)+1|0;if((f|0)<9){d=10;do{d=d*10|0;f=f+1|0}while((f|0)!=9)}else d=10;g=s[m>>2]|0;v=(g>>>0)%(d>>>0)|0;f=(m+4|0)==(i|0);if(!(f&(v|0)==0)){_=(((g>>>0)/(d>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;S=(d|0)/2|0;e=v>>>0<S>>>0?.5:f&(v|0)==(S|0)?1.0:1.5;if(E){S=(n[x>>0]|0)==45;e=S?-e:e;_=S?-_:_}f=g-v|0;s[m>>2]=f;if(_+e!=_){S=f+d|0;s[m>>2]=S;if(S>>>0>999999999){c=m;while(1){f=c+-4|0;s[c>>2]=0;if(f>>>0<l>>>0){l=l+-4|0;s[l>>2]=0}S=(s[f>>2]|0)+1|0;s[f>>2]=S;if(S>>>0>999999999)c=f;else break}}else f=m;c=(T-l>>2)*9|0;g=s[l>>2]|0;if(g>>>0>=10){d=10;do{d=d*10|0;c=c+1|0}while(g>>>0>=d>>>0)}}else f=m}else f=m;f=f+4|0;f=i>>>0>f>>>0?f:i;S=l}else{f=i;S=l}C=f;while(1){if(C>>>0<=S>>>0){b=0;break}l=C+-4|0;if(!(s[l>>2]|0))C=l;else{b=1;break}}i=0-c|0;do{if(y){l=((w^1)&1)+h|0;if((l|0)>(c|0)&(c|0)>-5){d=u+-1|0;h=l+-1-c|0}else{d=u+-2|0;h=l+-1|0}l=o&8;if(!l){if(b?(k=s[C+-4>>2]|0,(k|0)!=0):0){if(!((k>>>0)%10|0)){f=0;l=10;do{l=l*10|0;f=f+1|0}while(!((k>>>0)%(l>>>0)|0|0))}else f=0}else f=9;l=((C-T>>2)*9|0)+-9|0;if((d|32|0)==102){m=l-f|0;m=(m|0)>0?m:0;h=(h|0)<(m|0)?h:m;m=0;break}else{m=l+c-f|0;m=(m|0)>0?m:0;h=(h|0)<(m|0)?h:m;m=0;break}}else m=l}else{d=u;m=o&8}}while(0);y=h|m;g=(y|0)!=0&1;v=(d|32|0)==102;if(v){w=0;l=(c|0)>0?c:0}else{l=(c|0)<0?i:c;l=pE(l,((l|0)<0)<<31>>31,R)|0;f=R;if((f-l|0)<2)do{l=l+-1|0;n[l>>0]=48}while((f-l|0)<2);n[l+-1>>0]=(c>>31&2)+43;l=l+-2|0;n[l>>0]=d;w=l;l=f-l|0}l=E+1+h+g+l|0;_E(t,32,r,l,o);lE(t,x,E);_E(t,48,r,l,o^65536);if(v){d=S>>>0>P>>>0?P:S;m=L+9|0;g=m;v=L+8|0;f=d;do{c=pE(s[f>>2]|0,0,m)|0;if((f|0)==(d|0)){if((c|0)==(m|0)){n[v>>0]=48;c=v}}else if(c>>>0>L>>>0){eP(L|0,48,c-A|0)|0;do{c=c+-1|0}while(c>>>0>L>>>0)}lE(t,c,g-c|0);f=f+4|0}while(f>>>0<=P>>>0);if(y|0)lE(t,5710,1);if(f>>>0<C>>>0&(h|0)>0)while(1){c=pE(s[f>>2]|0,0,m)|0;if(c>>>0>L>>>0){eP(L|0,48,c-A|0)|0;do{c=c+-1|0}while(c>>>0>L>>>0)}lE(t,c,(h|0)<9?h:9);f=f+4|0;c=h+-9|0;if(!(f>>>0<C>>>0&(h|0)>9)){h=c;break}else h=c}_E(t,48,h+9|0,9,0)}else{y=b?C:S+4|0;if((h|0)>-1){b=L+9|0;m=(m|0)==0;i=b;g=0-A|0;v=L+8|0;d=S;do{c=pE(s[d>>2]|0,0,b)|0;if((c|0)==(b|0)){n[v>>0]=48;c=v}do{if((d|0)==(S|0)){f=c+1|0;lE(t,c,1);if(m&(h|0)<1){c=f;break}lE(t,5710,1);c=f}else{if(c>>>0<=L>>>0)break;eP(L|0,48,c+g|0)|0;do{c=c+-1|0}while(c>>>0>L>>>0)}}while(0);A=i-c|0;lE(t,c,(h|0)>(A|0)?A:h);h=h-A|0;d=d+4|0}while(d>>>0<y>>>0&(h|0)>-1)}_E(t,48,h+18|0,18,0);lE(t,w,R-w|0)}_E(t,32,r,l,o^8192)}else{L=(u&32|0)!=0;l=E+3|0;_E(t,32,r,l,o&-65537);lE(t,x,E);lE(t,e!=e|0.0!=0.0?L?5686:5690:L?5678:5682,3);_E(t,32,r,l,o^8192)}}while(0);p=O;return((l|0)<(r|0)?r:l)|0}function bE(t){t=+t;var e=0;h[f>>3]=t;e=s[f>>2]|0;M=s[f+4>>2]|0;return e|0}function wE(t,e){t=+t;e=e|0;return+ +CE(t,e)}function CE(t,e){t=+t;e=e|0;var r=0,n=0,i=0;h[f>>3]=t;r=s[f>>2]|0;n=s[f+4>>2]|0;i=nP(r|0,n|0,52)|0;switch(i&2047){case 0:{if(t!=0.0){t=+CE(t*18446744073709551616.0,e);r=(s[e>>2]|0)+-64|0}else r=0;s[e>>2]=r;break}case 2047:break;default:{s[e>>2]=(i&2047)+-1022;s[f>>2]=r;s[f+4>>2]=n&-2146435073|1071644672;t=+h[f>>3]}}return+t}function SE(t,e,r){t=t|0;e=e|0;r=r|0;do{if(t){if(e>>>0<128){n[t>>0]=e;t=1;break}if(!(s[s[(TE()|0)+188>>2]>>2]|0))if((e&-128|0)==57216){n[t>>0]=e;t=1;break}else{s[(Zx()|0)>>2]=84;t=-1;break}if(e>>>0<2048){n[t>>0]=e>>>6|192;n[t+1>>0]=e&63|128;t=2;break}if(e>>>0<55296|(e&-8192|0)==57344){n[t>>0]=e>>>12|224;n[t+1>>0]=e>>>6&63|128;n[t+2>>0]=e&63|128;t=3;break}if((e+-65536|0)>>>0<1048576){n[t>>0]=e>>>18|240;n[t+1>>0]=e>>>12&63|128;n[t+2>>0]=e>>>6&63|128;n[t+3>>0]=e&63|128;t=4;break}else{s[(Zx()|0)>>2]=84;t=-1;break}}else t=1}while(0);return t|0}function TE(){return tE()|0}function kE(){return tE()|0}function xE(t,e){t=t|0;e=e|0;var r=0,i=0;i=0;while(1){if((a[5712+i>>0]|0)==(t|0)){t=2;break}r=i+1|0;if((r|0)==87){r=5800;i=87;t=5;break}else i=r}if((t|0)==2)if(!i)r=5800;else{r=5800;t=5}if((t|0)==5)while(1){do{t=r;r=r+1|0}while((n[t>>0]|0)!=0);i=i+-1|0;if(!i)break;else t=5}return EE(r,s[e+20>>2]|0)|0}function EE(t,e){t=t|0;e=e|0;return PE(t,e)|0}function PE(t,e){t=t|0;e=e|0;if(!e)e=0;else e=ME(s[e>>2]|0,s[e+4>>2]|0,t)|0;return(e|0?e:t)|0}function ME(t,e,r){t=t|0;e=e|0;r=r|0;var i=0,a=0,o=0,u=0,l=0,h=0,c=0,f=0,d=0,p=0;p=(s[t>>2]|0)+1794895138|0;o=RE(s[t+8>>2]|0,p)|0;i=RE(s[t+12>>2]|0,p)|0;a=RE(s[t+16>>2]|0,p)|0;t:do{if((o>>>0<e>>>2>>>0?(d=e-(o<<2)|0,i>>>0<d>>>0&a>>>0<d>>>0):0)?((a|i)&3|0)==0:0){d=i>>>2;f=a>>>2;c=0;while(1){l=o>>>1;h=c+l|0;u=h<<1;a=u+d|0;i=RE(s[t+(a<<2)>>2]|0,p)|0;a=RE(s[t+(a+1<<2)>>2]|0,p)|0;if(!(a>>>0<e>>>0&i>>>0<(e-a|0)>>>0)){i=0;break t}if(n[t+(a+i)>>0]|0){i=0;break t}i=nE(r,t+a|0)|0;if(!i)break;i=(i|0)<0;if((o|0)==1){i=0;break t}else{c=i?c:h;o=i?l:o-l|0}}i=u+f|0;a=RE(s[t+(i<<2)>>2]|0,p)|0;i=RE(s[t+(i+1<<2)>>2]|0,p)|0;if(i>>>0<e>>>0&a>>>0<(e-i|0)>>>0)i=(n[t+(i+a)>>0]|0)==0?t+i|0:0;else i=0}else i=0}while(0);return i|0}function RE(t,e){t=t|0;e=e|0;var r=0;r=cP(t|0)|0;return((e|0)==0?t:r)|0}function AE(t,e,r){t=t|0;e=e|0;r=r|0;var i=0,a=0,o=0,u=0,l=0;i=r+16|0;a=s[i>>2]|0;if(!a){if(!(LE(r)|0)){a=s[i>>2]|0;o=5}else i=0}else o=5;t:do{if((o|0)==5){l=r+20|0;u=s[l>>2]|0;i=u;if((a-u|0)>>>0<e>>>0){i=yM[s[r+36>>2]&7](r,t,e)|0;break}e:do{if((n[r+75>>0]|0)>-1){u=e;while(1){if(!u){o=0;a=t;break e}a=u+-1|0;if((n[t+a>>0]|0)==10)break;else u=a}i=yM[s[r+36>>2]&7](r,t,u)|0;if(i>>>0<u>>>0)break t;o=u;a=t+u|0;e=e-u|0;i=s[l>>2]|0}else{o=0;a=t}}while(0);iP(i|0,a|0,e|0)|0;s[l>>2]=(s[l>>2]|0)+e;i=o+e|0}}while(0);return i|0}function LE(t){t=t|0;var e=0,r=0;e=t+74|0;r=n[e>>0]|0;n[e>>0]=r+255|r;e=s[t>>2]|0;if(!(e&8)){s[t+8>>2]=0;s[t+4>>2]=0;r=s[t+44>>2]|0;s[t+28>>2]=r;s[t+20>>2]=r;s[t+16>>2]=r+(s[t+48>>2]|0);t=0}else{s[t>>2]=e|32;t=-1}return t|0}function OE(t,e){t=q(t);e=q(e);var r=0,n=0;r=NE(t)|0;do{if((r&2147483647)>>>0<=2139095040){n=NE(e)|0;if((n&2147483647)>>>0<=2139095040)if((n^r|0)<0){t=(r|0)<0?e:t;break}else{t=t<e?e:t;break}}else t=e}while(0);return q(t)}function NE(t){t=q(t);return(l[f>>2]=t,s[f>>2]|0)|0}function BE(t,e){t=q(t);e=q(e);var r=0,n=0;r=DE(t)|0;do{if((r&2147483647)>>>0<=2139095040){n=DE(e)|0;if((n&2147483647)>>>0<=2139095040)if((n^r|0)<0){t=(r|0)<0?t:e;break}else{t=t<e?t:e;break}}else t=e}while(0);return q(t)}function DE(t){t=q(t);return(l[f>>2]=t,s[f>>2]|0)|0}function IE(t,e){t=q(t);e=q(e);var r=0,n=0,i=0,a=0,o=0,u=0,h=0,c=0;a=(l[f>>2]=t,s[f>>2]|0);u=(l[f>>2]=e,s[f>>2]|0);r=a>>>23&255;o=u>>>23&255;h=a&-2147483648;i=u<<1;t:do{if((i|0)!=0?!((r|0)==255|((FE(e)|0)&2147483647)>>>0>2139095040):0){n=a<<1;if(n>>>0<=i>>>0){e=q(t*q(0.0));return q((n|0)==(i|0)?e:t)}if(!r){r=a<<9;if((r|0)>-1){n=r;r=0;do{r=r+-1|0;n=n<<1}while((n|0)>-1)}else r=0;n=a<<1-r}else n=a&8388607|8388608;if(!o){a=u<<9;if((a|0)>-1){i=0;do{i=i+-1|0;a=a<<1}while((a|0)>-1)}else i=0;o=i;u=u<<1-i}else u=u&8388607|8388608;i=n-u|0;a=(i|0)>-1;e:do{if((r|0)>(o|0)){while(1){if(a)if(!i)break;else n=i;n=n<<1;r=r+-1|0;i=n-u|0;a=(i|0)>-1;if((r|0)<=(o|0))break e}e=q(t*q(0.0));break t}}while(0);if(a)if(!i){e=q(t*q(0.0));break}else n=i;if(n>>>0<8388608)do{n=n<<1;r=r+-1|0}while(n>>>0<8388608);if((r|0)>0)r=n+-8388608|r<<23;else r=n>>>(1-r|0);e=(s[f>>2]=r|h,q(l[f>>2]))}else c=3}while(0);if((c|0)==3){e=q(t*e);e=q(e/e)}return q(e)}function FE(t){t=q(t);return(l[f>>2]=t,s[f>>2]|0)|0}function WE(t,e){t=t|0;e=e|0;return sE(s[582]|0,t,e)|0}function zE(t){t=t|0;qt()}function UE(t){t=t|0;return}function HE(t,e){t=t|0;e=e|0;return 0}function YE(t){t=t|0;if((GE(t+4|0)|0)==-1){pM[s[(s[t>>2]|0)+8>>2]&127](t);t=1}else t=0;return t|0}function GE(t){t=t|0;var e=0;e=s[t>>2]|0;s[t>>2]=e+-1;return e+-1|0}function XE(t){t=t|0;if(YE(t)|0)VE(t);return}function VE(t){t=t|0;var e=0;e=t+8|0;if(!((s[e>>2]|0)!=0?(GE(e)|0)!=-1:0))pM[s[(s[t>>2]|0)+16>>2]&127](t);return}function jE(t){t=t|0;var e=0;e=(t|0)==0?1:t;while(1){t=Xx(e)|0;if(t|0)break;t=JE()|0;if(!t){t=0;break}LM[t&0]()}return t|0}function qE(t){t=t|0;return jE(t)|0}function $E(t){t=t|0;Vx(t);return}function KE(t){t=t|0;if((n[t+11>>0]|0)<0)$E(s[t>>2]|0);return}function JE(){var t=0;t=s[2923]|0;s[2923]=t+0;return t|0}function ZE(){}function QE(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;n=e-n-(r>>>0>t>>>0|0)>>>0;return(M=n,t-r>>>0|0)|0}function tP(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;r=t+r>>>0;return(M=e+n+(r>>>0<t>>>0|0)>>>0,r|0)|0}function eP(t,e,r){t=t|0;e=e|0;r=r|0;var i=0,a=0,o=0,u=0;o=t+r|0;e=e&255;if((r|0)>=67){while(t&3){n[t>>0]=e;t=t+1|0}i=o&-4|0;a=i-64|0;u=e|e<<8|e<<16|e<<24;while((t|0)<=(a|0)){s[t>>2]=u;s[t+4>>2]=u;s[t+8>>2]=u;s[t+12>>2]=u;s[t+16>>2]=u;s[t+20>>2]=u;s[t+24>>2]=u;s[t+28>>2]=u;s[t+32>>2]=u;s[t+36>>2]=u;s[t+40>>2]=u;s[t+44>>2]=u;s[t+48>>2]=u;s[t+52>>2]=u;s[t+56>>2]=u;s[t+60>>2]=u;t=t+64|0}while((t|0)<(i|0)){s[t>>2]=u;t=t+4|0}}while((t|0)<(o|0)){n[t>>0]=e;t=t+1|0}return o-r|0}function rP(t,e,r){t=t|0;e=e|0;r=r|0;if((r|0)<32){M=e<<r|(t&(1<<r)-1<<32-r)>>>32-r;return t<<r}M=t<<r-32;return 0}function nP(t,e,r){t=t|0;e=e|0;r=r|0;if((r|0)<32){M=e>>>r;return t>>>r|(e&(1<<r)-1)<<32-r}M=0;return e>>>r-32|0}function iP(t,e,r){t=t|0;e=e|0;r=r|0;var i=0,a=0,o=0;if((r|0)>=8192)return Yt(t|0,e|0,r|0)|0;o=t|0;a=t+r|0;if((t&3)==(e&3)){while(t&3){if(!r)return o|0;n[t>>0]=n[e>>0]|0;t=t+1|0;e=e+1|0;r=r-1|0}r=a&-4|0;i=r-64|0;while((t|0)<=(i|0)){s[t>>2]=s[e>>2];s[t+4>>2]=s[e+4>>2];s[t+8>>2]=s[e+8>>2];s[t+12>>2]=s[e+12>>2];s[t+16>>2]=s[e+16>>2];s[t+20>>2]=s[e+20>>2];s[t+24>>2]=s[e+24>>2];s[t+28>>2]=s[e+28>>2];s[t+32>>2]=s[e+32>>2];s[t+36>>2]=s[e+36>>2];s[t+40>>2]=s[e+40>>2];s[t+44>>2]=s[e+44>>2];s[t+48>>2]=s[e+48>>2];s[t+52>>2]=s[e+52>>2];s[t+56>>2]=s[e+56>>2];s[t+60>>2]=s[e+60>>2];t=t+64|0;e=e+64|0}while((t|0)<(r|0)){s[t>>2]=s[e>>2];t=t+4|0;e=e+4|0}}else{r=a-4|0;while((t|0)<(r|0)){n[t>>0]=n[e>>0]|0;n[t+1>>0]=n[e+1>>0]|0;n[t+2>>0]=n[e+2>>0]|0;n[t+3>>0]=n[e+3>>0]|0;t=t+4|0;e=e+4|0}}while((t|0)<(a|0)){n[t>>0]=n[e>>0]|0;t=t+1|0;e=e+1|0}return o|0}function sP(t){t=t|0;var e=0;e=n[v+(t&255)>>0]|0;if((e|0)<8)return e|0;e=n[v+(t>>8&255)>>0]|0;if((e|0)<8)return e+8|0;e=n[v+(t>>16&255)>>0]|0;if((e|0)<8)return e+16|0;return(n[v+(t>>>24)>>0]|0)+24|0}function aP(t,e,r,n,i){t=t|0;e=e|0;r=r|0;n=n|0;i=i|0;var a=0,o=0,u=0,l=0,h=0,c=0,f=0,d=0,p=0,g=0;c=t;l=e;h=l;o=r;d=n;u=d;if(!h){a=(i|0)!=0;if(!u){if(a){s[i>>2]=(c>>>0)%(o>>>0);s[i+4>>2]=0}d=0;i=(c>>>0)/(o>>>0)>>>0;return(M=d,i)|0}else{if(!a){d=0;i=0;return(M=d,i)|0}s[i>>2]=t|0;s[i+4>>2]=e&0;d=0;i=0;return(M=d,i)|0}}a=(u|0)==0;do{if(o){if(!a){a=(j(u|0)|0)-(j(h|0)|0)|0;if(a>>>0<=31){f=a+1|0;u=31-a|0;e=a-31>>31;o=f;t=c>>>(f>>>0)&e|h<<u;e=h>>>(f>>>0)&e;a=0;u=c<<u;break}if(!i){d=0;i=0;return(M=d,i)|0}s[i>>2]=t|0;s[i+4>>2]=l|e&0;d=0;i=0;return(M=d,i)|0}a=o-1|0;if(a&o|0){u=(j(o|0)|0)+33-(j(h|0)|0)|0;g=64-u|0;f=32-u|0;l=f>>31;p=u-32|0;e=p>>31;o=u;t=f-1>>31&h>>>(p>>>0)|(h<<f|c>>>(u>>>0))&e;e=e&h>>>(u>>>0);a=c<<g&l;u=(h<<g|c>>>(p>>>0))&l|c<<f&u-33>>31;break}if(i|0){s[i>>2]=a&c;s[i+4>>2]=0}if((o|0)==1){p=l|e&0;g=t|0|0;return(M=p,g)|0}else{g=sP(o|0)|0;p=h>>>(g>>>0)|0;g=h<<32-g|c>>>(g>>>0)|0;return(M=p,g)|0}}else{if(a){if(i|0){s[i>>2]=(h>>>0)%(o>>>0);s[i+4>>2]=0}p=0;g=(h>>>0)/(o>>>0)>>>0;return(M=p,g)|0}if(!c){if(i|0){s[i>>2]=0;s[i+4>>2]=(h>>>0)%(u>>>0)}p=0;g=(h>>>0)/(u>>>0)>>>0;return(M=p,g)|0}a=u-1|0;if(!(a&u)){if(i|0){s[i>>2]=t|0;s[i+4>>2]=a&h|e&0}p=0;g=h>>>((sP(u|0)|0)>>>0);return(M=p,g)|0}a=(j(u|0)|0)-(j(h|0)|0)|0;if(a>>>0<=30){e=a+1|0;u=31-a|0;o=e;t=h<<u|c>>>(e>>>0);e=h>>>(e>>>0);a=0;u=c<<u;break}if(!i){p=0;g=0;return(M=p,g)|0}s[i>>2]=t|0;s[i+4>>2]=l|e&0;p=0;g=0;return(M=p,g)|0}}while(0);if(!o){h=u;l=0;u=0}else{f=r|0|0;c=d|n&0;h=tP(f|0,c|0,-1,-1)|0;r=M;l=u;u=0;do{n=l;l=a>>>31|l<<1;a=u|a<<1;n=t<<1|n>>>31|0;d=t>>>31|e<<1|0;QE(h|0,r|0,n|0,d|0)|0;g=M;p=g>>31|((g|0)<0?-1:0)<<1;u=p&1;t=QE(n|0,d|0,p&f|0,(((g|0)<0?-1:0)>>31|((g|0)<0?-1:0)<<1)&c|0)|0;e=M;o=o-1|0}while((o|0)!=0);h=l;l=0}o=0;if(i|0){s[i>>2]=t;s[i+4>>2]=e}p=(a|0)>>>31|(h|o)<<1|(o<<1|a>>>31)&0|l;g=(a<<1|0>>>31)&-2|u;return(M=p,g)|0}function oP(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;return aP(t,e,r,n,0)|0}function uP(t){t=t|0;var e=0,r=0;r=t+15&-16|0;e=s[c>>2]|0;t=e+r|0;if((r|0)>0&(t|0)<(e|0)|(t|0)<0){Q()|0;Xt(12);return-1}s[c>>2]=t;if((t|0)>(Z()|0)?(J()|0)==0:0){s[c>>2]=e;Xt(12);return-1}return e|0}function lP(t,e,r){t=t|0;e=e|0;r=r|0;var i=0;if((e|0)<(t|0)&(t|0)<(e+r|0)){i=t;e=e+r|0;t=t+r|0;while((r|0)>0){t=t-1|0;e=e-1|0;r=r-1|0;n[t>>0]=n[e>>0]|0}t=i}else iP(t,e,r)|0;return t|0}function hP(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;var i=0,a=0;a=p;p=p+16|0;i=a|0;aP(t,e,r,n,i)|0;p=a;return(M=s[i+4>>2]|0,s[i>>2]|0)|0}function cP(t){t=t|0;return(t&255)<<24|(t>>8&255)<<16|(t>>16&255)<<8|t>>>24|0}function fP(t,e,r,n,i,s){t=t|0;e=e|0;r=r|0;n=n|0;i=i|0;s=s|0;hM[t&1](e|0,r|0,n|0,i|0,s|0)}function dP(t,e,r){t=t|0;e=e|0;r=q(r);cM[t&1](e|0,q(r))}function pP(t,e,r){t=t|0;e=e|0;r=+r;fM[t&31](e|0,+r)}function gP(t,e,r,n){t=t|0;e=e|0;r=q(r);n=q(n);return q(dM[t&0](e|0,q(r),q(n)))}function vP(t,e){t=t|0;e=e|0;pM[t&127](e|0)}function _P(t,e,r){t=t|0;e=e|0;r=r|0;gM[t&31](e|0,r|0)}function mP(t,e){t=t|0;e=e|0;return vM[t&31](e|0)|0}function yP(t,e,r,n,i){t=t|0;e=e|0;r=+r;n=+n;i=i|0;_M[t&1](e|0,+r,+n,i|0)}function bP(t,e,r,n){t=t|0;e=e|0;r=+r;n=+n;mM[t&1](e|0,+r,+n)}function wP(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;return yM[t&7](e|0,r|0,n|0)|0}function CP(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;return+bM[t&1](e|0,r|0,n|0)}function SP(t,e){t=t|0;e=e|0;return+wM[t&15](e|0)}function TP(t,e,r){t=t|0;e=e|0;r=+r;return CM[t&1](e|0,+r)|0}function kP(t,e,r){t=t|0;e=e|0;r=r|0;return SM[t&15](e|0,r|0)|0}function xP(t,e,r,n,i,s){t=t|0;e=e|0;r=r|0;n=+n;i=+i;s=s|0;TM[t&1](e|0,r|0,+n,+i,s|0)}function EP(t,e,r,n,i,s,a){t=t|0;e=e|0;r=r|0;n=n|0;i=i|0;s=s|0;a=a|0;kM[t&1](e|0,r|0,n|0,i|0,s|0,a|0)}function PP(t,e,r){t=t|0;e=e|0;r=r|0;return+xM[t&7](e|0,r|0)}function MP(t){t=t|0;return EM[t&7]()|0}function RP(t,e,r,n,i,s){t=t|0;e=e|0;r=r|0;n=n|0;i=i|0;s=s|0;return PM[t&1](e|0,r|0,n|0,i|0,s|0)|0}function AP(t,e,r,n,i){t=t|0;e=e|0;r=r|0;n=n|0;i=+i;MM[t&1](e|0,r|0,n|0,+i)}function LP(t,e,r,n,i,s,a){t=t|0;e=e|0;r=r|0;n=q(n);i=i|0;s=q(s);a=a|0;RM[t&1](e|0,r|0,q(n),i|0,q(s),a|0)}function OP(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;AM[t&15](e|0,r|0,n|0)}function NP(t){t=t|0;LM[t&0]()}function BP(t,e,r,n){t=t|0;e=e|0;r=r|0;n=+n;OM[t&15](e|0,r|0,+n)}function DP(t,e,r){t=t|0;e=+e;r=+r;return NM[t&1](+e,+r)|0}function IP(t,e,r,n,i){t=t|0;e=e|0;r=r|0;n=n|0;i=i|0;BM[t&15](e|0,r|0,n|0,i|0)}function FP(t,e,r,n,i){t=t|0;e=e|0;r=r|0;n=n|0;i=i|0;$(0)}function WP(t,e){t=t|0;e=q(e);$(1)}function zP(t,e){t=t|0;e=+e;$(2)}function UP(t,e,r){t=t|0;e=q(e);r=q(r);$(3);return ce}function HP(t){t=t|0;$(4)}function YP(t,e){t=t|0;e=e|0;$(5)}function GP(t){t=t|0;$(6);return 0}function XP(t,e,r,n){t=t|0;e=+e;r=+r;n=n|0;$(7)}function VP(t,e,r){t=t|0;e=+e;r=+r;$(8)}function jP(t,e,r){t=t|0;e=e|0;r=r|0;$(9);return 0}function qP(t,e,r){t=t|0;e=e|0;r=r|0;$(10);return 0.0}function $P(t){t=t|0;$(11);return 0.0}function KP(t,e){t=t|0;e=+e;$(12);return 0}function JP(t,e){t=t|0;e=e|0;$(13);return 0}function ZP(t,e,r,n,i){t=t|0;e=e|0;r=+r;n=+n;i=i|0;$(14)}function QP(t,e,r,n,i,s){t=t|0;e=e|0;r=r|0;n=n|0;i=i|0;s=s|0;$(15)}function tM(t,e){t=t|0;e=e|0;$(16);return 0.0}function eM(){$(17);return 0}function rM(t,e,r,n,i){t=t|0;e=e|0;r=r|0;n=n|0;i=i|0;$(18);return 0}function nM(t,e,r,n){t=t|0;e=e|0;r=r|0;n=+n;$(19)}function iM(t,e,r,n,i,s){t=t|0;e=e|0;r=q(r);n=n|0;i=q(i);s=s|0;$(20)}function sM(t,e,r){t=t|0;e=e|0;r=r|0;$(21)}function aM(){$(22)}function oM(t,e,r){t=t|0;e=e|0;r=+r;$(23)}function uM(t,e){t=+t;e=+e;$(24);return 0}function lM(t,e,r,n){t=t|0;e=e|0;r=r|0;n=n|0;$(25)}var hM=[FP,SC];var cM=[WP,Xi];var fM=[zP,_s,ms,ys,bs,ws,Cs,Ss,ks,xs,Ps,Ms,Rs,As,Ls,Os,Ns,Bs,Ds,zP,zP,zP,zP,zP,zP,zP,zP,zP,zP,zP,zP,zP];var dM=[UP];var pM=[HP,UE,pu,gu,vu,$f,Kf,Jf,mb,yb,bb,sC,aC,oC,ax,ox,ux,be,Ki,es,Ts,Es,Fa,Wa,$o,Tu,Hu,dl,Ol,nh,xh,Xh,cc,Oc,Zc,mf,If,_d,Dd,ep,bp,Wp,ig,xg,Gg,ov,Pv,Hi,h_,M_,J_,mm,Dm,sy,_y,by,zy,Yy,ob,Sb,xb,Vb,dw,ku,RS,dT,AT,$T,bk,Fk,Kk,Qk,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP,HP];var gM=[YP,rs,ns,as,os,us,ls,hs,cs,ps,gs,vs,Qs,ra,na,ia,sa,aa,oa,fa,va,qa,Rg,jg,Cm,OS,ww,tT,YP,YP,YP,YP];var vM=[GP,qx,$i,zs,Gs,Xs,Vs,js,qs,$s,Js,Zs,da,pa,za,Av,zm,$b,FS,zS,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP];var _M=[XP,Ua];var mM=[VP,hb];var yM=[jP,$x,Kx,rE,oh,wd,p_,QT];var bM=[qP,rf];var wM=[$P,ta,ea,ua,Ha,Ya,Ga,Xa,Va,ja,$P,$P,$P,$P,$P,$P];var CM=[KP,dy];var SM=[JP,HE,ga,eu,_l,Rh,$h,Uf,zd,cv,Vi,BT,JP,JP,JP,JP];var TM=[ZP,Vu];var kM=[QP,Tk];var xM=[tM,la,$a,Ka,Ja,Cf,tM,tM];var EM=[eM,Za,ji,zi,ky,jy,Ab,nx];var PM=[rM,Dn];var MM=[nM,Tp];var RM=[iM,ma];var AM=[sM,Us,Ks,ha,ca,Il,gc,Yp,ug,Gi,ZC,_T,Hk,sM,sM,sM];var LM=[aM];var OM=[oM,is,ss,fs,ds,Is,Fs,Ws,sp,O_,uy,oM,oM,oM,oM,oM];var NM=[uM,gb];var BM=[lM,Ic,Wv,em,$m,Ay,Qy,Fb,mw,XS,px,lM,lM,lM,lM,lM];return{_llvm_bswap_i32:cP,dynCall_idd:DP,dynCall_i:MP,_i64Subtract:QE,___udivdi3:oP,dynCall_vif:dP,setThrew:ve,dynCall_viii:OP,_bitshift64Lshr:nP,_bitshift64Shl:rP,dynCall_vi:vP,dynCall_viiddi:xP,dynCall_diii:CP,dynCall_iii:kP,_memset:eP,_sbrk:uP,_memcpy:iP,__GLOBAL__sub_I_Yoga_cpp:Wi,dynCall_vii:_P,___uremdi3:hP,dynCall_vid:pP,stackAlloc:fe,_nbind_init:Mx,getTempRet0:me,dynCall_di:SP,dynCall_iid:TP,setTempRet0:_e,_i64Add:tP,dynCall_fiff:gP,dynCall_iiii:wP,_emscripten_get_global_libc:jx,dynCall_viid:BP,dynCall_viiid:AP,dynCall_viififi:LP,dynCall_ii:mP,__GLOBAL__sub_I_Binding_cc:wS,dynCall_viiii:IP,dynCall_iiiiii:RP,stackSave:de,dynCall_viiiii:fP,__GLOBAL__sub_I_nbind_cc:Qa,dynCall_vidd:bP,_free:Vx,runPostSets:ZE,dynCall_viiiiii:EP,establishStackSpace:ge,_memmove:lP,stackRestore:pe,_malloc:Xx,__GLOBAL__sub_I_common_cc:iw,dynCall_viddi:yP,dynCall_dii:PP,dynCall_v:NP}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer);Module._llvm_bswap_i32=asm._llvm_bswap_i32,Module.getTempRet0=asm.getTempRet0,Module.___udivdi3=asm.___udivdi3,Module.setThrew=asm.setThrew,Module._bitshift64Lshr=asm._bitshift64Lshr,Module._bitshift64Shl=asm._bitshift64Shl,Module._memset=asm._memset,Module._sbrk=asm._sbrk,Module._memcpy=asm._memcpy,Module.stackAlloc=asm.stackAlloc,Module.___uremdi3=asm.___uremdi3,Module._nbind_init=asm._nbind_init,Module._i64Subtract=asm._i64Subtract,Module.setTempRet0=asm.setTempRet0,Module._i64Add=asm._i64Add,Module._emscripten_get_global_libc=asm._emscripten_get_global_libc;var __GLOBAL__sub_I_Yoga_cpp=Module.__GLOBAL__sub_I_Yoga_cpp=asm.__GLOBAL__sub_I_Yoga_cpp,__GLOBAL__sub_I_Binding_cc=Module.__GLOBAL__sub_I_Binding_cc=asm.__GLOBAL__sub_I_Binding_cc;Module.stackSave=asm.stackSave;var __GLOBAL__sub_I_nbind_cc=Module.__GLOBAL__sub_I_nbind_cc=asm.__GLOBAL__sub_I_nbind_cc,_free=Module._free=asm._free;Module.runPostSets=asm.runPostSets,Module.establishStackSpace=asm.establishStackSpace,Module._memmove=asm._memmove,Module.stackRestore=asm.stackRestore;var _malloc=Module._malloc=asm._malloc,__GLOBAL__sub_I_common_cc=Module.__GLOBAL__sub_I_common_cc=asm.__GLOBAL__sub_I_common_cc,initialStackTop;function ExitStatus(t){this.name="ExitStatus",this.message="Program terminated with exit("+t+")",this.status=t}function run(t){function e(){Module.calledRun||(Module.calledRun=!0,ABORT||(ensureInitRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),Module._main&&shouldRunNow&&Module.callMain(t),postRun()))}t=t||Module.arguments,runDependencies>0||(preRun(),runDependencies>0||Module.calledRun||(Module.setStatus?(Module.setStatus("Running..."),setTimeout((function(){setTimeout((function(){Module.setStatus("")}),1),e()}),1)):e()))}function exit(t,e){e&&Module.noExitRuntime||(Module.noExitRuntime||(ABORT=!0,STACKTOP=initialStackTop,exitRuntime(),Module.onExit&&Module.onExit(t)),ENVIRONMENT_IS_NODE&&process.exit(t),Module.quit(t,new ExitStatus(t)))}Module.dynCall_viiiii=asm.dynCall_viiiii,Module.dynCall_vif=asm.dynCall_vif,Module.dynCall_vid=asm.dynCall_vid,Module.dynCall_fiff=asm.dynCall_fiff,Module.dynCall_vi=asm.dynCall_vi,Module.dynCall_vii=asm.dynCall_vii,Module.dynCall_ii=asm.dynCall_ii,Module.dynCall_viddi=asm.dynCall_viddi,Module.dynCall_vidd=asm.dynCall_vidd,Module.dynCall_iiii=asm.dynCall_iiii,Module.dynCall_diii=asm.dynCall_diii,Module.dynCall_di=asm.dynCall_di,Module.dynCall_iid=asm.dynCall_iid,Module.dynCall_iii=asm.dynCall_iii,Module.dynCall_viiddi=asm.dynCall_viiddi,Module.dynCall_viiiiii=asm.dynCall_viiiiii,Module.dynCall_dii=asm.dynCall_dii,Module.dynCall_i=asm.dynCall_i,Module.dynCall_iiiiii=asm.dynCall_iiiiii,Module.dynCall_viiid=asm.dynCall_viiid,Module.dynCall_viififi=asm.dynCall_viififi,Module.dynCall_viii=asm.dynCall_viii,Module.dynCall_v=asm.dynCall_v,Module.dynCall_viid=asm.dynCall_viid,Module.dynCall_idd=asm.dynCall_idd,Module.dynCall_viiii=asm.dynCall_viiii,Runtime.stackAlloc=Module.stackAlloc,Runtime.stackSave=Module.stackSave,Runtime.stackRestore=Module.stackRestore,Runtime.establishStackSpace=Module.establishStackSpace,Runtime.setTempRet0=Module.setTempRet0,Runtime.getTempRet0=Module.getTempRet0,Module.asm=asm,ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus,dependenciesFulfilled=function t(){Module.calledRun||run(),Module.calledRun||(dependenciesFulfilled=t)},Module.callMain=Module.callMain=function(t){t=t||[],ensureInitRuntime();var e=t.length+1;function r(){for(var t=0;t<3;t++)n.push(0)}var n=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];r();for(var i=0;i<e-1;i+=1)n.push(allocate(intArrayFromString(t[i]),"i8",ALLOC_NORMAL)),r();n.push(0),n=allocate(n,"i32",ALLOC_NORMAL);try{exit(Module._main(e,n,0),!0)}catch(t){if(t instanceof ExitStatus)return;if("SimulateInfiniteLoop"==t)return void(Module.noExitRuntime=!0);var s=t;t&&"object"==typeof t&&t.stack&&(s=[t,t.stack]),Module.printErr("exception thrown: "+s),Module.quit(1,t)}},Module.run=Module.run=run,Module.exit=Module.exit=exit;var abortDecorators=[];function abort(t){Module.onAbort&&Module.onAbort(t),void 0!==t?(Module.print(t),Module.printErr(t),t=JSON.stringify(t)):t="",ABORT=!0;var e="abort("+t+") at "+stackTrace()+"\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";throw abortDecorators&&abortDecorators.forEach((function(r){e=r(e,t)})),e}if(Module.abort=Module.abort=abort,Module.preInit)for("function"==typeof Module.preInit&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run()},module.exports?module.exports=wrapper:(root.nbind=root.nbind||{}).init=wrapper})(nbind$1);var Yoga=entryCommon,nbind=nbind$1.exports,ran=!1,ret=null;const YOGA_TOTAL_MEMORY="number"==typeof window.YOGA_TOTAL_MEMORY?window.YOGA_TOTAL_MEMORY:268435456;if(nbind({TOTAL_MEMORY:YOGA_TOTAL_MEMORY},(function(t,e){if(!ran){if(ran=!0,t)throw t;ret=e}})),!ran)throw new Error("Failed to load the yoga module - it needed to be loaded synchronously, but didn't");var entryBrowser=Yoga(ret.bind,ret.lib);const flexDirection={row:entryBrowser.FLEX_DIRECTION_ROW,"row-reverse":entryBrowser.FLEX_DIRECTION_ROW_REVERSE,column:entryBrowser.FLEX_DIRECTION_COLUMN,"column-reverse":entryBrowser.FLEX_DIRECTION_COLUMN_REVERSE},alignContent={"flex-start":entryBrowser.ALIGN_FLEX_START,"flex-end":entryBrowser.ALIGN_FLEX_END,stretch:entryBrowser.ALIGN_STRETCH,center:entryBrowser.ALIGN_CENTER,"space-between":entryBrowser.ALIGN_SPACE_BETWEEN,"space-around":entryBrowser.ALIGN_SPACE_AROUND},flexWrap={nowrap:entryBrowser.WRAP_NO_WRAP,wrap:entryBrowser.WRAP_WRAP,"wrap-reverse":entryBrowser.WRAP_WRAP_REVERSE},justifyContent={"flex-start":entryBrowser.JUSTIFY_FLEX_START,"flex-end":entryBrowser.JUSTIFY_FLEX_END,center:entryBrowser.JUSTIFY_CENTER,"space-between":entryBrowser.JUSTIFY_SPACE_BETWEEN,"space-around":entryBrowser.JUSTIFY_SPACE_AROUND,"space-evenly":entryBrowser.JUSTIFY_SPACE_EVENLY},alignItems={stretch:entryBrowser.ALIGN_STRETCH,"flex-start":entryBrowser.ALIGN_FLEX_START,center:entryBrowser.ALIGN_CENTER,"flex-end":entryBrowser.ALIGN_FLEX_END,baseline:entryBrowser.ALIGN_BASELINE},alignSelf=Object.assign({auto:entryBrowser.ALIGN_AUTO},alignItems),StyleToYoga={flexDirection:flexDirection,flexWrap:flexWrap,justifyContent:justifyContent,alignItems:alignItems,alignContent:alignContent,alignSelf:alignSelf};class ParentData{detach(){}}class RenderObject extends AbstractNode{constructor(){super(...arguments),this.style=new StyleMap,this._size=Size$1.zero,this._offset=Point.zero,this._viewport=Rect.zero,this.offstage=!0,this._hidden=!1,this._layoutDirty=!0,this._repaintBoundary=!1,this._repaintBoundaryLocked=!1,this._needsCompositingDirty=!1,this._needsCompositing=this.repaintBoundary||this.alwaysNeedsCompositing,this._paintDirty=!0,this._debugDoingThisPaint=!1,this.hitTestDisabled=!1,this.hitTestSelfDisabled=!1}get parent(){return this._parent}trackStyle(){this.style.on("width",this.handleWidthChange,this),this.style.on("height",this.handleHeightChange,this),this.style.on("display",this.handleDisplayChange,this),this.style.on("visibility",this.handleVisibilityChange,this),this.style.has("display")&&this.handleDisplayChange(this.style.display),this.style.has("visibility")&&this.handleVisibilityChange(this.style.visibility),this.style.on("left",this.handleLeftChange,this),this.style.on("top",this.handleTopChange,this)}updateOffsetAndSizeFromStyle(){const{width:t,height:e,left:r,top:n}=this.style;"number"==typeof t&&"number"==typeof e?this.size=Size$1.fromWH(t,e):"number"==typeof t?this.size=Size$1.fromWH(t,this._size.height):"number"==typeof e&&(this.size=Size$1.fromWH(this._size.width,e)),"number"==typeof r&&"number"==typeof n?this.offset=Point.fromXY(r,n):"number"==typeof r?this.offset=Point.fromXY(r,this._offset.y):"number"==typeof n&&(this.offset=Point.fromXY(this._offset.x,n))}setupParentData(t){t.parentData instanceof ParentData||(t.parentData=new ParentData)}adoptChild(t){this.setupParentData(t),this.markLayoutDirty(),this.markNeedsCompositingDirty(),super.adoptChild(t),this.allocChildYogaNode(t)}allocChildYogaNode(t){if((this._yogaNode||t.alwaysHoldYogaNode)&&!t.yogaNode){const e=entryBrowser.Node.create();t.yogaNode=e}t.allocChildrenYogaNode()}allocChildrenYogaNode(){}dropChild(t){assert.assert(t.parentData),super.dropChild(t),t.cleanRelayoutBoundary(),t.parentData.detach(),t.parentData=void 0,this.deallocYogaNode(t),this.markLayoutDirty(),this.markNeedsCompositingDirty()}deallocYogaNode(t){const{yogaNode:e}=t;e&&(t.yogaNode=void 0,e.free()),t.deallocYogaNodeChildren()}deallocYogaNodeChildren(){}get yogaNode(){return this._yogaNode}set yogaNode(t){this._yogaNode&&this.disposeYogaNode(),this._yogaNode=t,this._yogaNode&&this.setupYogaNode()}get alwaysHoldYogaNode(){return!1}setupYogaNode(){assert.assert(this.yogaNode),this.yogaMeasure&&this.yogaNode.setMeasureFunc(this.yogaMeasure);const{style:t}=this;t.has("flexBasis")&&this.handleFlexBasisChange(t.flexBasis),t.has("flexGrow")&&this.handleFlexGrowChange(t.flexGrow),t.has("flexShrink")&&this.handleFlexShrinkChange(t.flexShrink),t.has("width")&&this.handleWidthChange(t.width),t.has("height")&&this.handleHeightChange(t.height),t.has("minWidth")&&this.handleMinWidthChange(t.minWidth),t.has("minHeight")&&this.handleMinHeightChange(t.minHeight),t.has("maxWidth")&&this.handleMaxWidthChange(t.maxWidth),t.has("maxHeight")&&this.handleMaxHeightChange(t.maxHeight),t.has("paddingTop")&&this.handlePaddingTopChange(t.paddingTop),t.has("paddingRight")&&this.handlePaddingRightChange(t.paddingRight),t.has("paddingBottom")&&this.handlePaddingBottomChange(t.paddingBottom),t.has("paddingLeft")&&this.handlePaddingLeftChange(t.paddingLeft),t.has("marginTop")&&this.handleMarginTopChange(t.marginTop),t.has("marginRight")&&this.handleMarginRightChange(t.marginRight),t.has("marginBottom")&&this.handleMarginBottomChange(t.marginBottom),t.has("marginLeft")&&this.handleMarginLeftChange(t.marginLeft),t.has("display")&&this.handleDisplayChange(t.display),t.has("position")&&this.handlePositionChange(t.position),t.has("right")&&this.handleRightChange(t.right),t.has("bottom")&&this.handleBottomChange(t.bottom),t.on("flexBasis",this.handleFlexBasisChange,this),t.on("flexGrow",this.handleFlexGrowChange,this),t.on("flexShrink",this.handleFlexShrinkChange,this),t.on("minWidth",this.handleMinWidthChange,this),t.on("minHeight",this.handleMinHeightChange,this),t.on("maxWidth",this.handleMaxWidthChange,this),t.on("maxHeight",this.handleMaxHeightChange,this),t.on("paddingTop",this.handlePaddingTopChange,this),t.on("paddingLeft",this.handlePaddingLeftChange,this),t.on("paddingRight",this.handlePaddingRightChange,this),t.on("paddingBottom",this.handlePaddingBottomChange,this),t.on("marginTop",this.handleMarginTopChange,this),t.on("marginLeft",this.handleMarginLeftChange,this),t.on("marginRight",this.handleMarginRightChange,this),t.on("marginBottom",this.handleMarginBottomChange,this),t.on("position",this.handlePositionChange,this),t.on("right",this.handleRightChange,this),t.on("bottom",this.handleBottomChange,this)}disposeYogaNode(){assert.assert(this._yogaNode);const{style:t}=this;t.off("flexBasis",this.handleFlexBasisChange,this),t.off("flexGrow",this.handleFlexGrowChange,this),t.off("flexShrink",this.handleFlexShrinkChange,this),t.off("minWidth",this.handleMinWidthChange,this),t.off("minHeight",this.handleMinHeightChange,this),t.off("maxWidth",this.handleMaxWidthChange,this),t.off("maxHeight",this.handleMaxHeightChange,this),t.off("paddingTop",this.handlePaddingTopChange,this),t.off("paddingLeft",this.handlePaddingLeftChange,this),t.off("paddingRight",this.handlePaddingRightChange,this),t.off("paddingBottom",this.handlePaddingBottomChange,this),t.off("marginTop",this.handleMarginTopChange,this),t.off("marginLeft",this.handleMarginLeftChange,this),t.off("marginRight",this.handleMarginRightChange,this),t.off("marginBottom",this.handleMarginBottomChange,this),this.yogaMeasure&&this._yogaNode.unsetMeasureFunc()}handleFlexBasisChange(t="auto"){assert.assert(this.yogaNode),this.yogaNode.setFlexBasis(t),this.markLayoutDirty()}handleFlexGrowChange(t=0){assert.assert(this.yogaNode),this.yogaNode.setFlexGrow(t),this.markLayoutDirty()}handleFlexShrinkChange(t=1){assert.assert(this.yogaNode),this.yogaNode.setFlexShrink(t),this.markLayoutDirty()}handleWidthChange(t="auto"){var e;null===(e=this.yogaNode)||void 0===e||e.setWidth(t),this.markLayoutDirty()}handleHeightChange(t="auto"){var e;null===(e=this.yogaNode)||void 0===e||e.setHeight(t),this.markLayoutDirty()}handleMinWidthChange(t="auto"){assert.assert(this.yogaNode),this.yogaNode.setMinWidth("auto"===t?NaN:t),this.markLayoutDirty()}handleMinHeightChange(t="auto"){assert.assert(this.yogaNode),this.yogaNode.setMinHeight("auto"===t?NaN:t),this.markLayoutDirty()}handleMaxWidthChange(t="auto"){assert.assert(this.yogaNode),this.yogaNode.setMaxWidth("auto"===t?NaN:t),this.markLayoutDirty()}handleMaxHeightChange(t="auto"){assert.assert(this.yogaNode),this.yogaNode.setMaxHeight("auto"===t?NaN:t),this.markLayoutDirty()}handlePaddingTopChange(t=0){assert.assert(this.yogaNode),this.yogaNode.setPadding(entryBrowser.EDGE_TOP,t),this.markLayoutDirty()}handlePaddingRightChange(t=0){assert.assert(this.yogaNode),this.yogaNode.setPadding(entryBrowser.EDGE_RIGHT,t),this.markLayoutDirty()}handlePaddingBottomChange(t=0){assert.assert(this.yogaNode),this.yogaNode.setPadding(entryBrowser.EDGE_BOTTOM,t),this.markLayoutDirty()}handlePaddingLeftChange(t=0){assert.assert(this.yogaNode),this.yogaNode.setPadding(entryBrowser.EDGE_LEFT,t),this.markLayoutDirty()}handleMarginTopChange(t=0){assert.assert(this.yogaNode),this.yogaNode.setMargin(entryBrowser.EDGE_TOP,t),this.markLayoutDirty()}handleMarginRightChange(t=0){assert.assert(this.yogaNode),this.yogaNode.setMargin(entryBrowser.EDGE_RIGHT,t),this.markLayoutDirty()}handleMarginBottomChange(t=0){assert.assert(this.yogaNode),this.yogaNode.setMargin(entryBrowser.EDGE_BOTTOM,t),this.markLayoutDirty()}handleMarginLeftChange(t=0){assert.assert(this.yogaNode),this.yogaNode.setMargin(entryBrowser.EDGE_LEFT,t),this.markLayoutDirty()}handleDisplayChange(t){var e;null===(e=this.yogaNode)||void 0===e||e.setDisplay("none"===t?entryBrowser.DISPLAY_NONE:entryBrowser.DISPLAY_FLEX),this.hidden="none"===t||"hidden"===this.style.visibility}handleVisibilityChange(t){this.hidden="none"===this.style.display||"hidden"===t}handleLeftChange(t=0){var e;assert.assert("number"==typeof t,"style.left 仅支持 number"),this.yogaNode?(this.yogaNode.setPosition(entryBrowser.EDGE_LEFT,t),this.markLayoutDirty()):(this.offset=Point.fromXY(t,this._offset.y),null===(e=this.parent)||void 0===e||e.markLayoutDirty(this))}handleTopChange(t=0){var e;assert.assert("number"==typeof t,"style.top 仅支持 number"),this.yogaNode?(this.yogaNode.setPosition(entryBrowser.EDGE_TOP,t),this.markLayoutDirty()):(this.offset=Point.fromXY(this._offset.x,t),null===(e=this.parent)||void 0===e||e.markLayoutDirty(this))}handleRightChange(t=0){assert.assert("number"==typeof t,"style.left 仅支持 number"),this.yogaNode&&(this.yogaNode.setPosition(entryBrowser.EDGE_RIGHT,t),this.markLayoutDirty())}handleBottomChange(t=0){assert.assert("number"==typeof t,"style.bottom 仅支持 number"),this.yogaNode&&(this.yogaNode.setPosition(entryBrowser.EDGE_BOTTOM,t),this.markLayoutDirty())}handlePositionChange(t){assert.assert(this.yogaNode);const e="absolute"===t?entryBrowser.POSITION_TYPE_ABSOLUTE:"relative"===t?entryBrowser.POSITION_TYPE_RELATIVE:null;e&&(this.yogaNode.setPositionType(e),this.markLayoutDirty())}updateOffsetAndSizeFromYogaNode(){var t;assert.assert(this._yogaNode,"updateOffsetAndSizeFromYogaNode: _yogaNode 不存在");const e=this._yogaNode.getComputedLayout();if(this.size=Size$1.fromWH(e.width,e.height),this._relayoutBoundary!==this&&this._yogaNode.getPositionType()!==entryBrowser.POSITION_TYPE_ABSOLUTE)this._offset=Point.fromXY(e.left,e.top);else{const{left:e,top:r}=this.style,n=Point.fromXY("number"==typeof e?e:this._offset.x,"number"==typeof r?r:this._offset.y);Point.eq(n,this._offset)||(this._offset=n,null===(t=this.parent)||void 0===t||t.markLayoutDirty(this))}}attach(t){super.attach(t),this._layoutDirty&&void 0!==this._relayoutBoundary&&(this._layoutDirty=!1,this.markLayoutDirty()),this._needsCompositingDirty&&(this._needsCompositingDirty=!1,this.markNeedsCompositingDirty()),this._paintDirty&&this._layer&&(this._paintDirty=!1,this.markPaintDirty()),this.trackStyle()}detach(){super.detach(),this.style.eventNames().forEach((t=>{this.style.removeListener(t)}))}get size(){return this._size}set size(t){this.setSize(t)}setSize(t){return!Size$1.eq(t,this._size)&&(this._size=t,this.markPaintDirty(),!0)}get offset(){return this._offset}set offset(t){this.setOffset(t)}setOffset(t){var e;return!Point.eq(this._offset,t)&&(this._offset=t,null===(e=this.parent)||void 0===e||e.markPaintDirty(),!0)}get viewport(){return this._viewport}set viewport(t){Rect.eq(this._viewport,t)||(this._viewport=t,this.markPaintDirty())}get viewportOffset(){return Point.invert(Point.fromRect(this._viewport))}get hidden(){return this._hidden}set hidden(t){t!==this._hidden&&(this._hidden=t,this.markLayoutDirty(),this.markPaintDirty())}markYogaNodeDirty(){var t;this.yogaMeasure&&(null===(t=this.yogaNode)||void 0===t||t.markDirty())}markLayoutDirty(t){assert.assert(!t||t._parent===this),this._relayoutBoundary!==this?this.markSelfAndParentLayoutDirty():this._layoutDirty||(this._layoutDirty=!0,this.markYogaNodeDirty(),this._owner&&(this._owner.addLayoutDirty(this),this._owner.requestVisualUpdate()))}markSelfAndParentLayoutDirty(){var t;this._layoutDirty=!0,this.markYogaNodeDirty(),null===(t=this.parent)||void 0===t||t.markLayoutDirty(this)}scheduleInitialLayout(){assert.assert(this._owner),assert.assert(!(this._parent instanceof RenderObject)),assert.assert(!this._relayoutBoundary),this._relayoutBoundary=this,this._owner.addLayoutDirty(this)}layoutAsChild(t,e){if(this._hidden)this._layoutDirty=!1;else if(this._layoutDirty||e){let e;e=this.parent&&t?this.parent._relayoutBoundary:this,void 0!==this._relayoutBoundary&&this._relayoutBoundary!==e&&this.visitChildren(RenderObject.cleanChildRelayoutBoundary),this._relayoutBoundary=e;try{this.performLayout()}catch(t){console.error(t)}this._layoutDirty=!1,this.markPaintDirty()}}cleanRelayoutBoundary(){this._relayoutBoundary!==this&&(this._relayoutBoundary=void 0,this._layoutDirty=!0,this.visitChildren(RenderObject.cleanChildRelayoutBoundary))}layoutAsBoundary(){if(this._hidden)return this._layoutDirty=!1,void this.markPaintDirty();assert.assert(this._layoutDirty),assert.assert(this._relayoutBoundary===this,"节点的 _relayoutBoundary 不是自己");try{this.performLayout()}catch(t){console.error(t)}this._layoutDirty=!1,this.markPaintDirty()}static cleanChildRelayoutBoundary(t){t.cleanRelayoutBoundary()}performLayout(){this.updateOffsetAndSize()}enterFrame(){}markEnterFrame(){var t,e;null===(t=this._owner)||void 0===t||t.addEnterFrame(this),null===(e=this._owner)||void 0===e||e.requestVisualUpdate()}updateOffsetAndSize(){this.yogaNode?this.updateOffsetAndSizeFromYogaNode():this.updateOffsetAndSizeFromStyle()}get repaintBoundary(){return this._repaintBoundary}set repaintBoundary(t){var e;assert.assert(!1===this._repaintBoundaryLocked,"节点的 repaintBoundary 已锁定，不能修改"),t!==this._repaintBoundary&&(this._repaintBoundary=t,this.markNeedsCompositingDirty(),this._paintDirty=!0,null===(e=this.parent)||void 0===e||e.markPaintDirty())}get alwaysNeedsCompositing(){return!1}get layer(){return assert.assert(!this.repaintBoundary||!this._layer||this._layer instanceof OffsetLayer,"如果 RenderObject 不是 repaintBoundary，_layer 只能是 OffsetLayer 或 undefined"),this._layer}set layer(t){assert.assert(!this.repaintBoundary,"如果 RenderObject 不是 repaintBoundary，则 RenderPipeline 会自动创建 layer，你不能手动设置"),this._layer=t}markNeedsCompositingDirty(){var t;if(!this._needsCompositingDirty){if(this._needsCompositingDirty=!0,this._parent instanceof RenderObject){const t=this._parent;if(t._needsCompositingDirty)return;if(!this.repaintBoundary&&!t.repaintBoundary)return void t.markNeedsCompositingDirty()}null===(t=this._owner)||void 0===t||t.addNeedsCompositingDirty(this)}}get needsCompositing(){return assert.assert(!this._needsCompositingDirty,"不能在 _needsCompositingDirty=true 时访问 needsCompositing"),this._needsCompositing}updateNeedsCompositing(){if(!this._needsCompositingDirty)return;const t=this._needsCompositing;this._needsCompositing=!1,this.visitChildren((t=>{t.updateNeedsCompositing(),t.needsCompositing&&(this._needsCompositing=!0)})),(this.repaintBoundary||this.alwaysNeedsCompositing)&&(this._needsCompositing=!0),t!==this._needsCompositing&&this.markPaintDirty(),this._needsCompositingDirty=!1}markPaintDirty(t){var e;assert.assert(!t||t._parent===this),this._paintDirty||(this._paintDirty=!0,this.repaintBoundary?(assert.assert(this._layer instanceof TransformLayer,"当前节点是 repaintBoundary，但 _layer 不是 "),this._owner&&(this._owner.addPaintDirty(this),this._owner.requestVisualUpdate())):this._parent instanceof RenderObject?this._parent.markPaintDirty(this):null===(e=this.owner)||void 0===e||e.requestVisualUpdate())}skipPaint(){assert.assert(this.attached),assert.assert(this.repaintBoundary),assert.assert(this._paintDirty),assert.assert(this._layer),assert.assert(!this._layer.attached);let t=this._parent;for(;t instanceof RenderObject;){if(t.repaintBoundary){if(!t._layer)break;if(t._layer.attached)break;t._paintDirty=!0}t=t.parent}}scheduleInitialPaint(t){assert.assert(t.attached),assert.assert(!this.parent,"\b仅限根节点使用"),assert.assert(this.repaintBoundary),assert.assert(!this._layer),this._layer=t,assert.assert(this._paintDirty),assert.assert(this._owner),this._owner.addPaintDirty(this)}replaceRootLayer(t){assert.assert(t.attached),assert.assert(this._owner),assert.assert(!this.parent,"\b仅限根节点使用"),assert.assert(this.repaintBoundary),assert.assert(this._layer,"首次绘制请使用 scheduleInitialPaint"),this._layer.detach(),this._layer=t,this.markPaintDirty()}get paintBounds(){return Rect.fromSize(this._size)}get bounds(){return Rect.fromLTWH(this._offset.x,this._offset.y,this._size.width,this._size.height)}paintWithContext(t,e){var r;if(assert.assert(!this._debugDoingThisPaint,"节点不能单独重复调用 _paintWithContext"),this._layoutDirty)return;let n;if(assert.assert((()=>{if(this._needsCompositingDirty){if(this.parent){let t=!1;if(this.parent.visitChildren((e=>{e===this&&(t=!0)})),!t)throw new Error("节点未通过其父节点进行绘制")}throw new Error("不允许节点在 _needsCompositingDirty = true 时绘制")}})),assert.assert((()=>{this._debugDoingThisPaint=!0,n=RenderObject._debugActivePaint,RenderObject._debugActivePaint=this,assert.assert(!this.repaintBoundary||null!==this._layer)})),this._paintDirty=!1,!this._hidden)try{this.paint(t,e),null===(r=this.onPaint)||void 0===r||r.call(this,e),assert.assert(!this._layoutDirty,"检测到 paint 方法中重新将 _layoutDirty 标记为 true"),assert.assert(!this._paintDirty,"检测到 paint 方法中重新将 _paintDirty 标记为 true")}catch(t){console.error(t)}assert.assert((()=>{this.debugPaint(t,e),RenderObject._debugActivePaint=n,this._debugDoingThisPaint=!1}))}debugPaint(t,e){this.debugPaintSize(t,e),this.debugPaintId(t,e)}debugPaintSize(t,e){if(!DebugFlags.paintNodeBounds)return;const r={style:exports.PaintStyle.stroke,strokeWidth:1,color:"#00FFFF"};t.canvas.drawRect(e.x+this.viewportOffset.x,e.y+this.viewportOffset.y,this.size.width,this.size.height,r)}debugPaintId(t,e){DebugFlags.paintNodeId&&this.id&&t.canvas.debugDrawText(String(this.id),e.x,e.y)}applyPaintTransform(t,e){const{viewportOffset:r}=t;e.translate(t._offset.x+r.x,t._offset.y+r.y)}localToGlobal(t,e){const r=this.getTransformTo(e);return Matrix.transformPoint(r,t)}globalToLocal(t,e){const r=this.getTransformTo(e);return Matrix.inverseTransformPoint(r,t)}getBoundingClientRect(t){const e=this.getTransformTo(t);return Matrix.transformRect(e,Rect.fromSize(this._size))}getTransformTo(t){assert.assert(this._owner,"节点缺少 owner");const e=null!=t?t:this._owner.rootNode,r=[];for(let t=this;t!==e;t=t.parent)assert.assert(t),r.push(t);t&&r.push(t);const n=MutableMatrix.fromIdentity();for(let t=r.length-1;t>0;t-=1)r[t].applyPaintTransform(r[t-1],n);return n}get dispatcher(){var t;return null!==(t=this._dispatcher)&&void 0!==t?t:this._dispatcher=new SyntheticEventDispatcher}addEventListener(t,e,r){return this.dispatcher.addEventListener(t,e,r)}dispatchEvent(t){var e,r;const n=null===(e=this._owner)||void 0===e?void 0:e.rootNode;return n&&(t.target=this,t.path=[this],null===(r=SyntheticEventManager.findInstance(n))||void 0===r||r.dispatchEvent(t)),!1}removeEventListener(t,e,r){var n;return null===(n=this._dispatcher)||void 0===n?void 0:n.removeEventListener(t,e,r)}getDispatcher(){return this._dispatcher}hitTest(t,e){return!(this.offstage||this._hidden||this.hitTestDisabled)&&(!!(this.hitTestSelfDisabled||Size$1.eq(this._size,Size$1.zero)||Size$1.contains(this._size,e))&&(!(!this.hitTestChildren(t,e)&&!this.hitTestSelf(e))&&(t.add(new HitTestEntry(this,e)),!0)))}hitTestSelf(t){return!this.hitTestSelfDisabled}hitTestChildren(t,e){return!1}}__decorate([Log()],RenderObject.prototype,"markLayoutDirty",null),__decorate([Log({disabled:!1})],RenderObject.prototype,"getBoundingClientRect",null),EventHandlers.mixin(RenderObject);class RenderBox extends RenderObject{trackStyle(){super.trackStyle(),this.style.on("boxShadow",this.handleBoxShadowChange,this),this.style.on("borderWidth",this.handleBorderWidthChange,this),this.style.on("borderColor",this.handleBorderColorChange,this),this.style.on("borderImage",this.handleBorderImageChange,this),this.style.on("borderRadius",this.handleBorderRadiusChange,this),this.style.on("backgroundColor",this.handleBackgroundColorChange,this),this.style.on("backgroundImage",this.handleBackgroundImageChange,this),hasOwn(this.style,"boxShadow")&&this.handleBoxShadowChange(this.style.boxShadow),hasOwn(this.style,"borderWidth")&&this.handleBorderWidthChange(this.style.borderWidth),hasOwn(this.style,"borderColor")&&this.handleBorderColorChange(this.style.borderColor),hasOwn(this.style,"borderImage")&&this.handleBorderImageChange(this.style.borderImage),hasOwn(this.style,"borderRadius")&&this.handleBorderRadiusChange(this.style.borderRadius),hasOwn(this.style,"backgroundColor")&&this.handleBackgroundColorChange(this.style.backgroundColor),hasOwn(this.style,"backgroundImage")&&this.handleBackgroundImageChange(this.style.backgroundImage)}get boxDecorator(){var t;return null!==(t=this._boxDecorator)&&void 0!==t?t:this._boxDecorator=new BoxDecorator}handleBoxShadowChange(t){this.boxDecorator.boxShadow=t?BoxShadow.fromCss(t):void 0,this.markPaintDirty()}handleBorderWidthChange(t){this.boxDecorator.borderWidth=t||void 0,this.markPaintDirty()}handleBorderColorChange(t){this.boxDecorator.borderColor=t||void 0,this.markPaintDirty()}handleBorderImageChange(t){this.boxDecorator.borderImage=t||void 0,this.markPaintDirty()}handleBorderRadiusChange(t){this.boxDecorator.borderRadius=t||void 0,this.markPaintDirty()}handleBackgroundColorChange(t){this.boxDecorator.backgroundColor=t||void 0,this.markPaintDirty()}handleBackgroundImageChange(t){this.boxDecorator.backgroundImage=t||void 0,this.markPaintDirty()}}class RenderSingleChild extends RenderBox{constructor(){super(...arguments),this._childCount=0}get child(){return this._child}set child(t){this._child!==t&&(this._child&&(this._yogaNode&&this._child.yogaNode&&(assert.assert(this._child.yogaNode.getParent()===this._yogaNode),this._yogaNode.removeChild(this._child.yogaNode)),this.dropChild(this._child),this._childCount--),this._child=t,this._child&&(this.adoptChild(this._child),this._yogaNode&&this._child.yogaNode&&(assert.assert(!this._child.yogaNode.getParent(),"子节点的 yogaNode 不能已有 parent"),this._yogaNode.insertChild(this._child.yogaNode,0)),this._childCount++))}visitChildren(t){this._child&&t(this._child)}redepthChildren(){this._child&&this.redepthChild(this._child)}performLayout(){var t;this.updateOffsetAndSize(),null===(t=this._child)||void 0===t||t.layoutAsChild(!1,!1)}attach(t){var e;super.attach(t),null===(e=this._child)||void 0===e||e.attach(t)}detach(){var t;super.detach(),null===(t=this._child)||void 0===t||t.detach()}paint(t,e){const r=!Size$1.isZero(this._size),{_boxDecorator:n}=this;r&&(null==n||n.paintBackground(t,e,this._size));this._viewport.width>0&&this._viewport.height>0?t.pushClipRect(this.needsCompositing,e,Rect.fromLTWH(0,0,this._viewport.width,this._viewport.height),this._paint.bind(this)):this._paint(t,e),r&&(null==n||n.paintBorder(t,e,this._size))}_paint(t,e){if(this._child){const r=this.viewportOffset;this._child.offstage=!1,t.paintChild(this._child,Point.add3(this._child.offset,e,r))}}hitTestChildren(t,e){if(!this._child)return!1;const{_child:r}=this;return t.addWithPaintOffset(Point.add(r.offset,this.viewportOffset),e,((t,n)=>(assert.assert(Point.eq(n,Point.add(e,Point.invert(Point.add(r.offset,this.viewportOffset))))),r.hitTest(t,n))))}hitTestSelf(){return!this.hitTestSelfDisabled&&!Size$1.eq(this._size,Size$1.zero)}get childCount(){return this._childCount}get firstChild(){return this._child}get lastChild(){return this._child}childBefore(t){assert.assert(t===this._child)}childAfter(t){assert.assert(t===this._child)}insertAfter(t,e){this.child=t}insertBefore(t,e){this.child=t}appendChild(t){this.child=t}removeChild(t){assert.assert(t===this._child),this.child=void 0}removeAllChildren(){this.child=void 0}get debugChildren(){return this._child?[this._child]:[]}allocChildrenYogaNode(){this._child&&this.allocChildYogaNode(this._child)}deallocYogaNodeChildren(){this._child&&this.deallocYogaNode(this._child)}}class RenderCanvas extends RenderSingleChild{constructor(){super(),this.handleRequestVisualUpdate=()=>{this.frameDirty=!0,PlatformAdapter.scheduleFrame()},this.frameDirty=!1,this.handlePointerOver=t=>{if(assert.assert(t.target),this._el){for(let e=0;e<t.path.length;e++){const r=t.path[e].style.cursor;if(r)return void(this._el.style.cursor=r)}this._el.style.cursor=""}},this._dpr=1,this.drawFrame=()=>{this.pipeline.flushEnterFrame(),this.frameDirty&&(this.pipeline.flushLayout(),this.pipeline.flushNeedsCompositing(),this.pipeline.flushPaint(),this.frameDirty=!1,this.composeFrame(),this.dispatchFrameEnd())},this._repaintBoundaryLocked=!0,this.handleNativeEvents=()=>{this.eventManager.flushNativeEvents()},this.pipeline=new RenderPipeline(this.handleRequestVisualUpdate),this.pipeline.rootNode=this;const t=PlatformAdapter.onFrame(this.handleNativeEvents),e=PlatformAdapter.onFrame(this.drawFrame);this.clearOnFrame=()=>{t(),e()},this.nativeEventBinding=new DOMEventBinding,this.nativeEventBinding.onEvents=()=>{PlatformAdapter.scheduleFrame()},this.eventManager=new SyntheticEventManager,this.eventManager.rootNode=this,this.eventManager.binding=this.nativeEventBinding,this.addEventListener("pointerover",this.handlePointerOver)}get dpr(){return this._dpr}set dpr(t){t!==this._dpr&&(this._dpr=t,this.replaceRootLayer(this.updateMatricesAndCreateNewRootLayer()))}get rasterizer(){var t;if(this.surface)return null!==(t=this._rasterizer)&&void 0!==t?t:this._rasterizer=new Rasterizer({surface:this.surface})}get surface(){var t;if(this.el)return null!==(t=this._surface)&&void 0!==t?t:this._surface=Surface.makeCanvasSurface({el:this.el})}get el(){return this._el}set el(t){t!==this._el&&(this._el=t,this.nativeEventBinding.el=t,this._surface=void 0,this._rasterizer=void 0,this.markLayoutDirty(),this.markPaintDirty())}composeFrame(){const{rasterizer:t,_layer:e}=this;if(!t)return;assert.assert(e);const r=new LayerTree({rootLayer:e});t.draw(r,Size$1.scale(this._size,this._dpr))}updateMatricesAndCreateNewRootLayer(){this._rootTransform=Matrix.fromScale(this.dpr);const t=new TransformLayer(this._rootTransform);return t.attach(this),assert.assert(this._rootTransform),t}prepareInitialFrame(){assert.assert(this._owner),assert.assert(!this._rootTransform),this.scheduleInitialLayout(),this.scheduleInitialPaint(this.updateMatricesAndCreateNewRootLayer()),assert.assert(this._rootTransform),this._owner.requestVisualUpdate()}dispose(){this.pipeline.rootNode=void 0,this.clearOnFrame(),this.el=void 0}get repaintBoundary(){return!0}applyPaintTransform(t,e){assert.assert(this._rootTransform),e.mul(this._rootTransform),super.applyPaintTransform(t,e)}hitTest(t,e){return this.hitTestChildren(t,e),t.add(new HitTestEntry(this,e)),!0}hitTestFromRoot(t){const e=new HitTestResult;return this.hitTest(e,t),e}paint(t,e){super.paint(t,e),t.setWillChange()}dispatchFrameEnd(){if(!this._dispatcher)return;const t=new SyntheticEvent("frameEnd",{bubbles:!1,cancelable:!1});this.dispatchEvent(t)}}class RenderShape extends RenderObject{constructor(){super(...arguments),this._rotation=0,this._angle=0,this._transformOrigin=Point.fromXY(.5,.5)}trackStyle(){super.trackStyle(),this.style.on("boxShadow",this.handleBoxShadowChange,this),hasOwn(this.style,"boxShadow")&&this.handleBoxShadowChange(this.style.boxShadow),this.style.on("fill",this.handleFillChange,this),hasOwn(this.style,"fill")&&this.handleFillChange(this.style.fill),this.style.on("stroke",this.handleStrokeChange,this),hasOwn(this.style,"stroke")&&this.handleStrokeChange(this.style.stroke),this.style.on("strokeWidth",this.handleStrokeWidthChange,this),hasOwn(this.style,"strokeWidth")&&this.handleStrokeWidthChange(this.style.strokeWidth)}handleBoxShadowChange(t){this.boxShadow=t?BoxShadow.fromCss(t):void 0}handleFillChange(t){this.fill=t||void 0}handleStrokeChange(t){this.stroke=t||void 0}handleStrokeWidthChange(t){this.strokeWidth=t||void 0}get boxShadow(){return this._boxShadow}set boxShadow(t){t!==this._boxShadow&&(this._boxShadow=t,this._fillPaint=void 0,this._strokePaint=void 0,this.markPaintDirty())}get fill(){return this._fill}set fill(t){t!==this._fill&&(this._fill=t,this._fillPaint=void 0,this.markPaintDirty())}get stroke(){return this._stroke}set stroke(t){t!==this._stroke&&(this._stroke=t,this._strokePaint=void 0,this.markPaintDirty())}get strokeWidth(){return this._strokeWidth}set strokeWidth(t){t!==this._strokeWidth&&(this._strokeWidth=t,this._strokePaint=void 0,this.markPaintDirty())}get strokePaint(){var t,e;return this._strokeWidth&&!this._strokePaint&&(this._strokePaint={style:exports.PaintStyle.stroke,color:null!==(t=this._stroke)&&void 0!==t?t:"#000",strokeWidth:null!==(e=this._strokeWidth)&&void 0!==e?e:1},this._boxShadow&&!this._fill&&BoxShadow.applyToPaint(this._boxShadow,this._strokePaint)),this._strokePaint}get fillPaint(){return void 0===this._fill||this._fillPaint||(this._fillPaint={style:exports.PaintStyle.fill,color:this._fill},this._boxShadow&&BoxShadow.applyToPaint(this._boxShadow,this._fillPaint)),this._fillPaint}get rotation(){return this._rotation}set rotation(t){t!==this._rotation&&(this._rotation=t,this._angle=DEG_TO_RAD*t,this.markLocalTransformDirty(),this.markPaintDirty())}get transformOrigin(){return this._transformOrigin}set transformOrigin(t){Point.eq(t,this._transformOrigin)||(this._transformOrigin=t,this.markLocalTransformDirty(),this.markPaintDirty())}setSize(t){return!!super.setSize(t)&&(this.markLocalTransformDirty(),!0)}getLocalTransform(t){return null}markLocalTransformDirty(){this._localTransform=void 0}visitChildren(){}redepthChildren(){}hitTestSelf(t){return!0}}const DEG_TO_RAD=Math.PI/180;class RenderCircle extends RenderShape{constructor(){super(...arguments),this._radius=0}trackStyle(){super.trackStyle(),this.style.on("radius",this.handleRadiusChange,this),hasOwn(this.style,"radius")&&this.handleRadiusChange(this.style.radius)}handleRadiusChange(t){this.radius=t||0}get radius(){return this._radius}set radius(t){t!==this._radius&&(this._radius=t,this.markPaintDirty())}paint(t,e){const{_size:{width:r,height:n},_radius:i,fillPaint:s,strokePaint:a}=this,o=0===i?Math.min(r,n)/2:i,u=r/2+e.x,l=n/2+e.y;s&&t.canvas.drawCircle(u,l,o,s),a&&t.canvas.drawCircle(u,l,o,a)}}class ViewParentData extends ParentData{detach(){assert.assert(!this.prevSibling),assert.assert(!this.nextSibling),super.detach()}}class RenderView extends RenderBox{constructor(){super(...arguments),this._childCount=0}setupParentData(t){t.parentData instanceof ViewParentData||(t.parentData=new ViewParentData)}get childCount(){return this._childCount}get firstChild(){return this._firstChild}get lastChild(){return this._lastChild}childBefore(t){var e;return assert.assert(t.parent===this),null===(e=t.parentData)||void 0===e?void 0:e.prevSibling}childAfter(t){var e;return assert.assert(t.parent===this),null===(e=t.parentData)||void 0===e?void 0:e.nextSibling}redepthChildren(){let t=this._firstChild;for(;t;){this.redepthChild(t);t=t.parentData.nextSibling}}visitChildren(t){let e=this._firstChild;for(;e;)t(e),e=e.parentData.nextSibling}attach(t){super.attach(t);let e=this._firstChild;for(;e;)e.attach(t),e=e.parentData.nextSibling}detach(){super.detach();let t=this._firstChild;for(;t;)t.detach(),t=t.parentData.nextSibling}debugUltimatePrevSiblingOf(t,e){let r=t.parentData;for(;r.prevSibling;)assert.assert(r.prevSibling!==t),r=(t=r.prevSibling).parentData;return t===e}debugUltimateNextSiblingOf(t,e){let r=t.parentData;for(;r.nextSibling;)assert.assert(r.nextSibling!==t),r=(t=r.nextSibling).parentData;return t===e}internalInsertAfter(t,e){var r;const n=t.parentData;if(assert.assert(!n.nextSibling),assert.assert(!n.prevSibling),this._childCount++,assert.assert(this._childCount>0),e){assert.assert(this._firstChild),assert.assert(this._lastChild),assert.assert(this.debugUltimatePrevSiblingOf(e,this._firstChild)),assert.assert(this.debugUltimateNextSiblingOf(e,this._lastChild));const r=e.parentData;if(r.nextSibling){n.nextSibling=r.nextSibling,n.prevSibling=e;const i=n.prevSibling.parentData,s=n.nextSibling.parentData;if(i.nextSibling=t,s.prevSibling=t,assert.assert(r.nextSibling===t),this._yogaNode&&t.yogaNode){assert.assert(!t.yogaNode.getParent(),"子节点的 yogaNode 不能已有 parent");const r=this.findChildIndex(e);assert.assert(-1!==r,`父节点中没有该子节点 ${t.id}`),this._yogaNode.insertChild(t.yogaNode,r+1)}}else assert.assert(e===this._lastChild),n.prevSibling=e,r.nextSibling=t,this._lastChild=t,this._yogaNode&&t.yogaNode&&(assert.assert(!t.yogaNode.getParent(),"子节点的 yogaNode 不能已有 parent"),this._yogaNode.insertChild(t.yogaNode,this._childCount-1))}else{if(n.nextSibling=this._firstChild,this._firstChild){const e=this._firstChild.parentData;assert.assert(e),e.prevSibling=t}this._firstChild=t,null!==(r=this._lastChild)&&void 0!==r||(this._lastChild=t),this._yogaNode&&t.yogaNode&&(assert.assert(!t.yogaNode.getParent(),"子节点的 yogaNode 不能已有 parent"),this._yogaNode.insertChild(t.yogaNode,0))}}insertAfter(t,e){assert.assert(t!==this),assert.assert(e!==this),assert.assert(t!==e,"节点不能把自己添加到自己后面"),assert.assert(t!==this._firstChild,"节点已经是 firstChild"),assert.assert(t!==this._lastChild,"节点已经是 lastChild"),this.adoptChild(t),this.internalInsertAfter(t,e)}insertBefore(t,e){var r;this.insertAfter(t,null===(r=null==e?void 0:e.parentData)||void 0===r?void 0:r.prevSibling)}appendChild(t){this.insertAfter(t,this._lastChild)}internalRemoveChild(t){const e=t.parentData;if(assert.assert(this.debugUltimatePrevSiblingOf(t,this._firstChild)),assert.assert(this.debugUltimateNextSiblingOf(t,this._lastChild)),assert.assert(this._childCount>=0),e.prevSibling){e.prevSibling.parentData.nextSibling=e.nextSibling}else assert.assert(this._firstChild===t),this._firstChild=e.nextSibling;if(e.nextSibling){e.nextSibling.parentData.prevSibling=e.prevSibling}else assert.assert(this._lastChild===t),this._lastChild=e.prevSibling;e.prevSibling=void 0,e.nextSibling=void 0,this._childCount-=1,this._yogaNode&&t.yogaNode&&(assert.assert(t.yogaNode.getParent(),"子节点的 yogaNode 必须有 parent"),this._yogaNode.removeChild(t.yogaNode))}removeChild(t){this.internalRemoveChild(t),this.dropChild(t)}removeAllChildren(){let t=this._firstChild;for(;t;){const e=t.parentData,r=e.nextSibling;e.prevSibling=void 0,e.nextSibling=void 0,this.dropChild(t),t=r}this._firstChild=void 0,this._lastChild=void 0,this._childCount=0}get debugChildren(){const t=[];if(this._firstChild){let e=this._firstChild;for(;t.push(e),e!==this._lastChild;)e=e.parentData.nextSibling}return t}performLayout(){this.updateOffsetAndSize();let t=this._firstChild;for(;t;)t.layoutAsChild(!1,!1),t=t.parentData.nextSibling}paint(t,e){const r=!Size$1.isZero(this._size),{_boxDecorator:n}=this;r&&(null==n||n.paintBackground(t,e,this._size));this._viewport.width>0&&this._viewport.height>0?t.pushClipRect(this.needsCompositing,e,Rect.fromLTWH(0,0,this._viewport.width,this._viewport.height),this._paint.bind(this)):this._paint(t,e),r&&(null==n||n.paintBorder(t,e,this._size))}paintChildren(t,e,r,n){let i=this._firstChild;const s=!Rect.isEmpty(n);for(;i;)i.offstage=s&&!Rect.overlaps(n,i.bounds),i.offstage||t.paintChild(i,Point.add3(i._offset,e,r)),i=i.parentData.nextSibling}_paint(t,e){this.paintChildren(t,e,this.viewportOffset,this._viewport)}hitTestChildren(t,e){var r;let n=this._lastChild;const{viewportOffset:i}=this;for(;n;){if(!n.offstage&&t.addWithPaintOffset(Point.add(n._offset,i),e,((t,r)=>(assert.assert(Point.eq(r,Point.add(e,Point.invert(Point.add(n._offset,i))))),n.hitTest(t,r)))))return!0;n=null===(r=n.parentData)||void 0===r?void 0:r.prevSibling}return!1}hitTestSelf(){return!this.hitTestSelfDisabled&&!Size$1.eq(this._size,Size$1.zero)}allocChildrenYogaNode(){let t=this._firstChild,e=0;for(;t;){this.allocChildYogaNode(t),this._yogaNode&&t._yogaNode&&!t._yogaNode.getParent()&&this._yogaNode.insertChild(t._yogaNode,e);t=t.parentData.nextSibling,e++}}deallocYogaNodeChildren(){let t=this._firstChild;for(;t;){this.deallocYogaNode(t);t=t.parentData.nextSibling}}findChildIndex(t){let e=this._firstChild,r=0;for(;e;){if(e===t)return r;e=e.parentData.nextSibling,r++}return-1}}class FlexParentData extends ViewParentData{}class RenderFlex extends RenderView{setupParentData(t){t.parentData instanceof FlexParentData||(t.parentData=new FlexParentData)}get alwaysHoldYogaNode(){return!0}setupYogaNode(){super.setupYogaNode(),this.handleFlexDirectionChange(this.style.flexDirection),this.handleFlexWrapChange(this.style.flexWrap),this.handleJustifyContentChange(this.style.justifyContent),this.handleAlignItemsChange(this.style.alignItems),this.handleAlignContent(this.style.alignContent),this.style.on("flexDirection",this.handleFlexDirectionChange,this),this.style.on("flexWrap",this.handleFlexWrapChange,this),this.style.on("justifyContent",this.handleJustifyContentChange,this),this.style.on("alignItems",this.handleAlignItemsChange,this),this.style.on("alignContent",this.handleAlignContent,this)}handleFlexDirectionChange(t="row"){assert.assert(this.yogaNode),this.yogaNode.setFlexDirection(StyleToYoga.flexDirection[t])}handleFlexWrapChange(t="nowrap"){assert.assert(this.yogaNode),this.yogaNode.setFlexWrap(StyleToYoga.flexWrap[t])}handleJustifyContentChange(t="flex-start"){assert.assert(this.yogaNode),this.yogaNode.setJustifyContent(StyleToYoga.justifyContent[t])}handleAlignItemsChange(t="stretch"){assert.assert(this.yogaNode),this.yogaNode.setAlignItems(StyleToYoga.alignItems[t])}handleAlignContent(t="flex-start"){assert.assert(this.yogaNode),this.yogaNode.setAlignContent(StyleToYoga.alignContent[t])}performLayout(){assert.assert(this.yogaNode,`${this.id}: RenderFlex 的 yogaNode 不能是 undefined`),this.parent instanceof RenderFlex||this.yogaNode.calculateLayout(),this.updateOffsetAndSize(),this.visitChildren((t=>{t.layoutAsChild(!0,!0)}))}}class RenderImage extends RenderBox{constructor(){super(...arguments),this.crossOrigin=null}get src(){return this._src}set src(t){t!==this._src&&(this._src&&(this.image=void 0),this._src=t,this._src&&("string"==typeof this._src?(this.loader.src=this._src,this.loader.onload=()=>{assert.assert(this._loader),this.image=Image$1.from(this._loader)}):this.image=Image$1.from(this._src)))}get loader(){return this._loader||(this._loader=new self.Image,this._loader.crossOrigin=this.crossOrigin),this._loader}get image(){return this._image}set image(t){t!==this._image&&(this._image&&this.markPaintDirty(),this._image=t,this._image&&(this.sizeSpecified?this.markPaintDirty():(this.handleWidthChange(this._image.width),this.handleHeightChange(this._image.height))))}get sizeSpecified(){return this.style.has("width")&&this.style.has("height")}paint(t,e){const r=!Size$1.isZero(this._size),{_boxDecorator:n}=this;r&&(null==n||n.paintBackground(t,e,this._size)),this._image&&(n?n.clipBorderRadiusAndPaint(t,this._needsCompositing,e,this._size,this._paint,this):this._paint(t,e)),r&&(null==n||n.paintBorder(t,e,this._size))}_paint(t,e){assert.assert(this._image),t.canvas.drawImage(this._image,e.x,e.y,this._size.width,this._size.height)}updateOffsetAndSizeFromStyle(){super.updateOffsetAndSizeFromStyle(),this._image&&!this.sizeSpecified&&(this.size=Size$1.fromWH(this._image.width,this._image.height))}visitChildren(){}redepthChildren(){}hitTestSelf(){return!0}}class RenderPath extends RenderShape{constructor(){super(...arguments),this.yogaMeasure=()=>{const{pathBounds:t=Rect.zero}=this;return{width:t.right,height:t.bottom}}}get hitTestStrokeWidth(){return"number"==typeof this._hitTestStrokeWidth?this._hitTestStrokeWidth:this._strokeWidth}set hitTestStrokeWidth(t){this._hitTestStrokeWidth=t,this._pathBounds=void 0}get path(){return this._path}set path(t){t!==this.path&&(this._path&&(this.path2D=void 0,this._pathBounds=void 0),this._path=t,this._path&&(this.path2D=new Path2D(this._path)),this.markLocalTransformDirty())}get pathBounds(){return!this._pathBounds&&this._path?this._pathBounds=RenderPath.calculateBounds(this._path,this.hitTestStrokeWidth):this._pathBounds}set pathBounds(t){this._pathBounds=t,this.markLocalTransformDirty(),this.markPaintDirty()}paint(t,e){if(this.path2D){const r=this.getLocalTransform(e);if(r){t.canvas.save(),t.canvas.transform(r);const n=Rect.fromOffsetAndSize(Point.zero,this._size);this._paint(t,e,this.path2D,n),t.canvas.restore(),this.debugPaintPathBounds(t,e,n)}else this._paint(t,e,this.path2D,this.pathBounds),this.debugPaintPathBounds(t,e,this.pathBounds)}}_paint(t,e,r,n){const{fillPaint:i,strokePaint:s}=this;i&&t.canvas.drawPath(r,e.x,e.y,i,n.left+e.x,n.top+e.y,n.width,n.height),s&&t.canvas.drawPath(r,e.x,e.y,s,n.left+e.x,n.top+e.y,n.width,n.height)}getLocalTransform(t){return this._localTransformOffset&&!Point.eq(this._localTransformOffset,t)&&void 0!==this._localTransform||(this._localTransform=this.computeLocalTransform(t)),this._localTransform}computeLocalTransform(t){const{pathBounds:e=Rect.zero,_angle:r,_size:n,_transformOrigin:i}=this,s=0!==r,a=!Size$1.isZero(n)&&(n.width!==e.right||n.height!==e.bottom);if(s||a){const s=Point.fromXY(t.x,t.y),a=Point.fromXY(t.x+e.right*i.x,t.y+e.bottom*i.y),o=0!==r?Matrix.fromRotation(r,a.x,a.y):null,u=Point.fromXY(n.width/e.right,n.height/e.bottom),l=1!==u.x||1!==u.y?Matrix.fromScaleTranslate(u.x,u.y,s.x,s.y):null;return o&&l?Matrix.mul(l,o):null!=o?o:l}return null}debugPaintPathBounds(t,e,r){if(!DebugFlags.paintPathBounds)return;const n={style:exports.PaintStyle.stroke,strokeWidth:1,color:"#00ff00"};t.canvas.drawRect(r.left+e.x,r.top+e.y,r.width,r.height,n)}hitTestSelf(t){return assert.assert(this.path2D),this.strokePaint&&!this.fillPaint?Path.isPointInStroke(this.path2D,t,this.hitTestStrokeWidth):!Size$1.isZero(this._size)||!!this.pathBounds&&Rect.contains(this.pathBounds,t)}get bounds(){const{pathBounds:t}=this;return Size$1.isZero(this._size)&&t?Point.isZero(this._offset)?t:Rect.shift(t,this._offset):Rect.fromLTWH(this._offset.x,this._offset.y,this._size.width,this._size.height)}static calculateBounds(t,e=1){const r=Path.simplify(Path.parse(t)),n=Path.calculateBounds(r),i=(e-.5)/2;return Rect.inflate(n,Size$1.fromWH(i,i))}}__decorate([Log()],RenderPath,"calculateBounds",null);class RenderRect extends RenderShape{paint(t,e){const{fillPaint:r,strokePaint:n}=this;r&&t.canvas.drawRect(e.x,e.y,this.size.width,this.size.height,r),n&&t.canvas.drawRect(e.x,e.y,this.size.width,this.size.height,n)}}class RenderRRect extends RenderShape{constructor(){super(...arguments),this._rx=0,this._ry=0}trackStyle(){super.trackStyle(),this.style.on("rx",this.handleRxChange,this),hasOwn(this.style,"rx")&&this.handleRxChange(this.style.rx),this.style.on("ry",this.handleRyChange,this),hasOwn(this.style,"strokeWidth")&&this.handleRyChange(this.style.ry)}handleRxChange(t){this.rx=t||0}handleRyChange(t){this.ry=t||0}get rx(){return this._rx}set rx(t){this._rx=t,this.markPaintDirty()}get ry(){return this._ry}set ry(t){this._ry=t,this.markPaintDirty()}paint(t,e){const{fillPaint:r,strokePaint:n}=this;r&&t.canvas.drawRRect(e.x,e.y,this.size.width,this.size.height,this._rx,this._ry,r),n&&t.canvas.drawRRect(e.x,e.y,this.size.width,this.size.height,this._rx,this._ry,n)}}class RenderScrollbar extends RenderSingleChild{constructor(){super(),this._length=0,this._scrollPosition=0,this._contentLength=0,this._viewportLength=0,this.handleGripPointerDown=t=>{var e,r;const n=null===(e=this.owner)||void 0===e?void 0:e.rootNode,i=this.gripPosition;null===(r=this.onPointerDownGrip)||void 0===r||r.call(this,this.grip);const s=e=>{var r;const n=this.computeMoveDelta(e,t);let s=i+n;s<0?s=0:s>this.trackScrollAreaLength&&(s=this.trackScrollAreaLength);const a=s/this.trackScrollAreaLength*this.contentScrollAreaLength;null===(r=this.onScroll)||void 0===r||r.call(this,a)};null==n||n.addEventListener("pointermove",s),document.addEventListener("pointerup",(()=>{var t;null===(t=this.onPointerUpGrip)||void 0===t||t.call(this,this.grip),null==n||n.removeEventListener("pointermove",s)}),{once:!0})},this.gripLength=0,this.gripPosition=0,this.trackScrollAreaLength=0,this.contentScrollAreaLength=0,this.child=this.createGrip(),this.thickness=RenderScrollbar.defaultStyles.thickness}get length(){return this._length}set length(t){this._length=t,this.applyLengthAndThickness(t,this._thickness),this.updateGripPositionAndSize()}get thickness(){return this._thickness}set thickness(t){t!==this._thickness&&(this._thickness=t,this.applyLengthAndThickness(this._length,t))}updateGripPositionAndSize(){const t=this._viewportLength/this._contentLength,e=this.length;let r=e*t;r<RenderScrollbar.defaultStyles.minGripLength?r=RenderScrollbar.defaultStyles.minGripLength:r>e&&(r=e);const n=this._contentLength-this._viewportLength,i=this._scrollPosition/n,s=this._length-r,a=i*s;this.gripPosition=a,this.gripLength=r,this.trackScrollAreaLength=s,this.contentScrollAreaLength=n,this.applyGripLengthAndPosition(r,a)}get scrollPosition(){return this._scrollPosition}set scrollPosition(t){t!==this._scrollPosition&&(this._scrollPosition=t,this.updateGripPositionAndSize())}get contentLength(){return this._contentLength}set contentLength(t){t!==this._contentLength&&(this._contentLength=t,this.updateGripPositionAndSize())}get viewportLength(){return this._viewportLength}set viewportLength(t){this._viewportLength=t,this.updateGripPositionAndSize()}get rx(){return this.grip.rx}set rx(t){this.grip.rx=t}get ry(){return this.grip.ry}set ry(t){this.grip.ry=t}get strokeWidth(){return this.grip.strokeWidth}set strokeWidth(t){this.grip.strokeWidth=t}get stroke(){return this.grip.stroke}set stroke(t){this.grip.stroke=t}get fill(){return this.grip.fill}set fill(t){this.grip.fill=t}createGrip(){const t=new RenderRRect;return t.rx=RenderScrollbar.defaultStyles.rx,t.ry=RenderScrollbar.defaultStyles.ry,t.strokeWidth=RenderScrollbar.defaultStyles.strokeWidth,t.stroke=RenderScrollbar.defaultStyles.stroke,t.fill=RenderScrollbar.defaultStyles.fill,t.style.cursor=RenderHScrollbar.defaultStyles.cursor,t.addEventListener("pointerdown",this.handleGripPointerDown),t}get grip(){return assert.assert(this._child,"RenderScrollbar.grip: this._child is not set."),this._child}}RenderScrollbar.defaultStyles={thickness:8,rx:4,ry:4,strokeWidth:1,stroke:"rgba(255, 255, 255, 0.6)",fill:"rgba(0, 0, 0, 0.2)",cursor:"default",minGripLength:20};class RenderHScrollbar extends RenderScrollbar{computeMoveDelta(t,e){return t.clientX-e.clientX}applyLengthAndThickness(t,e){this.setSize(Size$1.fromWH(t,e))}applyGripLengthAndPosition(t,e){this.grip.size=Size$1.fromWH(t,this.thickness),this.grip.offset=Point.fromXY(e,0)}}class RenderVScrollbar extends RenderScrollbar{computeMoveDelta(t,e){return t.clientY-e.clientY}applyLengthAndThickness(t,e){this.setSize(Size$1.fromWH(e,t))}applyGripLengthAndPosition(t,e){this.grip.size=Size$1.fromWH(this.thickness,t),this.grip.offset=Point.fromXY(0,e)}}var ScrollAxis,ScrollBounds;exports.ScrollAxis=void 0,ScrollAxis=exports.ScrollAxis||(exports.ScrollAxis={}),ScrollAxis[ScrollAxis.None=0]="None",ScrollAxis[ScrollAxis.Horizontal=1]="Horizontal",ScrollAxis[ScrollAxis.Vertical=2]="Vertical",exports.ScrollBounds=void 0,ScrollBounds=exports.ScrollBounds||(exports.ScrollBounds={}),ScrollBounds[ScrollBounds.None=0]="None",ScrollBounds[ScrollBounds.Horizontal=1]="Horizontal",ScrollBounds[ScrollBounds.Vertical=2]="Vertical",ScrollBounds[ScrollBounds.Fit=3]="Fit";class RenderScrollView extends RenderSingleChild{constructor(){super(),this.hScrollbar=new RenderHScrollbar,this.vScrollbar=new RenderVScrollbar,this.scrollbarMargin=4,this.handlePointerDownGrip=()=>{this.forcePaintScrollbar=!0,this.markPaintDirty()},this.handlePointerUpGrip=()=>{this.forcePaintScrollbar=!1,this.markPaintDirty(),this._scrollOffsetUpdateFlag=this._scrollbarAutoHideDelayFrames,this.markEnterFrame()},this.handleWheel=t=>{var e;if(this._scrollAxis===exports.ScrollAxis.None)return;const r=Math.abs(t.deltaY)>Math.abs(t.deltaX),n=Point.fromXY(!r&&this._scrollAxis&exports.ScrollAxis.Horizontal?t.deltaX:0,r&&this._scrollAxis&exports.ScrollAxis.Vertical?t.deltaY:0);Point.eq(n,Point.zero)||(this.scrollOffset=Point.add(null!==(e=this._scrollOffset)&&void 0!==e?e:Point.zero,n))},this._scrollAxis=exports.ScrollAxis.Horizontal|exports.ScrollAxis.Vertical,this._scrollbar=exports.ScrollAxis.Horizontal|exports.ScrollAxis.Vertical,this._scrollOffsetUpdateFlag=0,this.forcePaintScrollbar=!1,this._scrollBounds=exports.ScrollBounds.Horizontal|exports.ScrollBounds.Vertical,this._scrollOffset=Point.zero,this._repaintBoundaryLocked=!0,this.addEventListener("wheel",this.handleWheel),this.adoptChild(this.hScrollbar),this.hScrollbar.onScroll=t=>{this.scrollLeft=t},this.hScrollbar.onPointerDownGrip=this.handlePointerDownGrip,this.hScrollbar.onPointerUpGrip=this.handlePointerUpGrip,this.adoptChild(this.vScrollbar),this.vScrollbar.onScroll=t=>{this.scrollTop=t},this.vScrollbar.onPointerDownGrip=this.handlePointerDownGrip,this.vScrollbar.onPointerUpGrip=this.handlePointerUpGrip,this.scrollbarAutoHideDelay=RenderScrollView.DEFAULT_SCROLLBAR_AUTO_HIDE_DELAY}get scrollAxis(){return this._scrollAxis}set scrollAxis(t){t!==this._scrollAxis&&(this._scrollAxis=t)}get scrollbar(){return this._scrollbar}set scrollbar(t){t!==this._scrollbar&&(this._scrollbar=t,this.markPaintDirty())}get scrollbarAutoHideDelay(){return this._scrollbarAutoHideDelay}set scrollbarAutoHideDelay(t){this._scrollbarAutoHideDelay=t,this._scrollbarAutoHideDelayFrames=Math.round(this._scrollbarAutoHideDelay/(1e3/60))}get scrollBounds(){return this._scrollBounds}set scrollBounds(t){t!==this._scrollBounds&&(this._scrollBounds=t,this.markLayoutDirty())}get scrollOffset(){return this._scrollOffset}set scrollOffset(t){this._setScrollOffset(t)&&this.dispatchScrollEvent()}_setScrollOffset(t){if(this._scrollBounds!==exports.ScrollBounds.None&&(t=this.fitIntoScrollBounds(t)),Point.eq(t,this._scrollOffset))return!1;if(this._scrollOffset=t,this._child){const{viewport:t}=this._child;this._child.viewport=Rect.fromLTWH(this._scrollOffset.x,this._scrollOffset.y,t.width,t.height),this.hScrollbar.scrollPosition=this._scrollOffset.x,this.vScrollbar.scrollPosition=this._scrollOffset.y,this._scrollOffsetUpdateFlag=this._scrollbarAutoHideDelayFrames,this.markEnterFrame()}return this.markPaintDirty(),!0}enterFrame(){0===this._scrollOffsetUpdateFlag?this.markPaintDirty():(this._scrollOffsetUpdateFlag--,this.markEnterFrame())}_paint(t,e){if(super._paint(t,e),this._child){const r=this.viewportOffset;(this.forcePaintScrollbar||0===this._scrollbarAutoHideDelay||this._scrollOffsetUpdateFlag>0)&&(this.hScrollbar.offstage=this._child.viewport.width>=this.scrollSize.width,!this.hScrollbar.offstage&&this.scrollbar&exports.ScrollAxis.Horizontal&&this.scrollAxis&exports.ScrollAxis.Horizontal&&t.paintChild(this.hScrollbar,Point.add3(this.hScrollbar.offset,e,r)),this.vScrollbar.offstage=this._child.viewport.height>=this.scrollSize.height,!this.vScrollbar.offstage&&this.scrollbar&exports.ScrollAxis.Vertical&&this.scrollAxis&exports.ScrollAxis.Vertical&&t.paintChild(this.vScrollbar,Point.add3(this.vScrollbar.offset,e,r)))}}fitIntoScrollBounds(t){const e=Point.clone(t);if(this._scrollBounds&exports.ScrollBounds.Horizontal){const{scrollLeftMax:t}=this;e.x<0?e.x=0:e.x>t&&(e.x=t)}if(this._scrollBounds&exports.ScrollBounds.Vertical){const{scrollTopMax:t}=this;e.y<0?e.y=0:e.y>t&&(e.y=t)}return e}ensureScrollOffsetValid(){this._scrollBounds!==exports.ScrollBounds.None&&this._child&&(this.scrollOffset=this.fitIntoScrollBounds(this._scrollOffset))}get scrollSize(){return this._scrollSize?this._scrollSize:this._child?Size$1.add(this._child.size,this._child.offset):Size$1.zero}set scrollSize(t){t!==this._scrollSize&&(t&&this._scrollSize&&Size$1.eq(t,this._scrollSize)||(this._scrollSize=t),this.markLayoutDirty())}get scrollWidth(){return this.scrollSize.width}get scrollHeight(){return this.scrollSize.height}get scrollLeftMax(){return Math.max(0,this.scrollWidth-this._size.width)}get scrollTopMax(){return Math.max(0,this.scrollHeight-this._size.height)}get scrollLeft(){return this.scrollOffset.x}set scrollLeft(t){t!==this.scrollLeft&&(this.scrollOffset=Point.fromXY(t,this._scrollOffset.y))}get scrollTop(){return this.scrollOffset.y}set scrollTop(t){t!==this.scrollTop&&(this.scrollOffset=Point.fromXY(this._scrollOffset.x,t))}adoptChild(t){super.adoptChild(t),this.updateChildViewport(t)}updateChildViewport(t){const{viewport:e}=t;t.viewport=Rect.fromLTWH(e.left,e.top,this._size.width,this._size.height),this.hScrollbar.viewportLength=t.viewport.width,this.vScrollbar.viewportLength=t.viewport.height}setSize(t){return!!super.setSize(t)&&(this._child&&(this.updateChildViewport(this._child),this.hScrollbar.offset=Point.fromXY(this.scrollbarMargin,this._size.height-this.scrollbarMargin-this.hScrollbar.size.height),this.hScrollbar.length=this._size.width-2*this.scrollbarMargin-this.vScrollbar.size.width,this.vScrollbar.offset=Point.fromXY(this._size.width-this.scrollbarMargin-this.vScrollbar.size.width,this.scrollbarMargin),this.vScrollbar.length=this._size.height-2*this.scrollbarMargin-this.hScrollbar.size.height),!0)}performLayout(){if(this.updateOffsetAndSize(),this._child){this.updateChildViewport(this._child);const t=Boolean(this._scrollBounds&exports.ScrollBounds.Vertical||this._scrollBounds&exports.ScrollBounds.Horizontal)&&!this._scrollSize;this._child.layoutAsChild(t,!1),this.ensureScrollOffsetValid(),this.hScrollbar.layoutAsChild(!1,!1),this.hScrollbar.contentLength=this.scrollWidth,this.vScrollbar.layoutAsChild(!1,!1),this.vScrollbar.contentLength=this.scrollHeight}}visitChildren(t){this._child&&t(this._child),this.hScrollbar&&t(this.hScrollbar),this.vScrollbar&&t(this.vScrollbar)}attach(t){super.attach(t),this.vScrollbar.attach(t),this.hScrollbar.attach(t)}detach(){super.detach(),this.vScrollbar.detach(),this.hScrollbar.detach()}get repaintBoundary(){return!0}hitTestChildren(t,e){if(!this._child)return!1;const r=this.hitTestScrollbar(this.vScrollbar,t,e)||this.hitTestScrollbar(this.hScrollbar,t,e);return r||super.hitTestChildren(t,e)}hitTestScrollbar(t,e,r){return!t.offstage&&this.forcePaintScrollbar||0===this._scrollbarAutoHideDelay||this._scrollOffsetUpdateFlag>0&&e.addWithPaintOffset(Point.add(t.offset,this.viewportOffset),r,((e,n)=>(assert.assert(Point.eq(n,Point.add(r,Point.invert(Point.add(t.offset,this.viewportOffset))))),t.hitTest(e,n))))}dispatchScrollEvent(){const t=new SyntheticEvent("scroll",{bubbles:!1,cancelable:!1});this.dispatchEvent(t)}get onScroll(){return this._onScroll}set onScroll(t){this._onScroll&&this.removeEventListener("scroll",this._onScroll),this._onScroll=t,this._onScroll&&this.addEventListener("scroll",this._onScroll)}}RenderScrollView.DEFAULT_SCROLLBAR_AUTO_HIDE_DELAY=2e3;const cache={};class FontProps extends NonConstructiable{static from(t){if(cache[t])return cache[t];let e=1,r="";const n={"font-family":[],"font-size":""};for(let i,s=0;i=t.charAt(s);s+=1)if(4!==e||'"'!==i&&"'"!==i)if(3===e&&","===i)e=4,r="";else if(4===e&&","===i){const t=FontProps.parseIdentifier(r);t&&n["font-family"].push(t),r=""}else if(5===e&&" "===i)/^(?:\+|-)?(?:[0-9]*\.)?[0-9]+(?:deg|grad|rad|turn)$/.test(r)?(n["font-style"]+=" "+r,r=""):s-=1,e=1;else if(1!==e||" "!==i&&"/"!==i)2===e&&" "===i?(/^(?:\+|-)?([0-9]*\.)?[0-9]+(?:em|ex|ch|rem|vh|vw|vmin|vmax|px|mm|cm|in|pt|pc|%)?$/.test(r)&&(n["line-height"]=r),e=4,r=""):r+=i;else{if(/^(?:(?:xx|x)-large|(?:xx|s)-small|small|large|medium)$/.test(r)||/^(?:larg|small)er$/.test(r)||/^(?:\+|-)?(?:[0-9]*\.)?[0-9]+(?:em|ex|ch|rem|vh|vw|vmin|vmax|px|mm|cm|in|pt|pc|%)$/.test(r))e="/"===i?2:4,n["font-size"]=r;else if(/^italic$/.test(r))n["font-style"]=r;else if(/^oblique$/.test(r))n["font-style"]=r,e=5;else if(/^small-caps$/.test(r))n["font-variant"]=r;else if(/^(?:bold(?:er)?|lighter)$/.test(r))n["font-weight"]=r;else if(/^[+-]?(?:[0-9]*\.)?[0-9]+(?:e[+-]?(?:0|[1-9][0-9]*))?$/.test(r)){const t=parseFloat(r);t>=1&&t<=1e3&&(n["font-weight"]=r)}else/^(?:(?:ultra|extra|semi)-)?(?:condensed|expanded)$/.test(r)&&(n["font-stretch"]=r);r=""}else{let a=s+1;do{if(a=t.indexOf(i,a)+1,!a)throw new TypeError("Parse error: string is not closed by a ' or \"'")}while("\\"===t.charAt(a-2));n["font-family"].push(t.slice(s,a)),s=a-1,e=3,r=""}if(3===e&&!/^\s*$/.test(r))throw new TypeError(`Parse font-faimly error: '${r}'`);if(4===e){const t=FontProps.parseIdentifier(r);t&&n["font-family"].push(t)}if(!n["font-size"]||0===n["font-family"].length)throw new TypeError(`Can not resolve '${t}'`);return cache[t]=n}static parseIdentifier(t){const e=t.replace(/^\s+|\s+$/,"").replace(/\s+/g," ").split(" ");for(let t=0;t<e.length;t+=1)if(/^(?:-?\d|--)/.test(e[t])||!/^(?:[_a-zA-Z0-9-]|[^\0-\x9f]|(?:\\[0-9a-f]{1,6}(?:\r\n|[ \n\r\t\f])?|\\[^\n\r\f0-9a-f]))+$/.test(e[t]))return null;return e.join(" ")}static validateLengthUnit(t,e){FontProps.getLengthValue(t,e)}static getLengthValue(t,e){const r=LENGTH_PATTERN.exec(t);if(!r)throw new TypeError(`Invalid length, got ${t}`);const[,n,i]=r;if(i!==e)throw new TypeError(`Support '${e}' only, got '${i}'`);return parseFloat(n)}}const LENGTH_PATTERN=new RegExp("([\\d\\.]+)(px|pt|pc|in|cm|mm|%|em|ex|ch|rem|q)"),fontMetricsCache={};class FontMetrics extends NonConstructiable{static get defaultMeasureOptions(){if(FontMetrics._defaultMeasureOptions)return FontMetrics._defaultMeasureOptions;const t=3,e=3,r=PlatformAdapter.createCanvas(t,e).getContext("2d",{willReadFrequently:!0});return assert.assert(r),FontMetrics._defaultMeasureOptions={canvas:r.canvas,context:r,metricsString:"|ÉqÅM",baselineSymbol:"M",baselineMultiplier:1.4,heightMultiplier:2}}static measure(t,e){if(fontMetricsCache[t])return fontMetricsCache[t];const{canvas:r,context:n,metricsString:i,baselineSymbol:s,baselineMultiplier:a,heightMultiplier:o}=e?Object.assign(Object.assign({},FontMetrics.defaultMeasureOptions),e):FontMetrics.defaultMeasureOptions,u=FontProps.from(t);FontProps.validateLengthUnit(u["font-size"],"px");const l={ascent:0,descent:0,fontSize:0,cssFontProp:t};n.font=t;const h=Math.ceil(n.measureText(s).width*a),c=Math.ceil(n.measureText(i).width),f=Math.ceil(o*h);r.width=c,r.height=f,n.fillStyle="#f00",n.fillRect(0,0,c,f),n.font=t,n.textRendering="geometricPrecision",n.textBaseline="alphabetic",n.fillStyle="#000",n.fillText(i,0,h);const d=n.getImageData(0,0,c,f).data,p=d.length,g=4*c;let v=0,_=0,m=!1;for(v=0;v<h;++v){for(let t=0;t<g;t+=4)if(255!==d[_+t]){m=!0;break}if(m)break;_+=g}for(l.ascent=h-v,_=p-g,m=!1,v=f;v>h;--v){for(let t=0;t<g;t+=4)if(255!==d[_+t]){m=!0;break}if(m)break;_-=g}return l.descent=v-h,l.fontSize=l.ascent+l.descent,fontMetricsCache[t]=l}static measureWidth(t,e,r){if(r[t])return r[t];const{context:n}=FontMetrics.defaultMeasureOptions;return n.font=e,r[t]=n.measureText(t).width}}FontMetrics.HEIGHT_MULTIPLIER=2;class TextLine{constructor(t,e,r,n,i,s){this.owner=t,this.seq=e,this.text=r,this.width=n,this.hasEllipsis=i,this.lineMetrics=s,this.size=Size$1.fromWH(n,s.fontSize);const a=(this.owner.computedStyle.lineHeight-this.lineMetrics.fontSize)/2;this.offset=Point.fromXY(0,e*t.computedStyle.lineHeight+a)}paint(t,e){const r=Point.add(this.offset,e),n={style:exports.PaintStyle.fill,color:this.owner.computedStyle.color,font:this.owner.computedStyle.font};t.drawText(this.text,r.x,r.y+this.lineMetrics.ascent,n,r.x,r.y,this.size.width,this.size.height)}debugPaintBounds(t,e){const r={style:exports.PaintStyle.stroke,strokeWidth:1,color:"#FF00FF"};t.drawRect(e.x+this.offset.x,e.y+this.offset.y,this.size.width,this.size.height,r)}}class Tokenizer{static parse(t){if(0===t.length)return[];const e=[],r=Array.from(t),n=r.length;let i=r[0],s=Tokenizer.isDigitOrLetter(i),a=Tokenizer.isBreakingSpace(i.codePointAt(0)),o=Tokenizer.isRegionalIndicator(i.codePointAt(0)),u=i;for(let t=1;t<n;t++){const n=r[t],l=n.codePointAt(0),h=Tokenizer.isDigitOrLetter(n),c=Tokenizer.isBreakingSpace(l),f=Tokenizer.isRegionalIndicator(l),d=Tokenizer.isPunctuationStart(i)||Tokenizer.isPunctuationEnd(n)||s&&h||!a&&c||a&&c||Tokenizer.isVariationSelector(l)||o&&f||Tokenizer.isZWJ(l)||Tokenizer.isEmojiModifier(l);i=n,s=h,a=c,o=f,d?u+=n:(e.push(u),u=n)}return""!==u&&e.push(u),e}static isPunctuationStart(t){return-1!==PUNCTUATION_START.indexOf(t)}static isPunctuationEnd(t){return-1!==PUNCTUATION_END.indexOf(t)}static isDigitOrLetter(t){return DIGIT_OR_LETTER.test(t)}static isNewline(t){return"\n"===t||"\r"===t}static isBreakingSpace(t){return-1!==BREAKING_SPACES.indexOf(t)}static isVariationSelector(t){return 65024<=t&&t<=65039}static isEmojiModifier(t){return 127995<=t&&t<=127999}static isZWJ(t){return 8205===t}static isRegionalIndicator(t){return 127462<=t&&t<=127487}}const PUNCTUATION_START="([{·‘“〈《「『【〔〖（．［｛￡￥",PUNCTUATION_END="!),.:;?]}¨·ˇˉ―‖’”…∶、。〃々〉》」』】〕〗！＂＇），．：；？］｀｜｝～￠",BREAKING_SPACES=[9,32,8192,8193,8194,8195,8196,8197,8198,8200,8201,8202,8287,12288],DIGIT_OR_LETTER=/[a-z0-9]/i;class TextWrapper{constructor(t){this.paragraph=t,this.seq=0,this.text="",this.width=0,this.maxLines=0,this.measureWidthCache={},this._textOverflowWidth=-1,this.maxLines=t.computedStyle.maxLines}breakTextIntoLines(t,e,r){const{computedStyle:{font:n,textOverflow:i}}=this.paragraph,s=FontMetrics.measure(n),a=t[Symbol.iterator]();let o=a.next();for(;!o.done;){const t=o.value;if(Tokenizer.isNewline(t)){if(this.text+=t,this.endLine(r,!1,s),this.canCommit){o=a.next();continue}break}const u=this.measureWidth(t,n),l=this.getLineMaxWidth(e);if(this.width+u>l){const u=t.trimEnd(),h=this.measureWidth(u,n);if(this.width+h>l){if(this.isLastLine){const e=this.measureWidth(i,n),r=this.breakWord(t,n,l-this.width,0);r>0&&(this.text+=t.substr(0,r),this.width+=this.measureWidth(t.substr(0,r),n)),this.text+=i,this.width+=e,o=a.next()}else if(0===this.width){const r=this.breakWord(t,n,e);this.text+=t.substr(0,r),this.width+=this.measureWidth(t.substr(0,r),n),o={value:t.substr(r)}}this.endLine(r,this.isLastLine,s)}else this.width+=h,this.text+=u,o=a.next()}else this.width+=u,this.text+=t,o=a.next();if(!this.canCommit)break}this.text&&this.endLine(r,this.isLastLine,s)}breakWord(t,e,r,n=1){const i=t.length;assert.assert(i>0,"text 不能是空字符串");for(let s=0;s<i;s++){if(this.measureWidth(t.substr(0,s+1),e)>r)return Math.max(s,n)}return assert.assert((()=>{assert.assert(!1,`剩余空间足够容纳整个文本，不需要断词。subTextWidth: ${this.measureWidth(t,e)}, breakWidth: ${r}`)})),-1}measureWidth(t,e){return FontMetrics.measureWidth(t,e,this.measureWidthCache)}get isLastLine(){return 0!==this.maxLines&&this.seq>=this.maxLines-1}getLineMaxWidth(t){return this.isLastLine?t-this.textOverflowWidth:t}endLine(t,e,r){assert.assert(this.canCommit),t({seq:this.seq,text:this.text,width:this.width,hasEllipsis:e,lineMetrics:r}),this.seq++,this.width=0,this.text=""}get canCommit(){return 0===this.maxLines||this.seq<this.maxLines}get textOverflow(){return this.paragraph.computedStyle.textOverflow}get textOverflowWidth(){return this._textOverflowWidth>=0?this._textOverflowWidth:this._textOverflowWidth=this.measureWidth(this.textOverflow,this.paragraph.computedStyle.font)}}class ParagraphStyle{get computedStyle(){var t,e,r,n,i,s,a,o,u,l,h,c,f;const{defaultStyle:d}=ParagraphStyle,p=this.font?FontProps.from(this.font):null,g=null!==(t=null==p?void 0:p["font-size"])&&void 0!==t?t:`${null!==(e=this.fontSize)&&void 0!==e?e:d.fontSize}px`,v=null!==(n=null!==(r=null==p?void 0:p["font-style"])&&void 0!==r?r:this.fontStyle)&&void 0!==n?n:d.fontStyle,_=null!==(s=null!==(i=null==p?void 0:p["font-variant"])&&void 0!==i?i:this.fontVariant)&&void 0!==s?s:d.fontVariant,m=null!==(o=null!==(a=null==p?void 0:p["font-weight"])&&void 0!==a?a:this.fontWeight)&&void 0!==o?o:d.fontWeight,y=null!==(l=null!==(u=null==p?void 0:p["font-family"])&&void 0!==u?u:this.fontFamily)&&void 0!==l?l:d.fontFamily,b=(null==p?void 0:p["line-height"])?FontProps.getLengthValue(String(null==p?void 0:p["line-height"]),"px"):null!==(h=this.lineHeight)&&void 0!==h?h:d.lineHeight,w=`${v} ${_} ${m} ${g} ${y}`,C=null!==(c=this.color)&&void 0!==c?c:d.color,S="number"==typeof this.maxLines?this.maxLines:"none"===this.maxLines?0:d.maxLines,T=null!==(f=this.textAlign)&&void 0!==f?f:d.textAlign;return{font:w,lineHeight:b,color:C,maxLines:S,textOverflow:d.textOverflow,textAlign:T}}}ParagraphStyle.defaultStyle={fontFamily:"Helvetica Neue,Arial,PingFang SC,Microsoft Yahei,Hiragino Sans GB,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji",fontSize:16,fontStyle:"normal",fontVariant:"normal",fontWeight:"normal",lineHeight:24,color:"#000",maxLines:0,textOverflow:"…",textAlign:"left"};class ParagraphBuilder{constructor(){this.text=""}get style(){var t;return null!==(t=this._style)&&void 0!==t?t:this._style=new ParagraphStyle}addText(t){this.text+=t}build(){return new Paragraph(this.text,this.style.computedStyle)}}class Paragraph{constructor(t,e){this.text=t,this.computedStyle=e,this.size=Size$1.zero,this.lines=[],this.maxWidth=-1}addLine({seq:t,text:e,width:r,hasEllipsis:n,lineMetrics:i}){const s=new TextLine(this,t,e,r,n,i);this.lines.push(s),this.size=Size$1.max(this.size,Size$1.fromWH(s.size.width,s.offset.y+s.size.height))}layout(t){var e;if(t===this.maxWidth)return;this.maxWidth=t,assert.assert(t>0,"maxWidth must greater than zero"),this.lines.length=0;new TextWrapper(this).breakTextIntoLines(null!==(e=this.tokens)&&void 0!==e?e:this.tokens=Tokenizer.parse(this.text),t,this.addLine.bind(this))}paint(t,e,r){const{textAlign:n}=this.computedStyle,i=Point.clone(Point.zero);for(const s of this.lines)if("left"===n)s.paint(t,e),DebugFlags.paintTextLineBounds&&s.debugPaintBounds(t,e);else{"center"===n?i.x=.5*(r-s.width):"right"===n&&(i.x=r-s.width);const a=Point.add(i,e);s.paint(t,a),DebugFlags.paintTextLineBounds&&s.debugPaintBounds(t,a)}}}__decorate([Log({disabled:!0})],Paragraph.prototype,"layout",null);class RenderText extends RenderBox{constructor(){super(...arguments),this.yogaMeasure=(t,e,r,n)=>e===entryBrowser.MEASURE_MODE_EXACTLY&&n===entryBrowser.MEASURE_MODE_EXACTLY?(this.paragraph.layout(t),Size$1.fromWH(t,r)):e===entryBrowser.MEASURE_MODE_EXACTLY?n===entryBrowser.MEASURE_MODE_AT_MOST?(this.paragraph.layout(t),{width:t,height:r}):(this.paragraph.layout(t),{width:t,height:this.paragraph.size.height}):(entryBrowser.MEASURE_MODE_EXACTLY,this.paragraph.layout(t),{width:this.paragraph.size.width,height:this.paragraph.size.height}),this._text=""}get paragraph(){if(this._paragraph)return this._paragraph;const t=new ParagraphBuilder;return t.addText(this._text),this.style.has("fontStyle")&&(t.style.fontStyle=this.style.fontStyle),this.style.has("fontVariant")&&(t.style.fontVariant=this.style.fontVariant),this.style.has("fontWeight")&&(t.style.fontWeight=this.style.fontWeight),this.style.has("fontStretch")&&(t.style.fontStretch=this.style.fontStretch),this.style.has("fontSize")&&(t.style.fontSize=this.style.fontSize),this.style.has("lineHeight")&&(t.style.lineHeight=this.style.lineHeight),this.style.has("fontFamily")&&(t.style.fontFamily=this.style.fontFamily),this.style.has("font")&&(t.style.font=this.style.font),this.style.has("color")&&(t.style.color=this.style.color),this.style.has("maxLines")&&(t.style.maxLines=this.style.maxLines),this.style.has("textAlign")&&(t.style.textAlign=this.style.textAlign),this._paragraph=t.build()}trackStyle(){super.trackStyle(),this.style.on("fontStyle",this.handleTextStyleChange,this),this.style.on("fontVariant",this.handleTextStyleChange,this),this.style.on("fontWeight",this.handleTextStyleChange,this),this.style.on("fontStretch",this.handleTextStyleChange,this),this.style.on("fontSize",this.handleTextStyleChange,this),this.style.on("lineHeight",this.handleTextStyleChange,this),this.style.on("fontFamily",this.handleTextStyleChange,this),this.style.on("font",this.handleTextStyleChange,this),this.style.on("color",this.handleTextStyleChange,this),this.style.on("maxLines",this.handleTextStyleChange,this),this.style.on("textAlign",this.handleTextAlignChange,this),this.style.on("maxWidth",this.handleMaxWidthChange,this)}handleTextAlignChange(){this._paragraph=void 0,this.markLayoutDirty(),this.markPaintDirty()}handleTextStyleChange(){this._paragraph=void 0,this.markLayoutDirty(),this.markPaintDirty()}handleMaxWidthChange(t="auto"){this._yogaNode?super.handleMaxWidthChange(t):this.markLayoutDirty()}get text(){return this._text}set text(t){t!==this._text&&(this._text=t,this._paragraph=void 0,this.markLayoutDirty())}paint(t,e){assert.assert(this._paragraph,"_paragraph 对象不存在");const r=!Size$1.isZero(this._size),{_boxDecorator:n}=this;r&&(null==n||n.paintBackground(t,e,this._size));const{paddingLeft:i=0,paddingTop:s=0,width:a}=this.style;assert.assert("number"==typeof i,"paddingRight 仅支持 number"),assert.assert("number"==typeof s,"paddingTop 仅支持 number");const o=Point.add(e,Point.fromXY(i,s)),u="number"==typeof a?a:this._paragraph.size.width;this._paragraph.paint(t.canvas,o,u),r&&(null==n||n.paintBorder(t,e,this._size))}updateOffsetAndSizeFromYogaNode(){super.updateOffsetAndSizeFromYogaNode(),this._paragraph||"none"===this.style.display||this.paragraph.layout(this._size.width)}updateOffsetAndSizeFromStyle(){const{width:t,maxWidth:e,height:r,left:n,top:i,paddingLeft:s=0,paddingTop:a=0,paddingRight:o=0,paddingBottom:u=0}=this.style;let l;assert.assert("string"!=typeof t,"Percent unit is not supported"),assert.assert("string"!=typeof r,"Percent unit is not supported"),assert.assert("string"!=typeof n,"Percent unit is not supported"),assert.assert("string"!=typeof i,"Percent unit is not supported"),assert.assert("number"==typeof s,"paddingLeft 仅支持 number"),assert.assert("number"==typeof a,"paddingTop 仅支持 number"),assert.assert("number"==typeof o,"paddingRight 仅支持 number"),assert.assert("number"==typeof u,"paddingBottom 仅支持 number"),this.paragraph.layout("number"==typeof t?t-s-o:"number"==typeof e?e-s-o:Number.MAX_SAFE_INTEGER),l="number"==typeof t&&"number"==typeof r?Size$1.fromWH(t,r):"number"==typeof t?Size$1.fromWH(t,this.paragraph.size.height):"number"==typeof r?Size$1.fromWH(this.paragraph.size.width,r):Size$1.clone(this.paragraph.size),l.width+=s+o,l.height+=a+u,this.size=l,this.offset=Point.fromXY(null!=n?n:0,null!=i?i:0)}redepthChildren(){}visitChildren(){}hitTestSelf(){return!0}}class ChunkParentData extends ViewParentData{detach(){super.detach(),assert.assert(!this.chunk),assert.assert(!this.nextSiblingInChunk),assert.assert(!this.prevSiblingInChunk)}}class RenderChunk extends RenderView{constructor(){super(...arguments),this._capacity=RenderChunk.DEFAULT_CAPACITY,this.chunks=new ChunkContainer}get capacity(){return this._capacity}set capacity(t){this._capacity=t}get isOffstage(){return this.chunks.isOffstage}set isOffstage(t){this.chunks.isOffstage=t}static get defaultIsOffstage(){return ChunkContainer.defaultIsOffstage}get repaintBoundary(){return!0}setupParentData(t){t.parentData instanceof ChunkParentData||(t.parentData=new ChunkParentData)}internalInsertAfter(t,e){super.internalInsertAfter(t,e),this.insertIntoChunk(t)}internalRemoveChild(t){super.internalRemoveChild(t),this.removeFromChunk(t)}insertIntoChunk(t){this.mergeIntoChunk(t,this._capacity)}mergeIntoChunk(t,e){var r,n,i,s;assert.assert(t.parentData,"child 不能没有 parentData"),assert.assert(!t.parentData.chunk,"child 不能已分配 chunk");const a=null===(n=null===(r=t.parentData.prevSibling)||void 0===r?void 0:r.parentData)||void 0===n?void 0:n.chunk,o=null===(s=null===(i=t.parentData.nextSibling)||void 0===i?void 0:i.parentData)||void 0===s?void 0:s.chunk;if(a!==o)if(a&&a.childCount<e)assert.assert(a.lastChild===t.parentData.prevSibling),a.insertAfter(t,a.lastChild);else if(o&&o.childCount<e)assert.assert(o.firstChild===t.parentData.nextSibling),o.insertBefore(t,o.firstChild);else{this.createChunkAfter(a).appendChild(t)}else if(a){if(a.insertAfter(t,t.parentData.prevSibling),a.childCount>=e){const t=a.lastChild;assert.assert(t),a.removeChild(t),this.mergeIntoChunk(t,e)}}else{this.createChunkAfter(a).appendChild(t)}}createChunkAfter(t){const e=new Chunk;return this.chunks.insertAfter(e,t),e}removeFromChunk(t){var e;const r=null===(e=t.parentData)||void 0===e?void 0:e.chunk;r&&(r.removeChild(t),0===r.childCount&&this.chunks.removeChild(r))}attach(t){super.attach(t),this.chunks.attach(t)}detach(){super.detach(),this.chunks.detach()}_paint(t,e){this.chunks.paintChildren(t,e,this.viewportOffset,this._viewport)}markLayoutDirty(t){var e;if(super.markLayoutDirty(),t){const r=null===(e=t.parentData)||void 0===e?void 0:e.chunk;r&&(r._layoutDirty=!0)}}markPaintDirty(t){var e;if(super.markPaintDirty(),t){const r=null===(e=t.parentData)||void 0===e?void 0:e.chunk;r&&(r._paintDirty=!0)}}performLayout(){super.performLayout(),this.chunks.performLayout()}hitTestChildren(t,e){var r;let n=this._lastChild;const{viewportOffset:i}=this;for(;n;){if(!n.parentData.chunk.offstage&&t.addWithPaintOffset(Point.add(n._offset,i),e,((t,r)=>(assert.assert(Point.eq(r,Point.add(e,Point.invert(Point.add(n._offset,i))))),n.hitTest(t,r)))))return!0;n=null===(r=n.parentData)||void 0===r?void 0:r.prevSibling}return!1}}RenderChunk.DEFAULT_CAPACITY=6;class ChunkContainer extends RenderView{constructor(){super(...arguments),this.isOffstage=ChunkContainer.defaultIsOffstage}performLayout(){let t=this._firstChild;for(;t;)t.layoutAsChild(!0,!1),t=t.parentData.nextSibling}static defaultIsOffstage(t,e){return!Rect.overlaps(t,e)}paintChildren(t,e,r,n){let i=this._firstChild;const s=!Rect.isEmpty(n);for(;i;)i.offstage=s&&this.isOffstage(n,i.bounds),i.offstage||t.paintChild(i,Point.add3(i._offset,e,r)),i=i.parentData.nextSibling}}class Chunk extends RenderObject{constructor(){super(...arguments),this._childCount=0}paint(t,e){let r=this._firstChild;const n=Point.invert(this._offset);for(;r;)t.paintChild(r,Point.add3(r._offset,e,n)),r=r.parentData.nextSiblingInChunk}hitTestChildren(t,e){throw new IllegalStateError("Chunk 只提供分块渲染功能，不提供命中检测功能，如果你遇到了这个错误，这通常是 glui 的问题。")}performLayout(){let t,e=this._firstChild;for(;e;){const r=Rect.fromOffsetAndSize(e._offset,e._size);t=t?Rect.expandToInclude(t,r):r,e=e.parentData.nextSiblingInChunk}assert.assert(t,"bounds 是 undefined，说明当前 Chunk 是空的，不应该执行布局流程"),this.offset=Point.fromXY(t.left,t.top),this.size=Size$1.fromWH(t.width,t.height)}get repaintBoundary(){return!0}get childCount(){return this._childCount}get firstChild(){return this._firstChild}get lastChild(){return this._lastChild}childBefore(t){var e;return assert.assert(t.parent instanceof Chunk),null===(e=t.parentData)||void 0===e?void 0:e.prevSiblingInChunk}childAfter(t){var e;return assert.assert(t.parent instanceof Chunk),null===(e=t.parentData)||void 0===e?void 0:e.nextSiblingInChunk}redepthChildren(){let t=this._firstChild;for(;t;){this.redepthChild(t);t=t.parentData.nextSiblingInChunk}}visitChildren(t){let e=this._firstChild;for(;e;)t(e),e=e.parentData.nextSiblingInChunk}debugUltimatePrevSiblingOf(t,e){let r=t.parentData;for(;r.prevSiblingInChunk;)assert.assert(r.prevSiblingInChunk!==t),r=(t=r.prevSiblingInChunk).parentData;return t===e}debugUltimateNextSiblingOf(t,e){let r=t.parentData;for(;r.nextSiblingInChunk;)assert.assert(r.nextSiblingInChunk!==t),r=(t=r.nextSiblingInChunk).parentData;return t===e}internalInsertAfter(t,e){var r;const n=t.parentData;if(assert.assert(!n.nextSiblingInChunk,"child 不能已关联 nextSiblingInChunk"),assert.assert(!n.prevSiblingInChunk,"child 不能已关联 prevSiblingInChunk"),assert.assert(!n.chunk,"child 不能已分配 chunk"),n.chunk=this,t.offstage=!1,this._childCount++,assert.assert(this._childCount>0),e){assert.assert(this._firstChild),assert.assert(this._lastChild),assert.assert(this.debugUltimatePrevSiblingOf(e,this._firstChild)),assert.assert(this.debugUltimateNextSiblingOf(e,this._lastChild));const r=e.parentData;if(r.nextSiblingInChunk){n.nextSiblingInChunk=r.nextSiblingInChunk,n.prevSiblingInChunk=e;const i=n.prevSiblingInChunk.parentData,s=n.nextSiblingInChunk.parentData;i.nextSiblingInChunk=t,s.prevSiblingInChunk=t,assert.assert(r.nextSiblingInChunk===t)}else assert.assert(e===this._lastChild),n.prevSiblingInChunk=e,r.nextSiblingInChunk=t,this._lastChild=t}else{if(n.nextSiblingInChunk=this._firstChild,this._firstChild){const e=this._firstChild.parentData;assert.assert(e),e.prevSiblingInChunk=t}this._firstChild=t,null!==(r=this._lastChild)&&void 0!==r||(this._lastChild=t)}this._layoutDirty=!0,this._paintDirty=!0}insertAfter(t,e){assert.assert(t!==this),assert.assert(e!==this),assert.assert(t!==e,"节点不能把自己添加到自己后面"),assert.assert(t!==this._firstChild,"节点已经是 firstChild"),assert.assert(t!==this._lastChild,"节点已经是 lastChild"),this.internalInsertAfter(t,e)}insertBefore(t,e){var r;this.insertAfter(t,null===(r=null==e?void 0:e.parentData)||void 0===r?void 0:r.prevSiblingInChunk)}appendChild(t){this.insertAfter(t,this._lastChild)}internalRemoveChild(t){const e=t.parentData;if(assert.assert(this.debugUltimatePrevSiblingOf(t,this._firstChild)),assert.assert(this.debugUltimateNextSiblingOf(t,this._lastChild)),assert.assert(e.chunk===this,"child 已分配的 chunk 不是自己"),assert.assert(this._childCount>=0),e.prevSiblingInChunk){e.prevSiblingInChunk.parentData.nextSiblingInChunk=e.nextSiblingInChunk}else assert.assert(this._firstChild===t),this._firstChild=e.nextSiblingInChunk;if(e.nextSiblingInChunk){e.nextSiblingInChunk.parentData.prevSiblingInChunk=e.prevSiblingInChunk}else assert.assert(this._lastChild===t),this._lastChild=e.prevSiblingInChunk;e.prevSiblingInChunk=void 0,e.nextSiblingInChunk=void 0,e.chunk=void 0,t.offstage=!0,this._childCount-=1,this._layoutDirty=!0,this._paintDirty=!0}removeChild(t){this.internalRemoveChild(t)}removeAllChildren(){let t=this._firstChild;for(;t;){const e=t.parentData,r=e.nextSiblingInChunk;e.prevSiblingInChunk=void 0,e.nextSiblingInChunk=void 0,e.chunk=void 0,t=r}this._firstChild=void 0,this._lastChild=void 0,this._childCount=0}get debugChildren(){const t=[];if(this._firstChild){let e=this._firstChild;for(;t.push(e),e!==this._lastChild;)e=e.parentData.nextSiblingInChunk}return t}}function createElement(t){if("View"===t)return new RenderView;if("Chunk"===t)return new RenderChunk;if("Flex"===t)return new RenderFlex;if("Canvas"===t)return new RenderCanvas;if("Rect"===t)return new RenderRect;if("RRect"===t)return new RenderRRect;if("Circle"===t)return new RenderCircle;if("Path"===t)return new RenderPath;if("ScrollView"===t)return new RenderScrollView;if("Text"===t)return new RenderText;if("Image"===t)return new RenderImage;throw new Error(`没有该类型的 Element: ${t}`)}__decorate([Log()],Chunk.prototype,"performLayout",null),exports.AbstractNode=AbstractNode,exports.AdvancedRasterCache=AdvancedRasterCache,exports.BoxDecorator=BoxDecorator,exports.BoxShadow=BoxShadow,exports.Canvas2DCanvas=Canvas2DCanvas,exports.ChunkParentData=ChunkParentData,exports.Circle=Circle,exports.ClipCircleLayer=ClipCircleLayer,exports.ClipRRectLayer=ClipRRectLayer,exports.ClipRectLayer=ClipRectLayer,exports.ContainerLayer=ContainerLayer,exports.DOMEventBinding=DOMEventBinding,exports.DebugFlags=DebugFlags,exports.FlexParentData=FlexParentData,exports.HashMap=HashMap,exports.HitTestEntry=HitTestEntry,exports.HitTestResult=HitTestResult,exports.IllegalStateError=IllegalStateError,exports.Image=Image$1,exports.K=K,exports.Layer=Layer,exports.LayerTree=LayerTree,exports.LinkedList=LinkedList,exports.Log=Log,exports.LoggerFactory=LoggerFactory,exports.Matrix=Matrix,exports.MutableMatrix=MutableMatrix,exports.NonConstructiable=NonConstructiable,exports.OffsetLayer=OffsetLayer,exports.Paint=Paint,exports.PaintContext=PaintContext,exports.ParentData=ParentData,exports.Picture=Picture,exports.PictureLayer=PictureLayer,exports.PictureRecoder=PictureRecoder,exports.PlatformAdapter=PlatformAdapter,exports.Point=Point,exports.PrerollContext=PrerollContext,exports.RRect=RRect,exports.RasterCache=RasterCache,exports.RasterCacheResult=RasterCacheResult,exports.Rasterizer=Rasterizer,exports.RecorderCanvas=RecorderCanvas,exports.Rect=Rect,exports.RenderCanvas=RenderCanvas,exports.RenderChunk=RenderChunk,exports.RenderCircle=RenderCircle,exports.RenderFlex=RenderFlex,exports.RenderImage=RenderImage,exports.RenderObject=RenderObject,exports.RenderPath=RenderPath,exports.RenderPipeline=RenderPipeline,exports.RenderRRect=RenderRRect,exports.RenderRect=RenderRect,exports.RenderScrollView=RenderScrollView,exports.RenderShape=RenderShape,exports.RenderSingleChild=RenderSingleChild,exports.RenderText=RenderText,exports.RenderView=RenderView,exports.Shader=Shader,exports.Size=Size$1,exports.StyleMap=StyleMap,exports.Surface=Surface,exports.SyntheticEvent=SyntheticEvent,exports.SyntheticEventDispatcher=SyntheticEventDispatcher,exports.SyntheticEventManager=SyntheticEventManager,exports.SyntheticMouseEvent=SyntheticMouseEvent,exports.SyntheticPointerEvent=SyntheticPointerEvent,exports.SyntheticWheelEvent=SyntheticWheelEvent,exports.TransformLayer=TransformLayer,exports.UnimplementedError=UnimplementedError,exports.UnsupportedError=UnsupportedError,exports.ViewParentData=ViewParentData,exports.createElement=createElement,exports.makeCheckerboardShader=makeCheckerboardShader,Object.defineProperty(exports,"__esModule",{value:!0})}));
//# sourceMappingURL=core.min.js.map
