"use strict"; (function() { Error.stackTraceLimit=Infinity;var $global,$module;if(typeof window!=="undefined"){$global=window;}else if(typeof self!=="undefined"){$global=self;}else if(typeof global!=="undefined"){$global=global;$global.require=require;}else{console.log("warning: no global object found");}if(typeof module!=="undefined"){$module=module;}var $packages={},$reflect,$idCounter=0;var $keys=function(m){return m?Object.keys(m):[];};var $min=Math.min;var $mod=function(x,y){return x%y;};var $parseInt=parseInt;var $parseFloat=function(f){if(f!==undefined&&f!==null&&f.constructor===Number){return f;}return parseFloat(f);};var $flushConsole=function(){};var $mapArray=function(array,f){var newArray=new array.constructor(array.length),i;for(i=0;islice.$capacity||max>slice.$capacity){$throwRuntimeError("slice bounds out of range");}var s=new slice.constructor(slice.$array);s.$offset=slice.$offset+low;s.$length=slice.$length-low;s.$capacity=slice.$capacity-low;if(high!==undefined){s.$length=high-low;}if(max!==undefined){s.$capacity=max-low;}return s;};var $sliceToArray=function(slice){if(slice.$length===0){return[];}if(slice.$array.constructor!==Array){return slice.$array.subarray(slice.$offset,slice.$offset+slice.$length);}return slice.$array.slice(slice.$offset,slice.$offset+slice.$length);};var $decodeRune=function(str,pos){var c0=str.charCodeAt(pos);if(c0<0x80){return[c0,1];}if(c0!==c0||c0<0xC0){return[0xFFFD,1];}var c1=str.charCodeAt(pos+1);if(c1!==c1||c1<0x80||0xC0<=c1){return[0xFFFD,1];}if(c0<0xE0){var r=(c0&0x1F)<<6|(c1&0x3F);if(r<=0x7F){return[0xFFFD,1];}return[r,2];}var c2=str.charCodeAt(pos+2);if(c2!==c2||c2<0x80||0xC0<=c2){return[0xFFFD,1];}if(c0<0xF0){var r=(c0&0x0F)<<12|(c1&0x3F)<<6|(c2&0x3F);if(r<=0x7FF){return[0xFFFD,1];}if(0xD800<=r&&r<=0xDFFF){return[0xFFFD,1];}return[r,3];}var c3=str.charCodeAt(pos+3);if(c3!==c3||c3<0x80||0xC0<=c3){return[0xFFFD,1];}if(c0<0xF8){var r=(c0&0x07)<<18|(c1&0x3F)<<12|(c2&0x3F)<<6|(c3&0x3F);if(r<=0xFFFF||0x10FFFF0x10FFFF||(0xD800<=r&&r<=0xDFFF)){r=0xFFFD;}if(r<=0x7F){return String.fromCharCode(r);}if(r<=0x7FF){return String.fromCharCode(0xC0|r>>6,0x80|(r&0x3F));}if(r<=0xFFFF){return String.fromCharCode(0xE0|r>>12,0x80|(r>>6&0x3F),0x80|(r&0x3F));}return String.fromCharCode(0xF0|r>>18,0x80|(r>>12&0x3F),0x80|(r>>6&0x3F),0x80|(r&0x3F));};var $stringToBytes=function(str){var array=new Uint8Array(str.length),i;for(i=0;inewCapacity){newOffset=0;newCapacity=Math.max(newLength,slice.$capacity<1024?slice.$capacity*2:Math.floor(slice.$capacity*5/4));if(slice.$array.constructor===Array){newArray=slice.$array.slice(slice.$offset,slice.$offset+slice.$length);newArray.length=newCapacity;var zero=slice.constructor.elem.zero,i;for(i=slice.$length;i>0;this.$low=low>>>0;this.$val=this;};typ.prototype.$key=function(){return string+"$"+this.$high+"$"+this.$low;};break;case $kindUint64:typ=function(high,low){this.$high=(high+Math.floor(Math.ceil(low)/4294967296))>>>0;this.$low=low>>>0;this.$val=this;};typ.prototype.$key=function(){return string+"$"+this.$high+"$"+this.$low;};break;case $kindComplex64:case $kindComplex128:typ=function(real,imag){this.$real=real;this.$imag=imag;this.$val=this;};typ.prototype.$key=function(){return string+"$"+this.$real+"$"+this.$imag;};break;case $kindArray:typ=function(v){this.$val=v;};typ.Ptr=$newType(4,$kindPtr,"*"+string,"","",function(array){this.$get=function(){return array;};this.$set=function(v){$copy(this,v,typ);};this.$val=array;});typ.init=function(elem,len){typ.elem=elem;typ.len=len;typ.prototype.$key=function(){return string+"$"+Array.prototype.join.call($mapArray(this.$val,function(e){var key=e.$key?e.$key():String(e);return key.replace(/\\/g,"\\\\").replace(/\$/g,"\\$");}),"$");};typ.extendReflectType=function(rt){rt.arrayType=new $reflect.arrayType.Ptr(rt,elem.reflectType(),undefined,len);};typ.Ptr.init(typ);Object.defineProperty(typ.Ptr.nil,"nilCheck",{get:$throwNilPointerError});};break;case $kindChan:typ=function(capacity){this.$val=this;this.$capacity=capacity;this.$buffer=[];this.$sendQueue=[];this.$recvQueue=[];this.$closed=false;};typ.prototype.$key=function(){if(this.$id===undefined){$idCounter++;this.$id=$idCounter;}return String(this.$id);};typ.init=function(elem,sendOnly,recvOnly){typ.elem=elem;typ.sendOnly=sendOnly;typ.recvOnly=recvOnly;typ.nil=new typ(0);typ.nil.$sendQueue=typ.nil.$recvQueue={length:0,push:function(){},shift:function(){return undefined;},indexOf:function(){return-1;}};typ.extendReflectType=function(rt){rt.chanType=new $reflect.chanType.Ptr(rt,elem.reflectType(),sendOnly?$reflect.SendDir:(recvOnly?$reflect.RecvDir:$reflect.BothDir));};};break;case $kindFunc:typ=function(v){this.$val=v;};typ.init=function(params,results,variadic){typ.params=params;typ.results=results;typ.variadic=variadic;typ.extendReflectType=function(rt){var typeSlice=($sliceType($ptrType($reflect.rtype.Ptr)));rt.funcType=new $reflect.funcType.Ptr(rt,variadic,new typeSlice($mapArray(params,function(p){return p.reflectType();})),new typeSlice($mapArray(results,function(p){return p.reflectType();})));};};break;case $kindInterface:typ={implementedBy:{},missingMethodFor:{}};typ.init=function(methods){typ.methods=methods;typ.extendReflectType=function(rt){var imethods=$mapArray(methods,function(m){return new $reflect.imethod.Ptr($newStringPtr(m[1]),$newStringPtr(m[2]),m[3].reflectType());});var methodSlice=($sliceType($ptrType($reflect.imethod.Ptr)));rt.interfaceType=new $reflect.interfaceType.Ptr(rt,new methodSlice(imethods));};};break;case $kindMap:typ=function(v){this.$val=v;};typ.init=function(key,elem){typ.key=key;typ.elem=elem;typ.extendReflectType=function(rt){rt.mapType=new $reflect.mapType.Ptr(rt,key.reflectType(),elem.reflectType(),undefined,undefined);};};break;case $kindPtr:typ=constructor||function(getter,setter,target){this.$get=getter;this.$set=setter;this.$target=target;this.$val=this;};typ.prototype.$key=function(){if(this.$id===undefined){$idCounter++;this.$id=$idCounter;}return String(this.$id);};typ.init=function(elem){typ.nil=new typ($throwNilPointerError,$throwNilPointerError);typ.extendReflectType=function(rt){rt.ptrType=new $reflect.ptrType.Ptr(rt,elem.reflectType());};};break;case $kindSlice:var nativeArray;typ=function(array){if(array.constructor!==nativeArray){array=new nativeArray(array);}this.$array=array;this.$offset=0;this.$length=array.length;this.$capacity=array.length;this.$val=this;};typ.make=function(length,capacity){capacity=capacity||length;var array=new nativeArray(capacity),i;if(nativeArray===Array){for(i=0;i1){string+=" ("+$mapArray(results,function(r){return r.string;}).join(", ")+")";}var typ=$funcTypes[string];if(typ===undefined){typ=$newType(4,$kindFunc,string,"","",null);typ.init(params,results,variadic);$funcTypes[string]=typ;}return typ;};var $interfaceTypes={};var $interfaceType=function(methods){var string="interface {}";if(methods.length!==0){string="interface { "+$mapArray(methods,function(m){return(m[2]!==""?m[2]+".":"")+m[1]+m[3].string.substr(4);}).join("; ")+" }";}var typ=$interfaceTypes[string];if(typ===undefined){typ=$newType(8,$kindInterface,string,"","",null);typ.init(methods);$interfaceTypes[string]=typ;}return typ;};var $emptyInterface=$interfaceType([]);var $ifaceNil={$key:function(){return"nil";}};var $error=$newType(8,$kindInterface,"error","error","",null);$error.init([["Error","Error","",$funcType([],[$String],false)]]);var $Map=function(){};(function(){var names=Object.getOwnPropertyNames(Object.prototype),i;for(i=0;i>>(32-y),(x.$low<>>0);}if(y<64){return new x.constructor(x.$low<<(y-32),0);}return new x.constructor(0,0);};var $shiftRightInt64=function(x,y){if(y===0){return x;}if(y<32){return new x.constructor(x.$high>>y,(x.$low>>>y|x.$high<<(32-y))>>>0);}if(y<64){return new x.constructor(x.$high>>31,(x.$high>>(y-32))>>>0);}if(x.$high<0){return new x.constructor(-1,4294967295);}return new x.constructor(0,0);};var $shiftRightUint64=function(x,y){if(y===0){return x;}if(y<32){return new x.constructor(x.$high>>>y,(x.$low>>>y|x.$high<<(32-y))>>>0);}if(y<64){return new x.constructor(0,x.$high>>>(y-32));}return new x.constructor(0,0);};var $mul64=function(x,y){var high=0,low=0,i;if((y.$low&1)!==0){high=x.$high;low=x.$low;}for(i=1;i<32;i++){if((y.$low&1<>>(32-i);low+=(x.$low<>>0;}}for(i=0;i<32;i++){if((y.$high&1<yHigh)||(xHigh===yHigh&&xLow>yLow))){yHigh=(yHigh<<1|yLow>>>31)>>>0;yLow=(yLow<<1)>>>0;n++;}for(i=0;i<=n;i++){high=high<<1|low>>>31;low=(low<<1)>>>0;if((xHigh>yHigh)||(xHigh===yHigh&&xLow>=yLow)){xHigh=xHigh-yHigh;xLow=xLow-yLow;if(xLow<0){xHigh--;xLow+=4294967296;}low++;if(low===4294967296){high++;low=0;}}yLow=(yLow>>>1|yHigh<<(32-1))>>>0;yHigh=yHigh>>>1;}if(returnRemainder){return new x.constructor(xHigh*rs,xLow*rs);}return new x.constructor(high*s,low*s);};var $divComplex=function(n,d){var ninf=n.$real===1/0||n.$real===-1/0||n.$imag===1/0||n.$imag===-1/0;var dinf=d.$real===1/0||d.$real===-1/0||d.$imag===1/0||d.$imag===-1/0;var nnan=!ninf&&(n.$real!==n.$real||n.$imag!==n.$imag);var dnan=!dinf&&(d.$real!==d.$real||d.$imag!==d.$imag);if(nnan||dnan){return new n.constructor(0/0,0/0);}if(ninf&&!dinf){return new n.constructor(1/0,1/0);}if(!ninf&&dinf){return new n.constructor(0,0);}if(d.$real===0&&d.$imag===0){if(n.$real===0&&n.$imag===0){return new n.constructor(0/0,0/0);}return new n.constructor(1/0,1/0);}var a=Math.abs(d.$real);var b=Math.abs(d.$imag);if(a<=b){var ratio=d.$real/d.$imag;var denom=d.$real*ratio+d.$imag;return new n.constructor((n.$real*ratio+n.$imag)/denom,(n.$imag*ratio-n.$real)/denom);}var ratio=d.$imag/d.$real;var denom=d.$imag*ratio+d.$real;return new n.constructor((n.$imag*ratio+n.$real)/denom,(n.$imag-n.$real*ratio)/denom);};var $stackDepthOffset=0;var $getStackDepth=function(){var err=new Error();if(err.stack===undefined){return undefined;}return $stackDepthOffset+err.stack.split("\n").length;};var $deferFrames=[],$skippedDeferFrames=0,$jumpToDefer=false,$panicStackDepth=null,$panicValue;var $callDeferred=function(deferred,jsErr){if($skippedDeferFrames!==0){$skippedDeferFrames--;throw jsErr;}if($jumpToDefer){$jumpToDefer=false;throw jsErr;}if(jsErr){var newErr=null;try{$deferFrames.push(deferred);$panic(new $packages["github.com/gopherjs/gopherjs/js"].Error.Ptr(jsErr));}catch(err){newErr=err;}$deferFrames.pop();$callDeferred(deferred,newErr);return;}$stackDepthOffset--;var outerPanicStackDepth=$panicStackDepth;var outerPanicValue=$panicValue;var localPanicValue=$curGoroutine.panicStack.pop();if(localPanicValue!==undefined){$panicStackDepth=$getStackDepth();$panicValue=localPanicValue;}var call,localSkippedDeferFrames=0;try{while(true){if(deferred===null){deferred=$deferFrames[$deferFrames.length-1-localSkippedDeferFrames];if(deferred===undefined){var msg;if(localPanicValue.constructor===$String){msg=localPanicValue.$val;}else if(localPanicValue.Error!==undefined){msg=localPanicValue.Error();}else if(localPanicValue.String!==undefined){msg=localPanicValue.String();}else{msg=localPanicValue;}var e=new Error(msg);if(localPanicValue.Stack!==undefined){e.stack=localPanicValue.Stack();e.stack=msg+e.stack.substr(e.stack.indexOf("\n"));}throw e;}}var call=deferred.pop();if(call===undefined){if(localPanicValue!==undefined){localSkippedDeferFrames++;deferred=null;continue;}return;}var r=call[0].apply(undefined,call[1]);if(r&&r.$blocking){deferred.push([r,[]]);}if(localPanicValue!==undefined&&$panicStackDepth===null){throw null;}}}finally{$skippedDeferFrames+=localSkippedDeferFrames;if($curGoroutine.asleep){deferred.push(call);$jumpToDefer=true;}if(localPanicValue!==undefined){if($panicStackDepth!==null){$curGoroutine.panicStack.push(localPanicValue);}$panicStackDepth=outerPanicStackDepth;$panicValue=outerPanicValue;}$stackDepthOffset++;}};var $panic=function(value){$curGoroutine.panicStack.push(value);$callDeferred(null,null);};var $recover=function(){if($panicStackDepth===null||($panicStackDepth!==undefined&&$panicStackDepth!==$getStackDepth()-2)){return $ifaceNil;}$panicStackDepth=null;return $panicValue;};var $throw=function(err){throw err;};var $throwRuntimeError;var $BLOCKING=new Object();var $nonblockingCall=function(){$panic(new $packages["runtime"].NotSupportedError.Ptr("non-blocking call to blocking function, see https://github.com/gopherjs/gopherjs#goroutines"));};var $dummyGoroutine={asleep:false,exit:false,panicStack:[]};var $curGoroutine=$dummyGoroutine,$totalGoroutines=0,$awakeGoroutines=0,$checkForDeadlock=true;var $go=function(fun,args,direct){$totalGoroutines++;$awakeGoroutines++;args.push($BLOCKING);var goroutine=function(){var rescheduled=false;try{$curGoroutine=goroutine;$skippedDeferFrames=0;$jumpToDefer=false;var r=fun.apply(undefined,args);if(r&&r.$blocking){fun=r;args=[];$schedule(goroutine,direct);rescheduled=true;return;}goroutine.exit=true;}catch(err){if(!$curGoroutine.asleep){goroutine.exit=true;throw err;}}finally{$curGoroutine=$dummyGoroutine;if(goroutine.exit&&!rescheduled){$totalGoroutines--;goroutine.asleep=true;}if(goroutine.asleep&&!rescheduled){$awakeGoroutines--;if($awakeGoroutines===0&&$totalGoroutines!==0&&$checkForDeadlock){console.error("fatal error: all goroutines are asleep - deadlock!");}}}};goroutine.asleep=false;goroutine.exit=false;goroutine.panicStack=[];$schedule(goroutine,direct);};var $scheduled=[],$schedulerLoopActive=false;var $schedule=function(goroutine,direct){if(goroutine.asleep){goroutine.asleep=false;$awakeGoroutines++;}if(direct){goroutine();return;}$scheduled.push(goroutine);if(!$schedulerLoopActive){$schedulerLoopActive=true;setTimeout(function(){while(true){var r=$scheduled.shift();if(r===undefined){$schedulerLoopActive=false;break;}r();};},0);}};var $send=function(chan,value){if(chan.$closed){$throwRuntimeError("send on closed channel");}var queuedRecv=chan.$recvQueue.shift();if(queuedRecv!==undefined){queuedRecv([value,true]);return;}if(chan.$buffer.length>24;case $kindInt16:return parseInt(v)<<16>>16;case $kindInt32:return parseInt(v)>>0;case $kindUint:return parseInt(v);case $kindUint8:return parseInt(v)<<24>>>24;case $kindUint16:return parseInt(v)<<16>>>16;case $kindUint32:case $kindUintptr:return parseInt(v)>>>0;case $kindInt64:case $kindUint64:return new t(0,v);case $kindFloat32:case $kindFloat64:return parseFloat(v);case $kindArray:if(v.length!==t.len){$throwRuntimeError("got array with wrong size from JavaScript native");}return $mapArray(v,function(e){return $internalize(e,t.elem);});case $kindFunc:return function(){var args=[],i;for(i=0;i>0)];if(f===undefined){g=0;h="";i=0;j=false;b=g;c=h;d=i;e=j;return[b,c,d,e];}k=f.substring(($parseInt(f.indexOf($externalize("(",$String)))>>0)+1>>0,$parseInt(f.indexOf($externalize(")",$String)))>>0).split($externalize(":",$String));l=0;m=$internalize(k[0],$String);n=$parseInt(k[1])>>0;o=true;b=l;c=m;d=n;e=o;return[b,c,d,e];};P=$pkg.SetFinalizer=function(a,b){};X.Ptr.prototype.RuntimeError=function(){};X.prototype.RuntimeError=function(){return this.$val.RuntimeError();};X.Ptr.prototype.Error=function(){var a,b;a=this;b=a.interfaceString;if(b===""){b="interface";}if(a.concreteString===""){return"interface conversion: "+b+" is nil, not "+a.assertedString;}if(a.missingMethod===""){return"interface conversion: "+b+" is "+a.concreteString+", not "+a.assertedString;}return"interface conversion: "+a.concreteString+" is not "+a.assertedString+": missing method "+a.missingMethod;};X.prototype.Error=function(){return this.$val.Error();};Z.prototype.RuntimeError=function(){var a;a=this.$val!==undefined?this.$val:this;};$ptrType(Z).prototype.RuntimeError=function(){return new Z(this.$get()).RuntimeError();};Z.prototype.Error=function(){var a;a=this.$val!==undefined?this.$val:this;return"runtime error: "+a;};$ptrType(Z).prototype.Error=function(){return new Z(this.$get()).Error();};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}AN=$ptrType(C);AR=$ptrType(X);AS=$ptrType(Z);AN.methods=[["Error","Error","",$funcType([],[$String],false),-1]];C.init([["Feature","Feature","",$String,""]]);AR.methods=[["Error","Error","",$funcType([],[$String],false),-1],["RuntimeError","RuntimeError","",$funcType([],[],false),-1]];X.init([["interfaceString","interfaceString","runtime",$String,""],["concreteString","concreteString","runtime",$String,""],["assertedString","assertedString","runtime",$String,""],["missingMethod","missingMethod","runtime",$String,""]]);Z.methods=[["Error","Error","",$funcType([],[$String],false),-1],["RuntimeError","RuntimeError","",$funcType([],[],false),-1]];AS.methods=[["Error","Error","",$funcType([],[$String],false),-1],["RuntimeError","RuntimeError","",$funcType([],[],false),-1]];D();}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["errors"]=(function(){var $pkg={},C,B,A;B=$pkg.errorString=$newType(0,$kindStruct,"errors.errorString","errorString","errors",function(s_){this.$val=this;this.s=s_!==undefined?s_:"";});A=$pkg.New=function(a){return new B.Ptr(a);};B.Ptr.prototype.Error=function(){var a;a=this;return a.s;};B.prototype.Error=function(){return this.$val.Error();};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:C=$ptrType(B);C.methods=[["Error","Error","",$funcType([],[$String],false),-1]];B.init([["s","s","errors",$String,""]]);}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["image/color"]=(function(){var $pkg={},Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,A,B,C,D,E,F,G,H,I,J,L,U,X,K,M,N,O,P,Q,R,S,T,V,W,Y;A=$pkg.Color=$newType(8,$kindInterface,"color.Color","Color","image/color",null);B=$pkg.RGBA=$newType(0,$kindStruct,"color.RGBA","RGBA","image/color",function(R_,G_,B_,A_){this.$val=this;this.R=R_!==undefined?R_:0;this.G=G_!==undefined?G_:0;this.B=B_!==undefined?B_:0;this.A=A_!==undefined?A_:0;});C=$pkg.RGBA64=$newType(0,$kindStruct,"color.RGBA64","RGBA64","image/color",function(R_,G_,B_,A_){this.$val=this;this.R=R_!==undefined?R_:0;this.G=G_!==undefined?G_:0;this.B=B_!==undefined?B_:0;this.A=A_!==undefined?A_:0;});D=$pkg.NRGBA=$newType(0,$kindStruct,"color.NRGBA","NRGBA","image/color",function(R_,G_,B_,A_){this.$val=this;this.R=R_!==undefined?R_:0;this.G=G_!==undefined?G_:0;this.B=B_!==undefined?B_:0;this.A=A_!==undefined?A_:0;});E=$pkg.NRGBA64=$newType(0,$kindStruct,"color.NRGBA64","NRGBA64","image/color",function(R_,G_,B_,A_){this.$val=this;this.R=R_!==undefined?R_:0;this.G=G_!==undefined?G_:0;this.B=B_!==undefined?B_:0;this.A=A_!==undefined?A_:0;});F=$pkg.Alpha=$newType(0,$kindStruct,"color.Alpha","Alpha","image/color",function(A_){this.$val=this;this.A=A_!==undefined?A_:0;});G=$pkg.Alpha16=$newType(0,$kindStruct,"color.Alpha16","Alpha16","image/color",function(A_){this.$val=this;this.A=A_!==undefined?A_:0;});H=$pkg.Gray=$newType(0,$kindStruct,"color.Gray","Gray","image/color",function(Y_){this.$val=this;this.Y=Y_!==undefined?Y_:0;});I=$pkg.Gray16=$newType(0,$kindStruct,"color.Gray16","Gray16","image/color",function(Y_){this.$val=this;this.Y=Y_!==undefined?Y_:0;});J=$pkg.Model=$newType(8,$kindInterface,"color.Model","Model","image/color",null);L=$pkg.modelFunc=$newType(0,$kindStruct,"color.modelFunc","modelFunc","image/color",function(f_){this.$val=this;this.f=f_!==undefined?f_:$throwNilPointerError;});U=$pkg.Palette=$newType(12,$kindSlice,"color.Palette","Palette","image/color",null);X=$pkg.YCbCr=$newType(0,$kindStruct,"color.YCbCr","YCbCr","image/color",function(Y_,Cb_,Cr_){this.$val=this;this.Y=Y_!==undefined?Y_:0;this.Cb=Cb_!==undefined?Cb_:0;this.Cr=Cr_!==undefined?Cr_:0;});B.Ptr.prototype.RGBA=function(){var a=0,b=0,c=0,d=0,e;e=$clone(this,B);a=(e.R>>>0);a=(a|((a<<8>>>0)))>>>0;b=(e.G>>>0);b=(b|((b<<8>>>0)))>>>0;c=(e.B>>>0);c=(c|((c<<8>>>0)))>>>0;d=(e.A>>>0);d=(d|((d<<8>>>0)))>>>0;return[a,b,c,d];};B.prototype.RGBA=function(){return this.$val.RGBA();};C.Ptr.prototype.RGBA=function(){var a=0,b=0,c=0,d=0,e,f,g,h,i;e=$clone(this,C);f=(e.R>>>0);g=(e.G>>>0);h=(e.B>>>0);i=(e.A>>>0);a=f;b=g;c=h;d=i;return[a,b,c,d];};C.prototype.RGBA=function(){return this.$val.RGBA();};D.Ptr.prototype.RGBA=function(){var a=0,b=0,c=0,d=0,e,f,g,h,i,j,k;e=$clone(this,D);a=(e.R>>>0);a=(a|((a<<8>>>0)))>>>0;a=(f=(e.A>>>0),(((a>>>16<<16)*f>>>0)+(a<<16>>>16)*f)>>>0);a=(g=a/(255),(g===g&&g!==1/0&&g!==-1/0)?g>>>0:$throwRuntimeError("integer divide by zero"));b=(e.G>>>0);b=(b|((b<<8>>>0)))>>>0;b=(h=(e.A>>>0),(((b>>>16<<16)*h>>>0)+(b<<16>>>16)*h)>>>0);b=(i=b/(255),(i===i&&i!==1/0&&i!==-1/0)?i>>>0:$throwRuntimeError("integer divide by zero"));c=(e.B>>>0);c=(c|((c<<8>>>0)))>>>0;c=(j=(e.A>>>0),(((c>>>16<<16)*j>>>0)+(c<<16>>>16)*j)>>>0);c=(k=c/(255),(k===k&&k!==1/0&&k!==-1/0)?k>>>0:$throwRuntimeError("integer divide by zero"));d=(e.A>>>0);d=(d|((d<<8>>>0)))>>>0;return[a,b,c,d];};D.prototype.RGBA=function(){return this.$val.RGBA();};E.Ptr.prototype.RGBA=function(){var a=0,b=0,c=0,d=0,e,f,g,h,i,j,k;e=$clone(this,E);a=(e.R>>>0);a=(f=(e.A>>>0),(((a>>>16<<16)*f>>>0)+(a<<16>>>16)*f)>>>0);a=(g=a/(65535),(g===g&&g!==1/0&&g!==-1/0)?g>>>0:$throwRuntimeError("integer divide by zero"));b=(e.G>>>0);b=(h=(e.A>>>0),(((b>>>16<<16)*h>>>0)+(b<<16>>>16)*h)>>>0);b=(i=b/(65535),(i===i&&i!==1/0&&i!==-1/0)?i>>>0:$throwRuntimeError("integer divide by zero"));c=(e.B>>>0);c=(j=(e.A>>>0),(((c>>>16<<16)*j>>>0)+(c<<16>>>16)*j)>>>0);c=(k=c/(65535),(k===k&&k!==1/0&&k!==-1/0)?k>>>0:$throwRuntimeError("integer divide by zero"));d=(e.A>>>0);return[a,b,c,d];};E.prototype.RGBA=function(){return this.$val.RGBA();};F.Ptr.prototype.RGBA=function(){var a=0,b=0,c=0,d=0,e,f,g,h,i;e=$clone(this,F);d=(e.A>>>0);d=(d|((d<<8>>>0)))>>>0;f=d;g=d;h=d;i=d;a=f;b=g;c=h;d=i;return[a,b,c,d];};F.prototype.RGBA=function(){return this.$val.RGBA();};G.Ptr.prototype.RGBA=function(){var a=0,b=0,c=0,d=0,e,f,g,h,i;e=$clone(this,G);d=(e.A>>>0);f=d;g=d;h=d;i=d;a=f;b=g;c=h;d=i;return[a,b,c,d];};G.prototype.RGBA=function(){return this.$val.RGBA();};H.Ptr.prototype.RGBA=function(){var a=0,b=0,c=0,d=0,e,f,g,h,i,j;e=$clone(this,H);f=(e.Y>>>0);f=(f|((f<<8>>>0)))>>>0;g=f;h=f;i=f;j=65535;a=g;b=h;c=i;d=j;return[a,b,c,d];};H.prototype.RGBA=function(){return this.$val.RGBA();};I.Ptr.prototype.RGBA=function(){var a=0,b=0,c=0,d=0,e,f,g,h,i,j;e=$clone(this,I);f=(e.Y>>>0);g=f;h=f;i=f;j=65535;a=g;b=h;c=i;d=j;return[a,b,c,d];};I.prototype.RGBA=function(){return this.$val.RGBA();};K=$pkg.ModelFunc=function(a){return new L.Ptr(a);};L.Ptr.prototype.Convert=function(a){var b;b=this;return b.f(a);};L.prototype.Convert=function(a){return this.$val.Convert(a);};M=function(a){var b,c,d,e,f,g,h,i;b=$assertType(a,B,true);c=b[1];if(c){return a;}d=a.RGBA();e=d[0];f=d[1];g=d[2];h=d[3];return(i=new B.Ptr(((e>>>8>>>0)<<24>>>24),((f>>>8>>>0)<<24>>>24),((g>>>8>>>0)<<24>>>24),((h>>>8>>>0)<<24>>>24)),new i.constructor.Struct(i));};N=function(a){var b,c,d,e,f,g,h,i;b=$assertType(a,C,true);c=b[1];if(c){return a;}d=a.RGBA();e=d[0];f=d[1];g=d[2];h=d[3];return(i=new C.Ptr((e<<16>>>16),(f<<16>>>16),(g<<16>>>16),(h<<16>>>16)),new i.constructor.Struct(i));};O=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;b=$assertType(a,D,true);c=b[1];if(c){return a;}d=a.RGBA();e=d[0];f=d[1];g=d[2];h=d[3];if(h===65535){return(i=new D.Ptr(((e>>>8>>>0)<<24>>>24),((f>>>8>>>0)<<24>>>24),((g>>>8>>>0)<<24>>>24),255),new i.constructor.Struct(i));}if(h===0){return(j=new D.Ptr(0,0,0,0),new j.constructor.Struct(j));}e=(k=(((((e>>>16<<16)*65535>>>0)+(e<<16>>>16)*65535)>>>0))/h,(k===k&&k!==1/0&&k!==-1/0)?k>>>0:$throwRuntimeError("integer divide by zero"));f=(l=(((((f>>>16<<16)*65535>>>0)+(f<<16>>>16)*65535)>>>0))/h,(l===l&&l!==1/0&&l!==-1/0)?l>>>0:$throwRuntimeError("integer divide by zero"));g=(m=(((((g>>>16<<16)*65535>>>0)+(g<<16>>>16)*65535)>>>0))/h,(m===m&&m!==1/0&&m!==-1/0)?m>>>0:$throwRuntimeError("integer divide by zero"));return(n=new D.Ptr(((e>>>8>>>0)<<24>>>24),((f>>>8>>>0)<<24>>>24),((g>>>8>>>0)<<24>>>24),((h>>>8>>>0)<<24>>>24)),new n.constructor.Struct(n));};P=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;b=$assertType(a,E,true);c=b[1];if(c){return a;}d=a.RGBA();e=d[0];f=d[1];g=d[2];h=d[3];if(h===65535){return(i=new E.Ptr((e<<16>>>16),(f<<16>>>16),(g<<16>>>16),65535),new i.constructor.Struct(i));}if(h===0){return(j=new E.Ptr(0,0,0,0),new j.constructor.Struct(j));}e=(k=(((((e>>>16<<16)*65535>>>0)+(e<<16>>>16)*65535)>>>0))/h,(k===k&&k!==1/0&&k!==-1/0)?k>>>0:$throwRuntimeError("integer divide by zero"));f=(l=(((((f>>>16<<16)*65535>>>0)+(f<<16>>>16)*65535)>>>0))/h,(l===l&&l!==1/0&&l!==-1/0)?l>>>0:$throwRuntimeError("integer divide by zero"));g=(m=(((((g>>>16<<16)*65535>>>0)+(g<<16>>>16)*65535)>>>0))/h,(m===m&&m!==1/0&&m!==-1/0)?m>>>0:$throwRuntimeError("integer divide by zero"));return(n=new E.Ptr((e<<16>>>16),(f<<16>>>16),(g<<16>>>16),(h<<16>>>16)),new n.constructor.Struct(n));};Q=function(a){var b,c,d,e,f;b=$assertType(a,F,true);c=b[1];if(c){return a;}d=a.RGBA();e=d[3];return(f=new F.Ptr(((e>>>8>>>0)<<24>>>24)),new f.constructor.Struct(f));};R=function(a){var b,c,d,e,f;b=$assertType(a,G,true);c=b[1];if(c){return a;}d=a.RGBA();e=d[3];return(f=new G.Ptr((e<<16>>>16)),new f.constructor.Struct(f));};S=function(a){var b,c,d,e,f,g,h,i,j;b=$assertType(a,H,true);c=b[1];if(c){return a;}d=a.RGBA();e=d[0];f=d[1];g=d[2];i=(h=((((((((299>>>16<<16)*e>>>0)+(299<<16>>>16)*e)>>>0)+((((587>>>16<<16)*f>>>0)+(587<<16>>>16)*f)>>>0)>>>0)+((((114>>>16<<16)*g>>>0)+(114<<16>>>16)*g)>>>0)>>>0)+500>>>0))/1000,(h===h&&h!==1/0&&h!==-1/0)?h>>>0:$throwRuntimeError("integer divide by zero"));return(j=new H.Ptr(((i>>>8>>>0)<<24>>>24)),new j.constructor.Struct(j));};T=function(a){var b,c,d,e,f,g,h,i,j;b=$assertType(a,I,true);c=b[1];if(c){return a;}d=a.RGBA();e=d[0];f=d[1];g=d[2];i=(h=((((((((299>>>16<<16)*e>>>0)+(299<<16>>>16)*e)>>>0)+((((587>>>16<<16)*f>>>0)+(587<<16>>>16)*f)>>>0)>>>0)+((((114>>>16<<16)*g>>>0)+(114<<16>>>16)*g)>>>0)>>>0)+500>>>0))/1000,(h===h&&h!==1/0&&h!==-1/0)?h>>>0:$throwRuntimeError("integer divide by zero"));return(j=new I.Ptr((i<<16>>>16)),new j.constructor.Struct(j));};U.prototype.Convert=function(a){var b,c;b=this;if(b.$length===0){return $ifaceNil;}return(c=b.Index(a),((c<0||c>=b.$length)?$throwRuntimeError("index out of range"):b.$array[b.$offset+c]));};$ptrType(U).prototype.Convert=function(a){return this.$get().Convert(a);};U.prototype.Index=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;b=this;c=a.RGBA();d=c[0];e=c[1];f=c[2];g=0;h=4294967295;i=g;j=h;k=b;l=0;while(l=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+l]);o=n.RGBA();p=o[0];q=o[1];r=o[2];s=(((d>>0)-(p>>0)>>0))>>1>>0;t=(((((s>>>16<<16)*s>>0)+(s<<16>>>16)*s)>>0)>>>0);s=(((e>>0)-(q>>0)>>0))>>1>>0;t=t+((((((s>>>16<<16)*s>>0)+(s<<16>>>16)*s)>>0)>>>0))>>>0;s=(((f>>0)-(r>>0)>>0))>>1>>0;t=t+((((((s>>>16<<16)*s>>0)+(s<<16>>>16)*s)>>0)>>>0))>>>0;if(t>0);e=(b>>0);f=(c>>0);g=(((((19595*d>>0)+(38470*e>>0)>>0)+(7471*f>>0)>>0)+32768>>0))>>16>>0;h=(((((-11056*d>>0)-(21712*e>>0)>>0)+(32768*f>>0)>>0)+8421376>>0))>>16>>0;i=(((((32768*d>>0)-(27440*e>>0)>>0)-(5328*f>>0)>>0)+8421376>>0))>>16>>0;if(g<0){g=0;}else if(g>255){g=255;}if(h<0){h=0;}else if(h>255){h=255;}if(i<0){i=0;}else if(i>255){i=255;}return[(g<<24>>>24),(h<<24>>>24),(i<<24>>>24)];};W=$pkg.YCbCrToRGB=function(a,b,c){var d,e,f,g,h,i;d=((a>>0)<<16>>0)+32768>>0;e=(b>>0)-128>>0;f=(c>>0)-128>>0;g=((d+(91881*f>>0)>>0))>>16>>0;h=(((d-(22554*e>>0)>>0)-(46802*f>>0)>>0))>>16>>0;i=((d+(116130*e>>0)>>0))>>16>>0;if(g<0){g=0;}else if(g>255){g=255;}if(h<0){h=0;}else if(h>255){h=255;}if(i<0){i=0;}else if(i>255){i=255;}return[(g<<24>>>24),(h<<24>>>24),(i<<24>>>24)];};X.Ptr.prototype.RGBA=function(){var a,b,c,d,e,f,g,h;a=$clone(this,X);b=W(a.Y,a.Cb,a.Cr);c=b[0];d=b[1];e=b[2];return[(f=(c>>>0),(((f>>>16<<16)*257>>>0)+(f<<16>>>16)*257)>>>0),(g=(d>>>0),(((g>>>16<<16)*257>>>0)+(g<<16>>>16)*257)>>>0),(h=(e>>>0),(((h>>>16<<16)*257>>>0)+(h<<16>>>16)*257)>>>0),65535];};X.prototype.RGBA=function(){return this.$val.RGBA();};Y=function(a){var b,c,d,e,f,g,h,i,j,k,l;b=$assertType(a,X,true);c=b[1];if(c){return a;}d=a.RGBA();e=d[0];f=d[1];g=d[2];h=V(((e>>>8>>>0)<<24>>>24),((f>>>8>>>0)<<24>>>24),((g>>>8>>>0)<<24>>>24));i=h[0];j=h[1];k=h[2];return(l=new X.Ptr(i,j,k),new l.constructor.Struct(l));};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:Z=$ptrType(B);AA=$ptrType(C);AB=$ptrType(D);AC=$ptrType(E);AD=$ptrType(F);AE=$ptrType(G);AF=$ptrType(H);AG=$ptrType(I);AH=$ptrType(L);AI=$funcType([A],[A],false);AJ=$ptrType(U);AK=$ptrType(X);A.init([["RGBA","RGBA","",$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false)]]);B.methods=[["RGBA","RGBA","",$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false),-1]];Z.methods=[["RGBA","RGBA","",$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false),-1]];B.init([["R","R","",$Uint8,""],["G","G","",$Uint8,""],["B","B","",$Uint8,""],["A","A","",$Uint8,""]]);C.methods=[["RGBA","RGBA","",$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false),-1]];AA.methods=[["RGBA","RGBA","",$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false),-1]];C.init([["R","R","",$Uint16,""],["G","G","",$Uint16,""],["B","B","",$Uint16,""],["A","A","",$Uint16,""]]);D.methods=[["RGBA","RGBA","",$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false),-1]];AB.methods=[["RGBA","RGBA","",$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false),-1]];D.init([["R","R","",$Uint8,""],["G","G","",$Uint8,""],["B","B","",$Uint8,""],["A","A","",$Uint8,""]]);E.methods=[["RGBA","RGBA","",$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false),-1]];AC.methods=[["RGBA","RGBA","",$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false),-1]];E.init([["R","R","",$Uint16,""],["G","G","",$Uint16,""],["B","B","",$Uint16,""],["A","A","",$Uint16,""]]);F.methods=[["RGBA","RGBA","",$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false),-1]];AD.methods=[["RGBA","RGBA","",$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false),-1]];F.init([["A","A","",$Uint8,""]]);G.methods=[["RGBA","RGBA","",$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false),-1]];AE.methods=[["RGBA","RGBA","",$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false),-1]];G.init([["A","A","",$Uint16,""]]);H.methods=[["RGBA","RGBA","",$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false),-1]];AF.methods=[["RGBA","RGBA","",$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false),-1]];H.init([["Y","Y","",$Uint8,""]]);I.methods=[["RGBA","RGBA","",$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false),-1]];AG.methods=[["RGBA","RGBA","",$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false),-1]];I.init([["Y","Y","",$Uint16,""]]);J.init([["Convert","Convert","",$funcType([A],[A],false)]]);AH.methods=[["Convert","Convert","",$funcType([A],[A],false),-1]];L.init([["f","f","image/color",AI,""]]);U.methods=[["Convert","Convert","",$funcType([A],[A],false),-1],["Index","Index","",$funcType([A],[$Int],false),-1]];AJ.methods=[["Convert","Convert","",$funcType([A],[A],false),-1],["Index","Index","",$funcType([A],[$Int],false),-1]];U.init(A);X.methods=[["RGBA","RGBA","",$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false),-1]];AK.methods=[["RGBA","RGBA","",$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false),-1]];X.init([["Y","Y","",$Uint8,""],["Cb","Cb","",$Uint8,""],["Cr","Cr","",$Uint8,""]]);$pkg.RGBAModel=K(M);$pkg.RGBA64Model=K(N);$pkg.NRGBAModel=K(O);$pkg.NRGBA64Model=K(P);$pkg.AlphaModel=K(Q);$pkg.Alpha16Model=K(R);$pkg.GrayModel=K(S);$pkg.Gray16Model=K(T);$pkg.Black=new I.Ptr(0);$pkg.White=new I.Ptr(65535);$pkg.Transparent=new G.Ptr(0);$pkg.Opaque=new G.Ptr(65535);$pkg.YCbCrModel=K(Y);}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["math"]=(function(){var $pkg={},A,FG,B,C,D,E,F,EN,ER,ES,G,X,Y,Z,AI,AN,AR,AS,AT,EP,EV;A=$packages["github.com/gopherjs/gopherjs/js"];G=function(){AR(0);AS(0);};X=$pkg.IsInf=function(ao,ap){if(ao===D){return ap>=0;}if(ao===E){return ap<=0;}return false;};Y=$pkg.IsNaN=function(ao){var ap=false;ap=!((ao===ao));return ap;};Z=$pkg.Ldexp=function(ao,ap){if(ao===0){return ao;}if(ap>=1024){return ao*$parseFloat(B.pow(2,1023))*$parseFloat(B.pow(2,ap-1023>>0));}if(ap<=-1024){return ao*$parseFloat(B.pow(2,-1023))*$parseFloat(B.pow(2,ap+1023>>0));}return ao*$parseFloat(B.pow(2,ap));};AI=$pkg.NaN=function(){return F;};AN=$pkg.Sincos=function(ao){var ap=0,aq=0,ar;ar=EV(ao);ap=ar[0];aq=ar[1];return[ap,aq];};AR=$pkg.Float32bits=function(ao){var ap,aq,ar;if(ao===0){if(1/ao===E){return 2147483648;}return 0;}if(!(ao===ao)){return 2143289344;}ap=0;if(ao<0){ap=2147483648;ao=-ao;}aq=150;while(ao>=1.6777216e+07){ao=ao/(2);aq=aq+(1)>>>0;if(aq===255){if(ao>=8.388608e+06){ao=D;}break;}}while(ao<8.388608e+06){aq=aq-(1)>>>0;if(aq===0){break;}ao=ao*(2);}ar=$parseFloat($mod(ao,2));if((ar>0.5&&ar<1)||ar>=1.5){ao=ao+(1);}return(((ap|(aq<<23>>>0))>>>0)|(((ao>>0)&~8388608)))>>>0;};AS=$pkg.Float32frombits=function(ao){var ap,aq,ar;ap=1;if(!((((ao&2147483648)>>>0)===0))){ap=-1;}aq=(((ao>>>23>>>0))&255)>>>0;ar=(ao&8388607)>>>0;if(aq===255){if(ar===0){return ap/0;}return F;}if(!((aq===0))){ar=ar+(8388608)>>>0;}if(aq===0){aq=1;}return Z(ar,((aq>>0)-127>>0)-23>>0)*ap;};AT=$pkg.Float64bits=function(ao){var ap,aq,ar,as,at,au;if(ao===0){if(1/ao===E){return new $Uint64(2147483648,0);}return new $Uint64(0,0);}if(!((ao===ao))){return new $Uint64(2146959360,1);}ap=new $Uint64(0,0);if(ao<0){ap=new $Uint64(2147483648,0);ao=-ao;}aq=1075;while(ao>=9.007199254740992e+15){ao=ao/(2);aq=aq+(1)>>>0;if(aq===2047){break;}}while(ao<4.503599627370496e+15){aq=aq-(1)>>>0;if(aq===0){break;}ao=ao*(2);}return(ar=(as=$shiftLeft64(new $Uint64(0,aq),52),new $Uint64(ap.$high|as.$high,(ap.$low|as.$low)>>>0)),at=(au=new $Uint64(0,ao),new $Uint64(au.$high&~1048576,(au.$low&~0)>>>0)),new $Uint64(ar.$high|at.$high,(ar.$low|at.$low)>>>0));};EP=function(){var ao,ap,aq,ar;EN[0]=1;EN[1]=10;ao=2;while(ao<70){aq=(ap=ao/2,(ap===ap&&ap!==1/0&&ap!==-1/0)?ap>>0:$throwRuntimeError("integer divide by zero"));(ao<0||ao>=EN.length)?$throwRuntimeError("index out of range"):EN[ao]=((aq<0||aq>=EN.length)?$throwRuntimeError("index out of range"):EN[aq])*(ar=ao-aq>>0,((ar<0||ar>=EN.length)?$throwRuntimeError("index out of range"):EN[ar]));ao=ao+(1)>>0;}};EV=function(ao){var ap=0,aq=0,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk;if(ao===0){ar=ao;as=1;ap=ar;aq=as;return[ap,aq];}else if(Y(ao)||X(ao,0)){at=AI();au=AI();ap=at;aq=au;return[ap,aq];}av=false;aw=false;ax=av;ay=aw;if(ao<0){ao=-ao;ax=true;}az=new $Int64(0,ao*1.2732395447351625);ba=$flatten64(az);if((bb=new $Int64(az.$high&0,(az.$low&1)>>>0),(bb.$high===0&&bb.$low===1))){az=(bc=new $Int64(0,1),new $Int64(az.$high+bc.$high,az.$low+bc.$low));ba=ba+(1);}az=(bd=new $Int64(0,7),new $Int64(az.$high&bd.$high,(az.$low&bd.$low)>>>0));if((az.$high>0||(az.$high===0&&az.$low>3))){az=(be=new $Int64(0,4),new $Int64(az.$high-be.$high,az.$low-be.$low));bf=!ax;bg=!ay;ax=bf;ay=bg;}if((az.$high>0||(az.$high===0&&az.$low>1))){ay=!ay;}bh=((ao-ba*0.7853981256484985)-ba*3.774894707930798e-08)-ba*2.6951514290790595e-15;bi=bh*bh;aq=1-0.5*bi+bi*bi*((((((ES[0]*bi)+ES[1])*bi+ES[2])*bi+ES[3])*bi+ES[4])*bi+ES[5]);ap=bh+bh*bi*((((((ER[0]*bi)+ER[1])*bi+ER[2])*bi+ER[3])*bi+ER[4])*bi+ER[5]);if((az.$high===0&&az.$low===1)||(az.$high===0&&az.$low===2)){bj=aq;bk=ap;ap=bj;aq=bk;}if(ay){aq=-aq;}if(ax){ap=-ap;}return[ap,aq];};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}FG=$arrayType($Float64,70);EN=FG.zero();B=$global.Math;C=0;D=1/C;E=-1/C;F=0/C;ER=$toNativeArray($kindFloat64,[1.5896230157654656e-10,-2.5050747762857807e-08,2.7557313621385722e-06,-0.0001984126982958954,0.008333333333322118,-0.1666666666666663]);ES=$toNativeArray($kindFloat64,[-1.1358536521387682e-11,2.087570084197473e-09,-2.755731417929674e-07,2.4801587288851704e-05,-0.0013888888888873056,0.041666666666666595]);G();EP();}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["github.com/hajimehoshi/ebiten/internal"]=(function(){var $pkg={},A,B,C,D;A=$packages["image/color"];B=$packages["math"];C=$pkg.NextPowerOf2Int=function(a){a=a-(1)>>0;a=a|(((a>>1>>0)));a=a|(((a>>2>>0)));a=a|(((a>>4>>0)));a=a|(((a>>8>>0)));a=a|(((a>>16>>0)));return a+1>>0;};D=$pkg.RGBA=function(a){var b=0,c=0,d=0,e=0,f,g,h,i,j;f=a.RGBA();g=f[0];h=f[1];i=f[2];j=f[3];b=g/65535;c=h/65535;d=i/65535;e=j/65535;return[b,c,d,e];};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["sync/atomic"]=(function(){var $pkg={},A,H,N,U,Y,AA;A=$packages["github.com/gopherjs/gopherjs/js"];H=$pkg.CompareAndSwapInt32=function(ad,ae,af){if(ad.$get()===ae){ad.$set(af);return true;}return false;};N=$pkg.AddInt32=function(ad,ae){var af;af=ad.$get()+ae>>0;ad.$set(af);return af;};U=$pkg.LoadUint32=function(ad){return ad.$get();};Y=$pkg.StoreInt32=function(ad,ae){ad.$set(ae);};AA=$pkg.StoreUint32=function(ad,ae){ad.$set(ae);};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["sync"]=(function(){var $pkg={},B,A,AJ,AK,AM,AN,AP,AS,AT,AV,AW,AX,AY,AZ,BA,C,I,J,K,L,AC,AG,AH,O,D,E,M,P,Q,X,AA,AB,AF;B=$packages["runtime"];A=$packages["sync/atomic"];C=$pkg.Pool=$newType(0,$kindStruct,"sync.Pool","Pool","sync",function(local_,localSize_,store_,New_){this.$val=this;this.local=local_!==undefined?local_:0;this.localSize=localSize_!==undefined?localSize_:0;this.store=store_!==undefined?store_:AS.nil;this.New=New_!==undefined?New_:$throwNilPointerError;});I=$pkg.Mutex=$newType(0,$kindStruct,"sync.Mutex","Mutex","sync",function(state_,sema_){this.$val=this;this.state=state_!==undefined?state_:0;this.sema=sema_!==undefined?sema_:0;});J=$pkg.Locker=$newType(8,$kindInterface,"sync.Locker","Locker","sync",null);K=$pkg.Once=$newType(0,$kindStruct,"sync.Once","Once","sync",function(m_,done_){this.$val=this;this.m=m_!==undefined?m_:new I.Ptr();this.done=done_!==undefined?done_:0;});L=$pkg.poolLocal=$newType(0,$kindStruct,"sync.poolLocal","poolLocal","sync",function(private$0_,shared_,Mutex_,pad_){this.$val=this;this.private$0=private$0_!==undefined?private$0_:$ifaceNil;this.shared=shared_!==undefined?shared_:AS.nil;this.Mutex=Mutex_!==undefined?Mutex_:new I.Ptr();this.pad=pad_!==undefined?pad_:AY.zero();});AC=$pkg.syncSema=$newType(0,$kindStruct,"sync.syncSema","syncSema","sync",function(lock_,head_,tail_){this.$val=this;this.lock=lock_!==undefined?lock_:0;this.head=head_!==undefined?head_:0;this.tail=tail_!==undefined?tail_:0;});AG=$pkg.RWMutex=$newType(0,$kindStruct,"sync.RWMutex","RWMutex","sync",function(w_,writerSem_,readerSem_,readerCount_,readerWait_){this.$val=this;this.w=w_!==undefined?w_:new I.Ptr();this.writerSem=writerSem_!==undefined?writerSem_:0;this.readerSem=readerSem_!==undefined?readerSem_:0;this.readerCount=readerCount_!==undefined?readerCount_:0;this.readerWait=readerWait_!==undefined?readerWait_:0;});AH=$pkg.rlocker=$newType(0,$kindStruct,"sync.rlocker","rlocker","sync",function(w_,writerSem_,readerSem_,readerCount_,readerWait_){this.$val=this;this.w=w_!==undefined?w_:new I.Ptr();this.writerSem=writerSem_!==undefined?writerSem_:0;this.readerSem=readerSem_!==undefined?readerSem_:0;this.readerCount=readerCount_!==undefined?readerCount_:0;this.readerWait=readerWait_!==undefined?readerWait_:0;});C.Ptr.prototype.Get=function(){var d,e,f,g;d=this;if(d.store.$length===0){if(!(d.New===$throwNilPointerError)){return d.New();}return $ifaceNil;}g=(e=d.store,f=d.store.$length-1>>0,((f<0||f>=e.$length)?$throwRuntimeError("index out of range"):e.$array[e.$offset+f]));d.store=$subslice(d.store,0,(d.store.$length-1>>0));return g;};C.prototype.Get=function(){return this.$val.Get();};C.Ptr.prototype.Put=function(d){var e;e=this;if($interfaceIsEqual(d,$ifaceNil)){return;}e.store=$append(e.store,d);};C.prototype.Put=function(d){return this.$val.Put(d);};D=function(d){};E=function(d){};I.Ptr.prototype.Lock=function(){var d,e,f,g;d=this;if(A.CompareAndSwapInt32(new AN(function(){return this.$target.state;},function($v){this.$target.state=$v;},d),0,1)){return;}e=false;while(true){f=d.state;g=f|1;if(!(((f&1)===0))){g=f+4>>0;}if(e){g=g&~(2);}if(A.CompareAndSwapInt32(new AN(function(){return this.$target.state;},function($v){this.$target.state=$v;},d),f,g)){if((f&1)===0){break;}AA(new AM(function(){return this.$target.sema;},function($v){this.$target.sema=$v;},d));e=true;}}};I.prototype.Lock=function(){return this.$val.Lock();};I.Ptr.prototype.Unlock=function(){var d,e,f;d=this;e=A.AddInt32(new AN(function(){return this.$target.state;},function($v){this.$target.state=$v;},d),-1);if((((e+1>>0))&1)===0){$panic(new $String("sync: unlock of unlocked mutex"));}f=e;while(true){if(((f>>2>>0)===0)||!(((f&3)===0))){return;}e=((f-4>>0))|2;if(A.CompareAndSwapInt32(new AN(function(){return this.$target.state;},function($v){this.$target.state=$v;},d),f,e)){AB(new AM(function(){return this.$target.sema;},function($v){this.$target.sema=$v;},d));return;}f=d.state;}};I.prototype.Unlock=function(){return this.$val.Unlock();};K.Ptr.prototype.Do=function(d){var $deferred=[],$err=null,e;try{$deferFrames.push($deferred);e=this;if(A.LoadUint32(new AM(function(){return this.$target.done;},function($v){this.$target.done=$v;},e))===1){return;}e.m.Lock();$deferred.push([$methodVal(e.m,"Unlock"),[]]);if(e.done===0){$deferred.push([A.StoreUint32,[new AM(function(){return this.$target.done;},function($v){this.$target.done=$v;},e),1]]);d();}}catch(err){$err=err;}finally{$deferFrames.pop();$callDeferred($deferred,$err);}};K.prototype.Do=function(d){return this.$val.Do(d);};M=function(){var d,e,f,g,h,i,j,k,l,m;d=O;e=0;while(e=d.$length)?$throwRuntimeError("index out of range"):d.$array[d.$offset+e]);(f<0||f>=O.$length)?$throwRuntimeError("index out of range"):O.$array[O.$offset+f]=AJ.nil;h=0;while(h<(g.localSize>>0)){i=Q(g.local,h);i.private$0=$ifaceNil;j=i.shared;k=0;while(k=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+l]=$ifaceNil);k++;}i.shared=AS.nil;h=h+(1)>>0;}g.local=0;g.localSize=0;e++;}O=new AK([]);};P=function(){D(M);};Q=function(d,e){var f;return(f=d,(f.nilCheck,((e<0||e>=f.length)?$throwRuntimeError("index out of range"):f[e])));};X=function(){};AA=function(){$panic("Native function not implemented: sync.runtime_Semacquire");};AB=function(){$panic("Native function not implemented: sync.runtime_Semrelease");};AF=function(){var d;d=$clone(new AC.Ptr(),AC);E(12);};AG.Ptr.prototype.RLock=function(){var d;d=this;if(A.AddInt32(new AN(function(){return this.$target.readerCount;},function($v){this.$target.readerCount=$v;},d),1)<0){AA(new AM(function(){return this.$target.readerSem;},function($v){this.$target.readerSem=$v;},d));}};AG.prototype.RLock=function(){return this.$val.RLock();};AG.Ptr.prototype.RUnlock=function(){var d,e;d=this;e=A.AddInt32(new AN(function(){return this.$target.readerCount;},function($v){this.$target.readerCount=$v;},d),-1);if(e<0){if(((e+1>>0)===0)||((e+1>>0)===-1073741824)){X();$panic(new $String("sync: RUnlock of unlocked RWMutex"));}if(A.AddInt32(new AN(function(){return this.$target.readerWait;},function($v){this.$target.readerWait=$v;},d),-1)===0){AB(new AM(function(){return this.$target.writerSem;},function($v){this.$target.writerSem=$v;},d));}}};AG.prototype.RUnlock=function(){return this.$val.RUnlock();};AG.Ptr.prototype.Lock=function(){var d,e;d=this;d.w.Lock();e=A.AddInt32(new AN(function(){return this.$target.readerCount;},function($v){this.$target.readerCount=$v;},d),-1073741824)+1073741824>>0;if(!((e===0))&&!((A.AddInt32(new AN(function(){return this.$target.readerWait;},function($v){this.$target.readerWait=$v;},d),e)===0))){AA(new AM(function(){return this.$target.writerSem;},function($v){this.$target.writerSem=$v;},d));}};AG.prototype.Lock=function(){return this.$val.Lock();};AG.Ptr.prototype.Unlock=function(){var d,e,f;d=this;e=A.AddInt32(new AN(function(){return this.$target.readerCount;},function($v){this.$target.readerCount=$v;},d),1073741824);if(e>=1073741824){X();$panic(new $String("sync: Unlock of unlocked RWMutex"));}f=0;while(f<(e>>0)){AB(new AM(function(){return this.$target.readerSem;},function($v){this.$target.readerSem=$v;},d));f=f+(1)>>0;}d.w.Unlock();};AG.prototype.Unlock=function(){return this.$val.Unlock();};AG.Ptr.prototype.RLocker=function(){var d;d=this;return $clone(d,AH);};AG.prototype.RLocker=function(){return this.$val.RLocker();};AH.Ptr.prototype.Lock=function(){var d;d=this;$clone(d,AG).RLock();};AH.prototype.Lock=function(){return this.$val.Lock();};AH.Ptr.prototype.Unlock=function(){var d;d=this;$clone(d,AG).RUnlock();};AH.prototype.Unlock=function(){return this.$val.Unlock();};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=B.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=A.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}AJ=$ptrType(C);AK=$sliceType(AJ);AM=$ptrType($Uint32);AN=$ptrType($Int32);AP=$ptrType(L);AS=$sliceType($emptyInterface);AT=$funcType([],[$emptyInterface],false);AV=$ptrType(I);AW=$funcType([],[],false);AX=$ptrType(K);AY=$arrayType($Uint8,128);AZ=$ptrType(AG);BA=$ptrType(AH);AJ.methods=[["Get","Get","",$funcType([],[$emptyInterface],false),-1],["Put","Put","",$funcType([$emptyInterface],[],false),-1],["getSlow","getSlow","sync",$funcType([],[$emptyInterface],false),-1],["pin","pin","sync",$funcType([],[AP],false),-1],["pinSlow","pinSlow","sync",$funcType([],[AP],false),-1]];C.init([["local","local","sync",$UnsafePointer,""],["localSize","localSize","sync",$Uintptr,""],["store","store","sync",AS,""],["New","New","",AT,""]]);AV.methods=[["Lock","Lock","",$funcType([],[],false),-1],["Unlock","Unlock","",$funcType([],[],false),-1]];I.init([["state","state","sync",$Int32,""],["sema","sema","sync",$Uint32,""]]);J.init([["Lock","Lock","",$funcType([],[],false)],["Unlock","Unlock","",$funcType([],[],false)]]);AX.methods=[["Do","Do","",$funcType([AW],[],false),-1]];K.init([["m","m","sync",I,""],["done","done","sync",$Uint32,""]]);AP.methods=[["Lock","Lock","",$funcType([],[],false),2],["Unlock","Unlock","",$funcType([],[],false),2]];L.init([["private$0","private","sync",$emptyInterface,""],["shared","shared","sync",AS,""],["Mutex","","",I,""],["pad","pad","sync",AY,""]]);AC.init([["lock","lock","sync",$Uintptr,""],["head","head","sync",$UnsafePointer,""],["tail","tail","sync",$UnsafePointer,""]]);AZ.methods=[["Lock","Lock","",$funcType([],[],false),-1],["RLock","RLock","",$funcType([],[],false),-1],["RLocker","RLocker","",$funcType([],[J],false),-1],["RUnlock","RUnlock","",$funcType([],[],false),-1],["Unlock","Unlock","",$funcType([],[],false),-1]];AG.init([["w","w","sync",I,""],["writerSem","writerSem","sync",$Uint32,""],["readerSem","readerSem","sync",$Uint32,""],["readerCount","readerCount","sync",$Int32,""],["readerWait","readerWait","sync",$Int32,""]]);BA.methods=[["Lock","Lock","",$funcType([],[],false),-1],["Unlock","Unlock","",$funcType([],[],false),-1]];AH.init([["w","w","sync",I,""],["writerSem","writerSem","sync",$Uint32,""],["readerSem","readerSem","sync",$Uint32,""],["readerCount","readerCount","sync",$Int32,""],["readerWait","readerWait","sync",$Int32,""]]);O=AK.nil;P();AF();}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["io"]=(function(){var $pkg={},B,A,C,AW,E,F,J,P,Q,T,W,AI,AJ,AA,AB;B=$packages["errors"];A=$packages["runtime"];C=$packages["sync"];E=$pkg.Reader=$newType(8,$kindInterface,"io.Reader","Reader","io",null);F=$pkg.Writer=$newType(8,$kindInterface,"io.Writer","Writer","io",null);J=$pkg.ReadCloser=$newType(8,$kindInterface,"io.ReadCloser","ReadCloser","io",null);P=$pkg.ReaderFrom=$newType(8,$kindInterface,"io.ReaderFrom","ReaderFrom","io",null);Q=$pkg.WriterTo=$newType(8,$kindInterface,"io.WriterTo","WriterTo","io",null);T=$pkg.ByteReader=$newType(8,$kindInterface,"io.ByteReader","ByteReader","io",null);W=$pkg.RuneReader=$newType(8,$kindInterface,"io.RuneReader","RuneReader","io",null);AA=$pkg.ReadAtLeast=function(b,c,d){var e=0,f=$ifaceNil,g,h,i,j;if(c.$length>0;}if(e>=d){f=$ifaceNil;}else if(e>0&&$interfaceIsEqual(f,$pkg.EOF)){f=$pkg.ErrUnexpectedEOF;}return[e,f];};AB=$pkg.ReadFull=function(b,c){var d=0,e=$ifaceNil,f;f=AA(b,c,c.$length);d=f[0];e=f[1];return[d,e];};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=B.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=A.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}AW=$sliceType($Uint8);E.init([["Read","Read","",$funcType([AW],[$Int,$error],false)]]);F.init([["Write","Write","",$funcType([AW],[$Int,$error],false)]]);J.init([["Close","Close","",$funcType([],[$error],false)],["Read","Read","",$funcType([AW],[$Int,$error],false)]]);P.init([["ReadFrom","ReadFrom","",$funcType([E],[$Int64,$error],false)]]);Q.init([["WriteTo","WriteTo","",$funcType([F],[$Int64,$error],false)]]);T.init([["ReadByte","ReadByte","",$funcType([],[$Uint8,$error],false)]]);W.init([["ReadRune","ReadRune","",$funcType([],[$Int32,$Int,$error],false)]]);$pkg.ErrShortWrite=B.New("short write");$pkg.ErrShortBuffer=B.New("short buffer");$pkg.EOF=B.New("EOF");$pkg.ErrUnexpectedEOF=B.New("unexpected EOF");$pkg.ErrNoProgress=B.New("multiple Read calls return no data or error");AI=B.New("Seek: invalid whence");AJ=B.New("Seek: invalid offset");$pkg.ErrClosedPipe=B.New("io: read/write on closed pipe");}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["unicode"]=(function(){var $pkg={};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["unicode/utf8"]=(function(){var $pkg={},A,B,C,E,F,G,I,J,K,L,M;A=function(a){var b=0,c=0,d=false,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh;e=a.$length;if(e<1){f=65533;g=0;h=true;b=f;c=g;d=h;return[b,c,d];}i=((0<0||0>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+0]);if(i<128){j=(i>>0);k=1;l=false;b=j;c=k;d=l;return[b,c,d];}if(i<192){m=65533;n=1;o=false;b=m;c=n;d=o;return[b,c,d];}if(e<2){p=65533;q=1;r=true;b=p;c=q;d=r;return[b,c,d];}s=((1<0||1>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+1]);if(s<128||192<=s){t=65533;u=1;v=false;b=t;c=u;d=v;return[b,c,d];}if(i<224){b=((((i&31)>>>0)>>0)<<6>>0)|(((s&63)>>>0)>>0);if(b<=127){w=65533;x=1;y=false;b=w;c=x;d=y;return[b,c,d];}z=b;aa=2;ab=false;b=z;c=aa;d=ab;return[b,c,d];}if(e<3){ac=65533;ad=1;ae=true;b=ac;c=ad;d=ae;return[b,c,d];}af=((2<0||2>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+2]);if(af<128||192<=af){ag=65533;ah=1;ai=false;b=ag;c=ah;d=ai;return[b,c,d];}if(i<240){b=(((((i&15)>>>0)>>0)<<12>>0)|((((s&63)>>>0)>>0)<<6>>0))|(((af&63)>>>0)>>0);if(b<=2047){aj=65533;ak=1;al=false;b=aj;c=ak;d=al;return[b,c,d];}if(55296<=b&&b<=57343){am=65533;an=1;ao=false;b=am;c=an;d=ao;return[b,c,d];}ap=b;aq=3;ar=false;b=ap;c=aq;d=ar;return[b,c,d];}if(e<4){as=65533;at=1;au=true;b=as;c=at;d=au;return[b,c,d];}av=((3<0||3>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+3]);if(av<128||192<=av){aw=65533;ax=1;ay=false;b=aw;c=ax;d=ay;return[b,c,d];}if(i<248){b=((((((i&7)>>>0)>>0)<<18>>0)|((((s&63)>>>0)>>0)<<12>>0))|((((af&63)>>>0)>>0)<<6>>0))|(((av&63)>>>0)>>0);if(b<=65535||1114111>0);k=1;l=false;b=j;c=k;d=l;return[b,c,d];}if(i<192){m=65533;n=1;o=false;b=m;c=n;d=o;return[b,c,d];}if(e<2){p=65533;q=1;r=true;b=p;c=q;d=r;return[b,c,d];}s=a.charCodeAt(1);if(s<128||192<=s){t=65533;u=1;v=false;b=t;c=u;d=v;return[b,c,d];}if(i<224){b=((((i&31)>>>0)>>0)<<6>>0)|(((s&63)>>>0)>>0);if(b<=127){w=65533;x=1;y=false;b=w;c=x;d=y;return[b,c,d];}z=b;aa=2;ab=false;b=z;c=aa;d=ab;return[b,c,d];}if(e<3){ac=65533;ad=1;ae=true;b=ac;c=ad;d=ae;return[b,c,d];}af=a.charCodeAt(2);if(af<128||192<=af){ag=65533;ah=1;ai=false;b=ag;c=ah;d=ai;return[b,c,d];}if(i<240){b=(((((i&15)>>>0)>>0)<<12>>0)|((((s&63)>>>0)>>0)<<6>>0))|(((af&63)>>>0)>>0);if(b<=2047){aj=65533;ak=1;al=false;b=aj;c=ak;d=al;return[b,c,d];}if(55296<=b&&b<=57343){am=65533;an=1;ao=false;b=am;c=an;d=ao;return[b,c,d];}ap=b;aq=3;ar=false;b=ap;c=aq;d=ar;return[b,c,d];}if(e<4){as=65533;at=1;au=true;b=as;c=at;d=au;return[b,c,d];}av=a.charCodeAt(3);if(av<128||192<=av){aw=65533;ax=1;ay=false;b=aw;c=ax;d=ay;return[b,c,d];}if(i<248){b=((((((i&7)>>>0)>>0)<<18>>0)|((((s&63)>>>0)>>0)<<12>>0))|((((af&63)>>>0)>>0)<<6>>0))|(((av&63)>>>0)>>0);if(b<=65535||1114111>0;b=(((g<0||g>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+g])>>0);if(b<128){h=b;i=1;b=h;c=i;return[b,c];}j=d-4>>0;if(j<0){j=0;}g=g-(1)>>0;while(g>=j){if(M(((g<0||g>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+g]))){break;}g=g-(1)>>0;}if(g<0){g=0;}k=E($subslice(a,g,d));b=k[0];c=k[1];if(!(((g+c>>0)===d))){l=65533;m=1;b=l;c=m;return[b,c];}n=b;o=c;b=n;c=o;return[b,c];};I=$pkg.RuneLen=function(a){if(a<0){return-1;}else if(a<=127){return 1;}else if(a<=2047){return 2;}else if(55296<=a&&a<=57343){return-1;}else if(a<=65535){return 3;}else if(a<=1114111){return 4;}return-1;};J=$pkg.EncodeRune=function(a,b){var c;c=(b>>>0);if(c<=127){(0<0||0>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+0]=(b<<24>>>24);return 1;}else if(c<=2047){(0<0||0>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+0]=(192|((b>>6>>0)<<24>>>24))>>>0;(1<0||1>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+1]=(128|(((b<<24>>>24)&63)>>>0))>>>0;return 2;}else if(c>1114111||55296<=c&&c<=57343){b=65533;(0<0||0>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+0]=(224|((b>>12>>0)<<24>>>24))>>>0;(1<0||1>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+1]=(128|((((b>>6>>0)<<24>>>24)&63)>>>0))>>>0;(2<0||2>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+2]=(128|(((b<<24>>>24)&63)>>>0))>>>0;return 3;}else if(c<=65535){(0<0||0>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+0]=(224|((b>>12>>0)<<24>>>24))>>>0;(1<0||1>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+1]=(128|((((b>>6>>0)<<24>>>24)&63)>>>0))>>>0;(2<0||2>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+2]=(128|(((b<<24>>>24)&63)>>>0))>>>0;return 3;}else{(0<0||0>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+0]=(240|((b>>18>>0)<<24>>>24))>>>0;(1<0||1>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+1]=(128|((((b>>12>>0)<<24>>>24)&63)>>>0))>>>0;(2<0||2>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+2]=(128|((((b>>6>>0)<<24>>>24)&63)>>>0))>>>0;(3<0||3>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+3]=(128|(((b<<24>>>24)&63)>>>0))>>>0;return 4;}};K=$pkg.RuneCount=function(a){var b,c,d,e;b=0;c=0;c=0;while(b=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+b])<128){b=b+(1)>>0;}else{d=E($subslice(a,b));e=d[1];b=b+(e)>>0;}c=c+(1)>>0;}return c;};L=$pkg.RuneCountInString=function(a){var b=0,c,d,e;c=a;d=0;while(d>0;d+=e[1];}return b;};M=$pkg.RuneStart=function(a){return!((((a&192)>>>0)===128));};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["bytes"]=(function(){var $pkg={},A,B,D,C,BJ,BK,BL,BM,H,I,E,J,K;A=$packages["errors"];B=$packages["io"];D=$packages["unicode"];C=$packages["unicode/utf8"];H=$pkg.Buffer=$newType(0,$kindStruct,"bytes.Buffer","Buffer","bytes",function(buf_,off_,runeBytes_,bootstrap_,lastRead_){this.$val=this;this.buf=buf_!==undefined?buf_:BK.nil;this.off=off_!==undefined?off_:0;this.runeBytes=runeBytes_!==undefined?runeBytes_:BL.zero();this.bootstrap=bootstrap_!==undefined?bootstrap_:BM.zero();this.lastRead=lastRead_!==undefined?lastRead_:0;});I=$pkg.readOp=$newType(4,$kindInt,"bytes.readOp","readOp","bytes",null);E=$pkg.IndexByte=function(d,e){var f,g,h,i;f=d;g=0;while(g=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+g]);if(i===e){return h;}g++;}return-1;};H.Ptr.prototype.Bytes=function(){var d;d=this;return $subslice(d.buf,d.off);};H.prototype.Bytes=function(){return this.$val.Bytes();};H.Ptr.prototype.String=function(){var d;d=this;if(d===BJ.nil){return"";}return $bytesToString($subslice(d.buf,d.off));};H.prototype.String=function(){return this.$val.String();};H.Ptr.prototype.Len=function(){var d;d=this;return d.buf.$length-d.off>>0;};H.prototype.Len=function(){return this.$val.Len();};H.Ptr.prototype.Truncate=function(d){var e;e=this;e.lastRead=0;if(d<0||d>e.Len()){$panic(new $String("bytes.Buffer: truncation out of range"));}else if(d===0){e.off=0;}e.buf=$subslice(e.buf,0,(e.off+d>>0));};H.prototype.Truncate=function(d){return this.$val.Truncate(d);};H.Ptr.prototype.Reset=function(){var d;d=this;d.Truncate(0);};H.prototype.Reset=function(){return this.$val.Reset();};H.Ptr.prototype.grow=function(d){var e,f,g,h;e=this;f=e.Len();if((f===0)&&!((e.off===0))){e.Truncate(0);}if((e.buf.$length+d>>0)>e.buf.$capacity){g=BK.nil;if(e.buf===BK.nil&&d<=64){g=$subslice(new BK(e.bootstrap),0);}else if((f+d>>0)<=(h=e.buf.$capacity/2,(h===h&&h!==1/0&&h!==-1/0)?h>>0:$throwRuntimeError("integer divide by zero"))){$copySlice(e.buf,$subslice(e.buf,e.off));g=$subslice(e.buf,0,f);}else{g=J((2*e.buf.$capacity>>0)+d>>0);$copySlice(g,$subslice(e.buf,e.off));}e.buf=g;e.off=0;}e.buf=$subslice(e.buf,0,((e.off+f>>0)+d>>0));return e.off+f>>0;};H.prototype.grow=function(d){return this.$val.grow(d);};H.Ptr.prototype.Grow=function(d){var e,f;e=this;if(d<0){$panic(new $String("bytes.Buffer.Grow: negative count"));}f=e.grow(d);e.buf=$subslice(e.buf,0,f);};H.prototype.Grow=function(d){return this.$val.Grow(d);};H.Ptr.prototype.Write=function(d){var e=0,f=$ifaceNil,g,h,i,j;g=this;g.lastRead=0;h=g.grow(d.$length);i=$copySlice($subslice(g.buf,h),d);j=$ifaceNil;e=i;f=j;return[e,f];};H.prototype.Write=function(d){return this.$val.Write(d);};H.Ptr.prototype.WriteString=function(d){var e=0,f=$ifaceNil,g,h,i,j;g=this;g.lastRead=0;h=g.grow(d.length);i=$copyString($subslice(g.buf,h),d);j=$ifaceNil;e=i;f=j;return[e,f];};H.prototype.WriteString=function(d){return this.$val.WriteString(d);};H.Ptr.prototype.ReadFrom=function(d){var e=new $Int64(0,0),f=$ifaceNil,g,h,i,j,k,l,m,n,o,p,q;g=this;g.lastRead=0;if(g.off>=g.buf.$length){g.Truncate(0);}while(true){h=g.buf.$capacity-g.buf.$length>>0;if(h<512){i=g.buf;if((g.off+h>>0)<512){i=J((2*g.buf.$capacity>>0)+512>>0);}$copySlice(i,$subslice(g.buf,g.off));g.buf=$subslice(i,0,(g.buf.$length-g.off>>0));g.off=0;}j=d.Read($subslice(g.buf,g.buf.$length,g.buf.$capacity));k=j[0];l=j[1];g.buf=$subslice(g.buf,0,(g.buf.$length+k>>0));e=(m=new $Int64(0,k),new $Int64(e.$high+m.$high,e.$low+m.$low));if($interfaceIsEqual(l,B.EOF)){break;}if(!($interfaceIsEqual(l,$ifaceNil))){n=e;o=l;e=n;f=o;return[e,f];}}p=e;q=$ifaceNil;e=p;f=q;return[e,f];};H.prototype.ReadFrom=function(d){return this.$val.ReadFrom(d);};J=function(d){var $deferred=[],$err=null;try{$deferFrames.push($deferred);$deferred.push([(function(){if(!($interfaceIsEqual($recover(),$ifaceNil))){$panic($pkg.ErrTooLarge);}}),[]]);return BK.make(d);}catch(err){$err=err;return BK.nil;}finally{$deferFrames.pop();$callDeferred($deferred,$err);}};H.Ptr.prototype.WriteTo=function(d){var e=new $Int64(0,0),f=$ifaceNil,g,h,i,j,k,l,m,n,o;g=this;g.lastRead=0;if(g.offh){$panic(new $String("bytes.Buffer.WriteTo: invalid Write count"));}g.off=g.off+(j)>>0;e=new $Int64(0,j);if(!($interfaceIsEqual(k,$ifaceNil))){l=e;m=k;e=l;f=m;return[e,f];}if(!((j===h))){n=e;o=B.ErrShortWrite;e=n;f=o;return[e,f];}}g.Truncate(0);return[e,f];};H.prototype.WriteTo=function(d){return this.$val.WriteTo(d);};H.Ptr.prototype.WriteByte=function(d){var e,f,g;e=this;e.lastRead=0;f=e.grow(1);(g=e.buf,(f<0||f>=g.$length)?$throwRuntimeError("index out of range"):g.$array[g.$offset+f]=d);return $ifaceNil;};H.prototype.WriteByte=function(d){return this.$val.WriteByte(d);};H.Ptr.prototype.WriteRune=function(d){var e=0,f=$ifaceNil,g,h,i,j,k;g=this;if(d<128){g.WriteByte((d<<24>>>24));h=1;i=$ifaceNil;e=h;f=i;return[e,f];}e=C.EncodeRune($subslice(new BK(g.runeBytes),0),d);g.Write($subslice(new BK(g.runeBytes),0,e));j=e;k=$ifaceNil;e=j;f=k;return[e,f];};H.prototype.WriteRune=function(d){return this.$val.WriteRune(d);};H.Ptr.prototype.Read=function(d){var e=0,f=$ifaceNil,g,h,i;g=this;g.lastRead=0;if(g.off>=g.buf.$length){g.Truncate(0);if(d.$length===0){return[e,f];}h=0;i=B.EOF;e=h;f=i;return[e,f];}e=$copySlice(d,$subslice(g.buf,g.off));g.off=g.off+(e)>>0;if(e>0){g.lastRead=2;}return[e,f];};H.prototype.Read=function(d){return this.$val.Read(d);};H.Ptr.prototype.Next=function(d){var e,f,g;e=this;e.lastRead=0;f=e.Len();if(d>f){d=f;}g=$subslice(e.buf,e.off,(e.off+d>>0));e.off=e.off+(d)>>0;if(d>0){e.lastRead=2;}return g;};H.prototype.Next=function(d){return this.$val.Next(d);};H.Ptr.prototype.ReadByte=function(){var d=0,e=$ifaceNil,f,g,h,i,j,k,l;f=this;f.lastRead=0;if(f.off>=f.buf.$length){f.Truncate(0);g=0;h=B.EOF;d=g;e=h;return[d,e];}d=(i=f.buf,j=f.off,((j<0||j>=i.$length)?$throwRuntimeError("index out of range"):i.$array[i.$offset+j]));f.off=f.off+(1)>>0;f.lastRead=2;k=d;l=$ifaceNil;d=k;e=l;return[d,e];};H.prototype.ReadByte=function(){return this.$val.ReadByte();};H.Ptr.prototype.ReadRune=function(){var d=0,e=0,f=$ifaceNil,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;g=this;g.lastRead=0;if(g.off>=g.buf.$length){g.Truncate(0);h=0;i=0;j=B.EOF;d=h;e=i;f=j;return[d,e,f];}g.lastRead=1;m=(k=g.buf,l=g.off,((l<0||l>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+l]));if(m<128){g.off=g.off+(1)>>0;n=(m>>0);o=1;p=$ifaceNil;d=n;e=o;f=p;return[d,e,f];}q=C.DecodeRune($subslice(g.buf,g.off));d=q[0];r=q[1];g.off=g.off+(r)>>0;s=d;t=r;u=$ifaceNil;d=s;e=t;f=u;return[d,e,f];};H.prototype.ReadRune=function(){return this.$val.ReadRune();};H.Ptr.prototype.UnreadRune=function(){var d,e,f;d=this;if(!((d.lastRead===1))){return A.New("bytes.Buffer: UnreadRune: previous operation was not ReadRune");}d.lastRead=0;if(d.off>0){e=C.DecodeLastRune($subslice(d.buf,0,d.off));f=e[1];d.off=d.off-(f)>>0;}return $ifaceNil;};H.prototype.UnreadRune=function(){return this.$val.UnreadRune();};H.Ptr.prototype.UnreadByte=function(){var d;d=this;if(!((d.lastRead===1))&&!((d.lastRead===2))){return A.New("bytes.Buffer: UnreadByte: previous operation was not a read");}d.lastRead=0;if(d.off>0){d.off=d.off-(1)>>0;}return $ifaceNil;};H.prototype.UnreadByte=function(){return this.$val.UnreadByte();};H.Ptr.prototype.ReadBytes=function(d){var e=BK.nil,f=$ifaceNil,g,h,i;g=this;h=g.readSlice(d);i=h[0];f=h[1];e=$appendSlice(e,i);return[e,f];};H.prototype.ReadBytes=function(d){return this.$val.ReadBytes(d);};H.Ptr.prototype.readSlice=function(d){var e=BK.nil,f=$ifaceNil,g,h,i,j,k;g=this;h=E($subslice(g.buf,g.off),d);i=(g.off+h>>0)+1>>0;if(h<0){i=g.buf.$length;f=B.EOF;}e=$subslice(g.buf,g.off,i);g.off=i;g.lastRead=2;j=e;k=f;e=j;f=k;return[e,f];};H.prototype.readSlice=function(d){return this.$val.readSlice(d);};H.Ptr.prototype.ReadString=function(d){var e="",f=$ifaceNil,g,h,i,j,k;g=this;h=g.readSlice(d);i=h[0];f=h[1];j=$bytesToString(i);k=f;e=j;f=k;return[e,f];};H.prototype.ReadString=function(d){return this.$val.ReadString(d);};K=$pkg.NewBuffer=function(d){return new H.Ptr(d,0,BL.zero(),BM.zero(),0);};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}BJ=$ptrType(H);BK=$sliceType($Uint8);BL=$arrayType($Uint8,4);BM=$arrayType($Uint8,64);BJ.methods=[["Bytes","Bytes","",$funcType([],[BK],false),-1],["Grow","Grow","",$funcType([$Int],[],false),-1],["Len","Len","",$funcType([],[$Int],false),-1],["Next","Next","",$funcType([$Int],[BK],false),-1],["Read","Read","",$funcType([BK],[$Int,$error],false),-1],["ReadByte","ReadByte","",$funcType([],[$Uint8,$error],false),-1],["ReadBytes","ReadBytes","",$funcType([$Uint8],[BK,$error],false),-1],["ReadFrom","ReadFrom","",$funcType([B.Reader],[$Int64,$error],false),-1],["ReadRune","ReadRune","",$funcType([],[$Int32,$Int,$error],false),-1],["ReadString","ReadString","",$funcType([$Uint8],[$String,$error],false),-1],["Reset","Reset","",$funcType([],[],false),-1],["String","String","",$funcType([],[$String],false),-1],["Truncate","Truncate","",$funcType([$Int],[],false),-1],["UnreadByte","UnreadByte","",$funcType([],[$error],false),-1],["UnreadRune","UnreadRune","",$funcType([],[$error],false),-1],["Write","Write","",$funcType([BK],[$Int,$error],false),-1],["WriteByte","WriteByte","",$funcType([$Uint8],[$error],false),-1],["WriteRune","WriteRune","",$funcType([$Int32],[$Int,$error],false),-1],["WriteString","WriteString","",$funcType([$String],[$Int,$error],false),-1],["WriteTo","WriteTo","",$funcType([B.Writer],[$Int64,$error],false),-1],["grow","grow","bytes",$funcType([$Int],[$Int],false),-1],["readSlice","readSlice","bytes",$funcType([$Uint8],[BK,$error],false),-1]];H.init([["buf","buf","bytes",BK,""],["off","off","bytes",$Int,""],["runeBytes","runeBytes","bytes",BL,""],["bootstrap","bootstrap","bytes",BM,""],["lastRead","lastRead","bytes",I,""]]);$pkg.ErrTooLarge=A.New("bytes.Buffer: too large");}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["syscall"]=(function(){var $pkg={},A,E,B,D,C,MD,ME,MF,ML,MS,MT,MZ,NE,NG,NH,NK,NX,NY,NZ,OA,OF,OG,OI,OK,EQ,ER,KF,KI,KO,KW,F,G,N,O,P,AP,AQ,AR,AS,DT,FS,H,I,J,K,L,Q,R,S,V,AU,AW,CQ,CR,CT,CY,DO,DY,DZ,ET,EU,GM,HA,HE,HF,HH,HI,HL,HN,HO,HP,II,IT,IU,IV,JA,JY,JZ,KA;A=$packages["bytes"];E=$packages["errors"];B=$packages["github.com/gopherjs/gopherjs/js"];D=$packages["runtime"];C=$packages["sync"];EQ=$pkg.mmapper=$newType(0,$kindStruct,"syscall.mmapper","mmapper","syscall",function(Mutex_,active_,mmap_,munmap_){this.$val=this;this.Mutex=Mutex_!==undefined?Mutex_:new C.Mutex.Ptr();this.active=active_!==undefined?active_:false;this.mmap=mmap_!==undefined?mmap_:$throwNilPointerError;this.munmap=munmap_!==undefined?munmap_:$throwNilPointerError;});ER=$pkg.Errno=$newType(4,$kindUintptr,"syscall.Errno","Errno","syscall",null);KF=$pkg._C_int=$newType(4,$kindInt32,"syscall._C_int","_C_int","syscall",null);KI=$pkg.Timespec=$newType(0,$kindStruct,"syscall.Timespec","Timespec","syscall",function(Sec_,Nsec_){this.$val=this;this.Sec=Sec_!==undefined?Sec_:new $Int64(0,0);this.Nsec=Nsec_!==undefined?Nsec_:new $Int64(0,0);});KO=$pkg.Stat_t=$newType(0,$kindStruct,"syscall.Stat_t","Stat_t","syscall",function(Dev_,Mode_,Nlink_,Ino_,Uid_,Gid_,Rdev_,Pad_cgo_0_,Atimespec_,Mtimespec_,Ctimespec_,Birthtimespec_,Size_,Blocks_,Blksize_,Flags_,Gen_,Lspare_,Qspare_){this.$val=this;this.Dev=Dev_!==undefined?Dev_:0;this.Mode=Mode_!==undefined?Mode_:0;this.Nlink=Nlink_!==undefined?Nlink_:0;this.Ino=Ino_!==undefined?Ino_:new $Uint64(0,0);this.Uid=Uid_!==undefined?Uid_:0;this.Gid=Gid_!==undefined?Gid_:0;this.Rdev=Rdev_!==undefined?Rdev_:0;this.Pad_cgo_0=Pad_cgo_0_!==undefined?Pad_cgo_0_:NG.zero();this.Atimespec=Atimespec_!==undefined?Atimespec_:new KI.Ptr();this.Mtimespec=Mtimespec_!==undefined?Mtimespec_:new KI.Ptr();this.Ctimespec=Ctimespec_!==undefined?Ctimespec_:new KI.Ptr();this.Birthtimespec=Birthtimespec_!==undefined?Birthtimespec_:new KI.Ptr();this.Size=Size_!==undefined?Size_:new $Int64(0,0);this.Blocks=Blocks_!==undefined?Blocks_:new $Int64(0,0);this.Blksize=Blksize_!==undefined?Blksize_:0;this.Flags=Flags_!==undefined?Flags_:0;this.Gen=Gen_!==undefined?Gen_:0;this.Lspare=Lspare_!==undefined?Lspare_:0;this.Qspare=Qspare_!==undefined?Qspare_:OG.zero();});KW=$pkg.Dirent=$newType(0,$kindStruct,"syscall.Dirent","Dirent","syscall",function(Ino_,Seekoff_,Reclen_,Namlen_,Type_,Name_,Pad_cgo_0_){this.$val=this;this.Ino=Ino_!==undefined?Ino_:new $Uint64(0,0);this.Seekoff=Seekoff_!==undefined?Seekoff_:new $Uint64(0,0);this.Reclen=Reclen_!==undefined?Reclen_:0;this.Namlen=Namlen_!==undefined?Namlen_:0;this.Type=Type_!==undefined?Type_:0;this.Name=Name_!==undefined?Name_:OI.zero();this.Pad_cgo_0=Pad_cgo_0_!==undefined?Pad_cgo_0_:OK.zero();});H=function(){$flushConsole=(function(){if(!((G.$length===0))){$global.console.log($externalize($bytesToString(G),$String));G=MD.nil;}});};I=function(){if(!F){console.log("warning: system calls not available, see https://github.com/gopherjs/gopherjs/blob/master/doc/syscalls.md");}F=true;};J=function(i){var j,k;j=$global.goPrintToConsole;if(!(j===undefined)){j(i);return;}G=$appendSlice(G,i);while(true){k=A.IndexByte(G,10);if(k===-1){break;}$global.console.log($externalize($bytesToString($subslice(G,0,k)),$String));G=$subslice(G,(k+1>>0));}};K=function(i){};L=function(){var i,j,k,l,m,n;i=$global.process;if(i===undefined){return ME.nil;}j=i.env;k=$global.Object.keys(j);l=ME.make($parseInt(k.length));m=0;while(m<$parseInt(k.length)){n=$internalize(k[m],$String);(m<0||m>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+m]=n+"="+$internalize(j[$externalize(n,$String)],$String);m=m+(1)>>0;}return l;};Q=function(i){var $deferred=[],$err=null,j;try{$deferFrames.push($deferred);$deferred.push([(function(){$recover();}),[]]);if(N===null){if(O){return null;}O=true;j=$global.require;if(j===undefined){$panic(new $String(""));}N=j($externalize("syscall",$String));}return N[$externalize(i,$String)];}catch(err){$err=err;return null;}finally{$deferFrames.pop();$callDeferred($deferred,$err);}};R=$pkg.Syscall=function(i,j,k,l){var m=0,n=0,o=0,p,q,r,s,t,u,v,w,x,y,z,aa,ab;p=Q("Syscall");if(!(p===null)){q=p(i,j,k,l);r=(($parseInt(q[0])>>0)>>>0);s=(($parseInt(q[1])>>0)>>>0);t=(($parseInt(q[2])>>0)>>>0);m=r;n=s;o=t;return[m,n,o];}if((i===4)&&((j===1)||(j===2))){u=k;v=MD.make($parseInt(u.length));v.$array=u;J(v);w=($parseInt(u.length)>>>0);x=0;y=0;m=w;n=x;o=y;return[m,n,o];}I();z=(P>>>0);aa=0;ab=13;m=z;n=aa;o=ab;return[m,n,o];};S=$pkg.Syscall6=function(i,j,k,l,m,n,o){var p=0,q=0,r=0,s,t,u,v,w,x,y,z;s=Q("Syscall6");if(!(s===null)){t=s(i,j,k,l,m,n,o);u=(($parseInt(t[0])>>0)>>>0);v=(($parseInt(t[1])>>0)>>>0);w=(($parseInt(t[2])>>0)>>>0);p=u;q=v;r=w;return[p,q,r];}if(!((i===202))){I();}x=(P>>>0);y=0;z=13;p=x;q=y;r=z;return[p,q,r];};V=$pkg.BytePtrFromString=function(i){var j,k,l,m,n;j=new($global.Uint8Array)(i.length+1>>0);k=new MD($stringToBytes(i));l=0;while(l=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+l]);if(n===0){return[MF.nil,new ER(22)];}j[m]=n;l++;}j[i.length]=0;return[j,$ifaceNil];};AU=function(){var i,j,k,l,m,n,o,p,q,r;AR=new $Map();i=AS;j=0;while(j=i.$length)?$throwRuntimeError("index out of range"):i.$array[i.$offset+j]);m=0;while(m=AS.$length)?$throwRuntimeError("index out of range"):AS.$array[AS.$offset+k]="";}break;}m=m+(1)>>0;}j++;}};AW=$pkg.Getenv=function(i){var j="",k=false,$deferred=[],$err=null,l,m,n,o,p,q,r,s,t,u,v,w,x,y;try{$deferFrames.push($deferred);AP.Do(AU);if(i.length===0){l="";m=false;j=l;k=m;return[j,k];}AQ.RLock();$deferred.push([$methodVal(AQ,"RUnlock"),[]]);n=(o=AR[i],o!==undefined?[o.v,true]:[0,false]);p=n[0];q=n[1];if(!q){r="";s=false;j=r;k=s;return[j,k];}t=((p<0||p>=AS.$length)?$throwRuntimeError("index out of range"):AS.$array[AS.$offset+p]);u=0;while(u>0));w=true;j=v;k=w;return[j,k];}u=u+(1)>>0;}x="";y=false;j=x;k=y;return[j,k];}catch(err){$err=err;}finally{$deferFrames.pop();$callDeferred($deferred,$err);return[j,k];}};CQ=function(i){if(i<0){return"-"+CR((-i>>>0));}return CR((i>>>0));};CR=function(i){var j,k,l,m;j=$clone(MZ.zero(),MZ);k=31;while(i>=10){(k<0||k>=j.length)?$throwRuntimeError("index out of range"):j[k]=(((l=i%10,l===l?l:$throwRuntimeError("integer divide by zero"))+48>>>0)<<24>>>24);k=k-(1)>>0;i=(m=i/(10),(m===m&&m!==1/0&&m!==-1/0)?m>>>0:$throwRuntimeError("integer divide by zero"));}(k<0||k>=j.length)?$throwRuntimeError("index out of range"):j[k]=((i+48>>>0)<<24>>>24);return $bytesToString($subslice(new MD(j),k));};CT=$pkg.ByteSliceFromString=function(i){var j,k;j=0;while(j>0;}k=MD.make((i.length+1>>0));$copyString(k,i);return[k,$ifaceNil];};KI.Ptr.prototype.Unix=function(){var i=new $Int64(0,0),j=new $Int64(0,0),k,l,m;k=this;l=k.Sec;m=k.Nsec;i=l;j=m;return[i,j];};KI.prototype.Unix=function(){return this.$val.Unix();};KI.Ptr.prototype.Nano=function(){var i,j,k;i=this;return(j=$mul64(i.Sec,new $Int64(0,1000000000)),k=i.Nsec,new $Int64(j.$high+k.$high,j.$low+k.$low));};KI.prototype.Nano=function(){return this.$val.Nano();};CY=$pkg.ReadDirent=function(i,j){var k=0,l=$ifaceNil,m,n;m=new Uint8Array(8);n=HP(i,j,m);k=n[0];l=n[1];if(true&&($interfaceIsEqual(l,new ER(22))||$interfaceIsEqual(l,new ER(2)))){l=$ifaceNil;}return[k,l];};DO=$pkg.Sysctl=function(i){var j="",k=$ifaceNil,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;l=DY(i);m=l[0];k=l[1];if(!($interfaceIsEqual(k,$ifaceNil))){n="";o=k;j=n;k=o;return[j,k];}p=0;k=GM(m,MF.nil,new MT(function(){return p;},function($v){p=$v;}),MF.nil,0);if(!($interfaceIsEqual(k,$ifaceNil))){q="";r=k;j=q;k=r;return[j,k];}if(p===0){s="";t=$ifaceNil;j=s;k=t;return[j,k];}u=MD.make(p);k=GM(m,new MF(function(){return((0<0||0>=this.$target.$length)?$throwRuntimeError("index out of range"):this.$target.$array[this.$target.$offset+0]);},function($v){(0<0||0>=this.$target.$length)?$throwRuntimeError("index out of range"):this.$target.$array[this.$target.$offset+0]=$v;},u),new MT(function(){return p;},function($v){p=$v;}),MF.nil,0);if(!($interfaceIsEqual(k,$ifaceNil))){v="";w=k;j=v;k=w;return[j,k];}if(p>0&&((x=p-1>>>0,((x<0||x>=u.$length)?$throwRuntimeError("index out of range"):u.$array[u.$offset+x]))===0)){p=p-(1)>>>0;}y=$bytesToString($subslice(u,0,p));z=$ifaceNil;j=y;k=z;return[j,k];};DY=function(i){var j=MS.nil,k=$ifaceNil,l,m,n,o,p,q,r,s,t,u,v,w;l=$clone(NH.zero(),NH);m=48;n=$sliceToArray(new NE(l));o=CT(i);p=o[0];k=o[1];if(!($interfaceIsEqual(k,$ifaceNil))){q=MS.nil;r=k;j=q;k=r;return[j,k];}k=GM(new MS([0,3]),n,new MT(function(){return m;},function($v){m=$v;}),new MF(function(){return((0<0||0>=this.$target.$length)?$throwRuntimeError("index out of range"):this.$target.$array[this.$target.$offset+0]);},function($v){(0<0||0>=this.$target.$length)?$throwRuntimeError("index out of range"):this.$target.$array[this.$target.$offset+0]=$v;},p),(i.length>>>0));if(!($interfaceIsEqual(k,$ifaceNil))){s=MS.nil;t=k;j=s;k=t;return[j,k];}u=$subslice(new MS(l),0,(v=m/4,(v===v&&v!==1/0&&v!==-1/0)?v>>>0:$throwRuntimeError("integer divide by zero")));w=$ifaceNil;j=u;k=w;return[j,k];};DZ=$pkg.ParseDirent=function(i,j,k){var l=0,m=0,n=ME.nil,o,p,q,r,s,t,u,v,w,x,y;o=i.$length;while(!((j===0))&&i.$length>0){p=[undefined];p[0]=(q=$sliceToArray(i),r=new KW.Ptr(),s=new DataView(q.buffer,q.byteOffset),r.Ino=new $Uint64(s.getUint32(4,true),s.getUint32(0,true)),r.Seekoff=new $Uint64(s.getUint32(12,true),s.getUint32(8,true)),r.Reclen=s.getUint16(16,true),r.Namlen=s.getUint16(18,true),r.Type=s.getUint8(20,true),r.Name=new($nativeArray($kindInt8))(q.buffer,$min(q.byteOffset+21,q.buffer.byteLength)),r.Pad_cgo_0=new($nativeArray($kindUint8))(q.buffer,$min(q.byteOffset+1045,q.buffer.byteLength)),r);if(p[0].Reclen===0){i=MD.nil;break;}i=$subslice(i,p[0].Reclen);if((t=p[0].Ino,(t.$high===0&&t.$low===0))){continue;}u=$sliceToArray(new NE(p[0].Name));v=$bytesToString($subslice(new MD(u),0,p[0].Namlen));if(v==="."||v===".."){continue;}j=j-(1)>>0;m=m+(1)>>0;k=$append(k,v);}w=o-i.$length>>0;x=m;y=k;l=w;m=x;n=y;return[l,m,n];};EQ.Ptr.prototype.Mmap=function(i,j,k,l,m){var n=MD.nil,o=$ifaceNil,$deferred=[],$err=null,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae;try{$deferFrames.push($deferred);p=this;if(k<=0){q=MD.nil;r=new ER(22);n=q;o=r;return[n,o];}s=p.mmap(0,(k>>>0),l,m,i,j);t=s[0];u=s[1];if(!($interfaceIsEqual(u,$ifaceNil))){v=MD.nil;w=u;n=v;o=w;return[n,o];}x=new NK.Ptr(t,k,k);y=x;ab=new MF(function(){return(aa=y.$capacity-1>>0,((aa<0||aa>=this.$target.$length)?$throwRuntimeError("index out of range"):this.$target.$array[this.$target.$offset+aa]));},function($v){(z=y.$capacity-1>>0,(z<0||z>=this.$target.$length)?$throwRuntimeError("index out of range"):this.$target.$array[this.$target.$offset+z]=$v);},y);p.Mutex.Lock();$deferred.push([$methodVal(p.Mutex,"Unlock"),[]]);ac=ab;(p.active||$throwRuntimeError("assignment to entry in nil map"))[ac.$key()]={k:ac,v:y};ad=y;ae=$ifaceNil;n=ad;o=ae;return[n,o];}catch(err){$err=err;}finally{$deferFrames.pop();$callDeferred($deferred,$err);return[n,o];}};EQ.prototype.Mmap=function(i,j,k,l,m){return this.$val.Mmap(i,j,k,l,m);};EQ.Ptr.prototype.Munmap=function(i){var j=$ifaceNil,$deferred=[],$err=null,k,l,m,n,o,p,q;try{$deferFrames.push($deferred);k=this;if((i.$length===0)||!((i.$length===i.$capacity))){j=new ER(22);return j;}n=new MF(function(){return(m=i.$capacity-1>>0,((m<0||m>=this.$target.$length)?$throwRuntimeError("index out of range"):this.$target.$array[this.$target.$offset+m]));},function($v){(l=i.$capacity-1>>0,(l<0||l>=this.$target.$length)?$throwRuntimeError("index out of range"):this.$target.$array[this.$target.$offset+l]=$v);},i);k.Mutex.Lock();$deferred.push([$methodVal(k.Mutex,"Unlock"),[]]);p=(o=k.active[n.$key()],o!==undefined?o.v:MD.nil);if(p===MD.nil||!($pointerIsEqual(new MF(function(){return((0<0||0>=this.$target.$length)?$throwRuntimeError("index out of range"):this.$target.$array[this.$target.$offset+0]);},function($v){(0<0||0>=this.$target.$length)?$throwRuntimeError("index out of range"):this.$target.$array[this.$target.$offset+0]=$v;},p),new MF(function(){return((0<0||0>=this.$target.$length)?$throwRuntimeError("index out of range"):this.$target.$array[this.$target.$offset+0]);},function($v){(0<0||0>=this.$target.$length)?$throwRuntimeError("index out of range"):this.$target.$array[this.$target.$offset+0]=$v;},i)))){j=new ER(22);return j;}q=k.munmap($sliceToArray(p),(p.$length>>>0));if(!($interfaceIsEqual(q,$ifaceNil))){j=q;return j;}delete k.active[n.$key()];j=$ifaceNil;return j;}catch(err){$err=err;}finally{$deferFrames.pop();$callDeferred($deferred,$err);return j;}};EQ.prototype.Munmap=function(i){return this.$val.Munmap(i);};ER.prototype.Error=function(){var i,j;i=this.$val!==undefined?this.$val:this;if(0<=(i>>0)&&(i>>0)<106){j=((i<0||i>=FS.length)?$throwRuntimeError("index out of range"):FS[i]);if(!(j==="")){return j;}}return"errno "+CQ((i>>0));};$ptrType(ER).prototype.Error=function(){return new ER(this.$get()).Error();};ER.prototype.Temporary=function(){var i;i=this.$val!==undefined?this.$val:this;return(i===4)||(i===24)||(i===54)||(i===53)||new ER(i).Timeout();};$ptrType(ER).prototype.Temporary=function(){return new ER(this.$get()).Temporary();};ER.prototype.Timeout=function(){var i;i=this.$val!==undefined?this.$val:this;return(i===35)||(i===35)||(i===60);};$ptrType(ER).prototype.Timeout=function(){return new ER(this.$get()).Timeout();};ET=$pkg.Read=function(i,j){var k=0,l=$ifaceNil,m;m=IV(i,j);k=m[0];l=m[1];return[k,l];};EU=$pkg.Write=function(i,j){var k=0,l=$ifaceNil,m;m=JY(i,j);k=m[0];l=m[1];return[k,l];};GM=function(i,j,k,l,m){var n=$ifaceNil,o,p,q;o=0;if(i.$length>0){o=$sliceToArray(i);}else{o=new Uint8Array(0);}p=S(202,o,(i.$length>>>0),j,k,l,m);q=p[2];if(!((q===0))){n=new ER(q);}return n;};HA=$pkg.Close=function(i){var j=$ifaceNil,k,l;k=R(6,(i>>>0),0,0);l=k[2];if(!((l===0))){j=new ER(l);}return j;};HE=$pkg.Exit=function(i){R(1,(i>>>0),0,0);return;};HF=$pkg.Fchdir=function(i){var j=$ifaceNil,k,l;k=R(13,(i>>>0),0,0);l=k[2];if(!((l===0))){j=new ER(l);}return j;};HH=$pkg.Fchmod=function(i,j){var k=$ifaceNil,l,m;l=R(124,(i>>>0),(j>>>0),0);m=l[2];if(!((m===0))){k=new ER(m);}return k;};HI=$pkg.Fchown=function(i,j,k){var l=$ifaceNil,m,n;m=R(123,(i>>>0),(j>>>0),(k>>>0));n=m[2];if(!((n===0))){l=new ER(n);}return l;};HL=$pkg.Fstat=function(i,j){var k=$ifaceNil,l,m,n,o,p;m=new Uint8Array(144);l=R(339,(i>>>0),m,0);p=l[2];n=j,o=new DataView(m.buffer,m.byteOffset),n.Dev=o.getInt32(0,true),n.Mode=o.getUint16(4,true),n.Nlink=o.getUint16(6,true),n.Ino=new $Uint64(o.getUint32(12,true),o.getUint32(8,true)),n.Uid=o.getUint32(16,true),n.Gid=o.getUint32(20,true),n.Rdev=o.getInt32(24,true),n.Pad_cgo_0=new($nativeArray($kindUint8))(m.buffer,$min(m.byteOffset+28,m.buffer.byteLength)),n.Atimespec.Sec=new $Int64(o.getUint32(36,true),o.getUint32(32,true)),n.Atimespec.Nsec=new $Int64(o.getUint32(44,true),o.getUint32(40,true)),n.Mtimespec.Sec=new $Int64(o.getUint32(52,true),o.getUint32(48,true)),n.Mtimespec.Nsec=new $Int64(o.getUint32(60,true),o.getUint32(56,true)),n.Ctimespec.Sec=new $Int64(o.getUint32(68,true),o.getUint32(64,true)),n.Ctimespec.Nsec=new $Int64(o.getUint32(76,true),o.getUint32(72,true)),n.Birthtimespec.Sec=new $Int64(o.getUint32(84,true),o.getUint32(80,true)),n.Birthtimespec.Nsec=new $Int64(o.getUint32(92,true),o.getUint32(88,true)),n.Size=new $Int64(o.getUint32(100,true),o.getUint32(96,true)),n.Blocks=new $Int64(o.getUint32(108,true),o.getUint32(104,true)),n.Blksize=o.getInt32(112,true),n.Flags=o.getUint32(116,true),n.Gen=o.getUint32(120,true),n.Lspare=o.getInt32(124,true),n.Qspare=new($nativeArray($kindInt64))(m.buffer,$min(m.byteOffset+128,m.buffer.byteLength));if(!((p===0))){k=new ER(p);}return k;};HN=$pkg.Fsync=function(i){var j=$ifaceNil,k,l;k=R(95,(i>>>0),0,0);l=k[2];if(!((l===0))){j=new ER(l);}return j;};HO=$pkg.Ftruncate=function(i,j){var k=$ifaceNil,l,m;l=R(201,(i>>>0),(j.$low>>>0),0);m=l[2];if(!((m===0))){k=new ER(m);}return k;};HP=$pkg.Getdirentries=function(i,j,k){var l=0,m=$ifaceNil,n,o,p,q;n=0;if(j.$length>0){n=$sliceToArray(j);}else{n=new Uint8Array(0);}o=S(344,(i>>>0),n,(j.$length>>>0),k,0,0);p=o[0];q=o[2];l=(p>>0);if(!((q===0))){m=new ER(q);}return[l,m];};II=$pkg.Lstat=function(i,j){var k=$ifaceNil,l,m,n,o,p,q,r;l=MF.nil;m=V(i);l=m[0];k=m[1];if(!($interfaceIsEqual(k,$ifaceNil))){return k;}o=new Uint8Array(144);n=R(340,l,o,0);r=n[2];p=j,q=new DataView(o.buffer,o.byteOffset),p.Dev=q.getInt32(0,true),p.Mode=q.getUint16(4,true),p.Nlink=q.getUint16(6,true),p.Ino=new $Uint64(q.getUint32(12,true),q.getUint32(8,true)),p.Uid=q.getUint32(16,true),p.Gid=q.getUint32(20,true),p.Rdev=q.getInt32(24,true),p.Pad_cgo_0=new($nativeArray($kindUint8))(o.buffer,$min(o.byteOffset+28,o.buffer.byteLength)),p.Atimespec.Sec=new $Int64(q.getUint32(36,true),q.getUint32(32,true)),p.Atimespec.Nsec=new $Int64(q.getUint32(44,true),q.getUint32(40,true)),p.Mtimespec.Sec=new $Int64(q.getUint32(52,true),q.getUint32(48,true)),p.Mtimespec.Nsec=new $Int64(q.getUint32(60,true),q.getUint32(56,true)),p.Ctimespec.Sec=new $Int64(q.getUint32(68,true),q.getUint32(64,true)),p.Ctimespec.Nsec=new $Int64(q.getUint32(76,true),q.getUint32(72,true)),p.Birthtimespec.Sec=new $Int64(q.getUint32(84,true),q.getUint32(80,true)),p.Birthtimespec.Nsec=new $Int64(q.getUint32(92,true),q.getUint32(88,true)),p.Size=new $Int64(q.getUint32(100,true),q.getUint32(96,true)),p.Blocks=new $Int64(q.getUint32(108,true),q.getUint32(104,true)),p.Blksize=q.getInt32(112,true),p.Flags=q.getUint32(116,true),p.Gen=q.getUint32(120,true),p.Lspare=q.getInt32(124,true),p.Qspare=new($nativeArray($kindInt64))(o.buffer,$min(o.byteOffset+128,o.buffer.byteLength));K(l);if(!((r===0))){k=new ER(r);}return k;};IT=$pkg.Pread=function(i,j,k){var l=0,m=$ifaceNil,n,o,p,q;n=0;if(j.$length>0){n=$sliceToArray(j);}else{n=new Uint8Array(0);}o=S(153,(i>>>0),n,(j.$length>>>0),(k.$low>>>0),0,0);p=o[0];q=o[2];l=(p>>0);if(!((q===0))){m=new ER(q);}return[l,m];};IU=$pkg.Pwrite=function(i,j,k){var l=0,m=$ifaceNil,n,o,p,q;n=0;if(j.$length>0){n=$sliceToArray(j);}else{n=new Uint8Array(0);}o=S(154,(i>>>0),n,(j.$length>>>0),(k.$low>>>0),0,0);p=o[0];q=o[2];l=(p>>0);if(!((q===0))){m=new ER(q);}return[l,m];};IV=function(i,j){var k=0,l=$ifaceNil,m,n,o,p;m=0;if(j.$length>0){m=$sliceToArray(j);}else{m=new Uint8Array(0);}n=R(3,(i>>>0),m,(j.$length>>>0));o=n[0];p=n[2];k=(o>>0);if(!((p===0))){l=new ER(p);}return[k,l];};JA=$pkg.Seek=function(i,j,k){var l=new $Int64(0,0),m=$ifaceNil,n,o,p;n=R(199,(i>>>0),(j.$low>>>0),(k>>>0));o=n[0];p=n[2];l=new $Int64(0,o.constructor===Number?o:1);if(!((p===0))){m=new ER(p);}return[l,m];};JY=function(i,j){var k=0,l=$ifaceNil,m,n,o,p;m=0;if(j.$length>0){m=$sliceToArray(j);}else{m=new Uint8Array(0);}n=R(4,(i>>>0),m,(j.$length>>>0));o=n[0];p=n[2];k=(o>>0);if(!((p===0))){l=new ER(p);}return[k,l];};JZ=function(i,j,k,l,m,n){var o=0,p=$ifaceNil,q,r,s;q=S(197,i,j,(k>>>0),(l>>>0),(m>>>0),(n.$low>>>0));r=q[0];s=q[2];o=r;if(!((s===0))){p=new ER(s);}return[o,p];};KA=function(i,j){var k=$ifaceNil,l,m;l=R(73,i,j,0);m=l[2];if(!((m===0))){k=new ER(m);}return k;};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=E.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}MD=$sliceType($Uint8);ME=$sliceType($String);MF=$ptrType($Uint8);ML=$ptrType(ER);MS=$sliceType(KF);MT=$ptrType($Uintptr);MZ=$arrayType($Uint8,32);NE=$sliceType($Uint8);NG=$arrayType($Uint8,4);NH=$arrayType(KF,14);NK=$structType([["addr","addr","syscall",$Uintptr,""],["len","len","syscall",$Int,""],["cap","cap","syscall",$Int,""]]);NX=$ptrType(EQ);NY=$mapType(MF,MD);NZ=$funcType([$Uintptr,$Uintptr,$Int,$Int,$Int,$Int64],[$Uintptr,$error],false);OA=$funcType([$Uintptr,$Uintptr],[$error],false);OF=$ptrType(KI);OG=$arrayType($Int64,2);OI=$arrayType($Int8,1024);OK=$arrayType($Uint8,3);NX.methods=[["Lock","Lock","",$funcType([],[],false),0],["Mmap","Mmap","",$funcType([$Int,$Int64,$Int,$Int,$Int],[MD,$error],false),-1],["Munmap","Munmap","",$funcType([MD],[$error],false),-1],["Unlock","Unlock","",$funcType([],[],false),0]];EQ.init([["Mutex","","",C.Mutex,""],["active","active","syscall",NY,""],["mmap","mmap","syscall",NZ,""],["munmap","munmap","syscall",OA,""]]);ER.methods=[["Error","Error","",$funcType([],[$String],false),-1],["Temporary","Temporary","",$funcType([],[$Bool],false),-1],["Timeout","Timeout","",$funcType([],[$Bool],false),-1]];ML.methods=[["Error","Error","",$funcType([],[$String],false),-1],["Temporary","Temporary","",$funcType([],[$Bool],false),-1],["Timeout","Timeout","",$funcType([],[$Bool],false),-1]];OF.methods=[["Nano","Nano","",$funcType([],[$Int64],false),-1],["Unix","Unix","",$funcType([],[$Int64,$Int64],false),-1]];KI.init([["Sec","Sec","",$Int64,""],["Nsec","Nsec","",$Int64,""]]);KO.init([["Dev","Dev","",$Int32,""],["Mode","Mode","",$Uint16,""],["Nlink","Nlink","",$Uint16,""],["Ino","Ino","",$Uint64,""],["Uid","Uid","",$Uint32,""],["Gid","Gid","",$Uint32,""],["Rdev","Rdev","",$Int32,""],["Pad_cgo_0","Pad_cgo_0","",NG,""],["Atimespec","Atimespec","",KI,""],["Mtimespec","Mtimespec","",KI,""],["Ctimespec","Ctimespec","",KI,""],["Birthtimespec","Birthtimespec","",KI,""],["Size","Size","",$Int64,""],["Blocks","Blocks","",$Int64,""],["Blksize","Blksize","",$Int32,""],["Flags","Flags","",$Uint32,""],["Gen","Gen","",$Uint32,""],["Lspare","Lspare","",$Int32,""],["Qspare","Qspare","",OG,""]]);KW.init([["Ino","Ino","",$Uint64,""],["Seekoff","Seekoff","",$Uint64,""],["Reclen","Reclen","",$Uint16,""],["Namlen","Namlen","",$Uint16,""],["Type","Type","",$Uint8,""],["Name","Name","",OI,""],["Pad_cgo_0","Pad_cgo_0","",OK,""]]);G=MD.nil;N=null;AP=new C.Once.Ptr();AQ=new C.RWMutex.Ptr();AR=false;F=false;O=false;P=-1;AS=L();$pkg.Stdin=0;$pkg.Stdout=1;$pkg.Stderr=2;FS=$toNativeArray($kindString,["","operation not permitted","no such file or directory","no such process","interrupted system call","input/output error","device not configured","argument list too long","exec format error","bad file descriptor","no child processes","resource deadlock avoided","cannot allocate memory","permission denied","bad address","block device required","resource busy","file exists","cross-device link","operation not supported by device","not a directory","is a directory","invalid argument","too many open files in system","too many open files","inappropriate ioctl for device","text file busy","file too large","no space left on device","illegal seek","read-only file system","too many links","broken pipe","numerical argument out of domain","result too large","resource temporarily unavailable","operation now in progress","operation already in progress","socket operation on non-socket","destination address required","message too long","protocol wrong type for socket","protocol not available","protocol not supported","socket type not supported","operation not supported","protocol family not supported","address family not supported by protocol family","address already in use","can't assign requested address","network is down","network is unreachable","network dropped connection on reset","software caused connection abort","connection reset by peer","no buffer space available","socket is already connected","socket is not connected","can't send after socket shutdown","too many references: can't splice","operation timed out","connection refused","too many levels of symbolic links","file name too long","host is down","no route to host","directory not empty","too many processes","too many users","disc quota exceeded","stale NFS file handle","too many levels of remote in path","RPC struct is bad","RPC version wrong","RPC prog. not avail","program version wrong","bad procedure for program","no locks available","function not implemented","inappropriate file type or format","authentication error","need authenticator","device power is off","device error","value too large to be stored in data type","bad executable (or shared library)","bad CPU type in executable","shared library version mismatch","malformed Mach-o file","operation canceled","identifier removed","no message of desired type","illegal byte sequence","attribute not found","bad message","EMULTIHOP (Reserved)","no message available on STREAM","ENOLINK (Reserved)","no STREAM resources","not a STREAM","protocol error","STREAM ioctl timeout","operation not supported on socket","policy not found","state not recoverable","previous owner died"]);DT=new EQ.Ptr(new C.Mutex.Ptr(),new $Map(),JZ,KA);H();}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["github.com/gopherjs/gopherjs/nosync"]=(function(){var $pkg={},I,J,D;D=$pkg.Once=$newType(0,$kindStruct,"nosync.Once","Once","github.com/gopherjs/gopherjs/nosync",function(doing_,done_){this.$val=this;this.doing=doing_!==undefined?doing_:false;this.done=done_!==undefined?done_:false;});D.Ptr.prototype.Do=function(a){var $deferred=[],$err=null,b;try{$deferFrames.push($deferred);b=this;if(b.done){return;}if(b.doing){$panic(new $String("nosync: Do called within f"));}b.doing=true;$deferred.push([(function(){b.doing=false;b.done=true;}),[]]);a();}catch(err){$err=err;}finally{$deferFrames.pop();$callDeferred($deferred,$err);}};D.prototype.Do=function(a){return this.$val.Do(a);};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:I=$funcType([],[],false);J=$ptrType(D);J.methods=[["Do","Do","",$funcType([I],[],false),-1]];D.init([["doing","doing","github.com/gopherjs/gopherjs/nosync",$Bool,""],["done","done","github.com/gopherjs/gopherjs/nosync",$Bool,""]]);}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["strings"]=(function(){var $pkg={},B,A,C,E,D,BY,F,AB,AD,AH,BU;B=$packages["errors"];A=$packages["github.com/gopherjs/gopherjs/js"];C=$packages["io"];E=$packages["unicode"];D=$packages["unicode/utf8"];F=$pkg.IndexByte=function(b,c){return $parseInt(b.indexOf($global.String.fromCharCode(c)))>>0;};AB=function(b){var c,d,e,f,g,h,i,j,k;c=0;d=0;while(d>>16<<16)*16777619>>>0)+(c<<16>>>16)*16777619)>>>0)+(b.charCodeAt(d)>>>0)>>>0;d=d+(1)>>0;}e=1;f=16777619;g=e;h=f;i=b.length;while(i>0){if(!(((i&1)===0))){g=(j=h,(((g>>>16<<16)*j>>>0)+(g<<16>>>16)*j)>>>0);}h=(k=h,(((h>>>16<<16)*k>>>0)+(h<<16>>>16)*k)>>>0);i=(i>>$min((1),31))>>0;}return[c,g];};AD=$pkg.Count=function(b,c){var d,e,f,g,h,i,j,k,l,m,n,o;d=0;if(c.length===0){return D.RuneCountInString(b)+1>>0;}else if(c.length===1){e=c.charCodeAt(0);f=0;while(f>0;}f=f+(1)>>0;}return d;}else if(c.length>b.length){return 0;}else if(c.length===b.length){if(c===b){return 1;}return 0;}g=AB(c);h=g[0];i=g[1];j=0;k=0;while(k>>16<<16)*16777619>>>0)+(j<<16>>>16)*16777619)>>>0)+(b.charCodeAt(k)>>>0)>>>0;k=k+(1)>>0;}l=0;if((j===h)&&b.substring(0,c.length)===c){d=d+(1)>>0;l=c.length;}m=c.length;while(m>>16<<16)*n>>>0)+(j<<16>>>16)*n)>>>0);j=j+((b.charCodeAt(m)>>>0))>>>0;j=j-((o=(b.charCodeAt((m-c.length>>0))>>>0),(((i>>>16<<16)*o>>>0)+(i<<16>>>16)*o)>>>0))>>>0;m=m+(1)>>0;if((j===h)&&l<=(m-c.length>>0)&&b.substring((m-c.length>>0),m)===c){d=d+(1)>>0;l=m;}}return d;};AH=$pkg.Index=function(b,c){var d,e,f,g,h,i,j,k,l;d=c.length;if(d===0){return 0;}else if(d===1){return F(b,c.charCodeAt(0));}else if(d===b.length){if(c===b){return 0;}return-1;}else if(d>b.length){return-1;}e=AB(c);f=e[0];g=e[1];h=0;i=0;while(i>>16<<16)*16777619>>>0)+(h<<16>>>16)*16777619)>>>0)+(b.charCodeAt(i)>>>0)>>>0;i=i+(1)>>0;}if((h===f)&&b.substring(0,d)===c){return 0;}j=d;while(j>>16<<16)*k>>>0)+(h<<16>>>16)*k)>>>0);h=h+((b.charCodeAt(j)>>>0))>>>0;h=h-((l=(b.charCodeAt((j-d>>0))>>>0),(((g>>>16<<16)*l>>>0)+(g<<16>>>16)*l)>>>0))>>>0;j=j+(1)>>0;if((h===f)&&b.substring((j-d>>0),j)===c){return j-d>>0;}}return-1;};BU=$pkg.Replace=function(b,c,d,e){var f,g,h,i,j,k,l,m;if(c===d||(e===0)){return b;}f=AD(b,c);if(f===0){return b;}else if(e<0||f>0))>>0)>>0));h=0;i=0;j=0;while(j0){l=D.DecodeRuneInString(b.substring(i));m=l[1];k=k+(m)>>0;}}else{k=k+(AH(b.substring(i),c))>>0;}h=h+($copyString($subslice(g,h),b.substring(i,k)))>>0;h=h+($copyString($subslice(g,h),d))>>0;i=k+c.length>>0;j=j+(1)>>0;}h=h+($copyString($subslice(g,h),b.substring(i)))>>0;return $bytesToString($subslice(g,0,h));};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=B.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=A.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=E.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}BY=$sliceType($Uint8);}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["time"]=(function(){var $pkg={},C,B,E,F,A,D,CW,CX,CY,CZ,DD,DE,DF,DG,DH,DN,DQ,DR,DS,DT,AB,BG,BH,BJ,BN,CA,CB,CC,N,Q,R,S,T,X,AA,AN,BI,BK,BS,CD,CE,CF,CH,CL,CS,j,H,I,J,O,P,U,V,W,Y,Z,AC,AD,AE,AF,AG,AH,AJ,AK,AL,AM,AO,BL,BM,BO,BP,BR,BU,BV,BW,BX,BY,BZ,CG;C=$packages["errors"];B=$packages["github.com/gopherjs/gopherjs/js"];E=$packages["github.com/gopherjs/gopherjs/nosync"];F=$packages["runtime"];A=$packages["strings"];D=$packages["syscall"];AB=$pkg.ParseError=$newType(0,$kindStruct,"time.ParseError","ParseError","time",function(Layout_,Value_,LayoutElem_,ValueElem_,Message_){this.$val=this;this.Layout=Layout_!==undefined?Layout_:"";this.Value=Value_!==undefined?Value_:"";this.LayoutElem=LayoutElem_!==undefined?LayoutElem_:"";this.ValueElem=ValueElem_!==undefined?ValueElem_:"";this.Message=Message_!==undefined?Message_:"";});BG=$pkg.Time=$newType(0,$kindStruct,"time.Time","Time","time",function(sec_,nsec_,loc_){this.$val=this;this.sec=sec_!==undefined?sec_:new $Int64(0,0);this.nsec=nsec_!==undefined?nsec_:0;this.loc=loc_!==undefined?loc_:DH.nil;});BH=$pkg.Month=$newType(4,$kindInt,"time.Month","Month","time",null);BJ=$pkg.Weekday=$newType(4,$kindInt,"time.Weekday","Weekday","time",null);BN=$pkg.Duration=$newType(8,$kindInt64,"time.Duration","Duration","time",null);CA=$pkg.Location=$newType(0,$kindStruct,"time.Location","Location","time",function(name_,zone_,tx_,cacheStart_,cacheEnd_,cacheZone_){this.$val=this;this.name=name_!==undefined?name_:"";this.zone=zone_!==undefined?zone_:CX.nil;this.tx=tx_!==undefined?tx_:CY.nil;this.cacheStart=cacheStart_!==undefined?cacheStart_:new $Int64(0,0);this.cacheEnd=cacheEnd_!==undefined?cacheEnd_:new $Int64(0,0);this.cacheZone=cacheZone_!==undefined?cacheZone_:CZ.nil;});CB=$pkg.zone=$newType(0,$kindStruct,"time.zone","zone","time",function(name_,offset_,isDST_){this.$val=this;this.name=name_!==undefined?name_:"";this.offset=offset_!==undefined?offset_:0;this.isDST=isDST_!==undefined?isDST_:false;});CC=$pkg.zoneTrans=$newType(0,$kindStruct,"time.zoneTrans","zoneTrans","time",function(when_,index_,isstd_,isutc_){this.$val=this;this.when=when_!==undefined?when_:new $Int64(0,0);this.index=index_!==undefined?index_:0;this.isstd=isstd_!==undefined?isstd_:false;this.isutc=isutc_!==undefined?isutc_:false;});H=function(){var k,l,m,n;k=new($global.Date)();l=$internalize(k,$String);m=A.IndexByte(l,40);n=A.IndexByte(l,41);if((m===-1)||(n===-1)){CE.name="UTC";return;}CE.name=l.substring((m+1>>0),n);CE.zone=new CX([new CB.Ptr(CE.name,($parseInt(k.getTimezoneOffset())>>0)*-60>>0,false)]);};I=function(){return $mul64($internalize(new($global.Date)().getTime(),$Int64),new $Int64(0,1000000));};J=function(){var k=new $Int64(0,0),l=0,m,n,o,p;m=I();n=$div64(m,new $Int64(0,1000000000),false);o=((p=$div64(m,new $Int64(0,1000000000),true),p.$low+((p.$high>>31)*4294967296))>>0);k=n;l=o;return[k,l];};O=function(k){var l;if(k.length===0){return false;}l=k.charCodeAt(0);return 97<=l&&l<=122;};P=function(k){var l="",m=0,n="",o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx;o=0;while(o>0);q=p;if(q===74){if(k.length>=(o+3>>0)&&k.substring(o,(o+3>>0))==="Jan"){if(k.length>=(o+7>>0)&&k.substring(o,(o+7>>0))==="January"){r=k.substring(0,o);s=257;t=k.substring((o+7>>0));l=r;m=s;n=t;return[l,m,n];}if(!O(k.substring((o+3>>0)))){u=k.substring(0,o);v=258;w=k.substring((o+3>>0));l=u;m=v;n=w;return[l,m,n];}}}else if(q===77){if(k.length>=(o+3>>0)){if(k.substring(o,(o+3>>0))==="Mon"){if(k.length>=(o+6>>0)&&k.substring(o,(o+6>>0))==="Monday"){x=k.substring(0,o);y=261;z=k.substring((o+6>>0));l=x;m=y;n=z;return[l,m,n];}if(!O(k.substring((o+3>>0)))){aa=k.substring(0,o);ab=262;ac=k.substring((o+3>>0));l=aa;m=ab;n=ac;return[l,m,n];}}if(k.substring(o,(o+3>>0))==="MST"){ad=k.substring(0,o);ae=21;af=k.substring((o+3>>0));l=ad;m=ae;n=af;return[l,m,n];}}}else if(q===48){if(k.length>=(o+2>>0)&&49<=k.charCodeAt((o+1>>0))&&k.charCodeAt((o+1>>0))<=54){ag=k.substring(0,o);ah=(ai=k.charCodeAt((o+1>>0))-49<<24>>>24,((ai<0||ai>=N.length)?$throwRuntimeError("index out of range"):N[ai]));aj=k.substring((o+2>>0));l=ag;m=ah;n=aj;return[l,m,n];}}else if(q===49){if(k.length>=(o+2>>0)&&(k.charCodeAt((o+1>>0))===53)){ak=k.substring(0,o);al=522;am=k.substring((o+2>>0));l=ak;m=al;n=am;return[l,m,n];}an=k.substring(0,o);ao=259;ap=k.substring((o+1>>0));l=an;m=ao;n=ap;return[l,m,n];}else if(q===50){if(k.length>=(o+4>>0)&&k.substring(o,(o+4>>0))==="2006"){aq=k.substring(0,o);ar=273;as=k.substring((o+4>>0));l=aq;m=ar;n=as;return[l,m,n];}at=k.substring(0,o);au=263;av=k.substring((o+1>>0));l=at;m=au;n=av;return[l,m,n];}else if(q===95){if(k.length>=(o+2>>0)&&(k.charCodeAt((o+1>>0))===50)){aw=k.substring(0,o);ax=264;ay=k.substring((o+2>>0));l=aw;m=ax;n=ay;return[l,m,n];}}else if(q===51){az=k.substring(0,o);ba=523;bb=k.substring((o+1>>0));l=az;m=ba;n=bb;return[l,m,n];}else if(q===52){bc=k.substring(0,o);bd=525;be=k.substring((o+1>>0));l=bc;m=bd;n=be;return[l,m,n];}else if(q===53){bf=k.substring(0,o);bg=527;bh=k.substring((o+1>>0));l=bf;m=bg;n=bh;return[l,m,n];}else if(q===80){if(k.length>=(o+2>>0)&&(k.charCodeAt((o+1>>0))===77)){bi=k.substring(0,o);bj=531;bk=k.substring((o+2>>0));l=bi;m=bj;n=bk;return[l,m,n];}}else if(q===112){if(k.length>=(o+2>>0)&&(k.charCodeAt((o+1>>0))===109)){bl=k.substring(0,o);bm=532;bn=k.substring((o+2>>0));l=bl;m=bm;n=bn;return[l,m,n];}}else if(q===45){if(k.length>=(o+7>>0)&&k.substring(o,(o+7>>0))==="-070000"){bo=k.substring(0,o);bp=27;bq=k.substring((o+7>>0));l=bo;m=bp;n=bq;return[l,m,n];}if(k.length>=(o+9>>0)&&k.substring(o,(o+9>>0))==="-07:00:00"){br=k.substring(0,o);bs=30;bt=k.substring((o+9>>0));l=br;m=bs;n=bt;return[l,m,n];}if(k.length>=(o+5>>0)&&k.substring(o,(o+5>>0))==="-0700"){bu=k.substring(0,o);bv=26;bw=k.substring((o+5>>0));l=bu;m=bv;n=bw;return[l,m,n];}if(k.length>=(o+6>>0)&&k.substring(o,(o+6>>0))==="-07:00"){bx=k.substring(0,o);by=29;bz=k.substring((o+6>>0));l=bx;m=by;n=bz;return[l,m,n];}if(k.length>=(o+3>>0)&&k.substring(o,(o+3>>0))==="-07"){ca=k.substring(0,o);cb=28;cc=k.substring((o+3>>0));l=ca;m=cb;n=cc;return[l,m,n];}}else if(q===90){if(k.length>=(o+7>>0)&&k.substring(o,(o+7>>0))==="Z070000"){cd=k.substring(0,o);ce=23;cf=k.substring((o+7>>0));l=cd;m=ce;n=cf;return[l,m,n];}if(k.length>=(o+9>>0)&&k.substring(o,(o+9>>0))==="Z07:00:00"){cg=k.substring(0,o);ch=25;ci=k.substring((o+9>>0));l=cg;m=ch;n=ci;return[l,m,n];}if(k.length>=(o+5>>0)&&k.substring(o,(o+5>>0))==="Z0700"){cj=k.substring(0,o);ck=22;cl=k.substring((o+5>>0));l=cj;m=ck;n=cl;return[l,m,n];}if(k.length>=(o+6>>0)&&k.substring(o,(o+6>>0))==="Z07:00"){cm=k.substring(0,o);cn=24;co=k.substring((o+6>>0));l=cm;m=cn;n=co;return[l,m,n];}}else if(q===46){if((o+1>>0)>0))===48)||(k.charCodeAt((o+1>>0))===57))){cp=k.charCodeAt((o+1>>0));cq=o+1>>0;while(cq>0;}if(!AD(k,cq)){cr=31;if(k.charCodeAt((o+1>>0))===57){cr=32;}cr=cr|((((cq-((o+1>>0))>>0))<<16>>0));cs=k.substring(0,o);ct=cr;cu=k.substring(cq);l=cs;m=ct;n=cu;return[l,m,n];}}}o=o+(1)>>0;}cv=k;cw=0;cx="";l=cv;m=cw;n=cx;return[l,m,n];};U=function(k,l){var m,n,o;m=0;while(m>>0;o=(o|(32))>>>0;if(!((n===o))||n<97||n>122){return false;}}m=m+(1)>>0;}return true;};V=function(k,l){var m,n,o,p;m=k;n=0;while(n=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+n]);if(l.length>=p.length&&U(l.substring(0,p.length),p)){return[o,l.substring(p.length),$ifaceNil];}n++;}return[-1,l,AA];};W=function(k,l,m){var n,o,p,q,r,s;if(l<10){if(!((m===0))){k=$append(k,m);}return $append(k,((48+l>>>0)<<24>>>24));}if(l<100){k=$append(k,((48+(n=l/10,(n===n&&n!==1/0&&n!==-1/0)?n>>>0:$throwRuntimeError("integer divide by zero"))>>>0)<<24>>>24));k=$append(k,((48+(o=l%10,o===o?o:$throwRuntimeError("integer divide by zero"))>>>0)<<24>>>24));return k;}p=$clone(DD.zero(),DD);q=32;if(l===0){return $append(k,48);}while(l>=10){q=q-(1)>>0;(q<0||q>=p.length)?$throwRuntimeError("index out of range"):p[q]=(((r=l%10,r===r?r:$throwRuntimeError("integer divide by zero"))+48>>>0)<<24>>>24);l=(s=l/(10),(s===s&&s!==1/0&&s!==-1/0)?s>>>0:$throwRuntimeError("integer divide by zero"));}q=q-(1)>>0;(q<0||q>=p.length)?$throwRuntimeError("index out of range"):p[q]=((l+48>>>0)<<24>>>24);return $appendSlice(k,$subslice(new DE(p),q));};Y=function(k){var l=0,m=$ifaceNil,n,o,p,q,r,s,t,u;n=false;if(!(k==="")&&((k.charCodeAt(0)===45)||(k.charCodeAt(0)===43))){n=k.charCodeAt(0)===45;k=k.substring(1);}o=AO(k);p=o[0];q=o[1];m=o[2];l=((p.$low+((p.$high>>31)*4294967296))>>0);if(!($interfaceIsEqual(m,$ifaceNil))||!(q==="")){r=0;s=X;l=r;m=s;return[l,m];}if(n){l=-l;}t=l;u=$ifaceNil;l=t;m=u;return[l,m];};Z=function(k,l,m,n){var o,p,q,r,s,t;o=l;p=$clone(DF.zero(),DF);q=9;while(q>0){q=q-(1)>>0;(q<0||q>=p.length)?$throwRuntimeError("index out of range"):p[q]=(((r=o%10,r===r?r:$throwRuntimeError("integer divide by zero"))+48>>>0)<<24>>>24);o=(s=o/(10),(s===s&&s!==1/0&&s!==-1/0)?s>>>0:$throwRuntimeError("integer divide by zero"));}if(m>9){m=9;}if(n){while(m>0&&((t=m-1>>0,((t<0||t>=p.length)?$throwRuntimeError("index out of range"):p[t]))===48)){m=m-(1)>>0;}if(m===0){return k;}}k=$append(k,46);return $appendSlice(k,$subslice(new DE(p),0,m));};BG.Ptr.prototype.String=function(){var k;k=$clone(this,BG);return k.Format("2006-01-02 15:04:05.999999999 -0700 MST");};BG.prototype.String=function(){return this.$val.String();};BG.Ptr.prototype.Format=function(k){var l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay;l=$clone(this,BG);m=l.locabs();n=m[0];o=m[1];p=m[2];q=-1;r=0;s=0;t=-1;u=0;v=0;w=DE.nil;x=$clone(DG.zero(),DG);y=k.length+10>>0;if(y<=64){w=$subslice(new DE(x),0,0);}else{w=DE.make(0,y);}while(!(k==="")){z=P(k);aa=z[0];ab=z[1];ac=z[2];if(!(aa==="")){w=$appendSlice(w,new DE($stringToBytes(aa)));}if(ab===0){break;}k=ac;if(q<0&&!(((ab&256)===0))){ad=BR(p,true);q=ad[0];r=ad[1];s=ad[2];}if(t<0&&!(((ab&512)===0))){ae=BM(p);t=ae[0];u=ae[1];v=ae[2];}af=ab&65535;switch(0){default:if(af===274){ag=q;if(ag<0){ag=-ag;}w=W(w,((ah=ag%100,ah===ah?ah:$throwRuntimeError("integer divide by zero"))>>>0),48);}else if(af===273){ai=q;if(q<=-1000){w=$append(w,45);ai=-ai;}else if(q<=-100){w=$appendSlice(w,new DE($stringToBytes("-0")));ai=-ai;}else if(q<=-10){w=$appendSlice(w,new DE($stringToBytes("-00")));ai=-ai;}else if(q<0){w=$appendSlice(w,new DE($stringToBytes("-000")));ai=-ai;}else if(q<10){w=$appendSlice(w,new DE($stringToBytes("000")));}else if(q<100){w=$appendSlice(w,new DE($stringToBytes("00")));}else if(q<1000){w=$append(w,48);}w=W(w,(ai>>>0),0);}else if(af===258){w=$appendSlice(w,new DE($stringToBytes(new BH(r).String().substring(0,3))));}else if(af===257){aj=new BH(r).String();w=$appendSlice(w,new DE($stringToBytes(aj)));}else if(af===259){w=W(w,(r>>>0),0);}else if(af===260){w=W(w,(r>>>0),48);}else if(af===262){w=$appendSlice(w,new DE($stringToBytes(new BJ(BL(p)).String().substring(0,3))));}else if(af===261){ak=new BJ(BL(p)).String();w=$appendSlice(w,new DE($stringToBytes(ak)));}else if(af===263){w=W(w,(s>>>0),0);}else if(af===264){w=W(w,(s>>>0),32);}else if(af===265){w=W(w,(s>>>0),48);}else if(af===522){w=W(w,(t>>>0),48);}else if(af===523){am=(al=t%12,al===al?al:$throwRuntimeError("integer divide by zero"));if(am===0){am=12;}w=W(w,(am>>>0),0);}else if(af===524){ao=(an=t%12,an===an?an:$throwRuntimeError("integer divide by zero"));if(ao===0){ao=12;}w=W(w,(ao>>>0),48);}else if(af===525){w=W(w,(u>>>0),0);}else if(af===526){w=W(w,(u>>>0),48);}else if(af===527){w=W(w,(v>>>0),0);}else if(af===528){w=W(w,(v>>>0),48);}else if(af===531){if(t>=12){w=$appendSlice(w,new DE($stringToBytes("PM")));}else{w=$appendSlice(w,new DE($stringToBytes("AM")));}}else if(af===532){if(t>=12){w=$appendSlice(w,new DE($stringToBytes("pm")));}else{w=$appendSlice(w,new DE($stringToBytes("am")));}}else if(af===22||af===24||af===23||af===25||af===26||af===29||af===27||af===30){if((o===0)&&((ab===22)||(ab===24)||(ab===23)||(ab===25))){w=$append(w,90);break;}aq=(ap=o/60,(ap===ap&&ap!==1/0&&ap!==-1/0)?ap>>0:$throwRuntimeError("integer divide by zero"));ar=o;if(aq<0){w=$append(w,45);aq=-aq;ar=-ar;}else{w=$append(w,43);}w=W(w,((as=aq/60,(as===as&&as!==1/0&&as!==-1/0)?as>>0:$throwRuntimeError("integer divide by zero"))>>>0),48);if((ab===24)||(ab===29)||(ab===25)||(ab===30)){w=$append(w,58);}w=W(w,((at=aq%60,at===at?at:$throwRuntimeError("integer divide by zero"))>>>0),48);if((ab===23)||(ab===27)||(ab===30)||(ab===25)){if((ab===30)||(ab===25)){w=$append(w,58);}w=W(w,((au=ar%60,au===au?au:$throwRuntimeError("integer divide by zero"))>>>0),48);}}else if(af===21){if(!(n==="")){w=$appendSlice(w,new DE($stringToBytes(n)));break;}aw=(av=o/60,(av===av&&av!==1/0&&av!==-1/0)?av>>0:$throwRuntimeError("integer divide by zero"));if(aw<0){w=$append(w,45);aw=-aw;}else{w=$append(w,43);}w=W(w,((ax=aw/60,(ax===ax&&ax!==1/0&&ax!==-1/0)?ax>>0:$throwRuntimeError("integer divide by zero"))>>>0),48);w=W(w,((ay=aw%60,ay===ay?ay:$throwRuntimeError("integer divide by zero"))>>>0),48);}else if(af===31||af===32){w=Z(w,(l.Nanosecond()>>>0),ab>>16>>0,(ab&65535)===32);}}}return $bytesToString(w);};BG.prototype.Format=function(k){return this.$val.Format(k);};AC=function(k){return"\""+k+"\"";};AB.Ptr.prototype.Error=function(){var k;k=this;if(k.Message===""){return"parsing time "+AC(k.Value)+" as "+AC(k.Layout)+": cannot parse "+AC(k.ValueElem)+" as "+AC(k.LayoutElem);}return"parsing time "+AC(k.Value)+k.Message;};AB.prototype.Error=function(){return this.$val.Error();};AD=function(k,l){var m;if(k.length<=l){return false;}m=k.charCodeAt(l);return 48<=m&&m<=57;};AE=function(k,l){if(!AD(k,0)){return[0,k,AA];}if(!AD(k,1)){if(l){return[0,k,AA];}return[((k.charCodeAt(0)-48<<24>>>24)>>0),k.substring(1),$ifaceNil];}return[(((k.charCodeAt(0)-48<<24>>>24)>>0)*10>>0)+((k.charCodeAt(1)-48<<24>>>24)>>0)>>0,k.substring(2),$ifaceNil];};AF=function(k){while(k.length>0&&(k.charCodeAt(0)===32)){k=k.substring(1);}return k;};AG=function(k,l){while(l.length>0){if(l.charCodeAt(0)===32){if(k.length>0&&!((k.charCodeAt(0)===32))){return[k,AA];}l=AF(l);k=AF(k);continue;}if((k.length===0)||!((k.charCodeAt(0)===l.charCodeAt(0)))){return[k,AA];}l=l.substring(1);k=k.substring(1);}return[k,$ifaceNil];};AH=$pkg.Parse=function(k,l){return AJ(k,l,$pkg.UTC,$pkg.Local);};AJ=function(k,l,m,n){var o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,ea,eb,ec;o=k;p=l;q=o;r=p;s="";t=false;u=false;v=0;w=1;x=1;y=0;z=0;aa=0;ab=0;ac=DH.nil;ad=-1;ae="";while(true){af=$ifaceNil;ag=P(k);ah=ag[0];ai=ag[1];aj=ag[2];ak=k.substring(ah.length,(k.length-aj.length>>0));al=AG(l,ah);l=al[0];af=al[1];if(!($interfaceIsEqual(af,$ifaceNil))){return[new BG.Ptr(new $Int64(0,0),0,DH.nil),new AB.Ptr(q,r,ah,l,"")];}if(ai===0){if(!((l.length===0))){return[new BG.Ptr(new $Int64(0,0),0,DH.nil),new AB.Ptr(q,r,"",l,": extra text: "+l)];}break;}k=aj;am="";an=ai&65535;switch(0){default:if(an===274){if(l.length<2){af=AA;break;}ao=l.substring(0,2);ap=l.substring(2);am=ao;l=ap;aq=Y(am);v=aq[0];af=aq[1];if(v>=69){v=v+(1900)>>0;}else{v=v+(2000)>>0;}}else if(an===273){if(l.length<4||!AD(l,0)){af=AA;break;}ar=l.substring(0,4);as=l.substring(4);am=ar;l=as;at=Y(am);v=at[0];af=at[1];}else if(an===258){au=V(S,l);w=au[0];l=au[1];af=au[2];}else if(an===257){av=V(T,l);w=av[0];l=av[1];af=av[2];}else if(an===259||an===260){aw=AE(l,ai===260);w=aw[0];l=aw[1];af=aw[2];if(w<=0||120&&(l.charCodeAt(0)===32)){l=l.substring(1);}az=AE(l,ai===265);x=az[0];l=az[1];af=az[2];if(x<0||31=2&&(l.charCodeAt(0)===46)&&AD(l,1)){be=P(k);ai=be[1];ai=ai&(65535);if((ai===31)||(ai===32)){break;}bf=2;while(bf>0;}bg=AM(l,bf);ab=bg[0];s=bg[1];af=bg[2];l=l.substring(bf);}}else if(an===531){if(l.length<2){af=AA;break;}bh=l.substring(0,2);bi=l.substring(2);am=bh;l=bi;bj=am;if(bj==="PM"){u=true;}else if(bj==="AM"){t=true;}else{af=AA;}}else if(an===532){if(l.length<2){af=AA;break;}bk=l.substring(0,2);bl=l.substring(2);am=bk;l=bl;bm=am;if(bm==="pm"){u=true;}else if(bm==="am"){t=true;}else{af=AA;}}else if(an===22||an===24||an===23||an===25||an===26||an===28||an===29||an===27||an===30){if(((ai===22)||(ai===24))&&l.length>=1&&(l.charCodeAt(0)===90)){l=l.substring(1);ac=$pkg.UTC;break;}bn="";bo="";bp="";bq="";br=bn;bs=bo;bt=bp;bu=bq;if((ai===24)||(ai===29)){if(l.length<6){af=AA;break;}if(!((l.charCodeAt(3)===58))){af=AA;break;}bv=l.substring(0,1);bw=l.substring(1,3);bx=l.substring(4,6);by="00";bz=l.substring(6);br=bv;bs=bw;bt=bx;bu=by;l=bz;}else if(ai===28){if(l.length<3){af=AA;break;}ca=l.substring(0,1);cb=l.substring(1,3);cc="00";cd="00";ce=l.substring(3);br=ca;bs=cb;bt=cc;bu=cd;l=ce;}else if((ai===25)||(ai===30)){if(l.length<9){af=AA;break;}if(!((l.charCodeAt(3)===58))||!((l.charCodeAt(6)===58))){af=AA;break;}cf=l.substring(0,1);cg=l.substring(1,3);ch=l.substring(4,6);ci=l.substring(7,9);cj=l.substring(9);br=cf;bs=cg;bt=ch;bu=ci;l=cj;}else if((ai===23)||(ai===27)){if(l.length<7){af=AA;break;}ck=l.substring(0,1);cl=l.substring(1,3);cm=l.substring(3,5);cn=l.substring(5,7);co=l.substring(7);br=ck;bs=cl;bt=cm;bu=cn;l=co;}else{if(l.length<5){af=AA;break;}cp=l.substring(0,1);cq=l.substring(1,3);cr=l.substring(3,5);cs="00";ct=l.substring(5);br=cp;bs=cq;bt=cr;bu=cs;l=ct;}cu=0;cv=0;cw=0;cx=cu;cy=cv;cz=cw;da=Y(bs);cx=da[0];af=da[1];if($interfaceIsEqual(af,$ifaceNil)){db=Y(bt);cy=db[0];af=db[1];}if($interfaceIsEqual(af,$ifaceNil)){dc=Y(bu);cz=dc[0];af=dc[1];}ad=((((cx*60>>0)+cy>>0))*60>>0)+cz>>0;dd=br.charCodeAt(0);if(dd===43){}else if(dd===45){ad=-ad;}else{af=AA;}}else if(an===21){if(l.length>=3&&l.substring(0,3)==="UTC"){ac=$pkg.UTC;l=l.substring(3);break;}de=AK(l);df=de[0];dg=de[1];if(!dg){af=AA;break;}dh=l.substring(0,df);di=l.substring(df);ae=dh;l=di;}else if(an===31){dj=1+((ai>>16>>0))>>0;if(l.length>0)>0))&&l.charCodeAt((dl+1>>0))<=57){dl=dl+(1)>>0;}dm=AM(l,1+dl>>0);ab=dm[0];s=dm[1];af=dm[2];l=l.substring((1+dl>>0));}}if(!(s==="")){return[new BG.Ptr(new $Int64(0,0),0,DH.nil),new AB.Ptr(q,r,ak,l,": "+s+" out of range")];}if(!($interfaceIsEqual(af,$ifaceNil))){return[new BG.Ptr(new $Int64(0,0),0,DH.nil),new AB.Ptr(q,r,ak,l,"")];}}if(u&&y<12){y=y+(12)>>0;}else if(t&&(y===12)){y=0;}if(!(ac===DH.nil)){return[BY(v,(w>>0),x,y,z,aa,ab,ac),$ifaceNil];}if(!((ad===-1))){dn=$clone(BY(v,(w>>0),x,y,z,aa,ab,$pkg.UTC),BG);dn.sec=(dp=dn.sec,dq=new $Int64(0,ad),new $Int64(dp.$high-dq.$high,dp.$low-dq.$low));dr=n.lookup((ds=dn.sec,new $Int64(ds.$high+-15,ds.$low+2288912640)));dt=dr[0];du=dr[1];if((du===ad)&&(ae===""||dt===ae)){dn.loc=n;return[dn,$ifaceNil];}dn.loc=CG(ae,ad);return[dn,$ifaceNil];}if(!(ae==="")){dv=$clone(BY(v,(w>>0),x,y,z,aa,ab,$pkg.UTC),BG);dw=n.lookupName(ae,(dx=dv.sec,new $Int64(dx.$high+-15,dx.$low+2288912640)));dy=dw[0];dz=dw[2];if(dz){dv.sec=(ea=dv.sec,eb=new $Int64(0,dy),new $Int64(ea.$high-eb.$high,ea.$low-eb.$low));dv.loc=n;return[dv,$ifaceNil];}if(ae.length>3&&ae.substring(0,3)==="GMT"){ec=Y(ae.substring(3));dy=ec[0];dy=dy*(3600)>>0;}dv.loc=CG(ae,dy);return[dv,$ifaceNil];}return[BY(v,(w>>0),x,y,z,aa,ab,m),$ifaceNil];};AK=function(k){var l=0,m=false,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af;if(k.length<3){n=0;o=false;l=n;m=o;return[l,m];}if(k.length>=4&&(k.substring(0,4)==="ChST"||k.substring(0,4)==="MeST")){p=4;q=true;l=p;m=q;return[l,m];}if(k.substring(0,3)==="GMT"){l=AL(k);r=l;s=true;l=r;m=s;return[l,m];}t=0;t=0;while(t<6){if(t>=k.length){break;}u=k.charCodeAt(t);if(u<65||90>0;}v=t;if(v===0||v===1||v===2||v===6){w=0;x=false;l=w;m=x;return[l,m];}else if(v===5){if(k.charCodeAt(4)===84){y=5;z=true;l=y;m=z;return[l,m];}}else if(v===4){if(k.charCodeAt(3)===84){aa=4;ab=true;l=aa;m=ab;return[l,m];}}else if(v===3){ac=3;ad=true;l=ac;m=ad;return[l,m];}ae=0;af=false;l=ae;m=af;return[l,m];};AL=function(k){var l,m,n,o,p;k=k.substring(3);if(k.length===0){return 3;}l=k.charCodeAt(0);if(!((l===45))&&!((l===43))){return 3;}m=AO(k.substring(1));n=m[0];o=m[1];p=m[2];if(!($interfaceIsEqual(p,$ifaceNil))){return 3;}if(l===45){n=new $Int64(-n.$high,-n.$low);}if((n.$high===0&&n.$low===0)||(n.$high<-1||(n.$high===-1&&n.$low<4294967282))||(0>0)-o.length>>0;};AM=function(k,l){var m=0,n="",o=$ifaceNil,p,q,r;if(!((k.charCodeAt(0)===46))){o=AA;return[m,n,o];}p=Y(k.substring(1,l));m=p[0];o=p[1];if(!($interfaceIsEqual(o,$ifaceNil))){return[m,n,o];}if(m<0||1000000000<=m){n="fractional second";return[m,n,o];}q=10-l>>0;r=0;while(r>0;r=r+(1)>>0;}return[m,n,o];};AO=function(k){var l=new $Int64(0,0),m="",n=$ifaceNil,o,p,q,r,s,t,u,v,w,x,y;o=0;while(o57){break;}if((l.$high>214748364||(l.$high===214748364&&l.$low>=3435973835))){q=new $Int64(0,0);r="";s=AN;l=q;m=r;n=s;return[l,m,n];}l=(t=(u=$mul64(l,new $Int64(0,10)),v=new $Int64(0,p),new $Int64(u.$high+v.$high,u.$low+v.$low)),new $Int64(t.$high-0,t.$low-48));o=o+(1)>>0;}w=l;x=k.substring(o);y=$ifaceNil;l=w;m=x;n=y;return[l,m,n];};BG.Ptr.prototype.After=function(k){var l,m,n,o,p;l=$clone(this,BG);k=$clone(k,BG);return(m=l.sec,n=k.sec,(m.$high>n.$high||(m.$high===n.$high&&m.$low>n.$low)))||(o=l.sec,p=k.sec,(o.$high===p.$high&&o.$low===p.$low))&&l.nsec>k.nsec;};BG.prototype.After=function(k){return this.$val.After(k);};BG.Ptr.prototype.Before=function(k){var l,m,n,o,p;l=$clone(this,BG);k=$clone(k,BG);return(m=l.sec,n=k.sec,(m.$high>0,((l<0||l>=BI.length)?$throwRuntimeError("index out of range"):BI[l]));};$ptrType(BH).prototype.String=function(){return new BH(this.$get()).String();};BJ.prototype.String=function(){var k;k=this.$val!==undefined?this.$val:this;return((k<0||k>=BK.length)?$throwRuntimeError("index out of range"):BK[k]);};$ptrType(BJ).prototype.String=function(){return new BJ(this.$get()).String();};BG.Ptr.prototype.IsZero=function(){var k,l;k=$clone(this,BG);return(l=k.sec,(l.$high===0&&l.$low===0))&&(k.nsec===0);};BG.prototype.IsZero=function(){return this.$val.IsZero();};BG.Ptr.prototype.abs=function(){var k,l,m,n,o,p,q,r,s,t,u;k=$clone(this,BG);l=k.loc;if(l===DH.nil||l===CE){l=l.get();}n=(m=k.sec,new $Int64(m.$high+-15,m.$low+2288912640));if(!(l===CD)){if(!(l.cacheZone===CZ.nil)&&(o=l.cacheStart,(o.$high>0)/86400,(m===m&&m!==1/0&&m!==-1/0)?m>>0:$throwRuntimeError("integer divide by zero"))>>0);};BG.Ptr.prototype.ISOWeek=function(){var k=0,l=0,m,n,o,p,q,r,s,t,u,v,w,x;m=$clone(this,BG);n=m.date(true);k=n[0];o=n[1];p=n[2];q=n[3];s=(r=((m.Weekday()+6>>0)>>0)%7,r===r?r:$throwRuntimeError("integer divide by zero"));l=(t=(((q-s>>0)+7>>0))/7,(t===t&&t!==1/0&&t!==-1/0)?t>>0:$throwRuntimeError("integer divide by zero"));v=(u=(((s-q>>0)+371>>0))%7,u===u?u:$throwRuntimeError("integer divide by zero"));if(1<=v&&v<=3){l=l+(1)>>0;}if(l===0){k=k-(1)>>0;l=52;if((v===4)||((v===5)&&BW(k))){l=l+(1)>>0;}}if((o===12)&&p>=29&&s<3){x=(w=(((s+31>>0)-p>>0))%7,w===w?w:$throwRuntimeError("integer divide by zero"));if(0<=x&&x<=2){k=k+(1)>>0;l=1;}}return[k,l];};BG.prototype.ISOWeek=function(){return this.$val.ISOWeek();};BG.Ptr.prototype.Clock=function(){var k=0,l=0,m=0,n,o;n=$clone(this,BG);o=BM(n.abs());k=o[0];l=o[1];m=o[2];return[k,l,m];};BG.prototype.Clock=function(){return this.$val.Clock();};BM=function(k){var l=0,m=0,n=0,o,p;n=($div64(k,new $Uint64(0,86400),true).$low>>0);l=(o=n/3600,(o===o&&o!==1/0&&o!==-1/0)?o>>0:$throwRuntimeError("integer divide by zero"));n=n-((l*3600>>0))>>0;m=(p=n/60,(p===p&&p!==1/0&&p!==-1/0)?p>>0:$throwRuntimeError("integer divide by zero"));n=n-((m*60>>0))>>0;return[l,m,n];};BG.Ptr.prototype.Hour=function(){var k,l;k=$clone(this,BG);return(l=($div64(k.abs(),new $Uint64(0,86400),true).$low>>0)/3600,(l===l&&l!==1/0&&l!==-1/0)?l>>0:$throwRuntimeError("integer divide by zero"));};BG.prototype.Hour=function(){return this.$val.Hour();};BG.Ptr.prototype.Minute=function(){var k,l;k=$clone(this,BG);return(l=($div64(k.abs(),new $Uint64(0,3600),true).$low>>0)/60,(l===l&&l!==1/0&&l!==-1/0)?l>>0:$throwRuntimeError("integer divide by zero"));};BG.prototype.Minute=function(){return this.$val.Minute();};BG.Ptr.prototype.Second=function(){var k;k=$clone(this,BG);return($div64(k.abs(),new $Uint64(0,60),true).$low>>0);};BG.prototype.Second=function(){return this.$val.Second();};BG.Ptr.prototype.Nanosecond=function(){var k;k=$clone(this,BG);return(k.nsec>>0);};BG.prototype.Nanosecond=function(){return this.$val.Nanosecond();};BG.Ptr.prototype.YearDay=function(){var k,l,m;k=$clone(this,BG);l=k.date(false);m=l[3];return m+1>>0;};BG.prototype.YearDay=function(){return this.$val.YearDay();};BN.prototype.String=function(){var k,l,m,n,o,p,q,r;k=this;l=$clone(DD.zero(),DD);m=32;n=new $Uint64(k.$high,k.$low);o=(k.$high<0||(k.$high===0&&k.$low<0));if(o){n=new $Uint64(-n.$high,-n.$low);}if((n.$high<0||(n.$high===0&&n.$low<1000000000))){p=0;m=m-(1)>>0;(m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m]=115;m=m-(1)>>0;if((n.$high===0&&n.$low===0)){return"0";}else if((n.$high<0||(n.$high===0&&n.$low<1000))){p=0;(m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m]=110;}else if((n.$high<0||(n.$high===0&&n.$low<1000000))){p=3;m=m-(1)>>0;$copyString($subslice(new DE(l),m),"\xC2\xB5");}else{p=6;(m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m]=109;}q=BO($subslice(new DE(l),0,m),n,p);m=q[0];n=q[1];m=BP($subslice(new DE(l),0,m),n);}else{m=m-(1)>>0;(m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m]=115;r=BO($subslice(new DE(l),0,m),n,9);m=r[0];n=r[1];m=BP($subslice(new DE(l),0,m),$div64(n,new $Uint64(0,60),true));n=$div64(n,(new $Uint64(0,60)),false);if((n.$high>0||(n.$high===0&&n.$low>0))){m=m-(1)>>0;(m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m]=109;m=BP($subslice(new DE(l),0,m),$div64(n,new $Uint64(0,60),true));n=$div64(n,(new $Uint64(0,60)),false);if((n.$high>0||(n.$high===0&&n.$low>0))){m=m-(1)>>0;(m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m]=104;m=BP($subslice(new DE(l),0,m),n);}}}if(o){m=m-(1)>>0;(m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m]=45;}return $bytesToString($subslice(new DE(l),m));};$ptrType(BN).prototype.String=function(){return this.$get().String();};BO=function(k,l,m){var n=0,o=new $Uint64(0,0),p,q,r,s,t,u;p=k.$length;q=false;r=0;while(r>0;(p<0||p>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+p]=(s.$low<<24>>>24)+48<<24>>>24;}l=$div64(l,(new $Uint64(0,10)),false);r=r+(1)>>0;}if(q){p=p-(1)>>0;(p<0||p>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+p]=46;}t=p;u=l;n=t;o=u;return[n,o];};BP=function(k,l){var m;m=k.$length;if((l.$high===0&&l.$low===0)){m=m-(1)>>0;(m<0||m>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+m]=48;}else{while((l.$high>0||(l.$high===0&&l.$low>0))){m=m-(1)>>0;(m<0||m>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+m]=($div64(l,new $Uint64(0,10),true).$low<<24>>>24)+48<<24>>>24;l=$div64(l,(new $Uint64(0,10)),false);}}return m;};BN.prototype.Nanoseconds=function(){var k;k=this;return new $Int64(k.$high,k.$low);};$ptrType(BN).prototype.Nanoseconds=function(){return this.$get().Nanoseconds();};BN.prototype.Seconds=function(){var k,l,m;k=this;l=$div64(k,new BN(0,1000000000),false);m=$div64(k,new BN(0,1000000000),true);return $flatten64(l)+$flatten64(m)*1e-09;};$ptrType(BN).prototype.Seconds=function(){return this.$get().Seconds();};BN.prototype.Minutes=function(){var k,l,m;k=this;l=$div64(k,new BN(13,4165425152),false);m=$div64(k,new BN(13,4165425152),true);return $flatten64(l)+$flatten64(m)*1.6666666666666667e-11;};$ptrType(BN).prototype.Minutes=function(){return this.$get().Minutes();};BN.prototype.Hours=function(){var k,l,m;k=this;l=$div64(k,new BN(838,817405952),false);m=$div64(k,new BN(838,817405952),true);return $flatten64(l)+$flatten64(m)*2.777777777777778e-13;};$ptrType(BN).prototype.Hours=function(){return this.$get().Hours();};BG.Ptr.prototype.Add=function(k){var l,m,n,o,p,q,r,s,t,u;l=$clone(this,BG);l.sec=(m=l.sec,n=(o=$div64(k,new BN(0,1000000000),false),new $Int64(o.$high,o.$low)),new $Int64(m.$high+n.$high,m.$low+n.$low));q=l.nsec+((p=$div64(k,new BN(0,1000000000),true),p.$low+((p.$high>>31)*4294967296))>>0)>>0;if(q>=1000000000){l.sec=(r=l.sec,s=new $Int64(0,1),new $Int64(r.$high+s.$high,r.$low+s.$low));q=q-(1000000000)>>0;}else if(q<0){l.sec=(t=l.sec,u=new $Int64(0,1),new $Int64(t.$high-u.$high,t.$low-u.$low));q=q+(1000000000)>>0;}l.nsec=q;return l;};BG.prototype.Add=function(k){return this.$val.Add(k);};BG.Ptr.prototype.Sub=function(k){var l,m,n,o,p,q,r;l=$clone(this,BG);k=$clone(k,BG);r=(m=$mul64((n=(o=l.sec,p=k.sec,new $Int64(o.$high-p.$high,o.$low-p.$low)),new BN(n.$high,n.$low)),new BN(0,1000000000)),q=new BN(0,(l.nsec-k.nsec>>0)),new BN(m.$high+q.$high,m.$low+q.$low));if(k.Add(r).Equal(l)){return r;}else if(l.Before(k)){return new BN(-2147483648,0);}else{return new BN(2147483647,4294967295);}};BG.prototype.Sub=function(k){return this.$val.Sub(k);};BG.Ptr.prototype.AddDate=function(k,l,m){var n,o,p,q,r,s,t,u,v;n=$clone(this,BG);o=n.Date();p=o[0];q=o[1];r=o[2];s=n.Clock();t=s[0];u=s[1];v=s[2];return BY(p+k>>0,q+(l>>0)>>0,r+m>>0,t,u,v,(n.nsec>>0),n.loc);};BG.prototype.AddDate=function(k,l,m){return this.$val.AddDate(k,l,m);};BG.Ptr.prototype.date=function(k){var l=0,m=0,n=0,o=0,p,q;p=$clone(this,BG);q=BR(p.abs(),k);l=q[0];m=q[1];n=q[2];o=q[3];return[l,m,n,o];};BG.prototype.date=function(k){return this.$val.date(k);};BR=function(k,l){var m=0,n=0,o=0,p=0,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah;q=$div64(k,new $Uint64(0,86400),false);r=$div64(q,new $Uint64(0,146097),false);s=$mul64(new $Uint64(0,400),r);q=(t=$mul64(new $Uint64(0,146097),r),new $Uint64(q.$high-t.$high,q.$low-t.$low));r=$div64(q,new $Uint64(0,36524),false);r=(u=$shiftRightUint64(r,2),new $Uint64(r.$high-u.$high,r.$low-u.$low));s=(v=$mul64(new $Uint64(0,100),r),new $Uint64(s.$high+v.$high,s.$low+v.$low));q=(w=$mul64(new $Uint64(0,36524),r),new $Uint64(q.$high-w.$high,q.$low-w.$low));r=$div64(q,new $Uint64(0,1461),false);s=(x=$mul64(new $Uint64(0,4),r),new $Uint64(s.$high+x.$high,s.$low+x.$low));q=(y=$mul64(new $Uint64(0,1461),r),new $Uint64(q.$high-y.$high,q.$low-y.$low));r=$div64(q,new $Uint64(0,365),false);r=(z=$shiftRightUint64(r,2),new $Uint64(r.$high-z.$high,r.$low-z.$low));s=(aa=r,new $Uint64(s.$high+aa.$high,s.$low+aa.$low));q=(ab=$mul64(new $Uint64(0,365),r),new $Uint64(q.$high-ab.$high,q.$low-ab.$low));m=((ac=(ad=new $Int64(s.$high,s.$low),new $Int64(ad.$high+-69,ad.$low+4075721025)),ac.$low+((ac.$high>>31)*4294967296))>>0);p=(q.$low>>0);if(!l){return[m,n,o,p];}o=p;if(BW(m)){if(o>59){o=o-(1)>>0;}else if(o===59){n=2;o=29;return[m,n,o,p];}}n=((ae=o/31,(ae===ae&&ae!==1/0&&ae!==-1/0)?ae>>0:$throwRuntimeError("integer divide by zero"))>>0);ag=((af=n+1>>0,((af<0||af>=BS.length)?$throwRuntimeError("index out of range"):BS[af]))>>0);ah=0;if(o>=ag){n=n+(1)>>0;ah=ag;}else{ah=(((n<0||n>=BS.length)?$throwRuntimeError("index out of range"):BS[n])>>0);}n=n+(1)>>0;o=(o-ah>>0)+1>>0;return[m,n,o,p];};BU=$pkg.Now=function(){var k,l,m;k=J();l=k[0];m=k[1];return new BG.Ptr(new $Int64(l.$high+14,l.$low+2006054656),m,$pkg.Local);};BG.Ptr.prototype.UTC=function(){var k;k=$clone(this,BG);k.loc=$pkg.UTC;return k;};BG.prototype.UTC=function(){return this.$val.UTC();};BG.Ptr.prototype.Local=function(){var k;k=$clone(this,BG);k.loc=$pkg.Local;return k;};BG.prototype.Local=function(){return this.$val.Local();};BG.Ptr.prototype.In=function(k){var l;l=$clone(this,BG);if(k===DH.nil){$panic(new $String("time: missing Location in call to Time.In"));}l.loc=k;return l;};BG.prototype.In=function(k){return this.$val.In(k);};BG.Ptr.prototype.Location=function(){var k,l;k=$clone(this,BG);l=k.loc;if(l===DH.nil){l=$pkg.UTC;}return l;};BG.prototype.Location=function(){return this.$val.Location();};BG.Ptr.prototype.Zone=function(){var k="",l=0,m,n,o;m=$clone(this,BG);n=m.loc.lookup((o=m.sec,new $Int64(o.$high+-15,o.$low+2288912640)));k=n[0];l=n[1];return[k,l];};BG.prototype.Zone=function(){return this.$val.Zone();};BG.Ptr.prototype.Unix=function(){var k,l;k=$clone(this,BG);return(l=k.sec,new $Int64(l.$high+-15,l.$low+2288912640));};BG.prototype.Unix=function(){return this.$val.Unix();};BG.Ptr.prototype.UnixNano=function(){var k,l,m,n;k=$clone(this,BG);return(l=$mul64(((m=k.sec,new $Int64(m.$high+-15,m.$low+2288912640))),new $Int64(0,1000000000)),n=new $Int64(0,k.nsec),new $Int64(l.$high+n.$high,l.$low+n.$low));};BG.prototype.UnixNano=function(){return this.$val.UnixNano();};BG.Ptr.prototype.MarshalBinary=function(){var k,l,m,n,o,p,q;k=$clone(this,BG);l=0;if(k.Location()===CD){l=-1;}else{m=k.Zone();n=m[1];if(!(((o=n%60,o===o?o:$throwRuntimeError("integer divide by zero"))===0))){return[DE.nil,C.New("Time.MarshalBinary: zone offset has fractional minute")];}n=(p=n/(60),(p===p&&p!==1/0&&p!==-1/0)?p>>0:$throwRuntimeError("integer divide by zero"));if(n<-32768||(n===-1)||n>32767){return[DE.nil,C.New("Time.MarshalBinary: unexpected zone offset")];}l=(n<<16>>16);}q=new DE([1,($shiftRightInt64(k.sec,56).$low<<24>>>24),($shiftRightInt64(k.sec,48).$low<<24>>>24),($shiftRightInt64(k.sec,40).$low<<24>>>24),($shiftRightInt64(k.sec,32).$low<<24>>>24),($shiftRightInt64(k.sec,24).$low<<24>>>24),($shiftRightInt64(k.sec,16).$low<<24>>>24),($shiftRightInt64(k.sec,8).$low<<24>>>24),(k.sec.$low<<24>>>24),((k.nsec>>24>>0)<<24>>>24),((k.nsec>>16>>0)<<24>>>24),((k.nsec>>8>>0)<<24>>>24),(k.nsec<<24>>>24),((l>>8<<16>>16)<<24>>>24),(l<<24>>>24)]);return[q,$ifaceNil];};BG.prototype.MarshalBinary=function(){return this.$val.MarshalBinary();};BG.Ptr.prototype.UnmarshalBinary=function(k){var l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae;l=this;m=k;if(m.$length===0){return C.New("Time.UnmarshalBinary: no data");}if(!((((0<0||0>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+0])===1))){return C.New("Time.UnmarshalBinary: unsupported version");}if(!((m.$length===15))){return C.New("Time.UnmarshalBinary: invalid length");}m=$subslice(m,1);l.sec=(n=(o=(p=(q=(r=(s=(t=new $Int64(0,((7<0||7>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+7])),u=$shiftLeft64(new $Int64(0,((6<0||6>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+6])),8),new $Int64(t.$high|u.$high,(t.$low|u.$low)>>>0)),v=$shiftLeft64(new $Int64(0,((5<0||5>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+5])),16),new $Int64(s.$high|v.$high,(s.$low|v.$low)>>>0)),w=$shiftLeft64(new $Int64(0,((4<0||4>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+4])),24),new $Int64(r.$high|w.$high,(r.$low|w.$low)>>>0)),x=$shiftLeft64(new $Int64(0,((3<0||3>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+3])),32),new $Int64(q.$high|x.$high,(q.$low|x.$low)>>>0)),y=$shiftLeft64(new $Int64(0,((2<0||2>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+2])),40),new $Int64(p.$high|y.$high,(p.$low|y.$low)>>>0)),z=$shiftLeft64(new $Int64(0,((1<0||1>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+1])),48),new $Int64(o.$high|z.$high,(o.$low|z.$low)>>>0)),aa=$shiftLeft64(new $Int64(0,((0<0||0>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+0])),56),new $Int64(n.$high|aa.$high,(n.$low|aa.$low)>>>0));m=$subslice(m,8);l.nsec=(((((3<0||3>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+3])>>0)|((((2<0||2>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+2])>>0)<<8>>0))|((((1<0||1>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+1])>>0)<<16>>0))|((((0<0||0>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+0])>>0)<<24>>0);m=$subslice(m,4);ab=(((((1<0||1>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+1])<<16>>16)|((((0<0||0>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+0])<<16>>16)<<8<<16>>16))>>0)*60>>0;if(ab===-60){l.loc=CD;}else{ac=$pkg.Local.lookup((ad=l.sec,new $Int64(ad.$high+-15,ad.$low+2288912640)));ae=ac[1];if(ab===ae){l.loc=$pkg.Local;}else{l.loc=CG("",ab);}}return $ifaceNil;};BG.prototype.UnmarshalBinary=function(k){return this.$val.UnmarshalBinary(k);};BG.Ptr.prototype.GobEncode=function(){var k;k=$clone(this,BG);return k.MarshalBinary();};BG.prototype.GobEncode=function(){return this.$val.GobEncode();};BG.Ptr.prototype.GobDecode=function(k){var l;l=this;return l.UnmarshalBinary(k);};BG.prototype.GobDecode=function(k){return this.$val.GobDecode(k);};BG.Ptr.prototype.MarshalJSON=function(){var k,l;k=$clone(this,BG);l=k.Year();if(l<0||l>=10000){return[DE.nil,C.New("Time.MarshalJSON: year outside of range [0,9999]")];}return[new DE($stringToBytes(k.Format("\"2006-01-02T15:04:05.999999999Z07:00\""))),$ifaceNil];};BG.prototype.MarshalJSON=function(){return this.$val.MarshalJSON();};BG.Ptr.prototype.UnmarshalJSON=function(k){var l=$ifaceNil,m,n;m=this;n=AH("\"2006-01-02T15:04:05Z07:00\"",$bytesToString(k));$copy(m,n[0],BG);l=n[1];return l;};BG.prototype.UnmarshalJSON=function(k){return this.$val.UnmarshalJSON(k);};BG.Ptr.prototype.MarshalText=function(){var k,l;k=$clone(this,BG);l=k.Year();if(l<0||l>=10000){return[DE.nil,C.New("Time.MarshalText: year outside of range [0,9999]")];}return[new DE($stringToBytes(k.Format("2006-01-02T15:04:05.999999999Z07:00"))),$ifaceNil];};BG.prototype.MarshalText=function(){return this.$val.MarshalText();};BG.Ptr.prototype.UnmarshalText=function(k){var l=$ifaceNil,m,n;m=this;n=AH("2006-01-02T15:04:05Z07:00",$bytesToString(k));$copy(m,n[0],BG);l=n[1];return l;};BG.prototype.UnmarshalText=function(k){return this.$val.UnmarshalText(k);};BV=$pkg.Unix=function(k,l){var m,n,o,p,q;if((l.$high<0||(l.$high===0&&l.$low<0))||(l.$high>0||(l.$high===0&&l.$low>=1000000000))){m=$div64(l,new $Int64(0,1000000000),false);k=(n=m,new $Int64(k.$high+n.$high,k.$low+n.$low));l=(o=$mul64(m,new $Int64(0,1000000000)),new $Int64(l.$high-o.$high,l.$low-o.$low));if((l.$high<0||(l.$high===0&&l.$low<0))){l=(p=new $Int64(0,1000000000),new $Int64(l.$high+p.$high,l.$low+p.$low));k=(q=new $Int64(0,1),new $Int64(k.$high-q.$high,k.$low-q.$low));}}return new BG.Ptr(new $Int64(k.$high+14,k.$low+2006054656),((l.$low+((l.$high>>31)*4294967296))>>0),$pkg.Local);};BW=function(k){var l,m,n;return((l=k%4,l===l?l:$throwRuntimeError("integer divide by zero"))===0)&&(!(((m=k%100,m===m?m:$throwRuntimeError("integer divide by zero"))===0))||((n=k%400,n===n?n:$throwRuntimeError("integer divide by zero"))===0));};BX=function(k,l,m){var n=0,o=0,p,q,r,s,t,u;if(l<0){q=(p=((-l-1>>0))/m,(p===p&&p!==1/0&&p!==-1/0)?p>>0:$throwRuntimeError("integer divide by zero"))+1>>0;k=k-(q)>>0;l=l+((q*m>>0))>>0;}if(l>=m){s=(r=l/m,(r===r&&r!==1/0&&r!==-1/0)?r>>0:$throwRuntimeError("integer divide by zero"));k=k+(s)>>0;l=l-((s*m>>0))>>0;}t=k;u=l;n=t;o=u;return[n,o];};BY=$pkg.Date=function(k,l,m,n,o,p,q,r){var s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az;if(r===DH.nil){$panic(new $String("time: missing Location in call to Date"));}s=(l>>0)-1>>0;t=BX(k,s,12);k=t[0];s=t[1];l=(s>>0)+1>>0;u=BX(p,q,1000000000);p=u[0];q=u[1];v=BX(o,p,60);o=v[0];p=v[1];w=BX(n,o,60);n=w[0];o=w[1];x=BX(m,n,24);m=x[0];n=x[1];aa=(y=(z=new $Int64(0,k),new $Int64(z.$high- -69,z.$low-4075721025)),new $Uint64(y.$high,y.$low));ab=$div64(aa,new $Uint64(0,400),false);aa=(ac=$mul64(new $Uint64(0,400),ab),new $Uint64(aa.$high-ac.$high,aa.$low-ac.$low));ad=$mul64(new $Uint64(0,146097),ab);ab=$div64(aa,new $Uint64(0,100),false);aa=(ae=$mul64(new $Uint64(0,100),ab),new $Uint64(aa.$high-ae.$high,aa.$low-ae.$low));ad=(af=$mul64(new $Uint64(0,36524),ab),new $Uint64(ad.$high+af.$high,ad.$low+af.$low));ab=$div64(aa,new $Uint64(0,4),false);aa=(ag=$mul64(new $Uint64(0,4),ab),new $Uint64(aa.$high-ag.$high,aa.$low-ag.$low));ad=(ah=$mul64(new $Uint64(0,1461),ab),new $Uint64(ad.$high+ah.$high,ad.$low+ah.$low));ab=aa;ad=(ai=$mul64(new $Uint64(0,365),ab),new $Uint64(ad.$high+ai.$high,ad.$low+ai.$low));ad=(aj=new $Uint64(0,(ak=l-1>>0,((ak<0||ak>=BS.length)?$throwRuntimeError("index out of range"):BS[ak]))),new $Uint64(ad.$high+aj.$high,ad.$low+aj.$low));if(BW(k)&&l>=3){ad=(al=new $Uint64(0,1),new $Uint64(ad.$high+al.$high,ad.$low+al.$low));}ad=(am=new $Uint64(0,(m-1>>0)),new $Uint64(ad.$high+am.$high,ad.$low+am.$low));an=$mul64(ad,new $Uint64(0,86400));an=(ao=new $Uint64(0,(((n*3600>>0)+(o*60>>0)>>0)+p>>0)),new $Uint64(an.$high+ao.$high,an.$low+ao.$low));aq=(ap=new $Int64(an.$high,an.$low),new $Int64(ap.$high+-2147483647,ap.$low+3844486912));ar=r.lookup(aq);as=ar[1];at=ar[3];au=ar[4];if(!((as===0))){aw=(av=new $Int64(0,as),new $Int64(aq.$high-av.$high,aq.$low-av.$low));if((aw.$highau.$high||(aw.$high===au.$high&&aw.$low>=au.$low))){ay=r.lookup(au);as=ay[1];}aq=(az=new $Int64(0,as),new $Int64(aq.$high-az.$high,aq.$low-az.$low));}return new BG.Ptr(new $Int64(aq.$high+14,aq.$low+2006054656),(q>>0),r);};BG.Ptr.prototype.Truncate=function(k){var l,m,n;l=$clone(this,BG);if((k.$high<0||(k.$high===0&&k.$low<=0))){return l;}m=BZ(l,k);n=m[1];return l.Add(new BN(-n.$high,-n.$low));};BG.prototype.Truncate=function(k){return this.$val.Truncate(k);};BG.Ptr.prototype.Round=function(k){var l,m,n,o;l=$clone(this,BG);if((k.$high<0||(k.$high===0&&k.$low<=0))){return l;}m=BZ(l,k);n=m[1];if((o=new BN(n.$high+n.$high,n.$low+n.$low),(o.$high>0;k.sec=(s=k.sec,t=new $Int64(0,1),new $Int64(s.$high-t.$high,s.$low-t.$low));}}if((l.$high<0||(l.$high===0&&l.$low<1000000000))&&(u=$div64(new BN(0,1000000000),(new BN(l.$high+l.$high,l.$low+l.$low)),true),(u.$high===0&&u.$low===0))){m=((w=p/((l.$low+((l.$high>>31)*4294967296))>>0),(w===w&&w!==1/0&&w!==-1/0)?w>>0:$throwRuntimeError("integer divide by zero"))>>0)&1;n=new BN(0,(x=p%((l.$low+((l.$high>>31)*4294967296))>>0),x===x?x:$throwRuntimeError("integer divide by zero")));}else if((v=$div64(l,new BN(0,1000000000),true),(v.$high===0&&v.$low===0))){z=(y=$div64(l,new BN(0,1000000000),false),new $Int64(y.$high,y.$low));m=((aa=$div64(k.sec,z,false),aa.$low+((aa.$high>>31)*4294967296))>>0)&1;n=(ab=$mul64((ac=$div64(k.sec,z,true),new BN(ac.$high,ac.$low)),new BN(0,1000000000)),ad=new BN(0,p),new BN(ab.$high+ad.$high,ab.$low+ad.$low));}else{af=(ae=k.sec,new $Uint64(ae.$high,ae.$low));ag=$mul64(($shiftRightUint64(af,32)),new $Uint64(0,1000000000));ah=$shiftRightUint64(ag,32);ai=$shiftLeft64(ag,32);ag=$mul64(new $Uint64(af.$high&0,(af.$low&4294967295)>>>0),new $Uint64(0,1000000000));aj=ai;ak=new $Uint64(ai.$high+ag.$high,ai.$low+ag.$low);al=aj;ai=ak;if((ai.$highar.$high||(ah.$high===ar.$high&&ah.$low>ar.$low))||(ah.$high===ar.$high&&ah.$low===ar.$low)&&(ai.$high>at.$high||(ai.$high===at.$high&&ai.$low>=at.$low))){m=1;au=ai;av=new $Uint64(ai.$high-at.$high,ai.$low-at.$low);al=au;ai=av;if((ai.$high>al.$high||(ai.$high===al.$high&&ai.$low>al.$low))){ah=(aw=new $Uint64(0,1),new $Uint64(ah.$high-aw.$high,ah.$low-aw.$low));}ah=(ax=ar,new $Uint64(ah.$high-ax.$high,ah.$low-ax.$low));}if((ar.$high===0&&ar.$low===0)&&(ay=new $Uint64(l.$high,l.$low),(at.$high===ay.$high&&at.$low===ay.$low))){break;}at=$shiftRightUint64(at,(1));at=(az=$shiftLeft64((new $Uint64(ar.$high&0,(ar.$low&1)>>>0)),63),new $Uint64(at.$high|az.$high,(at.$low|az.$low)>>>0));ar=$shiftRightUint64(ar,(1));}n=new BN(ai.$high,ai.$low);}if(o&&!((n.$high===0&&n.$low===0))){m=(m^(1))>>0;n=new BN(l.$high-n.$high,l.$low-n.$low);}return[m,n];};CA.Ptr.prototype.get=function(){var k;k=this;if(k===DH.nil){return CD;}if(k===CE){CF.Do(H);}return k;};CA.prototype.get=function(){return this.$val.get();};CA.Ptr.prototype.String=function(){var k;k=this;return k.get().name;};CA.prototype.String=function(){return this.$val.String();};CG=$pkg.FixedZone=function(k,l){var m,n;m=new CA.Ptr(k,new CX([new CB.Ptr(k,l,false)]),new CY([new CC.Ptr(new $Int64(-2147483648,0),0,false,false)]),new $Int64(-2147483648,0),new $Int64(2147483647,4294967295),CZ.nil);m.cacheZone=(n=m.zone,((0<0||0>=n.$length)?$throwRuntimeError("index out of range"):n.$array[n.$offset+0]));return m;};CA.Ptr.prototype.lookup=function(k){var l="",m=0,n=false,o=new $Int64(0,0),p=new $Int64(0,0),q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai;q=this;q=q.get();if(q.zone.$length===0){l="UTC";m=0;n=false;o=new $Int64(-2147483648,0);p=new $Int64(2147483647,4294967295);return[l,m,n,o,p];}r=q.cacheZone;if(!(r===CZ.nil)&&(s=q.cacheStart,(s.$high=v.$length)?$throwRuntimeError("index out of range"):v.$array[v.$offset+0])).when,(k.$high=w.$length)?$throwRuntimeError("index out of range"):w.$array[w.$offset+x]));l=y.name;m=y.offset;n=y.isDST;o=new $Int64(-2147483648,0);if(q.tx.$length>0){p=(z=q.tx,((0<0||0>=z.$length)?$throwRuntimeError("index out of range"):z.$array[z.$offset+0])).when;}else{p=new $Int64(2147483647,4294967295);}return[l,m,n,o,p];}aa=q.tx;p=new $Int64(2147483647,4294967295);ab=0;ac=aa.$length;while((ac-ab>>0)>1){ae=ab+(ad=((ac-ab>>0))/2,(ad===ad&&ad!==1/0&&ad!==-1/0)?ad>>0:$throwRuntimeError("integer divide by zero"))>>0;af=((ae<0||ae>=aa.$length)?$throwRuntimeError("index out of range"):aa.$array[aa.$offset+ae]).when;if((k.$high=aa.$length)?$throwRuntimeError("index out of range"):aa.$array[aa.$offset+ab]).index,((ah<0||ah>=ag.$length)?$throwRuntimeError("index out of range"):ag.$array[ag.$offset+ah]));l=ai.name;m=ai.offset;n=ai.isDST;o=((ab<0||ab>=aa.$length)?$throwRuntimeError("index out of range"):aa.$array[aa.$offset+ab]).when;return[l,m,n,o,p];};CA.prototype.lookup=function(k){return this.$val.lookup(k);};CA.Ptr.prototype.lookupFirstZone=function(){var k,l,m,n,o,p,q,r,s,t,u;k=this;if(!k.firstZoneUsed()){return 0;}if(k.tx.$length>0&&(l=k.zone,m=(n=k.tx,((0<0||0>=n.$length)?$throwRuntimeError("index out of range"):n.$array[n.$offset+0])).index,((m<0||m>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+m])).isDST){p=((o=k.tx,((0<0||0>=o.$length)?$throwRuntimeError("index out of range"):o.$array[o.$offset+0])).index>>0)-1>>0;while(p>=0){if(!(q=k.zone,((p<0||p>=q.$length)?$throwRuntimeError("index out of range"):q.$array[q.$offset+p])).isDST){return p;}p=p-(1)>>0;}}r=k.zone;s=0;while(s=u.$length)?$throwRuntimeError("index out of range"):u.$array[u.$offset+t])).isDST){return t;}s++;}return 0;};CA.prototype.lookupFirstZone=function(){return this.$val.lookupFirstZone();};CA.Ptr.prototype.firstZoneUsed=function(){var k,l,m,n;k=this;l=k.tx;m=0;while(m=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+m]),CC);if(n.index===0){return true;}m++;}return false;};CA.prototype.firstZoneUsed=function(){return this.$val.firstZoneUsed();};CA.Ptr.prototype.lookupName=function(k,l){var m=0,n=false,o=false,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak;p=this;p=p.get();q=p.zone;r=0;while(r=t.$length)?$throwRuntimeError("index out of range"):t.$array[t.$offset+s]));if(u.name===k){v=p.lookup((w=new $Int64(0,u.offset),new $Int64(l.$high-w.$high,l.$low-w.$low)));x=v[0];y=v[1];z=v[2];if(x===u.name){aa=y;ab=z;ac=true;m=aa;n=ab;o=ac;return[m,n,o];}}r++;}ad=p.zone;ae=0;while(ae=ag.$length)?$throwRuntimeError("index out of range"):ag.$array[ag.$offset+af]));if(ah.name===k){ai=ah.offset;aj=ah.isDST;ak=true;m=ai;n=aj;o=ak;return[m,n,o];}ae++;}return[m,n,o];};CA.prototype.lookupName=function(k,l){return this.$val.lookupName(k,l);};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=C.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=E.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=F.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=A.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=6;case 6:if($r&&$r.$blocking){$r=$r();}CW=$sliceType($String);CX=$sliceType(CB);CY=$sliceType(CC);CZ=$ptrType(CB);DD=$arrayType($Uint8,32);DE=$sliceType($Uint8);DF=$arrayType($Uint8,9);DG=$arrayType($Uint8,64);DH=$ptrType(CA);DN=$ptrType(AB);DQ=$ptrType(BG);DR=$ptrType(BH);DS=$ptrType(BJ);DT=$ptrType(BN);DN.methods=[["Error","Error","",$funcType([],[$String],false),-1]];AB.init([["Layout","Layout","",$String,""],["Value","Value","",$String,""],["LayoutElem","LayoutElem","",$String,""],["ValueElem","ValueElem","",$String,""],["Message","Message","",$String,""]]);BG.methods=[["Add","Add","",$funcType([BN],[BG],false),-1],["AddDate","AddDate","",$funcType([$Int,$Int,$Int],[BG],false),-1],["After","After","",$funcType([BG],[$Bool],false),-1],["Before","Before","",$funcType([BG],[$Bool],false),-1],["Clock","Clock","",$funcType([],[$Int,$Int,$Int],false),-1],["Date","Date","",$funcType([],[$Int,BH,$Int],false),-1],["Day","Day","",$funcType([],[$Int],false),-1],["Equal","Equal","",$funcType([BG],[$Bool],false),-1],["Format","Format","",$funcType([$String],[$String],false),-1],["GobEncode","GobEncode","",$funcType([],[DE,$error],false),-1],["Hour","Hour","",$funcType([],[$Int],false),-1],["ISOWeek","ISOWeek","",$funcType([],[$Int,$Int],false),-1],["In","In","",$funcType([DH],[BG],false),-1],["IsZero","IsZero","",$funcType([],[$Bool],false),-1],["Local","Local","",$funcType([],[BG],false),-1],["Location","Location","",$funcType([],[DH],false),-1],["MarshalBinary","MarshalBinary","",$funcType([],[DE,$error],false),-1],["MarshalJSON","MarshalJSON","",$funcType([],[DE,$error],false),-1],["MarshalText","MarshalText","",$funcType([],[DE,$error],false),-1],["Minute","Minute","",$funcType([],[$Int],false),-1],["Month","Month","",$funcType([],[BH],false),-1],["Nanosecond","Nanosecond","",$funcType([],[$Int],false),-1],["Round","Round","",$funcType([BN],[BG],false),-1],["Second","Second","",$funcType([],[$Int],false),-1],["String","String","",$funcType([],[$String],false),-1],["Sub","Sub","",$funcType([BG],[BN],false),-1],["Truncate","Truncate","",$funcType([BN],[BG],false),-1],["UTC","UTC","",$funcType([],[BG],false),-1],["Unix","Unix","",$funcType([],[$Int64],false),-1],["UnixNano","UnixNano","",$funcType([],[$Int64],false),-1],["Weekday","Weekday","",$funcType([],[BJ],false),-1],["Year","Year","",$funcType([],[$Int],false),-1],["YearDay","YearDay","",$funcType([],[$Int],false),-1],["Zone","Zone","",$funcType([],[$String,$Int],false),-1],["abs","abs","time",$funcType([],[$Uint64],false),-1],["date","date","time",$funcType([$Bool],[$Int,BH,$Int,$Int],false),-1],["locabs","locabs","time",$funcType([],[$String,$Int,$Uint64],false),-1]];DQ.methods=[["Add","Add","",$funcType([BN],[BG],false),-1],["AddDate","AddDate","",$funcType([$Int,$Int,$Int],[BG],false),-1],["After","After","",$funcType([BG],[$Bool],false),-1],["Before","Before","",$funcType([BG],[$Bool],false),-1],["Clock","Clock","",$funcType([],[$Int,$Int,$Int],false),-1],["Date","Date","",$funcType([],[$Int,BH,$Int],false),-1],["Day","Day","",$funcType([],[$Int],false),-1],["Equal","Equal","",$funcType([BG],[$Bool],false),-1],["Format","Format","",$funcType([$String],[$String],false),-1],["GobDecode","GobDecode","",$funcType([DE],[$error],false),-1],["GobEncode","GobEncode","",$funcType([],[DE,$error],false),-1],["Hour","Hour","",$funcType([],[$Int],false),-1],["ISOWeek","ISOWeek","",$funcType([],[$Int,$Int],false),-1],["In","In","",$funcType([DH],[BG],false),-1],["IsZero","IsZero","",$funcType([],[$Bool],false),-1],["Local","Local","",$funcType([],[BG],false),-1],["Location","Location","",$funcType([],[DH],false),-1],["MarshalBinary","MarshalBinary","",$funcType([],[DE,$error],false),-1],["MarshalJSON","MarshalJSON","",$funcType([],[DE,$error],false),-1],["MarshalText","MarshalText","",$funcType([],[DE,$error],false),-1],["Minute","Minute","",$funcType([],[$Int],false),-1],["Month","Month","",$funcType([],[BH],false),-1],["Nanosecond","Nanosecond","",$funcType([],[$Int],false),-1],["Round","Round","",$funcType([BN],[BG],false),-1],["Second","Second","",$funcType([],[$Int],false),-1],["String","String","",$funcType([],[$String],false),-1],["Sub","Sub","",$funcType([BG],[BN],false),-1],["Truncate","Truncate","",$funcType([BN],[BG],false),-1],["UTC","UTC","",$funcType([],[BG],false),-1],["Unix","Unix","",$funcType([],[$Int64],false),-1],["UnixNano","UnixNano","",$funcType([],[$Int64],false),-1],["UnmarshalBinary","UnmarshalBinary","",$funcType([DE],[$error],false),-1],["UnmarshalJSON","UnmarshalJSON","",$funcType([DE],[$error],false),-1],["UnmarshalText","UnmarshalText","",$funcType([DE],[$error],false),-1],["Weekday","Weekday","",$funcType([],[BJ],false),-1],["Year","Year","",$funcType([],[$Int],false),-1],["YearDay","YearDay","",$funcType([],[$Int],false),-1],["Zone","Zone","",$funcType([],[$String,$Int],false),-1],["abs","abs","time",$funcType([],[$Uint64],false),-1],["date","date","time",$funcType([$Bool],[$Int,BH,$Int,$Int],false),-1],["locabs","locabs","time",$funcType([],[$String,$Int,$Uint64],false),-1]];BG.init([["sec","sec","time",$Int64,""],["nsec","nsec","time",$Int32,""],["loc","loc","time",DH,""]]);BH.methods=[["String","String","",$funcType([],[$String],false),-1]];DR.methods=[["String","String","",$funcType([],[$String],false),-1]];BJ.methods=[["String","String","",$funcType([],[$String],false),-1]];DS.methods=[["String","String","",$funcType([],[$String],false),-1]];BN.methods=[["Hours","Hours","",$funcType([],[$Float64],false),-1],["Minutes","Minutes","",$funcType([],[$Float64],false),-1],["Nanoseconds","Nanoseconds","",$funcType([],[$Int64],false),-1],["Seconds","Seconds","",$funcType([],[$Float64],false),-1],["String","String","",$funcType([],[$String],false),-1]];DT.methods=[["Hours","Hours","",$funcType([],[$Float64],false),-1],["Minutes","Minutes","",$funcType([],[$Float64],false),-1],["Nanoseconds","Nanoseconds","",$funcType([],[$Int64],false),-1],["Seconds","Seconds","",$funcType([],[$Float64],false),-1],["String","String","",$funcType([],[$String],false),-1]];DH.methods=[["String","String","",$funcType([],[$String],false),-1],["firstZoneUsed","firstZoneUsed","time",$funcType([],[$Bool],false),-1],["get","get","time",$funcType([],[DH],false),-1],["lookup","lookup","time",$funcType([$Int64],[$String,$Int,$Bool,$Int64,$Int64],false),-1],["lookupFirstZone","lookupFirstZone","time",$funcType([],[$Int],false),-1],["lookupName","lookupName","time",$funcType([$String,$Int64],[$Int,$Bool,$Bool],false),-1]];CA.init([["name","name","time",$String,""],["zone","zone","time",CX,""],["tx","tx","time",CY,""],["cacheStart","cacheStart","time",$Int64,""],["cacheEnd","cacheEnd","time",$Int64,""],["cacheZone","cacheZone","time",CZ,""]]);CB.init([["name","name","time",$String,""],["offset","offset","time",$Int,""],["isDST","isDST","time",$Bool,""]]);CC.init([["when","when","time",$Int64,""],["index","index","time",$Uint8,""],["isstd","isstd","time",$Bool,""],["isutc","isutc","time",$Bool,""]]);CE=new CA.Ptr();CF=new E.Once.Ptr();N=$toNativeArray($kindInt,[260,265,524,526,528,274]);Q=new CW(["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]);R=new CW(["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]);S=new CW(["---","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]);T=new CW(["---","January","February","March","April","May","June","July","August","September","October","November","December"]);X=C.New("time: invalid number");AA=C.New("bad value for field");AN=C.New("time: bad [0-9]*");BI=$toNativeArray($kindString,["January","February","March","April","May","June","July","August","September","October","November","December"]);BK=$toNativeArray($kindString,["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]);BS=$toNativeArray($kindInt32,[0,31,59,90,120,151,181,212,243,273,304,334,365]);CD=new CA.Ptr("UTC",CX.nil,CY.nil,new $Int64(0,0),new $Int64(0,0),CZ.nil);$pkg.UTC=CD;$pkg.Local=CE;j=D.Getenv("ZONEINFO");CH=j[0];CL=C.New("malformed time zone information");CS=new CW(["/usr/share/zoneinfo/","/usr/share/lib/zoneinfo/","/usr/lib/locale/TZ/",F.GOROOT()+"/lib/time/zoneinfo.zip"]);}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["os"]=(function(){var $pkg={},E,A,B,F,H,G,C,D,CX,CY,CZ,DB,DC,DD,DE,DK,DQ,DR,DS,DW,DX,DZ,W,X,AQ,BG,BH,BJ,CS,CT,CV,AO,AV,BV,CP,I,Y,AA,AD,AX,AY,BB,BI,BK,BN,BQ,BX,BY,CD,CJ,CL,CM,CQ;E=$packages["errors"];A=$packages["github.com/gopherjs/gopherjs/js"];B=$packages["io"];F=$packages["runtime"];H=$packages["sync"];G=$packages["sync/atomic"];C=$packages["syscall"];D=$packages["time"];W=$pkg.PathError=$newType(0,$kindStruct,"os.PathError","PathError","os",function(Op_,Path_,Err_){this.$val=this;this.Op=Op_!==undefined?Op_:"";this.Path=Path_!==undefined?Path_:"";this.Err=Err_!==undefined?Err_:$ifaceNil;});X=$pkg.SyscallError=$newType(0,$kindStruct,"os.SyscallError","SyscallError","os",function(Syscall_,Err_){this.$val=this;this.Syscall=Syscall_!==undefined?Syscall_:"";this.Err=Err_!==undefined?Err_:$ifaceNil;});AQ=$pkg.LinkError=$newType(0,$kindStruct,"os.LinkError","LinkError","os",function(Op_,Old_,New_,Err_){this.$val=this;this.Op=Op_!==undefined?Op_:"";this.Old=Old_!==undefined?Old_:"";this.New=New_!==undefined?New_:"";this.Err=Err_!==undefined?Err_:$ifaceNil;});BG=$pkg.File=$newType(0,$kindStruct,"os.File","File","os",function(file_){this.$val=this;this.file=file_!==undefined?file_:DQ.nil;});BH=$pkg.file=$newType(0,$kindStruct,"os.file","file","os",function(fd_,name_,dirinfo_,nepipe_){this.$val=this;this.fd=fd_!==undefined?fd_:0;this.name=name_!==undefined?name_:"";this.dirinfo=dirinfo_!==undefined?dirinfo_:CY.nil;this.nepipe=nepipe_!==undefined?nepipe_:0;});BJ=$pkg.dirInfo=$newType(0,$kindStruct,"os.dirInfo","dirInfo","os",function(buf_,nbuf_,bufp_){this.$val=this;this.buf=buf_!==undefined?buf_:CZ.nil;this.nbuf=nbuf_!==undefined?nbuf_:0;this.bufp=bufp_!==undefined?bufp_:0;});CS=$pkg.FileInfo=$newType(8,$kindInterface,"os.FileInfo","FileInfo","os",null);CT=$pkg.FileMode=$newType(4,$kindUint32,"os.FileMode","FileMode","os",null);CV=$pkg.fileStat=$newType(0,$kindStruct,"os.fileStat","fileStat","os",function(name_,size_,mode_,modTime_,sys_){this.$val=this;this.name=name_!==undefined?name_:"";this.size=size_!==undefined?size_:new $Int64(0,0);this.mode=mode_!==undefined?mode_:0;this.modTime=modTime_!==undefined?modTime_:new D.Time.Ptr();this.sys=sys_!==undefined?sys_:$ifaceNil;});I=function(){var b,c,d,e;b=$global.process;if(b===undefined){return new CX(["browser"]);}c=b.argv;d=CX.make(($parseInt(c.length)-1>>0));e=0;while(e<($parseInt(c.length)-1>>0)){(e<0||e>=d.$length)?$throwRuntimeError("index out of range"):d.$array[d.$offset+e]=$internalize(c[(e+1>>0)],$String);e=e+(1)>>0;}return d;};BG.Ptr.prototype.readdirnames=function(b){var c=CX.nil,d=$ifaceNil,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;e=this;if(e.file.dirinfo===CY.nil){e.file.dirinfo=new BJ.Ptr();e.file.dirinfo.buf=CZ.make(4096);}f=e.file.dirinfo;g=b;if(g<=0){g=100;b=-1;}c=CX.make(0,g);while(!((b===0))){if(f.bufp>=f.nbuf){f.bufp=0;h=$ifaceNil;j=C.ReadDirent(e.file.fd,f.buf);i=AX(j[0],j[1]);f.nbuf=i[0];h=i[1];if(!($interfaceIsEqual(h,$ifaceNil))){k=c;l=Y("readdirent",h);c=k;d=l;return[c,d];}if(f.nbuf<=0){break;}}m=0;n=0;o=m;p=n;q=C.ParseDirent($subslice(f.buf,f.bufp,f.nbuf),b,c);o=q[0];p=q[1];c=q[2];f.bufp=f.bufp+(o)>>0;b=b-(p)>>0;}if(b>=0&&(c.$length===0)){r=c;s=B.EOF;c=r;d=s;return[c,d];}t=c;u=$ifaceNil;c=t;d=u;return[c,d];};BG.prototype.readdirnames=function(b){return this.$val.readdirnames(b);};BG.Ptr.prototype.Readdir=function(b){var c=DB.nil,d=$ifaceNil,e,f,g,h;e=this;if(e===DC.nil){f=DB.nil;g=$pkg.ErrInvalid;c=f;d=g;return[c,d];}h=e.readdir(b);c=h[0];d=h[1];return[c,d];};BG.prototype.Readdir=function(b){return this.$val.Readdir(b);};BG.Ptr.prototype.Readdirnames=function(b){var c=CX.nil,d=$ifaceNil,e,f,g,h;e=this;if(e===DC.nil){f=CX.nil;g=$pkg.ErrInvalid;c=f;d=g;return[c,d];}h=e.readdirnames(b);c=h[0];d=h[1];return[c,d];};BG.prototype.Readdirnames=function(b){return this.$val.Readdirnames(b);};W.Ptr.prototype.Error=function(){var b;b=this;return b.Op+" "+b.Path+": "+b.Err.Error();};W.prototype.Error=function(){return this.$val.Error();};X.Ptr.prototype.Error=function(){var b;b=this;return b.Syscall+": "+b.Err.Error();};X.prototype.Error=function(){return this.$val.Error();};Y=$pkg.NewSyscallError=function(b,c){if($interfaceIsEqual(c,$ifaceNil)){return $ifaceNil;}return new X.Ptr(b,c);};AA=$pkg.IsNotExist=function(b){return AD(b);};AD=function(b){var c,d;d=b;if(d===$ifaceNil){c=d;return false;}else if($assertType(d,DD,true)[1]){c=d.$val;b=c.Err;}else if($assertType(d,DE,true)[1]){c=d.$val;b=c.Err;}return $interfaceIsEqual(b,new C.Errno(2))||$interfaceIsEqual(b,$pkg.ErrNotExist);};BG.Ptr.prototype.Name=function(){var b;b=this;return b.file.name;};BG.prototype.Name=function(){return this.$val.Name();};AQ.Ptr.prototype.Error=function(){var b;b=this;return b.Op+" "+b.Old+" "+b.New+": "+b.Err.Error();};AQ.prototype.Error=function(){return this.$val.Error();};BG.Ptr.prototype.Read=function(b){var c=0,d=$ifaceNil,e,f,g,h,i,j,k,l,m;e=this;if(e===DC.nil){f=0;g=$pkg.ErrInvalid;c=f;d=g;return[c,d];}h=e.read(b);c=h[0];i=h[1];if(c<0){c=0;}if((c===0)&&b.$length>0&&$interfaceIsEqual(i,$ifaceNil)){j=0;k=B.EOF;c=j;d=k;return[c,d];}if(!($interfaceIsEqual(i,$ifaceNil))){d=new W.Ptr("read",e.file.name,i);}l=c;m=d;c=l;d=m;return[c,d];};BG.prototype.Read=function(b){return this.$val.Read(b);};BG.Ptr.prototype.ReadAt=function(b,c){var d=0,e=$ifaceNil,f,g,h,i,j,k,l,m,n;f=this;if(f===DC.nil){g=0;h=$pkg.ErrInvalid;d=g;e=h;return[d,e];}while(b.$length>0){i=f.pread(b,c);j=i[0];k=i[1];if((j===0)&&$interfaceIsEqual(k,$ifaceNil)){l=d;m=B.EOF;d=l;e=m;return[d,e];}if(!($interfaceIsEqual(k,$ifaceNil))){e=new W.Ptr("read",f.file.name,k);break;}d=d+(j)>>0;b=$subslice(b,j);c=(n=new $Int64(0,j),new $Int64(c.$high+n.$high,c.$low+n.$low));}return[d,e];};BG.prototype.ReadAt=function(b,c){return this.$val.ReadAt(b,c);};BG.Ptr.prototype.Write=function(b){var c=0,d=$ifaceNil,e,f,g,h,i,j,k;e=this;if(e===DC.nil){f=0;g=$pkg.ErrInvalid;c=f;d=g;return[c,d];}h=e.write(b);c=h[0];i=h[1];if(c<0){c=0;}if(!((c===b.$length))){d=B.ErrShortWrite;}BK(e,i);if(!($interfaceIsEqual(i,$ifaceNil))){d=new W.Ptr("write",e.file.name,i);}j=c;k=d;c=j;d=k;return[c,d];};BG.prototype.Write=function(b){return this.$val.Write(b);};BG.Ptr.prototype.WriteAt=function(b,c){var d=0,e=$ifaceNil,f,g,h,i,j,k,l;f=this;if(f===DC.nil){g=0;h=$pkg.ErrInvalid;d=g;e=h;return[d,e];}while(b.$length>0){i=f.pwrite(b,c);j=i[0];k=i[1];if(!($interfaceIsEqual(k,$ifaceNil))){e=new W.Ptr("write",f.file.name,k);break;}d=d+(j)>>0;b=$subslice(b,j);c=(l=new $Int64(0,j),new $Int64(c.$high+l.$high,c.$low+l.$low));}return[d,e];};BG.prototype.WriteAt=function(b,c){return this.$val.WriteAt(b,c);};BG.Ptr.prototype.Seek=function(b,c){var d=new $Int64(0,0),e=$ifaceNil,f,g,h,i,j,k,l,m,n,o;f=this;if(f===DC.nil){g=new $Int64(0,0);h=$pkg.ErrInvalid;d=g;e=h;return[d,e];}i=f.seek(b,c);j=i[0];k=i[1];if($interfaceIsEqual(k,$ifaceNil)&&!(f.file.dirinfo===CY.nil)&&!((j.$high===0&&j.$low===0))){k=new C.Errno(21);}if(!($interfaceIsEqual(k,$ifaceNil))){l=new $Int64(0,0);m=new W.Ptr("seek",f.file.name,k);d=l;e=m;return[d,e];}n=j;o=$ifaceNil;d=n;e=o;return[d,e];};BG.prototype.Seek=function(b,c){return this.$val.Seek(b,c);};BG.Ptr.prototype.WriteString=function(b){var c=0,d=$ifaceNil,e,f,g,h;e=this;if(e===DC.nil){f=0;g=$pkg.ErrInvalid;c=f;d=g;return[c,d];}h=e.Write(new CZ($stringToBytes(b)));c=h[0];d=h[1];return[c,d];};BG.prototype.WriteString=function(b){return this.$val.WriteString(b);};BG.Ptr.prototype.Chdir=function(){var b,c;b=this;if(b===DC.nil){return $pkg.ErrInvalid;}c=C.Fchdir(b.file.fd);if(!($interfaceIsEqual(c,$ifaceNil))){return new W.Ptr("chdir",b.file.name,c);}return $ifaceNil;};BG.prototype.Chdir=function(){return this.$val.Chdir();};AX=function(b,c){if(b<0){b=0;}return[b,c];};AY=function(){$panic("Native function not implemented: os.sigpipe");};BB=function(b){var c=0;c=(c|((new CT(b).Perm()>>>0)))>>>0;if(!((((b&8388608)>>>0)===0))){c=(c|(2048))>>>0;}if(!((((b&4194304)>>>0)===0))){c=(c|(1024))>>>0;}if(!((((b&1048576)>>>0)===0))){c=(c|(512))>>>0;}return c;};BG.Ptr.prototype.Chmod=function(b){var c,d;c=this;if(c===DC.nil){return $pkg.ErrInvalid;}d=C.Fchmod(c.file.fd,BB(b));if(!($interfaceIsEqual(d,$ifaceNil))){return new W.Ptr("chmod",c.file.name,d);}return $ifaceNil;};BG.prototype.Chmod=function(b){return this.$val.Chmod(b);};BG.Ptr.prototype.Chown=function(b,c){var d,e;d=this;if(d===DC.nil){return $pkg.ErrInvalid;}e=C.Fchown(d.file.fd,b,c);if(!($interfaceIsEqual(e,$ifaceNil))){return new W.Ptr("chown",d.file.name,e);}return $ifaceNil;};BG.prototype.Chown=function(b,c){return this.$val.Chown(b,c);};BG.Ptr.prototype.Truncate=function(b){var c,d;c=this;if(c===DC.nil){return $pkg.ErrInvalid;}d=C.Ftruncate(c.file.fd,b);if(!($interfaceIsEqual(d,$ifaceNil))){return new W.Ptr("truncate",c.file.name,d);}return $ifaceNil;};BG.prototype.Truncate=function(b){return this.$val.Truncate(b);};BG.Ptr.prototype.Sync=function(){var b=$ifaceNil,c,d;c=this;if(c===DC.nil){b=$pkg.ErrInvalid;return b;}d=C.Fsync(c.file.fd);if(!($interfaceIsEqual(d,$ifaceNil))){b=Y("fsync",d);return b;}b=$ifaceNil;return b;};BG.prototype.Sync=function(){return this.$val.Sync();};BG.Ptr.prototype.Fd=function(){var b;b=this;if(b===DC.nil){return 4294967295;}return(b.file.fd>>>0);};BG.prototype.Fd=function(){return this.$val.Fd();};BI=$pkg.NewFile=function(b,c){var d,e;d=(b>>0);if(d<0){return DC.nil;}e=new BG.Ptr(new BH.Ptr(d,c,CY.nil,0));F.SetFinalizer(e.file,new DR($methodExpr(DQ.prototype.close)));return e;};BK=function(b,c){if($interfaceIsEqual(c,new C.Errno(32))){if(G.AddInt32(new DS(function(){return this.$target.file.nepipe;},function($v){this.$target.file.nepipe=$v;},b),1)>=10){AY();}}else{G.StoreInt32(new DS(function(){return this.$target.file.nepipe;},function($v){this.$target.file.nepipe=$v;},b),0);}};BG.Ptr.prototype.Close=function(){var b;b=this;if(b===DC.nil){return $pkg.ErrInvalid;}return b.file.close();};BG.prototype.Close=function(){return this.$val.Close();};BH.Ptr.prototype.close=function(){var b,c,d;b=this;if(b===DQ.nil||b.fd<0){return new C.Errno(22);}c=$ifaceNil;d=C.Close(b.fd);if(!($interfaceIsEqual(d,$ifaceNil))){c=new W.Ptr("close",b.name,d);}b.fd=-1;F.SetFinalizer(b,$ifaceNil);return c;};BH.prototype.close=function(){return this.$val.close();};BG.Ptr.prototype.Stat=function(){var b=$ifaceNil,c=$ifaceNil,d,e,f,g,h,i,j,k;d=this;if(d===DC.nil){e=$ifaceNil;f=$pkg.ErrInvalid;b=e;c=f;return[b,c];}g=$clone(new C.Stat_t.Ptr(),C.Stat_t);c=C.Fstat(d.file.fd,g);if(!($interfaceIsEqual(c,$ifaceNil))){h=$ifaceNil;i=new W.Ptr("stat",d.file.name,c);b=h;c=i;return[b,c];}j=CL(g,d.file.name);k=$ifaceNil;b=j;c=k;return[b,c];};BG.prototype.Stat=function(){return this.$val.Stat();};BN=$pkg.Lstat=function(b){var c=$ifaceNil,d=$ifaceNil,e,f,g,h,i;e=$clone(new C.Stat_t.Ptr(),C.Stat_t);d=C.Lstat(b,e);if(!($interfaceIsEqual(d,$ifaceNil))){f=$ifaceNil;g=new W.Ptr("lstat",b,d);c=f;d=g;return[c,d];}h=CL(e,b);i=$ifaceNil;c=h;d=i;return[c,d];};BG.Ptr.prototype.readdir=function(b){var c=DB.nil,d=$ifaceNil,e,f,g,h,i,j,k,l,m,n,o,p,q,r;e=this;f=e.file.name;if(f===""){f=".";}g=e.Readdirnames(b);h=g[0];d=g[1];c=DB.make(0,h.$length);i=h;j=0;while(j=i.$length)?$throwRuntimeError("index out of range"):i.$array[i.$offset+j]);l=AV(f+"/"+k);m=l[0];n=l[1];if(AA(n)){j++;continue;}if(!($interfaceIsEqual(n,$ifaceNil))){o=c;p=n;c=o;d=p;return[c,d];}c=$append(c,m);j++;}q=c;r=d;c=q;d=r;return[c,d];};BG.prototype.readdir=function(b){return this.$val.readdir(b);};BG.Ptr.prototype.read=function(b){var c=0,d=$ifaceNil,e,f,g;e=this;if(true&&b.$length>1073741824){b=$subslice(b,0,1073741824);}g=C.Read(e.file.fd,b);f=AX(g[0],g[1]);c=f[0];d=f[1];return[c,d];};BG.prototype.read=function(b){return this.$val.read(b);};BG.Ptr.prototype.pread=function(b,c){var d=0,e=$ifaceNil,f,g,h;f=this;if(true&&b.$length>1073741824){b=$subslice(b,0,1073741824);}h=C.Pread(f.file.fd,b,c);g=AX(h[0],h[1]);d=g[0];e=g[1];return[d,e];};BG.prototype.pread=function(b,c){return this.$val.pread(b,c);};BG.Ptr.prototype.write=function(b){var c=0,d=$ifaceNil,e,f,g,h,i,j,k,l;e=this;while(true){f=b;if(true&&f.$length>1073741824){f=$subslice(f,0,1073741824);}h=C.Write(e.file.fd,f);g=AX(h[0],h[1]);i=g[0];j=g[1];c=c+(i)>>0;if(01073741824){b=$subslice(b,0,1073741824);}h=C.Pwrite(f.file.fd,b,c);g=AX(h[0],h[1]);d=g[0];e=g[1];return[d,e];};BG.prototype.pwrite=function(b,c){return this.$val.pwrite(b,c);};BG.Ptr.prototype.seek=function(b,c){var d=new $Int64(0,0),e=$ifaceNil,f,g;f=this;g=C.Seek(f.file.fd,b,c);d=g[0];e=g[1];return[d,e];};BG.prototype.seek=function(b,c){return this.$val.seek(b,c);};BQ=function(b){var c;c=b.length-1>>0;while(c>0&&(b.charCodeAt(c)===47)){b=b.substring(0,c);c=c-(1)>>0;}c=c-(1)>>0;while(c>=0){if(b.charCodeAt(c)===47){b=b.substring((c+1>>0));break;}c=c-(1)>>0;}return b;};BX=function(){BV=BY;};BY=function(b){return!($interfaceIsEqual(b,new C.Errno(45)));};CD=function(){$pkg.Args=I();};CJ=$pkg.Exit=function(b){C.Exit(b);};CL=function(b,c){var d,e;d=new CV.Ptr(BQ(c),b.Size,0,$clone(CM(b.Mtimespec),D.Time),b);d.mode=(((b.Mode&511)>>>0)>>>0);e=(b.Mode&61440)>>>0;if(e===24576||e===57344){d.mode=(d.mode|(67108864))>>>0;}else if(e===8192){d.mode=(d.mode|(69206016))>>>0;}else if(e===16384){d.mode=(d.mode|(2147483648))>>>0;}else if(e===4096){d.mode=(d.mode|(33554432))>>>0;}else if(e===40960){d.mode=(d.mode|(134217728))>>>0;}else if(e===32768){}else if(e===49152){d.mode=(d.mode|(16777216))>>>0;}if(!((((b.Mode&1024)>>>0)===0))){d.mode=(d.mode|(4194304))>>>0;}if(!((((b.Mode&2048)>>>0)===0))){d.mode=(d.mode|(8388608))>>>0;}if(!((((b.Mode&512)>>>0)===0))){d.mode=(d.mode|(1048576))>>>0;}return d;};CM=function(b){b=$clone(b,C.Timespec);return D.Unix(b.Sec,b.Nsec);};CQ=function(){var b,c,d,e,f,g,h;b=C.Sysctl("kern.osrelease");c=b[0];d=b[1];if(!($interfaceIsEqual(d,$ifaceNil))){return;}e=0;f=c;g=0;while(g2||(e===2)&&c.charCodeAt(0)>=49&&c.charCodeAt(1)>=49){CP=true;}};CT.prototype.String=function(){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;b=this.$val!==undefined?this.$val:this;c=$clone(DK.zero(),DK);d=0;e="dalTLDpSugct";f=0;while(f>0)>>>0),j<32?(1<>>0)))>>>0)===0))){(d<0||d>=c.length)?$throwRuntimeError("index out of range"):c[d]=(i<<24>>>24);d=d+(1)>>0;}f+=g[1];}if(d===0){(d<0||d>=c.length)?$throwRuntimeError("index out of range"):c[d]=45;d=d+(1)>>0;}k="rwxrwxrwx";l=0;while(l>0)>>>0),p<32?(1<>>0)))>>>0)===0))){(d<0||d>=c.length)?$throwRuntimeError("index out of range"):c[d]=(o<<24>>>24);}else{(d<0||d>=c.length)?$throwRuntimeError("index out of range"):c[d]=45;}d=d+(1)>>0;l+=m[1];}return $bytesToString($subslice(new CZ(c),0,d));};$ptrType(CT).prototype.String=function(){return new CT(this.$get()).String();};CT.prototype.IsDir=function(){var b;b=this.$val!==undefined?this.$val:this;return!((((b&2147483648)>>>0)===0));};$ptrType(CT).prototype.IsDir=function(){return new CT(this.$get()).IsDir();};CT.prototype.IsRegular=function(){var b;b=this.$val!==undefined?this.$val:this;return((b&2399141888)>>>0)===0;};$ptrType(CT).prototype.IsRegular=function(){return new CT(this.$get()).IsRegular();};CT.prototype.Perm=function(){var b;b=this.$val!==undefined?this.$val:this;return(b&511)>>>0;};$ptrType(CT).prototype.Perm=function(){return new CT(this.$get()).Perm();};CV.Ptr.prototype.Name=function(){var b;b=this;return b.name;};CV.prototype.Name=function(){return this.$val.Name();};CV.Ptr.prototype.IsDir=function(){var b;b=this;return new CT(b.Mode()).IsDir();};CV.prototype.IsDir=function(){return this.$val.IsDir();};CV.Ptr.prototype.Size=function(){var b;b=this;return b.size;};CV.prototype.Size=function(){return this.$val.Size();};CV.Ptr.prototype.Mode=function(){var b;b=this;return b.mode;};CV.prototype.Mode=function(){return this.$val.Mode();};CV.Ptr.prototype.ModTime=function(){var b;b=this;return b.modTime;};CV.prototype.ModTime=function(){return this.$val.ModTime();};CV.Ptr.prototype.Sys=function(){var b;b=this;return b.sys;};CV.prototype.Sys=function(){return this.$val.Sys();};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=E.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=A.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=F.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=H.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}$r=G.$init($BLOCKING);$s=6;case 6:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=7;case 7:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=8;case 8:if($r&&$r.$blocking){$r=$r();}CX=$sliceType($String);CY=$ptrType(BJ);CZ=$sliceType($Uint8);DB=$sliceType(CS);DC=$ptrType(BG);DD=$ptrType(W);DE=$ptrType(AQ);DK=$arrayType($Uint8,32);DQ=$ptrType(BH);DR=$funcType([DQ],[$error],false);DS=$ptrType($Int32);DW=$ptrType(CV);DX=$ptrType(X);DZ=$ptrType(CT);DD.methods=[["Error","Error","",$funcType([],[$String],false),-1]];W.init([["Op","Op","",$String,""],["Path","Path","",$String,""],["Err","Err","",$error,""]]);DX.methods=[["Error","Error","",$funcType([],[$String],false),-1]];X.init([["Syscall","Syscall","",$String,""],["Err","Err","",$error,""]]);DE.methods=[["Error","Error","",$funcType([],[$String],false),-1]];AQ.init([["Op","Op","",$String,""],["Old","Old","",$String,""],["New","New","",$String,""],["Err","Err","",$error,""]]);BG.methods=[["close","close","os",$funcType([],[$error],false),0]];DC.methods=[["Chdir","Chdir","",$funcType([],[$error],false),-1],["Chmod","Chmod","",$funcType([CT],[$error],false),-1],["Chown","Chown","",$funcType([$Int,$Int],[$error],false),-1],["Close","Close","",$funcType([],[$error],false),-1],["Fd","Fd","",$funcType([],[$Uintptr],false),-1],["Name","Name","",$funcType([],[$String],false),-1],["Read","Read","",$funcType([CZ],[$Int,$error],false),-1],["ReadAt","ReadAt","",$funcType([CZ,$Int64],[$Int,$error],false),-1],["Readdir","Readdir","",$funcType([$Int],[DB,$error],false),-1],["Readdirnames","Readdirnames","",$funcType([$Int],[CX,$error],false),-1],["Seek","Seek","",$funcType([$Int64,$Int],[$Int64,$error],false),-1],["Stat","Stat","",$funcType([],[CS,$error],false),-1],["Sync","Sync","",$funcType([],[$error],false),-1],["Truncate","Truncate","",$funcType([$Int64],[$error],false),-1],["Write","Write","",$funcType([CZ],[$Int,$error],false),-1],["WriteAt","WriteAt","",$funcType([CZ,$Int64],[$Int,$error],false),-1],["WriteString","WriteString","",$funcType([$String],[$Int,$error],false),-1],["close","close","os",$funcType([],[$error],false),0],["pread","pread","os",$funcType([CZ,$Int64],[$Int,$error],false),-1],["pwrite","pwrite","os",$funcType([CZ,$Int64],[$Int,$error],false),-1],["read","read","os",$funcType([CZ],[$Int,$error],false),-1],["readdir","readdir","os",$funcType([$Int],[DB,$error],false),-1],["readdirnames","readdirnames","os",$funcType([$Int],[CX,$error],false),-1],["seek","seek","os",$funcType([$Int64,$Int],[$Int64,$error],false),-1],["write","write","os",$funcType([CZ],[$Int,$error],false),-1]];BG.init([["file","","os",DQ,""]]);DQ.methods=[["close","close","os",$funcType([],[$error],false),-1]];BH.init([["fd","fd","os",$Int,""],["name","name","os",$String,""],["dirinfo","dirinfo","os",CY,""],["nepipe","nepipe","os",$Int32,""]]);BJ.init([["buf","buf","os",CZ,""],["nbuf","nbuf","os",$Int,""],["bufp","bufp","os",$Int,""]]);CS.init([["IsDir","IsDir","",$funcType([],[$Bool],false)],["ModTime","ModTime","",$funcType([],[D.Time],false)],["Mode","Mode","",$funcType([],[CT],false)],["Name","Name","",$funcType([],[$String],false)],["Size","Size","",$funcType([],[$Int64],false)],["Sys","Sys","",$funcType([],[$emptyInterface],false)]]);CT.methods=[["IsDir","IsDir","",$funcType([],[$Bool],false),-1],["IsRegular","IsRegular","",$funcType([],[$Bool],false),-1],["Perm","Perm","",$funcType([],[CT],false),-1],["String","String","",$funcType([],[$String],false),-1]];DZ.methods=[["IsDir","IsDir","",$funcType([],[$Bool],false),-1],["IsRegular","IsRegular","",$funcType([],[$Bool],false),-1],["Perm","Perm","",$funcType([],[CT],false),-1],["String","String","",$funcType([],[$String],false),-1]];DW.methods=[["IsDir","IsDir","",$funcType([],[$Bool],false),-1],["ModTime","ModTime","",$funcType([],[D.Time],false),-1],["Mode","Mode","",$funcType([],[CT],false),-1],["Name","Name","",$funcType([],[$String],false),-1],["Size","Size","",$funcType([],[$Int64],false),-1],["Sys","Sys","",$funcType([],[$emptyInterface],false),-1]];CV.init([["name","name","os",$String,""],["size","size","os",$Int64,""],["mode","mode","os",CT,""],["modTime","modTime","os",D.Time,""],["sys","sys","os",$emptyInterface,""]]);$pkg.Args=CX.nil;CP=false;$pkg.ErrInvalid=E.New("invalid argument");$pkg.ErrPermission=E.New("permission denied");$pkg.ErrExist=E.New("file already exists");$pkg.ErrNotExist=E.New("file does not exist");AO=E.New("os: process already finished");$pkg.Stdin=BI((C.Stdin>>>0),"/dev/stdin");$pkg.Stdout=BI((C.Stdout>>>0),"/dev/stdout");$pkg.Stderr=BI((C.Stderr>>>0),"/dev/stderr");BV=(function(b){return true;});AV=BN;BX();CD();CQ();}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["strconv"]=(function(){var $pkg={},B,A,C,CI,CJ,CK,CL,CN,CO,CP,CQ,CR,CS,CT,CU,CV,CW,CX,Z,AD,AI,AP,AY,G,AE,AJ,AK,AL,AQ,AR,BD,BE,BF,BG,BM,AA,AB,AC,AF,AG,AH,AM,AN,AO,AT,AU,AV,AW,AX,AZ,BA,BB,BC,BI,BJ,BN,BO,BP,BR,BT,BU,BV,BW,BX,BY,BZ,CA,CB,CC,CD,CE;B=$packages["errors"];A=$packages["math"];C=$packages["unicode/utf8"];Z=$pkg.decimal=$newType(0,$kindStruct,"strconv.decimal","decimal","strconv",function(d_,nd_,dp_,neg_,trunc_){this.$val=this;this.d=d_!==undefined?d_:CU.zero();this.nd=nd_!==undefined?nd_:0;this.dp=dp_!==undefined?dp_:0;this.neg=neg_!==undefined?neg_:false;this.trunc=trunc_!==undefined?trunc_:false;});AD=$pkg.leftCheat=$newType(0,$kindStruct,"strconv.leftCheat","leftCheat","strconv",function(delta_,cutoff_){this.$val=this;this.delta=delta_!==undefined?delta_:0;this.cutoff=cutoff_!==undefined?cutoff_:"";});AI=$pkg.extFloat=$newType(0,$kindStruct,"strconv.extFloat","extFloat","strconv",function(mant_,exp_,neg_){this.$val=this;this.mant=mant_!==undefined?mant_:new $Uint64(0,0);this.exp=exp_!==undefined?exp_:0;this.neg=neg_!==undefined?neg_:false;});AP=$pkg.floatInfo=$newType(0,$kindStruct,"strconv.floatInfo","floatInfo","strconv",function(mantbits_,expbits_,bias_){this.$val=this;this.mantbits=mantbits_!==undefined?mantbits_:0;this.expbits=expbits_!==undefined?expbits_:0;this.bias=bias_!==undefined?bias_:0;});AY=$pkg.decimalSlice=$newType(0,$kindStruct,"strconv.decimalSlice","decimalSlice","strconv",function(d_,nd_,dp_,neg_){this.$val=this;this.d=d_!==undefined?d_:CL.nil;this.nd=nd_!==undefined?nd_:0;this.dp=dp_!==undefined?dp_:0;this.neg=neg_!==undefined?neg_:false;});Z.Ptr.prototype.String=function(){var a,b,c,d;a=this;b=10+a.nd>>0;if(a.dp>0){b=b+(a.dp)>>0;}if(a.dp<0){b=b+(-a.dp)>>0;}c=CL.make(b);d=0;if(a.nd===0){return"0";}else if(a.dp<=0){(d<0||d>=c.$length)?$throwRuntimeError("index out of range"):c.$array[c.$offset+d]=48;d=d+(1)>>0;(d<0||d>=c.$length)?$throwRuntimeError("index out of range"):c.$array[c.$offset+d]=46;d=d+(1)>>0;d=d+(AA($subslice(c,d,(d+-a.dp>>0))))>>0;d=d+($copySlice($subslice(c,d),$subslice(new CL(a.d),0,a.nd)))>>0;}else if(a.dp>0;(d<0||d>=c.$length)?$throwRuntimeError("index out of range"):c.$array[c.$offset+d]=46;d=d+(1)>>0;d=d+($copySlice($subslice(c,d),$subslice(new CL(a.d),a.dp,a.nd)))>>0;}else{d=d+($copySlice($subslice(c,d),$subslice(new CL(a.d),0,a.nd)))>>0;d=d+(AA($subslice(c,d,((d+a.dp>>0)-a.nd>>0))))>>0;}return $bytesToString($subslice(c,0,d));};Z.prototype.String=function(){return this.$val.String();};AA=function(a){var b,c,d;b=a;c=0;while(c=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+d]=48;c++;}return a.$length;};AB=function(a){var b,c;while(a.nd>0&&((b=a.d,c=a.nd-1>>0,((c<0||c>=b.length)?$throwRuntimeError("index out of range"):b[c]))===48)){a.nd=a.nd-(1)>>0;}if(a.nd===0){a.dp=0;}};Z.Ptr.prototype.Assign=function(a){var b,c,d,e,f,g,h;b=this;c=$clone(CN.zero(),CN);d=0;while((a.$high>0||(a.$high===0&&a.$low>0))){e=$div64(a,new $Uint64(0,10),false);a=(f=$mul64(new $Uint64(0,10),e),new $Uint64(a.$high-f.$high,a.$low-f.$low));(d<0||d>=c.length)?$throwRuntimeError("index out of range"):c[d]=(new $Uint64(a.$high+0,a.$low+48).$low<<24>>>24);d=d+(1)>>0;a=e;}b.nd=0;d=d-(1)>>0;while(d>=0){(g=b.d,h=b.nd,(h<0||h>=g.length)?$throwRuntimeError("index out of range"):g[h]=((d<0||d>=c.length)?$throwRuntimeError("index out of range"):c[d]));b.nd=b.nd+(1)>>0;d=d-(1)>>0;}b.dp=b.nd;AB(b);};Z.prototype.Assign=function(a){return this.$val.Assign(a);};AC=function(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;c=0;d=0;e=0;while(((e>>$min(b,31))>>0)===0){if(c>=a.nd){if(e===0){a.nd=0;return;}while(((e>>$min(b,31))>>0)===0){e=e*10>>0;c=c+(1)>>0;}break;}g=((f=a.d,((c<0||c>=f.length)?$throwRuntimeError("index out of range"):f[c]))>>0);e=((e*10>>0)+g>>0)-48>>0;c=c+(1)>>0;}a.dp=a.dp-((c-1>>0))>>0;while(c=h.length)?$throwRuntimeError("index out of range"):h[c]))>>0);j=(e>>$min(b,31))>>0;e=e-(((k=b,k<32?(j<>0))>>0;(l=a.d,(d<0||d>=l.length)?$throwRuntimeError("index out of range"):l[d]=((j+48>>0)<<24>>>24));d=d+(1)>>0;e=((e*10>>0)+i>>0)-48>>0;c=c+(1)>>0;}while(e>0){m=(e>>$min(b,31))>>0;e=e-(((n=b,n<32?(m<>0))>>0;if(d<800){(o=a.d,(d<0||d>=o.length)?$throwRuntimeError("index out of range"):o[d]=((m+48>>0)<<24>>>24));d=d+(1)>>0;}else if(m>0){a.trunc=true;}e=e*10>>0;}a.nd=d;AB(a);};AF=function(a,b){var c;c=0;while(c=a.$length){return true;}if(!((((c<0||c>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+c])===b.charCodeAt(c)))){return((c<0||c>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+c])>0;}return false;};AG=function(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=((b<0||b>=AE.$length)?$throwRuntimeError("index out of range"):AE.$array[AE.$offset+b]).delta;if(AF($subslice(new CL(a.d),0,a.nd),((b<0||b>=AE.$length)?$throwRuntimeError("index out of range"):AE.$array[AE.$offset+b]).cutoff)){c=c-(1)>>0;}d=a.nd;e=a.nd+c>>0;f=0;d=d-(1)>>0;while(d>=0){f=f+(((g=b,g<32?(((((h=a.d,((d<0||d>=h.length)?$throwRuntimeError("index out of range"):h[d]))>>0)-48>>0))<>0))>>0;j=(i=f/10,(i===i&&i!==1/0&&i!==-1/0)?i>>0:$throwRuntimeError("integer divide by zero"));k=f-(10*j>>0)>>0;e=e-(1)>>0;if(e<800){(l=a.d,(e<0||e>=l.length)?$throwRuntimeError("index out of range"):l[e]=((k+48>>0)<<24>>>24));}else if(!((k===0))){a.trunc=true;}f=j;d=d-(1)>>0;}while(f>0){n=(m=f/10,(m===m&&m!==1/0&&m!==-1/0)?m>>0:$throwRuntimeError("integer divide by zero"));o=f-(10*n>>0)>>0;e=e-(1)>>0;if(e<800){(p=a.d,(e<0||e>=p.length)?$throwRuntimeError("index out of range"):p[e]=((o+48>>0)<<24>>>24));}else if(!((o===0))){a.trunc=true;}f=n;}a.nd=a.nd+(c)>>0;if(a.nd>=800){a.nd=800;}a.dp=a.dp+(c)>>0;AB(a);};Z.Ptr.prototype.Shift=function(a){var b;b=this;if(b.nd===0){}else if(a>0){while(a>27){AG(b,27);a=a-(27)>>0;}AG(b,(a>>>0));}else if(a<0){while(a<-27){AC(b,27);a=a+(27)>>0;}AC(b,(-a>>>0));}};Z.prototype.Shift=function(a){return this.$val.Shift(a);};AH=function(a,b){var c,d,e,f,g;if(b<0||b>=a.nd){return false;}if(((c=a.d,((b<0||b>=c.length)?$throwRuntimeError("index out of range"):c[b]))===53)&&((b+1>>0)===a.nd)){if(a.trunc){return true;}return b>0&&!(((d=(((e=a.d,f=b-1>>0,((f<0||f>=e.length)?$throwRuntimeError("index out of range"):e[f]))-48<<24>>>24))%2,d===d?d:$throwRuntimeError("integer divide by zero"))===0));}return(g=a.d,((b<0||b>=g.length)?$throwRuntimeError("index out of range"):g[b]))>=53;};Z.Ptr.prototype.Round=function(a){var b;b=this;if(a<0||a>=b.nd){return;}if(AH(b,a)){b.RoundUp(a);}else{b.RoundDown(a);}};Z.prototype.Round=function(a){return this.$val.Round(a);};Z.Ptr.prototype.RoundDown=function(a){var b;b=this;if(a<0||a>=b.nd){return;}b.nd=a;AB(b);};Z.prototype.RoundDown=function(a){return this.$val.RoundDown(a);};Z.Ptr.prototype.RoundUp=function(a){var b,c,d,e,f,g;b=this;if(a<0||a>=b.nd){return;}c=a-1>>0;while(c>=0){e=(d=b.d,((c<0||c>=d.length)?$throwRuntimeError("index out of range"):d[c]));if(e<57){f=b.d;g=c;(g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g]=((g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g])+(1)<<24>>>24;b.nd=c+1>>0;return;}c=c-(1)>>0;}b.d[0]=49;b.nd=1;b.dp=b.dp+(1)>>0;};Z.prototype.RoundUp=function(a){return this.$val.RoundUp(a);};Z.Ptr.prototype.RoundedInteger=function(){var a,b,c,d,e,f,g;a=this;if(a.dp>20){return new $Uint64(4294967295,4294967295);}b=0;c=new $Uint64(0,0);b=0;while(b=f.length)?$throwRuntimeError("index out of range"):f[b]))-48<<24>>>24)),new $Uint64(d.$high+e.$high,d.$low+e.$low));b=b+(1)>>0;}while(b>0;}if(AH(a,a.dp)){c=(g=new $Uint64(0,1),new $Uint64(c.$high+g.$high,c.$low+g.$low));}return c;};Z.prototype.RoundedInteger=function(){return this.$val.RoundedInteger();};AI.Ptr.prototype.AssignComputeBounds=function(a,b,c,d){var e=new AI.Ptr(),f=new AI.Ptr(),g,h,i,j,k,l,m,n,o;g=this;g.mant=a;g.exp=b-(d.mantbits>>0)>>0;g.neg=c;if(g.exp<=0&&(h=$shiftLeft64(($shiftRightUint64(a,(-g.exp>>>0))),(-g.exp>>>0)),(a.$high===h.$high&&a.$low===h.$low))){g.mant=$shiftRightUint64(g.mant,((-g.exp>>>0)));g.exp=0;i=$clone(g,AI);j=$clone(g,AI);$copy(e,i,AI);$copy(f,j,AI);return[e,f];}k=b-d.bias>>0;$copy(f,new AI.Ptr((l=$mul64(new $Uint64(0,2),g.mant),new $Uint64(l.$high+0,l.$low+1)),g.exp-1>>0,g.neg),AI);if(!((m=$shiftLeft64(new $Uint64(0,1),d.mantbits),(a.$high===m.$high&&a.$low===m.$low)))||(k===1)){$copy(e,new AI.Ptr((n=$mul64(new $Uint64(0,2),g.mant),new $Uint64(n.$high-0,n.$low-1)),g.exp-1>>0,g.neg),AI);}else{$copy(e,new AI.Ptr((o=$mul64(new $Uint64(0,4),g.mant),new $Uint64(o.$high-0,o.$low-1)),g.exp-2>>0,g.neg),AI);}return[e,f];};AI.prototype.AssignComputeBounds=function(a,b,c,d){return this.$val.AssignComputeBounds(a,b,c,d);};AI.Ptr.prototype.Normalize=function(){var a=0,b,c,d,e,f,g,h,i,j,k,l,m,n;b=this;c=b.mant;d=b.exp;e=c;f=d;if((e.$high===0&&e.$low===0)){a=0;return a;}if((g=$shiftRightUint64(e,32),(g.$high===0&&g.$low===0))){e=$shiftLeft64(e,(32));f=f-(32)>>0;}if((h=$shiftRightUint64(e,48),(h.$high===0&&h.$low===0))){e=$shiftLeft64(e,(16));f=f-(16)>>0;}if((i=$shiftRightUint64(e,56),(i.$high===0&&i.$low===0))){e=$shiftLeft64(e,(8));f=f-(8)>>0;}if((j=$shiftRightUint64(e,60),(j.$high===0&&j.$low===0))){e=$shiftLeft64(e,(4));f=f-(4)>>0;}if((k=$shiftRightUint64(e,62),(k.$high===0&&k.$low===0))){e=$shiftLeft64(e,(2));f=f-(2)>>0;}if((l=$shiftRightUint64(e,63),(l.$high===0&&l.$low===0))){e=$shiftLeft64(e,(1));f=f-(1)>>0;}a=((b.exp-f>>0)>>>0);m=e;n=f;b.mant=m;b.exp=n;return a;};AI.prototype.Normalize=function(){return this.$val.Normalize();};AI.Ptr.prototype.Multiply=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x;b=this;a=$clone(a,AI);c=$shiftRightUint64(b.mant,32);d=new $Uint64(0,(b.mant.$low>>>0));e=c;f=d;g=$shiftRightUint64(a.mant,32);h=new $Uint64(0,(a.mant.$low>>>0));i=g;j=h;k=$mul64(e,j);l=$mul64(f,i);b.mant=(m=(n=$mul64(e,i),o=$shiftRightUint64(k,32),new $Uint64(n.$high+o.$high,n.$low+o.$low)),p=$shiftRightUint64(l,32),new $Uint64(m.$high+p.$high,m.$low+p.$low));u=(q=(r=new $Uint64(0,(k.$low>>>0)),s=new $Uint64(0,(l.$low>>>0)),new $Uint64(r.$high+s.$high,r.$low+s.$low)),t=$shiftRightUint64(($mul64(f,j)),32),new $Uint64(q.$high+t.$high,q.$low+t.$low));u=(v=new $Uint64(0,2147483648),new $Uint64(u.$high+v.$high,u.$low+v.$low));b.mant=(w=b.mant,x=($shiftRightUint64(u,32)),new $Uint64(w.$high+x.$high,w.$low+x.$low));b.exp=(b.exp+a.exp>>0)+64>>0;};AI.prototype.Multiply=function(a){return this.$val.Multiply(a);};AI.Ptr.prototype.AssignDecimal=function(a,b,c,d,e){var f=false,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae;g=this;h=0;if(d){h=h+(4)>>0;}g.mant=a;g.exp=0;g.neg=c;j=(i=((b- -348>>0))/8,(i===i&&i!==1/0&&i!==-1/0)?i>>0:$throwRuntimeError("integer divide by zero"));if(b<-348||j>=87){f=false;return f;}l=(k=((b- -348>>0))%8,k===k?k:$throwRuntimeError("integer divide by zero"));if(l<19&&(m=(n=19-l>>0,((n<0||n>=AL.length)?$throwRuntimeError("index out of range"):AL[n])),(a.$high=AL.length)?$throwRuntimeError("index out of range"):AL[l])));g.Normalize();}else{g.Normalize();g.Multiply(((l<0||l>=AJ.length)?$throwRuntimeError("index out of range"):AJ[l]));h=h+(4)>>0;}g.Multiply(((j<0||j>=AK.length)?$throwRuntimeError("index out of range"):AK[j]));if(h>0){h=h+(1)>>0;}h=h+(4)>>0;o=g.Normalize();h=(p=(o),p<32?(h<>0;q=e.bias-63>>0;r=0;if(g.exp<=q){r=(((63-e.mantbits>>>0)+1>>>0)+((q-g.exp>>0)>>>0)>>>0);}else{r=(63-e.mantbits>>>0);}s=$shiftLeft64(new $Uint64(0,1),((r-1>>>0)));w=(t=g.mant,u=(v=$shiftLeft64(new $Uint64(0,1),r),new $Uint64(v.$high-0,v.$low-1)),new $Uint64(t.$high&u.$high,(t.$low&u.$low)>>>0));if((x=(y=new $Int64(s.$high,s.$low),z=new $Int64(0,h),new $Int64(y.$high-z.$high,y.$low-z.$low)),aa=new $Int64(w.$high,w.$low),(x.$high>0))*28>>0)/93,(d===d&&d!==1/0&&d!==-1/0)?d>>0:$throwRuntimeError("integer divide by zero"));g=(f=((e- -348>>0))/8,(f===f&&f!==1/0&&f!==-1/0)?f>>0:$throwRuntimeError("integer divide by zero"));Loop:while(true){h=(c.exp+((g<0||g>=AK.length)?$throwRuntimeError("index out of range"):AK[g]).exp>>0)+64>>0;if(h<-60){g=g+(1)>>0;}else if(h>-32){g=g-(1)>>0;}else{break Loop;}}c.Multiply(((g<0||g>=AK.length)?$throwRuntimeError("index out of range"):AK[g]));i=-((-348+(g*8>>0)>>0));j=g;a=i;b=j;return[a,b];};AI.prototype.frexp10=function(){return this.$val.frexp10();};AM=function(a,b,c){var d=0,e,f;e=c.frexp10();d=e[0];f=e[1];a.Multiply(((f<0||f>=AK.length)?$throwRuntimeError("index out of range"):AK[f]));b.Multiply(((f<0||f>=AK.length)?$throwRuntimeError("index out of range"):AK[f]));return d;};AI.Ptr.prototype.FixedDecimal=function(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap;c=this;if((d=c.mant,(d.$high===0&&d.$low===0))){a.nd=0;a.dp=0;a.neg=c.neg;return true;}if(b===0){$panic(new $String("strconv: internal error: extFloat.FixedDecimal called with n == 0"));}c.Normalize();e=c.frexp10();f=e[0];g=(-c.exp>>>0);h=($shiftRightUint64(c.mant,g).$low>>>0);k=(i=c.mant,j=$shiftLeft64(new $Uint64(0,h),g),new $Uint64(i.$high-j.$high,i.$low-j.$low));l=new $Uint64(0,1);m=b;n=0;o=new $Uint64(0,1);p=0;q=new $Uint64(0,1);r=p;s=q;while(r<20){if((t=new $Uint64(0,h),(s.$high>t.$high||(s.$high===t.$high&&s.$low>t.$low)))){n=r;break;}s=$mul64(s,(new $Uint64(0,10)));r=r+(1)>>0;}u=h;if(n>m){o=(v=n-m>>0,((v<0||v>=AL.length)?$throwRuntimeError("index out of range"):AL[v]));h=(w=h/((o.$low>>>0)),(w===w&&w!==1/0&&w!==-1/0)?w>>>0:$throwRuntimeError("integer divide by zero"));u=u-((x=(o.$low>>>0),(((h>>>16<<16)*x>>>0)+(h<<16>>>16)*x)>>>0))>>>0;}else{u=0;}y=$clone(CO.zero(),CO);z=32;aa=h;while(aa>0){ac=(ab=aa/10,(ab===ab&&ab!==1/0&&ab!==-1/0)?ab>>>0:$throwRuntimeError("integer divide by zero"));aa=aa-(((((10>>>16<<16)*ac>>>0)+(10<<16>>>16)*ac)>>>0))>>>0;z=z-(1)>>0;(z<0||z>=y.length)?$throwRuntimeError("index out of range"):y[z]=((aa+48>>>0)<<24>>>24);aa=ac;}ad=z;while(ad<32){(ae=a.d,af=ad-z>>0,(af<0||af>=ae.$length)?$throwRuntimeError("index out of range"):ae.$array[ae.$offset+af]=((ad<0||ad>=y.length)?$throwRuntimeError("index out of range"):y[ad]));ad=ad+(1)>>0;}ag=32-z>>0;a.nd=ag;a.dp=n+f>>0;m=m-(ag)>>0;if(m>0){if(!((u===0))||!((o.$high===0&&o.$low===1))){$panic(new $String("strconv: internal error, rest != 0 but needed > 0"));}while(m>0){k=$mul64(k,(new $Uint64(0,10)));l=$mul64(l,(new $Uint64(0,10)));if((ah=$mul64(new $Uint64(0,2),l),ai=$shiftLeft64(new $Uint64(0,1),g),(ah.$high>ai.$high||(ah.$high===ai.$high&&ah.$low>ai.$low)))){return false;}aj=$shiftRightUint64(k,g);(ak=a.d,(ag<0||ag>=ak.$length)?$throwRuntimeError("index out of range"):ak.$array[ak.$offset+ag]=(new $Uint64(aj.$high+0,aj.$low+48).$low<<24>>>24));k=(al=$shiftLeft64(aj,g),new $Uint64(k.$high-al.$high,k.$low-al.$low));ag=ag+(1)>>0;m=m-(1)>>0;}a.nd=ag;}an=AN(a,(am=$shiftLeft64(new $Uint64(0,u),g),new $Uint64(am.$high|k.$high,(am.$low|k.$low)>>>0)),o,g,l);if(!an){return false;}ao=a.nd-1>>0;while(ao>=0){if(!(((ap=a.d,((ao<0||ao>=ap.$length)?$throwRuntimeError("index out of range"):ap.$array[ap.$offset+ao]))===48))){a.nd=ao+1>>0;break;}ao=ao-(1)>>0;}return true;};AI.prototype.FixedDecimal=function(a,b){return this.$val.FixedDecimal(a,b);};AN=function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q;if((f=$shiftLeft64(c,d),(b.$high>f.$high||(b.$high===f.$high&&b.$low>f.$low)))){$panic(new $String("strconv: num > den<h.$high||(g.$high===h.$high&&g.$low>h.$low)))){$panic(new $String("strconv: \xCE\xB5 > (den<l.$high||(k.$high===l.$high&&k.$low>l.$low)))){m=a.nd-1>>0;while(m>=0){if((n=a.d,((m<0||m>=n.$length)?$throwRuntimeError("index out of range"):n.$array[n.$offset+m]))===57){a.nd=a.nd-(1)>>0;}else{break;}m=m-(1)>>0;}if(m<0){(o=a.d,(0<0||0>=o.$length)?$throwRuntimeError("index out of range"):o.$array[o.$offset+0]=49);a.nd=1;a.dp=a.dp+(1)>>0;}else{p=a.d;q=m;(q<0||q>=p.$length)?$throwRuntimeError("index out of range"):p.$array[p.$offset+q]=((q<0||q>=p.$length)?$throwRuntimeError("index out of range"):p.$array[p.$offset+q])+(1)<<24>>>24;}return true;}return false;};AI.Ptr.prototype.ShortestDecimal=function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc;d=this;if((e=d.mant,(e.$high===0&&e.$low===0))){a.nd=0;a.dp=0;a.neg=d.neg;return true;}if((d.exp===0)&&$equal(b,d,AI)&&$equal(b,c,AI)){f=$clone(CN.zero(),CN);g=23;h=d.mant;while((h.$high>0||(h.$high===0&&h.$low>0))){i=$div64(h,new $Uint64(0,10),false);h=(j=$mul64(new $Uint64(0,10),i),new $Uint64(h.$high-j.$high,h.$low-j.$low));(g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g]=(new $Uint64(h.$high+0,h.$low+48).$low<<24>>>24);g=g-(1)>>0;h=i;}k=(24-g>>0)-1>>0;l=0;while(l=n.$length)?$throwRuntimeError("index out of range"):n.$array[n.$offset+l]=(m=(g+1>>0)+l>>0,((m<0||m>=f.length)?$throwRuntimeError("index out of range"):f[m])));l=l+(1)>>0;}o=k;p=k;a.nd=o;a.dp=p;while(a.nd>0&&((q=a.d,r=a.nd-1>>0,((r<0||r>=q.$length)?$throwRuntimeError("index out of range"):q.$array[q.$offset+r]))===48)){a.nd=a.nd-(1)>>0;}if(a.nd===0){a.dp=0;}a.neg=d.neg;return true;}c.Normalize();if(d.exp>c.exp){d.mant=$shiftLeft64(d.mant,(((d.exp-c.exp>>0)>>>0)));d.exp=c.exp;}if(b.exp>c.exp){b.mant=$shiftLeft64(b.mant,(((b.exp-c.exp>>0)>>>0)));b.exp=c.exp;}s=AM(b,d,c);c.mant=(t=c.mant,u=new $Uint64(0,1),new $Uint64(t.$high+u.$high,t.$low+u.$low));b.mant=(v=b.mant,w=new $Uint64(0,1),new $Uint64(v.$high-w.$high,v.$low-w.$low));x=(-c.exp>>>0);y=($shiftRightUint64(c.mant,x).$low>>>0);ab=(z=c.mant,aa=$shiftLeft64(new $Uint64(0,y),x),new $Uint64(z.$high-aa.$high,z.$low-aa.$low));ae=(ac=c.mant,ad=b.mant,new $Uint64(ac.$high-ad.$high,ac.$low-ad.$low));ah=(af=c.mant,ag=d.mant,new $Uint64(af.$high-ag.$high,af.$low-ag.$low));ai=0;aj=0;ak=new $Uint64(0,1);al=aj;am=ak;while(al<20){if((an=new $Uint64(0,y),(am.$high>an.$high||(am.$high===an.$high&&am.$low>an.$low)))){ai=al;break;}am=$mul64(am,(new $Uint64(0,10)));al=al+(1)>>0;}ao=0;while(ao>0)-1>>0,((ap<0||ap>=AL.length)?$throwRuntimeError("index out of range"):AL[ap]));as=(ar=y/(aq.$low>>>0),(ar===ar&&ar!==1/0&&ar!==-1/0)?ar>>>0:$throwRuntimeError("integer divide by zero"));(at=a.d,(ao<0||ao>=at.$length)?$throwRuntimeError("index out of range"):at.$array[at.$offset+ao]=((as+48>>>0)<<24>>>24));y=y-((au=(aq.$low>>>0),(((as>>>16<<16)*au>>>0)+(as<<16>>>16)*au)>>>0))>>>0;aw=(av=$shiftLeft64(new $Uint64(0,y),x),new $Uint64(av.$high+ab.$high,av.$low+ab.$low));if((aw.$high>0;a.dp=ai+s>>0;a.neg=d.neg;return AO(a,aw,ah,ae,$shiftLeft64(aq,x),new $Uint64(0,2));}ao=ao+(1)>>0;}a.nd=ai;a.dp=a.nd+s>>0;a.neg=d.neg;ax=0;ay=new $Uint64(0,1);while(true){ab=$mul64(ab,(new $Uint64(0,10)));ay=$mul64(ay,(new $Uint64(0,10)));ax=($shiftRightUint64(ab,x).$low>>0);(az=a.d,ba=a.nd,(ba<0||ba>=az.$length)?$throwRuntimeError("index out of range"):az.$array[az.$offset+ba]=((ax+48>>0)<<24>>>24));a.nd=a.nd+(1)>>0;ab=(bb=$shiftLeft64(new $Uint64(0,ax),x),new $Uint64(ab.$high-bb.$high,ab.$low-bb.$low));if((bc=$mul64(ae,ay),(ab.$high>0;(l<0||l>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+l]=((l<0||l>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+l])-(1)<<24>>>24;b=(m=e,new $Uint64(b.$high+m.$high,b.$low+m.$low));}if((n=new $Uint64(b.$high+e.$high,b.$low+e.$low),o=(p=(q=$div64(e,new $Uint64(0,2),false),new $Uint64(c.$high+q.$high,c.$low+q.$low)),new $Uint64(p.$high+f.$high,p.$low+f.$low)),(n.$highr.$high||(b.$high===r.$high&&b.$low>r.$low)))){return false;}if((a.nd===1)&&((s=a.d,((0<0||0>=s.$length)?$throwRuntimeError("index out of range"):s.$array[s.$offset+0]))===48)){a.nd=0;a.dp=0;}return true;};AT=$pkg.AppendFloat=function(a,b,c,d,e){return AU(a,b,c,d,e);};AU=function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af;f=new $Uint64(0,0);g=CP.nil;h=e;if(h===32){f=new $Uint64(0,A.Float32bits(b));g=AQ;}else if(h===64){f=A.Float64bits(b);g=AR;}else{$panic(new $String("strconv: illegal AppendFloat/FormatFloat bitSize"));}j=!((i=$shiftRightUint64(f,((g.expbits+g.mantbits>>>0))),(i.$high===0&&i.$low===0)));l=($shiftRightUint64(f,g.mantbits).$low>>0)&((((k=g.expbits,k<32?(1<>0)-1>>0));o=(m=(n=$shiftLeft64(new $Uint64(0,1),g.mantbits),new $Uint64(n.$high-0,n.$low-1)),new $Uint64(f.$high&m.$high,(f.$low&m.$low)>>>0));p=l;if(p===(((q=g.expbits,q<32?(1<>0)-1>>0)){r="";if(!((o.$high===0&&o.$low===0))){r="NaN";}else if(j){r="-Inf";}else{r="+Inf";}return $appendSlice(a,new CL($stringToBytes(r)));}else if(p===0){l=l+(1)>>0;}else{o=(s=$shiftLeft64(new $Uint64(0,1),g.mantbits),new $Uint64(o.$high|s.$high,(o.$low|s.$low)>>>0));}l=l+(g.bias)>>0;if(c===98){return BB(a,j,o,l,g);}if(!G){return AV(a,d,c,j,o,l,g);}t=$clone(new AY.Ptr(),AY);u=false;v=d<0;if(v){w=new AI.Ptr();x=w.AssignComputeBounds(o,l,j,g);y=$clone(x[0],AI);z=$clone(x[1],AI);aa=$clone(CO.zero(),CO);t.d=new CL(aa);u=w.ShortestDecimal(t,y,z);if(!u){return AV(a,d,c,j,o,l,g);}ab=c;if(ab===101||ab===69){d=t.nd-1>>0;}else if(ab===102){d=BC(t.nd-t.dp>>0,0);}else if(ab===103||ab===71){d=t.nd;}}else if(!((c===102))){ac=d;ad=c;if(ad===101||ad===69){ac=ac+(1)>>0;}else if(ad===103||ad===71){if(d===0){d=1;}ac=d;}if(ac<=15){ae=$clone(CN.zero(),CN);t.d=new CL(ae);af=new AI.Ptr(o,l-(g.mantbits>>0)>>0,j);u=af.FixedDecimal(t,ac);}}if(!u){return AV(a,d,c,j,o,l,g);}return AW(a,v,j,t,d,c);};AV=function(a,b,c,d,e,f,g){var h,i,j,k,l;h=new Z.Ptr();h.Assign(e);h.Shift(f-(g.mantbits>>0)>>0);i=$clone(new AY.Ptr(),AY);j=b<0;if(j){AX(h,e,f,g);$copy(i,new AY.Ptr(new CL(h.d),h.nd,h.dp,false),AY);k=c;if(k===101||k===69){b=i.nd-1>>0;}else if(k===102){b=BC(i.nd-i.dp>>0,0);}else if(k===103||k===71){b=i.nd;}}else{l=c;if(l===101||l===69){h.Round(b+1>>0);}else if(l===102){h.Round(h.dp+b>>0);}else if(l===103||l===71){if(b===0){b=1;}h.Round(b);}$copy(i,new AY.Ptr(new CL(h.d),h.nd,h.dp,false),AY);}return AW(a,j,d,i,b,c);};AW=function(a,b,c,d,e,f){var g,h,i;d=$clone(d,AY);g=f;if(g===101||g===69){return AZ(a,c,d,e,f);}else if(g===102){return BA(a,c,d,e);}else if(g===103||g===71){h=e;if(h>d.nd&&d.nd>=d.dp){h=d.nd;}if(b){h=6;}i=d.dp-1>>0;if(i<-4||i>=h){if(e>d.nd){e=d.nd;}return AZ(a,c,d,e-1>>0,(f+101<<24>>>24)-103<<24>>>24);}if(e>d.dp){e=d.nd;}return BA(a,c,d,BC(e-d.dp>>0,0));}return $append(a,37,f);};AX=function(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa;if((b.$high===0&&b.$low===0)){a.nd=0;return;}e=d.bias+1>>0;if(c>e&&(332*((a.dp-a.nd>>0))>>0)>=(100*((c-(d.mantbits>>0)>>0))>>0)){return;}f=new Z.Ptr();f.Assign((g=$mul64(b,new $Uint64(0,2)),new $Uint64(g.$high+0,g.$low+1)));f.Shift((c-(d.mantbits>>0)>>0)-1>>0);h=new $Uint64(0,0);i=0;if((j=$shiftLeft64(new $Uint64(0,1),d.mantbits),(b.$high>j.$high||(b.$high===j.$high&&b.$low>j.$low)))||(c===e)){h=new $Uint64(b.$high-0,b.$low-1);i=c;}else{h=(k=$mul64(b,new $Uint64(0,2)),new $Uint64(k.$high-0,k.$low-1));i=c-1>>0;}l=new Z.Ptr();l.Assign((m=$mul64(h,new $Uint64(0,2)),new $Uint64(m.$high+0,m.$low+1)));l.Shift((i-(d.mantbits>>0)>>0)-1>>0);o=(n=$div64(b,new $Uint64(0,2),true),(n.$high===0&&n.$low===0));p=0;while(p=w.length)?$throwRuntimeError("index out of range"):w[p]));}else{t=48;}u=(x=a.d,((p<0||p>=x.length)?$throwRuntimeError("index out of range"):x[p]));if(p=y.length)?$throwRuntimeError("index out of range"):y[p]));}else{v=48;}z=!((t===u))||(o&&(t===u)&&((p+1>>0)===l.nd));aa=!((u===v))&&(o||(u+1<<24>>>24)>0)>0);return;}else if(z){a.RoundDown(p+1>>0);return;}else if(aa){a.RoundUp(p+1>>0);return;}p=p+(1)>>0;}};AZ=function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p;c=$clone(c,AY);if(b){a=$append(a,45);}f=48;if(!((c.nd===0))){f=(g=c.d,((0<0||0>=g.$length)?$throwRuntimeError("index out of range"):g.$array[g.$offset+0]));}a=$append(a,f);if(d>0){a=$append(a,46);h=1;i=((c.nd+d>>0)+1>>0)-BC(c.nd,d+1>>0)>>0;while(h=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+h])));h=h+(1)>>0;}while(h<=d){a=$append(a,48);h=h+(1)>>0;}}a=$append(a,e);k=c.dp-1>>0;if(c.nd===0){k=0;}if(k<0){f=45;k=-k;}else{f=43;}a=$append(a,f);l=$clone(CQ.zero(),CQ);m=3;while(k>=10){m=m-(1)>>0;(m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m]=(((n=k%10,n===n?n:$throwRuntimeError("integer divide by zero"))+48>>0)<<24>>>24);k=(o=k/(10),(o===o&&o!==1/0&&o!==-1/0)?o>>0:$throwRuntimeError("integer divide by zero"));}m=m-(1)>>0;(m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m]=((k+48>>0)<<24>>>24);p=m;if(p===0){a=$append(a,l[0],l[1],l[2]);}else if(p===1){a=$append(a,l[1],l[2]);}else if(p===2){a=$append(a,48,l[2]);}return a;};BA=function(a,b,c,d){var e,f,g,h,i,j;c=$clone(c,AY);if(b){a=$append(a,45);}if(c.dp>0){e=0;e=0;while(e=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+e])));e=e+(1)>>0;}while(e>0;}}else{a=$append(a,48);}if(d>0){a=$append(a,46);g=0;while(g>0;if(0<=i&&i=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+i]));}a=$append(a,h);g=g+(1)>>0;}}return a;};BB=function(a,b,c,d,e){var f,g,h,i,j,k,l;f=$clone(CR.zero(),CR);g=50;d=d-((e.mantbits>>0))>>0;h=43;if(d<0){h=45;d=-d;}i=0;while(d>0||i<1){i=i+(1)>>0;g=g-(1)>>0;(g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g]=(((j=d%10,j===j?j:$throwRuntimeError("integer divide by zero"))+48>>0)<<24>>>24);d=(k=d/(10),(k===k&&k!==1/0&&k!==-1/0)?k>>0:$throwRuntimeError("integer divide by zero"));}g=g-(1)>>0;(g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g]=h;g=g-(1)>>0;(g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g]=112;i=0;while((c.$high>0||(c.$high===0&&c.$low>0))||i<1){i=i+(1)>>0;g=g-(1)>>0;(g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g]=((l=$div64(c,new $Uint64(0,10),true),new $Uint64(l.$high+0,l.$low+48)).$low<<24>>>24);c=$div64(c,(new $Uint64(0,10)),false);}if(b){g=g-(1)>>0;(g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g]=45;}return $appendSlice(a,$subslice(new CL(f),g));};BC=function(a,b){if(a>b){return a;}return b;};BI=$pkg.FormatInt=function(a,b){var c,d;c=BN(CL.nil,new $Uint64(a.$high,a.$low),b,(a.$high<0||(a.$high===0&&a.$low<0)),false);d=c[1];return d;};BJ=$pkg.Itoa=function(a){return BI(new $Int64(0,a),10);};BN=function(a,b,c,d,e){var f=CL.nil,g="",h,i,j,k,l,m,n,o,p,q,r,s,t;if(c<2||c>36){$panic(new $String("strconv: illegal AppendInt/FormatInt base"));}h=$clone(CS.zero(),CS);i=65;if(d){b=new $Uint64(-b.$high,-b.$low);}if(c===10){while((b.$high>0||(b.$high===0&&b.$low>=100))){i=i-(2)>>0;j=$div64(b,new $Uint64(0,100),false);l=((k=$mul64(j,new $Uint64(0,100)),new $Uint64(b.$high-k.$high,b.$low-k.$low)).$low>>>0);(m=i+1>>0,(m<0||m>=h.length)?$throwRuntimeError("index out of range"):h[m]="0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789".charCodeAt(l));(n=i+0>>0,(n<0||n>=h.length)?$throwRuntimeError("index out of range"):h[n]="0000000000111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999".charCodeAt(l));b=j;}if((b.$high>0||(b.$high===0&&b.$low>=10))){i=i-(1)>>0;o=$div64(b,new $Uint64(0,10),false);(i<0||i>=h.length)?$throwRuntimeError("index out of range"):h[i]="0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(((p=$mul64(o,new $Uint64(0,10)),new $Uint64(b.$high-p.$high,b.$low-p.$low)).$low>>>0));b=o;}}else{q=((c<0||c>=BM.length)?$throwRuntimeError("index out of range"):BM[c]);if(q>0){r=new $Uint64(0,c);s=(r.$low>>>0)-1>>>0;while((b.$high>r.$high||(b.$high===r.$high&&b.$low>=r.$low))){i=i-(1)>>0;(i<0||i>=h.length)?$throwRuntimeError("index out of range"):h[i]="0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt((((b.$low>>>0)&s)>>>0));b=$shiftRightUint64(b,(q));}}else{t=new $Uint64(0,c);while((b.$high>t.$high||(b.$high===t.$high&&b.$low>=t.$low))){i=i-(1)>>0;(i<0||i>=h.length)?$throwRuntimeError("index out of range"):h[i]="0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(($div64(b,t,true).$low>>>0));b=$div64(b,(t),false);}}}i=i-(1)>>0;(i<0||i>=h.length)?$throwRuntimeError("index out of range"):h[i]="0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt((b.$low>>>0));if(d){i=i-(1)>>0;(i<0||i>=h.length)?$throwRuntimeError("index out of range"):h[i]=45;}if(e){f=$appendSlice(a,$subslice(new CL(h),i));return[f,g];}g=$bytesToString($subslice(new CL(h),i));return[f,g];};BO=function(a,b,c){var d,e,f,g,h,i,j,k,l,m;d=$clone(CT.zero(),CT);f=CL.make(0,(e=(3*a.length>>0)/2,(e===e&&e!==1/0&&e!==-1/0)?e>>0:$throwRuntimeError("integer divide by zero")));f=$append(f,b);g=0;while(a.length>0){h=(a.charCodeAt(0)>>0);g=1;if(h>=128){i=C.DecodeRuneInString(a);h=i[0];g=i[1];}if((g===1)&&(h===65533)){f=$appendSlice(f,new CL($stringToBytes("\\x")));f=$append(f,"0123456789abcdef".charCodeAt((a.charCodeAt(0)>>>4<<24>>>24)));f=$append(f,"0123456789abcdef".charCodeAt(((a.charCodeAt(0)&15)>>>0)));a=a.substring(g);continue;}if((h===(b>>0))||(h===92)){f=$append(f,92);f=$append(f,(h<<24>>>24));a=a.substring(g);continue;}if(c){if(h<128&&CE(h)){f=$append(f,(h<<24>>>24));a=a.substring(g);continue;}}else if(CE(h)){j=C.EncodeRune(new CL(d),h);f=$appendSlice(f,$subslice(new CL(d),0,j));a=a.substring(g);continue;}k=h;if(k===7){f=$appendSlice(f,new CL($stringToBytes("\\a")));}else if(k===8){f=$appendSlice(f,new CL($stringToBytes("\\b")));}else if(k===12){f=$appendSlice(f,new CL($stringToBytes("\\f")));}else if(k===10){f=$appendSlice(f,new CL($stringToBytes("\\n")));}else if(k===13){f=$appendSlice(f,new CL($stringToBytes("\\r")));}else if(k===9){f=$appendSlice(f,new CL($stringToBytes("\\t")));}else if(k===11){f=$appendSlice(f,new CL($stringToBytes("\\v")));}else{if(h<32){f=$appendSlice(f,new CL($stringToBytes("\\x")));f=$append(f,"0123456789abcdef".charCodeAt((a.charCodeAt(0)>>>4<<24>>>24)));f=$append(f,"0123456789abcdef".charCodeAt(((a.charCodeAt(0)&15)>>>0)));}else if(h>1114111){h=65533;f=$appendSlice(f,new CL($stringToBytes("\\u")));l=12;while(l>=0){f=$append(f,"0123456789abcdef".charCodeAt((((h>>$min((l>>>0),31))>>0)&15)));l=l-(4)>>0;}}else if(h<65536){f=$appendSlice(f,new CL($stringToBytes("\\u")));l=12;while(l>=0){f=$append(f,"0123456789abcdef".charCodeAt((((h>>$min((l>>>0),31))>>0)&15)));l=l-(4)>>0;}}else{f=$appendSlice(f,new CL($stringToBytes("\\U")));m=28;while(m>=0){f=$append(f,"0123456789abcdef".charCodeAt((((h>>$min((m>>>0),31))>>0)&15)));m=m-(4)>>0;}}}a=a.substring(g);}f=$append(f,b);return $bytesToString(f);};BP=$pkg.Quote=function(a){return BO(a,34,false);};BR=$pkg.QuoteToASCII=function(a){return BO(a,34,true);};BT=$pkg.QuoteRune=function(a){return BO($encodeRune(a),39,false);};BU=$pkg.AppendQuoteRune=function(a,b){return $appendSlice(a,new CL($stringToBytes(BT(b))));};BV=$pkg.QuoteRuneToASCII=function(a){return BO($encodeRune(a),39,true);};BW=$pkg.AppendQuoteRuneToASCII=function(a,b){return $appendSlice(a,new CL($stringToBytes(BV(b))));};BX=$pkg.CanBackquote=function(a){var b,c,d;while(a.length>0){b=C.DecodeRuneInString(a);c=b[0];d=b[1];a=a.substring(d);if(d>1){if(c===65279){return false;}continue;}if(c===65533){return false;}if((c<32&&!((c===9)))||(c===96)||(c===127)){return false;}}return true;};BY=function(a){var b=0,c=false,d,e,f,g,h,i,j;d=(a>>0);if(48<=d&&d<=57){e=d-48>>0;f=true;b=e;c=f;return[b,c];}else if(97<=d&&d<=102){g=(d-97>>0)+10>>0;h=true;b=g;c=h;return[b,c];}else if(65<=d&&d<=70){i=(d-65>>0)+10>>0;j=true;b=i;c=j;return[b,c];}return[b,c];};BZ=$pkg.UnquoteChar=function(a,b){var c=0,d=false,e="",f=$ifaceNil,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad;g=a.charCodeAt(0);if((g===b)&&((b===39)||(b===34))){f=$pkg.ErrSyntax;return[c,d,e,f];}else if(g>=128){h=C.DecodeRuneInString(a);i=h[0];j=h[1];k=i;l=true;m=a.substring(j);n=$ifaceNil;c=k;d=l;e=m;f=n;return[c,d,e,f];}else if(!((g===92))){o=(a.charCodeAt(0)>>0);p=false;q=a.substring(1);r=$ifaceNil;c=o;d=p;e=q;f=r;return[c,d,e,f];}if(a.length<=1){f=$pkg.ErrSyntax;return[c,d,e,f];}s=a.charCodeAt(1);a=a.substring(2);t=s;switch(0){default:if(t===97){c=7;}else if(t===98){c=8;}else if(t===102){c=12;}else if(t===110){c=10;}else if(t===114){c=13;}else if(t===116){c=9;}else if(t===118){c=11;}else if(t===120||t===117||t===85){u=0;v=s;if(v===120){u=2;}else if(v===117){u=4;}else if(v===85){u=8;}w=0;if(a.length>0)|z;x=x+(1)>>0;}a=a.substring(u);if(s===120){c=w;break;}if(w>1114111){f=$pkg.ErrSyntax;return[c,d,e,f];}c=w;d=true;}else if(t===48||t===49||t===50||t===51||t===52||t===53||t===54||t===55){ab=(s>>0)-48>>0;if(a.length<2){f=$pkg.ErrSyntax;return[c,d,e,f];}ac=0;while(ac<2){ad=(a.charCodeAt(ac)>>0)-48>>0;if(ad<0||ad>7){f=$pkg.ErrSyntax;return[c,d,e,f];}ab=((ab<<3>>0))|ad;ac=ac+(1)>>0;}a=a.substring(2);if(ab>255){f=$pkg.ErrSyntax;return[c,d,e,f];}c=ab;}else if(t===92){c=92;}else if(t===39||t===34){if(!((s===b))){f=$pkg.ErrSyntax;return[c,d,e,f];}c=(s>>0);}else{f=$pkg.ErrSyntax;return[c,d,e,f];}}e=a;return[c,d,e,f];};CA=$pkg.Unquote=function(a){var b="",c=$ifaceNil,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an;d=a.length;if(d<2){e="";f=$pkg.ErrSyntax;b=e;c=f;return[b,c];}g=a.charCodeAt(0);if(!((g===a.charCodeAt((d-1>>0))))){h="";i=$pkg.ErrSyntax;b=h;c=i;return[b,c];}a=a.substring(1,(d-1>>0));if(g===96){if(CB(a,96)){j="";k=$pkg.ErrSyntax;b=j;c=k;return[b,c];}l=a;m=$ifaceNil;b=l;c=m;return[b,c];}if(!((g===34))&&!((g===39))){n="";o=$pkg.ErrSyntax;b=n;c=o;return[b,c];}if(CB(a,10)){p="";q=$pkg.ErrSyntax;b=p;c=q;return[b,c];}if(!CB(a,92)&&!CB(a,g)){r=g;if(r===34){s=a;t=$ifaceNil;b=s;c=t;return[b,c];}else if(r===39){u=C.DecodeRuneInString(a);v=u[0];w=u[1];if((w===a.length)&&(!((v===65533))||!((w===1)))){x=a;y=$ifaceNil;b=x;c=y;return[b,c];}}}z=$clone(CT.zero(),CT);ab=CL.make(0,(aa=(3*a.length>>0)/2,(aa===aa&&aa!==1/0&&aa!==-1/0)?aa>>0:$throwRuntimeError("integer divide by zero")));while(a.length>0){ac=BZ(a,g);ad=ac[0];ae=ac[1];af=ac[2];ag=ac[3];if(!($interfaceIsEqual(ag,$ifaceNil))){ah="";ai=ag;b=ah;c=ai;return[b,c];}a=af;if(ad<128||!ae){ab=$append(ab,(ad<<24>>>24));}else{aj=C.EncodeRune(new CL(z),ad);ab=$appendSlice(ab,$subslice(new CL(z),0,aj));}if((g===39)&&!((a.length===0))){ak="";al=$pkg.ErrSyntax;b=ak;c=al;return[b,c];}}am=$bytesToString(ab);an=$ifaceNil;b=am;c=an;return[b,c];};CB=function(a,b){var c;c=0;while(c>0;}return false;};CC=function(a,b){var c,d,e,f,g,h;c=0;d=a.$length;e=c;f=d;while(e>0))/2,(g===g&&g!==1/0&&g!==-1/0)?g>>0:$throwRuntimeError("integer divide by zero"))>>0;if(((h<0||h>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+h])>0;}else{f=h;}}return e;};CD=function(a,b){var c,d,e,f,g,h;c=0;d=a.$length;e=c;f=d;while(e>0))/2,(g===g&&g!==1/0&&g!==-1/0)?g>>0:$throwRuntimeError("integer divide by zero"))>>0;if(((h<0||h>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+h])>0;}else{f=h;}}return e;};CE=$pkg.IsPrint=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;if(a<=255){if(32<=a&&a<=126){return true;}if(161<=a&&a<=255){return!((a===173));}return false;}if(0<=a&&a<65536){b=(a<<16>>>16);c=BD;d=BE;e=b;f=c;g=d;h=CC(f,e);if(h>=f.$length||e<(i=h&~1,((i<0||i>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+i]))||(j=h|1,((j<0||j>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+j]))=g.$length||!((((k<0||k>=g.$length)?$throwRuntimeError("index out of range"):g.$array[g.$offset+k])===e));}l=(a>>>0);m=BF;n=BG;o=l;p=m;q=n;r=CD(p,o);if(r>=p.$length||o<(s=r&~1,((s<0||s>=p.$length)?$throwRuntimeError("index out of range"):p.$array[p.$offset+s]))||(t=r|1,((t<0||t>=p.$length)?$throwRuntimeError("index out of range"):p.$array[p.$offset+t]))=131072){return true;}a=a-(65536)>>0;u=CC(q,(a<<16>>>16));return u>=q.$length||!((((u<0||u>=q.$length)?$throwRuntimeError("index out of range"):q.$array[q.$offset+u])===(a<<16>>>16)));};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=B.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=A.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}CI=$sliceType(AD);CJ=$sliceType($Uint16);CK=$sliceType($Uint32);CL=$sliceType($Uint8);CN=$arrayType($Uint8,24);CO=$arrayType($Uint8,32);CP=$ptrType(AP);CQ=$arrayType($Uint8,3);CR=$arrayType($Uint8,50);CS=$arrayType($Uint8,65);CT=$arrayType($Uint8,4);CU=$arrayType($Uint8,800);CV=$ptrType(Z);CW=$ptrType(AY);CX=$ptrType(AI);CV.methods=[["Assign","Assign","",$funcType([$Uint64],[],false),-1],["Round","Round","",$funcType([$Int],[],false),-1],["RoundDown","RoundDown","",$funcType([$Int],[],false),-1],["RoundUp","RoundUp","",$funcType([$Int],[],false),-1],["RoundedInteger","RoundedInteger","",$funcType([],[$Uint64],false),-1],["Shift","Shift","",$funcType([$Int],[],false),-1],["String","String","",$funcType([],[$String],false),-1],["floatBits","floatBits","strconv",$funcType([CP],[$Uint64,$Bool],false),-1],["set","set","strconv",$funcType([$String],[$Bool],false),-1]];Z.init([["d","d","strconv",CU,""],["nd","nd","strconv",$Int,""],["dp","dp","strconv",$Int,""],["neg","neg","strconv",$Bool,""],["trunc","trunc","strconv",$Bool,""]]);AD.init([["delta","delta","strconv",$Int,""],["cutoff","cutoff","strconv",$String,""]]);CX.methods=[["AssignComputeBounds","AssignComputeBounds","",$funcType([$Uint64,$Int,$Bool,CP],[AI,AI],false),-1],["AssignDecimal","AssignDecimal","",$funcType([$Uint64,$Int,$Bool,$Bool,CP],[$Bool],false),-1],["FixedDecimal","FixedDecimal","",$funcType([CW,$Int],[$Bool],false),-1],["Multiply","Multiply","",$funcType([AI],[],false),-1],["Normalize","Normalize","",$funcType([],[$Uint],false),-1],["ShortestDecimal","ShortestDecimal","",$funcType([CW,CX,CX],[$Bool],false),-1],["floatBits","floatBits","strconv",$funcType([CP],[$Uint64,$Bool],false),-1],["frexp10","frexp10","strconv",$funcType([],[$Int,$Int],false),-1]];AI.init([["mant","mant","strconv",$Uint64,""],["exp","exp","strconv",$Int,""],["neg","neg","strconv",$Bool,""]]);AP.init([["mantbits","mantbits","strconv",$Uint,""],["expbits","expbits","strconv",$Uint,""],["bias","bias","strconv",$Int,""]]);AY.init([["d","d","strconv",CL,""],["nd","nd","strconv",$Int,""],["dp","dp","strconv",$Int,""],["neg","neg","strconv",$Bool,""]]);G=true;$pkg.ErrRange=B.New("value out of range");$pkg.ErrSyntax=B.New("invalid syntax");AE=new CI([new AD.Ptr(0,""),new AD.Ptr(1,"5"),new AD.Ptr(1,"25"),new AD.Ptr(1,"125"),new AD.Ptr(2,"625"),new AD.Ptr(2,"3125"),new AD.Ptr(2,"15625"),new AD.Ptr(3,"78125"),new AD.Ptr(3,"390625"),new AD.Ptr(3,"1953125"),new AD.Ptr(4,"9765625"),new AD.Ptr(4,"48828125"),new AD.Ptr(4,"244140625"),new AD.Ptr(4,"1220703125"),new AD.Ptr(5,"6103515625"),new AD.Ptr(5,"30517578125"),new AD.Ptr(5,"152587890625"),new AD.Ptr(6,"762939453125"),new AD.Ptr(6,"3814697265625"),new AD.Ptr(6,"19073486328125"),new AD.Ptr(7,"95367431640625"),new AD.Ptr(7,"476837158203125"),new AD.Ptr(7,"2384185791015625"),new AD.Ptr(7,"11920928955078125"),new AD.Ptr(8,"59604644775390625"),new AD.Ptr(8,"298023223876953125"),new AD.Ptr(8,"1490116119384765625"),new AD.Ptr(9,"7450580596923828125")]);AJ=$toNativeArray($kindStruct,[new AI.Ptr(new $Uint64(2147483648,0),-63,false),new AI.Ptr(new $Uint64(2684354560,0),-60,false),new AI.Ptr(new $Uint64(3355443200,0),-57,false),new AI.Ptr(new $Uint64(4194304000,0),-54,false),new AI.Ptr(new $Uint64(2621440000,0),-50,false),new AI.Ptr(new $Uint64(3276800000,0),-47,false),new AI.Ptr(new $Uint64(4096000000,0),-44,false),new AI.Ptr(new $Uint64(2560000000,0),-40,false)]);AK=$toNativeArray($kindStruct,[new AI.Ptr(new $Uint64(4203730336,136053384),-1220,false),new AI.Ptr(new $Uint64(3132023167,2722021238),-1193,false),new AI.Ptr(new $Uint64(2333539104,810921078),-1166,false),new AI.Ptr(new $Uint64(3477244234,1573795306),-1140,false),new AI.Ptr(new $Uint64(2590748842,1432697645),-1113,false),new AI.Ptr(new $Uint64(3860516611,1025131999),-1087,false),new AI.Ptr(new $Uint64(2876309015,3348809418),-1060,false),new AI.Ptr(new $Uint64(4286034428,3200048207),-1034,false),new AI.Ptr(new $Uint64(3193344495,1097586188),-1007,false),new AI.Ptr(new $Uint64(2379227053,2424306748),-980,false),new AI.Ptr(new $Uint64(3545324584,827693699),-954,false),new AI.Ptr(new $Uint64(2641472655,2913388981),-927,false),new AI.Ptr(new $Uint64(3936100983,602835915),-901,false),new AI.Ptr(new $Uint64(2932623761,1081627501),-874,false),new AI.Ptr(new $Uint64(2184974969,1572261463),-847,false),new AI.Ptr(new $Uint64(3255866422,1308317239),-821,false),new AI.Ptr(new $Uint64(2425809519,944281679),-794,false),new AI.Ptr(new $Uint64(3614737867,629291719),-768,false),new AI.Ptr(new $Uint64(2693189581,2545915892),-741,false),new AI.Ptr(new $Uint64(4013165208,388672741),-715,false),new AI.Ptr(new $Uint64(2990041083,708162190),-688,false),new AI.Ptr(new $Uint64(2227754207,3536207675),-661,false),new AI.Ptr(new $Uint64(3319612455,450088378),-635,false),new AI.Ptr(new $Uint64(2473304014,3139815830),-608,false),new AI.Ptr(new $Uint64(3685510180,2103616900),-582,false),new AI.Ptr(new $Uint64(2745919064,224385782),-555,false),new AI.Ptr(new $Uint64(4091738259,3737383206),-529,false),new AI.Ptr(new $Uint64(3048582568,2868871352),-502,false),new AI.Ptr(new $Uint64(2271371013,1820084875),-475,false),new AI.Ptr(new $Uint64(3384606560,885076051),-449,false),new AI.Ptr(new $Uint64(2521728396,2444895829),-422,false),new AI.Ptr(new $Uint64(3757668132,1881767613),-396,false),new AI.Ptr(new $Uint64(2799680927,3102062735),-369,false),new AI.Ptr(new $Uint64(4171849679,2289335700),-343,false),new AI.Ptr(new $Uint64(3108270227,2410191823),-316,false),new AI.Ptr(new $Uint64(2315841784,3205436779),-289,false),new AI.Ptr(new $Uint64(3450873173,1697722806),-263,false),new AI.Ptr(new $Uint64(2571100870,3497754540),-236,false),new AI.Ptr(new $Uint64(3831238852,707476230),-210,false),new AI.Ptr(new $Uint64(2854495385,1769181907),-183,false),new AI.Ptr(new $Uint64(4253529586,2197867022),-157,false),new AI.Ptr(new $Uint64(3169126500,2450594539),-130,false),new AI.Ptr(new $Uint64(2361183241,1867548876),-103,false),new AI.Ptr(new $Uint64(3518437208,3793315116),-77,false),new AI.Ptr(new $Uint64(2621440000,0),-50,false),new AI.Ptr(new $Uint64(3906250000,0),-24,false),new AI.Ptr(new $Uint64(2910383045,2892103680),3,false),new AI.Ptr(new $Uint64(2168404344,4170451332),30,false),new AI.Ptr(new $Uint64(3231174267,3372684723),56,false),new AI.Ptr(new $Uint64(2407412430,2078956656),83,false),new AI.Ptr(new $Uint64(3587324068,2884206696),109,false),new AI.Ptr(new $Uint64(2672764710,395977285),136,false),new AI.Ptr(new $Uint64(3982729777,3569679143),162,false),new AI.Ptr(new $Uint64(2967364920,2361961896),189,false),new AI.Ptr(new $Uint64(2210859150,447440347),216,false),new AI.Ptr(new $Uint64(3294436857,1114709402),242,false),new AI.Ptr(new $Uint64(2454546732,2786846552),269,false),new AI.Ptr(new $Uint64(3657559652,443583978),295,false),new AI.Ptr(new $Uint64(2725094297,2599384906),322,false),new AI.Ptr(new $Uint64(4060706939,3028118405),348,false),new AI.Ptr(new $Uint64(3025462433,2044532855),375,false),new AI.Ptr(new $Uint64(2254145170,1536935362),402,false),new AI.Ptr(new $Uint64(3358938053,3365297469),428,false),new AI.Ptr(new $Uint64(2502603868,4204241075),455,false),new AI.Ptr(new $Uint64(3729170365,2577424355),481,false),new AI.Ptr(new $Uint64(2778448436,3677981733),508,false),new AI.Ptr(new $Uint64(4140210802,2744688476),534,false),new AI.Ptr(new $Uint64(3084697427,1424604878),561,false),new AI.Ptr(new $Uint64(2298278679,4062331362),588,false),new AI.Ptr(new $Uint64(3424702107,3546052773),614,false),new AI.Ptr(new $Uint64(2551601907,2065781727),641,false),new AI.Ptr(new $Uint64(3802183132,2535403578),667,false),new AI.Ptr(new $Uint64(2832847187,1558426518),694,false),new AI.Ptr(new $Uint64(4221271257,2762425404),720,false),new AI.Ptr(new $Uint64(3145092172,2812560400),747,false),new AI.Ptr(new $Uint64(2343276271,3057687578),774,false),new AI.Ptr(new $Uint64(3491753744,2790753324),800,false),new AI.Ptr(new $Uint64(2601559269,3918606633),827,false),new AI.Ptr(new $Uint64(3876625403,2711358621),853,false),new AI.Ptr(new $Uint64(2888311001,1648096297),880,false),new AI.Ptr(new $Uint64(2151959390,2057817989),907,false),new AI.Ptr(new $Uint64(3206669376,61660461),933,false),new AI.Ptr(new $Uint64(2389154863,1581580175),960,false),new AI.Ptr(new $Uint64(3560118173,2626467905),986,false),new AI.Ptr(new $Uint64(2652494738,3034782633),1013,false),new AI.Ptr(new $Uint64(3952525166,3135207385),1039,false),new AI.Ptr(new $Uint64(2944860731,2616258155),1066,false)]);AL=$toNativeArray($kindUint64,[new $Uint64(0,1),new $Uint64(0,10),new $Uint64(0,100),new $Uint64(0,1000),new $Uint64(0,10000),new $Uint64(0,100000),new $Uint64(0,1000000),new $Uint64(0,10000000),new $Uint64(0,100000000),new $Uint64(0,1000000000),new $Uint64(2,1410065408),new $Uint64(23,1215752192),new $Uint64(232,3567587328),new $Uint64(2328,1316134912),new $Uint64(23283,276447232),new $Uint64(232830,2764472320),new $Uint64(2328306,1874919424),new $Uint64(23283064,1569325056),new $Uint64(232830643,2808348672),new $Uint64(2328306436,2313682944)]);AQ=new AP.Ptr(23,8,-127);AR=new AP.Ptr(52,11,-1023);BD=new CJ([32,126,161,887,890,895,900,1366,1369,1418,1421,1479,1488,1514,1520,1524,1542,1563,1566,1805,1808,1866,1869,1969,1984,2042,2048,2093,2096,2139,2142,2142,2208,2226,2276,2444,2447,2448,2451,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2531,2534,2555,2561,2570,2575,2576,2579,2617,2620,2626,2631,2632,2635,2637,2641,2641,2649,2654,2662,2677,2689,2745,2748,2765,2768,2768,2784,2787,2790,2801,2817,2828,2831,2832,2835,2873,2876,2884,2887,2888,2891,2893,2902,2903,2908,2915,2918,2935,2946,2954,2958,2965,2969,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3021,3024,3024,3031,3031,3046,3066,3072,3129,3133,3149,3157,3161,3168,3171,3174,3183,3192,3257,3260,3277,3285,3286,3294,3299,3302,3314,3329,3386,3389,3406,3415,3415,3424,3427,3430,3445,3449,3455,3458,3478,3482,3517,3520,3526,3530,3530,3535,3551,3558,3567,3570,3572,3585,3642,3647,3675,3713,3716,3719,3722,3725,3725,3732,3751,3754,3773,3776,3789,3792,3801,3804,3807,3840,3948,3953,4058,4096,4295,4301,4301,4304,4685,4688,4701,4704,4749,4752,4789,4792,4805,4808,4885,4888,4954,4957,4988,4992,5017,5024,5108,5120,5788,5792,5880,5888,5908,5920,5942,5952,5971,5984,6003,6016,6109,6112,6121,6128,6137,6144,6157,6160,6169,6176,6263,6272,6314,6320,6389,6400,6443,6448,6459,6464,6464,6468,6509,6512,6516,6528,6571,6576,6601,6608,6618,6622,6683,6686,6780,6783,6793,6800,6809,6816,6829,6832,6846,6912,6987,6992,7036,7040,7155,7164,7223,7227,7241,7245,7295,7360,7367,7376,7417,7424,7669,7676,7957,7960,7965,7968,8005,8008,8013,8016,8061,8064,8147,8150,8175,8178,8190,8208,8231,8240,8286,8304,8305,8308,8348,8352,8381,8400,8432,8448,8585,8592,9210,9216,9254,9280,9290,9312,11123,11126,11157,11160,11193,11197,11217,11264,11507,11513,11559,11565,11565,11568,11623,11631,11632,11647,11670,11680,11842,11904,12019,12032,12245,12272,12283,12289,12438,12441,12543,12549,12589,12593,12730,12736,12771,12784,19893,19904,40908,40960,42124,42128,42182,42192,42539,42560,42743,42752,42925,42928,42929,42999,43051,43056,43065,43072,43127,43136,43204,43214,43225,43232,43259,43264,43347,43359,43388,43392,43481,43486,43574,43584,43597,43600,43609,43612,43714,43739,43766,43777,43782,43785,43790,43793,43798,43808,43871,43876,43877,43968,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64449,64467,64831,64848,64911,64914,64967,65008,65021,65024,65049,65056,65069,65072,65131,65136,65276,65281,65470,65474,65479,65482,65487,65490,65495,65498,65500,65504,65518,65532,65533]);BE=new CJ([173,907,909,930,1328,1376,1416,1424,1757,2111,2436,2473,2481,2526,2564,2601,2609,2612,2615,2621,2653,2692,2702,2706,2729,2737,2740,2758,2762,2820,2857,2865,2868,2910,2948,2961,2971,2973,3017,3076,3085,3089,3113,3141,3145,3159,3200,3204,3213,3217,3241,3252,3269,3273,3295,3312,3332,3341,3345,3397,3401,3460,3506,3516,3541,3543,3715,3721,3736,3744,3748,3750,3756,3770,3781,3783,3912,3992,4029,4045,4294,4681,4695,4697,4745,4785,4799,4801,4823,4881,5760,5901,5997,6001,6431,6751,7415,8024,8026,8028,8030,8117,8133,8156,8181,8335,11209,11311,11359,11558,11687,11695,11703,11711,11719,11727,11735,11743,11930,12352,12687,12831,13055,42654,42895,43470,43519,43815,43823,64311,64317,64319,64322,64325,65107,65127,65141,65511]);BF=new CK([65536,65613,65616,65629,65664,65786,65792,65794,65799,65843,65847,65932,65936,65947,65952,65952,66000,66045,66176,66204,66208,66256,66272,66299,66304,66339,66352,66378,66384,66426,66432,66499,66504,66517,66560,66717,66720,66729,66816,66855,66864,66915,66927,66927,67072,67382,67392,67413,67424,67431,67584,67589,67592,67640,67644,67644,67647,67742,67751,67759,67840,67867,67871,67897,67903,67903,67968,68023,68030,68031,68096,68102,68108,68147,68152,68154,68159,68167,68176,68184,68192,68255,68288,68326,68331,68342,68352,68405,68409,68437,68440,68466,68472,68497,68505,68508,68521,68527,68608,68680,69216,69246,69632,69709,69714,69743,69759,69825,69840,69864,69872,69881,69888,69955,69968,70006,70016,70088,70093,70093,70096,70106,70113,70132,70144,70205,70320,70378,70384,70393,70401,70412,70415,70416,70419,70457,70460,70468,70471,70472,70475,70477,70487,70487,70493,70499,70502,70508,70512,70516,70784,70855,70864,70873,71040,71093,71096,71113,71168,71236,71248,71257,71296,71351,71360,71369,71840,71922,71935,71935,72384,72440,73728,74648,74752,74868,77824,78894,92160,92728,92736,92777,92782,92783,92880,92909,92912,92917,92928,92997,93008,93047,93053,93071,93952,94020,94032,94078,94095,94111,110592,110593,113664,113770,113776,113788,113792,113800,113808,113817,113820,113823,118784,119029,119040,119078,119081,119154,119163,119261,119296,119365,119552,119638,119648,119665,119808,119967,119970,119970,119973,119974,119977,120074,120077,120134,120138,120485,120488,120779,120782,120831,124928,125124,125127,125142,126464,126500,126503,126523,126530,126530,126535,126548,126551,126564,126567,126619,126625,126651,126704,126705,126976,127019,127024,127123,127136,127150,127153,127221,127232,127244,127248,127339,127344,127386,127462,127490,127504,127546,127552,127560,127568,127569,127744,127788,127792,127869,127872,127950,127956,127991,128000,128330,128336,128578,128581,128719,128736,128748,128752,128755,128768,128883,128896,128980,129024,129035,129040,129095,129104,129113,129120,129159,129168,129197,131072,173782,173824,177972,177984,178205,194560,195101,917760,917999]);BG=new CJ([12,39,59,62,926,2057,2102,2134,2564,2580,2584,4285,4405,4626,4868,4905,4913,4916,9327,27231,27482,27490,54357,54429,54445,54458,54460,54468,54534,54549,54557,54586,54591,54597,54609,60932,60960,60963,60968,60979,60984,60986,61000,61002,61004,61008,61011,61016,61018,61020,61022,61024,61027,61035,61043,61048,61053,61055,61066,61092,61098,61632,61648,61743,62719,62842,62884]);BM=$toNativeArray($kindUint,[0,0,1,0,2,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0]);}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["reflect"]=(function(){var $pkg={},B,E,A,C,D,FF,FG,FO,FP,FQ,FR,FS,FT,FU,FV,FW,FX,FY,FZ,GA,GB,GC,GE,GF,GG,GH,GI,GJ,GO,GQ,GR,GS,GU,GV,GW,GX,GY,GZ,HA,HB,HC,HD,HF,HG,HH,HI,AF,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK,BL,BM,BN,BO,BP,BQ,BS,BT,BU,CT,CU,CX,CZ,F,BR,DG,G,H,I,J,K,L,M,N,O,P,T,U,V,W,Y,AC,AD,AE,AG,AH,AI,AJ,AK,AM,AN,AO,AP,AQ,BW,BY,BZ,CA,CL,CQ,DH,DZ,EB,EC,ED,EE,EF,EG,EH,EI,EJ,EK,EL,EM,EN,EO,EP,EQ,ER,ES,ET,EU,EV,EW;B=$packages["github.com/gopherjs/gopherjs/js"];E=$packages["math"];A=$packages["runtime"];C=$packages["strconv"];D=$packages["sync"];AF=$pkg.mapIter=$newType(0,$kindStruct,"reflect.mapIter","mapIter","reflect",function(t_,m_,keys_,i_){this.$val=this;this.t=t_!==undefined?t_:$ifaceNil;this.m=m_!==undefined?m_:null;this.keys=keys_!==undefined?keys_:null;this.i=i_!==undefined?i_:0;});AZ=$pkg.Type=$newType(8,$kindInterface,"reflect.Type","Type","reflect",null);BA=$pkg.Kind=$newType(4,$kindUint,"reflect.Kind","Kind","reflect",null);BB=$pkg.rtype=$newType(0,$kindStruct,"reflect.rtype","rtype","reflect",function(size_,hash_,_$2_,align_,fieldAlign_,kind_,alg_,gc_,string_,uncommonType_,ptrToThis_,zero_){this.$val=this;this.size=size_!==undefined?size_:0;this.hash=hash_!==undefined?hash_:0;this._$2=_$2_!==undefined?_$2_:0;this.align=align_!==undefined?align_:0;this.fieldAlign=fieldAlign_!==undefined?fieldAlign_:0;this.kind=kind_!==undefined?kind_:0;this.alg=alg_!==undefined?alg_:FP.nil;this.gc=gc_!==undefined?gc_:FQ.zero();this.string=string_!==undefined?string_:FR.nil;this.uncommonType=uncommonType_!==undefined?uncommonType_:FS.nil;this.ptrToThis=ptrToThis_!==undefined?ptrToThis_:FF.nil;this.zero=zero_!==undefined?zero_:0;});BC=$pkg.typeAlg=$newType(0,$kindStruct,"reflect.typeAlg","typeAlg","reflect",function(hash_,equal_){this.$val=this;this.hash=hash_!==undefined?hash_:$throwNilPointerError;this.equal=equal_!==undefined?equal_:$throwNilPointerError;});BD=$pkg.method=$newType(0,$kindStruct,"reflect.method","method","reflect",function(name_,pkgPath_,mtyp_,typ_,ifn_,tfn_){this.$val=this;this.name=name_!==undefined?name_:FR.nil;this.pkgPath=pkgPath_!==undefined?pkgPath_:FR.nil;this.mtyp=mtyp_!==undefined?mtyp_:FF.nil;this.typ=typ_!==undefined?typ_:FF.nil;this.ifn=ifn_!==undefined?ifn_:0;this.tfn=tfn_!==undefined?tfn_:0;});BE=$pkg.uncommonType=$newType(0,$kindStruct,"reflect.uncommonType","uncommonType","reflect",function(name_,pkgPath_,methods_){this.$val=this;this.name=name_!==undefined?name_:FR.nil;this.pkgPath=pkgPath_!==undefined?pkgPath_:FR.nil;this.methods=methods_!==undefined?methods_:FT.nil;});BF=$pkg.ChanDir=$newType(4,$kindInt,"reflect.ChanDir","ChanDir","reflect",null);BG=$pkg.arrayType=$newType(0,$kindStruct,"reflect.arrayType","arrayType","reflect",function(rtype_,elem_,slice_,len_){this.$val=this;this.rtype=rtype_!==undefined?rtype_:new BB.Ptr();this.elem=elem_!==undefined?elem_:FF.nil;this.slice=slice_!==undefined?slice_:FF.nil;this.len=len_!==undefined?len_:0;});BH=$pkg.chanType=$newType(0,$kindStruct,"reflect.chanType","chanType","reflect",function(rtype_,elem_,dir_){this.$val=this;this.rtype=rtype_!==undefined?rtype_:new BB.Ptr();this.elem=elem_!==undefined?elem_:FF.nil;this.dir=dir_!==undefined?dir_:0;});BI=$pkg.funcType=$newType(0,$kindStruct,"reflect.funcType","funcType","reflect",function(rtype_,dotdotdot_,in$2_,out_){this.$val=this;this.rtype=rtype_!==undefined?rtype_:new BB.Ptr();this.dotdotdot=dotdotdot_!==undefined?dotdotdot_:false;this.in$2=in$2_!==undefined?in$2_:FU.nil;this.out=out_!==undefined?out_:FU.nil;});BJ=$pkg.imethod=$newType(0,$kindStruct,"reflect.imethod","imethod","reflect",function(name_,pkgPath_,typ_){this.$val=this;this.name=name_!==undefined?name_:FR.nil;this.pkgPath=pkgPath_!==undefined?pkgPath_:FR.nil;this.typ=typ_!==undefined?typ_:FF.nil;});BK=$pkg.interfaceType=$newType(0,$kindStruct,"reflect.interfaceType","interfaceType","reflect",function(rtype_,methods_){this.$val=this;this.rtype=rtype_!==undefined?rtype_:new BB.Ptr();this.methods=methods_!==undefined?methods_:FV.nil;});BL=$pkg.mapType=$newType(0,$kindStruct,"reflect.mapType","mapType","reflect",function(rtype_,key_,elem_,bucket_,hmap_,keysize_,indirectkey_,valuesize_,indirectvalue_,bucketsize_){this.$val=this;this.rtype=rtype_!==undefined?rtype_:new BB.Ptr();this.key=key_!==undefined?key_:FF.nil;this.elem=elem_!==undefined?elem_:FF.nil;this.bucket=bucket_!==undefined?bucket_:FF.nil;this.hmap=hmap_!==undefined?hmap_:FF.nil;this.keysize=keysize_!==undefined?keysize_:0;this.indirectkey=indirectkey_!==undefined?indirectkey_:0;this.valuesize=valuesize_!==undefined?valuesize_:0;this.indirectvalue=indirectvalue_!==undefined?indirectvalue_:0;this.bucketsize=bucketsize_!==undefined?bucketsize_:0;});BM=$pkg.ptrType=$newType(0,$kindStruct,"reflect.ptrType","ptrType","reflect",function(rtype_,elem_){this.$val=this;this.rtype=rtype_!==undefined?rtype_:new BB.Ptr();this.elem=elem_!==undefined?elem_:FF.nil;});BN=$pkg.sliceType=$newType(0,$kindStruct,"reflect.sliceType","sliceType","reflect",function(rtype_,elem_){this.$val=this;this.rtype=rtype_!==undefined?rtype_:new BB.Ptr();this.elem=elem_!==undefined?elem_:FF.nil;});BO=$pkg.structField=$newType(0,$kindStruct,"reflect.structField","structField","reflect",function(name_,pkgPath_,typ_,tag_,offset_){this.$val=this;this.name=name_!==undefined?name_:FR.nil;this.pkgPath=pkgPath_!==undefined?pkgPath_:FR.nil;this.typ=typ_!==undefined?typ_:FF.nil;this.tag=tag_!==undefined?tag_:FR.nil;this.offset=offset_!==undefined?offset_:0;});BP=$pkg.structType=$newType(0,$kindStruct,"reflect.structType","structType","reflect",function(rtype_,fields_){this.$val=this;this.rtype=rtype_!==undefined?rtype_:new BB.Ptr();this.fields=fields_!==undefined?fields_:FW.nil;});BQ=$pkg.Method=$newType(0,$kindStruct,"reflect.Method","Method","reflect",function(Name_,PkgPath_,Type_,Func_,Index_){this.$val=this;this.Name=Name_!==undefined?Name_:"";this.PkgPath=PkgPath_!==undefined?PkgPath_:"";this.Type=Type_!==undefined?Type_:$ifaceNil;this.Func=Func_!==undefined?Func_:new CT.Ptr();this.Index=Index_!==undefined?Index_:0;});BS=$pkg.StructField=$newType(0,$kindStruct,"reflect.StructField","StructField","reflect",function(Name_,PkgPath_,Type_,Tag_,Offset_,Index_,Anonymous_){this.$val=this;this.Name=Name_!==undefined?Name_:"";this.PkgPath=PkgPath_!==undefined?PkgPath_:"";this.Type=Type_!==undefined?Type_:$ifaceNil;this.Tag=Tag_!==undefined?Tag_:"";this.Offset=Offset_!==undefined?Offset_:0;this.Index=Index_!==undefined?Index_:GH.nil;this.Anonymous=Anonymous_!==undefined?Anonymous_:false;});BT=$pkg.StructTag=$newType(8,$kindString,"reflect.StructTag","StructTag","reflect",null);BU=$pkg.fieldScan=$newType(0,$kindStruct,"reflect.fieldScan","fieldScan","reflect",function(typ_,index_){this.$val=this;this.typ=typ_!==undefined?typ_:GJ.nil;this.index=index_!==undefined?index_:GH.nil;});CT=$pkg.Value=$newType(0,$kindStruct,"reflect.Value","Value","reflect",function(typ_,ptr_,flag_){this.$val=this;this.typ=typ_!==undefined?typ_:FF.nil;this.ptr=ptr_!==undefined?ptr_:0;this.flag=flag_!==undefined?flag_:0;});CU=$pkg.flag=$newType(4,$kindUintptr,"reflect.flag","flag","reflect",null);CX=$pkg.ValueError=$newType(0,$kindStruct,"reflect.ValueError","ValueError","reflect",function(Method_,Kind_){this.$val=this;this.Method=Method_!==undefined?Method_:"";this.Kind=Kind_!==undefined?Kind_:0;});CZ=$pkg.nonEmptyInterface=$newType(0,$kindStruct,"reflect.nonEmptyInterface","nonEmptyInterface","reflect",function(itab_,word_){this.$val=this;this.itab=itab_!==undefined?itab_:GA.nil;this.word=word_!==undefined?word_:0;});G=function(){var ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar;ad=(function(ad){});ad((ae=new BB.Ptr(0,0,0,0,0,0,FP.nil,FQ.zero(),FR.nil,FS.nil,FF.nil,0),new ae.constructor.Struct(ae)));ad((af=new BE.Ptr(FR.nil,FR.nil,FT.nil),new af.constructor.Struct(af)));ad((ag=new BD.Ptr(FR.nil,FR.nil,FF.nil,FF.nil,0,0),new ag.constructor.Struct(ag)));ad((ah=new BG.Ptr(new BB.Ptr(),FF.nil,FF.nil,0),new ah.constructor.Struct(ah)));ad((ai=new BH.Ptr(new BB.Ptr(),FF.nil,0),new ai.constructor.Struct(ai)));ad((aj=new BI.Ptr(new BB.Ptr(),false,FU.nil,FU.nil),new aj.constructor.Struct(aj)));ad((ak=new BK.Ptr(new BB.Ptr(),FV.nil),new ak.constructor.Struct(ak)));ad((al=new BL.Ptr(new BB.Ptr(),FF.nil,FF.nil,FF.nil,FF.nil,0,0,0,0,0),new al.constructor.Struct(al)));ad((am=new BM.Ptr(new BB.Ptr(),FF.nil),new am.constructor.Struct(am)));ad((an=new BN.Ptr(new BB.Ptr(),FF.nil),new an.constructor.Struct(an)));ad((ao=new BP.Ptr(new BB.Ptr(),FW.nil),new ao.constructor.Struct(ao)));ad((ap=new BJ.Ptr(FR.nil,FR.nil,FF.nil),new ap.constructor.Struct(ap)));ad((aq=new BO.Ptr(FR.nil,FR.nil,FF.nil,FR.nil,0),new aq.constructor.Struct(aq)));ar=$pkg;ar.RecvDir=1;ar.SendDir=2;ar.BothDir=3;$reflect=ar;F=true;DG=$assertType(O(new $Uint8(0)),FF);};H=function(ad){return ad.jsType;};I=function(ad){return ad.reflectType();};J=function(ad){var ae;ae=ad.Kind();if(ae===1||ae===2||ae===3||ae===4||ae===5||ae===7||ae===8||ae===9||ae===10||ae===12||ae===13||ae===14||ae===17||ae===21||ae===19||ae===24||ae===25){return true;}else if(ae===22){return ad.Elem().Kind()===17;}return false;};K=function(ad,ae,af){var ag,ah,ai;ag=H(af).fields;ah=0;while(ah<$parseInt(ag.length)){ai=$internalize(ag[ah][0],$String);ad[$externalize(ai,$String)]=ae[$externalize(ai,$String)];ah=ah+(1)>>0;}};L=function(ad,ae,af){var ag;ag=ad.common();if((ad.Kind()===17)||(ad.Kind()===25)||(ad.Kind()===22)){return new CT.Ptr(ag,ae,(af|(ad.Kind()>>>0))>>>0);}return new CT.Ptr(ag,$newDataPointer(ae,H(ag.ptrTo())),(((af|(ad.Kind()>>>0))>>>0)|64)>>>0);};M=$pkg.MakeSlice=function(ad,ae,af){if(!((ad.Kind()===23))){$panic(new $String("reflect.MakeSlice of non-slice type"));}if(ae<0){$panic(new $String("reflect.MakeSlice: negative len"));}if(af<0){$panic(new $String("reflect.MakeSlice: negative cap"));}if(ae>af){$panic(new $String("reflect.MakeSlice: len > cap"));}return L(ad,H(ad).make(ae,af,(function(){return H(ad.Elem()).zero();})),0);};N=function(){return I($packages[$externalize("github.com/gopherjs/gopherjs/js",$String)].Object);};O=$pkg.TypeOf=function(ad){var ae;if(!F){return new BB.Ptr(0,0,0,0,0,0,FP.nil,FQ.zero(),FR.nil,FS.nil,FF.nil,0);}if($interfaceIsEqual(ad,$ifaceNil)){return $ifaceNil;}ae=ad.constructor;if(ae.kind===undefined){return N();}return I(ae);};P=$pkg.ValueOf=function(ad){var ae;if($interfaceIsEqual(ad,$ifaceNil)){return new CT.Ptr(FF.nil,0,0);}ae=ad.constructor;if(ae.kind===undefined){return new CT.Ptr(N(),ad,20);}return L(I(ae),ad.$val,0);};BB.Ptr.prototype.ptrTo=function(){var ad;ad=this;return I($ptrType(H(ad)));};BB.prototype.ptrTo=function(){return this.$val.ptrTo();};T=$pkg.SliceOf=function(ad){return I($sliceType(H(ad)));};U=$pkg.Zero=function(ad){return L(ad,H(ad).zero(),0);};V=function(ad){var ae;ae=ad.Kind();if(ae===25){return new(H(ad).Ptr)();}else if(ae===17){return H(ad).zero();}else{return $newDataPointer(H(ad).zero(),H(ad.ptrTo()));}};W=function(ad,ae,af){var ag,ah,ai;ag=af.common();ah=V(ag);ai=ag.Kind();if(ai===3){ah.$set((ae.$low<<24>>24));}else if(ai===4){ah.$set((ae.$low<<16>>16));}else if(ai===2||ai===5){ah.$set((ae.$low>>0));}else if(ai===6){ah.$set(new $Int64(ae.$high,ae.$low));}else if(ai===8){ah.$set((ae.$low<<24>>>24));}else if(ai===9){ah.$set((ae.$low<<16>>>16));}else if(ai===7||ai===10||ai===12){ah.$set((ae.$low>>>0));}else if(ai===11){ah.$set(ae);}return new CT.Ptr(ag,ah,(((ad|64)>>>0)|(ag.Kind()>>>0))>>>0);};Y=function(ad,ae,af){ad.$set(ae.$get());};AC=function(ad,ae,af){var ag,ah;ag=af.$get();if(!(ag.$key===undefined)){ag=ag.$key();}ah=ae[$externalize($internalize(ag,$String),$String)];if(ah===undefined){return 0;}return $newDataPointer(ah.v,H(BW(ad.Elem())));};AD=function(ad,ae,af,ag){var ah,ai,aj,ak,al,am;ah=af.$get();ai=ah;if(!(ai.$key===undefined)){ai=ai.$key();}aj=ag.$get();ak=ad.Elem();if(ak.Kind()===25){al=H(ak).zero();K(al,aj,ak);aj=al;}am=new($global.Object)();am.k=ah;am.v=aj;ae[$externalize($internalize(ai,$String),$String)]=am;};AE=function(ad,ae,af){var ag;ag=af.$get();if(!(ag.$key===undefined)){ag=ag.$key();}delete ae[$externalize($internalize(ag,$String),$String)];};AG=function(ad,ae){return new AF.Ptr(ad,ae,$keys(ae),0);};AH=function(ad){var ae,af;ae=ad;af=ae.keys[ae.i];return $newDataPointer(ae.m[$externalize($internalize(af,$String),$String)].k,H(BW(ae.t.Key())));};AI=function(ad){var ae;ae=ad;ae.i=ae.i+(1)>>0;};AJ=function(ad){return $parseInt($keys(ad).length);};AK=function(ad,ae){var af,ag,ah,ai,aj;ad=ad;af=ad.object();if(af===H(ad.typ).nil){return L(ae,H(ae).nil,ad.flag);}ag=null;ah=ae.Kind();ai=ah;switch(0){default:if(ai===18){ag=new(H(ae))();}else if(ai===23){aj=new(H(ae))(af.$array);aj.$offset=af.$offset;aj.$length=af.$length;aj.$capacity=af.$capacity;ag=$newDataPointer(aj,H(BW(ae)));}else if(ai===22){if(ae.Elem().Kind()===25){if($interfaceIsEqual(ae.Elem(),ad.typ.Elem())){ag=af;break;}ag=new(H(ae))();K(ag,af,ae.Elem());break;}ag=new(H(ae))(af.$get,af.$set);}else if(ai===25){ag=new(H(ae).Ptr)();K(ag,af,ae);}else if(ai===17||ai===19||ai===20||ai===21||ai===24){ag=ad.ptr;}else{$panic(new CX.Ptr("reflect.Convert",ah));}}return new CT.Ptr(ae.common(),ag,(((ad.flag&96)>>>0)|(ae.Kind()>>>0))>>>0);};AM=function(ad,ae,af){var ag=FF.nil,ah=FF.nil,ai=0,aj,ak,al,am,an,ao,ap,aq,ar;ae=ae;aj="";if(ae.typ.Kind()===20){ak=ae.typ.interfaceType;if(af<0||af>=ak.methods.$length){$panic(new $String("reflect: internal error: invalid method index"));}am=(al=ak.methods,((af<0||af>=al.$length)?$throwRuntimeError("index out of range"):al.$array[al.$offset+af]));if(!($pointerIsEqual(am.pkgPath,FR.nil))){$panic(new $String("reflect: "+ad+" of unexported method"));}an=$clone(ae.ptr,CZ);if(an.itab===GA.nil){$panic(new $String("reflect: "+ad+" of method on nil interface value"));}ah=am.typ;aj=am.name.$get();}else{ao=ae.typ.uncommonType.uncommon();if(ao===FS.nil||af<0||af>=ao.methods.$length){$panic(new $String("reflect: internal error: invalid method index"));}aq=(ap=ao.methods,((af<0||af>=ap.$length)?$throwRuntimeError("index out of range"):ap.$array[ap.$offset+af]));if(!($pointerIsEqual(aq.pkgPath,FR.nil))){$panic(new $String("reflect: "+ad+" of unexported method"));}ah=aq.mtyp;aj=$internalize(H(ae.typ).methods[af][0],$String);}ar=ae.object();if(J(ae.typ)){ar=new(H(ae.typ))(ar);}ai=ar[$externalize(aj,$String)];return[ag,ah,ai];};AN=function(ad,ae){ad=ad;if(ad.flag===0){$panic(new CX.Ptr("reflect.Value.Interface",0));}if(ae&&!((((ad.flag&32)>>>0)===0))){$panic(new $String("reflect.Value.Interface: cannot return value obtained from unexported field or method"));}if(!((((ad.flag&256)>>>0)===0))){ad=AQ("Interface",ad);}if(J(ad.typ)){return new(H(ad.typ))(ad.object());}return ad.object();};AO=function(ad,ae,af){af.$set(ae);};AP=function(){return"?FIXME?";};AQ=function(ad,ae){var af,ag,ah,ai;ae=ae;if(((ae.flag&256)>>>0)===0){$panic(new $String("reflect: internal error: invalid use of makePartialFunc"));}af=AM(ad,ae,(ae.flag>>0)>>9>>0);ag=af[2];ah=ae.object();if(J(ae.typ)){ah=new(H(ae.typ))(ah);}ai=(function(){return ag.apply(ah,$externalize(new($sliceType(B.Object))($global.Array.prototype.slice.call(arguments,[])),GB));});return new CT.Ptr(ae.Type().common(),ai,(((ae.flag&32)>>>0)|19)>>>0);};BB.Ptr.prototype.pointers=function(){var ad,ae;ad=this;ae=ad.Kind();if(ae===22||ae===21||ae===18||ae===19||ae===25||ae===17){return true;}else{return false;}};BB.prototype.pointers=function(){return this.$val.pointers();};BB.Ptr.prototype.Comparable=function(){var ad,ae,af;ad=this;ae=ad.Kind();if(ae===19||ae===23||ae===21){return false;}else if(ae===17){return ad.Elem().Comparable();}else if(ae===25){af=0;while(af>0;}}return true;};BB.prototype.Comparable=function(){return this.$val.Comparable();};BE.Ptr.prototype.Method=function(ad){var ae=new BQ.Ptr(),af,ag,ah,ai,aj,ak,al;af=this;if(af===FS.nil||ad<0||ad>=af.methods.$length){$panic(new $String("reflect: Method index out of range"));}ah=(ag=af.methods,((ad<0||ad>=ag.$length)?$throwRuntimeError("index out of range"):ag.$array[ag.$offset+ad]));if(!($pointerIsEqual(ah.name,FR.nil))){ae.Name=ah.name.$get();}ai=19;if(!($pointerIsEqual(ah.pkgPath,FR.nil))){ae.PkgPath=ah.pkgPath.$get();ai=(ai|(32))>>>0;}aj=ah.typ;ae.Type=aj;ak=$internalize(af.jsType.methods[ad][0],$String);al=(function(al){return al[$externalize(ak,$String)].apply(al,$externalize($subslice(new($sliceType(B.Object))($global.Array.prototype.slice.call(arguments,[])),1),GB));});ae.Func=new CT.Ptr(aj,al,ai);ae.Index=ad;return ae;};BE.prototype.Method=function(ad){return this.$val.Method(ad);};CT.Ptr.prototype.object=function(){var ad,ae,af,ag;ad=this;if((ad.typ.Kind()===17)||(ad.typ.Kind()===25)){return ad.ptr;}if(!((((ad.flag&64)>>>0)===0))){ae=ad.ptr.$get();if(!(ae===$ifaceNil)&&!(ae.constructor===H(ad.typ))){af=ad.typ.Kind();switch(0){default:if(af===11||af===6){ae=new(H(ad.typ))(ae.$high,ae.$low);}else if(af===15||af===16){ae=new(H(ad.typ))(ae.$real,ae.$imag);}else if(af===23){if(ae===ae.constructor.nil){ae=H(ad.typ).nil;break;}ag=new(H(ad.typ))(ae.$array);ag.$offset=ae.$offset;ag.$length=ae.$length;ag.$capacity=ae.$capacity;ae=ag;}}}return ae;}return ad.ptr;};CT.prototype.object=function(){return this.$val.object();};CT.Ptr.prototype.call=function(ad,ae){var af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo;af=this;ag=af.typ;ah=0;ai=null;if(!((((af.flag&256)>>>0)===0))){aj=AM(ad,af,(af.flag>>0)>>9>>0);ag=aj[1];ah=aj[2];ai=af.object();if(J(af.typ)){ai=new(H(af.typ))(ai);}}else{ah=af.object();}if(ah===0){$panic(new $String("reflect.Value.Call: call of nil function"));}ak=ad==="CallSlice";al=ag.NumIn();if(ak){if(!ag.IsVariadic()){$panic(new $String("reflect: CallSlice of non-variadic function"));}if(ae.$lengthal){$panic(new $String("reflect: CallSlice with too many input arguments"));}}else{if(ag.IsVariadic()){al=al-(1)>>0;}if(ae.$lengthal){$panic(new $String("reflect: Call with too many input arguments"));}}am=ae;an=0;while(an=am.$length)?$throwRuntimeError("index out of range"):am.$array[am.$offset+an]);if(ao.Kind()===0){$panic(new $String("reflect: "+ad+" using zero Value argument"));}an++;}ap=0;while(ap=ae.$length)?$throwRuntimeError("index out of range"):ae.$array[ae.$offset+ap]).Type();ar=ag.In(ap);as=aq;at=ar;if(!as.AssignableTo(at)){$panic(new $String("reflect: "+ad+" using "+as.String()+" as type "+at.String()));}ap=ap+(1)>>0;}if(!ak&&ag.IsVariadic()){au=ae.$length-al>>0;av=M(ag.In(al),au,au);aw=ag.In(al).Elem();ax=0;while(ax>0,((ay<0||ay>=ae.$length)?$throwRuntimeError("index out of range"):ae.$array[ae.$offset+ay]));ba=az.Type();if(!ba.AssignableTo(aw)){$panic(new $String("reflect: cannot use "+ba.String()+" as type "+aw.String()+" in "+ad));}av.Index(ax).Set(az);ax=ax+(1)>>0;}bb=ae;ae=FX.make((al+1>>0));$copySlice($subslice(ae,0,al),bb);(al<0||al>=ae.$length)?$throwRuntimeError("index out of range"):ae.$array[ae.$offset+al]=av;}bc=ae.$length;if(!((bc===ag.NumIn()))){$panic(new $String("reflect.Value.Call: wrong argument count"));}bd=ag.NumOut();be=new($global.Array)(ag.NumIn());bf=ae;bg=0;while(bg=bf.$length)?$throwRuntimeError("index out of range"):bf.$array[bf.$offset+bg]);be[bh]=bi.assignTo("reflect.Value.Call",ag.In(bh).common(),0).object();bg++;}bj=ah.apply(ai,be);bk=bd;if(bk===0){return FX.nil;}else if(bk===1){return new FX([$clone(L(ag.Out(0),bj,0),CT)]);}else{bl=FX.make(bd);bm=bl;bn=0;while(bn=bl.$length)?$throwRuntimeError("index out of range"):bl.$array[bl.$offset+bo]=L(ag.Out(bo),bj[bo],0);bn++;}return bl;}};CT.prototype.call=function(ad,ae){return this.$val.call(ad,ae);};CT.Ptr.prototype.Cap=function(){var ad,ae,af;ad=this;ae=new CU(ad.flag).kind();af=ae;if(af===17){return ad.typ.Len();}else if(af===18||af===23){return $parseInt(ad.object().$capacity)>>0;}$panic(new CX.Ptr("reflect.Value.Cap",ae));};CT.prototype.Cap=function(){return this.$val.Cap();};CT.Ptr.prototype.Elem=function(){var ad,ae,af,ag,ah,ai,aj,ak;ad=this;ae=new CU(ad.flag).kind();af=ae;if(af===20){ag=ad.object();if(ag===$ifaceNil){return new CT.Ptr(FF.nil,0,0);}ah=I(ag.constructor);return L(ah,ag.$val,(ad.flag&32)>>>0);}else if(af===22){if(ad.IsNil()){return new CT.Ptr(FF.nil,0,0);}ai=ad.object();aj=ad.typ.ptrType;ak=(((((ad.flag&32)>>>0)|64)>>>0)|128)>>>0;ak=(ak|((aj.elem.Kind()>>>0)))>>>0;return new CT.Ptr(aj.elem,ai,ak);}else{$panic(new CX.Ptr("reflect.Value.Elem",ae));}};CT.prototype.Elem=function(){return this.$val.Elem();};CT.Ptr.prototype.Field=function(ad){var ae,af,ag,ah,ai,aj,ak,al;ae=this;new CU(ae.flag).mustBe(25);af=ae.typ.structType;if(ad<0||ad>=af.fields.$length){$panic(new $String("reflect: Field index out of range"));}ah=(ag=af.fields,((ad<0||ad>=ag.$length)?$throwRuntimeError("index out of range"):ag.$array[ag.$offset+ad]));ai=$internalize(H(ae.typ).fields[ad][0],$String);aj=ah.typ;ak=(ae.flag&224)>>>0;if(!($pointerIsEqual(ah.pkgPath,FR.nil))){ak=(ak|(32))>>>0;}ak=(ak|((aj.Kind()>>>0)))>>>0;al=ae.ptr;if(!((((ak&64)>>>0)===0))&&!((aj.Kind()===17))&&!((aj.Kind()===25))){return new CT.Ptr(aj,new(H(BW(aj)))((function(){return al[$externalize(ai,$String)];}),(function(am){al[$externalize(ai,$String)]=am;})),ak);}return L(aj,al[$externalize(ai,$String)],ak);};CT.prototype.Field=function(ad){return this.$val.Field(ad);};CT.Ptr.prototype.Index=function(ad){var ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as;ae=this;af=new CU(ae.flag).kind();ag=af;if(ag===17){ah=ae.typ.arrayType;if(ad<0||ad>(ah.len>>0)){$panic(new $String("reflect: array index out of range"));}ai=ah.elem;aj=(ae.flag&224)>>>0;aj=(aj|((ai.Kind()>>>0)))>>>0;ak=ae.ptr;if(!((((aj&64)>>>0)===0))&&!((ai.Kind()===17))&&!((ai.Kind()===25))){return new CT.Ptr(ai,new(H(BW(ai)))((function(){return ak[ad];}),(function(al){ak[ad]=al;})),aj);}return L(ai,ak[ad],aj);}else if(ag===23){al=ae.object();if(ad<0||ad>=($parseInt(al.$length)>>0)){$panic(new $String("reflect: slice index out of range"));}am=ae.typ.sliceType;an=am.elem;ao=(192|((ae.flag&32)>>>0))>>>0;ao=(ao|((an.Kind()>>>0)))>>>0;ad=ad+(($parseInt(al.$offset)>>0))>>0;ap=al.$array;if(!((((ao&64)>>>0)===0))&&!((an.Kind()===17))&&!((an.Kind()===25))){return new CT.Ptr(an,new(H(BW(an)))((function(){return ap[ad];}),(function(aq){ap[ad]=aq;})),ao);}return L(an,ap[ad],ao);}else if(ag===24){aq=ae.ptr.$get();if(ad<0||ad>=aq.length){$panic(new $String("reflect: string index out of range"));}ar=(((ae.flag&32)>>>0)|8)>>>0;as=aq.charCodeAt(ad);return new CT.Ptr(DG,new GC(function(){return as;},function($v){as=$v;}),(ar|64)>>>0);}else{$panic(new CX.Ptr("reflect.Value.Index",af));}};CT.prototype.Index=function(ad){return this.$val.Index(ad);};CT.Ptr.prototype.IsNil=function(){var ad,ae,af;ad=this;ae=new CU(ad.flag).kind();af=ae;if(af===18||af===22||af===23){return ad.object()===H(ad.typ).nil;}else if(af===19){return ad.object()===$throwNilPointerError;}else if(af===21){return ad.object()===false;}else if(af===20){return ad.object()===$ifaceNil;}else{$panic(new CX.Ptr("reflect.Value.IsNil",ae));}};CT.prototype.IsNil=function(){return this.$val.IsNil();};CT.Ptr.prototype.Len=function(){var ad,ae,af;ad=this;ae=new CU(ad.flag).kind();af=ae;if(af===17||af===24){return $parseInt(ad.object().length);}else if(af===23){return $parseInt(ad.object().$length)>>0;}else if(af===18){return $parseInt(ad.object().$buffer.length)>>0;}else if(af===21){return $parseInt($keys(ad.object()).length);}else{$panic(new CX.Ptr("reflect.Value.Len",ae));}};CT.prototype.Len=function(){return this.$val.Len();};CT.Ptr.prototype.Pointer=function(){var ad,ae,af;ad=this;ae=new CU(ad.flag).kind();af=ae;if(af===18||af===21||af===22||af===26){if(ad.IsNil()){return 0;}return ad.object();}else if(af===19){if(ad.IsNil()){return 0;}return 1;}else if(af===23){if(ad.IsNil()){return 0;}return ad.object().$array;}else{$panic(new CX.Ptr("reflect.Value.Pointer",ae));}};CT.prototype.Pointer=function(){return this.$val.Pointer();};CT.Ptr.prototype.Set=function(ad){var ae,af;ae=this;ad=ad;new CU(ae.flag).mustBeAssignable();new CU(ad.flag).mustBeExported();ad=ad.assignTo("reflect.Set",ae.typ,0);if(!((((ae.flag&64)>>>0)===0))){af=ae.typ.Kind();if(af===17){$copy(ae.ptr,ad.ptr,H(ae.typ));}else if(af===20){ae.ptr.$set(AN(ad,false));}else if(af===25){K(ae.ptr,ad.ptr,ae.typ);}else{ae.ptr.$set(ad.object());}return;}ae.ptr=ad.ptr;};CT.prototype.Set=function(ad){return this.$val.Set(ad);};CT.Ptr.prototype.SetCap=function(ad){var ae,af,ag;ae=this;new CU(ae.flag).mustBeAssignable();new CU(ae.flag).mustBe(23);af=ae.ptr.$get();if(ad<($parseInt(af.$length)>>0)||ad>($parseInt(af.$capacity)>>0)){$panic(new $String("reflect: slice capacity out of range in SetCap"));}ag=new(H(ae.typ))(af.$array);ag.$offset=af.$offset;ag.$length=af.$length;ag.$capacity=ad;ae.ptr.$set(ag);};CT.prototype.SetCap=function(ad){return this.$val.SetCap(ad);};CT.Ptr.prototype.SetLen=function(ad){var ae,af,ag;ae=this;new CU(ae.flag).mustBeAssignable();new CU(ae.flag).mustBe(23);af=ae.ptr.$get();if(ad<0||ad>($parseInt(af.$capacity)>>0)){$panic(new $String("reflect: slice length out of range in SetLen"));}ag=new(H(ae.typ))(af.$array);ag.$offset=af.$offset;ag.$length=ad;ag.$capacity=af.$capacity;ae.ptr.$set(ag);};CT.prototype.SetLen=function(ad){return this.$val.SetLen(ad);};CT.Ptr.prototype.Slice=function(ad,ae){var af,ag,ah,ai,aj,ak,al,am;af=this;ag=0;ah=$ifaceNil;ai=null;aj=new CU(af.flag).kind();ak=aj;if(ak===17){if(((af.flag&128)>>>0)===0){$panic(new $String("reflect.Value.Slice: slice of unaddressable array"));}al=af.typ.arrayType;ag=(al.len>>0);ah=T(al.elem);ai=new(H(ah))(af.object());}else if(ak===23){ah=af.typ;ai=af.object();ag=$parseInt(ai.$capacity)>>0;}else if(ak===24){am=af.ptr.$get();if(ad<0||aeam.length){$panic(new $String("reflect.Value.Slice: string slice index out of bounds"));}return P(new $String(am.substring(ad,ae)));}else{$panic(new CX.Ptr("reflect.Value.Slice",aj));}if(ad<0||aeag){$panic(new $String("reflect.Value.Slice: slice index out of bounds"));}return L(ah,$subslice(ai,ad,ae),(af.flag&32)>>>0);};CT.prototype.Slice=function(ad,ae){return this.$val.Slice(ad,ae);};CT.Ptr.prototype.Slice3=function(ad,ae,af){var ag,ah,ai,aj,ak,al,am;ag=this;ah=0;ai=$ifaceNil;aj=null;ak=new CU(ag.flag).kind();al=ak;if(al===17){if(((ag.flag&128)>>>0)===0){$panic(new $String("reflect.Value.Slice: slice of unaddressable array"));}am=ag.typ.arrayType;ah=(am.len>>0);ai=T(am.elem);aj=new(H(ai))(ag.object());}else if(al===23){ai=ag.typ;aj=ag.object();ah=$parseInt(aj.$capacity)>>0;}else{$panic(new CX.Ptr("reflect.Value.Slice3",ak));}if(ad<0||aeah){$panic(new $String("reflect.Value.Slice3: slice index out of bounds"));}return L(ai,$subslice(aj,ad,ae,af),(ag.flag&32)>>>0);};CT.prototype.Slice3=function(ad,ae,af){return this.$val.Slice3(ad,ae,af);};CT.Ptr.prototype.Close=function(){var ad;ad=this;new CU(ad.flag).mustBe(18);new CU(ad.flag).mustBeExported();$close(ad.object());};CT.prototype.Close=function(){return this.$val.Close();};CT.Ptr.prototype.TrySend=function(ad){var ae,af,ag;ae=this;ad=ad;new CU(ae.flag).mustBe(18);new CU(ae.flag).mustBeExported();af=ae.typ.chanType;if(((af.dir>>0)&2)===0){$panic(new $String("reflect: send on recv-only channel"));}new CU(ad.flag).mustBeExported();ag=ae.object();if(!!!(ag.$closed)&&($parseInt(ag.$recvQueue.length)===0)&&($parseInt(ag.$buffer.length)===($parseInt(ag.$capacity)>>0))){return false;}ad=ad.assignTo("reflect.Value.Send",af.elem,0);$send(ag,ad.object());return true;};CT.prototype.TrySend=function(ad){return this.$val.TrySend(ad);};CT.Ptr.prototype.Send=function(ad){var ae;ae=this;ad=ad;$panic(new A.NotSupportedError.Ptr("reflect.Value.Send, use reflect.Value.TrySend is possible"));};CT.prototype.Send=function(ad){return this.$val.Send(ad);};CT.Ptr.prototype.TryRecv=function(){var ad=new CT.Ptr(),ae=false,af,ag,ah,ai,aj,ak,al;af=this;new CU(af.flag).mustBe(18);new CU(af.flag).mustBeExported();ag=af.typ.chanType;if(((ag.dir>>0)&1)===0){$panic(new $String("reflect: recv on send-only channel"));}ah=$recv(af.object());if(ah.constructor===$global.Function){ai=new CT.Ptr(FF.nil,0,0);aj=false;ad=ai;ae=aj;return[ad,ae];}ak=L(ag.elem,ah[0],0);al=!!(ah[1]);ad=ak;ae=al;return[ad,ae];};CT.prototype.TryRecv=function(){return this.$val.TryRecv();};CT.Ptr.prototype.Recv=function(){var ad=new CT.Ptr(),ae=false,af;af=this;$panic(new A.NotSupportedError.Ptr("reflect.Value.Recv, use reflect.Value.TryRecv is possible"));};CT.prototype.Recv=function(){return this.$val.Recv();};BA.prototype.String=function(){var ad;ad=this.$val!==undefined?this.$val:this;if((ad>>0)=BR.$length)?$throwRuntimeError("index out of range"):BR.$array[BR.$offset+ad]);}return"kind"+C.Itoa((ad>>0));};$ptrType(BA).prototype.String=function(){return new BA(this.$get()).String();};BE.Ptr.prototype.uncommon=function(){var ad;ad=this;return ad;};BE.prototype.uncommon=function(){return this.$val.uncommon();};BE.Ptr.prototype.PkgPath=function(){var ad;ad=this;if(ad===FS.nil||$pointerIsEqual(ad.pkgPath,FR.nil)){return"";}return ad.pkgPath.$get();};BE.prototype.PkgPath=function(){return this.$val.PkgPath();};BE.Ptr.prototype.Name=function(){var ad;ad=this;if(ad===FS.nil||$pointerIsEqual(ad.name,FR.nil)){return"";}return ad.name.$get();};BE.prototype.Name=function(){return this.$val.Name();};BB.Ptr.prototype.String=function(){var ad;ad=this;return ad.string.$get();};BB.prototype.String=function(){return this.$val.String();};BB.Ptr.prototype.Size=function(){var ad;ad=this;return ad.size;};BB.prototype.Size=function(){return this.$val.Size();};BB.Ptr.prototype.Bits=function(){var ad,ae;ad=this;if(ad===FF.nil){$panic(new $String("reflect: Bits of nil Type"));}ae=ad.Kind();if(ae<2||ae>16){$panic(new $String("reflect: Bits of non-arithmetic Type "+ad.String()));}return(ad.size>>0)*8>>0;};BB.prototype.Bits=function(){return this.$val.Bits();};BB.Ptr.prototype.Align=function(){var ad;ad=this;return(ad.align>>0);};BB.prototype.Align=function(){return this.$val.Align();};BB.Ptr.prototype.FieldAlign=function(){var ad;ad=this;return(ad.fieldAlign>>0);};BB.prototype.FieldAlign=function(){return this.$val.FieldAlign();};BB.Ptr.prototype.Kind=function(){var ad;ad=this;return(((ad.kind&31)>>>0)>>>0);};BB.prototype.Kind=function(){return this.$val.Kind();};BB.Ptr.prototype.common=function(){var ad;ad=this;return ad;};BB.prototype.common=function(){return this.$val.common();};BE.Ptr.prototype.NumMethod=function(){var ad;ad=this;if(ad===FS.nil){return 0;}return ad.methods.$length;};BE.prototype.NumMethod=function(){return this.$val.NumMethod();};BE.Ptr.prototype.MethodByName=function(ad){var ae=new BQ.Ptr(),af=false,ag,ah,ai,aj,ak,al,am,an;ag=this;if(ag===FS.nil){return[ae,af];}ah=GE.nil;ai=ag.methods;aj=0;while(aj=al.$length)?$throwRuntimeError("index out of range"):al.$array[al.$offset+ak]));if(!($pointerIsEqual(ah.name,FR.nil))&&ah.name.$get()===ad){am=$clone(ag.Method(ak),BQ);an=true;$copy(ae,am,BQ);af=an;return[ae,af];}aj++;}return[ae,af];};BE.prototype.MethodByName=function(ad){return this.$val.MethodByName(ad);};BB.Ptr.prototype.NumMethod=function(){var ad,ae;ad=this;if(ad.Kind()===20){ae=ad.interfaceType;return ae.NumMethod();}return ad.uncommonType.NumMethod();};BB.prototype.NumMethod=function(){return this.$val.NumMethod();};BB.Ptr.prototype.Method=function(ad){var ae=new BQ.Ptr(),af,ag;af=this;if(af.Kind()===20){ag=af.interfaceType;$copy(ae,ag.Method(ad),BQ);return ae;}$copy(ae,af.uncommonType.Method(ad),BQ);return ae;};BB.prototype.Method=function(ad){return this.$val.Method(ad);};BB.Ptr.prototype.MethodByName=function(ad){var ae=new BQ.Ptr(),af=false,ag,ah,ai,aj;ag=this;if(ag.Kind()===20){ah=ag.interfaceType;ai=ah.MethodByName(ad);$copy(ae,ai[0],BQ);af=ai[1];return[ae,af];}aj=ag.uncommonType.MethodByName(ad);$copy(ae,aj[0],BQ);af=aj[1];return[ae,af];};BB.prototype.MethodByName=function(ad){return this.$val.MethodByName(ad);};BB.Ptr.prototype.PkgPath=function(){var ad;ad=this;return ad.uncommonType.PkgPath();};BB.prototype.PkgPath=function(){return this.$val.PkgPath();};BB.Ptr.prototype.Name=function(){var ad;ad=this;return ad.uncommonType.Name();};BB.prototype.Name=function(){return this.$val.Name();};BB.Ptr.prototype.ChanDir=function(){var ad,ae;ad=this;if(!((ad.Kind()===18))){$panic(new $String("reflect: ChanDir of non-chan type"));}ae=ad.chanType;return(ae.dir>>0);};BB.prototype.ChanDir=function(){return this.$val.ChanDir();};BB.Ptr.prototype.IsVariadic=function(){var ad,ae;ad=this;if(!((ad.Kind()===19))){$panic(new $String("reflect: IsVariadic of non-func type"));}ae=ad.funcType;return ae.dotdotdot;};BB.prototype.IsVariadic=function(){return this.$val.IsVariadic();};BB.Ptr.prototype.Elem=function(){var ad,ae,af,ag,ah,ai,aj;ad=this;ae=ad.Kind();if(ae===17){af=ad.arrayType;return CL(af.elem);}else if(ae===18){ag=ad.chanType;return CL(ag.elem);}else if(ae===21){ah=ad.mapType;return CL(ah.elem);}else if(ae===22){ai=ad.ptrType;return CL(ai.elem);}else if(ae===23){aj=ad.sliceType;return CL(aj.elem);}$panic(new $String("reflect: Elem of invalid type"));};BB.prototype.Elem=function(){return this.$val.Elem();};BB.Ptr.prototype.Field=function(ad){var ae,af;ae=this;if(!((ae.Kind()===25))){$panic(new $String("reflect: Field of non-struct type"));}af=ae.structType;return af.Field(ad);};BB.prototype.Field=function(ad){return this.$val.Field(ad);};BB.Ptr.prototype.FieldByIndex=function(ad){var ae,af;ae=this;if(!((ae.Kind()===25))){$panic(new $String("reflect: FieldByIndex of non-struct type"));}af=ae.structType;return af.FieldByIndex(ad);};BB.prototype.FieldByIndex=function(ad){return this.$val.FieldByIndex(ad);};BB.Ptr.prototype.FieldByName=function(ad){var ae,af;ae=this;if(!((ae.Kind()===25))){$panic(new $String("reflect: FieldByName of non-struct type"));}af=ae.structType;return af.FieldByName(ad);};BB.prototype.FieldByName=function(ad){return this.$val.FieldByName(ad);};BB.Ptr.prototype.FieldByNameFunc=function(ad){var ae,af;ae=this;if(!((ae.Kind()===25))){$panic(new $String("reflect: FieldByNameFunc of non-struct type"));}af=ae.structType;return af.FieldByNameFunc(ad);};BB.prototype.FieldByNameFunc=function(ad){return this.$val.FieldByNameFunc(ad);};BB.Ptr.prototype.In=function(ad){var ae,af,ag;ae=this;if(!((ae.Kind()===19))){$panic(new $String("reflect: In of non-func type"));}af=ae.funcType;return CL((ag=af.in$2,((ad<0||ad>=ag.$length)?$throwRuntimeError("index out of range"):ag.$array[ag.$offset+ad])));};BB.prototype.In=function(ad){return this.$val.In(ad);};BB.Ptr.prototype.Key=function(){var ad,ae;ad=this;if(!((ad.Kind()===21))){$panic(new $String("reflect: Key of non-map type"));}ae=ad.mapType;return CL(ae.key);};BB.prototype.Key=function(){return this.$val.Key();};BB.Ptr.prototype.Len=function(){var ad,ae;ad=this;if(!((ad.Kind()===17))){$panic(new $String("reflect: Len of non-array type"));}ae=ad.arrayType;return(ae.len>>0);};BB.prototype.Len=function(){return this.$val.Len();};BB.Ptr.prototype.NumField=function(){var ad,ae;ad=this;if(!((ad.Kind()===25))){$panic(new $String("reflect: NumField of non-struct type"));}ae=ad.structType;return ae.fields.$length;};BB.prototype.NumField=function(){return this.$val.NumField();};BB.Ptr.prototype.NumIn=function(){var ad,ae;ad=this;if(!((ad.Kind()===19))){$panic(new $String("reflect: NumIn of non-func type"));}ae=ad.funcType;return ae.in$2.$length;};BB.prototype.NumIn=function(){return this.$val.NumIn();};BB.Ptr.prototype.NumOut=function(){var ad,ae;ad=this;if(!((ad.Kind()===19))){$panic(new $String("reflect: NumOut of non-func type"));}ae=ad.funcType;return ae.out.$length;};BB.prototype.NumOut=function(){return this.$val.NumOut();};BB.Ptr.prototype.Out=function(ad){var ae,af,ag;ae=this;if(!((ae.Kind()===19))){$panic(new $String("reflect: Out of non-func type"));}af=ae.funcType;return CL((ag=af.out,((ad<0||ad>=ag.$length)?$throwRuntimeError("index out of range"):ag.$array[ag.$offset+ad])));};BB.prototype.Out=function(ad){return this.$val.Out(ad);};BF.prototype.String=function(){var ad,ae;ad=this.$val!==undefined?this.$val:this;ae=ad;if(ae===2){return"chan<-";}else if(ae===1){return"<-chan";}else if(ae===3){return"chan";}return"ChanDir"+C.Itoa((ad>>0));};$ptrType(BF).prototype.String=function(){return new BF(this.$get()).String();};BK.Ptr.prototype.Method=function(ad){var ae=new BQ.Ptr(),af,ag,ah;af=this;if(ad<0||ad>=af.methods.$length){return ae;}ah=(ag=af.methods,((ad<0||ad>=ag.$length)?$throwRuntimeError("index out of range"):ag.$array[ag.$offset+ad]));ae.Name=ah.name.$get();if(!($pointerIsEqual(ah.pkgPath,FR.nil))){ae.PkgPath=ah.pkgPath.$get();}ae.Type=CL(ah.typ);ae.Index=ad;return ae;};BK.prototype.Method=function(ad){return this.$val.Method(ad);};BK.Ptr.prototype.NumMethod=function(){var ad;ad=this;return ad.methods.$length;};BK.prototype.NumMethod=function(){return this.$val.NumMethod();};BK.Ptr.prototype.MethodByName=function(ad){var ae=new BQ.Ptr(),af=false,ag,ah,ai,aj,ak,al,am,an;ag=this;if(ag===GF.nil){return[ae,af];}ah=GG.nil;ai=ag.methods;aj=0;while(aj=al.$length)?$throwRuntimeError("index out of range"):al.$array[al.$offset+ak]));if(ah.name.$get()===ad){am=$clone(ag.Method(ak),BQ);an=true;$copy(ae,am,BQ);af=an;return[ae,af];}aj++;}return[ae,af];};BK.prototype.MethodByName=function(ad){return this.$val.MethodByName(ad);};BT.prototype.Get=function(ad){var ae,af,ag,ah,ai,aj;ae=this.$val!==undefined?this.$val:this;while(!(ae==="")){af=0;while(af>0;}ae=ae.substring(af);if(ae===""){break;}af=0;while(af>0;}if((af+1>>0)>=ae.length||!((ae.charCodeAt(af)===58))||!((ae.charCodeAt((af+1>>0))===34))){break;}ag=ae.substring(0,af);ae=ae.substring((af+1>>0));af=1;while(af>0;}af=af+(1)>>0;}if(af>=ae.length){break;}ah=ae.substring(0,(af+1>>0));ae=ae.substring((af+1>>0));if(ad===ag){ai=C.Unquote(ah);aj=ai[0];return aj;}}return"";};$ptrType(BT).prototype.Get=function(ad){return new BT(this.$get()).Get(ad);};BP.Ptr.prototype.Field=function(ad){var ae=new BS.Ptr(),af,ag,ah,ai;af=this;if(ad<0||ad>=af.fields.$length){return ae;}ah=(ag=af.fields,((ad<0||ad>=ag.$length)?$throwRuntimeError("index out of range"):ag.$array[ag.$offset+ad]));ae.Type=CL(ah.typ);if(!($pointerIsEqual(ah.name,FR.nil))){ae.Name=ah.name.$get();}else{ai=ae.Type;if(ai.Kind()===22){ai=ai.Elem();}ae.Name=ai.Name();ae.Anonymous=true;}if(!($pointerIsEqual(ah.pkgPath,FR.nil))){ae.PkgPath=ah.pkgPath.$get();}if(!($pointerIsEqual(ah.tag,FR.nil))){ae.Tag=ah.tag.$get();}ae.Offset=ah.offset;ae.Index=new GH([ad]);return ae;};BP.prototype.Field=function(ad){return this.$val.Field(ad);};BP.Ptr.prototype.FieldByIndex=function(ad){var ae=new BS.Ptr(),af,ag,ah,ai,aj,ak;af=this;ae.Type=CL(af.rtype);ag=ad;ah=0;while(ah=ag.$length)?$throwRuntimeError("index out of range"):ag.$array[ag.$offset+ah]);if(ai>0){ak=ae.Type;if((ak.Kind()===22)&&(ak.Elem().Kind()===25)){ak=ak.Elem();}ae.Type=ak;}$copy(ae,ae.Type.Field(aj),BS);ah++;}return ae;};BP.prototype.FieldByIndex=function(ad){return this.$val.FieldByIndex(ad);};BP.Ptr.prototype.FieldByNameFunc=function(ad){var ae=new BS.Ptr(),af=false,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo;ag=this;ah=new GI([]);ai=new GI([new BU.Ptr(ag,GH.nil)]);aj=false;ak=(al=new $Map(),al);while(ai.$length>0){an=ai;ao=$subslice(ah,0,0);ah=an;ai=ao;ap=aj;aj=false;aq=ah;ar=0;while(ar=aq.$length)?$throwRuntimeError("index out of range"):aq.$array[aq.$offset+ar]),BU);at=as.typ;if((au=ak[at.$key()],au!==undefined?au.v:false)){ar++;continue;}av=at;(ak||$throwRuntimeError("assignment to entry in nil map"))[av.$key()]={k:av,v:true};aw=at.fields;ax=0;while(ax=az.$length)?$throwRuntimeError("index out of range"):az.$array[az.$offset+ay]));bb="";bc=FF.nil;if(!($pointerIsEqual(ba.name,FR.nil))){bb=ba.name.$get();}else{bc=ba.typ;if(bc.Kind()===22){bc=bc.Elem().common();}bb=bc.Name();}if(ad(bb)){if((bd=ap[at.$key()],bd!==undefined?bd.v:0)>1||af){be=new BS.Ptr("","",$ifaceNil,"",0,GH.nil,false);bf=false;$copy(ae,be,BS);af=bf;return[ae,af];}$copy(ae,at.Field(ay),BS);ae.Index=GH.nil;ae.Index=$appendSlice(ae.Index,as.index);ae.Index=$append(ae.Index,ay);af=true;ax++;continue;}if(af||bc===FF.nil||!((bc.Kind()===25))){ax++;continue;}bg=bc.structType;if((bh=aj[bg.$key()],bh!==undefined?bh.v:0)>0){bi=bg;(aj||$throwRuntimeError("assignment to entry in nil map"))[bi.$key()]={k:bi,v:2};ax++;continue;}if(aj===false){aj=(bj=new $Map(),bj);}bl=bg;(aj||$throwRuntimeError("assignment to entry in nil map"))[bl.$key()]={k:bl,v:1};if((bm=ap[at.$key()],bm!==undefined?bm.v:0)>1){bn=bg;(aj||$throwRuntimeError("assignment to entry in nil map"))[bn.$key()]={k:bn,v:2};}bo=GH.nil;bo=$appendSlice(bo,as.index);bo=$append(bo,ay);ai=$append(ai,new BU.Ptr(bg,bo));ax++;}ar++;}if(af){break;}}return[ae,af];};BP.prototype.FieldByNameFunc=function(ad){return this.$val.FieldByNameFunc(ad);};BP.Ptr.prototype.FieldByName=function(ad){var ae=new BS.Ptr(),af=false,ag,ah,ai,aj,ak,al,am,an,ao,ap;ag=this;ah=false;if(!(ad==="")){ai=ag.fields;aj=0;while(aj=al.$length)?$throwRuntimeError("index out of range"):al.$array[al.$offset+ak]));if($pointerIsEqual(am.name,FR.nil)){ah=true;aj++;continue;}if(am.name.$get()===ad){an=$clone(ag.Field(ak),BS);ao=true;$copy(ae,an,BS);af=ao;return[ae,af];}aj++;}}if(!ah){return[ae,af];}ap=ag.FieldByNameFunc((function(aq){return aq===ad;}));$copy(ae,ap[0],BS);af=ap[1];return[ae,af];};BP.prototype.FieldByName=function(ad){return this.$val.FieldByName(ad);};BW=$pkg.PtrTo=function(ad){return $assertType(ad,FF).ptrTo();};BB.Ptr.prototype.Implements=function(ad){var ae;ae=this;if($interfaceIsEqual(ad,$ifaceNil)){$panic(new $String("reflect: nil type passed to Type.Implements"));}if(!((ad.Kind()===20))){$panic(new $String("reflect: non-interface type passed to Type.Implements"));}return BY($assertType(ad,FF),ae);};BB.prototype.Implements=function(ad){return this.$val.Implements(ad);};BB.Ptr.prototype.AssignableTo=function(ad){var ae,af;ae=this;if($interfaceIsEqual(ad,$ifaceNil)){$panic(new $String("reflect: nil type passed to Type.AssignableTo"));}af=$assertType(ad,FF);return BZ(af,ae)||BY(af,ae);};BB.prototype.AssignableTo=function(ad){return this.$val.AssignableTo(ad);};BB.Ptr.prototype.ConvertibleTo=function(ad){var ae,af;ae=this;if($interfaceIsEqual(ad,$ifaceNil)){$panic(new $String("reflect: nil type passed to Type.ConvertibleTo"));}af=$assertType(ad,FF);return!(EB(af,ae)===$throwNilPointerError);};BB.prototype.ConvertibleTo=function(ad){return this.$val.ConvertibleTo(ad);};BY=function(ad,ae){var af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at;if(!((ad.Kind()===20))){return false;}af=ad.interfaceType;if(af.methods.$length===0){return true;}if(ae.Kind()===20){ag=ae.interfaceType;ah=0;ai=0;while(ai=aj.$length)?$throwRuntimeError("index out of range"):aj.$array[aj.$offset+ah]));am=(al=ag.methods,((ai<0||ai>=al.$length)?$throwRuntimeError("index out of range"):al.$array[al.$offset+ai]));if($pointerIsEqual(am.name,ak.name)&&$pointerIsEqual(am.pkgPath,ak.pkgPath)&&am.typ===ak.typ){ah=ah+(1)>>0;if(ah>=af.methods.$length){return true;}}ai=ai+(1)>>0;}return false;}an=ae.uncommonType.uncommon();if(an===FS.nil){return false;}ao=0;ap=0;while(ap=aq.$length)?$throwRuntimeError("index out of range"):aq.$array[aq.$offset+ao]));at=(as=an.methods,((ap<0||ap>=as.$length)?$throwRuntimeError("index out of range"):as.$array[as.$offset+ap]));if($pointerIsEqual(at.name,ar.name)&&$pointerIsEqual(at.pkgPath,ar.pkgPath)&&at.mtyp===ar.typ){ao=ao+(1)>>0;if(ao>=af.methods.$length){return true;}}ap=ap+(1)>>0;}return false;};BZ=function(ad,ae){if(ad===ae){return true;}if(!(ad.Name()==="")&&!(ae.Name()==="")||!((ad.Kind()===ae.Kind()))){return false;}return CA(ad,ae);};CA=function(ad,ae){var af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd;if(ad===ae){return true;}af=ad.Kind();if(!((af===ae.Kind()))){return false;}if(1<=af&&af<=16||(af===24)||(af===26)){return true;}ag=af;if(ag===17){return $interfaceIsEqual(ad.Elem(),ae.Elem())&&(ad.Len()===ae.Len());}else if(ag===18){if((ae.ChanDir()===3)&&$interfaceIsEqual(ad.Elem(),ae.Elem())){return true;}return(ae.ChanDir()===ad.ChanDir())&&$interfaceIsEqual(ad.Elem(),ae.Elem());}else if(ag===19){ah=ad.funcType;ai=ae.funcType;if(!(ah.dotdotdot===ai.dotdotdot)||!((ah.in$2.$length===ai.in$2.$length))||!((ah.out.$length===ai.out.$length))){return false;}aj=ah.in$2;ak=0;while(ak=aj.$length)?$throwRuntimeError("index out of range"):aj.$array[aj.$offset+ak]);if(!(am===(an=ai.in$2,((al<0||al>=an.$length)?$throwRuntimeError("index out of range"):an.$array[an.$offset+al])))){return false;}ak++;}ao=ah.out;ap=0;while(ap=ao.$length)?$throwRuntimeError("index out of range"):ao.$array[ao.$offset+ap]);if(!(ar===(as=ai.out,((aq<0||aq>=as.$length)?$throwRuntimeError("index out of range"):as.$array[as.$offset+aq])))){return false;}ap++;}return true;}else if(ag===20){at=ad.interfaceType;au=ae.interfaceType;if((at.methods.$length===0)&&(au.methods.$length===0)){return true;}return false;}else if(ag===21){return $interfaceIsEqual(ad.Key(),ae.Key())&&$interfaceIsEqual(ad.Elem(),ae.Elem());}else if(ag===22||ag===23){return $interfaceIsEqual(ad.Elem(),ae.Elem());}else if(ag===25){av=ad.structType;aw=ae.structType;if(!((av.fields.$length===aw.fields.$length))){return false;}ax=av.fields;ay=0;while(ay=ba.$length)?$throwRuntimeError("index out of range"):ba.$array[ba.$offset+az]));bd=(bc=aw.fields,((az<0||az>=bc.$length)?$throwRuntimeError("index out of range"):bc.$array[bc.$offset+az]));if(!($pointerIsEqual(bb.name,bd.name))&&($pointerIsEqual(bb.name,FR.nil)||$pointerIsEqual(bd.name,FR.nil)||!(bb.name.$get()===bd.name.$get()))){return false;}if(!($pointerIsEqual(bb.pkgPath,bd.pkgPath))&&($pointerIsEqual(bb.pkgPath,FR.nil)||$pointerIsEqual(bd.pkgPath,FR.nil)||!(bb.pkgPath.$get()===bd.pkgPath.$get()))){return false;}if(!(bb.typ===bd.typ)){return false;}if(!($pointerIsEqual(bb.tag,bd.tag))&&($pointerIsEqual(bb.tag,FR.nil)||$pointerIsEqual(bd.tag,FR.nil)||!(bb.tag.$get()===bd.tag.$get()))){return false;}if(!((bb.offset===bd.offset))){return false;}ay++;}return true;}return false;};CL=function(ad){if(ad===FF.nil){return $ifaceNil;}return ad;};CQ=function(ad){return((ad.kind&32)>>>0)===0;};CU.prototype.kind=function(){var ad;ad=this.$val!==undefined?this.$val:this;return(((ad&31)>>>0)>>>0);};$ptrType(CU).prototype.kind=function(){return new CU(this.$get()).kind();};CT.Ptr.prototype.pointer=function(){var ad;ad=this;if(!((ad.typ.size===4))||!ad.typ.pointers()){$panic(new $String("can't call pointer on a non-pointer Value"));}if(!((((ad.flag&64)>>>0)===0))){return ad.ptr.$get();}return ad.ptr;};CT.prototype.pointer=function(){return this.$val.pointer();};CX.Ptr.prototype.Error=function(){var ad;ad=this;if(ad.Kind===0){return"reflect: call of "+ad.Method+" on zero Value";}return"reflect: call of "+ad.Method+" on "+new BA(ad.Kind).String()+" Value";};CX.prototype.Error=function(){return this.$val.Error();};CU.prototype.mustBe=function(ad){var ae;ae=this.$val!==undefined?this.$val:this;if(!((new CU(ae).kind()===ad))){$panic(new CX.Ptr(AP(),new CU(ae).kind()));}};$ptrType(CU).prototype.mustBe=function(ad){return new CU(this.$get()).mustBe(ad);};CU.prototype.mustBeExported=function(){var ad;ad=this.$val!==undefined?this.$val:this;if(ad===0){$panic(new CX.Ptr(AP(),0));}if(!((((ad&32)>>>0)===0))){$panic(new $String("reflect: "+AP()+" using value obtained using unexported field"));}};$ptrType(CU).prototype.mustBeExported=function(){return new CU(this.$get()).mustBeExported();};CU.prototype.mustBeAssignable=function(){var ad;ad=this.$val!==undefined?this.$val:this;if(ad===0){$panic(new CX.Ptr(AP(),0));}if(!((((ad&32)>>>0)===0))){$panic(new $String("reflect: "+AP()+" using value obtained using unexported field"));}if(((ad&128)>>>0)===0){$panic(new $String("reflect: "+AP()+" using unaddressable value"));}};$ptrType(CU).prototype.mustBeAssignable=function(){return new CU(this.$get()).mustBeAssignable();};CT.Ptr.prototype.Addr=function(){var ad;ad=this;if(((ad.flag&128)>>>0)===0){$panic(new $String("reflect.Value.Addr of unaddressable value"));}return new CT.Ptr(ad.typ.ptrTo(),ad.ptr,((((ad.flag&32)>>>0))|22)>>>0);};CT.prototype.Addr=function(){return this.$val.Addr();};CT.Ptr.prototype.Bool=function(){var ad;ad=this;new CU(ad.flag).mustBe(1);return ad.ptr.$get();};CT.prototype.Bool=function(){return this.$val.Bool();};CT.Ptr.prototype.Bytes=function(){var ad;ad=this;new CU(ad.flag).mustBe(23);if(!((ad.typ.Elem().Kind()===8))){$panic(new $String("reflect.Value.Bytes of non-byte slice"));}return ad.ptr.$get();};CT.prototype.Bytes=function(){return this.$val.Bytes();};CT.Ptr.prototype.runes=function(){var ad;ad=this;new CU(ad.flag).mustBe(23);if(!((ad.typ.Elem().Kind()===5))){$panic(new $String("reflect.Value.Bytes of non-rune slice"));}return ad.ptr.$get();};CT.prototype.runes=function(){return this.$val.runes();};CT.Ptr.prototype.CanAddr=function(){var ad;ad=this;return!((((ad.flag&128)>>>0)===0));};CT.prototype.CanAddr=function(){return this.$val.CanAddr();};CT.Ptr.prototype.CanSet=function(){var ad;ad=this;return((ad.flag&160)>>>0)===128;};CT.prototype.CanSet=function(){return this.$val.CanSet();};CT.Ptr.prototype.Call=function(ad){var ae;ae=this;new CU(ae.flag).mustBe(19);new CU(ae.flag).mustBeExported();return ae.call("Call",ad);};CT.prototype.Call=function(ad){return this.$val.Call(ad);};CT.Ptr.prototype.CallSlice=function(ad){var ae;ae=this;new CU(ae.flag).mustBe(19);new CU(ae.flag).mustBeExported();return ae.call("CallSlice",ad);};CT.prototype.CallSlice=function(ad){return this.$val.CallSlice(ad);};CT.Ptr.prototype.Complex=function(){var ad,ae,af,ag;ad=this;ae=new CU(ad.flag).kind();af=ae;if(af===15){return(ag=ad.ptr.$get(),new $Complex128(ag.$real,ag.$imag));}else if(af===16){return ad.ptr.$get();}$panic(new CX.Ptr("reflect.Value.Complex",new CU(ad.flag).kind()));};CT.prototype.Complex=function(){return this.$val.Complex();};CT.Ptr.prototype.FieldByIndex=function(ad){var ae,af,ag,ah,ai;ae=this;if(ad.$length===1){return ae.Field(((0<0||0>=ad.$length)?$throwRuntimeError("index out of range"):ad.$array[ad.$offset+0]));}new CU(ae.flag).mustBe(25);af=ad;ag=0;while(ag=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+ag]);if(ah>0){if((ae.Kind()===22)&&(ae.typ.Elem().Kind()===25)){if(ae.IsNil()){$panic(new $String("reflect: indirection through nil pointer to embedded struct"));}ae=ae.Elem();}}ae=ae.Field(ai);ag++;}return ae;};CT.prototype.FieldByIndex=function(ad){return this.$val.FieldByIndex(ad);};CT.Ptr.prototype.FieldByName=function(ad){var ae,af,ag,ah;ae=this;new CU(ae.flag).mustBe(25);af=ae.typ.FieldByName(ad);ag=$clone(af[0],BS);ah=af[1];if(ah){return ae.FieldByIndex(ag.Index);}return new CT.Ptr(FF.nil,0,0);};CT.prototype.FieldByName=function(ad){return this.$val.FieldByName(ad);};CT.Ptr.prototype.FieldByNameFunc=function(ad){var ae,af,ag,ah;ae=this;af=ae.typ.FieldByNameFunc(ad);ag=$clone(af[0],BS);ah=af[1];if(ah){return ae.FieldByIndex(ag.Index);}return new CT.Ptr(FF.nil,0,0);};CT.prototype.FieldByNameFunc=function(ad){return this.$val.FieldByNameFunc(ad);};CT.Ptr.prototype.Float=function(){var ad,ae,af;ad=this;ae=new CU(ad.flag).kind();af=ae;if(af===13){return $coerceFloat32(ad.ptr.$get());}else if(af===14){return ad.ptr.$get();}$panic(new CX.Ptr("reflect.Value.Float",new CU(ad.flag).kind()));};CT.prototype.Float=function(){return this.$val.Float();};CT.Ptr.prototype.Int=function(){var ad,ae,af,ag;ad=this;ae=new CU(ad.flag).kind();af=ad.ptr;ag=ae;if(ag===2){return new $Int64(0,af.$get());}else if(ag===3){return new $Int64(0,af.$get());}else if(ag===4){return new $Int64(0,af.$get());}else if(ag===5){return new $Int64(0,af.$get());}else if(ag===6){return af.$get();}$panic(new CX.Ptr("reflect.Value.Int",new CU(ad.flag).kind()));};CT.prototype.Int=function(){return this.$val.Int();};CT.Ptr.prototype.CanInterface=function(){var ad;ad=this;if(ad.flag===0){$panic(new CX.Ptr("reflect.Value.CanInterface",0));}return((ad.flag&32)>>>0)===0;};CT.prototype.CanInterface=function(){return this.$val.CanInterface();};CT.Ptr.prototype.Interface=function(){var ad=$ifaceNil,ae;ae=this;ad=AN(ae,true);return ad;};CT.prototype.Interface=function(){return this.$val.Interface();};CT.Ptr.prototype.InterfaceData=function(){var ad;ad=this;new CU(ad.flag).mustBe(20);return ad.ptr;};CT.prototype.InterfaceData=function(){return this.$val.InterfaceData();};CT.Ptr.prototype.IsValid=function(){var ad;ad=this;return!((ad.flag===0));};CT.prototype.IsValid=function(){return this.$val.IsValid();};CT.Ptr.prototype.Kind=function(){var ad;ad=this;return new CU(ad.flag).kind();};CT.prototype.Kind=function(){return this.$val.Kind();};CT.Ptr.prototype.MapIndex=function(ad){var ae,af,ag,ah,ai,aj,ak;ae=this;ad=ad;new CU(ae.flag).mustBe(21);af=ae.typ.mapType;ad=ad.assignTo("reflect.Value.MapIndex",af.key,0);ag=0;if(!((((ad.flag&64)>>>0)===0))){ag=ad.ptr;}else{ag=new GO(function(){return this.$target.ptr;},function($v){this.$target.ptr=$v;},ad);}ah=AC(ae.typ,ae.pointer(),ag);if(ah===0){return new CT.Ptr(FF.nil,0,0);}ai=af.elem;aj=((((ae.flag|ad.flag)>>>0))&32)>>>0;aj=(aj|((ai.Kind()>>>0)))>>>0;if(CQ(ai)){ak=V(ai);Y(ak,ah,ai.size);return new CT.Ptr(ai,ak,(aj|64)>>>0);}else{return new CT.Ptr(ai,ah.$get(),aj);}};CT.prototype.MapIndex=function(ad){return this.$val.MapIndex(ad);};CT.Ptr.prototype.MapKeys=function(){var ad,ae,af,ag,ah,ai,aj,ak,al,am,an;ad=this;new CU(ad.flag).mustBe(21);ae=ad.typ.mapType;af=ae.key;ag=(((ad.flag&32)>>>0)|(af.Kind()>>>0))>>>0;ah=ad.pointer();ai=0;if(!(ah===0)){ai=AJ(ah);}aj=AG(ad.typ,ah);ak=FX.make(ai);al=0;al=0;while(al=ak.$length)?$throwRuntimeError("index out of range"):ak.$array[ak.$offset+al]=new CT.Ptr(af,an,(ag|64)>>>0);}else{(al<0||al>=ak.$length)?$throwRuntimeError("index out of range"):ak.$array[ak.$offset+al]=new CT.Ptr(af,am.$get(),ag);}AI(aj);al=al+(1)>>0;}return $subslice(ak,0,al);};CT.prototype.MapKeys=function(){return this.$val.MapKeys();};CT.Ptr.prototype.Method=function(ad){var ae,af;ae=this;if(ae.typ===FF.nil){$panic(new CX.Ptr("reflect.Value.Method",0));}if(!((((ae.flag&256)>>>0)===0))||(ad>>>0)>=(ae.typ.NumMethod()>>>0)){$panic(new $String("reflect: Method index out of range"));}if((ae.typ.Kind()===20)&&ae.IsNil()){$panic(new $String("reflect: Method on nil interface value"));}af=(ae.flag&96)>>>0;af=(af|(19))>>>0;af=(af|(((((ad>>>0)<<9>>>0)|256)>>>0)))>>>0;return new CT.Ptr(ae.typ,ae.ptr,af);};CT.prototype.Method=function(ad){return this.$val.Method(ad);};CT.Ptr.prototype.NumMethod=function(){var ad;ad=this;if(ad.typ===FF.nil){$panic(new CX.Ptr("reflect.Value.NumMethod",0));}if(!((((ad.flag&256)>>>0)===0))){return 0;}return ad.typ.NumMethod();};CT.prototype.NumMethod=function(){return this.$val.NumMethod();};CT.Ptr.prototype.MethodByName=function(ad){var ae,af,ag,ah;ae=this;if(ae.typ===FF.nil){$panic(new CX.Ptr("reflect.Value.MethodByName",0));}if(!((((ae.flag&256)>>>0)===0))){return new CT.Ptr(FF.nil,0,0);}af=ae.typ.MethodByName(ad);ag=$clone(af[0],BQ);ah=af[1];if(!ah){return new CT.Ptr(FF.nil,0,0);}return ae.Method(ag.Index);};CT.prototype.MethodByName=function(ad){return this.$val.MethodByName(ad);};CT.Ptr.prototype.NumField=function(){var ad,ae;ad=this;new CU(ad.flag).mustBe(25);ae=ad.typ.structType;return ae.fields.$length;};CT.prototype.NumField=function(){return this.$val.NumField();};CT.Ptr.prototype.OverflowComplex=function(ad){var ae,af,ag;ae=this;af=new CU(ae.flag).kind();ag=af;if(ag===15){return DH(ad.$real)||DH(ad.$imag);}else if(ag===16){return false;}$panic(new CX.Ptr("reflect.Value.OverflowComplex",new CU(ae.flag).kind()));};CT.prototype.OverflowComplex=function(ad){return this.$val.OverflowComplex(ad);};CT.Ptr.prototype.OverflowFloat=function(ad){var ae,af,ag;ae=this;af=new CU(ae.flag).kind();ag=af;if(ag===13){return DH(ad);}else if(ag===14){return false;}$panic(new CX.Ptr("reflect.Value.OverflowFloat",new CU(ae.flag).kind()));};CT.prototype.OverflowFloat=function(ad){return this.$val.OverflowFloat(ad);};DH=function(ad){if(ad<0){ad=-ad;}return 3.4028234663852886e+38>>16<<16)*8>>>0)+(ah<<16>>>16)*8)>>>0);aj=$shiftRightInt64(($shiftLeft64(ad,((64-ai>>>0)))),((64-ai>>>0)));return!((ad.$high===aj.$high&&ad.$low===aj.$low));}$panic(new CX.Ptr("reflect.Value.OverflowInt",new CU(ae.flag).kind()));};CT.prototype.OverflowInt=function(ad){return this.$val.OverflowInt(ad);};CT.Ptr.prototype.OverflowUint=function(ad){var ae,af,ag,ah,ai,aj;ae=this;af=new CU(ae.flag).kind();ag=af;if(ag===7||ag===12||ag===8||ag===9||ag===10||ag===11){ai=(ah=ae.typ.size,(((ah>>>16<<16)*8>>>0)+(ah<<16>>>16)*8)>>>0);aj=$shiftRightUint64(($shiftLeft64(ad,((64-ai>>>0)))),((64-ai>>>0)));return!((ad.$high===aj.$high&&ad.$low===aj.$low));}$panic(new CX.Ptr("reflect.Value.OverflowUint",new CU(ae.flag).kind()));};CT.prototype.OverflowUint=function(ad){return this.$val.OverflowUint(ad);};CT.Ptr.prototype.SetBool=function(ad){var ae;ae=this;new CU(ae.flag).mustBeAssignable();new CU(ae.flag).mustBe(1);ae.ptr.$set(ad);};CT.prototype.SetBool=function(ad){return this.$val.SetBool(ad);};CT.Ptr.prototype.SetBytes=function(ad){var ae;ae=this;new CU(ae.flag).mustBeAssignable();new CU(ae.flag).mustBe(23);if(!((ae.typ.Elem().Kind()===8))){$panic(new $String("reflect.Value.SetBytes of non-byte slice"));}ae.ptr.$set(ad);};CT.prototype.SetBytes=function(ad){return this.$val.SetBytes(ad);};CT.Ptr.prototype.setRunes=function(ad){var ae;ae=this;new CU(ae.flag).mustBeAssignable();new CU(ae.flag).mustBe(23);if(!((ae.typ.Elem().Kind()===5))){$panic(new $String("reflect.Value.setRunes of non-rune slice"));}ae.ptr.$set(ad);};CT.prototype.setRunes=function(ad){return this.$val.setRunes(ad);};CT.Ptr.prototype.SetComplex=function(ad){var ae,af,ag;ae=this;new CU(ae.flag).mustBeAssignable();af=new CU(ae.flag).kind();ag=af;if(ag===15){ae.ptr.$set(new $Complex64(ad.$real,ad.$imag));}else if(ag===16){ae.ptr.$set(ad);}else{$panic(new CX.Ptr("reflect.Value.SetComplex",new CU(ae.flag).kind()));}};CT.prototype.SetComplex=function(ad){return this.$val.SetComplex(ad);};CT.Ptr.prototype.SetFloat=function(ad){var ae,af,ag;ae=this;new CU(ae.flag).mustBeAssignable();af=new CU(ae.flag).kind();ag=af;if(ag===13){ae.ptr.$set(ad);}else if(ag===14){ae.ptr.$set(ad);}else{$panic(new CX.Ptr("reflect.Value.SetFloat",new CU(ae.flag).kind()));}};CT.prototype.SetFloat=function(ad){return this.$val.SetFloat(ad);};CT.Ptr.prototype.SetInt=function(ad){var ae,af,ag;ae=this;new CU(ae.flag).mustBeAssignable();af=new CU(ae.flag).kind();ag=af;if(ag===2){ae.ptr.$set(((ad.$low+((ad.$high>>31)*4294967296))>>0));}else if(ag===3){ae.ptr.$set(((ad.$low+((ad.$high>>31)*4294967296))<<24>>24));}else if(ag===4){ae.ptr.$set(((ad.$low+((ad.$high>>31)*4294967296))<<16>>16));}else if(ag===5){ae.ptr.$set(((ad.$low+((ad.$high>>31)*4294967296))>>0));}else if(ag===6){ae.ptr.$set(ad);}else{$panic(new CX.Ptr("reflect.Value.SetInt",new CU(ae.flag).kind()));}};CT.prototype.SetInt=function(ad){return this.$val.SetInt(ad);};CT.Ptr.prototype.SetMapIndex=function(ad,ae){var af,ag,ah,ai;af=this;ae=ae;ad=ad;new CU(af.flag).mustBe(21);new CU(af.flag).mustBeExported();new CU(ad.flag).mustBeExported();ag=af.typ.mapType;ad=ad.assignTo("reflect.Value.SetMapIndex",ag.key,0);ah=0;if(!((((ad.flag&64)>>>0)===0))){ah=ad.ptr;}else{ah=new GO(function(){return this.$target.ptr;},function($v){this.$target.ptr=$v;},ad);}if(ae.typ===FF.nil){AE(af.typ,af.pointer(),ah);return;}new CU(ae.flag).mustBeExported();ae=ae.assignTo("reflect.Value.SetMapIndex",ag.elem,0);ai=0;if(!((((ae.flag&64)>>>0)===0))){ai=ae.ptr;}else{ai=new GO(function(){return this.$target.ptr;},function($v){this.$target.ptr=$v;},ae);}AD(af.typ,af.pointer(),ah,ai);};CT.prototype.SetMapIndex=function(ad,ae){return this.$val.SetMapIndex(ad,ae);};CT.Ptr.prototype.SetUint=function(ad){var ae,af,ag;ae=this;new CU(ae.flag).mustBeAssignable();af=new CU(ae.flag).kind();ag=af;if(ag===7){ae.ptr.$set((ad.$low>>>0));}else if(ag===8){ae.ptr.$set((ad.$low<<24>>>24));}else if(ag===9){ae.ptr.$set((ad.$low<<16>>>16));}else if(ag===10){ae.ptr.$set((ad.$low>>>0));}else if(ag===11){ae.ptr.$set(ad);}else if(ag===12){ae.ptr.$set((ad.$low>>>0));}else{$panic(new CX.Ptr("reflect.Value.SetUint",new CU(ae.flag).kind()));}};CT.prototype.SetUint=function(ad){return this.$val.SetUint(ad);};CT.Ptr.prototype.SetPointer=function(ad){var ae;ae=this;new CU(ae.flag).mustBeAssignable();new CU(ae.flag).mustBe(26);ae.ptr.$set(ad);};CT.prototype.SetPointer=function(ad){return this.$val.SetPointer(ad);};CT.Ptr.prototype.SetString=function(ad){var ae;ae=this;new CU(ae.flag).mustBeAssignable();new CU(ae.flag).mustBe(24);ae.ptr.$set(ad);};CT.prototype.SetString=function(ad){return this.$val.SetString(ad);};CT.Ptr.prototype.String=function(){var ad,ae,af;ad=this;ae=new CU(ad.flag).kind();af=ae;if(af===0){return"";}else if(af===24){return ad.ptr.$get();}return"<"+ad.Type().String()+" Value>";};CT.prototype.String=function(){return this.$val.String();};CT.Ptr.prototype.Type=function(){var ad,ae,af,ag,ah,ai,aj,ak,al;ad=this;ae=ad.flag;if(ae===0){$panic(new CX.Ptr("reflect.Value.Type",0));}if(((ae&256)>>>0)===0){return ad.typ;}af=(ad.flag>>0)>>9>>0;if(ad.typ.Kind()===20){ag=ad.typ.interfaceType;if((af>>>0)>=(ag.methods.$length>>>0)){$panic(new $String("reflect: internal error: invalid method index"));}ai=(ah=ag.methods,((af<0||af>=ah.$length)?$throwRuntimeError("index out of range"):ah.$array[ah.$offset+af]));return ai.typ;}aj=ad.typ.uncommonType.uncommon();if(aj===FS.nil||(af>>>0)>=(aj.methods.$length>>>0)){$panic(new $String("reflect: internal error: invalid method index"));}al=(ak=aj.methods,((af<0||af>=ak.$length)?$throwRuntimeError("index out of range"):ak.$array[ak.$offset+af]));return al.mtyp;};CT.prototype.Type=function(){return this.$val.Type();};CT.Ptr.prototype.Uint=function(){var ad,ae,af,ag,ah;ad=this;ae=new CU(ad.flag).kind();af=ad.ptr;ag=ae;if(ag===7){return new $Uint64(0,af.$get());}else if(ag===8){return new $Uint64(0,af.$get());}else if(ag===9){return new $Uint64(0,af.$get());}else if(ag===10){return new $Uint64(0,af.$get());}else if(ag===11){return af.$get();}else if(ag===12){return(ah=af.$get(),new $Uint64(0,ah.constructor===Number?ah:1));}$panic(new CX.Ptr("reflect.Value.Uint",new CU(ad.flag).kind()));};CT.prototype.Uint=function(){return this.$val.Uint();};CT.Ptr.prototype.UnsafeAddr=function(){var ad;ad=this;if(ad.typ===FF.nil){$panic(new CX.Ptr("reflect.Value.UnsafeAddr",0));}if(((ad.flag&128)>>>0)===0){$panic(new $String("reflect.Value.UnsafeAddr of unaddressable value"));}return ad.ptr;};CT.prototype.UnsafeAddr=function(){return this.$val.UnsafeAddr();};DZ=$pkg.New=function(ad){var ae,af;if($interfaceIsEqual(ad,$ifaceNil)){$panic(new $String("reflect: New(nil)"));}ae=V($assertType(ad,FF));af=22;return new CT.Ptr(ad.common().ptrTo(),ae,af);};CT.Ptr.prototype.assignTo=function(ad,ae,af){var ag,ah,ai;ag=this;if(!((((ag.flag&256)>>>0)===0))){ag=AQ(ad,ag);}if(BZ(ae,ag.typ)){ag.typ=ae;ah=(ag.flag&224)>>>0;ah=(ah|((ae.Kind()>>>0)))>>>0;return new CT.Ptr(ae,ag.ptr,ah);}else if(BY(ae,ag.typ)){if(af===0){af=V(ae);}ai=AN(ag,false);if(ae.NumMethod()===0){af.$set(ai);}else{AO(ae,ai,af);}return new CT.Ptr(ae,af,84);}$panic(new $String(ad+": value of type "+ag.typ.String()+" is not assignable to type "+ae.String()));};CT.prototype.assignTo=function(ad,ae,af){return this.$val.assignTo(ad,ae,af);};CT.Ptr.prototype.Convert=function(ad){var ae,af;ae=this;if(!((((ae.flag&256)>>>0)===0))){ae=AQ("Convert",ae);}af=EB(ad.common(),ae.typ);if(af===$throwNilPointerError){$panic(new $String("reflect.Value.Convert: value of type "+ae.typ.String()+" cannot be converted to type "+ad.String()));}return af(ae,ad);};CT.prototype.Convert=function(ad){return this.$val.Convert(ad);};EB=function(ad,ae){var af,ag,ah,ai,aj,ak,al;af=ae.Kind();if(af===2||af===3||af===4||af===5||af===6){ag=ad.Kind();if(ag===2||ag===3||ag===4||ag===5||ag===6||ag===7||ag===8||ag===9||ag===10||ag===11||ag===12){return EH;}else if(ag===13||ag===14){return EL;}else if(ag===24){return EP;}}else if(af===7||af===8||af===9||af===10||af===11||af===12){ah=ad.Kind();if(ah===2||ah===3||ah===4||ah===5||ah===6||ah===7||ah===8||ah===9||ah===10||ah===11||ah===12){return EI;}else if(ah===13||ah===14){return EM;}else if(ah===24){return EQ;}}else if(af===13||af===14){ai=ad.Kind();if(ai===2||ai===3||ai===4||ai===5||ai===6){return EJ;}else if(ai===7||ai===8||ai===9||ai===10||ai===11||ai===12){return EK;}else if(ai===13||ai===14){return EN;}}else if(af===15||af===16){aj=ad.Kind();if(aj===15||aj===16){return EO;}}else if(af===24){if((ad.Kind()===23)&&ad.Elem().PkgPath()===""){ak=ad.Elem().Kind();if(ak===8){return ES;}else if(ak===5){return EU;}}}else if(af===23){if((ad.Kind()===24)&&ae.Elem().PkgPath()===""){al=ae.Elem().Kind();if(al===8){return ER;}else if(al===5){return ET;}}}if(CA(ad,ae)){return AK;}if((ad.Kind()===22)&&ad.Name()===""&&(ae.Kind()===22)&&ae.Name()===""&&CA(ad.Elem().common(),ae.Elem().common())){return AK;}if(BY(ad,ae)){if(ae.Kind()===20){return EW;}return EV;}return $throwNilPointerError;};EC=function(ad,ae,af){var ag,ah,ai;ag=af.common();ah=V(ag);ai=ag.size;if(ai===4){ah.$set(ae);}else if(ai===8){ah.$set(ae);}return new CT.Ptr(ag,ah,(((ad|64)>>>0)|(ag.Kind()>>>0))>>>0);};ED=function(ad,ae,af){var ag,ah,ai;ag=af.common();ah=V(ag);ai=ag.size;if(ai===8){ah.$set(new $Complex64(ae.$real,ae.$imag));}else if(ai===16){ah.$set(ae);}return new CT.Ptr(ag,ah,(((ad|64)>>>0)|(ag.Kind()>>>0))>>>0);};EE=function(ad,ae,af){var ag;ag=DZ(af).Elem();ag.SetString(ae);ag.flag=((ag.flag&~128)|ad)>>>0;return ag;};EF=function(ad,ae,af){var ag;ag=DZ(af).Elem();ag.SetBytes(ae);ag.flag=((ag.flag&~128)|ad)>>>0;return ag;};EG=function(ad,ae,af){var ag;ag=DZ(af).Elem();ag.setRunes(ae);ag.flag=((ag.flag&~128)|ad)>>>0;return ag;};EH=function(ad,ae){var af;ad=ad;return W((ad.flag&32)>>>0,(af=ad.Int(),new $Uint64(af.$high,af.$low)),ae);};EI=function(ad,ae){ad=ad;return W((ad.flag&32)>>>0,ad.Uint(),ae);};EJ=function(ad,ae){var af;ad=ad;return W((ad.flag&32)>>>0,(af=new $Int64(0,ad.Float()),new $Uint64(af.$high,af.$low)),ae);};EK=function(ad,ae){ad=ad;return W((ad.flag&32)>>>0,new $Uint64(0,ad.Float()),ae);};EL=function(ad,ae){ad=ad;return EC((ad.flag&32)>>>0,$flatten64(ad.Int()),ae);};EM=function(ad,ae){ad=ad;return EC((ad.flag&32)>>>0,$flatten64(ad.Uint()),ae);};EN=function(ad,ae){ad=ad;return EC((ad.flag&32)>>>0,ad.Float(),ae);};EO=function(ad,ae){ad=ad;return ED((ad.flag&32)>>>0,ad.Complex(),ae);};EP=function(ad,ae){ad=ad;return EE((ad.flag&32)>>>0,$encodeRune(ad.Int().$low),ae);};EQ=function(ad,ae){ad=ad;return EE((ad.flag&32)>>>0,$encodeRune(ad.Uint().$low),ae);};ER=function(ad,ae){ad=ad;return EE((ad.flag&32)>>>0,$bytesToString(ad.Bytes()),ae);};ES=function(ad,ae){ad=ad;return EF((ad.flag&32)>>>0,new GQ($stringToBytes(ad.String())),ae);};ET=function(ad,ae){ad=ad;return EE((ad.flag&32)>>>0,$runesToString(ad.runes()),ae);};EU=function(ad,ae){ad=ad;return EG((ad.flag&32)>>>0,new GR($stringToRunes(ad.String())),ae);};EV=function(ad,ae){var af,ag;ad=ad;af=V(ae.common());ag=AN(ad,false);if(ae.NumMethod()===0){af.$set(ag);}else{AO($assertType(ae,FF),ag,af);}return new CT.Ptr(ae.common(),af,(((((ad.flag&32)>>>0)|64)>>>0)|20)>>>0);};EW=function(ad,ae){var af;ad=ad;if(ad.IsNil()){af=U(ae);af.flag=(af.flag|(((ad.flag&32)>>>0)))>>>0;return af;}return EV(ad.Elem(),ae);};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=B.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=E.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=A.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}FF=$ptrType(BB);FG=$ptrType(BM);FO=$sliceType($String);FP=$ptrType(BC);FQ=$arrayType($UnsafePointer,2);FR=$ptrType($String);FS=$ptrType(BE);FT=$sliceType(BD);FU=$sliceType(FF);FV=$sliceType(BJ);FW=$sliceType(BO);FX=$sliceType(CT);FY=$arrayType($UnsafePointer,100000);FZ=$structType([["ityp","ityp","reflect",FF,""],["typ","typ","reflect",FF,""],["link","link","reflect",$UnsafePointer,""],["bad","bad","reflect",$Int32,""],["unused","unused","reflect",$Int32,""],["fun","fun","reflect",FY,""]]);GA=$ptrType(FZ);GB=$sliceType(B.Object);GC=$ptrType($Uint8);GE=$ptrType(BD);GF=$ptrType(BK);GG=$ptrType(BJ);GH=$sliceType($Int);GI=$sliceType(BU);GJ=$ptrType(BP);GO=$ptrType($UnsafePointer);GQ=$sliceType($Uint8);GR=$sliceType($Int32);GS=$ptrType(BI);GU=$funcType([$String],[$Bool],false);GV=$ptrType(BA);GW=$funcType([$UnsafePointer,$Uintptr,$Uintptr],[$Uintptr],false);GX=$funcType([$UnsafePointer,$UnsafePointer,$Uintptr],[$Bool],false);GY=$ptrType(BF);GZ=$ptrType(BG);HA=$ptrType(BH);HB=$ptrType(BL);HC=$ptrType(BN);HD=$ptrType(BT);HF=$arrayType($Uintptr,2);HG=$ptrType(CT);HH=$ptrType(CU);HI=$ptrType(CX);AF.init([["t","t","reflect",AZ,""],["m","m","reflect",B.Object,""],["keys","keys","reflect",B.Object,""],["i","i","reflect",$Int,""]]);AZ.init([["Align","Align","",$funcType([],[$Int],false)],["AssignableTo","AssignableTo","",$funcType([AZ],[$Bool],false)],["Bits","Bits","",$funcType([],[$Int],false)],["ChanDir","ChanDir","",$funcType([],[BF],false)],["Comparable","Comparable","",$funcType([],[$Bool],false)],["ConvertibleTo","ConvertibleTo","",$funcType([AZ],[$Bool],false)],["Elem","Elem","",$funcType([],[AZ],false)],["Field","Field","",$funcType([$Int],[BS],false)],["FieldAlign","FieldAlign","",$funcType([],[$Int],false)],["FieldByIndex","FieldByIndex","",$funcType([GH],[BS],false)],["FieldByName","FieldByName","",$funcType([$String],[BS,$Bool],false)],["FieldByNameFunc","FieldByNameFunc","",$funcType([GU],[BS,$Bool],false)],["Implements","Implements","",$funcType([AZ],[$Bool],false)],["In","In","",$funcType([$Int],[AZ],false)],["IsVariadic","IsVariadic","",$funcType([],[$Bool],false)],["Key","Key","",$funcType([],[AZ],false)],["Kind","Kind","",$funcType([],[BA],false)],["Len","Len","",$funcType([],[$Int],false)],["Method","Method","",$funcType([$Int],[BQ],false)],["MethodByName","MethodByName","",$funcType([$String],[BQ,$Bool],false)],["Name","Name","",$funcType([],[$String],false)],["NumField","NumField","",$funcType([],[$Int],false)],["NumIn","NumIn","",$funcType([],[$Int],false)],["NumMethod","NumMethod","",$funcType([],[$Int],false)],["NumOut","NumOut","",$funcType([],[$Int],false)],["Out","Out","",$funcType([$Int],[AZ],false)],["PkgPath","PkgPath","",$funcType([],[$String],false)],["Size","Size","",$funcType([],[$Uintptr],false)],["String","String","",$funcType([],[$String],false)],["common","common","reflect",$funcType([],[FF],false)],["uncommon","uncommon","reflect",$funcType([],[FS],false)]]);BA.methods=[["String","String","",$funcType([],[$String],false),-1]];GV.methods=[["String","String","",$funcType([],[$String],false),-1]];BB.methods=[["uncommon","uncommon","reflect",$funcType([],[FS],false),9]];FF.methods=[["Align","Align","",$funcType([],[$Int],false),-1],["AssignableTo","AssignableTo","",$funcType([AZ],[$Bool],false),-1],["Bits","Bits","",$funcType([],[$Int],false),-1],["ChanDir","ChanDir","",$funcType([],[BF],false),-1],["Comparable","Comparable","",$funcType([],[$Bool],false),-1],["ConvertibleTo","ConvertibleTo","",$funcType([AZ],[$Bool],false),-1],["Elem","Elem","",$funcType([],[AZ],false),-1],["Field","Field","",$funcType([$Int],[BS],false),-1],["FieldAlign","FieldAlign","",$funcType([],[$Int],false),-1],["FieldByIndex","FieldByIndex","",$funcType([GH],[BS],false),-1],["FieldByName","FieldByName","",$funcType([$String],[BS,$Bool],false),-1],["FieldByNameFunc","FieldByNameFunc","",$funcType([GU],[BS,$Bool],false),-1],["Implements","Implements","",$funcType([AZ],[$Bool],false),-1],["In","In","",$funcType([$Int],[AZ],false),-1],["IsVariadic","IsVariadic","",$funcType([],[$Bool],false),-1],["Key","Key","",$funcType([],[AZ],false),-1],["Kind","Kind","",$funcType([],[BA],false),-1],["Len","Len","",$funcType([],[$Int],false),-1],["Method","Method","",$funcType([$Int],[BQ],false),-1],["MethodByName","MethodByName","",$funcType([$String],[BQ,$Bool],false),-1],["Name","Name","",$funcType([],[$String],false),-1],["NumField","NumField","",$funcType([],[$Int],false),-1],["NumIn","NumIn","",$funcType([],[$Int],false),-1],["NumMethod","NumMethod","",$funcType([],[$Int],false),-1],["NumOut","NumOut","",$funcType([],[$Int],false),-1],["Out","Out","",$funcType([$Int],[AZ],false),-1],["PkgPath","PkgPath","",$funcType([],[$String],false),-1],["Size","Size","",$funcType([],[$Uintptr],false),-1],["String","String","",$funcType([],[$String],false),-1],["common","common","reflect",$funcType([],[FF],false),-1],["pointers","pointers","reflect",$funcType([],[$Bool],false),-1],["ptrTo","ptrTo","reflect",$funcType([],[FF],false),-1],["uncommon","uncommon","reflect",$funcType([],[FS],false),9]];BB.init([["size","size","reflect",$Uintptr,""],["hash","hash","reflect",$Uint32,""],["_$2","_","reflect",$Uint8,""],["align","align","reflect",$Uint8,""],["fieldAlign","fieldAlign","reflect",$Uint8,""],["kind","kind","reflect",$Uint8,""],["alg","alg","reflect",FP,""],["gc","gc","reflect",FQ,""],["string","string","reflect",FR,""],["uncommonType","","reflect",FS,""],["ptrToThis","ptrToThis","reflect",FF,""],["zero","zero","reflect",$UnsafePointer,""]]);BC.init([["hash","hash","reflect",GW,""],["equal","equal","reflect",GX,""]]);BD.init([["name","name","reflect",FR,""],["pkgPath","pkgPath","reflect",FR,""],["mtyp","mtyp","reflect",FF,""],["typ","typ","reflect",FF,""],["ifn","ifn","reflect",$UnsafePointer,""],["tfn","tfn","reflect",$UnsafePointer,""]]);FS.methods=[["Method","Method","",$funcType([$Int],[BQ],false),-1],["MethodByName","MethodByName","",$funcType([$String],[BQ,$Bool],false),-1],["Name","Name","",$funcType([],[$String],false),-1],["NumMethod","NumMethod","",$funcType([],[$Int],false),-1],["PkgPath","PkgPath","",$funcType([],[$String],false),-1],["uncommon","uncommon","reflect",$funcType([],[FS],false),-1]];BE.init([["name","name","reflect",FR,""],["pkgPath","pkgPath","reflect",FR,""],["methods","methods","reflect",FT,""]]);BF.methods=[["String","String","",$funcType([],[$String],false),-1]];GY.methods=[["String","String","",$funcType([],[$String],false),-1]];BG.methods=[["uncommon","uncommon","reflect",$funcType([],[FS],false),0]];GZ.methods=[["Align","Align","",$funcType([],[$Int],false),0],["AssignableTo","AssignableTo","",$funcType([AZ],[$Bool],false),0],["Bits","Bits","",$funcType([],[$Int],false),0],["ChanDir","ChanDir","",$funcType([],[BF],false),0],["Comparable","Comparable","",$funcType([],[$Bool],false),0],["ConvertibleTo","ConvertibleTo","",$funcType([AZ],[$Bool],false),0],["Elem","Elem","",$funcType([],[AZ],false),0],["Field","Field","",$funcType([$Int],[BS],false),0],["FieldAlign","FieldAlign","",$funcType([],[$Int],false),0],["FieldByIndex","FieldByIndex","",$funcType([GH],[BS],false),0],["FieldByName","FieldByName","",$funcType([$String],[BS,$Bool],false),0],["FieldByNameFunc","FieldByNameFunc","",$funcType([GU],[BS,$Bool],false),0],["Implements","Implements","",$funcType([AZ],[$Bool],false),0],["In","In","",$funcType([$Int],[AZ],false),0],["IsVariadic","IsVariadic","",$funcType([],[$Bool],false),0],["Key","Key","",$funcType([],[AZ],false),0],["Kind","Kind","",$funcType([],[BA],false),0],["Len","Len","",$funcType([],[$Int],false),0],["Method","Method","",$funcType([$Int],[BQ],false),0],["MethodByName","MethodByName","",$funcType([$String],[BQ,$Bool],false),0],["Name","Name","",$funcType([],[$String],false),0],["NumField","NumField","",$funcType([],[$Int],false),0],["NumIn","NumIn","",$funcType([],[$Int],false),0],["NumMethod","NumMethod","",$funcType([],[$Int],false),0],["NumOut","NumOut","",$funcType([],[$Int],false),0],["Out","Out","",$funcType([$Int],[AZ],false),0],["PkgPath","PkgPath","",$funcType([],[$String],false),0],["Size","Size","",$funcType([],[$Uintptr],false),0],["String","String","",$funcType([],[$String],false),0],["common","common","reflect",$funcType([],[FF],false),0],["pointers","pointers","reflect",$funcType([],[$Bool],false),0],["ptrTo","ptrTo","reflect",$funcType([],[FF],false),0],["uncommon","uncommon","reflect",$funcType([],[FS],false),0]];BG.init([["rtype","","reflect",BB,"reflect:\"array\""],["elem","elem","reflect",FF,""],["slice","slice","reflect",FF,""],["len","len","reflect",$Uintptr,""]]);BH.methods=[["uncommon","uncommon","reflect",$funcType([],[FS],false),0]];HA.methods=[["Align","Align","",$funcType([],[$Int],false),0],["AssignableTo","AssignableTo","",$funcType([AZ],[$Bool],false),0],["Bits","Bits","",$funcType([],[$Int],false),0],["ChanDir","ChanDir","",$funcType([],[BF],false),0],["Comparable","Comparable","",$funcType([],[$Bool],false),0],["ConvertibleTo","ConvertibleTo","",$funcType([AZ],[$Bool],false),0],["Elem","Elem","",$funcType([],[AZ],false),0],["Field","Field","",$funcType([$Int],[BS],false),0],["FieldAlign","FieldAlign","",$funcType([],[$Int],false),0],["FieldByIndex","FieldByIndex","",$funcType([GH],[BS],false),0],["FieldByName","FieldByName","",$funcType([$String],[BS,$Bool],false),0],["FieldByNameFunc","FieldByNameFunc","",$funcType([GU],[BS,$Bool],false),0],["Implements","Implements","",$funcType([AZ],[$Bool],false),0],["In","In","",$funcType([$Int],[AZ],false),0],["IsVariadic","IsVariadic","",$funcType([],[$Bool],false),0],["Key","Key","",$funcType([],[AZ],false),0],["Kind","Kind","",$funcType([],[BA],false),0],["Len","Len","",$funcType([],[$Int],false),0],["Method","Method","",$funcType([$Int],[BQ],false),0],["MethodByName","MethodByName","",$funcType([$String],[BQ,$Bool],false),0],["Name","Name","",$funcType([],[$String],false),0],["NumField","NumField","",$funcType([],[$Int],false),0],["NumIn","NumIn","",$funcType([],[$Int],false),0],["NumMethod","NumMethod","",$funcType([],[$Int],false),0],["NumOut","NumOut","",$funcType([],[$Int],false),0],["Out","Out","",$funcType([$Int],[AZ],false),0],["PkgPath","PkgPath","",$funcType([],[$String],false),0],["Size","Size","",$funcType([],[$Uintptr],false),0],["String","String","",$funcType([],[$String],false),0],["common","common","reflect",$funcType([],[FF],false),0],["pointers","pointers","reflect",$funcType([],[$Bool],false),0],["ptrTo","ptrTo","reflect",$funcType([],[FF],false),0],["uncommon","uncommon","reflect",$funcType([],[FS],false),0]];BH.init([["rtype","","reflect",BB,"reflect:\"chan\""],["elem","elem","reflect",FF,""],["dir","dir","reflect",$Uintptr,""]]);BI.methods=[["uncommon","uncommon","reflect",$funcType([],[FS],false),0]];GS.methods=[["Align","Align","",$funcType([],[$Int],false),0],["AssignableTo","AssignableTo","",$funcType([AZ],[$Bool],false),0],["Bits","Bits","",$funcType([],[$Int],false),0],["ChanDir","ChanDir","",$funcType([],[BF],false),0],["Comparable","Comparable","",$funcType([],[$Bool],false),0],["ConvertibleTo","ConvertibleTo","",$funcType([AZ],[$Bool],false),0],["Elem","Elem","",$funcType([],[AZ],false),0],["Field","Field","",$funcType([$Int],[BS],false),0],["FieldAlign","FieldAlign","",$funcType([],[$Int],false),0],["FieldByIndex","FieldByIndex","",$funcType([GH],[BS],false),0],["FieldByName","FieldByName","",$funcType([$String],[BS,$Bool],false),0],["FieldByNameFunc","FieldByNameFunc","",$funcType([GU],[BS,$Bool],false),0],["Implements","Implements","",$funcType([AZ],[$Bool],false),0],["In","In","",$funcType([$Int],[AZ],false),0],["IsVariadic","IsVariadic","",$funcType([],[$Bool],false),0],["Key","Key","",$funcType([],[AZ],false),0],["Kind","Kind","",$funcType([],[BA],false),0],["Len","Len","",$funcType([],[$Int],false),0],["Method","Method","",$funcType([$Int],[BQ],false),0],["MethodByName","MethodByName","",$funcType([$String],[BQ,$Bool],false),0],["Name","Name","",$funcType([],[$String],false),0],["NumField","NumField","",$funcType([],[$Int],false),0],["NumIn","NumIn","",$funcType([],[$Int],false),0],["NumMethod","NumMethod","",$funcType([],[$Int],false),0],["NumOut","NumOut","",$funcType([],[$Int],false),0],["Out","Out","",$funcType([$Int],[AZ],false),0],["PkgPath","PkgPath","",$funcType([],[$String],false),0],["Size","Size","",$funcType([],[$Uintptr],false),0],["String","String","",$funcType([],[$String],false),0],["common","common","reflect",$funcType([],[FF],false),0],["pointers","pointers","reflect",$funcType([],[$Bool],false),0],["ptrTo","ptrTo","reflect",$funcType([],[FF],false),0],["uncommon","uncommon","reflect",$funcType([],[FS],false),0]];BI.init([["rtype","","reflect",BB,"reflect:\"func\""],["dotdotdot","dotdotdot","reflect",$Bool,""],["in$2","in","reflect",FU,""],["out","out","reflect",FU,""]]);BJ.init([["name","name","reflect",FR,""],["pkgPath","pkgPath","reflect",FR,""],["typ","typ","reflect",FF,""]]);BK.methods=[["uncommon","uncommon","reflect",$funcType([],[FS],false),0]];GF.methods=[["Align","Align","",$funcType([],[$Int],false),0],["AssignableTo","AssignableTo","",$funcType([AZ],[$Bool],false),0],["Bits","Bits","",$funcType([],[$Int],false),0],["ChanDir","ChanDir","",$funcType([],[BF],false),0],["Comparable","Comparable","",$funcType([],[$Bool],false),0],["ConvertibleTo","ConvertibleTo","",$funcType([AZ],[$Bool],false),0],["Elem","Elem","",$funcType([],[AZ],false),0],["Field","Field","",$funcType([$Int],[BS],false),0],["FieldAlign","FieldAlign","",$funcType([],[$Int],false),0],["FieldByIndex","FieldByIndex","",$funcType([GH],[BS],false),0],["FieldByName","FieldByName","",$funcType([$String],[BS,$Bool],false),0],["FieldByNameFunc","FieldByNameFunc","",$funcType([GU],[BS,$Bool],false),0],["Implements","Implements","",$funcType([AZ],[$Bool],false),0],["In","In","",$funcType([$Int],[AZ],false),0],["IsVariadic","IsVariadic","",$funcType([],[$Bool],false),0],["Key","Key","",$funcType([],[AZ],false),0],["Kind","Kind","",$funcType([],[BA],false),0],["Len","Len","",$funcType([],[$Int],false),0],["Method","Method","",$funcType([$Int],[BQ],false),-1],["MethodByName","MethodByName","",$funcType([$String],[BQ,$Bool],false),-1],["Name","Name","",$funcType([],[$String],false),0],["NumField","NumField","",$funcType([],[$Int],false),0],["NumIn","NumIn","",$funcType([],[$Int],false),0],["NumMethod","NumMethod","",$funcType([],[$Int],false),-1],["NumOut","NumOut","",$funcType([],[$Int],false),0],["Out","Out","",$funcType([$Int],[AZ],false),0],["PkgPath","PkgPath","",$funcType([],[$String],false),0],["Size","Size","",$funcType([],[$Uintptr],false),0],["String","String","",$funcType([],[$String],false),0],["common","common","reflect",$funcType([],[FF],false),0],["pointers","pointers","reflect",$funcType([],[$Bool],false),0],["ptrTo","ptrTo","reflect",$funcType([],[FF],false),0],["uncommon","uncommon","reflect",$funcType([],[FS],false),0]];BK.init([["rtype","","reflect",BB,"reflect:\"interface\""],["methods","methods","reflect",FV,""]]);BL.methods=[["uncommon","uncommon","reflect",$funcType([],[FS],false),0]];HB.methods=[["Align","Align","",$funcType([],[$Int],false),0],["AssignableTo","AssignableTo","",$funcType([AZ],[$Bool],false),0],["Bits","Bits","",$funcType([],[$Int],false),0],["ChanDir","ChanDir","",$funcType([],[BF],false),0],["Comparable","Comparable","",$funcType([],[$Bool],false),0],["ConvertibleTo","ConvertibleTo","",$funcType([AZ],[$Bool],false),0],["Elem","Elem","",$funcType([],[AZ],false),0],["Field","Field","",$funcType([$Int],[BS],false),0],["FieldAlign","FieldAlign","",$funcType([],[$Int],false),0],["FieldByIndex","FieldByIndex","",$funcType([GH],[BS],false),0],["FieldByName","FieldByName","",$funcType([$String],[BS,$Bool],false),0],["FieldByNameFunc","FieldByNameFunc","",$funcType([GU],[BS,$Bool],false),0],["Implements","Implements","",$funcType([AZ],[$Bool],false),0],["In","In","",$funcType([$Int],[AZ],false),0],["IsVariadic","IsVariadic","",$funcType([],[$Bool],false),0],["Key","Key","",$funcType([],[AZ],false),0],["Kind","Kind","",$funcType([],[BA],false),0],["Len","Len","",$funcType([],[$Int],false),0],["Method","Method","",$funcType([$Int],[BQ],false),0],["MethodByName","MethodByName","",$funcType([$String],[BQ,$Bool],false),0],["Name","Name","",$funcType([],[$String],false),0],["NumField","NumField","",$funcType([],[$Int],false),0],["NumIn","NumIn","",$funcType([],[$Int],false),0],["NumMethod","NumMethod","",$funcType([],[$Int],false),0],["NumOut","NumOut","",$funcType([],[$Int],false),0],["Out","Out","",$funcType([$Int],[AZ],false),0],["PkgPath","PkgPath","",$funcType([],[$String],false),0],["Size","Size","",$funcType([],[$Uintptr],false),0],["String","String","",$funcType([],[$String],false),0],["common","common","reflect",$funcType([],[FF],false),0],["pointers","pointers","reflect",$funcType([],[$Bool],false),0],["ptrTo","ptrTo","reflect",$funcType([],[FF],false),0],["uncommon","uncommon","reflect",$funcType([],[FS],false),0]];BL.init([["rtype","","reflect",BB,"reflect:\"map\""],["key","key","reflect",FF,""],["elem","elem","reflect",FF,""],["bucket","bucket","reflect",FF,""],["hmap","hmap","reflect",FF,""],["keysize","keysize","reflect",$Uint8,""],["indirectkey","indirectkey","reflect",$Uint8,""],["valuesize","valuesize","reflect",$Uint8,""],["indirectvalue","indirectvalue","reflect",$Uint8,""],["bucketsize","bucketsize","reflect",$Uint16,""]]);BM.methods=[["uncommon","uncommon","reflect",$funcType([],[FS],false),0]];FG.methods=[["Align","Align","",$funcType([],[$Int],false),0],["AssignableTo","AssignableTo","",$funcType([AZ],[$Bool],false),0],["Bits","Bits","",$funcType([],[$Int],false),0],["ChanDir","ChanDir","",$funcType([],[BF],false),0],["Comparable","Comparable","",$funcType([],[$Bool],false),0],["ConvertibleTo","ConvertibleTo","",$funcType([AZ],[$Bool],false),0],["Elem","Elem","",$funcType([],[AZ],false),0],["Field","Field","",$funcType([$Int],[BS],false),0],["FieldAlign","FieldAlign","",$funcType([],[$Int],false),0],["FieldByIndex","FieldByIndex","",$funcType([GH],[BS],false),0],["FieldByName","FieldByName","",$funcType([$String],[BS,$Bool],false),0],["FieldByNameFunc","FieldByNameFunc","",$funcType([GU],[BS,$Bool],false),0],["Implements","Implements","",$funcType([AZ],[$Bool],false),0],["In","In","",$funcType([$Int],[AZ],false),0],["IsVariadic","IsVariadic","",$funcType([],[$Bool],false),0],["Key","Key","",$funcType([],[AZ],false),0],["Kind","Kind","",$funcType([],[BA],false),0],["Len","Len","",$funcType([],[$Int],false),0],["Method","Method","",$funcType([$Int],[BQ],false),0],["MethodByName","MethodByName","",$funcType([$String],[BQ,$Bool],false),0],["Name","Name","",$funcType([],[$String],false),0],["NumField","NumField","",$funcType([],[$Int],false),0],["NumIn","NumIn","",$funcType([],[$Int],false),0],["NumMethod","NumMethod","",$funcType([],[$Int],false),0],["NumOut","NumOut","",$funcType([],[$Int],false),0],["Out","Out","",$funcType([$Int],[AZ],false),0],["PkgPath","PkgPath","",$funcType([],[$String],false),0],["Size","Size","",$funcType([],[$Uintptr],false),0],["String","String","",$funcType([],[$String],false),0],["common","common","reflect",$funcType([],[FF],false),0],["pointers","pointers","reflect",$funcType([],[$Bool],false),0],["ptrTo","ptrTo","reflect",$funcType([],[FF],false),0],["uncommon","uncommon","reflect",$funcType([],[FS],false),0]];BM.init([["rtype","","reflect",BB,"reflect:\"ptr\""],["elem","elem","reflect",FF,""]]);BN.methods=[["uncommon","uncommon","reflect",$funcType([],[FS],false),0]];HC.methods=[["Align","Align","",$funcType([],[$Int],false),0],["AssignableTo","AssignableTo","",$funcType([AZ],[$Bool],false),0],["Bits","Bits","",$funcType([],[$Int],false),0],["ChanDir","ChanDir","",$funcType([],[BF],false),0],["Comparable","Comparable","",$funcType([],[$Bool],false),0],["ConvertibleTo","ConvertibleTo","",$funcType([AZ],[$Bool],false),0],["Elem","Elem","",$funcType([],[AZ],false),0],["Field","Field","",$funcType([$Int],[BS],false),0],["FieldAlign","FieldAlign","",$funcType([],[$Int],false),0],["FieldByIndex","FieldByIndex","",$funcType([GH],[BS],false),0],["FieldByName","FieldByName","",$funcType([$String],[BS,$Bool],false),0],["FieldByNameFunc","FieldByNameFunc","",$funcType([GU],[BS,$Bool],false),0],["Implements","Implements","",$funcType([AZ],[$Bool],false),0],["In","In","",$funcType([$Int],[AZ],false),0],["IsVariadic","IsVariadic","",$funcType([],[$Bool],false),0],["Key","Key","",$funcType([],[AZ],false),0],["Kind","Kind","",$funcType([],[BA],false),0],["Len","Len","",$funcType([],[$Int],false),0],["Method","Method","",$funcType([$Int],[BQ],false),0],["MethodByName","MethodByName","",$funcType([$String],[BQ,$Bool],false),0],["Name","Name","",$funcType([],[$String],false),0],["NumField","NumField","",$funcType([],[$Int],false),0],["NumIn","NumIn","",$funcType([],[$Int],false),0],["NumMethod","NumMethod","",$funcType([],[$Int],false),0],["NumOut","NumOut","",$funcType([],[$Int],false),0],["Out","Out","",$funcType([$Int],[AZ],false),0],["PkgPath","PkgPath","",$funcType([],[$String],false),0],["Size","Size","",$funcType([],[$Uintptr],false),0],["String","String","",$funcType([],[$String],false),0],["common","common","reflect",$funcType([],[FF],false),0],["pointers","pointers","reflect",$funcType([],[$Bool],false),0],["ptrTo","ptrTo","reflect",$funcType([],[FF],false),0],["uncommon","uncommon","reflect",$funcType([],[FS],false),0]];BN.init([["rtype","","reflect",BB,"reflect:\"slice\""],["elem","elem","reflect",FF,""]]);BO.init([["name","name","reflect",FR,""],["pkgPath","pkgPath","reflect",FR,""],["typ","typ","reflect",FF,""],["tag","tag","reflect",FR,""],["offset","offset","reflect",$Uintptr,""]]);BP.methods=[["uncommon","uncommon","reflect",$funcType([],[FS],false),0]];GJ.methods=[["Align","Align","",$funcType([],[$Int],false),0],["AssignableTo","AssignableTo","",$funcType([AZ],[$Bool],false),0],["Bits","Bits","",$funcType([],[$Int],false),0],["ChanDir","ChanDir","",$funcType([],[BF],false),0],["Comparable","Comparable","",$funcType([],[$Bool],false),0],["ConvertibleTo","ConvertibleTo","",$funcType([AZ],[$Bool],false),0],["Elem","Elem","",$funcType([],[AZ],false),0],["Field","Field","",$funcType([$Int],[BS],false),-1],["FieldAlign","FieldAlign","",$funcType([],[$Int],false),0],["FieldByIndex","FieldByIndex","",$funcType([GH],[BS],false),-1],["FieldByName","FieldByName","",$funcType([$String],[BS,$Bool],false),-1],["FieldByNameFunc","FieldByNameFunc","",$funcType([GU],[BS,$Bool],false),-1],["Implements","Implements","",$funcType([AZ],[$Bool],false),0],["In","In","",$funcType([$Int],[AZ],false),0],["IsVariadic","IsVariadic","",$funcType([],[$Bool],false),0],["Key","Key","",$funcType([],[AZ],false),0],["Kind","Kind","",$funcType([],[BA],false),0],["Len","Len","",$funcType([],[$Int],false),0],["Method","Method","",$funcType([$Int],[BQ],false),0],["MethodByName","MethodByName","",$funcType([$String],[BQ,$Bool],false),0],["Name","Name","",$funcType([],[$String],false),0],["NumField","NumField","",$funcType([],[$Int],false),0],["NumIn","NumIn","",$funcType([],[$Int],false),0],["NumMethod","NumMethod","",$funcType([],[$Int],false),0],["NumOut","NumOut","",$funcType([],[$Int],false),0],["Out","Out","",$funcType([$Int],[AZ],false),0],["PkgPath","PkgPath","",$funcType([],[$String],false),0],["Size","Size","",$funcType([],[$Uintptr],false),0],["String","String","",$funcType([],[$String],false),0],["common","common","reflect",$funcType([],[FF],false),0],["pointers","pointers","reflect",$funcType([],[$Bool],false),0],["ptrTo","ptrTo","reflect",$funcType([],[FF],false),0],["uncommon","uncommon","reflect",$funcType([],[FS],false),0]];BP.init([["rtype","","reflect",BB,"reflect:\"struct\""],["fields","fields","reflect",FW,""]]);BQ.init([["Name","Name","",$String,""],["PkgPath","PkgPath","",$String,""],["Type","Type","",AZ,""],["Func","Func","",CT,""],["Index","Index","",$Int,""]]);BS.init([["Name","Name","",$String,""],["PkgPath","PkgPath","",$String,""],["Type","Type","",AZ,""],["Tag","Tag","",BT,""],["Offset","Offset","",$Uintptr,""],["Index","Index","",GH,""],["Anonymous","Anonymous","",$Bool,""]]);BT.methods=[["Get","Get","",$funcType([$String],[$String],false),-1]];HD.methods=[["Get","Get","",$funcType([$String],[$String],false),-1]];BU.init([["typ","typ","reflect",GJ,""],["index","index","reflect",GH,""]]);CT.methods=[["Addr","Addr","",$funcType([],[CT],false),-1],["Bool","Bool","",$funcType([],[$Bool],false),-1],["Bytes","Bytes","",$funcType([],[GQ],false),-1],["Call","Call","",$funcType([FX],[FX],false),-1],["CallSlice","CallSlice","",$funcType([FX],[FX],false),-1],["CanAddr","CanAddr","",$funcType([],[$Bool],false),-1],["CanInterface","CanInterface","",$funcType([],[$Bool],false),-1],["CanSet","CanSet","",$funcType([],[$Bool],false),-1],["Cap","Cap","",$funcType([],[$Int],false),-1],["Close","Close","",$funcType([],[],false),-1],["Complex","Complex","",$funcType([],[$Complex128],false),-1],["Convert","Convert","",$funcType([AZ],[CT],false),-1],["Elem","Elem","",$funcType([],[CT],false),-1],["Field","Field","",$funcType([$Int],[CT],false),-1],["FieldByIndex","FieldByIndex","",$funcType([GH],[CT],false),-1],["FieldByName","FieldByName","",$funcType([$String],[CT],false),-1],["FieldByNameFunc","FieldByNameFunc","",$funcType([GU],[CT],false),-1],["Float","Float","",$funcType([],[$Float64],false),-1],["Index","Index","",$funcType([$Int],[CT],false),-1],["Int","Int","",$funcType([],[$Int64],false),-1],["Interface","Interface","",$funcType([],[$emptyInterface],false),-1],["InterfaceData","InterfaceData","",$funcType([],[HF],false),-1],["IsNil","IsNil","",$funcType([],[$Bool],false),-1],["IsValid","IsValid","",$funcType([],[$Bool],false),-1],["Kind","Kind","",$funcType([],[BA],false),-1],["Len","Len","",$funcType([],[$Int],false),-1],["MapIndex","MapIndex","",$funcType([CT],[CT],false),-1],["MapKeys","MapKeys","",$funcType([],[FX],false),-1],["Method","Method","",$funcType([$Int],[CT],false),-1],["MethodByName","MethodByName","",$funcType([$String],[CT],false),-1],["NumField","NumField","",$funcType([],[$Int],false),-1],["NumMethod","NumMethod","",$funcType([],[$Int],false),-1],["OverflowComplex","OverflowComplex","",$funcType([$Complex128],[$Bool],false),-1],["OverflowFloat","OverflowFloat","",$funcType([$Float64],[$Bool],false),-1],["OverflowInt","OverflowInt","",$funcType([$Int64],[$Bool],false),-1],["OverflowUint","OverflowUint","",$funcType([$Uint64],[$Bool],false),-1],["Pointer","Pointer","",$funcType([],[$Uintptr],false),-1],["Recv","Recv","",$funcType([],[CT,$Bool],false),-1],["Send","Send","",$funcType([CT],[],false),-1],["Set","Set","",$funcType([CT],[],false),-1],["SetBool","SetBool","",$funcType([$Bool],[],false),-1],["SetBytes","SetBytes","",$funcType([GQ],[],false),-1],["SetCap","SetCap","",$funcType([$Int],[],false),-1],["SetComplex","SetComplex","",$funcType([$Complex128],[],false),-1],["SetFloat","SetFloat","",$funcType([$Float64],[],false),-1],["SetInt","SetInt","",$funcType([$Int64],[],false),-1],["SetLen","SetLen","",$funcType([$Int],[],false),-1],["SetMapIndex","SetMapIndex","",$funcType([CT,CT],[],false),-1],["SetPointer","SetPointer","",$funcType([$UnsafePointer],[],false),-1],["SetString","SetString","",$funcType([$String],[],false),-1],["SetUint","SetUint","",$funcType([$Uint64],[],false),-1],["Slice","Slice","",$funcType([$Int,$Int],[CT],false),-1],["Slice3","Slice3","",$funcType([$Int,$Int,$Int],[CT],false),-1],["String","String","",$funcType([],[$String],false),-1],["TryRecv","TryRecv","",$funcType([],[CT,$Bool],false),-1],["TrySend","TrySend","",$funcType([CT],[$Bool],false),-1],["Type","Type","",$funcType([],[AZ],false),-1],["Uint","Uint","",$funcType([],[$Uint64],false),-1],["UnsafeAddr","UnsafeAddr","",$funcType([],[$Uintptr],false),-1],["assignTo","assignTo","reflect",$funcType([$String,FF,$UnsafePointer],[CT],false),-1],["call","call","reflect",$funcType([$String,FX],[FX],false),-1],["kind","kind","reflect",$funcType([],[BA],false),2],["mustBe","mustBe","reflect",$funcType([BA],[],false),2],["mustBeAssignable","mustBeAssignable","reflect",$funcType([],[],false),2],["mustBeExported","mustBeExported","reflect",$funcType([],[],false),2],["object","object","reflect",$funcType([],[B.Object],false),-1],["pointer","pointer","reflect",$funcType([],[$UnsafePointer],false),-1],["recv","recv","reflect",$funcType([$Bool],[CT,$Bool],false),-1],["runes","runes","reflect",$funcType([],[GR],false),-1],["send","send","reflect",$funcType([CT,$Bool],[$Bool],false),-1],["setRunes","setRunes","reflect",$funcType([GR],[],false),-1]];HG.methods=[["Addr","Addr","",$funcType([],[CT],false),-1],["Bool","Bool","",$funcType([],[$Bool],false),-1],["Bytes","Bytes","",$funcType([],[GQ],false),-1],["Call","Call","",$funcType([FX],[FX],false),-1],["CallSlice","CallSlice","",$funcType([FX],[FX],false),-1],["CanAddr","CanAddr","",$funcType([],[$Bool],false),-1],["CanInterface","CanInterface","",$funcType([],[$Bool],false),-1],["CanSet","CanSet","",$funcType([],[$Bool],false),-1],["Cap","Cap","",$funcType([],[$Int],false),-1],["Close","Close","",$funcType([],[],false),-1],["Complex","Complex","",$funcType([],[$Complex128],false),-1],["Convert","Convert","",$funcType([AZ],[CT],false),-1],["Elem","Elem","",$funcType([],[CT],false),-1],["Field","Field","",$funcType([$Int],[CT],false),-1],["FieldByIndex","FieldByIndex","",$funcType([GH],[CT],false),-1],["FieldByName","FieldByName","",$funcType([$String],[CT],false),-1],["FieldByNameFunc","FieldByNameFunc","",$funcType([GU],[CT],false),-1],["Float","Float","",$funcType([],[$Float64],false),-1],["Index","Index","",$funcType([$Int],[CT],false),-1],["Int","Int","",$funcType([],[$Int64],false),-1],["Interface","Interface","",$funcType([],[$emptyInterface],false),-1],["InterfaceData","InterfaceData","",$funcType([],[HF],false),-1],["IsNil","IsNil","",$funcType([],[$Bool],false),-1],["IsValid","IsValid","",$funcType([],[$Bool],false),-1],["Kind","Kind","",$funcType([],[BA],false),-1],["Len","Len","",$funcType([],[$Int],false),-1],["MapIndex","MapIndex","",$funcType([CT],[CT],false),-1],["MapKeys","MapKeys","",$funcType([],[FX],false),-1],["Method","Method","",$funcType([$Int],[CT],false),-1],["MethodByName","MethodByName","",$funcType([$String],[CT],false),-1],["NumField","NumField","",$funcType([],[$Int],false),-1],["NumMethod","NumMethod","",$funcType([],[$Int],false),-1],["OverflowComplex","OverflowComplex","",$funcType([$Complex128],[$Bool],false),-1],["OverflowFloat","OverflowFloat","",$funcType([$Float64],[$Bool],false),-1],["OverflowInt","OverflowInt","",$funcType([$Int64],[$Bool],false),-1],["OverflowUint","OverflowUint","",$funcType([$Uint64],[$Bool],false),-1],["Pointer","Pointer","",$funcType([],[$Uintptr],false),-1],["Recv","Recv","",$funcType([],[CT,$Bool],false),-1],["Send","Send","",$funcType([CT],[],false),-1],["Set","Set","",$funcType([CT],[],false),-1],["SetBool","SetBool","",$funcType([$Bool],[],false),-1],["SetBytes","SetBytes","",$funcType([GQ],[],false),-1],["SetCap","SetCap","",$funcType([$Int],[],false),-1],["SetComplex","SetComplex","",$funcType([$Complex128],[],false),-1],["SetFloat","SetFloat","",$funcType([$Float64],[],false),-1],["SetInt","SetInt","",$funcType([$Int64],[],false),-1],["SetLen","SetLen","",$funcType([$Int],[],false),-1],["SetMapIndex","SetMapIndex","",$funcType([CT,CT],[],false),-1],["SetPointer","SetPointer","",$funcType([$UnsafePointer],[],false),-1],["SetString","SetString","",$funcType([$String],[],false),-1],["SetUint","SetUint","",$funcType([$Uint64],[],false),-1],["Slice","Slice","",$funcType([$Int,$Int],[CT],false),-1],["Slice3","Slice3","",$funcType([$Int,$Int,$Int],[CT],false),-1],["String","String","",$funcType([],[$String],false),-1],["TryRecv","TryRecv","",$funcType([],[CT,$Bool],false),-1],["TrySend","TrySend","",$funcType([CT],[$Bool],false),-1],["Type","Type","",$funcType([],[AZ],false),-1],["Uint","Uint","",$funcType([],[$Uint64],false),-1],["UnsafeAddr","UnsafeAddr","",$funcType([],[$Uintptr],false),-1],["assignTo","assignTo","reflect",$funcType([$String,FF,$UnsafePointer],[CT],false),-1],["call","call","reflect",$funcType([$String,FX],[FX],false),-1],["kind","kind","reflect",$funcType([],[BA],false),2],["mustBe","mustBe","reflect",$funcType([BA],[],false),2],["mustBeAssignable","mustBeAssignable","reflect",$funcType([],[],false),2],["mustBeExported","mustBeExported","reflect",$funcType([],[],false),2],["object","object","reflect",$funcType([],[B.Object],false),-1],["pointer","pointer","reflect",$funcType([],[$UnsafePointer],false),-1],["recv","recv","reflect",$funcType([$Bool],[CT,$Bool],false),-1],["runes","runes","reflect",$funcType([],[GR],false),-1],["send","send","reflect",$funcType([CT,$Bool],[$Bool],false),-1],["setRunes","setRunes","reflect",$funcType([GR],[],false),-1]];CT.init([["typ","typ","reflect",FF,""],["ptr","ptr","reflect",$UnsafePointer,""],["flag","","reflect",CU,""]]);CU.methods=[["kind","kind","reflect",$funcType([],[BA],false),-1],["mustBe","mustBe","reflect",$funcType([BA],[],false),-1],["mustBeAssignable","mustBeAssignable","reflect",$funcType([],[],false),-1],["mustBeExported","mustBeExported","reflect",$funcType([],[],false),-1]];HH.methods=[["kind","kind","reflect",$funcType([],[BA],false),-1],["mustBe","mustBe","reflect",$funcType([BA],[],false),-1],["mustBeAssignable","mustBeAssignable","reflect",$funcType([],[],false),-1],["mustBeExported","mustBeExported","reflect",$funcType([],[],false),-1]];HI.methods=[["Error","Error","",$funcType([],[$String],false),-1]];CX.init([["Method","Method","",$String,""],["Kind","Kind","",BA,""]]);CZ.init([["itab","itab","reflect",GA,""],["word","word","reflect",$UnsafePointer,""]]);F=false;BR=new FO(["invalid","bool","int","int8","int16","int32","int64","uint","uint8","uint16","uint32","uint64","uintptr","float32","float64","complex64","complex128","array","chan","func","interface","map","ptr","slice","string","struct","unsafe.Pointer"]);DG=$assertType(O(new $Uint8(0)),FF);G();}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["fmt"]=(function(){var $pkg={},D,E,A,F,G,B,H,C,CE,CF,CG,CH,CI,CJ,CK,CN,CO,DI,DJ,DK,L,M,AF,AG,AH,AI,AJ,AK,BE,BR,BS,BT,I,J,N,O,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AL,AZ,BA,BB,BU,BY,CA,CB,K,P,AM,AP,AQ,AT,AW,AX,AY,BC,BD,BV,BW,CC;D=$packages["errors"];E=$packages["io"];A=$packages["math"];F=$packages["os"];G=$packages["reflect"];B=$packages["strconv"];H=$packages["sync"];C=$packages["unicode/utf8"];L=$pkg.fmtFlags=$newType(0,$kindStruct,"fmt.fmtFlags","fmtFlags","fmt",function(widPresent_,precPresent_,minus_,plus_,sharp_,space_,unicode_,uniQuote_,zero_,plusV_,sharpV_){this.$val=this;this.widPresent=widPresent_!==undefined?widPresent_:false;this.precPresent=precPresent_!==undefined?precPresent_:false;this.minus=minus_!==undefined?minus_:false;this.plus=plus_!==undefined?plus_:false;this.sharp=sharp_!==undefined?sharp_:false;this.space=space_!==undefined?space_:false;this.unicode=unicode_!==undefined?unicode_:false;this.uniQuote=uniQuote_!==undefined?uniQuote_:false;this.zero=zero_!==undefined?zero_:false;this.plusV=plusV_!==undefined?plusV_:false;this.sharpV=sharpV_!==undefined?sharpV_:false;});M=$pkg.fmt=$newType(0,$kindStruct,"fmt.fmt","fmt","fmt",function(intbuf_,buf_,wid_,prec_,fmtFlags_){this.$val=this;this.intbuf=intbuf_!==undefined?intbuf_:DI.zero();this.buf=buf_!==undefined?buf_:CJ.nil;this.wid=wid_!==undefined?wid_:0;this.prec=prec_!==undefined?prec_:0;this.fmtFlags=fmtFlags_!==undefined?fmtFlags_:new L.Ptr();});AF=$pkg.State=$newType(8,$kindInterface,"fmt.State","State","fmt",null);AG=$pkg.Formatter=$newType(8,$kindInterface,"fmt.Formatter","Formatter","fmt",null);AH=$pkg.Stringer=$newType(8,$kindInterface,"fmt.Stringer","Stringer","fmt",null);AI=$pkg.GoStringer=$newType(8,$kindInterface,"fmt.GoStringer","GoStringer","fmt",null);AJ=$pkg.buffer=$newType(12,$kindSlice,"fmt.buffer","buffer","fmt",null);AK=$pkg.pp=$newType(0,$kindStruct,"fmt.pp","pp","fmt",function(n_,panicking_,erroring_,buf_,arg_,value_,reordered_,goodArgNum_,runeBuf_,fmt_){this.$val=this;this.n=n_!==undefined?n_:0;this.panicking=panicking_!==undefined?panicking_:false;this.erroring=erroring_!==undefined?erroring_:false;this.buf=buf_!==undefined?buf_:AJ.nil;this.arg=arg_!==undefined?arg_:$ifaceNil;this.value=value_!==undefined?value_:new G.Value.Ptr();this.reordered=reordered_!==undefined?reordered_:false;this.goodArgNum=goodArgNum_!==undefined?goodArgNum_:false;this.runeBuf=runeBuf_!==undefined?runeBuf_:CO.zero();this.fmt=fmt_!==undefined?fmt_:new M.Ptr();});BE=$pkg.runeUnreader=$newType(8,$kindInterface,"fmt.runeUnreader","runeUnreader","fmt",null);BR=$pkg.scanError=$newType(0,$kindStruct,"fmt.scanError","scanError","fmt",function(err_){this.$val=this;this.err=err_!==undefined?err_:$ifaceNil;});BS=$pkg.ss=$newType(0,$kindStruct,"fmt.ss","ss","fmt",function(rr_,buf_,peekRune_,prevRune_,count_,atEOF_,ssave_){this.$val=this;this.rr=rr_!==undefined?rr_:$ifaceNil;this.buf=buf_!==undefined?buf_:AJ.nil;this.peekRune=peekRune_!==undefined?peekRune_:0;this.prevRune=prevRune_!==undefined?prevRune_:0;this.count=count_!==undefined?count_:0;this.atEOF=atEOF_!==undefined?atEOF_:false;this.ssave=ssave_!==undefined?ssave_:new BT.Ptr();});BT=$pkg.ssave=$newType(0,$kindStruct,"fmt.ssave","ssave","fmt",function(validSave_,nlIsEnd_,nlIsSpace_,argLimit_,limit_,maxWid_){this.$val=this;this.validSave=validSave_!==undefined?validSave_:false;this.nlIsEnd=nlIsEnd_!==undefined?nlIsEnd_:false;this.nlIsSpace=nlIsSpace_!==undefined?nlIsSpace_:false;this.argLimit=argLimit_!==undefined?argLimit_:0;this.limit=limit_!==undefined?limit_:0;this.maxWid=maxWid_!==undefined?maxWid_:0;});K=function(){var a;a=0;while(a<65){(a<0||a>=I.$length)?$throwRuntimeError("index out of range"):I.$array[I.$offset+a]=48;(a<0||a>=J.$length)?$throwRuntimeError("index out of range"):J.$array[J.$offset+a]=32;a=a+(1)>>0;}};M.Ptr.prototype.clearflags=function(){var a;a=this;$copy(a.fmtFlags,new L.Ptr(false,false,false,false,false,false,false,false,false,false,false),L);};M.prototype.clearflags=function(){return this.$val.clearflags();};M.Ptr.prototype.init=function(a){var b;b=this;b.buf=a;b.clearflags();};M.prototype.init=function(a){return this.$val.init(a);};M.Ptr.prototype.computePadding=function(a){var b=CE.nil,c=0,d=0,e,f,g,h,i,j,k,l,m,n,o,p;e=this;f=!e.fmtFlags.minus;g=e.wid;if(g<0){f=false;g=-g;}g=g-(a)>>0;if(g>0){if(f&&e.fmtFlags.zero){h=I;i=g;j=0;b=h;c=i;d=j;return[b,c,d];}if(f){k=J;l=g;m=0;b=k;c=l;d=m;return[b,c,d];}else{n=J;o=0;p=g;b=n;c=o;d=p;return[b,c,d];}}return[b,c,d];};M.prototype.computePadding=function(a){return this.$val.computePadding(a);};M.Ptr.prototype.writePadding=function(a,b){var c,d;c=this;while(a>0){d=a;if(d>65){d=65;}c.buf.Write($subslice(b,0,d));a=a-(d)>>0;}};M.prototype.writePadding=function(a,b){return this.$val.writePadding(a,b);};M.Ptr.prototype.pad=function(a){var b,c,d,e,f;b=this;if(!b.fmtFlags.widPresent||(b.wid===0)){b.buf.Write(a);return;}c=b.computePadding(C.RuneCount(a));d=c[0];e=c[1];f=c[2];if(e>0){b.writePadding(e,d);}b.buf.Write(a);if(f>0){b.writePadding(f,d);}};M.prototype.pad=function(a){return this.$val.pad(a);};M.Ptr.prototype.padString=function(a){var b,c,d,e,f;b=this;if(!b.fmtFlags.widPresent||(b.wid===0)){b.buf.WriteString(a);return;}c=b.computePadding(C.RuneCountInString(a));d=c[0];e=c[1];f=c[2];if(e>0){b.writePadding(e,d);}b.buf.WriteString(a);if(f>0){b.writePadding(f,d);}};M.prototype.padString=function(a){return this.$val.padString(a);};M.Ptr.prototype.fmt_boolean=function(a){var b;b=this;if(a){b.pad(N);}else{b.pad(O);}};M.prototype.fmt_boolean=function(a){return this.$val.fmt_boolean(a);};M.Ptr.prototype.integer=function(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;e=this;if(e.fmtFlags.precPresent&&(e.prec===0)&&(a.$high===0&&a.$low===0)){return;}f=$subslice(new CE(e.intbuf),0);if(e.fmtFlags.widPresent){g=e.wid;if((b.$high===0&&b.$low===16)&&e.fmtFlags.sharp){g=g+(2)>>0;}if(g>65){f=CE.make(g);}}h=c===true&&(a.$high<0||(a.$high===0&&a.$low<0));if(h){a=new $Int64(-a.$high,-a.$low);}i=0;if(e.fmtFlags.precPresent){i=e.prec;e.fmtFlags.zero=false;}else if(e.fmtFlags.zero&&e.fmtFlags.widPresent&&!e.fmtFlags.minus&&e.wid>0){i=e.wid;if(h||e.fmtFlags.plus||e.fmtFlags.space){i=i-(1)>>0;}}j=f.$length;k=new $Uint64(a.$high,a.$low);l=b;if((l.$high===0&&l.$low===10)){while((k.$high>0||(k.$high===0&&k.$low>=10))){j=j-(1)>>0;m=$div64(k,new $Uint64(0,10),false);(j<0||j>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+j]=((n=new $Uint64(0+k.$high,48+k.$low),o=$mul64(m,new $Uint64(0,10)),new $Uint64(n.$high-o.$high,n.$low-o.$low)).$low<<24>>>24);k=m;}}else if((l.$high===0&&l.$low===16)){while((k.$high>0||(k.$high===0&&k.$low>=16))){j=j-(1)>>0;(j<0||j>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+j]=d.charCodeAt($flatten64(new $Uint64(k.$high&0,(k.$low&15)>>>0)));k=$shiftRightUint64(k,(4));}}else if((l.$high===0&&l.$low===8)){while((k.$high>0||(k.$high===0&&k.$low>=8))){j=j-(1)>>0;(j<0||j>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+j]=((p=new $Uint64(k.$high&0,(k.$low&7)>>>0),new $Uint64(0+p.$high,48+p.$low)).$low<<24>>>24);k=$shiftRightUint64(k,(3));}}else if((l.$high===0&&l.$low===2)){while((k.$high>0||(k.$high===0&&k.$low>=2))){j=j-(1)>>0;(j<0||j>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+j]=((q=new $Uint64(k.$high&0,(k.$low&1)>>>0),new $Uint64(0+q.$high,48+q.$low)).$low<<24>>>24);k=$shiftRightUint64(k,(1));}}else{$panic(new $String("fmt: unknown base; can't happen"));}j=j-(1)>>0;(j<0||j>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+j]=d.charCodeAt($flatten64(k));while(j>0&&i>(f.$length-j>>0)){j=j-(1)>>0;(j<0||j>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+j]=48;}if(e.fmtFlags.sharp){r=b;if((r.$high===0&&r.$low===8)){if(!((((j<0||j>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+j])===48))){j=j-(1)>>0;(j<0||j>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+j]=48;}}else if((r.$high===0&&r.$low===16)){j=j-(1)>>0;(j<0||j>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+j]=(120+d.charCodeAt(10)<<24>>>24)-97<<24>>>24;j=j-(1)>>0;(j<0||j>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+j]=48;}}if(e.fmtFlags.unicode){j=j-(1)>>0;(j<0||j>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+j]=43;j=j-(1)>>0;(j<0||j>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+j]=85;}if(h){j=j-(1)>>0;(j<0||j>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+j]=45;}else if(e.fmtFlags.plus){j=j-(1)>>0;(j<0||j>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+j]=43;}else if(e.fmtFlags.space){j=j-(1)>>0;(j<0||j>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+j]=32;}if(e.fmtFlags.unicode&&e.fmtFlags.uniQuote&&(a.$high>0||(a.$high===0&&a.$low>=0))&&(a.$high<0||(a.$high===0&&a.$low<=1114111))&&B.IsPrint(((a.$low+((a.$high>>31)*4294967296))>>0))){s=C.RuneLen(((a.$low+((a.$high>>31)*4294967296))>>0));t=(2+s>>0)+1>>0;$copySlice($subslice(f,(j-t>>0)),$subslice(f,j));j=j-(t)>>0;u=f.$length-t>>0;(u<0||u>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+u]=32;u=u+(1)>>0;(u<0||u>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+u]=39;u=u+(1)>>0;C.EncodeRune($subslice(f,u),((a.$low+((a.$high>>31)*4294967296))>>0));u=u+(s)>>0;(u<0||u>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+u]=39;}e.pad($subslice(f,j));};M.prototype.integer=function(a,b,c,d){return this.$val.integer(a,b,c,d);};M.Ptr.prototype.truncate=function(a){var b,c,d,e,f,g;b=this;if(b.fmtFlags.precPresent&&b.prec>0;e+=f[1];}}return a;};M.prototype.truncate=function(a){return this.$val.truncate(a);};M.Ptr.prototype.fmt_s=function(a){var b;b=this;a=b.truncate(a);b.padString(a);};M.prototype.fmt_s=function(a){return this.$val.fmt_s(a);};M.Ptr.prototype.fmt_sbx=function(a,b,c){var d,e,f,g,h,i;d=this;e=b.$length;if(b===CE.nil){e=a.length;}f=(c.charCodeAt(10)-97<<24>>>24)+120<<24>>>24;g=CE.nil;h=0;while(h0&&d.fmtFlags.space){g=$append(g,32);}if(d.fmtFlags.sharp&&(d.fmtFlags.space||(h===0))){g=$append(g,48,f);}i=0;if(b===CE.nil){i=a.charCodeAt(h);}else{i=((h<0||h>=b.$length)?$throwRuntimeError("index out of range"):b.$array[b.$offset+h]);}g=$append(g,c.charCodeAt((i>>>4<<24>>>24)),c.charCodeAt(((i&15)>>>0)));h=h+(1)>>0;}d.pad(g);};M.prototype.fmt_sbx=function(a,b,c){return this.$val.fmt_sbx(a,b,c);};M.Ptr.prototype.fmt_sx=function(a,b){var c;c=this;if(c.fmtFlags.precPresent&&c.prec>31)*4294967296))>>0));}else{c=B.AppendQuoteRune($subslice(new CE(b.intbuf),0,0),((a.$low+((a.$high>>31)*4294967296))>>0));}b.pad(c);};M.prototype.fmt_qc=function(a){return this.$val.fmt_qc(a);};P=function(a,b){if(a.fmtFlags.precPresent){return a.prec;}return b;};M.Ptr.prototype.formatFloat=function(a,b,c,d){var $deferred=[],$err=null,e,f;try{$deferFrames.push($deferred);e=this;f=B.AppendFloat($subslice(new CE(e.intbuf),0,1),a,b,c,d);if((((1<0||1>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+1])===45)||(((1<0||1>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+1])===43)){f=$subslice(f,1);}else{(0<0||0>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+0]=43;}if(A.IsInf(a,0)){if(e.fmtFlags.zero){$deferred.push([(function(){e.fmtFlags.zero=true;}),[]]);e.fmtFlags.zero=false;}}if(e.fmtFlags.zero&&e.fmtFlags.widPresent&&e.wid>f.$length){if(e.fmtFlags.space&&a>=0){e.buf.WriteByte(32);e.wid=e.wid-(1)>>0;}else if(e.fmtFlags.plus||a<0){e.buf.WriteByte(((0<0||0>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+0]));e.wid=e.wid-(1)>>0;}e.pad($subslice(f,1));return;}if(e.fmtFlags.space&&(((0<0||0>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+0])===43)){(0<0||0>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+0]=32;e.pad(f);return;}if(e.fmtFlags.plus||(((0<0||0>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+0])===45)||A.IsInf(a,0)){e.pad(f);return;}e.pad($subslice(f,1));}catch(err){$err=err;}finally{$deferFrames.pop();$callDeferred($deferred,$err);}};M.prototype.formatFloat=function(a,b,c,d){return this.$val.formatFloat(a,b,c,d);};M.Ptr.prototype.fmt_e64=function(a){var b;b=this;b.formatFloat(a,101,P(b,6),64);};M.prototype.fmt_e64=function(a){return this.$val.fmt_e64(a);};M.Ptr.prototype.fmt_E64=function(a){var b;b=this;b.formatFloat(a,69,P(b,6),64);};M.prototype.fmt_E64=function(a){return this.$val.fmt_E64(a);};M.Ptr.prototype.fmt_f64=function(a){var b;b=this;b.formatFloat(a,102,P(b,6),64);};M.prototype.fmt_f64=function(a){return this.$val.fmt_f64(a);};M.Ptr.prototype.fmt_g64=function(a){var b;b=this;b.formatFloat(a,103,P(b,-1),64);};M.prototype.fmt_g64=function(a){return this.$val.fmt_g64(a);};M.Ptr.prototype.fmt_G64=function(a){var b;b=this;b.formatFloat(a,71,P(b,-1),64);};M.prototype.fmt_G64=function(a){return this.$val.fmt_G64(a);};M.Ptr.prototype.fmt_fb64=function(a){var b;b=this;b.formatFloat(a,98,0,64);};M.prototype.fmt_fb64=function(a){return this.$val.fmt_fb64(a);};M.Ptr.prototype.fmt_e32=function(a){var b;b=this;b.formatFloat($coerceFloat32(a),101,P(b,6),32);};M.prototype.fmt_e32=function(a){return this.$val.fmt_e32(a);};M.Ptr.prototype.fmt_E32=function(a){var b;b=this;b.formatFloat($coerceFloat32(a),69,P(b,6),32);};M.prototype.fmt_E32=function(a){return this.$val.fmt_E32(a);};M.Ptr.prototype.fmt_f32=function(a){var b;b=this;b.formatFloat($coerceFloat32(a),102,P(b,6),32);};M.prototype.fmt_f32=function(a){return this.$val.fmt_f32(a);};M.Ptr.prototype.fmt_g32=function(a){var b;b=this;b.formatFloat($coerceFloat32(a),103,P(b,-1),32);};M.prototype.fmt_g32=function(a){return this.$val.fmt_g32(a);};M.Ptr.prototype.fmt_G32=function(a){var b;b=this;b.formatFloat($coerceFloat32(a),71,P(b,-1),32);};M.prototype.fmt_G32=function(a){return this.$val.fmt_G32(a);};M.Ptr.prototype.fmt_fb32=function(a){var b;b=this;b.formatFloat($coerceFloat32(a),98,0,32);};M.prototype.fmt_fb32=function(a){return this.$val.fmt_fb32(a);};M.Ptr.prototype.fmt_c64=function(a,b){var c;c=this;c.fmt_complex($coerceFloat32(a.$real),$coerceFloat32(a.$imag),32,b);};M.prototype.fmt_c64=function(a,b){return this.$val.fmt_c64(a,b);};M.Ptr.prototype.fmt_c128=function(a,b){var c;c=this;c.fmt_complex(a.$real,a.$imag,64,b);};M.prototype.fmt_c128=function(a,b){return this.$val.fmt_c128(a,b);};M.Ptr.prototype.fmt_complex=function(a,b,c,d){var e,f,g,h,i,j;e=this;e.buf.WriteByte(40);f=e.fmtFlags.plus;g=e.fmtFlags.space;h=e.wid;i=0;while(true){j=d;if(j===98){e.formatFloat(a,98,0,c);}else if(j===101){e.formatFloat(a,101,P(e,6),c);}else if(j===69){e.formatFloat(a,69,P(e,6),c);}else if(j===102||j===70){e.formatFloat(a,102,P(e,6),c);}else if(j===103){e.formatFloat(a,103,P(e,-1),c);}else if(j===71){e.formatFloat(a,71,P(e,-1),c);}if(!((i===0))){break;}e.fmtFlags.plus=true;e.fmtFlags.space=false;e.wid=h;a=b;i=i+(1)>>0;}e.fmtFlags.space=g;e.fmtFlags.plus=f;e.wid=h;e.buf.Write(AA);};M.prototype.fmt_complex=function(a,b,c,d){return this.$val.fmt_complex(a,b,c,d);};$ptrType(AJ).prototype.Write=function(a){var b=0,c=$ifaceNil,d,e,f;d=this;d.$set($appendSlice(d.$get(),a));e=a.$length;f=$ifaceNil;b=e;c=f;return[b,c];};$ptrType(AJ).prototype.WriteString=function(a){var b=0,c=$ifaceNil,d,e,f;d=this;d.$set($appendSlice(d.$get(),new AJ($stringToBytes(a))));e=a.length;f=$ifaceNil;b=e;c=f;return[b,c];};$ptrType(AJ).prototype.WriteByte=function(a){var b;b=this;b.$set($append(b.$get(),a));return $ifaceNil;};$ptrType(AJ).prototype.WriteRune=function(a){var b,c,d,e,f;b=this;if(a<128){b.$set($append(b.$get(),(a<<24>>>24)));return $ifaceNil;}c=b.$get();d=c.$length;while((d+4>>0)>c.$capacity){c=$append(c,0);}f=C.EncodeRune((e=$subslice(c,d,(d+4>>0)),$subslice(new CE(e.$array),e.$offset,e.$offset+e.$length)),a);b.$set($subslice(c,0,(d+f>>0)));return $ifaceNil;};AM=function(){var a;a=$assertType(AL.Get(),CI);a.panicking=false;a.erroring=false;a.fmt.init(new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},a));return a;};AK.Ptr.prototype.free=function(){var a;a=this;if(a.buf.$capacity>1024){return;}a.buf=$subslice(a.buf,0,0);a.arg=$ifaceNil;a.value=new G.Value.Ptr(CK.nil,0,0);AL.Put(a);};AK.prototype.free=function(){return this.$val.free();};AK.Ptr.prototype.Width=function(){var a=0,b=false,c,d,e;c=this;d=c.fmt.wid;e=c.fmt.fmtFlags.widPresent;a=d;b=e;return[a,b];};AK.prototype.Width=function(){return this.$val.Width();};AK.Ptr.prototype.Precision=function(){var a=0,b=false,c,d,e;c=this;d=c.fmt.prec;e=c.fmt.fmtFlags.precPresent;a=d;b=e;return[a,b];};AK.prototype.Precision=function(){return this.$val.Precision();};AK.Ptr.prototype.Flag=function(a){var b,c;b=this;c=a;if(c===45){return b.fmt.fmtFlags.minus;}else if(c===43){return b.fmt.fmtFlags.plus;}else if(c===35){return b.fmt.fmtFlags.sharp;}else if(c===32){return b.fmt.fmtFlags.space;}else if(c===48){return b.fmt.fmtFlags.zero;}return false;};AK.prototype.Flag=function(a){return this.$val.Flag(a);};AK.Ptr.prototype.add=function(a){var b;b=this;new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b).WriteRune(a);};AK.prototype.add=function(a){return this.$val.add(a);};AK.Ptr.prototype.Write=function(a){var b=0,c=$ifaceNil,d,e;d=this;e=new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d).Write(a);b=e[0];c=e[1];return[b,c];};AK.prototype.Write=function(a){return this.$val.Write(a);};AP=$pkg.Sprintf=function(a,b){var c,d;c=AM();c.doPrintf(a,b);d=$bytesToString(c.buf);c.free();return d;};AQ=$pkg.Errorf=function(a,b){return D.New(AP(a,b));};AT=$pkg.Sprint=function(a){var b,c;b=AM();b.doPrint(a,false,false);c=$bytesToString(b.buf);b.free();return c;};AW=$pkg.Sprintln=function(a){var b,c;b=AM();b.doPrint(a,true,true);c=$bytesToString(b.buf);b.free();return c;};AX=function(a,b){var c;a=a;c=a.Field(b);if((c.Kind()===20)&&!c.IsNil()){c=c.Elem();}return c;};AY=function(a,b,c){var d=0,e=false,f=0,g,h,i;if(b>=c){g=0;h=false;i=c;d=g;e=h;f=i;return[d,e,f];}f=b;while(f>0)+((a.charCodeAt(f)-48<<24>>>24)>>0)>>0;e=true;f=f+(1)>>0;}return[d,e,f];};AK.Ptr.prototype.unknownType=function(a){var b;b=this;a=a;if(!a.IsValid()){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b).Write(R);return;}new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b).WriteByte(63);new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b).WriteString(a.Type().String());new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b).WriteByte(63);};AK.prototype.unknownType=function(a){return this.$val.unknownType(a);};AK.Ptr.prototype.badVerb=function(a){var b;b=this;b.erroring=true;b.add(37);b.add(33);b.add(a);b.add(40);if(!($interfaceIsEqual(b.arg,$ifaceNil))){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b).WriteString(G.TypeOf(b.arg).String());b.add(61);b.printArg(b.arg,118,0);}else if(b.value.IsValid()){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b).WriteString(b.value.Type().String());b.add(61);b.printValue(b.value,118,0);}else{new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b).Write(R);}b.add(41);b.erroring=false;};AK.prototype.badVerb=function(a){return this.$val.badVerb(a);};AK.Ptr.prototype.fmtBool=function(a,b){var c,d;c=this;d=b;if(d===116||d===118){c.fmt.fmt_boolean(a);}else{c.badVerb(b);}};AK.prototype.fmtBool=function(a,b){return this.$val.fmtBool(a,b);};AK.Ptr.prototype.fmtC=function(a){var b,c,d,e;b=this;c=((a.$low+((a.$high>>31)*4294967296))>>0);if(!((d=new $Int64(0,c),(d.$high===a.$high&&d.$low===a.$low)))){c=65533;}e=C.EncodeRune($subslice(new CE(b.runeBuf),0,4),c);b.fmt.pad($subslice(new CE(b.runeBuf),0,e));};AK.prototype.fmtC=function(a){return this.$val.fmtC(a);};AK.Ptr.prototype.fmtInt64=function(a,b){var c,d;c=this;d=b;if(d===98){c.fmt.integer(a,new $Uint64(0,2),true,"0123456789abcdef");}else if(d===99){c.fmtC(a);}else if(d===100||d===118){c.fmt.integer(a,new $Uint64(0,10),true,"0123456789abcdef");}else if(d===111){c.fmt.integer(a,new $Uint64(0,8),true,"0123456789abcdef");}else if(d===113){if((0=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+g]);if(h>0){if(e.fmt.fmtFlags.sharpV){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).Write(Q);}else{new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).WriteByte(32);}}e.printArg(new $Uint8(i),118,d+1>>0);g++;}if(e.fmt.fmtFlags.sharpV){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).WriteByte(125);}else{new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).WriteByte(93);}return;}j=b;if(j===115){e.fmt.fmt_s($bytesToString(a));}else if(j===120){e.fmt.fmt_bx(a,"0123456789abcdef");}else if(j===88){e.fmt.fmt_bx(a,"0123456789ABCDEF");}else if(j===113){e.fmt.fmt_q($bytesToString(a));}else{e.badVerb(b);}};AK.prototype.fmtBytes=function(a,b,c,d){return this.$val.fmtBytes(a,b,c,d);};AK.Ptr.prototype.fmtPointer=function(a,b){var c,d,e,f,g;c=this;a=a;d=true;e=b;if(e===112||e===118){}else if(e===98||e===100||e===111||e===120||e===88){d=false;}else{c.badVerb(b);return;}f=0;g=a.Kind();if(g===18||g===19||g===21||g===22||g===23||g===26){f=a.Pointer();}else{c.badVerb(b);return;}if(c.fmt.fmtFlags.sharpV){c.add(40);new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c).WriteString(a.Type().String());c.add(41);c.add(40);if(f===0){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c).Write(T);}else{c.fmt0x64(new $Uint64(0,f.constructor===Number?f:1),true);}c.add(41);}else if((b===118)&&(f===0)){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c).Write(R);}else{if(d){c.fmt0x64(new $Uint64(0,f.constructor===Number?f:1),!c.fmt.fmtFlags.sharp);}else{c.fmtUint64(new $Uint64(0,f.constructor===Number?f:1),b);}}};AK.prototype.fmtPointer=function(a,b){return this.$val.fmtPointer(a,b);};AK.Ptr.prototype.catchPanic=function(a,b){var c,d,e;c=this;d=$recover();if(!($interfaceIsEqual(d,$ifaceNil))){e=G.ValueOf(a);if((e.Kind()===22)&&e.IsNil()){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c).Write(R);return;}if(c.panicking){$panic(d);}c.fmt.clearflags();new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c).Write(V);c.add(b);new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c).Write(Y);c.panicking=true;c.printArg(d,118,0);c.panicking=false;new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c).WriteByte(41);}};AK.prototype.catchPanic=function(a,b){return this.$val.catchPanic(a,b);};AK.Ptr.prototype.clearSpecialFlags=function(){var a=false,b=false,c;c=this;a=c.fmt.fmtFlags.plusV;if(a){c.fmt.fmtFlags.plus=true;c.fmt.fmtFlags.plusV=false;}b=c.fmt.fmtFlags.sharpV;if(b){c.fmt.fmtFlags.sharp=true;c.fmt.fmtFlags.sharpV=false;}return[a,b];};AK.prototype.clearSpecialFlags=function(){return this.$val.clearSpecialFlags();};AK.Ptr.prototype.restoreSpecialFlags=function(a,b){var c;c=this;if(a){c.fmt.fmtFlags.plus=false;c.fmt.fmtFlags.plusV=true;}if(b){c.fmt.fmtFlags.sharp=false;c.fmt.fmtFlags.sharpV=true;}};AK.prototype.restoreSpecialFlags=function(a,b){return this.$val.restoreSpecialFlags(a,b);};AK.Ptr.prototype.handleMethods=function(a,b){var c=false,$deferred=[],$err=null,d,e,f,g,h,i,j,k,l,m,n;try{$deferFrames.push($deferred);d=this;if(d.erroring){return c;}e=$assertType(d.arg,AG,true);f=e[0];g=e[1];if(g){c=true;h=d.clearSpecialFlags();$deferred.push([$methodVal(d,"restoreSpecialFlags"),[h[0],h[1]]]);$deferred.push([$methodVal(d,"catchPanic"),[d.arg,a]]);f.Format(d,a);return c;}if(d.fmt.fmtFlags.sharpV){i=$assertType(d.arg,AI,true);j=i[0];k=i[1];if(k){c=true;$deferred.push([$methodVal(d,"catchPanic"),[d.arg,a]]);d.fmt.fmt_s(j.GoString());return c;}}else{l=a;if(l===118||l===115||l===120||l===88||l===113){n=d.arg;if($assertType(n,$error,true)[1]){m=n;c=true;$deferred.push([$methodVal(d,"catchPanic"),[d.arg,a]]);d.printArg(new $String(m.Error()),a,b);return c;}else if($assertType(n,AH,true)[1]){m=n;c=true;$deferred.push([$methodVal(d,"catchPanic"),[d.arg,a]]);d.printArg(new $String(m.String()),a,b);return c;}}}c=false;return c;}catch(err){$err=err;}finally{$deferFrames.pop();$callDeferred($deferred,$err);return c;}};AK.prototype.handleMethods=function(a,b){return this.$val.handleMethods(a,b);};AK.Ptr.prototype.printArg=function(a,b,c){var d=false,e,f,g,h,i;e=this;e.arg=a;e.value=new G.Value.Ptr(CK.nil,0,0);if($interfaceIsEqual(a,$ifaceNil)){if((b===84)||(b===118)){e.fmt.pad(R);}else{e.badVerb(b);}d=false;return d;}f=b;if(f===84){e.printArg(new $String(G.TypeOf(a).String()),115,0);d=false;return d;}else if(f===112){e.fmtPointer(G.ValueOf(a),b);d=false;return d;}h=a;if($assertType(h,$Bool,true)[1]){g=h.$val;e.fmtBool(g,b);}else if($assertType(h,$Float32,true)[1]){g=h.$val;e.fmtFloat32(g,b);}else if($assertType(h,$Float64,true)[1]){g=h.$val;e.fmtFloat64(g,b);}else if($assertType(h,$Complex64,true)[1]){g=h.$val;e.fmtComplex64(g,b);}else if($assertType(h,$Complex128,true)[1]){g=h.$val;e.fmtComplex128(g,b);}else if($assertType(h,$Int,true)[1]){g=h.$val;e.fmtInt64(new $Int64(0,g),b);}else if($assertType(h,$Int8,true)[1]){g=h.$val;e.fmtInt64(new $Int64(0,g),b);}else if($assertType(h,$Int16,true)[1]){g=h.$val;e.fmtInt64(new $Int64(0,g),b);}else if($assertType(h,$Int32,true)[1]){g=h.$val;e.fmtInt64(new $Int64(0,g),b);}else if($assertType(h,$Int64,true)[1]){g=h.$val;e.fmtInt64(g,b);}else if($assertType(h,$Uint,true)[1]){g=h.$val;e.fmtUint64(new $Uint64(0,g),b);}else if($assertType(h,$Uint8,true)[1]){g=h.$val;e.fmtUint64(new $Uint64(0,g),b);}else if($assertType(h,$Uint16,true)[1]){g=h.$val;e.fmtUint64(new $Uint64(0,g),b);}else if($assertType(h,$Uint32,true)[1]){g=h.$val;e.fmtUint64(new $Uint64(0,g),b);}else if($assertType(h,$Uint64,true)[1]){g=h.$val;e.fmtUint64(g,b);}else if($assertType(h,$Uintptr,true)[1]){g=h.$val;e.fmtUint64(new $Uint64(0,g.constructor===Number?g:1),b);}else if($assertType(h,$String,true)[1]){g=h.$val;e.fmtString(g,b);d=(b===115)||(b===118);}else if($assertType(h,CE,true)[1]){g=h.$val;e.fmtBytes(g,b,$ifaceNil,c);d=b===115;}else{g=h;i=e.handleMethods(b,c);if(i){d=false;return d;}d=e.printReflectValue(G.ValueOf(a),b,c);return d;}e.arg=$ifaceNil;return d;};AK.prototype.printArg=function(a,b,c){return this.$val.printArg(a,b,c);};AK.Ptr.prototype.printValue=function(a,b,c){var d=false,e,f,g;e=this;a=a;if(!a.IsValid()){if((b===84)||(b===118)){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).Write(R);}else{e.badVerb(b);}d=false;return d;}f=b;if(f===84){e.printArg(new $String(a.Type().String()),115,0);d=false;return d;}else if(f===112){e.fmtPointer(a,b);d=false;return d;}e.arg=$ifaceNil;if(a.CanInterface()){e.arg=a.Interface();}g=e.handleMethods(b,c);if(g){d=false;return d;}d=e.printReflectValue(a,b,c);return d;};AK.prototype.printValue=function(a,b,c){return this.$val.printValue(a,b,c);};AK.Ptr.prototype.printReflectValue=function(a,b,c){var d=false,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab;e=this;a=a;f=e.value;e.value=a;g=a;h=g.Kind();BigSwitch:switch(0){default:if(h===1){e.fmtBool(g.Bool(),b);}else if(h===2||h===3||h===4||h===5||h===6){e.fmtInt64(g.Int(),b);}else if(h===7||h===8||h===9||h===10||h===11||h===12){e.fmtUint64(g.Uint(),b);}else if(h===13||h===14){if(g.Type().Size()===4){e.fmtFloat32(g.Float(),b);}else{e.fmtFloat64(g.Float(),b);}}else if(h===15||h===16){if(g.Type().Size()===8){e.fmtComplex64((i=g.Complex(),new $Complex64(i.$real,i.$imag)),b);}else{e.fmtComplex128(g.Complex(),b);}}else if(h===24){e.fmtString(g.String(),b);}else if(h===21){if(e.fmt.fmtFlags.sharpV){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).WriteString(g.Type().String());if(g.IsNil()){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).WriteString("(nil)");break;}new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).WriteByte(123);}else{new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).Write(U);}j=g.MapKeys();k=j;l=0;while(l=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+l]);if(m>0){if(e.fmt.fmtFlags.sharpV){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).Write(Q);}else{new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).WriteByte(32);}}e.printValue(n,b,c+1>>0);new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).WriteByte(58);e.printValue(g.MapIndex(n),b,c+1>>0);l++;}if(e.fmt.fmtFlags.sharpV){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).WriteByte(125);}else{new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).WriteByte(93);}}else if(h===25){if(e.fmt.fmtFlags.sharpV){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).WriteString(a.Type().String());}e.add(123);o=g;p=o.Type();q=0;while(q0){if(e.fmt.fmtFlags.sharpV){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).Write(Q);}else{new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).WriteByte(32);}}if(e.fmt.fmtFlags.plusV||e.fmt.fmtFlags.sharpV){r=$clone(p.Field(q),G.StructField);if(!(r.Name==="")){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).WriteString(r.Name);new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).WriteByte(58);}}e.printValue(AX(o,q),b,c+1>>0);q=q+(1)>>0;}new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).WriteByte(125);}else if(h===20){s=g.Elem();if(!s.IsValid()){if(e.fmt.fmtFlags.sharpV){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).WriteString(g.Type().String());new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).Write(S);}else{new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).Write(R);}}else{d=e.printValue(s,b,c+1>>0);}}else if(h===17||h===23){t=g.Type();if((t.Elem().Kind()===8)&&($interfaceIsEqual(t.Elem(),BB)||(b===115)||(b===113)||(b===120))){u=CE.nil;if(g.Kind()===23){u=g.Bytes();}else if(g.CanAddr()){u=g.Slice(0,g.Len()).Bytes();}else{u=CE.make(g.Len());v=u;w=0;while(w=u.$length)?$throwRuntimeError("index out of range"):u.$array[u.$offset+x]=(g.Index(x).Uint().$low<<24>>>24);w++;}}e.fmtBytes(u,b,t,c);d=b===115;break;}if(e.fmt.fmtFlags.sharpV){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).WriteString(a.Type().String());if((g.Kind()===23)&&g.IsNil()){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).WriteString("(nil)");break;}new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).WriteByte(123);}else{new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).WriteByte(91);}y=0;while(y0){if(e.fmt.fmtFlags.sharpV){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).Write(Q);}else{new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).WriteByte(32);}}e.printValue(g.Index(y),b,c+1>>0);y=y+(1)>>0;}if(e.fmt.fmtFlags.sharpV){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).WriteByte(125);}else{new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).WriteByte(93);}}else if(h===22){z=g.Pointer();if(!((z===0))&&(c===0)){aa=g.Elem();ab=aa.Kind();if(ab===17||ab===23){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).WriteByte(38);e.printValue(aa,b,c+1>>0);break BigSwitch;}else if(ab===25){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).WriteByte(38);e.printValue(aa,b,c+1>>0);break BigSwitch;}else if(ab===21){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},e).WriteByte(38);e.printValue(aa,b,c+1>>0);break BigSwitch;}}e.fmtPointer(a,b);}else if(h===18||h===19||h===26){e.fmtPointer(a,b);}else{e.unknownType(g);}}e.value=f;d=d;return d;};AK.prototype.printReflectValue=function(a,b,c){return this.$val.printReflectValue(a,b,c);};BC=function(a,b){var c=0,d=false,e=0,f;e=b;if(b=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+b]),$Int,true);c=f[0];d=f[1];e=b+1>>0;}return[c,d,e];};BD=function(a){var b=0,c=0,d=false,e,f,g,h,i,j,k,l,m,n,o,p,q,r;e=1;while(e>0;l=false;b=j;c=k;d=l;return[b,c,d];}m=g-1>>0;n=e+1>>0;o=true;b=m;c=n;d=o;return[b,c,d];}e=e+(1)>>0;}p=0;q=1;r=false;b=p;c=q;d=r;return[b,c,d];};AK.Ptr.prototype.argNumber=function(a,b,c,d){var e=0,f=0,g=false,h,i,j,k,l,m,n,o,p,q,r,s,t,u;h=this;if(b.length<=c||!((b.charCodeAt(c)===91))){i=a;j=c;k=false;e=i;f=j;g=k;return[e,f,g];}h.reordered=true;l=BD(b.substring(c));m=l[0];n=l[1];o=l[2];if(o&&0<=m&&m>0;r=true;e=p;f=q;g=r;return[e,f,g];}h.goodArgNum=false;s=a;t=c+n>>0;u=true;e=s;f=t;g=u;return[e,f,g];};AK.prototype.argNumber=function(a,b,c,d){return this.$val.argNumber(a,b,c,d);};AK.Ptr.prototype.doPrintf=function(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;c=this;d=a.length;e=0;f=false;c.reordered=false;g=0;while(g>0;}if(g>h){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c).WriteString(a.substring(h,g));}if(g>=d){break;}g=g+(1)>>0;c.fmt.clearflags();F:while(g>0;}j=c.argNumber(e,a,g,b.$length);e=j[0];g=j[1];f=j[2];if(g>0;k=BC(b,e);c.fmt.wid=k[0];c.fmt.fmtFlags.widPresent=k[1];e=k[2];if(!c.fmt.fmtFlags.widPresent){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c).Write(AC);}f=false;}else{l=AY(a,g,d);c.fmt.wid=l[0];c.fmt.fmtFlags.widPresent=l[1];g=l[2];if(f&&c.fmt.fmtFlags.widPresent){c.goodArgNum=false;}}if((g+1>>0)>0;if(f){c.goodArgNum=false;}m=c.argNumber(e,a,g,b.$length);e=m[0];g=m[1];f=m[2];if(a.charCodeAt(g)===42){g=g+(1)>>0;n=BC(b,e);c.fmt.prec=n[0];c.fmt.fmtFlags.precPresent=n[1];e=n[2];if(!c.fmt.fmtFlags.precPresent){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c).Write(AD);}f=false;}else{o=AY(a,g,d);c.fmt.prec=o[0];c.fmt.fmtFlags.precPresent=o[1];g=o[2];if(!c.fmt.fmtFlags.precPresent){c.fmt.prec=0;c.fmt.fmtFlags.precPresent=true;}}}if(!f){p=c.argNumber(e,a,g,b.$length);e=p[0];g=p[1];f=p[2];}if(g>=d){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c).Write(AE);continue;}q=C.DecodeRuneInString(a.substring(g));r=q[0];s=q[1];g=g+(s)>>0;if(r===37){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c).WriteByte(37);continue;}if(!c.goodArgNum){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c).Write(V);c.add(r);new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c).Write(X);continue;}else if(e>=b.$length){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c).Write(V);c.add(r);new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c).Write(W);continue;}t=((e<0||e>=b.$length)?$throwRuntimeError("index out of range"):b.$array[b.$offset+e]);e=e+(1)>>0;if(r===118){if(c.fmt.fmtFlags.sharp){c.fmt.fmtFlags.sharp=false;c.fmt.fmtFlags.sharpV=true;}if(c.fmt.fmtFlags.plus){c.fmt.fmtFlags.plus=false;c.fmt.fmtFlags.plusV=true;}}c.printArg(t,r,0);}if(!c.reordered&&e=b.$length)?$throwRuntimeError("index out of range"):b.$array[b.$offset+e]);if(!($interfaceIsEqual(u,$ifaceNil))){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c).WriteString(G.TypeOf(u).String());new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c).WriteByte(61);}c.printArg(u,118,0);if((e+1>>0)>0;}new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c).WriteByte(41);}};AK.prototype.doPrintf=function(a,b){return this.$val.doPrintf(a,b);};AK.Ptr.prototype.doPrint=function(a,b,c){var d,e,f,g,h;d=this;e=false;f=0;while(f=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+f]);if(f>0){h=!($interfaceIsEqual(g,$ifaceNil))&&(G.TypeOf(g).Kind()===24);if(b||!h&&!e){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d).WriteByte(32);}}e=d.printArg(g,118,0);f=f+(1)>>0;}if(c){new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d).WriteByte(10);}};AK.prototype.doPrint=function(a,b,c){return this.$val.doPrint(a,b,c);};BS.Ptr.prototype.Read=function(a){var b=0,c=$ifaceNil,d,e,f;d=this;e=0;f=D.New("ScanState's Read should not be called. Use ReadRune");b=e;c=f;return[b,c];};BS.prototype.Read=function(a){return this.$val.Read(a);};BS.Ptr.prototype.ReadRune=function(){var a=0,b=0,c=$ifaceNil,d,e;d=this;if(d.peekRune>=0){d.count=d.count+(1)>>0;a=d.peekRune;b=C.RuneLen(a);d.prevRune=a;d.peekRune=-1;return[a,b,c];}if(d.atEOF||d.ssave.nlIsEnd&&(d.prevRune===10)||d.count>=d.ssave.argLimit){c=E.EOF;return[a,b,c];}e=d.rr.ReadRune();a=e[0];b=e[1];c=e[2];if($interfaceIsEqual(c,$ifaceNil)){d.count=d.count+(1)>>0;d.prevRune=a;}else if($interfaceIsEqual(c,E.EOF)){d.atEOF=true;}return[a,b,c];};BS.prototype.ReadRune=function(){return this.$val.ReadRune();};BS.Ptr.prototype.Width=function(){var a=0,b=false,c,d,e,f,g;c=this;if(c.ssave.maxWid===1073741824){d=0;e=false;a=d;b=e;return[a,b];}f=c.ssave.maxWid;g=true;a=f;b=g;return[a,b];};BS.prototype.Width=function(){return this.$val.Width();};BS.Ptr.prototype.getRune=function(){var a=0,b,c,d;b=this;c=b.ReadRune();a=c[0];d=c[2];if(!($interfaceIsEqual(d,$ifaceNil))){if($interfaceIsEqual(d,E.EOF)){a=-1;return a;}b.error(d);}return a;};BS.prototype.getRune=function(){return this.$val.getRune();};BS.Ptr.prototype.UnreadRune=function(){var a,b,c,d;a=this;b=$assertType(a.rr,BE,true);c=b[0];d=b[1];if(d){c.UnreadRune();}else{a.peekRune=a.prevRune;}a.prevRune=-1;a.count=a.count-(1)>>0;return $ifaceNil;};BS.prototype.UnreadRune=function(){return this.$val.UnreadRune();};BS.Ptr.prototype.error=function(a){var b,c;b=this;$panic((c=new BR.Ptr(a),new c.constructor.Struct(c)));};BS.prototype.error=function(a){return this.$val.error(a);};BS.Ptr.prototype.errorString=function(a){var b,c;b=this;$panic((c=new BR.Ptr(D.New(a)),new c.constructor.Struct(c)));};BS.prototype.errorString=function(a){return this.$val.errorString(a);};BS.Ptr.prototype.Token=function(a,b){var c=CE.nil,d=$ifaceNil,$deferred=[],$err=null,e;try{$deferFrames.push($deferred);e=this;$deferred.push([(function(){var f,g,h,i;f=$recover();if(!($interfaceIsEqual(f,$ifaceNil))){g=$assertType(f,BR,true);h=$clone(g[0],BR);i=g[1];if(i){d=h.err;}else{$panic(f);}}}),[]]);if(b===$throwNilPointerError){b=BW;}e.buf=$subslice(e.buf,0,0);c=e.token(a,b);return[c,d];}catch(err){$err=err;}finally{$deferFrames.pop();$callDeferred($deferred,$err);return[c,d];}};BS.prototype.Token=function(a,b){return this.$val.Token(a,b);};BV=function(a){var b,c,d,e;if(a>=65536){return false;}b=(a<<16>>>16);c=BU;d=0;while(d=c.$length)?$throwRuntimeError("index out of range"):c.$array[c.$offset+d]),CG);if(b1024){return;}b.buf=$subslice(b.buf,0,0);b.rr=$ifaceNil;BY.Put(b);};BS.prototype.free=function(a){return this.$val.free(a);};BS.Ptr.prototype.skipSpace=function(a){var b,c;b=this;while(true){c=b.getRune();if(c===-1){return;}if((c===13)&&b.peek("\n")){continue;}if(c===10){if(a){break;}if(b.ssave.nlIsSpace){continue;}b.errorString("unexpected newline");return;}if(!BV(c)){b.UnreadRune();break;}}};BS.prototype.skipSpace=function(a){return this.$val.skipSpace(a);};BS.Ptr.prototype.token=function(a,b){var c,d,e;c=this;if(a){c.skipSpace(false);}while(true){d=c.getRune();if(d===-1){break;}if(!b(d)){c.UnreadRune();break;}new CJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c).WriteRune(d);}return(e=c.buf,$subslice(new CE(e.$array),e.$offset,e.$offset+e.$length));};BS.prototype.token=function(a,b){return this.$val.token(a,b);};CC=function(a,b){var c,d,e,f,g;c=a;d=0;while(d=0;};BS.prototype.peek=function(a){return this.$val.peek(a);};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=D.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=E.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=A.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=F.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=G.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=6;case 6:if($r&&$r.$blocking){$r=$r();}$r=H.$init($BLOCKING);$s=7;case 7:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=8;case 8:if($r&&$r.$blocking){$r=$r();}CE=$sliceType($Uint8);CF=$sliceType($emptyInterface);CG=$arrayType($Uint16,2);CH=$sliceType(CG);CI=$ptrType(AK);CJ=$ptrType(AJ);CK=$ptrType(G.rtype);CN=$ptrType(BS);CO=$arrayType($Uint8,4);DI=$arrayType($Uint8,65);DJ=$ptrType(M);DK=$funcType([$Int32],[$Bool],false);L.init([["widPresent","widPresent","fmt",$Bool,""],["precPresent","precPresent","fmt",$Bool,""],["minus","minus","fmt",$Bool,""],["plus","plus","fmt",$Bool,""],["sharp","sharp","fmt",$Bool,""],["space","space","fmt",$Bool,""],["unicode","unicode","fmt",$Bool,""],["uniQuote","uniQuote","fmt",$Bool,""],["zero","zero","fmt",$Bool,""],["plusV","plusV","fmt",$Bool,""],["sharpV","sharpV","fmt",$Bool,""]]);DJ.methods=[["clearflags","clearflags","fmt",$funcType([],[],false),-1],["computePadding","computePadding","fmt",$funcType([$Int],[CE,$Int,$Int],false),-1],["fmt_E32","fmt_E32","fmt",$funcType([$Float32],[],false),-1],["fmt_E64","fmt_E64","fmt",$funcType([$Float64],[],false),-1],["fmt_G32","fmt_G32","fmt",$funcType([$Float32],[],false),-1],["fmt_G64","fmt_G64","fmt",$funcType([$Float64],[],false),-1],["fmt_boolean","fmt_boolean","fmt",$funcType([$Bool],[],false),-1],["fmt_bx","fmt_bx","fmt",$funcType([CE,$String],[],false),-1],["fmt_c128","fmt_c128","fmt",$funcType([$Complex128,$Int32],[],false),-1],["fmt_c64","fmt_c64","fmt",$funcType([$Complex64,$Int32],[],false),-1],["fmt_complex","fmt_complex","fmt",$funcType([$Float64,$Float64,$Int,$Int32],[],false),-1],["fmt_e32","fmt_e32","fmt",$funcType([$Float32],[],false),-1],["fmt_e64","fmt_e64","fmt",$funcType([$Float64],[],false),-1],["fmt_f32","fmt_f32","fmt",$funcType([$Float32],[],false),-1],["fmt_f64","fmt_f64","fmt",$funcType([$Float64],[],false),-1],["fmt_fb32","fmt_fb32","fmt",$funcType([$Float32],[],false),-1],["fmt_fb64","fmt_fb64","fmt",$funcType([$Float64],[],false),-1],["fmt_g32","fmt_g32","fmt",$funcType([$Float32],[],false),-1],["fmt_g64","fmt_g64","fmt",$funcType([$Float64],[],false),-1],["fmt_q","fmt_q","fmt",$funcType([$String],[],false),-1],["fmt_qc","fmt_qc","fmt",$funcType([$Int64],[],false),-1],["fmt_s","fmt_s","fmt",$funcType([$String],[],false),-1],["fmt_sbx","fmt_sbx","fmt",$funcType([$String,CE,$String],[],false),-1],["fmt_sx","fmt_sx","fmt",$funcType([$String,$String],[],false),-1],["formatFloat","formatFloat","fmt",$funcType([$Float64,$Uint8,$Int,$Int],[],false),-1],["init","init","fmt",$funcType([CJ],[],false),-1],["integer","integer","fmt",$funcType([$Int64,$Uint64,$Bool,$String],[],false),-1],["pad","pad","fmt",$funcType([CE],[],false),-1],["padString","padString","fmt",$funcType([$String],[],false),-1],["truncate","truncate","fmt",$funcType([$String],[$String],false),-1],["writePadding","writePadding","fmt",$funcType([$Int,CE],[],false),-1]];M.init([["intbuf","intbuf","fmt",DI,""],["buf","buf","fmt",CJ,""],["wid","wid","fmt",$Int,""],["prec","prec","fmt",$Int,""],["fmtFlags","","fmt",L,""]]);AF.init([["Flag","Flag","",$funcType([$Int],[$Bool],false)],["Precision","Precision","",$funcType([],[$Int,$Bool],false)],["Width","Width","",$funcType([],[$Int,$Bool],false)],["Write","Write","",$funcType([CE],[$Int,$error],false)]]);AG.init([["Format","Format","",$funcType([AF,$Int32],[],false)]]);AH.init([["String","String","",$funcType([],[$String],false)]]);AI.init([["GoString","GoString","",$funcType([],[$String],false)]]);CJ.methods=[["Write","Write","",$funcType([CE],[$Int,$error],false),-1],["WriteByte","WriteByte","",$funcType([$Uint8],[$error],false),-1],["WriteRune","WriteRune","",$funcType([$Int32],[$error],false),-1],["WriteString","WriteString","",$funcType([$String],[$Int,$error],false),-1]];AJ.init($Uint8);CI.methods=[["Flag","Flag","",$funcType([$Int],[$Bool],false),-1],["Precision","Precision","",$funcType([],[$Int,$Bool],false),-1],["Width","Width","",$funcType([],[$Int,$Bool],false),-1],["Write","Write","",$funcType([CE],[$Int,$error],false),-1],["add","add","fmt",$funcType([$Int32],[],false),-1],["argNumber","argNumber","fmt",$funcType([$Int,$String,$Int,$Int],[$Int,$Int,$Bool],false),-1],["badVerb","badVerb","fmt",$funcType([$Int32],[],false),-1],["catchPanic","catchPanic","fmt",$funcType([$emptyInterface,$Int32],[],false),-1],["clearSpecialFlags","clearSpecialFlags","fmt",$funcType([],[$Bool,$Bool],false),-1],["doPrint","doPrint","fmt",$funcType([CF,$Bool,$Bool],[],false),-1],["doPrintf","doPrintf","fmt",$funcType([$String,CF],[],false),-1],["fmt0x64","fmt0x64","fmt",$funcType([$Uint64,$Bool],[],false),-1],["fmtBool","fmtBool","fmt",$funcType([$Bool,$Int32],[],false),-1],["fmtBytes","fmtBytes","fmt",$funcType([CE,$Int32,G.Type,$Int],[],false),-1],["fmtC","fmtC","fmt",$funcType([$Int64],[],false),-1],["fmtComplex128","fmtComplex128","fmt",$funcType([$Complex128,$Int32],[],false),-1],["fmtComplex64","fmtComplex64","fmt",$funcType([$Complex64,$Int32],[],false),-1],["fmtFloat32","fmtFloat32","fmt",$funcType([$Float32,$Int32],[],false),-1],["fmtFloat64","fmtFloat64","fmt",$funcType([$Float64,$Int32],[],false),-1],["fmtInt64","fmtInt64","fmt",$funcType([$Int64,$Int32],[],false),-1],["fmtPointer","fmtPointer","fmt",$funcType([G.Value,$Int32],[],false),-1],["fmtString","fmtString","fmt",$funcType([$String,$Int32],[],false),-1],["fmtUint64","fmtUint64","fmt",$funcType([$Uint64,$Int32],[],false),-1],["fmtUnicode","fmtUnicode","fmt",$funcType([$Int64],[],false),-1],["free","free","fmt",$funcType([],[],false),-1],["handleMethods","handleMethods","fmt",$funcType([$Int32,$Int],[$Bool],false),-1],["printArg","printArg","fmt",$funcType([$emptyInterface,$Int32,$Int],[$Bool],false),-1],["printReflectValue","printReflectValue","fmt",$funcType([G.Value,$Int32,$Int],[$Bool],false),-1],["printValue","printValue","fmt",$funcType([G.Value,$Int32,$Int],[$Bool],false),-1],["restoreSpecialFlags","restoreSpecialFlags","fmt",$funcType([$Bool,$Bool],[],false),-1],["unknownType","unknownType","fmt",$funcType([G.Value],[],false),-1]];AK.init([["n","n","fmt",$Int,""],["panicking","panicking","fmt",$Bool,""],["erroring","erroring","fmt",$Bool,""],["buf","buf","fmt",AJ,""],["arg","arg","fmt",$emptyInterface,""],["value","value","fmt",G.Value,""],["reordered","reordered","fmt",$Bool,""],["goodArgNum","goodArgNum","fmt",$Bool,""],["runeBuf","runeBuf","fmt",CO,""],["fmt","fmt","fmt",M,""]]);BE.init([["UnreadRune","UnreadRune","",$funcType([],[$error],false)]]);BR.init([["err","err","fmt",$error,""]]);CN.methods=[["Read","Read","",$funcType([CE],[$Int,$error],false),-1],["ReadRune","ReadRune","",$funcType([],[$Int32,$Int,$error],false),-1],["SkipSpace","SkipSpace","",$funcType([],[],false),-1],["Token","Token","",$funcType([$Bool,DK],[CE,$error],false),-1],["UnreadRune","UnreadRune","",$funcType([],[$error],false),-1],["Width","Width","",$funcType([],[$Int,$Bool],false),-1],["accept","accept","fmt",$funcType([$String],[$Bool],false),-1],["advance","advance","fmt",$funcType([$String],[$Int],false),-1],["complexTokens","complexTokens","fmt",$funcType([],[$String,$String],false),-1],["consume","consume","fmt",$funcType([$String,$Bool],[$Bool],false),-1],["convertFloat","convertFloat","fmt",$funcType([$String,$Int],[$Float64],false),-1],["convertString","convertString","fmt",$funcType([$Int32],[$String],false),-1],["doScan","doScan","fmt",$funcType([CF],[$Int,$error],false),-1],["doScanf","doScanf","fmt",$funcType([$String,CF],[$Int,$error],false),-1],["error","error","fmt",$funcType([$error],[],false),-1],["errorString","errorString","fmt",$funcType([$String],[],false),-1],["floatToken","floatToken","fmt",$funcType([],[$String],false),-1],["free","free","fmt",$funcType([BT],[],false),-1],["getBase","getBase","fmt",$funcType([$Int32],[$Int,$String],false),-1],["getRune","getRune","fmt",$funcType([],[$Int32],false),-1],["hexByte","hexByte","fmt",$funcType([],[$Uint8,$Bool],false),-1],["hexDigit","hexDigit","fmt",$funcType([$Int32],[$Int],false),-1],["hexString","hexString","fmt",$funcType([],[$String],false),-1],["mustReadRune","mustReadRune","fmt",$funcType([],[$Int32],false),-1],["notEOF","notEOF","fmt",$funcType([],[],false),-1],["okVerb","okVerb","fmt",$funcType([$Int32,$String,$String],[$Bool],false),-1],["peek","peek","fmt",$funcType([$String],[$Bool],false),-1],["quotedString","quotedString","fmt",$funcType([],[$String],false),-1],["scanBasePrefix","scanBasePrefix","fmt",$funcType([],[$Int,$String,$Bool],false),-1],["scanBool","scanBool","fmt",$funcType([$Int32],[$Bool],false),-1],["scanComplex","scanComplex","fmt",$funcType([$Int32,$Int],[$Complex128],false),-1],["scanInt","scanInt","fmt",$funcType([$Int32,$Int],[$Int64],false),-1],["scanNumber","scanNumber","fmt",$funcType([$String,$Bool],[$String],false),-1],["scanOne","scanOne","fmt",$funcType([$Int32,$emptyInterface],[],false),-1],["scanRune","scanRune","fmt",$funcType([$Int],[$Int64],false),-1],["scanUint","scanUint","fmt",$funcType([$Int32,$Int],[$Uint64],false),-1],["skipSpace","skipSpace","fmt",$funcType([$Bool],[],false),-1],["token","token","fmt",$funcType([$Bool,DK],[CE],false),-1]];BS.init([["rr","rr","fmt",E.RuneReader,""],["buf","buf","fmt",AJ,""],["peekRune","peekRune","fmt",$Int32,""],["prevRune","prevRune","fmt",$Int32,""],["count","count","fmt",$Int,""],["atEOF","atEOF","fmt",$Bool,""],["ssave","","fmt",BT,""]]);BT.init([["validSave","validSave","fmt",$Bool,""],["nlIsEnd","nlIsEnd","fmt",$Bool,""],["nlIsSpace","nlIsSpace","fmt",$Bool,""],["argLimit","argLimit","fmt",$Int,""],["limit","limit","fmt",$Int,""],["maxWid","maxWid","fmt",$Int,""]]);I=CE.make(65);J=CE.make(65);N=new CE($stringToBytes("true"));O=new CE($stringToBytes("false"));Q=new CE($stringToBytes(", "));R=new CE($stringToBytes(""));S=new CE($stringToBytes("(nil)"));T=new CE($stringToBytes("nil"));U=new CE($stringToBytes("map["));V=new CE($stringToBytes("%!"));W=new CE($stringToBytes("(MISSING)"));X=new CE($stringToBytes("(BADINDEX)"));Y=new CE($stringToBytes("(PANIC="));Z=new CE($stringToBytes("%!(EXTRA "));AA=new CE($stringToBytes("i)"));AB=new CE($stringToBytes("[]byte{"));AC=new CE($stringToBytes("%!(BADWIDTH)"));AD=new CE($stringToBytes("%!(BADPREC)"));AE=new CE($stringToBytes("%!(NOVERB)"));AL=new H.Pool.Ptr(0,0,CF.nil,(function(){return new AK.Ptr();}));AZ=G.TypeOf(new $Int(0)).Bits();BA=G.TypeOf(new $Uintptr(0)).Bits();BB=G.TypeOf(new $Uint8(0));BU=new CH([$toNativeArray($kindUint16,[9,13]),$toNativeArray($kindUint16,[32,32]),$toNativeArray($kindUint16,[133,133]),$toNativeArray($kindUint16,[160,160]),$toNativeArray($kindUint16,[5760,5760]),$toNativeArray($kindUint16,[8192,8202]),$toNativeArray($kindUint16,[8232,8233]),$toNativeArray($kindUint16,[8239,8239]),$toNativeArray($kindUint16,[8287,8287]),$toNativeArray($kindUint16,[12288,12288])]);BY=new H.Pool.Ptr(0,0,CF.nil,(function(){return new BS.Ptr();}));CA=D.New("syntax error scanning complex number");CB=D.New("syntax error scanning boolean");K();}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["github.com/gopherjs/webgl"]=(function(){var $pkg={},A,B,G,H,I,J,K,L,M,C,E,D,F;A=$packages["errors"];B=$packages["github.com/gopherjs/gopherjs/js"];C=$pkg.ContextAttributes=$newType(0,$kindStruct,"webgl.ContextAttributes","ContextAttributes","github.com/gopherjs/webgl",function(Alpha_,Depth_,Stencil_,Antialias_,PremultipliedAlpha_,PreserveDrawingBuffer_){this.$val=this;this.Alpha=Alpha_!==undefined?Alpha_:false;this.Depth=Depth_!==undefined?Depth_:false;this.Stencil=Stencil_!==undefined?Stencil_:false;this.Antialias=Antialias_!==undefined?Antialias_:false;this.PremultipliedAlpha=PremultipliedAlpha_!==undefined?PremultipliedAlpha_:false;this.PreserveDrawingBuffer=PreserveDrawingBuffer_!==undefined?PreserveDrawingBuffer_:false;});E=$pkg.Context=$newType(0,$kindStruct,"webgl.Context","Context","github.com/gopherjs/webgl",function(Object_,ARRAY_BUFFER_,ARRAY_BUFFER_BINDING_,ATTACHED_SHADERS_,BACK_,BLEND_,BLEND_COLOR_,BLEND_DST_ALPHA_,BLEND_DST_RGB_,BLEND_EQUATION_,BLEND_EQUATION_ALPHA_,BLEND_EQUATION_RGB_,BLEND_SRC_ALPHA_,BLEND_SRC_RGB_,BLUE_BITS_,BOOL_,BOOL_VEC2_,BOOL_VEC3_,BOOL_VEC4_,BROWSER_DEFAULT_WEBGL_,BUFFER_SIZE_,BUFFER_USAGE_,BYTE_,CCW_,CLAMP_TO_EDGE_,COLOR_ATTACHMENT0_,COLOR_BUFFER_BIT_,COLOR_CLEAR_VALUE_,COLOR_WRITEMASK_,COMPILE_STATUS_,COMPRESSED_TEXTURE_FORMATS_,CONSTANT_ALPHA_,CONSTANT_COLOR_,CONTEXT_LOST_WEBGL_,CULL_FACE_,CULL_FACE_MODE_,CURRENT_PROGRAM_,CURRENT_VERTEX_ATTRIB_,CW_,DECR_,DECR_WRAP_,DELETE_STATUS_,DEPTH_ATTACHMENT_,DEPTH_BITS_,DEPTH_BUFFER_BIT_,DEPTH_CLEAR_VALUE_,DEPTH_COMPONENT_,DEPTH_COMPONENT16_,DEPTH_FUNC_,DEPTH_RANGE_,DEPTH_STENCIL_,DEPTH_STENCIL_ATTACHMENT_,DEPTH_TEST_,DEPTH_WRITEMASK_,DITHER_,DONT_CARE_,DST_ALPHA_,DST_COLOR_,DYNAMIC_DRAW_,ELEMENT_ARRAY_BUFFER_,ELEMENT_ARRAY_BUFFER_BINDING_,EQUAL_,FASTEST_,FLOAT_,FLOAT_MAT2_,FLOAT_MAT3_,FLOAT_MAT4_,FLOAT_VEC2_,FLOAT_VEC3_,FLOAT_VEC4_,FRAGMENT_SHADER_,FRAMEBUFFER_,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_,FRAMEBUFFER_BINDING_,FRAMEBUFFER_COMPLETE_,FRAMEBUFFER_INCOMPLETE_ATTACHMENT_,FRAMEBUFFER_INCOMPLETE_DIMENSIONS_,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_,FRAMEBUFFER_UNSUPPORTED_,FRONT_,FRONT_AND_BACK_,FRONT_FACE_,FUNC_ADD_,FUNC_REVERSE_SUBTRACT_,FUNC_SUBTRACT_,GENERATE_MIPMAP_HINT_,GEQUAL_,GREATER_,GREEN_BITS_,HIGH_FLOAT_,HIGH_INT_,INCR_,INCR_WRAP_,INFO_LOG_LENGTH_,INT_,INT_VEC2_,INT_VEC3_,INT_VEC4_,INVALID_ENUM_,INVALID_FRAMEBUFFER_OPERATION_,INVALID_OPERATION_,INVALID_VALUE_,INVERT_,KEEP_,LEQUAL_,LESS_,LINEAR_,LINEAR_MIPMAP_LINEAR_,LINEAR_MIPMAP_NEAREST_,LINES_,LINE_LOOP_,LINE_STRIP_,LINE_WIDTH_,LINK_STATUS_,LOW_FLOAT_,LOW_INT_,LUMINANCE_,LUMINANCE_ALPHA_,MAX_COMBINED_TEXTURE_IMAGE_UNITS_,MAX_CUBE_MAP_TEXTURE_SIZE_,MAX_FRAGMENT_UNIFORM_VECTORS_,MAX_RENDERBUFFER_SIZE_,MAX_TEXTURE_IMAGE_UNITS_,MAX_TEXTURE_SIZE_,MAX_VARYING_VECTORS_,MAX_VERTEX_ATTRIBS_,MAX_VERTEX_TEXTURE_IMAGE_UNITS_,MAX_VERTEX_UNIFORM_VECTORS_,MAX_VIEWPORT_DIMS_,MEDIUM_FLOAT_,MEDIUM_INT_,MIRRORED_REPEAT_,NEAREST_,NEAREST_MIPMAP_LINEAR_,NEAREST_MIPMAP_NEAREST_,NEVER_,NICEST_,NONE_,NOTEQUAL_,NO_ERROR_,NUM_COMPRESSED_TEXTURE_FORMATS_,ONE_,ONE_MINUS_CONSTANT_ALPHA_,ONE_MINUS_CONSTANT_COLOR_,ONE_MINUS_DST_ALPHA_,ONE_MINUS_DST_COLOR_,ONE_MINUS_SRC_ALPHA_,ONE_MINUS_SRC_COLOR_,OUT_OF_MEMORY_,PACK_ALIGNMENT_,POINTS_,POLYGON_OFFSET_FACTOR_,POLYGON_OFFSET_FILL_,POLYGON_OFFSET_UNITS_,RED_BITS_,RENDERBUFFER_,RENDERBUFFER_ALPHA_SIZE_,RENDERBUFFER_BINDING_,RENDERBUFFER_BLUE_SIZE_,RENDERBUFFER_DEPTH_SIZE_,RENDERBUFFER_GREEN_SIZE_,RENDERBUFFER_HEIGHT_,RENDERBUFFER_INTERNAL_FORMAT_,RENDERBUFFER_RED_SIZE_,RENDERBUFFER_STENCIL_SIZE_,RENDERBUFFER_WIDTH_,RENDERER_,REPEAT_,REPLACE_,RGB_,RGB5_A1_,RGB565_,RGBA_,RGBA4_,SAMPLER_2D_,SAMPLER_CUBE_,SAMPLES_,SAMPLE_ALPHA_TO_COVERAGE_,SAMPLE_BUFFERS_,SAMPLE_COVERAGE_,SAMPLE_COVERAGE_INVERT_,SAMPLE_COVERAGE_VALUE_,SCISSOR_BOX_,SCISSOR_TEST_,SHADER_COMPILER_,SHADER_SOURCE_LENGTH_,SHADER_TYPE_,SHADING_LANGUAGE_VERSION_,SHORT_,SRC_ALPHA_,SRC_ALPHA_SATURATE_,SRC_COLOR_,STATIC_DRAW_,STENCIL_ATTACHMENT_,STENCIL_BACK_FAIL_,STENCIL_BACK_FUNC_,STENCIL_BACK_PASS_DEPTH_FAIL_,STENCIL_BACK_PASS_DEPTH_PASS_,STENCIL_BACK_REF_,STENCIL_BACK_VALUE_MASK_,STENCIL_BACK_WRITEMASK_,STENCIL_BITS_,STENCIL_BUFFER_BIT_,STENCIL_CLEAR_VALUE_,STENCIL_FAIL_,STENCIL_FUNC_,STENCIL_INDEX_,STENCIL_INDEX8_,STENCIL_PASS_DEPTH_FAIL_,STENCIL_PASS_DEPTH_PASS_,STENCIL_REF_,STENCIL_TEST_,STENCIL_VALUE_MASK_,STENCIL_WRITEMASK_,STREAM_DRAW_,SUBPIXEL_BITS_,TEXTURE_,TEXTURE0_,TEXTURE1_,TEXTURE2_,TEXTURE3_,TEXTURE4_,TEXTURE5_,TEXTURE6_,TEXTURE7_,TEXTURE8_,TEXTURE9_,TEXTURE10_,TEXTURE11_,TEXTURE12_,TEXTURE13_,TEXTURE14_,TEXTURE15_,TEXTURE16_,TEXTURE17_,TEXTURE18_,TEXTURE19_,TEXTURE20_,TEXTURE21_,TEXTURE22_,TEXTURE23_,TEXTURE24_,TEXTURE25_,TEXTURE26_,TEXTURE27_,TEXTURE28_,TEXTURE29_,TEXTURE30_,TEXTURE31_,TEXTURE_2D_,TEXTURE_BINDING_2D_,TEXTURE_BINDING_CUBE_MAP_,TEXTURE_CUBE_MAP_,TEXTURE_CUBE_MAP_NEGATIVE_X_,TEXTURE_CUBE_MAP_NEGATIVE_Y_,TEXTURE_CUBE_MAP_NEGATIVE_Z_,TEXTURE_CUBE_MAP_POSITIVE_X_,TEXTURE_CUBE_MAP_POSITIVE_Y_,TEXTURE_CUBE_MAP_POSITIVE_Z_,TEXTURE_MAG_FILTER_,TEXTURE_MIN_FILTER_,TEXTURE_WRAP_S_,TEXTURE_WRAP_T_,TRIANGLES_,TRIANGLE_FAN_,TRIANGLE_STRIP_,UNPACK_ALIGNMENT_,UNPACK_COLORSPACE_CONVERSION_WEBGL_,UNPACK_FLIP_Y_WEBGL_,UNPACK_PREMULTIPLY_ALPHA_WEBGL_,UNSIGNED_BYTE_,UNSIGNED_INT_,UNSIGNED_SHORT_,UNSIGNED_SHORT_4_4_4_4_,UNSIGNED_SHORT_5_5_5_1_,UNSIGNED_SHORT_5_6_5_,VALIDATE_STATUS_,VENDOR_,VERSION_,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_,VERTEX_ATTRIB_ARRAY_ENABLED_,VERTEX_ATTRIB_ARRAY_NORMALIZED_,VERTEX_ATTRIB_ARRAY_POINTER_,VERTEX_ATTRIB_ARRAY_SIZE_,VERTEX_ATTRIB_ARRAY_STRIDE_,VERTEX_ATTRIB_ARRAY_TYPE_,VERTEX_SHADER_,VIEWPORT_,ZERO_){this.$val=this;this.Object=Object_!==undefined?Object_:null;this.ARRAY_BUFFER=ARRAY_BUFFER_!==undefined?ARRAY_BUFFER_:0;this.ARRAY_BUFFER_BINDING=ARRAY_BUFFER_BINDING_!==undefined?ARRAY_BUFFER_BINDING_:0;this.ATTACHED_SHADERS=ATTACHED_SHADERS_!==undefined?ATTACHED_SHADERS_:0;this.BACK=BACK_!==undefined?BACK_:0;this.BLEND=BLEND_!==undefined?BLEND_:0;this.BLEND_COLOR=BLEND_COLOR_!==undefined?BLEND_COLOR_:0;this.BLEND_DST_ALPHA=BLEND_DST_ALPHA_!==undefined?BLEND_DST_ALPHA_:0;this.BLEND_DST_RGB=BLEND_DST_RGB_!==undefined?BLEND_DST_RGB_:0;this.BLEND_EQUATION=BLEND_EQUATION_!==undefined?BLEND_EQUATION_:0;this.BLEND_EQUATION_ALPHA=BLEND_EQUATION_ALPHA_!==undefined?BLEND_EQUATION_ALPHA_:0;this.BLEND_EQUATION_RGB=BLEND_EQUATION_RGB_!==undefined?BLEND_EQUATION_RGB_:0;this.BLEND_SRC_ALPHA=BLEND_SRC_ALPHA_!==undefined?BLEND_SRC_ALPHA_:0;this.BLEND_SRC_RGB=BLEND_SRC_RGB_!==undefined?BLEND_SRC_RGB_:0;this.BLUE_BITS=BLUE_BITS_!==undefined?BLUE_BITS_:0;this.BOOL=BOOL_!==undefined?BOOL_:0;this.BOOL_VEC2=BOOL_VEC2_!==undefined?BOOL_VEC2_:0;this.BOOL_VEC3=BOOL_VEC3_!==undefined?BOOL_VEC3_:0;this.BOOL_VEC4=BOOL_VEC4_!==undefined?BOOL_VEC4_:0;this.BROWSER_DEFAULT_WEBGL=BROWSER_DEFAULT_WEBGL_!==undefined?BROWSER_DEFAULT_WEBGL_:0;this.BUFFER_SIZE=BUFFER_SIZE_!==undefined?BUFFER_SIZE_:0;this.BUFFER_USAGE=BUFFER_USAGE_!==undefined?BUFFER_USAGE_:0;this.BYTE=BYTE_!==undefined?BYTE_:0;this.CCW=CCW_!==undefined?CCW_:0;this.CLAMP_TO_EDGE=CLAMP_TO_EDGE_!==undefined?CLAMP_TO_EDGE_:0;this.COLOR_ATTACHMENT0=COLOR_ATTACHMENT0_!==undefined?COLOR_ATTACHMENT0_:0;this.COLOR_BUFFER_BIT=COLOR_BUFFER_BIT_!==undefined?COLOR_BUFFER_BIT_:0;this.COLOR_CLEAR_VALUE=COLOR_CLEAR_VALUE_!==undefined?COLOR_CLEAR_VALUE_:0;this.COLOR_WRITEMASK=COLOR_WRITEMASK_!==undefined?COLOR_WRITEMASK_:0;this.COMPILE_STATUS=COMPILE_STATUS_!==undefined?COMPILE_STATUS_:0;this.COMPRESSED_TEXTURE_FORMATS=COMPRESSED_TEXTURE_FORMATS_!==undefined?COMPRESSED_TEXTURE_FORMATS_:0;this.CONSTANT_ALPHA=CONSTANT_ALPHA_!==undefined?CONSTANT_ALPHA_:0;this.CONSTANT_COLOR=CONSTANT_COLOR_!==undefined?CONSTANT_COLOR_:0;this.CONTEXT_LOST_WEBGL=CONTEXT_LOST_WEBGL_!==undefined?CONTEXT_LOST_WEBGL_:0;this.CULL_FACE=CULL_FACE_!==undefined?CULL_FACE_:0;this.CULL_FACE_MODE=CULL_FACE_MODE_!==undefined?CULL_FACE_MODE_:0;this.CURRENT_PROGRAM=CURRENT_PROGRAM_!==undefined?CURRENT_PROGRAM_:0;this.CURRENT_VERTEX_ATTRIB=CURRENT_VERTEX_ATTRIB_!==undefined?CURRENT_VERTEX_ATTRIB_:0;this.CW=CW_!==undefined?CW_:0;this.DECR=DECR_!==undefined?DECR_:0;this.DECR_WRAP=DECR_WRAP_!==undefined?DECR_WRAP_:0;this.DELETE_STATUS=DELETE_STATUS_!==undefined?DELETE_STATUS_:0;this.DEPTH_ATTACHMENT=DEPTH_ATTACHMENT_!==undefined?DEPTH_ATTACHMENT_:0;this.DEPTH_BITS=DEPTH_BITS_!==undefined?DEPTH_BITS_:0;this.DEPTH_BUFFER_BIT=DEPTH_BUFFER_BIT_!==undefined?DEPTH_BUFFER_BIT_:0;this.DEPTH_CLEAR_VALUE=DEPTH_CLEAR_VALUE_!==undefined?DEPTH_CLEAR_VALUE_:0;this.DEPTH_COMPONENT=DEPTH_COMPONENT_!==undefined?DEPTH_COMPONENT_:0;this.DEPTH_COMPONENT16=DEPTH_COMPONENT16_!==undefined?DEPTH_COMPONENT16_:0;this.DEPTH_FUNC=DEPTH_FUNC_!==undefined?DEPTH_FUNC_:0;this.DEPTH_RANGE=DEPTH_RANGE_!==undefined?DEPTH_RANGE_:0;this.DEPTH_STENCIL=DEPTH_STENCIL_!==undefined?DEPTH_STENCIL_:0;this.DEPTH_STENCIL_ATTACHMENT=DEPTH_STENCIL_ATTACHMENT_!==undefined?DEPTH_STENCIL_ATTACHMENT_:0;this.DEPTH_TEST=DEPTH_TEST_!==undefined?DEPTH_TEST_:0;this.DEPTH_WRITEMASK=DEPTH_WRITEMASK_!==undefined?DEPTH_WRITEMASK_:0;this.DITHER=DITHER_!==undefined?DITHER_:0;this.DONT_CARE=DONT_CARE_!==undefined?DONT_CARE_:0;this.DST_ALPHA=DST_ALPHA_!==undefined?DST_ALPHA_:0;this.DST_COLOR=DST_COLOR_!==undefined?DST_COLOR_:0;this.DYNAMIC_DRAW=DYNAMIC_DRAW_!==undefined?DYNAMIC_DRAW_:0;this.ELEMENT_ARRAY_BUFFER=ELEMENT_ARRAY_BUFFER_!==undefined?ELEMENT_ARRAY_BUFFER_:0;this.ELEMENT_ARRAY_BUFFER_BINDING=ELEMENT_ARRAY_BUFFER_BINDING_!==undefined?ELEMENT_ARRAY_BUFFER_BINDING_:0;this.EQUAL=EQUAL_!==undefined?EQUAL_:0;this.FASTEST=FASTEST_!==undefined?FASTEST_:0;this.FLOAT=FLOAT_!==undefined?FLOAT_:0;this.FLOAT_MAT2=FLOAT_MAT2_!==undefined?FLOAT_MAT2_:0;this.FLOAT_MAT3=FLOAT_MAT3_!==undefined?FLOAT_MAT3_:0;this.FLOAT_MAT4=FLOAT_MAT4_!==undefined?FLOAT_MAT4_:0;this.FLOAT_VEC2=FLOAT_VEC2_!==undefined?FLOAT_VEC2_:0;this.FLOAT_VEC3=FLOAT_VEC3_!==undefined?FLOAT_VEC3_:0;this.FLOAT_VEC4=FLOAT_VEC4_!==undefined?FLOAT_VEC4_:0;this.FRAGMENT_SHADER=FRAGMENT_SHADER_!==undefined?FRAGMENT_SHADER_:0;this.FRAMEBUFFER=FRAMEBUFFER_!==undefined?FRAMEBUFFER_:0;this.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME=FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_!==undefined?FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_:0;this.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE=FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_!==undefined?FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_:0;this.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE=FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_!==undefined?FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_:0;this.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL=FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_!==undefined?FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_:0;this.FRAMEBUFFER_BINDING=FRAMEBUFFER_BINDING_!==undefined?FRAMEBUFFER_BINDING_:0;this.FRAMEBUFFER_COMPLETE=FRAMEBUFFER_COMPLETE_!==undefined?FRAMEBUFFER_COMPLETE_:0;this.FRAMEBUFFER_INCOMPLETE_ATTACHMENT=FRAMEBUFFER_INCOMPLETE_ATTACHMENT_!==undefined?FRAMEBUFFER_INCOMPLETE_ATTACHMENT_:0;this.FRAMEBUFFER_INCOMPLETE_DIMENSIONS=FRAMEBUFFER_INCOMPLETE_DIMENSIONS_!==undefined?FRAMEBUFFER_INCOMPLETE_DIMENSIONS_:0;this.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT=FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_!==undefined?FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_:0;this.FRAMEBUFFER_UNSUPPORTED=FRAMEBUFFER_UNSUPPORTED_!==undefined?FRAMEBUFFER_UNSUPPORTED_:0;this.FRONT=FRONT_!==undefined?FRONT_:0;this.FRONT_AND_BACK=FRONT_AND_BACK_!==undefined?FRONT_AND_BACK_:0;this.FRONT_FACE=FRONT_FACE_!==undefined?FRONT_FACE_:0;this.FUNC_ADD=FUNC_ADD_!==undefined?FUNC_ADD_:0;this.FUNC_REVERSE_SUBTRACT=FUNC_REVERSE_SUBTRACT_!==undefined?FUNC_REVERSE_SUBTRACT_:0;this.FUNC_SUBTRACT=FUNC_SUBTRACT_!==undefined?FUNC_SUBTRACT_:0;this.GENERATE_MIPMAP_HINT=GENERATE_MIPMAP_HINT_!==undefined?GENERATE_MIPMAP_HINT_:0;this.GEQUAL=GEQUAL_!==undefined?GEQUAL_:0;this.GREATER=GREATER_!==undefined?GREATER_:0;this.GREEN_BITS=GREEN_BITS_!==undefined?GREEN_BITS_:0;this.HIGH_FLOAT=HIGH_FLOAT_!==undefined?HIGH_FLOAT_:0;this.HIGH_INT=HIGH_INT_!==undefined?HIGH_INT_:0;this.INCR=INCR_!==undefined?INCR_:0;this.INCR_WRAP=INCR_WRAP_!==undefined?INCR_WRAP_:0;this.INFO_LOG_LENGTH=INFO_LOG_LENGTH_!==undefined?INFO_LOG_LENGTH_:0;this.INT=INT_!==undefined?INT_:0;this.INT_VEC2=INT_VEC2_!==undefined?INT_VEC2_:0;this.INT_VEC3=INT_VEC3_!==undefined?INT_VEC3_:0;this.INT_VEC4=INT_VEC4_!==undefined?INT_VEC4_:0;this.INVALID_ENUM=INVALID_ENUM_!==undefined?INVALID_ENUM_:0;this.INVALID_FRAMEBUFFER_OPERATION=INVALID_FRAMEBUFFER_OPERATION_!==undefined?INVALID_FRAMEBUFFER_OPERATION_:0;this.INVALID_OPERATION=INVALID_OPERATION_!==undefined?INVALID_OPERATION_:0;this.INVALID_VALUE=INVALID_VALUE_!==undefined?INVALID_VALUE_:0;this.INVERT=INVERT_!==undefined?INVERT_:0;this.KEEP=KEEP_!==undefined?KEEP_:0;this.LEQUAL=LEQUAL_!==undefined?LEQUAL_:0;this.LESS=LESS_!==undefined?LESS_:0;this.LINEAR=LINEAR_!==undefined?LINEAR_:0;this.LINEAR_MIPMAP_LINEAR=LINEAR_MIPMAP_LINEAR_!==undefined?LINEAR_MIPMAP_LINEAR_:0;this.LINEAR_MIPMAP_NEAREST=LINEAR_MIPMAP_NEAREST_!==undefined?LINEAR_MIPMAP_NEAREST_:0;this.LINES=LINES_!==undefined?LINES_:0;this.LINE_LOOP=LINE_LOOP_!==undefined?LINE_LOOP_:0;this.LINE_STRIP=LINE_STRIP_!==undefined?LINE_STRIP_:0;this.LINE_WIDTH=LINE_WIDTH_!==undefined?LINE_WIDTH_:0;this.LINK_STATUS=LINK_STATUS_!==undefined?LINK_STATUS_:0;this.LOW_FLOAT=LOW_FLOAT_!==undefined?LOW_FLOAT_:0;this.LOW_INT=LOW_INT_!==undefined?LOW_INT_:0;this.LUMINANCE=LUMINANCE_!==undefined?LUMINANCE_:0;this.LUMINANCE_ALPHA=LUMINANCE_ALPHA_!==undefined?LUMINANCE_ALPHA_:0;this.MAX_COMBINED_TEXTURE_IMAGE_UNITS=MAX_COMBINED_TEXTURE_IMAGE_UNITS_!==undefined?MAX_COMBINED_TEXTURE_IMAGE_UNITS_:0;this.MAX_CUBE_MAP_TEXTURE_SIZE=MAX_CUBE_MAP_TEXTURE_SIZE_!==undefined?MAX_CUBE_MAP_TEXTURE_SIZE_:0;this.MAX_FRAGMENT_UNIFORM_VECTORS=MAX_FRAGMENT_UNIFORM_VECTORS_!==undefined?MAX_FRAGMENT_UNIFORM_VECTORS_:0;this.MAX_RENDERBUFFER_SIZE=MAX_RENDERBUFFER_SIZE_!==undefined?MAX_RENDERBUFFER_SIZE_:0;this.MAX_TEXTURE_IMAGE_UNITS=MAX_TEXTURE_IMAGE_UNITS_!==undefined?MAX_TEXTURE_IMAGE_UNITS_:0;this.MAX_TEXTURE_SIZE=MAX_TEXTURE_SIZE_!==undefined?MAX_TEXTURE_SIZE_:0;this.MAX_VARYING_VECTORS=MAX_VARYING_VECTORS_!==undefined?MAX_VARYING_VECTORS_:0;this.MAX_VERTEX_ATTRIBS=MAX_VERTEX_ATTRIBS_!==undefined?MAX_VERTEX_ATTRIBS_:0;this.MAX_VERTEX_TEXTURE_IMAGE_UNITS=MAX_VERTEX_TEXTURE_IMAGE_UNITS_!==undefined?MAX_VERTEX_TEXTURE_IMAGE_UNITS_:0;this.MAX_VERTEX_UNIFORM_VECTORS=MAX_VERTEX_UNIFORM_VECTORS_!==undefined?MAX_VERTEX_UNIFORM_VECTORS_:0;this.MAX_VIEWPORT_DIMS=MAX_VIEWPORT_DIMS_!==undefined?MAX_VIEWPORT_DIMS_:0;this.MEDIUM_FLOAT=MEDIUM_FLOAT_!==undefined?MEDIUM_FLOAT_:0;this.MEDIUM_INT=MEDIUM_INT_!==undefined?MEDIUM_INT_:0;this.MIRRORED_REPEAT=MIRRORED_REPEAT_!==undefined?MIRRORED_REPEAT_:0;this.NEAREST=NEAREST_!==undefined?NEAREST_:0;this.NEAREST_MIPMAP_LINEAR=NEAREST_MIPMAP_LINEAR_!==undefined?NEAREST_MIPMAP_LINEAR_:0;this.NEAREST_MIPMAP_NEAREST=NEAREST_MIPMAP_NEAREST_!==undefined?NEAREST_MIPMAP_NEAREST_:0;this.NEVER=NEVER_!==undefined?NEVER_:0;this.NICEST=NICEST_!==undefined?NICEST_:0;this.NONE=NONE_!==undefined?NONE_:0;this.NOTEQUAL=NOTEQUAL_!==undefined?NOTEQUAL_:0;this.NO_ERROR=NO_ERROR_!==undefined?NO_ERROR_:0;this.NUM_COMPRESSED_TEXTURE_FORMATS=NUM_COMPRESSED_TEXTURE_FORMATS_!==undefined?NUM_COMPRESSED_TEXTURE_FORMATS_:0;this.ONE=ONE_!==undefined?ONE_:0;this.ONE_MINUS_CONSTANT_ALPHA=ONE_MINUS_CONSTANT_ALPHA_!==undefined?ONE_MINUS_CONSTANT_ALPHA_:0;this.ONE_MINUS_CONSTANT_COLOR=ONE_MINUS_CONSTANT_COLOR_!==undefined?ONE_MINUS_CONSTANT_COLOR_:0;this.ONE_MINUS_DST_ALPHA=ONE_MINUS_DST_ALPHA_!==undefined?ONE_MINUS_DST_ALPHA_:0;this.ONE_MINUS_DST_COLOR=ONE_MINUS_DST_COLOR_!==undefined?ONE_MINUS_DST_COLOR_:0;this.ONE_MINUS_SRC_ALPHA=ONE_MINUS_SRC_ALPHA_!==undefined?ONE_MINUS_SRC_ALPHA_:0;this.ONE_MINUS_SRC_COLOR=ONE_MINUS_SRC_COLOR_!==undefined?ONE_MINUS_SRC_COLOR_:0;this.OUT_OF_MEMORY=OUT_OF_MEMORY_!==undefined?OUT_OF_MEMORY_:0;this.PACK_ALIGNMENT=PACK_ALIGNMENT_!==undefined?PACK_ALIGNMENT_:0;this.POINTS=POINTS_!==undefined?POINTS_:0;this.POLYGON_OFFSET_FACTOR=POLYGON_OFFSET_FACTOR_!==undefined?POLYGON_OFFSET_FACTOR_:0;this.POLYGON_OFFSET_FILL=POLYGON_OFFSET_FILL_!==undefined?POLYGON_OFFSET_FILL_:0;this.POLYGON_OFFSET_UNITS=POLYGON_OFFSET_UNITS_!==undefined?POLYGON_OFFSET_UNITS_:0;this.RED_BITS=RED_BITS_!==undefined?RED_BITS_:0;this.RENDERBUFFER=RENDERBUFFER_!==undefined?RENDERBUFFER_:0;this.RENDERBUFFER_ALPHA_SIZE=RENDERBUFFER_ALPHA_SIZE_!==undefined?RENDERBUFFER_ALPHA_SIZE_:0;this.RENDERBUFFER_BINDING=RENDERBUFFER_BINDING_!==undefined?RENDERBUFFER_BINDING_:0;this.RENDERBUFFER_BLUE_SIZE=RENDERBUFFER_BLUE_SIZE_!==undefined?RENDERBUFFER_BLUE_SIZE_:0;this.RENDERBUFFER_DEPTH_SIZE=RENDERBUFFER_DEPTH_SIZE_!==undefined?RENDERBUFFER_DEPTH_SIZE_:0;this.RENDERBUFFER_GREEN_SIZE=RENDERBUFFER_GREEN_SIZE_!==undefined?RENDERBUFFER_GREEN_SIZE_:0;this.RENDERBUFFER_HEIGHT=RENDERBUFFER_HEIGHT_!==undefined?RENDERBUFFER_HEIGHT_:0;this.RENDERBUFFER_INTERNAL_FORMAT=RENDERBUFFER_INTERNAL_FORMAT_!==undefined?RENDERBUFFER_INTERNAL_FORMAT_:0;this.RENDERBUFFER_RED_SIZE=RENDERBUFFER_RED_SIZE_!==undefined?RENDERBUFFER_RED_SIZE_:0;this.RENDERBUFFER_STENCIL_SIZE=RENDERBUFFER_STENCIL_SIZE_!==undefined?RENDERBUFFER_STENCIL_SIZE_:0;this.RENDERBUFFER_WIDTH=RENDERBUFFER_WIDTH_!==undefined?RENDERBUFFER_WIDTH_:0;this.RENDERER=RENDERER_!==undefined?RENDERER_:0;this.REPEAT=REPEAT_!==undefined?REPEAT_:0;this.REPLACE=REPLACE_!==undefined?REPLACE_:0;this.RGB=RGB_!==undefined?RGB_:0;this.RGB5_A1=RGB5_A1_!==undefined?RGB5_A1_:0;this.RGB565=RGB565_!==undefined?RGB565_:0;this.RGBA=RGBA_!==undefined?RGBA_:0;this.RGBA4=RGBA4_!==undefined?RGBA4_:0;this.SAMPLER_2D=SAMPLER_2D_!==undefined?SAMPLER_2D_:0;this.SAMPLER_CUBE=SAMPLER_CUBE_!==undefined?SAMPLER_CUBE_:0;this.SAMPLES=SAMPLES_!==undefined?SAMPLES_:0;this.SAMPLE_ALPHA_TO_COVERAGE=SAMPLE_ALPHA_TO_COVERAGE_!==undefined?SAMPLE_ALPHA_TO_COVERAGE_:0;this.SAMPLE_BUFFERS=SAMPLE_BUFFERS_!==undefined?SAMPLE_BUFFERS_:0;this.SAMPLE_COVERAGE=SAMPLE_COVERAGE_!==undefined?SAMPLE_COVERAGE_:0;this.SAMPLE_COVERAGE_INVERT=SAMPLE_COVERAGE_INVERT_!==undefined?SAMPLE_COVERAGE_INVERT_:0;this.SAMPLE_COVERAGE_VALUE=SAMPLE_COVERAGE_VALUE_!==undefined?SAMPLE_COVERAGE_VALUE_:0;this.SCISSOR_BOX=SCISSOR_BOX_!==undefined?SCISSOR_BOX_:0;this.SCISSOR_TEST=SCISSOR_TEST_!==undefined?SCISSOR_TEST_:0;this.SHADER_COMPILER=SHADER_COMPILER_!==undefined?SHADER_COMPILER_:0;this.SHADER_SOURCE_LENGTH=SHADER_SOURCE_LENGTH_!==undefined?SHADER_SOURCE_LENGTH_:0;this.SHADER_TYPE=SHADER_TYPE_!==undefined?SHADER_TYPE_:0;this.SHADING_LANGUAGE_VERSION=SHADING_LANGUAGE_VERSION_!==undefined?SHADING_LANGUAGE_VERSION_:0;this.SHORT=SHORT_!==undefined?SHORT_:0;this.SRC_ALPHA=SRC_ALPHA_!==undefined?SRC_ALPHA_:0;this.SRC_ALPHA_SATURATE=SRC_ALPHA_SATURATE_!==undefined?SRC_ALPHA_SATURATE_:0;this.SRC_COLOR=SRC_COLOR_!==undefined?SRC_COLOR_:0;this.STATIC_DRAW=STATIC_DRAW_!==undefined?STATIC_DRAW_:0;this.STENCIL_ATTACHMENT=STENCIL_ATTACHMENT_!==undefined?STENCIL_ATTACHMENT_:0;this.STENCIL_BACK_FAIL=STENCIL_BACK_FAIL_!==undefined?STENCIL_BACK_FAIL_:0;this.STENCIL_BACK_FUNC=STENCIL_BACK_FUNC_!==undefined?STENCIL_BACK_FUNC_:0;this.STENCIL_BACK_PASS_DEPTH_FAIL=STENCIL_BACK_PASS_DEPTH_FAIL_!==undefined?STENCIL_BACK_PASS_DEPTH_FAIL_:0;this.STENCIL_BACK_PASS_DEPTH_PASS=STENCIL_BACK_PASS_DEPTH_PASS_!==undefined?STENCIL_BACK_PASS_DEPTH_PASS_:0;this.STENCIL_BACK_REF=STENCIL_BACK_REF_!==undefined?STENCIL_BACK_REF_:0;this.STENCIL_BACK_VALUE_MASK=STENCIL_BACK_VALUE_MASK_!==undefined?STENCIL_BACK_VALUE_MASK_:0;this.STENCIL_BACK_WRITEMASK=STENCIL_BACK_WRITEMASK_!==undefined?STENCIL_BACK_WRITEMASK_:0;this.STENCIL_BITS=STENCIL_BITS_!==undefined?STENCIL_BITS_:0;this.STENCIL_BUFFER_BIT=STENCIL_BUFFER_BIT_!==undefined?STENCIL_BUFFER_BIT_:0;this.STENCIL_CLEAR_VALUE=STENCIL_CLEAR_VALUE_!==undefined?STENCIL_CLEAR_VALUE_:0;this.STENCIL_FAIL=STENCIL_FAIL_!==undefined?STENCIL_FAIL_:0;this.STENCIL_FUNC=STENCIL_FUNC_!==undefined?STENCIL_FUNC_:0;this.STENCIL_INDEX=STENCIL_INDEX_!==undefined?STENCIL_INDEX_:0;this.STENCIL_INDEX8=STENCIL_INDEX8_!==undefined?STENCIL_INDEX8_:0;this.STENCIL_PASS_DEPTH_FAIL=STENCIL_PASS_DEPTH_FAIL_!==undefined?STENCIL_PASS_DEPTH_FAIL_:0;this.STENCIL_PASS_DEPTH_PASS=STENCIL_PASS_DEPTH_PASS_!==undefined?STENCIL_PASS_DEPTH_PASS_:0;this.STENCIL_REF=STENCIL_REF_!==undefined?STENCIL_REF_:0;this.STENCIL_TEST=STENCIL_TEST_!==undefined?STENCIL_TEST_:0;this.STENCIL_VALUE_MASK=STENCIL_VALUE_MASK_!==undefined?STENCIL_VALUE_MASK_:0;this.STENCIL_WRITEMASK=STENCIL_WRITEMASK_!==undefined?STENCIL_WRITEMASK_:0;this.STREAM_DRAW=STREAM_DRAW_!==undefined?STREAM_DRAW_:0;this.SUBPIXEL_BITS=SUBPIXEL_BITS_!==undefined?SUBPIXEL_BITS_:0;this.TEXTURE=TEXTURE_!==undefined?TEXTURE_:0;this.TEXTURE0=TEXTURE0_!==undefined?TEXTURE0_:0;this.TEXTURE1=TEXTURE1_!==undefined?TEXTURE1_:0;this.TEXTURE2=TEXTURE2_!==undefined?TEXTURE2_:0;this.TEXTURE3=TEXTURE3_!==undefined?TEXTURE3_:0;this.TEXTURE4=TEXTURE4_!==undefined?TEXTURE4_:0;this.TEXTURE5=TEXTURE5_!==undefined?TEXTURE5_:0;this.TEXTURE6=TEXTURE6_!==undefined?TEXTURE6_:0;this.TEXTURE7=TEXTURE7_!==undefined?TEXTURE7_:0;this.TEXTURE8=TEXTURE8_!==undefined?TEXTURE8_:0;this.TEXTURE9=TEXTURE9_!==undefined?TEXTURE9_:0;this.TEXTURE10=TEXTURE10_!==undefined?TEXTURE10_:0;this.TEXTURE11=TEXTURE11_!==undefined?TEXTURE11_:0;this.TEXTURE12=TEXTURE12_!==undefined?TEXTURE12_:0;this.TEXTURE13=TEXTURE13_!==undefined?TEXTURE13_:0;this.TEXTURE14=TEXTURE14_!==undefined?TEXTURE14_:0;this.TEXTURE15=TEXTURE15_!==undefined?TEXTURE15_:0;this.TEXTURE16=TEXTURE16_!==undefined?TEXTURE16_:0;this.TEXTURE17=TEXTURE17_!==undefined?TEXTURE17_:0;this.TEXTURE18=TEXTURE18_!==undefined?TEXTURE18_:0;this.TEXTURE19=TEXTURE19_!==undefined?TEXTURE19_:0;this.TEXTURE20=TEXTURE20_!==undefined?TEXTURE20_:0;this.TEXTURE21=TEXTURE21_!==undefined?TEXTURE21_:0;this.TEXTURE22=TEXTURE22_!==undefined?TEXTURE22_:0;this.TEXTURE23=TEXTURE23_!==undefined?TEXTURE23_:0;this.TEXTURE24=TEXTURE24_!==undefined?TEXTURE24_:0;this.TEXTURE25=TEXTURE25_!==undefined?TEXTURE25_:0;this.TEXTURE26=TEXTURE26_!==undefined?TEXTURE26_:0;this.TEXTURE27=TEXTURE27_!==undefined?TEXTURE27_:0;this.TEXTURE28=TEXTURE28_!==undefined?TEXTURE28_:0;this.TEXTURE29=TEXTURE29_!==undefined?TEXTURE29_:0;this.TEXTURE30=TEXTURE30_!==undefined?TEXTURE30_:0;this.TEXTURE31=TEXTURE31_!==undefined?TEXTURE31_:0;this.TEXTURE_2D=TEXTURE_2D_!==undefined?TEXTURE_2D_:0;this.TEXTURE_BINDING_2D=TEXTURE_BINDING_2D_!==undefined?TEXTURE_BINDING_2D_:0;this.TEXTURE_BINDING_CUBE_MAP=TEXTURE_BINDING_CUBE_MAP_!==undefined?TEXTURE_BINDING_CUBE_MAP_:0;this.TEXTURE_CUBE_MAP=TEXTURE_CUBE_MAP_!==undefined?TEXTURE_CUBE_MAP_:0;this.TEXTURE_CUBE_MAP_NEGATIVE_X=TEXTURE_CUBE_MAP_NEGATIVE_X_!==undefined?TEXTURE_CUBE_MAP_NEGATIVE_X_:0;this.TEXTURE_CUBE_MAP_NEGATIVE_Y=TEXTURE_CUBE_MAP_NEGATIVE_Y_!==undefined?TEXTURE_CUBE_MAP_NEGATIVE_Y_:0;this.TEXTURE_CUBE_MAP_NEGATIVE_Z=TEXTURE_CUBE_MAP_NEGATIVE_Z_!==undefined?TEXTURE_CUBE_MAP_NEGATIVE_Z_:0;this.TEXTURE_CUBE_MAP_POSITIVE_X=TEXTURE_CUBE_MAP_POSITIVE_X_!==undefined?TEXTURE_CUBE_MAP_POSITIVE_X_:0;this.TEXTURE_CUBE_MAP_POSITIVE_Y=TEXTURE_CUBE_MAP_POSITIVE_Y_!==undefined?TEXTURE_CUBE_MAP_POSITIVE_Y_:0;this.TEXTURE_CUBE_MAP_POSITIVE_Z=TEXTURE_CUBE_MAP_POSITIVE_Z_!==undefined?TEXTURE_CUBE_MAP_POSITIVE_Z_:0;this.TEXTURE_MAG_FILTER=TEXTURE_MAG_FILTER_!==undefined?TEXTURE_MAG_FILTER_:0;this.TEXTURE_MIN_FILTER=TEXTURE_MIN_FILTER_!==undefined?TEXTURE_MIN_FILTER_:0;this.TEXTURE_WRAP_S=TEXTURE_WRAP_S_!==undefined?TEXTURE_WRAP_S_:0;this.TEXTURE_WRAP_T=TEXTURE_WRAP_T_!==undefined?TEXTURE_WRAP_T_:0;this.TRIANGLES=TRIANGLES_!==undefined?TRIANGLES_:0;this.TRIANGLE_FAN=TRIANGLE_FAN_!==undefined?TRIANGLE_FAN_:0;this.TRIANGLE_STRIP=TRIANGLE_STRIP_!==undefined?TRIANGLE_STRIP_:0;this.UNPACK_ALIGNMENT=UNPACK_ALIGNMENT_!==undefined?UNPACK_ALIGNMENT_:0;this.UNPACK_COLORSPACE_CONVERSION_WEBGL=UNPACK_COLORSPACE_CONVERSION_WEBGL_!==undefined?UNPACK_COLORSPACE_CONVERSION_WEBGL_:0;this.UNPACK_FLIP_Y_WEBGL=UNPACK_FLIP_Y_WEBGL_!==undefined?UNPACK_FLIP_Y_WEBGL_:0;this.UNPACK_PREMULTIPLY_ALPHA_WEBGL=UNPACK_PREMULTIPLY_ALPHA_WEBGL_!==undefined?UNPACK_PREMULTIPLY_ALPHA_WEBGL_:0;this.UNSIGNED_BYTE=UNSIGNED_BYTE_!==undefined?UNSIGNED_BYTE_:0;this.UNSIGNED_INT=UNSIGNED_INT_!==undefined?UNSIGNED_INT_:0;this.UNSIGNED_SHORT=UNSIGNED_SHORT_!==undefined?UNSIGNED_SHORT_:0;this.UNSIGNED_SHORT_4_4_4_4=UNSIGNED_SHORT_4_4_4_4_!==undefined?UNSIGNED_SHORT_4_4_4_4_:0;this.UNSIGNED_SHORT_5_5_5_1=UNSIGNED_SHORT_5_5_5_1_!==undefined?UNSIGNED_SHORT_5_5_5_1_:0;this.UNSIGNED_SHORT_5_6_5=UNSIGNED_SHORT_5_6_5_!==undefined?UNSIGNED_SHORT_5_6_5_:0;this.VALIDATE_STATUS=VALIDATE_STATUS_!==undefined?VALIDATE_STATUS_:0;this.VENDOR=VENDOR_!==undefined?VENDOR_:0;this.VERSION=VERSION_!==undefined?VERSION_:0;this.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING=VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_!==undefined?VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_:0;this.VERTEX_ATTRIB_ARRAY_ENABLED=VERTEX_ATTRIB_ARRAY_ENABLED_!==undefined?VERTEX_ATTRIB_ARRAY_ENABLED_:0;this.VERTEX_ATTRIB_ARRAY_NORMALIZED=VERTEX_ATTRIB_ARRAY_NORMALIZED_!==undefined?VERTEX_ATTRIB_ARRAY_NORMALIZED_:0;this.VERTEX_ATTRIB_ARRAY_POINTER=VERTEX_ATTRIB_ARRAY_POINTER_!==undefined?VERTEX_ATTRIB_ARRAY_POINTER_:0;this.VERTEX_ATTRIB_ARRAY_SIZE=VERTEX_ATTRIB_ARRAY_SIZE_!==undefined?VERTEX_ATTRIB_ARRAY_SIZE_:0;this.VERTEX_ATTRIB_ARRAY_STRIDE=VERTEX_ATTRIB_ARRAY_STRIDE_!==undefined?VERTEX_ATTRIB_ARRAY_STRIDE_:0;this.VERTEX_ATTRIB_ARRAY_TYPE=VERTEX_ATTRIB_ARRAY_TYPE_!==undefined?VERTEX_ATTRIB_ARRAY_TYPE_:0;this.VERTEX_SHADER=VERTEX_SHADER_!==undefined?VERTEX_SHADER_:0;this.VIEWPORT=VIEWPORT_!==undefined?VIEWPORT_:0;this.ZERO=ZERO_!==undefined?ZERO_:0;});D=$pkg.DefaultAttributes=function(){return new C.Ptr(true,true,false,true,true,false);};F=$pkg.NewContext=function(a,b){var c,d,e,f,g;if($global.WebGLRenderingContext===undefined){return[G.nil,A.New("Your browser doesn't appear to support webgl.")];}if(b===H.nil){b=D();}c=(d=new $Map(),e="alpha",d[e]={k:e,v:b.Alpha},e="depth",d[e]={k:e,v:b.Depth},e="stencil",d[e]={k:e,v:b.Stencil},e="antialias",d[e]={k:e,v:b.Antialias},e="premultipliedAlpha",d[e]={k:e,v:b.PremultipliedAlpha},e="preserveDrawingBuffer",d[e]={k:e,v:b.PreserveDrawingBuffer},d);f=a.getContext($externalize("webgl",$String),$externalize(c,I));if(f===null){f=a.getContext($externalize("experimental-webgl",$String),$externalize(c,I));if(f===null){return[G.nil,A.New("Creating a webgl context has failed.")];}}g=new E.Ptr();g.Object=f;return[g,$ifaceNil];};E.Ptr.prototype.GetContextAttributes=function(){var a,b;a=this;b=a.Object.getContextAttributes();return new C.Ptr(!!(b.alpha),!!(b.depth),!!(b.stencil),!!(b.antialias),!!(b.premultipliedAlpha),!!(b.preservedDrawingBuffer));};E.prototype.GetContextAttributes=function(){return this.$val.GetContextAttributes();};E.Ptr.prototype.ActiveTexture=function(a){var b;b=this;b.Object.activeTexture(a);};E.prototype.ActiveTexture=function(a){return this.$val.ActiveTexture(a);};E.Ptr.prototype.AttachShader=function(a,b){var c;c=this;c.Object.attachShader(a,b);};E.prototype.AttachShader=function(a,b){return this.$val.AttachShader(a,b);};E.Ptr.prototype.BindAttribLocation=function(a,b,c){var d;d=this;d.Object.bindAttribLocation(a,b,$externalize(c,$String));};E.prototype.BindAttribLocation=function(a,b,c){return this.$val.BindAttribLocation(a,b,c);};E.Ptr.prototype.BindBuffer=function(a,b){var c;c=this;c.Object.bindBuffer(a,b);};E.prototype.BindBuffer=function(a,b){return this.$val.BindBuffer(a,b);};E.Ptr.prototype.BindFramebuffer=function(a,b){var c;c=this;c.Object.bindFramebuffer(a,b);};E.prototype.BindFramebuffer=function(a,b){return this.$val.BindFramebuffer(a,b);};E.Ptr.prototype.BindRenderbuffer=function(a,b){var c;c=this;c.Object.bindRenderbuffer(a,b);};E.prototype.BindRenderbuffer=function(a,b){return this.$val.BindRenderbuffer(a,b);};E.Ptr.prototype.BindTexture=function(a,b){var c;c=this;c.Object.bindTexture(a,b);};E.prototype.BindTexture=function(a,b){return this.$val.BindTexture(a,b);};E.Ptr.prototype.BlendColor=function(a,b,c,d){var e;e=this;e.Object.blendColor(a,b,c,d);};E.prototype.BlendColor=function(a,b,c,d){return this.$val.BlendColor(a,b,c,d);};E.Ptr.prototype.BlendEquation=function(a){var b;b=this;b.Object.blendEquation(a);};E.prototype.BlendEquation=function(a){return this.$val.BlendEquation(a);};E.Ptr.prototype.BlendEquationSeparate=function(a,b){var c;c=this;c.Object.blendEquationSeparate(a,b);};E.prototype.BlendEquationSeparate=function(a,b){return this.$val.BlendEquationSeparate(a,b);};E.Ptr.prototype.BlendFunc=function(a,b){var c;c=this;c.Object.blendFunc(a,b);};E.prototype.BlendFunc=function(a,b){return this.$val.BlendFunc(a,b);};E.Ptr.prototype.BlendFuncSeparate=function(a,b,c,d){var e;e=this;e.Object.blendFuncSeparate(a,b,c,d);};E.prototype.BlendFuncSeparate=function(a,b,c,d){return this.$val.BlendFuncSeparate(a,b,c,d);};E.Ptr.prototype.BufferData=function(a,b,c){var d;d=this;d.Object.bufferData(a,$externalize(b,$emptyInterface),c);};E.prototype.BufferData=function(a,b,c){return this.$val.BufferData(a,b,c);};E.Ptr.prototype.BufferSubData=function(a,b,c){var d;d=this;d.Object.bufferSubData(a,b,$externalize(c,$emptyInterface));};E.prototype.BufferSubData=function(a,b,c){return this.$val.BufferSubData(a,b,c);};E.Ptr.prototype.CheckFramebufferStatus=function(a){var b;b=this;return $parseInt(b.Object.checkFramebufferStatus(a))>>0;};E.prototype.CheckFramebufferStatus=function(a){return this.$val.CheckFramebufferStatus(a);};E.Ptr.prototype.Clear=function(a){var b;b=this;b.Object.clear(a);};E.prototype.Clear=function(a){return this.$val.Clear(a);};E.Ptr.prototype.ClearColor=function(a,b,c,d){var e;e=this;e.Object.clearColor(a,b,c,d);};E.prototype.ClearColor=function(a,b,c,d){return this.$val.ClearColor(a,b,c,d);};E.Ptr.prototype.ClearDepth=function(a){var b;b=this;b.Object.clearDepth(a);};E.prototype.ClearDepth=function(a){return this.$val.ClearDepth(a);};E.Ptr.prototype.ClearStencil=function(a){var b;b=this;b.Object.clearStencil(a);};E.prototype.ClearStencil=function(a){return this.$val.ClearStencil(a);};E.Ptr.prototype.ColorMask=function(a,b,c,d){var e;e=this;e.Object.colorMask($externalize(a,$Bool),$externalize(b,$Bool),$externalize(c,$Bool),$externalize(d,$Bool));};E.prototype.ColorMask=function(a,b,c,d){return this.$val.ColorMask(a,b,c,d);};E.Ptr.prototype.CompileShader=function(a){var b;b=this;b.Object.compileShader(a);};E.prototype.CompileShader=function(a){return this.$val.CompileShader(a);};E.Ptr.prototype.CopyTexImage2D=function(a,b,c,d,e,f,g,h){var i;i=this;i.Object.copyTexImage2D(a,b,c,d,e,f,g,h);};E.prototype.CopyTexImage2D=function(a,b,c,d,e,f,g,h){return this.$val.CopyTexImage2D(a,b,c,d,e,f,g,h);};E.Ptr.prototype.CopyTexSubImage2D=function(a,b,c,d,e,f,g,h){var i;i=this;i.Object.copyTexSubImage2D(a,b,c,d,e,f,g,h);};E.prototype.CopyTexSubImage2D=function(a,b,c,d,e,f,g,h){return this.$val.CopyTexSubImage2D(a,b,c,d,e,f,g,h);};E.Ptr.prototype.CreateBuffer=function(){var a;a=this;return a.Object.createBuffer();};E.prototype.CreateBuffer=function(){return this.$val.CreateBuffer();};E.Ptr.prototype.CreateFramebuffer=function(){var a;a=this;return a.Object.createFramebuffer();};E.prototype.CreateFramebuffer=function(){return this.$val.CreateFramebuffer();};E.Ptr.prototype.CreateProgram=function(){var a;a=this;return a.Object.createProgram();};E.prototype.CreateProgram=function(){return this.$val.CreateProgram();};E.Ptr.prototype.CreateRenderbuffer=function(){var a;a=this;return a.Object.createRenderbuffer();};E.prototype.CreateRenderbuffer=function(){return this.$val.CreateRenderbuffer();};E.Ptr.prototype.CreateShader=function(a){var b;b=this;return b.Object.createShader(a);};E.prototype.CreateShader=function(a){return this.$val.CreateShader(a);};E.Ptr.prototype.CreateTexture=function(){var a;a=this;return a.Object.createTexture();};E.prototype.CreateTexture=function(){return this.$val.CreateTexture();};E.Ptr.prototype.CullFace=function(a){var b;b=this;b.Object.cullFace(a);};E.prototype.CullFace=function(a){return this.$val.CullFace(a);};E.Ptr.prototype.DeleteBuffer=function(a){var b;b=this;b.Object.deleteBuffer(a);};E.prototype.DeleteBuffer=function(a){return this.$val.DeleteBuffer(a);};E.Ptr.prototype.DeleteFramebuffer=function(a){var b;b=this;b.Object.deleteFramebuffer(a);};E.prototype.DeleteFramebuffer=function(a){return this.$val.DeleteFramebuffer(a);};E.Ptr.prototype.DeleteProgram=function(a){var b;b=this;b.Object.deleteProgram(a);};E.prototype.DeleteProgram=function(a){return this.$val.DeleteProgram(a);};E.Ptr.prototype.DeleteRenderbuffer=function(a){var b;b=this;b.Object.deleteRenderbuffer(a);};E.prototype.DeleteRenderbuffer=function(a){return this.$val.DeleteRenderbuffer(a);};E.Ptr.prototype.DeleteShader=function(a){var b;b=this;b.Object.deleteShader(a);};E.prototype.DeleteShader=function(a){return this.$val.DeleteShader(a);};E.Ptr.prototype.DeleteTexture=function(a){var b;b=this;b.Object.deleteTexture(a);};E.prototype.DeleteTexture=function(a){return this.$val.DeleteTexture(a);};E.Ptr.prototype.DepthFunc=function(a){var b;b=this;b.Object.depthFunc(a);};E.prototype.DepthFunc=function(a){return this.$val.DepthFunc(a);};E.Ptr.prototype.DepthMask=function(a){var b;b=this;b.Object.depthMask($externalize(a,$Bool));};E.prototype.DepthMask=function(a){return this.$val.DepthMask(a);};E.Ptr.prototype.DepthRange=function(a,b){var c;c=this;c.Object.depthRange(a,b);};E.prototype.DepthRange=function(a,b){return this.$val.DepthRange(a,b);};E.Ptr.prototype.DetachShader=function(a,b){var c;c=this;c.Object.detachShader(a,b);};E.prototype.DetachShader=function(a,b){return this.$val.DetachShader(a,b);};E.Ptr.prototype.Disable=function(a){var b;b=this;b.Object.disable(a);};E.prototype.Disable=function(a){return this.$val.Disable(a);};E.Ptr.prototype.DisableVertexAttribArray=function(a){var b;b=this;b.Object.disableVertexAttribArray(a);};E.prototype.DisableVertexAttribArray=function(a){return this.$val.DisableVertexAttribArray(a);};E.Ptr.prototype.DrawArrays=function(a,b,c){var d;d=this;d.Object.drawArrays(a,b,c);};E.prototype.DrawArrays=function(a,b,c){return this.$val.DrawArrays(a,b,c);};E.Ptr.prototype.DrawElements=function(a,b,c,d){var e;e=this;e.Object.drawElements(a,b,c,d);};E.prototype.DrawElements=function(a,b,c,d){return this.$val.DrawElements(a,b,c,d);};E.Ptr.prototype.Enable=function(a){var b;b=this;b.Object.enable(a);};E.prototype.Enable=function(a){return this.$val.Enable(a);};E.Ptr.prototype.EnableVertexAttribArray=function(a){var b;b=this;b.Object.enableVertexAttribArray(a);};E.prototype.EnableVertexAttribArray=function(a){return this.$val.EnableVertexAttribArray(a);};E.Ptr.prototype.Finish=function(){var a;a=this;a.Object.finish();};E.prototype.Finish=function(){return this.$val.Finish();};E.Ptr.prototype.Flush=function(){var a;a=this;a.Object.flush();};E.prototype.Flush=function(){return this.$val.Flush();};E.Ptr.prototype.FrameBufferRenderBuffer=function(a,b,c,d){var e;e=this;e.Object.framebufferRenderBuffer(a,b,c,d);};E.prototype.FrameBufferRenderBuffer=function(a,b,c,d){return this.$val.FrameBufferRenderBuffer(a,b,c,d);};E.Ptr.prototype.FramebufferTexture2D=function(a,b,c,d,e){var f;f=this;f.Object.framebufferTexture2D(a,b,c,d,e);};E.prototype.FramebufferTexture2D=function(a,b,c,d,e){return this.$val.FramebufferTexture2D(a,b,c,d,e);};E.Ptr.prototype.FrontFace=function(a){var b;b=this;b.Object.frontFace(a);};E.prototype.FrontFace=function(a){return this.$val.FrontFace(a);};E.Ptr.prototype.GenerateMipmap=function(a){var b;b=this;b.Object.generateMipmap(a);};E.prototype.GenerateMipmap=function(a){return this.$val.GenerateMipmap(a);};E.Ptr.prototype.GetActiveAttrib=function(a,b){var c;c=this;return c.Object.getActiveAttrib(a,b);};E.prototype.GetActiveAttrib=function(a,b){return this.$val.GetActiveAttrib(a,b);};E.Ptr.prototype.GetActiveUniform=function(a,b){var c;c=this;return c.Object.getActiveUniform(a,b);};E.prototype.GetActiveUniform=function(a,b){return this.$val.GetActiveUniform(a,b);};E.Ptr.prototype.GetAttachedShaders=function(a){var b,c,d,e;b=this;c=b.Object.getAttachedShaders(a);d=J.make($parseInt(c.length));e=0;while(e<$parseInt(c.length)){(e<0||e>=d.$length)?$throwRuntimeError("index out of range"):d.$array[d.$offset+e]=c[e];e=e+(1)>>0;}return d;};E.prototype.GetAttachedShaders=function(a){return this.$val.GetAttachedShaders(a);};E.Ptr.prototype.GetAttribLocation=function(a,b){var c;c=this;return $parseInt(c.Object.getAttribLocation(a,$externalize(b,$String)))>>0;};E.prototype.GetAttribLocation=function(a,b){return this.$val.GetAttribLocation(a,b);};E.Ptr.prototype.GetBufferParameter=function(a,b){var c;c=this;return c.Object.getBufferParameter(a,b);};E.prototype.GetBufferParameter=function(a,b){return this.$val.GetBufferParameter(a,b);};E.Ptr.prototype.GetParameter=function(a){var b;b=this;return b.Object.getParameter(a);};E.prototype.GetParameter=function(a){return this.$val.GetParameter(a);};E.Ptr.prototype.GetError=function(){var a;a=this;return $parseInt(a.Object.getError())>>0;};E.prototype.GetError=function(){return this.$val.GetError();};E.Ptr.prototype.GetExtension=function(a){var b;b=this;return b.Object.getExtension($externalize(a,$String));};E.prototype.GetExtension=function(a){return this.$val.GetExtension(a);};E.Ptr.prototype.GetFramebufferAttachmentParameter=function(a,b,c){var d;d=this;return d.Object.getFramebufferAttachmentParameter(a,b,c);};E.prototype.GetFramebufferAttachmentParameter=function(a,b,c){return this.$val.GetFramebufferAttachmentParameter(a,b,c);};E.Ptr.prototype.GetProgramParameteri=function(a,b){var c;c=this;return $parseInt(c.Object.getProgramParameter(a,b))>>0;};E.prototype.GetProgramParameteri=function(a,b){return this.$val.GetProgramParameteri(a,b);};E.Ptr.prototype.GetProgramParameterb=function(a,b){var c;c=this;return!!(c.Object.getProgramParameter(a,b));};E.prototype.GetProgramParameterb=function(a,b){return this.$val.GetProgramParameterb(a,b);};E.Ptr.prototype.GetProgramInfoLog=function(a){var b;b=this;return $internalize(b.Object.getProgramInfoLog(a),$String);};E.prototype.GetProgramInfoLog=function(a){return this.$val.GetProgramInfoLog(a);};E.Ptr.prototype.GetRenderbufferParameter=function(a,b){var c;c=this;return c.Object.getRenderbufferParameter(a,b);};E.prototype.GetRenderbufferParameter=function(a,b){return this.$val.GetRenderbufferParameter(a,b);};E.Ptr.prototype.GetShaderParameter=function(a,b){var c;c=this;return c.Object.getShaderParameter(a,b);};E.prototype.GetShaderParameter=function(a,b){return this.$val.GetShaderParameter(a,b);};E.Ptr.prototype.GetShaderParameterb=function(a,b){var c;c=this;return!!(c.Object.getShaderParameter(a,b));};E.prototype.GetShaderParameterb=function(a,b){return this.$val.GetShaderParameterb(a,b);};E.Ptr.prototype.GetShaderInfoLog=function(a){var b;b=this;return $internalize(b.Object.getShaderInfoLog(a),$String);};E.prototype.GetShaderInfoLog=function(a){return this.$val.GetShaderInfoLog(a);};E.Ptr.prototype.GetShaderSource=function(a){var b;b=this;return $internalize(b.Object.getShaderSource(a),$String);};E.prototype.GetShaderSource=function(a){return this.$val.GetShaderSource(a);};E.Ptr.prototype.GetSupportedExtensions=function(){var a,b,c,d;a=this;b=a.Object.getSupportedExtensions();c=K.make($parseInt(b.length));d=0;while(d<$parseInt(b.length)){(d<0||d>=c.$length)?$throwRuntimeError("index out of range"):c.$array[c.$offset+d]=$internalize(b[d],$String);d=d+(1)>>0;}return c;};E.prototype.GetSupportedExtensions=function(){return this.$val.GetSupportedExtensions();};E.Ptr.prototype.GetTexParameter=function(a,b){var c;c=this;return c.Object.getTexParameter(a,b);};E.prototype.GetTexParameter=function(a,b){return this.$val.GetTexParameter(a,b);};E.Ptr.prototype.GetUniform=function(a,b){var c;c=this;return c.Object.getUniform(a,b);};E.prototype.GetUniform=function(a,b){return this.$val.GetUniform(a,b);};E.Ptr.prototype.GetUniformLocation=function(a,b){var c;c=this;return c.Object.getUniformLocation(a,$externalize(b,$String));};E.prototype.GetUniformLocation=function(a,b){return this.$val.GetUniformLocation(a,b);};E.Ptr.prototype.GetVertexAttrib=function(a,b){var c;c=this;return c.Object.getVertexAttrib(a,b);};E.prototype.GetVertexAttrib=function(a,b){return this.$val.GetVertexAttrib(a,b);};E.Ptr.prototype.GetVertexAttribOffset=function(a,b){var c;c=this;return $parseInt(c.Object.getVertexAttribOffset(a,b))>>0;};E.prototype.GetVertexAttribOffset=function(a,b){return this.$val.GetVertexAttribOffset(a,b);};E.Ptr.prototype.IsBuffer=function(a){var b;b=this;return!!(b.Object.isBuffer(a));};E.prototype.IsBuffer=function(a){return this.$val.IsBuffer(a);};E.Ptr.prototype.IsContextLost=function(){var a;a=this;return!!(a.Object.isContextLost());};E.prototype.IsContextLost=function(){return this.$val.IsContextLost();};E.Ptr.prototype.IsFramebuffer=function(a){var b;b=this;return!!(b.Object.isFramebuffer(a));};E.prototype.IsFramebuffer=function(a){return this.$val.IsFramebuffer(a);};E.Ptr.prototype.IsProgram=function(a){var b;b=this;return!!(b.Object.isProgram(a));};E.prototype.IsProgram=function(a){return this.$val.IsProgram(a);};E.Ptr.prototype.IsRenderbuffer=function(a){var b;b=this;return!!(b.Object.isRenderbuffer(a));};E.prototype.IsRenderbuffer=function(a){return this.$val.IsRenderbuffer(a);};E.Ptr.prototype.IsShader=function(a){var b;b=this;return!!(b.Object.isShader(a));};E.prototype.IsShader=function(a){return this.$val.IsShader(a);};E.Ptr.prototype.IsTexture=function(a){var b;b=this;return!!(b.Object.isTexture(a));};E.prototype.IsTexture=function(a){return this.$val.IsTexture(a);};E.Ptr.prototype.IsEnabled=function(a){var b;b=this;return!!(b.Object.isEnabled(a));};E.prototype.IsEnabled=function(a){return this.$val.IsEnabled(a);};E.Ptr.prototype.LineWidth=function(a){var b;b=this;b.Object.lineWidth(a);};E.prototype.LineWidth=function(a){return this.$val.LineWidth(a);};E.Ptr.prototype.LinkProgram=function(a){var b;b=this;b.Object.linkProgram(a);};E.prototype.LinkProgram=function(a){return this.$val.LinkProgram(a);};E.Ptr.prototype.PixelStorei=function(a,b){var c;c=this;c.Object.pixelStorei(a,b);};E.prototype.PixelStorei=function(a,b){return this.$val.PixelStorei(a,b);};E.Ptr.prototype.PolygonOffset=function(a,b){var c;c=this;c.Object.polygonOffset(a,b);};E.prototype.PolygonOffset=function(a,b){return this.$val.PolygonOffset(a,b);};E.Ptr.prototype.ReadPixels=function(a,b,c,d,e,f,g){var h;h=this;h.Object.readPixels(a,b,c,d,e,f,g);};E.prototype.ReadPixels=function(a,b,c,d,e,f,g){return this.$val.ReadPixels(a,b,c,d,e,f,g);};E.Ptr.prototype.RenderbufferStorage=function(a,b,c,d){var e;e=this;e.Object.renderbufferStorage(a,b,c,d);};E.prototype.RenderbufferStorage=function(a,b,c,d){return this.$val.RenderbufferStorage(a,b,c,d);};E.Ptr.prototype.Scissor=function(a,b,c,d){var e;e=this;e.Object.scissor(a,b,c,d);};E.prototype.Scissor=function(a,b,c,d){return this.$val.Scissor(a,b,c,d);};E.Ptr.prototype.ShaderSource=function(a,b){var c;c=this;c.Object.shaderSource(a,$externalize(b,$String));};E.prototype.ShaderSource=function(a,b){return this.$val.ShaderSource(a,b);};E.Ptr.prototype.TexImage2D=function(a,b,c,d,e,f){var g;g=this;g.Object.texImage2D(a,b,c,d,e,f);};E.prototype.TexImage2D=function(a,b,c,d,e,f){return this.$val.TexImage2D(a,b,c,d,e,f);};E.Ptr.prototype.TexParameteri=function(a,b,c){var d;d=this;d.Object.texParameteri(a,b,c);};E.prototype.TexParameteri=function(a,b,c){return this.$val.TexParameteri(a,b,c);};E.Ptr.prototype.TexSubImage2D=function(a,b,c,d,e,f,g){var h;h=this;h.Object.texSubImage2D(a,b,c,d,e,f,g);};E.prototype.TexSubImage2D=function(a,b,c,d,e,f,g){return this.$val.TexSubImage2D(a,b,c,d,e,f,g);};E.Ptr.prototype.Uniform1f=function(a,b){var c;c=this;c.Object.uniform1f(a,b);};E.prototype.Uniform1f=function(a,b){return this.$val.Uniform1f(a,b);};E.Ptr.prototype.Uniform1i=function(a,b){var c;c=this;c.Object.uniform1i(a,b);};E.prototype.Uniform1i=function(a,b){return this.$val.Uniform1i(a,b);};E.Ptr.prototype.Uniform2f=function(a,b,c){var d;d=this;d.Object.uniform2f(a,b,c);};E.prototype.Uniform2f=function(a,b,c){return this.$val.Uniform2f(a,b,c);};E.Ptr.prototype.Uniform2i=function(a,b,c){var d;d=this;d.Object.uniform2i(a,b,c);};E.prototype.Uniform2i=function(a,b,c){return this.$val.Uniform2i(a,b,c);};E.Ptr.prototype.Uniform3f=function(a,b,c,d){var e;e=this;e.Object.uniform3f(a,b,c,d);};E.prototype.Uniform3f=function(a,b,c,d){return this.$val.Uniform3f(a,b,c,d);};E.Ptr.prototype.Uniform3i=function(a,b,c,d){var e;e=this;e.Object.uniform3i(a,b,c,d);};E.prototype.Uniform3i=function(a,b,c,d){return this.$val.Uniform3i(a,b,c,d);};E.Ptr.prototype.Uniform4f=function(a,b,c,d,e){var f;f=this;f.Object.uniform4f(a,b,c,d,e);};E.prototype.Uniform4f=function(a,b,c,d,e){return this.$val.Uniform4f(a,b,c,d,e);};E.Ptr.prototype.Uniform4i=function(a,b,c,d,e){var f;f=this;f.Object.uniform4i(a,b,c,d,e);};E.prototype.Uniform4i=function(a,b,c,d,e){return this.$val.Uniform4i(a,b,c,d,e);};E.Ptr.prototype.UniformMatrix2fv=function(a,b,c){var d;d=this;d.Object.uniformMatrix2fv(a,$externalize(b,$Bool),$externalize(c,L));};E.prototype.UniformMatrix2fv=function(a,b,c){return this.$val.UniformMatrix2fv(a,b,c);};E.Ptr.prototype.UniformMatrix3fv=function(a,b,c){var d;d=this;d.Object.uniformMatrix3fv(a,$externalize(b,$Bool),$externalize(c,L));};E.prototype.UniformMatrix3fv=function(a,b,c){return this.$val.UniformMatrix3fv(a,b,c);};E.Ptr.prototype.UniformMatrix4fv=function(a,b,c){var d;d=this;d.Object.uniformMatrix4fv(a,$externalize(b,$Bool),$externalize(c,L));};E.prototype.UniformMatrix4fv=function(a,b,c){return this.$val.UniformMatrix4fv(a,b,c);};E.Ptr.prototype.UseProgram=function(a){var b;b=this;b.Object.useProgram(a);};E.prototype.UseProgram=function(a){return this.$val.UseProgram(a);};E.Ptr.prototype.ValidateProgram=function(a){var b;b=this;b.Object.validateProgram(a);};E.prototype.ValidateProgram=function(a){return this.$val.ValidateProgram(a);};E.Ptr.prototype.VertexAttribPointer=function(a,b,c,d,e,f){var g;g=this;g.Object.vertexAttribPointer(a,b,c,$externalize(d,$Bool),e,f);};E.prototype.VertexAttribPointer=function(a,b,c,d,e,f){return this.$val.VertexAttribPointer(a,b,c,d,e,f);};E.Ptr.prototype.Viewport=function(a,b,c,d){var e;e=this;e.Object.viewport(a,b,c,d);};E.prototype.Viewport=function(a,b,c,d){return this.$val.Viewport(a,b,c,d);};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}G=$ptrType(E);H=$ptrType(C);I=$mapType($String,$Bool);J=$sliceType(B.Object);K=$sliceType($String);L=$sliceType($Float32);M=$sliceType($emptyInterface);C.init([["Alpha","Alpha","",$Bool,""],["Depth","Depth","",$Bool,""],["Stencil","Stencil","",$Bool,""],["Antialias","Antialias","",$Bool,""],["PremultipliedAlpha","PremultipliedAlpha","",$Bool,""],["PreserveDrawingBuffer","PreserveDrawingBuffer","",$Bool,""]]);E.methods=[["Bool","Bool","",$funcType([],[$Bool],false),0],["Call","Call","",$funcType([$String,M],[B.Object],true),0],["Delete","Delete","",$funcType([$String],[],false),0],["Float","Float","",$funcType([],[$Float64],false),0],["Get","Get","",$funcType([$String],[B.Object],false),0],["Index","Index","",$funcType([$Int],[B.Object],false),0],["Int","Int","",$funcType([],[$Int],false),0],["Int64","Int64","",$funcType([],[$Int64],false),0],["Interface","Interface","",$funcType([],[$emptyInterface],false),0],["Invoke","Invoke","",$funcType([M],[B.Object],true),0],["Length","Length","",$funcType([],[$Int],false),0],["New","New","",$funcType([M],[B.Object],true),0],["Set","Set","",$funcType([$String,$emptyInterface],[],false),0],["SetIndex","SetIndex","",$funcType([$Int,$emptyInterface],[],false),0],["Str","Str","",$funcType([],[$String],false),0],["Uint64","Uint64","",$funcType([],[$Uint64],false),0],["Unsafe","Unsafe","",$funcType([],[$Uintptr],false),0]];G.methods=[["ActiveTexture","ActiveTexture","",$funcType([$Int],[],false),-1],["AttachShader","AttachShader","",$funcType([B.Object,B.Object],[],false),-1],["BindAttribLocation","BindAttribLocation","",$funcType([B.Object,$Int,$String],[],false),-1],["BindBuffer","BindBuffer","",$funcType([$Int,B.Object],[],false),-1],["BindFramebuffer","BindFramebuffer","",$funcType([$Int,B.Object],[],false),-1],["BindRenderbuffer","BindRenderbuffer","",$funcType([$Int,B.Object],[],false),-1],["BindTexture","BindTexture","",$funcType([$Int,B.Object],[],false),-1],["BlendColor","BlendColor","",$funcType([$Float64,$Float64,$Float64,$Float64],[],false),-1],["BlendEquation","BlendEquation","",$funcType([$Int],[],false),-1],["BlendEquationSeparate","BlendEquationSeparate","",$funcType([$Int,$Int],[],false),-1],["BlendFunc","BlendFunc","",$funcType([$Int,$Int],[],false),-1],["BlendFuncSeparate","BlendFuncSeparate","",$funcType([$Int,$Int,$Int,$Int],[],false),-1],["Bool","Bool","",$funcType([],[$Bool],false),0],["BufferData","BufferData","",$funcType([$Int,$emptyInterface,$Int],[],false),-1],["BufferSubData","BufferSubData","",$funcType([$Int,$Int,$emptyInterface],[],false),-1],["Call","Call","",$funcType([$String,M],[B.Object],true),0],["CheckFramebufferStatus","CheckFramebufferStatus","",$funcType([$Int],[$Int],false),-1],["Clear","Clear","",$funcType([$Int],[],false),-1],["ClearColor","ClearColor","",$funcType([$Float32,$Float32,$Float32,$Float32],[],false),-1],["ClearDepth","ClearDepth","",$funcType([$Float64],[],false),-1],["ClearStencil","ClearStencil","",$funcType([$Int],[],false),-1],["ColorMask","ColorMask","",$funcType([$Bool,$Bool,$Bool,$Bool],[],false),-1],["CompileShader","CompileShader","",$funcType([B.Object],[],false),-1],["CopyTexImage2D","CopyTexImage2D","",$funcType([$Int,$Int,$Int,$Int,$Int,$Int,$Int,$Int],[],false),-1],["CopyTexSubImage2D","CopyTexSubImage2D","",$funcType([$Int,$Int,$Int,$Int,$Int,$Int,$Int,$Int],[],false),-1],["CreateBuffer","CreateBuffer","",$funcType([],[B.Object],false),-1],["CreateFramebuffer","CreateFramebuffer","",$funcType([],[B.Object],false),-1],["CreateProgram","CreateProgram","",$funcType([],[B.Object],false),-1],["CreateRenderbuffer","CreateRenderbuffer","",$funcType([],[B.Object],false),-1],["CreateShader","CreateShader","",$funcType([$Int],[B.Object],false),-1],["CreateTexture","CreateTexture","",$funcType([],[B.Object],false),-1],["CullFace","CullFace","",$funcType([$Int],[],false),-1],["Delete","Delete","",$funcType([$String],[],false),0],["DeleteBuffer","DeleteBuffer","",$funcType([B.Object],[],false),-1],["DeleteFramebuffer","DeleteFramebuffer","",$funcType([B.Object],[],false),-1],["DeleteProgram","DeleteProgram","",$funcType([B.Object],[],false),-1],["DeleteRenderbuffer","DeleteRenderbuffer","",$funcType([B.Object],[],false),-1],["DeleteShader","DeleteShader","",$funcType([B.Object],[],false),-1],["DeleteTexture","DeleteTexture","",$funcType([B.Object],[],false),-1],["DepthFunc","DepthFunc","",$funcType([$Int],[],false),-1],["DepthMask","DepthMask","",$funcType([$Bool],[],false),-1],["DepthRange","DepthRange","",$funcType([$Float64,$Float64],[],false),-1],["DetachShader","DetachShader","",$funcType([B.Object,B.Object],[],false),-1],["Disable","Disable","",$funcType([$Int],[],false),-1],["DisableVertexAttribArray","DisableVertexAttribArray","",$funcType([$Int],[],false),-1],["DrawArrays","DrawArrays","",$funcType([$Int,$Int,$Int],[],false),-1],["DrawElements","DrawElements","",$funcType([$Int,$Int,$Int,$Int],[],false),-1],["Enable","Enable","",$funcType([$Int],[],false),-1],["EnableVertexAttribArray","EnableVertexAttribArray","",$funcType([$Int],[],false),-1],["Finish","Finish","",$funcType([],[],false),-1],["Float","Float","",$funcType([],[$Float64],false),0],["Flush","Flush","",$funcType([],[],false),-1],["FrameBufferRenderBuffer","FrameBufferRenderBuffer","",$funcType([$Int,$Int,$Int,B.Object],[],false),-1],["FramebufferTexture2D","FramebufferTexture2D","",$funcType([$Int,$Int,$Int,B.Object,$Int],[],false),-1],["FrontFace","FrontFace","",$funcType([$Int],[],false),-1],["GenerateMipmap","GenerateMipmap","",$funcType([$Int],[],false),-1],["Get","Get","",$funcType([$String],[B.Object],false),0],["GetActiveAttrib","GetActiveAttrib","",$funcType([B.Object,$Int],[B.Object],false),-1],["GetActiveUniform","GetActiveUniform","",$funcType([B.Object,$Int],[B.Object],false),-1],["GetAttachedShaders","GetAttachedShaders","",$funcType([B.Object],[J],false),-1],["GetAttribLocation","GetAttribLocation","",$funcType([B.Object,$String],[$Int],false),-1],["GetBufferParameter","GetBufferParameter","",$funcType([$Int,$Int],[B.Object],false),-1],["GetContextAttributes","GetContextAttributes","",$funcType([],[C],false),-1],["GetError","GetError","",$funcType([],[$Int],false),-1],["GetExtension","GetExtension","",$funcType([$String],[B.Object],false),-1],["GetFramebufferAttachmentParameter","GetFramebufferAttachmentParameter","",$funcType([$Int,$Int,$Int],[B.Object],false),-1],["GetParameter","GetParameter","",$funcType([$Int],[B.Object],false),-1],["GetProgramInfoLog","GetProgramInfoLog","",$funcType([B.Object],[$String],false),-1],["GetProgramParameterb","GetProgramParameterb","",$funcType([B.Object,$Int],[$Bool],false),-1],["GetProgramParameteri","GetProgramParameteri","",$funcType([B.Object,$Int],[$Int],false),-1],["GetRenderbufferParameter","GetRenderbufferParameter","",$funcType([$Int,$Int],[B.Object],false),-1],["GetShaderInfoLog","GetShaderInfoLog","",$funcType([B.Object],[$String],false),-1],["GetShaderParameter","GetShaderParameter","",$funcType([B.Object,$Int],[B.Object],false),-1],["GetShaderParameterb","GetShaderParameterb","",$funcType([B.Object,$Int],[$Bool],false),-1],["GetShaderSource","GetShaderSource","",$funcType([B.Object],[$String],false),-1],["GetSupportedExtensions","GetSupportedExtensions","",$funcType([],[K],false),-1],["GetTexParameter","GetTexParameter","",$funcType([$Int,$Int],[B.Object],false),-1],["GetUniform","GetUniform","",$funcType([B.Object,B.Object],[B.Object],false),-1],["GetUniformLocation","GetUniformLocation","",$funcType([B.Object,$String],[B.Object],false),-1],["GetVertexAttrib","GetVertexAttrib","",$funcType([$Int,$Int],[B.Object],false),-1],["GetVertexAttribOffset","GetVertexAttribOffset","",$funcType([$Int,$Int],[$Int],false),-1],["Index","Index","",$funcType([$Int],[B.Object],false),0],["Int","Int","",$funcType([],[$Int],false),0],["Int64","Int64","",$funcType([],[$Int64],false),0],["Interface","Interface","",$funcType([],[$emptyInterface],false),0],["Invoke","Invoke","",$funcType([M],[B.Object],true),0],["IsBuffer","IsBuffer","",$funcType([B.Object],[$Bool],false),-1],["IsContextLost","IsContextLost","",$funcType([],[$Bool],false),-1],["IsEnabled","IsEnabled","",$funcType([$Int],[$Bool],false),-1],["IsFramebuffer","IsFramebuffer","",$funcType([B.Object],[$Bool],false),-1],["IsProgram","IsProgram","",$funcType([B.Object],[$Bool],false),-1],["IsRenderbuffer","IsRenderbuffer","",$funcType([B.Object],[$Bool],false),-1],["IsShader","IsShader","",$funcType([B.Object],[$Bool],false),-1],["IsTexture","IsTexture","",$funcType([B.Object],[$Bool],false),-1],["Length","Length","",$funcType([],[$Int],false),0],["LineWidth","LineWidth","",$funcType([$Float64],[],false),-1],["LinkProgram","LinkProgram","",$funcType([B.Object],[],false),-1],["New","New","",$funcType([M],[B.Object],true),0],["PixelStorei","PixelStorei","",$funcType([$Int,$Int],[],false),-1],["PolygonOffset","PolygonOffset","",$funcType([$Float64,$Float64],[],false),-1],["ReadPixels","ReadPixels","",$funcType([$Int,$Int,$Int,$Int,$Int,$Int,B.Object],[],false),-1],["RenderbufferStorage","RenderbufferStorage","",$funcType([$Int,$Int,$Int,$Int],[],false),-1],["Scissor","Scissor","",$funcType([$Int,$Int,$Int,$Int],[],false),-1],["Set","Set","",$funcType([$String,$emptyInterface],[],false),0],["SetIndex","SetIndex","",$funcType([$Int,$emptyInterface],[],false),0],["ShaderSource","ShaderSource","",$funcType([B.Object,$String],[],false),-1],["Str","Str","",$funcType([],[$String],false),0],["TexImage2D","TexImage2D","",$funcType([$Int,$Int,$Int,$Int,$Int,B.Object],[],false),-1],["TexParameteri","TexParameteri","",$funcType([$Int,$Int,$Int],[],false),-1],["TexSubImage2D","TexSubImage2D","",$funcType([$Int,$Int,$Int,$Int,$Int,$Int,B.Object],[],false),-1],["Uint64","Uint64","",$funcType([],[$Uint64],false),0],["Uniform1f","Uniform1f","",$funcType([B.Object,$Float32],[],false),-1],["Uniform1i","Uniform1i","",$funcType([B.Object,$Int],[],false),-1],["Uniform2f","Uniform2f","",$funcType([B.Object,$Float32,$Float32],[],false),-1],["Uniform2i","Uniform2i","",$funcType([B.Object,$Int,$Int],[],false),-1],["Uniform3f","Uniform3f","",$funcType([B.Object,$Float32,$Float32,$Float32],[],false),-1],["Uniform3i","Uniform3i","",$funcType([B.Object,$Int,$Int,$Int],[],false),-1],["Uniform4f","Uniform4f","",$funcType([B.Object,$Float32,$Float32,$Float32,$Float32],[],false),-1],["Uniform4i","Uniform4i","",$funcType([B.Object,$Int,$Int,$Int,$Int],[],false),-1],["UniformMatrix2fv","UniformMatrix2fv","",$funcType([B.Object,$Bool,L],[],false),-1],["UniformMatrix3fv","UniformMatrix3fv","",$funcType([B.Object,$Bool,L],[],false),-1],["UniformMatrix4fv","UniformMatrix4fv","",$funcType([B.Object,$Bool,L],[],false),-1],["Unsafe","Unsafe","",$funcType([],[$Uintptr],false),0],["UseProgram","UseProgram","",$funcType([B.Object],[],false),-1],["ValidateProgram","ValidateProgram","",$funcType([B.Object],[],false),-1],["VertexAttribPointer","VertexAttribPointer","",$funcType([$Int,$Int,$Int,$Bool,$Int,$Int],[],false),-1],["Viewport","Viewport","",$funcType([$Int,$Int,$Int,$Int],[],false),-1]];E.init([["Object","","",B.Object,""],["ARRAY_BUFFER","ARRAY_BUFFER","",$Int,"js:\"ARRAY_BUFFER\""],["ARRAY_BUFFER_BINDING","ARRAY_BUFFER_BINDING","",$Int,"js:\"ARRAY_BUFFER_BINDING\""],["ATTACHED_SHADERS","ATTACHED_SHADERS","",$Int,"js:\"ATTACHED_SHADERS\""],["BACK","BACK","",$Int,"js:\"BACK\""],["BLEND","BLEND","",$Int,"js:\"BLEND\""],["BLEND_COLOR","BLEND_COLOR","",$Int,"js:\"BLEND_COLOR\""],["BLEND_DST_ALPHA","BLEND_DST_ALPHA","",$Int,"js:\"BLEND_DST_ALPHA\""],["BLEND_DST_RGB","BLEND_DST_RGB","",$Int,"js:\"BLEND_DST_RGB\""],["BLEND_EQUATION","BLEND_EQUATION","",$Int,"js:\"BLEND_EQUATION\""],["BLEND_EQUATION_ALPHA","BLEND_EQUATION_ALPHA","",$Int,"js:\"BLEND_EQUATION_ALPHA\""],["BLEND_EQUATION_RGB","BLEND_EQUATION_RGB","",$Int,"js:\"BLEND_EQUATION_RGB\""],["BLEND_SRC_ALPHA","BLEND_SRC_ALPHA","",$Int,"js:\"BLEND_SRC_ALPHA\""],["BLEND_SRC_RGB","BLEND_SRC_RGB","",$Int,"js:\"BLEND_SRC_RGB\""],["BLUE_BITS","BLUE_BITS","",$Int,"js:\"BLUE_BITS\""],["BOOL","BOOL","",$Int,"js:\"BOOL\""],["BOOL_VEC2","BOOL_VEC2","",$Int,"js:\"BOOL_VEC2\""],["BOOL_VEC3","BOOL_VEC3","",$Int,"js:\"BOOL_VEC3\""],["BOOL_VEC4","BOOL_VEC4","",$Int,"js:\"BOOL_VEC4\""],["BROWSER_DEFAULT_WEBGL","BROWSER_DEFAULT_WEBGL","",$Int,"js:\"BROWSER_DEFAULT_WEBGL\""],["BUFFER_SIZE","BUFFER_SIZE","",$Int,"js:\"BUFFER_SIZE\""],["BUFFER_USAGE","BUFFER_USAGE","",$Int,"js:\"BUFFER_USAGE\""],["BYTE","BYTE","",$Int,"js:\"BYTE\""],["CCW","CCW","",$Int,"js:\"CCW\""],["CLAMP_TO_EDGE","CLAMP_TO_EDGE","",$Int,"js:\"CLAMP_TO_EDGE\""],["COLOR_ATTACHMENT0","COLOR_ATTACHMENT0","",$Int,"js:\"COLOR_ATTACHMENT0\""],["COLOR_BUFFER_BIT","COLOR_BUFFER_BIT","",$Int,"js:\"COLOR_BUFFER_BIT\""],["COLOR_CLEAR_VALUE","COLOR_CLEAR_VALUE","",$Int,"js:\"COLOR_CLEAR_VALUE\""],["COLOR_WRITEMASK","COLOR_WRITEMASK","",$Int,"js:\"COLOR_WRITEMASK\""],["COMPILE_STATUS","COMPILE_STATUS","",$Int,"js:\"COMPILE_STATUS\""],["COMPRESSED_TEXTURE_FORMATS","COMPRESSED_TEXTURE_FORMATS","",$Int,"js:\"COMPRESSED_TEXTURE_FORMATS\""],["CONSTANT_ALPHA","CONSTANT_ALPHA","",$Int,"js:\"CONSTANT_ALPHA\""],["CONSTANT_COLOR","CONSTANT_COLOR","",$Int,"js:\"CONSTANT_COLOR\""],["CONTEXT_LOST_WEBGL","CONTEXT_LOST_WEBGL","",$Int,"js:\"CONTEXT_LOST_WEBGL\""],["CULL_FACE","CULL_FACE","",$Int,"js:\"CULL_FACE\""],["CULL_FACE_MODE","CULL_FACE_MODE","",$Int,"js:\"CULL_FACE_MODE\""],["CURRENT_PROGRAM","CURRENT_PROGRAM","",$Int,"js:\"CURRENT_PROGRAM\""],["CURRENT_VERTEX_ATTRIB","CURRENT_VERTEX_ATTRIB","",$Int,"js:\"CURRENT_VERTEX_ATTRIB\""],["CW","CW","",$Int,"js:\"CW\""],["DECR","DECR","",$Int,"js:\"DECR\""],["DECR_WRAP","DECR_WRAP","",$Int,"js:\"DECR_WRAP\""],["DELETE_STATUS","DELETE_STATUS","",$Int,"js:\"DELETE_STATUS\""],["DEPTH_ATTACHMENT","DEPTH_ATTACHMENT","",$Int,"js:\"DEPTH_ATTACHMENT\""],["DEPTH_BITS","DEPTH_BITS","",$Int,"js:\"DEPTH_BITS\""],["DEPTH_BUFFER_BIT","DEPTH_BUFFER_BIT","",$Int,"js:\"DEPTH_BUFFER_BIT\""],["DEPTH_CLEAR_VALUE","DEPTH_CLEAR_VALUE","",$Int,"js:\"DEPTH_CLEAR_VALUE\""],["DEPTH_COMPONENT","DEPTH_COMPONENT","",$Int,"js:\"DEPTH_COMPONENT\""],["DEPTH_COMPONENT16","DEPTH_COMPONENT16","",$Int,"js:\"DEPTH_COMPONENT16\""],["DEPTH_FUNC","DEPTH_FUNC","",$Int,"js:\"DEPTH_FUNC\""],["DEPTH_RANGE","DEPTH_RANGE","",$Int,"js:\"DEPTH_RANGE\""],["DEPTH_STENCIL","DEPTH_STENCIL","",$Int,"js:\"DEPTH_STENCIL\""],["DEPTH_STENCIL_ATTACHMENT","DEPTH_STENCIL_ATTACHMENT","",$Int,"js:\"DEPTH_STENCIL_ATTACHMENT\""],["DEPTH_TEST","DEPTH_TEST","",$Int,"js:\"DEPTH_TEST\""],["DEPTH_WRITEMASK","DEPTH_WRITEMASK","",$Int,"js:\"DEPTH_WRITEMASK\""],["DITHER","DITHER","",$Int,"js:\"DITHER\""],["DONT_CARE","DONT_CARE","",$Int,"js:\"DONT_CARE\""],["DST_ALPHA","DST_ALPHA","",$Int,"js:\"DST_ALPHA\""],["DST_COLOR","DST_COLOR","",$Int,"js:\"DST_COLOR\""],["DYNAMIC_DRAW","DYNAMIC_DRAW","",$Int,"js:\"DYNAMIC_DRAW\""],["ELEMENT_ARRAY_BUFFER","ELEMENT_ARRAY_BUFFER","",$Int,"js:\"ELEMENT_ARRAY_BUFFER\""],["ELEMENT_ARRAY_BUFFER_BINDING","ELEMENT_ARRAY_BUFFER_BINDING","",$Int,"js:\"ELEMENT_ARRAY_BUFFER_BINDING\""],["EQUAL","EQUAL","",$Int,"js:\"EQUAL\""],["FASTEST","FASTEST","",$Int,"js:\"FASTEST\""],["FLOAT","FLOAT","",$Int,"js:\"FLOAT\""],["FLOAT_MAT2","FLOAT_MAT2","",$Int,"js:\"FLOAT_MAT2\""],["FLOAT_MAT3","FLOAT_MAT3","",$Int,"js:\"FLOAT_MAT3\""],["FLOAT_MAT4","FLOAT_MAT4","",$Int,"js:\"FLOAT_MAT4\""],["FLOAT_VEC2","FLOAT_VEC2","",$Int,"js:\"FLOAT_VEC2\""],["FLOAT_VEC3","FLOAT_VEC3","",$Int,"js:\"FLOAT_VEC3\""],["FLOAT_VEC4","FLOAT_VEC4","",$Int,"js:\"FLOAT_VEC4\""],["FRAGMENT_SHADER","FRAGMENT_SHADER","",$Int,"js:\"FRAGMENT_SHADER\""],["FRAMEBUFFER","FRAMEBUFFER","",$Int,"js:\"FRAMEBUFFER\""],["FRAMEBUFFER_ATTACHMENT_OBJECT_NAME","FRAMEBUFFER_ATTACHMENT_OBJECT_NAME","",$Int,"js:\"FRAMEBUFFER_ATTACHMENT_OBJECT_NAME\""],["FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE","FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE","",$Int,"js:\"FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE\""],["FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE","FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE","",$Int,"js:\"FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE\""],["FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL","FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL","",$Int,"js:\"FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL\""],["FRAMEBUFFER_BINDING","FRAMEBUFFER_BINDING","",$Int,"js:\"FRAMEBUFFER_BINDING\""],["FRAMEBUFFER_COMPLETE","FRAMEBUFFER_COMPLETE","",$Int,"js:\"FRAMEBUFFER_COMPLETE\""],["FRAMEBUFFER_INCOMPLETE_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_ATTACHMENT","",$Int,"js:\"FRAMEBUFFER_INCOMPLETE_ATTACHMENT\""],["FRAMEBUFFER_INCOMPLETE_DIMENSIONS","FRAMEBUFFER_INCOMPLETE_DIMENSIONS","",$Int,"js:\"FRAMEBUFFER_INCOMPLETE_DIMENSIONS\""],["FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT","",$Int,"js:\"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT\""],["FRAMEBUFFER_UNSUPPORTED","FRAMEBUFFER_UNSUPPORTED","",$Int,"js:\"FRAMEBUFFER_UNSUPPORTED\""],["FRONT","FRONT","",$Int,"js:\"FRONT\""],["FRONT_AND_BACK","FRONT_AND_BACK","",$Int,"js:\"FRONT_AND_BACK\""],["FRONT_FACE","FRONT_FACE","",$Int,"js:\"FRONT_FACE\""],["FUNC_ADD","FUNC_ADD","",$Int,"js:\"FUNC_ADD\""],["FUNC_REVERSE_SUBTRACT","FUNC_REVERSE_SUBTRACT","",$Int,"js:\"FUNC_REVERSE_SUBTRACT\""],["FUNC_SUBTRACT","FUNC_SUBTRACT","",$Int,"js:\"FUNC_SUBTRACT\""],["GENERATE_MIPMAP_HINT","GENERATE_MIPMAP_HINT","",$Int,"js:\"GENERATE_MIPMAP_HINT\""],["GEQUAL","GEQUAL","",$Int,"js:\"GEQUAL\""],["GREATER","GREATER","",$Int,"js:\"GREATER\""],["GREEN_BITS","GREEN_BITS","",$Int,"js:\"GREEN_BITS\""],["HIGH_FLOAT","HIGH_FLOAT","",$Int,"js:\"HIGH_FLOAT\""],["HIGH_INT","HIGH_INT","",$Int,"js:\"HIGH_INT\""],["INCR","INCR","",$Int,"js:\"INCR\""],["INCR_WRAP","INCR_WRAP","",$Int,"js:\"INCR_WRAP\""],["INFO_LOG_LENGTH","INFO_LOG_LENGTH","",$Int,"js:\"INFO_LOG_LENGTH\""],["INT","INT","",$Int,"js:\"INT\""],["INT_VEC2","INT_VEC2","",$Int,"js:\"INT_VEC2\""],["INT_VEC3","INT_VEC3","",$Int,"js:\"INT_VEC3\""],["INT_VEC4","INT_VEC4","",$Int,"js:\"INT_VEC4\""],["INVALID_ENUM","INVALID_ENUM","",$Int,"js:\"INVALID_ENUM\""],["INVALID_FRAMEBUFFER_OPERATION","INVALID_FRAMEBUFFER_OPERATION","",$Int,"js:\"INVALID_FRAMEBUFFER_OPERATION\""],["INVALID_OPERATION","INVALID_OPERATION","",$Int,"js:\"INVALID_OPERATION\""],["INVALID_VALUE","INVALID_VALUE","",$Int,"js:\"INVALID_VALUE\""],["INVERT","INVERT","",$Int,"js:\"INVERT\""],["KEEP","KEEP","",$Int,"js:\"KEEP\""],["LEQUAL","LEQUAL","",$Int,"js:\"LEQUAL\""],["LESS","LESS","",$Int,"js:\"LESS\""],["LINEAR","LINEAR","",$Int,"js:\"LINEAR\""],["LINEAR_MIPMAP_LINEAR","LINEAR_MIPMAP_LINEAR","",$Int,"js:\"LINEAR_MIPMAP_LINEAR\""],["LINEAR_MIPMAP_NEAREST","LINEAR_MIPMAP_NEAREST","",$Int,"js:\"LINEAR_MIPMAP_NEAREST\""],["LINES","LINES","",$Int,"js:\"LINES\""],["LINE_LOOP","LINE_LOOP","",$Int,"js:\"LINE_LOOP\""],["LINE_STRIP","LINE_STRIP","",$Int,"js:\"LINE_STRIP\""],["LINE_WIDTH","LINE_WIDTH","",$Int,"js:\"LINE_WIDTH\""],["LINK_STATUS","LINK_STATUS","",$Int,"js:\"LINK_STATUS\""],["LOW_FLOAT","LOW_FLOAT","",$Int,"js:\"LOW_FLOAT\""],["LOW_INT","LOW_INT","",$Int,"js:\"LOW_INT\""],["LUMINANCE","LUMINANCE","",$Int,"js:\"LUMINANCE\""],["LUMINANCE_ALPHA","LUMINANCE_ALPHA","",$Int,"js:\"LUMINANCE_ALPHA\""],["MAX_COMBINED_TEXTURE_IMAGE_UNITS","MAX_COMBINED_TEXTURE_IMAGE_UNITS","",$Int,"js:\"MAX_COMBINED_TEXTURE_IMAGE_UNITS\""],["MAX_CUBE_MAP_TEXTURE_SIZE","MAX_CUBE_MAP_TEXTURE_SIZE","",$Int,"js:\"MAX_CUBE_MAP_TEXTURE_SIZE\""],["MAX_FRAGMENT_UNIFORM_VECTORS","MAX_FRAGMENT_UNIFORM_VECTORS","",$Int,"js:\"MAX_FRAGMENT_UNIFORM_VECTORS\""],["MAX_RENDERBUFFER_SIZE","MAX_RENDERBUFFER_SIZE","",$Int,"js:\"MAX_RENDERBUFFER_SIZE\""],["MAX_TEXTURE_IMAGE_UNITS","MAX_TEXTURE_IMAGE_UNITS","",$Int,"js:\"MAX_TEXTURE_IMAGE_UNITS\""],["MAX_TEXTURE_SIZE","MAX_TEXTURE_SIZE","",$Int,"js:\"MAX_TEXTURE_SIZE\""],["MAX_VARYING_VECTORS","MAX_VARYING_VECTORS","",$Int,"js:\"MAX_VARYING_VECTORS\""],["MAX_VERTEX_ATTRIBS","MAX_VERTEX_ATTRIBS","",$Int,"js:\"MAX_VERTEX_ATTRIBS\""],["MAX_VERTEX_TEXTURE_IMAGE_UNITS","MAX_VERTEX_TEXTURE_IMAGE_UNITS","",$Int,"js:\"MAX_VERTEX_TEXTURE_IMAGE_UNITS\""],["MAX_VERTEX_UNIFORM_VECTORS","MAX_VERTEX_UNIFORM_VECTORS","",$Int,"js:\"MAX_VERTEX_UNIFORM_VECTORS\""],["MAX_VIEWPORT_DIMS","MAX_VIEWPORT_DIMS","",$Int,"js:\"MAX_VIEWPORT_DIMS\""],["MEDIUM_FLOAT","MEDIUM_FLOAT","",$Int,"js:\"MEDIUM_FLOAT\""],["MEDIUM_INT","MEDIUM_INT","",$Int,"js:\"MEDIUM_INT\""],["MIRRORED_REPEAT","MIRRORED_REPEAT","",$Int,"js:\"MIRRORED_REPEAT\""],["NEAREST","NEAREST","",$Int,"js:\"NEAREST\""],["NEAREST_MIPMAP_LINEAR","NEAREST_MIPMAP_LINEAR","",$Int,"js:\"NEAREST_MIPMAP_LINEAR\""],["NEAREST_MIPMAP_NEAREST","NEAREST_MIPMAP_NEAREST","",$Int,"js:\"NEAREST_MIPMAP_NEAREST\""],["NEVER","NEVER","",$Int,"js:\"NEVER\""],["NICEST","NICEST","",$Int,"js:\"NICEST\""],["NONE","NONE","",$Int,"js:\"NONE\""],["NOTEQUAL","NOTEQUAL","",$Int,"js:\"NOTEQUAL\""],["NO_ERROR","NO_ERROR","",$Int,"js:\"NO_ERROR\""],["NUM_COMPRESSED_TEXTURE_FORMATS","NUM_COMPRESSED_TEXTURE_FORMATS","",$Int,"js:\"NUM_COMPRESSED_TEXTURE_FORMATS\""],["ONE","ONE","",$Int,"js:\"ONE\""],["ONE_MINUS_CONSTANT_ALPHA","ONE_MINUS_CONSTANT_ALPHA","",$Int,"js:\"ONE_MINUS_CONSTANT_ALPHA\""],["ONE_MINUS_CONSTANT_COLOR","ONE_MINUS_CONSTANT_COLOR","",$Int,"js:\"ONE_MINUS_CONSTANT_COLOR\""],["ONE_MINUS_DST_ALPHA","ONE_MINUS_DST_ALPHA","",$Int,"js:\"ONE_MINUS_DST_ALPHA\""],["ONE_MINUS_DST_COLOR","ONE_MINUS_DST_COLOR","",$Int,"js:\"ONE_MINUS_DST_COLOR\""],["ONE_MINUS_SRC_ALPHA","ONE_MINUS_SRC_ALPHA","",$Int,"js:\"ONE_MINUS_SRC_ALPHA\""],["ONE_MINUS_SRC_COLOR","ONE_MINUS_SRC_COLOR","",$Int,"js:\"ONE_MINUS_SRC_COLOR\""],["OUT_OF_MEMORY","OUT_OF_MEMORY","",$Int,"js:\"OUT_OF_MEMORY\""],["PACK_ALIGNMENT","PACK_ALIGNMENT","",$Int,"js:\"PACK_ALIGNMENT\""],["POINTS","POINTS","",$Int,"js:\"POINTS\""],["POLYGON_OFFSET_FACTOR","POLYGON_OFFSET_FACTOR","",$Int,"js:\"POLYGON_OFFSET_FACTOR\""],["POLYGON_OFFSET_FILL","POLYGON_OFFSET_FILL","",$Int,"js:\"POLYGON_OFFSET_FILL\""],["POLYGON_OFFSET_UNITS","POLYGON_OFFSET_UNITS","",$Int,"js:\"POLYGON_OFFSET_UNITS\""],["RED_BITS","RED_BITS","",$Int,"js:\"RED_BITS\""],["RENDERBUFFER","RENDERBUFFER","",$Int,"js:\"RENDERBUFFER\""],["RENDERBUFFER_ALPHA_SIZE","RENDERBUFFER_ALPHA_SIZE","",$Int,"js:\"RENDERBUFFER_ALPHA_SIZE\""],["RENDERBUFFER_BINDING","RENDERBUFFER_BINDING","",$Int,"js:\"RENDERBUFFER_BINDING\""],["RENDERBUFFER_BLUE_SIZE","RENDERBUFFER_BLUE_SIZE","",$Int,"js:\"RENDERBUFFER_BLUE_SIZE\""],["RENDERBUFFER_DEPTH_SIZE","RENDERBUFFER_DEPTH_SIZE","",$Int,"js:\"RENDERBUFFER_DEPTH_SIZE\""],["RENDERBUFFER_GREEN_SIZE","RENDERBUFFER_GREEN_SIZE","",$Int,"js:\"RENDERBUFFER_GREEN_SIZE\""],["RENDERBUFFER_HEIGHT","RENDERBUFFER_HEIGHT","",$Int,"js:\"RENDERBUFFER_HEIGHT\""],["RENDERBUFFER_INTERNAL_FORMAT","RENDERBUFFER_INTERNAL_FORMAT","",$Int,"js:\"RENDERBUFFER_INTERNAL_FORMAT\""],["RENDERBUFFER_RED_SIZE","RENDERBUFFER_RED_SIZE","",$Int,"js:\"RENDERBUFFER_RED_SIZE\""],["RENDERBUFFER_STENCIL_SIZE","RENDERBUFFER_STENCIL_SIZE","",$Int,"js:\"RENDERBUFFER_STENCIL_SIZE\""],["RENDERBUFFER_WIDTH","RENDERBUFFER_WIDTH","",$Int,"js:\"RENDERBUFFER_WIDTH\""],["RENDERER","RENDERER","",$Int,"js:\"RENDERER\""],["REPEAT","REPEAT","",$Int,"js:\"REPEAT\""],["REPLACE","REPLACE","",$Int,"js:\"REPLACE\""],["RGB","RGB","",$Int,"js:\"RGB\""],["RGB5_A1","RGB5_A1","",$Int,"js:\"RGB5_A1\""],["RGB565","RGB565","",$Int,"js:\"RGB565\""],["RGBA","RGBA","",$Int,"js:\"RGBA\""],["RGBA4","RGBA4","",$Int,"js:\"RGBA4\""],["SAMPLER_2D","SAMPLER_2D","",$Int,"js:\"SAMPLER_2D\""],["SAMPLER_CUBE","SAMPLER_CUBE","",$Int,"js:\"SAMPLER_CUBE\""],["SAMPLES","SAMPLES","",$Int,"js:\"SAMPLES\""],["SAMPLE_ALPHA_TO_COVERAGE","SAMPLE_ALPHA_TO_COVERAGE","",$Int,"js:\"SAMPLE_ALPHA_TO_COVERAGE\""],["SAMPLE_BUFFERS","SAMPLE_BUFFERS","",$Int,"js:\"SAMPLE_BUFFERS\""],["SAMPLE_COVERAGE","SAMPLE_COVERAGE","",$Int,"js:\"SAMPLE_COVERAGE\""],["SAMPLE_COVERAGE_INVERT","SAMPLE_COVERAGE_INVERT","",$Int,"js:\"SAMPLE_COVERAGE_INVERT\""],["SAMPLE_COVERAGE_VALUE","SAMPLE_COVERAGE_VALUE","",$Int,"js:\"SAMPLE_COVERAGE_VALUE\""],["SCISSOR_BOX","SCISSOR_BOX","",$Int,"js:\"SCISSOR_BOX\""],["SCISSOR_TEST","SCISSOR_TEST","",$Int,"js:\"SCISSOR_TEST\""],["SHADER_COMPILER","SHADER_COMPILER","",$Int,"js:\"SHADER_COMPILER\""],["SHADER_SOURCE_LENGTH","SHADER_SOURCE_LENGTH","",$Int,"js:\"SHADER_SOURCE_LENGTH\""],["SHADER_TYPE","SHADER_TYPE","",$Int,"js:\"SHADER_TYPE\""],["SHADING_LANGUAGE_VERSION","SHADING_LANGUAGE_VERSION","",$Int,"js:\"SHADING_LANGUAGE_VERSION\""],["SHORT","SHORT","",$Int,"js:\"SHORT\""],["SRC_ALPHA","SRC_ALPHA","",$Int,"js:\"SRC_ALPHA\""],["SRC_ALPHA_SATURATE","SRC_ALPHA_SATURATE","",$Int,"js:\"SRC_ALPHA_SATURATE\""],["SRC_COLOR","SRC_COLOR","",$Int,"js:\"SRC_COLOR\""],["STATIC_DRAW","STATIC_DRAW","",$Int,"js:\"STATIC_DRAW\""],["STENCIL_ATTACHMENT","STENCIL_ATTACHMENT","",$Int,"js:\"STENCIL_ATTACHMENT\""],["STENCIL_BACK_FAIL","STENCIL_BACK_FAIL","",$Int,"js:\"STENCIL_BACK_FAIL\""],["STENCIL_BACK_FUNC","STENCIL_BACK_FUNC","",$Int,"js:\"STENCIL_BACK_FUNC\""],["STENCIL_BACK_PASS_DEPTH_FAIL","STENCIL_BACK_PASS_DEPTH_FAIL","",$Int,"js:\"STENCIL_BACK_PASS_DEPTH_FAIL\""],["STENCIL_BACK_PASS_DEPTH_PASS","STENCIL_BACK_PASS_DEPTH_PASS","",$Int,"js:\"STENCIL_BACK_PASS_DEPTH_PASS\""],["STENCIL_BACK_REF","STENCIL_BACK_REF","",$Int,"js:\"STENCIL_BACK_REF\""],["STENCIL_BACK_VALUE_MASK","STENCIL_BACK_VALUE_MASK","",$Int,"js:\"STENCIL_BACK_VALUE_MASK\""],["STENCIL_BACK_WRITEMASK","STENCIL_BACK_WRITEMASK","",$Int,"js:\"STENCIL_BACK_WRITEMASK\""],["STENCIL_BITS","STENCIL_BITS","",$Int,"js:\"STENCIL_BITS\""],["STENCIL_BUFFER_BIT","STENCIL_BUFFER_BIT","",$Int,"js:\"STENCIL_BUFFER_BIT\""],["STENCIL_CLEAR_VALUE","STENCIL_CLEAR_VALUE","",$Int,"js:\"STENCIL_CLEAR_VALUE\""],["STENCIL_FAIL","STENCIL_FAIL","",$Int,"js:\"STENCIL_FAIL\""],["STENCIL_FUNC","STENCIL_FUNC","",$Int,"js:\"STENCIL_FUNC\""],["STENCIL_INDEX","STENCIL_INDEX","",$Int,"js:\"STENCIL_INDEX\""],["STENCIL_INDEX8","STENCIL_INDEX8","",$Int,"js:\"STENCIL_INDEX8\""],["STENCIL_PASS_DEPTH_FAIL","STENCIL_PASS_DEPTH_FAIL","",$Int,"js:\"STENCIL_PASS_DEPTH_FAIL\""],["STENCIL_PASS_DEPTH_PASS","STENCIL_PASS_DEPTH_PASS","",$Int,"js:\"STENCIL_PASS_DEPTH_PASS\""],["STENCIL_REF","STENCIL_REF","",$Int,"js:\"STENCIL_REF\""],["STENCIL_TEST","STENCIL_TEST","",$Int,"js:\"STENCIL_TEST\""],["STENCIL_VALUE_MASK","STENCIL_VALUE_MASK","",$Int,"js:\"STENCIL_VALUE_MASK\""],["STENCIL_WRITEMASK","STENCIL_WRITEMASK","",$Int,"js:\"STENCIL_WRITEMASK\""],["STREAM_DRAW","STREAM_DRAW","",$Int,"js:\"STREAM_DRAW\""],["SUBPIXEL_BITS","SUBPIXEL_BITS","",$Int,"js:\"SUBPIXEL_BITS\""],["TEXTURE","TEXTURE","",$Int,"js:\"TEXTURE\""],["TEXTURE0","TEXTURE0","",$Int,"js:\"TEXTURE0\""],["TEXTURE1","TEXTURE1","",$Int,"js:\"TEXTURE1\""],["TEXTURE2","TEXTURE2","",$Int,"js:\"TEXTURE2\""],["TEXTURE3","TEXTURE3","",$Int,"js:\"TEXTURE3\""],["TEXTURE4","TEXTURE4","",$Int,"js:\"TEXTURE4\""],["TEXTURE5","TEXTURE5","",$Int,"js:\"TEXTURE5\""],["TEXTURE6","TEXTURE6","",$Int,"js:\"TEXTURE6\""],["TEXTURE7","TEXTURE7","",$Int,"js:\"TEXTURE7\""],["TEXTURE8","TEXTURE8","",$Int,"js:\"TEXTURE8\""],["TEXTURE9","TEXTURE9","",$Int,"js:\"TEXTURE9\""],["TEXTURE10","TEXTURE10","",$Int,"js:\"TEXTURE10\""],["TEXTURE11","TEXTURE11","",$Int,"js:\"TEXTURE11\""],["TEXTURE12","TEXTURE12","",$Int,"js:\"TEXTURE12\""],["TEXTURE13","TEXTURE13","",$Int,"js:\"TEXTURE13\""],["TEXTURE14","TEXTURE14","",$Int,"js:\"TEXTURE14\""],["TEXTURE15","TEXTURE15","",$Int,"js:\"TEXTURE15\""],["TEXTURE16","TEXTURE16","",$Int,"js:\"TEXTURE16\""],["TEXTURE17","TEXTURE17","",$Int,"js:\"TEXTURE17\""],["TEXTURE18","TEXTURE18","",$Int,"js:\"TEXTURE18\""],["TEXTURE19","TEXTURE19","",$Int,"js:\"TEXTURE19\""],["TEXTURE20","TEXTURE20","",$Int,"js:\"TEXTURE20\""],["TEXTURE21","TEXTURE21","",$Int,"js:\"TEXTURE21\""],["TEXTURE22","TEXTURE22","",$Int,"js:\"TEXTURE22\""],["TEXTURE23","TEXTURE23","",$Int,"js:\"TEXTURE23\""],["TEXTURE24","TEXTURE24","",$Int,"js:\"TEXTURE24\""],["TEXTURE25","TEXTURE25","",$Int,"js:\"TEXTURE25\""],["TEXTURE26","TEXTURE26","",$Int,"js:\"TEXTURE26\""],["TEXTURE27","TEXTURE27","",$Int,"js:\"TEXTURE27\""],["TEXTURE28","TEXTURE28","",$Int,"js:\"TEXTURE28\""],["TEXTURE29","TEXTURE29","",$Int,"js:\"TEXTURE29\""],["TEXTURE30","TEXTURE30","",$Int,"js:\"TEXTURE30\""],["TEXTURE31","TEXTURE31","",$Int,"js:\"TEXTURE31\""],["TEXTURE_2D","TEXTURE_2D","",$Int,"js:\"TEXTURE_2D\""],["TEXTURE_BINDING_2D","TEXTURE_BINDING_2D","",$Int,"js:\"TEXTURE_BINDING_2D\""],["TEXTURE_BINDING_CUBE_MAP","TEXTURE_BINDING_CUBE_MAP","",$Int,"js:\"TEXTURE_BINDING_CUBE_MAP\""],["TEXTURE_CUBE_MAP","TEXTURE_CUBE_MAP","",$Int,"js:\"TEXTURE_CUBE_MAP\""],["TEXTURE_CUBE_MAP_NEGATIVE_X","TEXTURE_CUBE_MAP_NEGATIVE_X","",$Int,"js:\"TEXTURE_CUBE_MAP_NEGATIVE_X\""],["TEXTURE_CUBE_MAP_NEGATIVE_Y","TEXTURE_CUBE_MAP_NEGATIVE_Y","",$Int,"js:\"TEXTURE_CUBE_MAP_NEGATIVE_Y\""],["TEXTURE_CUBE_MAP_NEGATIVE_Z","TEXTURE_CUBE_MAP_NEGATIVE_Z","",$Int,"js:\"TEXTURE_CUBE_MAP_NEGATIVE_Z\""],["TEXTURE_CUBE_MAP_POSITIVE_X","TEXTURE_CUBE_MAP_POSITIVE_X","",$Int,"js:\"TEXTURE_CUBE_MAP_POSITIVE_X\""],["TEXTURE_CUBE_MAP_POSITIVE_Y","TEXTURE_CUBE_MAP_POSITIVE_Y","",$Int,"js:\"TEXTURE_CUBE_MAP_POSITIVE_Y\""],["TEXTURE_CUBE_MAP_POSITIVE_Z","TEXTURE_CUBE_MAP_POSITIVE_Z","",$Int,"js:\"TEXTURE_CUBE_MAP_POSITIVE_Z\""],["TEXTURE_MAG_FILTER","TEXTURE_MAG_FILTER","",$Int,"js:\"TEXTURE_MAG_FILTER\""],["TEXTURE_MIN_FILTER","TEXTURE_MIN_FILTER","",$Int,"js:\"TEXTURE_MIN_FILTER\""],["TEXTURE_WRAP_S","TEXTURE_WRAP_S","",$Int,"js:\"TEXTURE_WRAP_S\""],["TEXTURE_WRAP_T","TEXTURE_WRAP_T","",$Int,"js:\"TEXTURE_WRAP_T\""],["TRIANGLES","TRIANGLES","",$Int,"js:\"TRIANGLES\""],["TRIANGLE_FAN","TRIANGLE_FAN","",$Int,"js:\"TRIANGLE_FAN\""],["TRIANGLE_STRIP","TRIANGLE_STRIP","",$Int,"js:\"TRIANGLE_STRIP\""],["UNPACK_ALIGNMENT","UNPACK_ALIGNMENT","",$Int,"js:\"UNPACK_ALIGNMENT\""],["UNPACK_COLORSPACE_CONVERSION_WEBGL","UNPACK_COLORSPACE_CONVERSION_WEBGL","",$Int,"js:\"UNPACK_COLORSPACE_CONVERSION_WEBGL\""],["UNPACK_FLIP_Y_WEBGL","UNPACK_FLIP_Y_WEBGL","",$Int,"js:\"UNPACK_FLIP_Y_WEBGL\""],["UNPACK_PREMULTIPLY_ALPHA_WEBGL","UNPACK_PREMULTIPLY_ALPHA_WEBGL","",$Int,"js:\"UNPACK_PREMULTIPLY_ALPHA_WEBGL\""],["UNSIGNED_BYTE","UNSIGNED_BYTE","",$Int,"js:\"UNSIGNED_BYTE\""],["UNSIGNED_INT","UNSIGNED_INT","",$Int,"js:\"UNSIGNED_INT\""],["UNSIGNED_SHORT","UNSIGNED_SHORT","",$Int,"js:\"UNSIGNED_SHORT\""],["UNSIGNED_SHORT_4_4_4_4","UNSIGNED_SHORT_4_4_4_4","",$Int,"js:\"UNSIGNED_SHORT_4_4_4_4\""],["UNSIGNED_SHORT_5_5_5_1","UNSIGNED_SHORT_5_5_5_1","",$Int,"js:\"UNSIGNED_SHORT_5_5_5_1\""],["UNSIGNED_SHORT_5_6_5","UNSIGNED_SHORT_5_6_5","",$Int,"js:\"UNSIGNED_SHORT_5_6_5\""],["VALIDATE_STATUS","VALIDATE_STATUS","",$Int,"js:\"VALIDATE_STATUS\""],["VENDOR","VENDOR","",$Int,"js:\"VENDOR\""],["VERSION","VERSION","",$Int,"js:\"VERSION\""],["VERTEX_ATTRIB_ARRAY_BUFFER_BINDING","VERTEX_ATTRIB_ARRAY_BUFFER_BINDING","",$Int,"js:\"VERTEX_ATTRIB_ARRAY_BUFFER_BINDING\""],["VERTEX_ATTRIB_ARRAY_ENABLED","VERTEX_ATTRIB_ARRAY_ENABLED","",$Int,"js:\"VERTEX_ATTRIB_ARRAY_ENABLED\""],["VERTEX_ATTRIB_ARRAY_NORMALIZED","VERTEX_ATTRIB_ARRAY_NORMALIZED","",$Int,"js:\"VERTEX_ATTRIB_ARRAY_NORMALIZED\""],["VERTEX_ATTRIB_ARRAY_POINTER","VERTEX_ATTRIB_ARRAY_POINTER","",$Int,"js:\"VERTEX_ATTRIB_ARRAY_POINTER\""],["VERTEX_ATTRIB_ARRAY_SIZE","VERTEX_ATTRIB_ARRAY_SIZE","",$Int,"js:\"VERTEX_ATTRIB_ARRAY_SIZE\""],["VERTEX_ATTRIB_ARRAY_STRIDE","VERTEX_ATTRIB_ARRAY_STRIDE","",$Int,"js:\"VERTEX_ATTRIB_ARRAY_STRIDE\""],["VERTEX_ATTRIB_ARRAY_TYPE","VERTEX_ATTRIB_ARRAY_TYPE","",$Int,"js:\"VERTEX_ATTRIB_ARRAY_TYPE\""],["VERTEX_SHADER","VERTEX_SHADER","",$Int,"js:\"VERTEX_SHADER\""],["VIEWPORT","VIEWPORT","",$Int,"js:\"VIEWPORT\""],["ZERO","ZERO","",$Int,"js:\"ZERO\""]]);}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["github.com/hajimehoshi/ebiten/internal/opengl"]=(function(){var $pkg={},A,B,C,D,U,V,W,X,Y,Z,E,F,G,H,I,K,P,Q,R,S,T,M,N,O,a,b,c,d,L;A=$packages["errors"];B=$packages["fmt"];C=$packages["github.com/gopherjs/gopherjs/js"];D=$packages["github.com/gopherjs/webgl"];E=$pkg.Texture=$newType(8,$kindInterface,"opengl.Texture","Texture","github.com/hajimehoshi/ebiten/internal/opengl",null);F=$pkg.Framebuffer=$newType(8,$kindInterface,"opengl.Framebuffer","Framebuffer","github.com/hajimehoshi/ebiten/internal/opengl",null);G=$pkg.Shader=$newType(8,$kindInterface,"opengl.Shader","Shader","github.com/hajimehoshi/ebiten/internal/opengl",null);H=$pkg.Program=$newType(8,$kindInterface,"opengl.Program","Program","github.com/hajimehoshi/ebiten/internal/opengl",null);I=$pkg.UniformLocation=$newType(8,$kindInterface,"opengl.UniformLocation","UniformLocation","github.com/hajimehoshi/ebiten/internal/opengl",null);K=$pkg.context=$newType(0,$kindStruct,"opengl.context","context","github.com/hajimehoshi/ebiten/internal/opengl",function(gl_){this.$val=this;this.gl=gl_!==undefined?gl_:X.nil;});P=$pkg.FilterType=$newType(4,$kindInt,"opengl.FilterType","FilterType","github.com/hajimehoshi/ebiten/internal/opengl",null);Q=$pkg.ShaderType=$newType(4,$kindInt,"opengl.ShaderType","ShaderType","github.com/hajimehoshi/ebiten/internal/opengl",null);R=$pkg.BufferType=$newType(4,$kindInt,"opengl.BufferType","BufferType","github.com/hajimehoshi/ebiten/internal/opengl",null);S=$pkg.BufferUsageType=$newType(4,$kindInt,"opengl.BufferUsageType","BufferUsageType","github.com/hajimehoshi/ebiten/internal/opengl",null);T=$pkg.Context=$newType(0,$kindStruct,"opengl.Context","Context","github.com/hajimehoshi/ebiten/internal/opengl",function(Nearest_,Linear_,VertexShader_,FragmentShader_,ArrayBuffer_,ElementArrayBuffer_,DynamicDraw_,StaticDraw_,context_){this.$val=this;this.Nearest=Nearest_!==undefined?Nearest_:0;this.Linear=Linear_!==undefined?Linear_:0;this.VertexShader=VertexShader_!==undefined?VertexShader_:0;this.FragmentShader=FragmentShader_!==undefined?FragmentShader_:0;this.ArrayBuffer=ArrayBuffer_!==undefined?ArrayBuffer_:0;this.ElementArrayBuffer=ElementArrayBuffer_!==undefined?ElementArrayBuffer_:0;this.DynamicDraw=DynamicDraw_!==undefined?DynamicDraw_:0;this.StaticDraw=StaticDraw_!==undefined?StaticDraw_:0;this.context=context_!==undefined?context_:new K.Ptr();});L=$pkg.NewContext=function(e){var f;f=new T.Ptr((($parseInt(e.Object.NEAREST)>>0)>>0),(($parseInt(e.Object.LINEAR)>>0)>>0),(($parseInt(e.Object.VERTEX_SHADER)>>0)>>0),(($parseInt(e.Object.FRAGMENT_SHADER)>>0)>>0),(($parseInt(e.Object.ARRAY_BUFFER)>>0)>>0),(($parseInt(e.Object.ELEMENT_ARRAY_BUFFER)>>0)>>0),(($parseInt(e.Object.DYNAMIC_DRAW)>>0)>>0),(($parseInt(e.Object.STATIC_DRAW)>>0)>>0),new K.Ptr());f.context.gl=e;f.init();return f;};T.Ptr.prototype.init=function(){var e,f;e=this;f=e.context.gl;f.Enable($parseInt(f.Object.BLEND)>>0);f.BlendFunc($parseInt(f.Object.ONE)>>0,$parseInt(f.Object.ONE_MINUS_SRC_ALPHA)>>0);};T.prototype.init=function(){return this.$val.init();};T.Ptr.prototype.NewTexture=function(e,f,g,h){var i,j,k,l;i=this;j=i.context.gl;k=j.CreateTexture();if(k===null){return[$ifaceNil,A.New("glGenTexture failed")];}j.PixelStorei($parseInt(j.Object.UNPACK_ALIGNMENT)>>0,4);j.BindTexture($parseInt(j.Object.TEXTURE_2D)>>0,k);j.TexParameteri($parseInt(j.Object.TEXTURE_2D)>>0,$parseInt(j.Object.TEXTURE_MAG_FILTER)>>0,(h>>0));j.TexParameteri($parseInt(j.Object.TEXTURE_2D)>>0,$parseInt(j.Object.TEXTURE_MIN_FILTER)>>0,(h>>0));l=$ifaceNil;if(!(g===U.nil)){l=g;}j.Object.texImage2D($parseInt(j.Object.TEXTURE_2D)>>0,0,$parseInt(j.Object.RGBA)>>0,e,f,0,$parseInt(j.Object.RGBA)>>0,$parseInt(j.Object.UNSIGNED_BYTE)>>0,$externalize(l,$emptyInterface));return[k,$ifaceNil];};T.prototype.NewTexture=function(e,f,g,h){return this.$val.NewTexture(e,f,g,h);};T.Ptr.prototype.TexturePixels=function(e,f,g){var h,i,j,k;h=this;i=h.context.gl;i.Flush();j=new($global.Uint8Array)((4*f>>0)*g>>0);i.BindTexture($parseInt(i.Object.TEXTURE_2D)>>0,e);i.ReadPixels(0,0,f,g,$parseInt(i.Object.RGBA)>>0,$parseInt(i.Object.UNSIGNED_BYTE)>>0,j);k=i.GetError();if(!((k===($parseInt(i.Object.NO_ERROR)>>0)))){return[U.nil,A.New(B.Sprintf("gl error: %d",new V([new $Int(k)])))];}return[$assertType($internalize(j,$emptyInterface),U),$ifaceNil];};T.prototype.TexturePixels=function(e,f,g){return this.$val.TexturePixels(e,f,g);};T.Ptr.prototype.BindTexture=function(e){var f,g;f=this;g=f.context.gl;g.BindTexture($parseInt(g.Object.TEXTURE_2D)>>0,e);};T.prototype.BindTexture=function(e){return this.$val.BindTexture(e);};T.Ptr.prototype.DeleteTexture=function(e){var f,g;f=this;g=f.context.gl;g.DeleteTexture(e);};T.prototype.DeleteTexture=function(e){return this.$val.DeleteTexture(e);};T.Ptr.prototype.GlslHighpSupported=function(){var e,f;e=this;f=e.context.gl;return!((($parseInt(f.Object.getShaderPrecisionFormat($parseInt(f.Object.FRAGMENT_SHADER)>>0,$parseInt(f.Object.HIGH_FLOAT)>>0).precision)>>0)===0));};T.prototype.GlslHighpSupported=function(){return this.$val.GlslHighpSupported();};T.Ptr.prototype.NewFramebuffer=function(e){var f,g,h;f=this;g=f.context.gl;h=g.CreateFramebuffer();g.BindFramebuffer($parseInt(g.Object.FRAMEBUFFER)>>0,h);g.FramebufferTexture2D($parseInt(g.Object.FRAMEBUFFER)>>0,$parseInt(g.Object.COLOR_ATTACHMENT0)>>0,$parseInt(g.Object.TEXTURE_2D)>>0,e,0);if(!((g.CheckFramebufferStatus($parseInt(g.Object.FRAMEBUFFER)>>0)===($parseInt(g.Object.FRAMEBUFFER_COMPLETE)>>0)))){return[$ifaceNil,A.New("creating framebuffer failed")];}return[h,$ifaceNil];};T.prototype.NewFramebuffer=function(e){return this.$val.NewFramebuffer(e);};T.Ptr.prototype.SetViewport=function(e,f,g){var h,i;h=this;i=h.context.gl;if(!($interfaceIsEqual(M,e))){i.Flush();M=e;}if(!($interfaceIsEqual(e,$ifaceNil))){i.BindFramebuffer($parseInt(i.Object.FRAMEBUFFER)>>0,e);}else{i.BindFramebuffer($parseInt(i.Object.FRAMEBUFFER)>>0,null);}i.Viewport(0,0,f,g);return $ifaceNil;};T.prototype.SetViewport=function(e,f,g){return this.$val.SetViewport(e,f,g);};T.Ptr.prototype.FillFramebuffer=function(e,f,g,h,i){var j,k;j=this;k=j.context.gl;k.ClearColor(f,g,h,i);k.Clear($parseInt(k.Object.COLOR_BUFFER_BIT)>>0);return $ifaceNil;};T.prototype.FillFramebuffer=function(e,f,g,h,i){return this.$val.FillFramebuffer(e,f,g,h,i);};T.Ptr.prototype.DeleteFramebuffer=function(e){var f,g;f=this;g=f.context.gl;g.DeleteFramebuffer(e);};T.prototype.DeleteFramebuffer=function(e){return this.$val.DeleteFramebuffer(e);};T.Ptr.prototype.NewShader=function(e,f){var g,h,i,j;g=this;h=g.context.gl;i=h.CreateShader((e>>0));if(i===null){console.log(h.GetError());return[$ifaceNil,A.New("glCreateShader failed")];}h.ShaderSource(i,f);h.CompileShader(i);if(!h.GetShaderParameterb(i,$parseInt(h.Object.COMPILE_STATUS)>>0)){j=h.GetShaderInfoLog(i);return[$ifaceNil,A.New(B.Sprintf("shader compile failed: %s",new V([new $String(j)])))];}return[i,$ifaceNil];};T.prototype.NewShader=function(e,f){return this.$val.NewShader(e,f);};T.Ptr.prototype.DeleteShader=function(e){var f,g;f=this;g=f.context.gl;g.DeleteShader(e);};T.prototype.DeleteShader=function(e){return this.$val.DeleteShader(e);};T.Ptr.prototype.NewProgram=function(e){var f,g,h,i,j,k;f=this;g=f.context.gl;h=g.CreateProgram();if(h===null){return[$ifaceNil,A.New("glCreateProgram failed")];}i=e;j=0;while(j=i.$length)?$throwRuntimeError("index out of range"):i.$array[i.$offset+j]);g.AttachShader(h,k);j++;}g.LinkProgram(h);if(!g.GetProgramParameterb(h,$parseInt(g.Object.LINK_STATUS)>>0)){return[$ifaceNil,A.New("program error")];}return[h,$ifaceNil];};T.prototype.NewProgram=function(e){return this.$val.NewProgram(e);};T.Ptr.prototype.UseProgram=function(e){var f,g;f=this;g=f.context.gl;g.UseProgram(e);};T.prototype.UseProgram=function(e){return this.$val.UseProgram(e);};T.Ptr.prototype.UniformInt=function(e,f,g){var h,i,j,k,l,m,n;h=this;i=h.context.gl;j=(k=N[f],k!==undefined?[k.v,true]:[$ifaceNil,false]);l=j[0];m=j[1];if(!m){l=i.GetUniformLocation(e,f);n=f;(N||$throwRuntimeError("assignment to entry in nil map"))[n]={k:n,v:l};}i.Uniform1i(l,g);};T.prototype.UniformInt=function(e,f,g){return this.$val.UniformInt(e,f,g);};T.Ptr.prototype.UniformFloats=function(e,f,g){var h,i,j,k,l,m,n,o;h=this;i=h.context.gl;j=(k=N[f],k!==undefined?[k.v,true]:[$ifaceNil,false]);l=j[0];m=j[1];if(!m){l=i.GetUniformLocation(e,f);n=f;(N||$throwRuntimeError("assignment to entry in nil map"))[n]={k:n,v:l};}o=g.$length;if(o===4){i.Object.uniform4fv($externalize(l,I),$externalize(g,W));}else if(o===16){i.UniformMatrix4fv(l,false,g);}else{$panic(new $String("not reach"));}};T.prototype.UniformFloats=function(e,f,g){return this.$val.UniformFloats(e,f,g);};T.Ptr.prototype.VertexAttribPointer=function(e,f,g,h){var i,j,k,l,m,n,o;i=this;j=i.context.gl;k=(l=O[f],l!==undefined?[l.v,true]:[0,false]);m=k[0];n=k[1];if(!n){m=(j.GetAttribLocation(e,f)>>0);o=f;(O||$throwRuntimeError("assignment to entry in nil map"))[o]={k:o,v:m};}j.VertexAttribPointer((m>>0),2,$parseInt(j.Object.FLOAT)>>0,false,g,(h>>0));};T.prototype.VertexAttribPointer=function(e,f,g,h){return this.$val.VertexAttribPointer(e,f,g,h);};T.Ptr.prototype.EnableVertexAttribArray=function(e,f){var g,h,i,j,k,l,m;g=this;h=g.context.gl;i=(j=O[f],j!==undefined?[j.v,true]:[0,false]);k=i[0];l=i[1];if(!l){k=(h.GetAttribLocation(e,f)>>0);m=f;(O||$throwRuntimeError("assignment to entry in nil map"))[m]={k:m,v:k};}h.EnableVertexAttribArray((k>>0));};T.prototype.EnableVertexAttribArray=function(e,f){return this.$val.EnableVertexAttribArray(e,f);};T.Ptr.prototype.DisableVertexAttribArray=function(e,f){var g,h,i,j,k,l,m;g=this;h=g.context.gl;i=(j=O[f],j!==undefined?[j.v,true]:[0,false]);k=i[0];l=i[1];if(!l){k=(h.GetAttribLocation(e,f)>>0);m=f;(O||$throwRuntimeError("assignment to entry in nil map"))[m]={k:m,v:k};}h.DisableVertexAttribArray((k>>0));};T.prototype.DisableVertexAttribArray=function(e,f){return this.$val.DisableVertexAttribArray(e,f);};T.Ptr.prototype.NewBuffer=function(e,f,g){var h,i,j;h=this;i=h.context.gl;j=i.CreateBuffer();i.BindBuffer((e>>0),j);i.BufferData((e>>0),f,(g>>0));};T.prototype.NewBuffer=function(e,f,g){return this.$val.NewBuffer(e,f,g);};T.Ptr.prototype.BufferSubData=function(e,f){var g,h;g=this;h=g.context.gl;h.BufferSubData((e>>0),0,f);};T.prototype.BufferSubData=function(e,f){return this.$val.BufferSubData(e,f);};T.Ptr.prototype.DrawElements=function(e){var f,g;f=this;g=f.context.gl;g.DrawElements($parseInt(g.Object.TRIANGLES)>>0,e,$parseInt(g.Object.UNSIGNED_SHORT)>>0,0);};T.prototype.DrawElements=function(e){return this.$val.DrawElements(e);};T.Ptr.prototype.Flush=function(){var e,f;e=this;f=e.context.gl;f.Flush();};T.prototype.Flush=function(){return this.$val.Flush();};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}U=$sliceType($Uint8);V=$sliceType($emptyInterface);W=$sliceType($Float32);X=$ptrType(D.Context);Y=$sliceType(G);Z=$ptrType(T);E.init([["Bool","Bool","",$funcType([],[$Bool],false)],["Call","Call","",$funcType([$String,V],[C.Object],true)],["Delete","Delete","",$funcType([$String],[],false)],["Float","Float","",$funcType([],[$Float64],false)],["Get","Get","",$funcType([$String],[C.Object],false)],["Index","Index","",$funcType([$Int],[C.Object],false)],["Int","Int","",$funcType([],[$Int],false)],["Int64","Int64","",$funcType([],[$Int64],false)],["Interface","Interface","",$funcType([],[$emptyInterface],false)],["Invoke","Invoke","",$funcType([V],[C.Object],true)],["Length","Length","",$funcType([],[$Int],false)],["New","New","",$funcType([V],[C.Object],true)],["Set","Set","",$funcType([$String,$emptyInterface],[],false)],["SetIndex","SetIndex","",$funcType([$Int,$emptyInterface],[],false)],["Str","Str","",$funcType([],[$String],false)],["Uint64","Uint64","",$funcType([],[$Uint64],false)],["Unsafe","Unsafe","",$funcType([],[$Uintptr],false)]]);F.init([["Bool","Bool","",$funcType([],[$Bool],false)],["Call","Call","",$funcType([$String,V],[C.Object],true)],["Delete","Delete","",$funcType([$String],[],false)],["Float","Float","",$funcType([],[$Float64],false)],["Get","Get","",$funcType([$String],[C.Object],false)],["Index","Index","",$funcType([$Int],[C.Object],false)],["Int","Int","",$funcType([],[$Int],false)],["Int64","Int64","",$funcType([],[$Int64],false)],["Interface","Interface","",$funcType([],[$emptyInterface],false)],["Invoke","Invoke","",$funcType([V],[C.Object],true)],["Length","Length","",$funcType([],[$Int],false)],["New","New","",$funcType([V],[C.Object],true)],["Set","Set","",$funcType([$String,$emptyInterface],[],false)],["SetIndex","SetIndex","",$funcType([$Int,$emptyInterface],[],false)],["Str","Str","",$funcType([],[$String],false)],["Uint64","Uint64","",$funcType([],[$Uint64],false)],["Unsafe","Unsafe","",$funcType([],[$Uintptr],false)]]);G.init([["Bool","Bool","",$funcType([],[$Bool],false)],["Call","Call","",$funcType([$String,V],[C.Object],true)],["Delete","Delete","",$funcType([$String],[],false)],["Float","Float","",$funcType([],[$Float64],false)],["Get","Get","",$funcType([$String],[C.Object],false)],["Index","Index","",$funcType([$Int],[C.Object],false)],["Int","Int","",$funcType([],[$Int],false)],["Int64","Int64","",$funcType([],[$Int64],false)],["Interface","Interface","",$funcType([],[$emptyInterface],false)],["Invoke","Invoke","",$funcType([V],[C.Object],true)],["Length","Length","",$funcType([],[$Int],false)],["New","New","",$funcType([V],[C.Object],true)],["Set","Set","",$funcType([$String,$emptyInterface],[],false)],["SetIndex","SetIndex","",$funcType([$Int,$emptyInterface],[],false)],["Str","Str","",$funcType([],[$String],false)],["Uint64","Uint64","",$funcType([],[$Uint64],false)],["Unsafe","Unsafe","",$funcType([],[$Uintptr],false)]]);H.init([["Bool","Bool","",$funcType([],[$Bool],false)],["Call","Call","",$funcType([$String,V],[C.Object],true)],["Delete","Delete","",$funcType([$String],[],false)],["Float","Float","",$funcType([],[$Float64],false)],["Get","Get","",$funcType([$String],[C.Object],false)],["Index","Index","",$funcType([$Int],[C.Object],false)],["Int","Int","",$funcType([],[$Int],false)],["Int64","Int64","",$funcType([],[$Int64],false)],["Interface","Interface","",$funcType([],[$emptyInterface],false)],["Invoke","Invoke","",$funcType([V],[C.Object],true)],["Length","Length","",$funcType([],[$Int],false)],["New","New","",$funcType([V],[C.Object],true)],["Set","Set","",$funcType([$String,$emptyInterface],[],false)],["SetIndex","SetIndex","",$funcType([$Int,$emptyInterface],[],false)],["Str","Str","",$funcType([],[$String],false)],["Uint64","Uint64","",$funcType([],[$Uint64],false)],["Unsafe","Unsafe","",$funcType([],[$Uintptr],false)]]);I.init([["Bool","Bool","",$funcType([],[$Bool],false)],["Call","Call","",$funcType([$String,V],[C.Object],true)],["Delete","Delete","",$funcType([$String],[],false)],["Float","Float","",$funcType([],[$Float64],false)],["Get","Get","",$funcType([$String],[C.Object],false)],["Index","Index","",$funcType([$Int],[C.Object],false)],["Int","Int","",$funcType([],[$Int],false)],["Int64","Int64","",$funcType([],[$Int64],false)],["Interface","Interface","",$funcType([],[$emptyInterface],false)],["Invoke","Invoke","",$funcType([V],[C.Object],true)],["Length","Length","",$funcType([],[$Int],false)],["New","New","",$funcType([V],[C.Object],true)],["Set","Set","",$funcType([$String,$emptyInterface],[],false)],["SetIndex","SetIndex","",$funcType([$Int,$emptyInterface],[],false)],["Str","Str","",$funcType([],[$String],false)],["Uint64","Uint64","",$funcType([],[$Uint64],false)],["Unsafe","Unsafe","",$funcType([],[$Uintptr],false)]]);K.init([["gl","gl","github.com/hajimehoshi/ebiten/internal/opengl",X,""]]);Z.methods=[["BindTexture","BindTexture","",$funcType([E],[],false),-1],["BufferSubData","BufferSubData","",$funcType([R,W],[],false),-1],["DeleteFramebuffer","DeleteFramebuffer","",$funcType([F],[],false),-1],["DeleteShader","DeleteShader","",$funcType([G],[],false),-1],["DeleteTexture","DeleteTexture","",$funcType([E],[],false),-1],["DisableVertexAttribArray","DisableVertexAttribArray","",$funcType([H,$String],[],false),-1],["DrawElements","DrawElements","",$funcType([$Int],[],false),-1],["EnableVertexAttribArray","EnableVertexAttribArray","",$funcType([H,$String],[],false),-1],["FillFramebuffer","FillFramebuffer","",$funcType([F,$Float64,$Float64,$Float64,$Float64],[$error],false),-1],["Flush","Flush","",$funcType([],[],false),-1],["GlslHighpSupported","GlslHighpSupported","",$funcType([],[$Bool],false),-1],["NewBuffer","NewBuffer","",$funcType([R,$emptyInterface,S],[],false),-1],["NewFramebuffer","NewFramebuffer","",$funcType([E],[F,$error],false),-1],["NewProgram","NewProgram","",$funcType([Y],[H,$error],false),-1],["NewShader","NewShader","",$funcType([Q,$String],[G,$error],false),-1],["NewTexture","NewTexture","",$funcType([$Int,$Int,U,P],[E,$error],false),-1],["SetViewport","SetViewport","",$funcType([F,$Int,$Int],[$error],false),-1],["TexturePixels","TexturePixels","",$funcType([E,$Int,$Int],[U,$error],false),-1],["UniformFloats","UniformFloats","",$funcType([H,$String,W],[],false),-1],["UniformInt","UniformInt","",$funcType([H,$String,$Int],[],false),-1],["UseProgram","UseProgram","",$funcType([H],[],false),-1],["VertexAttribPointer","VertexAttribPointer","",$funcType([H,$String,$Int,$Uintptr],[],false),-1],["init","init","github.com/hajimehoshi/ebiten/internal/opengl",$funcType([],[],false),-1]];T.init([["Nearest","Nearest","",P,""],["Linear","Linear","",P,""],["VertexShader","VertexShader","",Q,""],["FragmentShader","FragmentShader","",Q,""],["ArrayBuffer","ArrayBuffer","",R,""],["ElementArrayBuffer","ElementArrayBuffer","",R,""],["DynamicDraw","DynamicDraw","",S,""],["StaticDraw","StaticDraw","",S,""],["context","","github.com/hajimehoshi/ebiten/internal/opengl",K,""]]);M=$ifaceNil;N=(a=new $Map(),a);O=(c=new $Map(),c);}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["github.com/hajimehoshi/ebiten/internal/graphics/internal/shader"]=(function(){var $pkg={},A,B,O,P,Q,R,S,F,H,J,N,a,b,C,G,I,K,M;A=$packages["github.com/hajimehoshi/ebiten/internal/opengl"];B=$packages["strings"];C=function(c){return new O([(c.nilCheck,c[0])[0],(c.nilCheck,c[1])[0],(c.nilCheck,c[2])[0],(c.nilCheck,c[3])[0],(c.nilCheck,c[0])[1],(c.nilCheck,c[1])[1],(c.nilCheck,c[2])[1],(c.nilCheck,c[3])[1],(c.nilCheck,c[0])[2],(c.nilCheck,c[1])[2],(c.nilCheck,c[2])[2],(c.nilCheck,c[3])[2],(c.nilCheck,c[0])[3],(c.nilCheck,c[1])[3],(c.nilCheck,c[2])[3],(c.nilCheck,c[3])[3]]);};G=$pkg.DrawTexture=function(c,d,e,f,g,h){var $deferred=[],$err=null,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;try{$deferFrames.push($deferred);if(!F){i=I(c);if(!($interfaceIsEqual(i,$ifaceNil))){return i;}F=true;}if(f.Len()===0){return $ifaceNil;}j=K(c,C(e),g,h);c.BindTexture(d);c.EnableVertexAttribArray(j,"vertex");c.EnableVertexAttribArray(j,"tex_coord");$deferred.push([(function(){c.DisableVertexAttribArray(j,"tex_coord");c.DisableVertexAttribArray(j,"vertex");}),[]]);c.VertexAttribPointer(j,"vertex",16,0);c.VertexAttribPointer(j,"tex_coord",16,8);k=O.make(0,(16*f.Len()>>0));l=0;while(l>0;continue;}k=$append(k,n,o,s,t,p,o,u,t,n,q,s,v,p,q,u,v);l=l+(1)>>0;}if(k.$length===0){return $ifaceNil;}c.BufferSubData(c.ArrayBuffer,k);c.DrawElements((w=(6*k.$length>>0)/16,(w===w&&w!==1/0&&w!==-1/0)?w>>0:$throwRuntimeError("integer divide by zero")));return $ifaceNil;}catch(err){$err=err;return $ifaceNil;}finally{$deferFrames.pop();$callDeferred($deferred,$err);}};I=function(c){var $deferred=[],$err=null,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;try{$deferFrames.push($deferred);d=c.NewShader(c.VertexShader,M(c,0));e=d[0];f=d[1];if(!($interfaceIsEqual(f,$ifaceNil))){return f;}$deferred.push([$methodVal(c,"DeleteShader"),[e]]);g=c.NewShader(c.FragmentShader,M(c,1));h=g[0];f=g[1];if(!($interfaceIsEqual(f,$ifaceNil))){return f;}$deferred.push([$methodVal(c,"DeleteShader"),[h]]);i=new P([e,h]);j=c.NewProgram(i);H=j[0];f=j[1];if(!($interfaceIsEqual(f,$ifaceNil))){return f;}k=O.make(160000);c.NewBuffer(c.ArrayBuffer,k,c.DynamicDraw);l=Q.make(60000);m=0;while(m<10000){(n=(6*m<<16>>>16)+0<<16>>>16,(n<0||n>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+n]=(4*m<<16>>>16)+0<<16>>>16);(o=(6*m<<16>>>16)+1<<16>>>16,(o<0||o>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+o]=(4*m<<16>>>16)+1<<16>>>16);(p=(6*m<<16>>>16)+2<<16>>>16,(p<0||p>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+p]=(4*m<<16>>>16)+2<<16>>>16);(q=(6*m<<16>>>16)+3<<16>>>16,(q<0||q>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+q]=(4*m<<16>>>16)+1<<16>>>16);(r=(6*m<<16>>>16)+4<<16>>>16,(r<0||r>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+r]=(4*m<<16>>>16)+2<<16>>>16);(s=(6*m<<16>>>16)+5<<16>>>16,(s<0||s>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+s]=(4*m<<16>>>16)+3<<16>>>16);m=m+(1)<<16>>>16;}c.NewBuffer(c.ElementArrayBuffer,l,c.StaticDraw);return $ifaceNil;}catch(err){$err=err;return $ifaceNil;}finally{$deferFrames.pop();$callDeferred($deferred,$err);}};K=function(c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r,s,t;if(!($interfaceIsEqual(J,H))){c.UseProgram(H);J=H;}g=H;c.UniformFloats(g,"projection_matrix",d);h=e.Element(0,0);i=e.Element(0,1);j=e.Element(1,0);k=e.Element(1,1);l=e.Element(0,2);m=e.Element(1,2);n=new O([h,j,0,0,i,k,0,0,0,0,1,0,l,m,0,1]);c.UniformFloats(g,"modelview_matrix",n);c.UniformInt(g,"texture",0);o=S.zero();p=0;while(p<4){q=0;while(q<5){(r=((p<0||p>=o.length)?$throwRuntimeError("index out of range"):o[p]),(q<0||q>=r.length)?$throwRuntimeError("index out of range"):r[q]=f.Element(p,q));q=q+(1)>>0;}p=p+(1)>>0;}s=new O([o[0][0],o[1][0],o[2][0],o[3][0],o[0][1],o[1][1],o[2][1],o[3][1],o[0][2],o[1][2],o[2][2],o[3][2],o[0][3],o[1][3],o[2][3],o[3][3]]);c.UniformFloats(g,"color_matrix",s);t=new O([o[0][4],o[1][4],o[2][4],o[3][4]]);c.UniformFloats(g,"color_matrix_translation",t);return g;};M=function(c,d){var e,f;f=(e=N[d],e!==undefined?e.v:"");if(!c.GlslHighpSupported()){f=B.Replace(f,"highp ","",-1);f=B.Replace(f,"lowp ","",-1);}return f;};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}O=$sliceType($Float32);P=$sliceType(A.Shader);Q=$sliceType($Uint16);R=$arrayType($Float32,5);S=$arrayType(R,4);H=$ifaceNil;J=$ifaceNil;F=false;N=(a=new $Map(),b=0,a[b]={k:b,v:"\nuniform highp mat4 projection_matrix;\nuniform highp mat4 modelview_matrix;\nattribute highp vec2 vertex;\nattribute highp vec2 tex_coord;\nvarying highp vec2 vertex_out_tex_coord;\n\nvoid main(void) {\n vertex_out_tex_coord = tex_coord;\n gl_Position = projection_matrix * modelview_matrix * vec4(vertex, 0, 1);\n}\n"},b=1,a[b]={k:b,v:"\nuniform lowp sampler2D texture;\nuniform lowp mat4 color_matrix;\nuniform lowp vec4 color_matrix_translation;\nvarying highp vec2 vertex_out_tex_coord;\n\nvoid main(void) {\n lowp vec4 color = texture2D(texture, vertex_out_tex_coord);\n\n if (color_matrix != mat4(1.0) || color_matrix_translation != vec4(0.0)) {\n // Un-premultiply alpha\n color.rgb /= color.a;\n // Apply the color matrix\n color = (color_matrix * color) + color_matrix_translation;\n color = clamp(color, 0.0, 1.0);\n // Premultiply alpha\n color.rgb *= color.a;\n }\n\n gl_FragColor = color;\n}\n"},a);}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["bufio"]=(function(){var $pkg={},A,B,C,D,Y,Z,AA,E,H,I,F,G;A=$packages["bytes"];B=$packages["errors"];C=$packages["io"];D=$packages["unicode/utf8"];E=$pkg.Reader=$newType(0,$kindStruct,"bufio.Reader","Reader","bufio",function(buf_,rd_,r_,w_,err_,lastByte_,lastRuneSize_){this.$val=this;this.buf=buf_!==undefined?buf_:Y.nil;this.rd=rd_!==undefined?rd_:$ifaceNil;this.r=r_!==undefined?r_:0;this.w=w_!==undefined?w_:0;this.err=err_!==undefined?err_:$ifaceNil;this.lastByte=lastByte_!==undefined?lastByte_:0;this.lastRuneSize=lastRuneSize_!==undefined?lastRuneSize_:0;});F=$pkg.NewReaderSize=function(a,b){var c,d,e,f;c=$assertType(a,Z,true);d=c[0];e=c[1];if(e&&d.buf.$length>=b){return d;}if(b<16){b=16;}f=new E.Ptr();f.reset(Y.make(b),a);return f;};G=$pkg.NewReader=function(a){return F(a,4096);};E.Ptr.prototype.Reset=function(a){var b;b=this;b.reset(b.buf,a);};E.prototype.Reset=function(a){return this.$val.Reset(a);};E.Ptr.prototype.reset=function(a,b){var c;c=this;$copy(c,new E.Ptr(a,b,0,0,$ifaceNil,-1,-1),E);};E.prototype.reset=function(a,b){return this.$val.reset(a,b);};E.Ptr.prototype.fill=function(){var a,b,c,d,e;a=this;if(a.r>0){$copySlice(a.buf,$subslice(a.buf,a.r,a.w));a.w=a.w-(a.r)>>0;a.r=0;}if(a.w>=a.buf.$length){$panic(new $String("bufio: tried to fill full buffer"));}b=100;while(b>0){c=a.rd.Read($subslice(a.buf,a.w));d=c[0];e=c[1];if(d<0){$panic(H);}a.w=a.w+(d)>>0;if(!($interfaceIsEqual(e,$ifaceNil))){a.err=e;return;}if(d>0){return;}b=b-(1)>>0;}a.err=C.ErrNoProgress;};E.prototype.fill=function(){return this.$val.fill();};E.Ptr.prototype.readErr=function(){var a,b;a=this;b=a.err;a.err=$ifaceNil;return b;};E.prototype.readErr=function(){return this.$val.readErr();};E.Ptr.prototype.Peek=function(a){var b,c,d;b=this;if(a<0){return[Y.nil,$pkg.ErrNegativeCount];}if(a>b.buf.$length){return[Y.nil,$pkg.ErrBufferFull];}while((b.w-b.r>>0)>0;if(d>0)),c];};E.prototype.Peek=function(a){return this.$val.Peek(a);};E.Ptr.prototype.Read=function(a){var b=0,c=$ifaceNil,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;d=this;b=a.$length;if(b===0){e=0;f=d.readErr();b=e;c=f;return[b,c];}if(d.r===d.w){if(!($interfaceIsEqual(d.err,$ifaceNil))){g=0;h=d.readErr();b=g;c=h;return[b,c];}if(a.$length>=d.buf.$length){i=d.rd.Read(a);b=i[0];d.err=i[1];if(b<0){$panic(H);}if(b>0){d.lastByte=((j=b-1>>0,((j<0||j>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+j]))>>0);d.lastRuneSize=-1;}k=b;l=d.readErr();b=k;c=l;return[b,c];}d.fill();if(d.r===d.w){m=0;n=d.readErr();b=m;c=n;return[b,c];}}b=$copySlice(a,$subslice(d.buf,d.r,d.w));d.r=d.r+(b)>>0;d.lastByte=((o=d.buf,p=d.r-1>>0,((p<0||p>=o.$length)?$throwRuntimeError("index out of range"):o.$array[o.$offset+p]))>>0);d.lastRuneSize=-1;q=b;r=$ifaceNil;b=q;c=r;return[b,c];};E.prototype.Read=function(a){return this.$val.Read(a);};E.Ptr.prototype.ReadByte=function(){var a=0,b=$ifaceNil,c,d,e,f,g,h,i;c=this;c.lastRuneSize=-1;while(c.r===c.w){if(!($interfaceIsEqual(c.err,$ifaceNil))){d=0;e=c.readErr();a=d;b=e;return[a,b];}c.fill();}a=(f=c.buf,g=c.r,((g<0||g>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+g]));c.r=c.r+(1)>>0;c.lastByte=(a>>0);h=a;i=$ifaceNil;a=h;b=i;return[a,b];};E.prototype.ReadByte=function(){return this.$val.ReadByte();};E.Ptr.prototype.UnreadByte=function(){var a,b,c;a=this;if(a.lastByte<0||(a.r===0)&&a.w>0){return $pkg.ErrInvalidUnreadByte;}if(a.r>0){a.r=a.r-(1)>>0;}else{a.w=1;}(b=a.buf,c=a.r,(c<0||c>=b.$length)?$throwRuntimeError("index out of range"):b.$array[b.$offset+c]=(a.lastByte<<24>>>24));a.lastByte=-1;a.lastRuneSize=-1;return $ifaceNil;};E.prototype.UnreadByte=function(){return this.$val.UnreadByte();};E.Ptr.prototype.ReadRune=function(){var a=0,b=0,c=$ifaceNil,d,e,f,g,h,i,j,k,l,m,n,o,p,q;d=this;while((d.r+4>>0)>d.w&&!D.FullRune($subslice(d.buf,d.r,d.w))&&$interfaceIsEqual(d.err,$ifaceNil)&&(d.w-d.r>>0)=i.$length)?$throwRuntimeError("index out of range"):i.$array[i.$offset+j]))>>0);k=1;a=h;b=k;if(a>=128){l=D.DecodeRune($subslice(d.buf,d.r,d.w));a=l[0];b=l[1];}d.r=d.r+(b)>>0;d.lastByte=((m=d.buf,n=d.r-1>>0,((n<0||n>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+n]))>>0);d.lastRuneSize=b;o=a;p=b;q=$ifaceNil;a=o;b=p;c=q;return[a,b,c];};E.prototype.ReadRune=function(){return this.$val.ReadRune();};E.Ptr.prototype.UnreadRune=function(){var a;a=this;if(a.lastRuneSize<0||a.r>0;a.lastByte=-1;a.lastRuneSize=-1;return $ifaceNil;};E.prototype.UnreadRune=function(){return this.$val.UnreadRune();};E.Ptr.prototype.Buffered=function(){var a;a=this;return a.w-a.r>>0;};E.prototype.Buffered=function(){return this.$val.Buffered();};E.Ptr.prototype.ReadSlice=function(a){var b=Y.nil,c=$ifaceNil,d,e,f;d=this;while(true){e=A.IndexByte($subslice(d.buf,d.r,d.w),a);if(e>=0){b=$subslice(d.buf,d.r,((d.r+e>>0)+1>>0));d.r=d.r+((e+1>>0))>>0;break;}if(!($interfaceIsEqual(d.err,$ifaceNil))){b=$subslice(d.buf,d.r,d.w);d.r=d.w;c=d.readErr();break;}if(d.Buffered()>=d.buf.$length){d.r=d.w;b=d.buf;c=$pkg.ErrBufferFull;break;}d.fill();}f=b.$length-1>>0;if(f>=0){d.lastByte=(((f<0||f>=b.$length)?$throwRuntimeError("index out of range"):b.$array[b.$offset+f])>>0);d.lastRuneSize=-1;}return[b,c];};E.prototype.ReadSlice=function(a){return this.$val.ReadSlice(a);};E.Ptr.prototype.ReadLine=function(){var a=Y.nil,b=false,c=$ifaceNil,d,e,f,g,h,i,j,k,l;d=this;e=d.ReadSlice(10);a=e[0];c=e[1];if($interfaceIsEqual(c,$pkg.ErrBufferFull)){if(a.$length>0&&((f=a.$length-1>>0,((f<0||f>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+f]))===13)){if(d.r===0){$panic(new $String("bufio: tried to rewind past start of buffer"));}d.r=d.r-(1)>>0;a=$subslice(a,0,(a.$length-1>>0));}g=a;h=true;i=$ifaceNil;a=g;b=h;c=i;return[a,b,c];}if(a.$length===0){if(!($interfaceIsEqual(c,$ifaceNil))){a=Y.nil;}return[a,b,c];}c=$ifaceNil;if((j=a.$length-1>>0,((j<0||j>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+j]))===10){k=1;if(a.$length>1&&((l=a.$length-2>>0,((l<0||l>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+l]))===13)){k=2;}a=$subslice(a,0,(a.$length-k>>0));}return[a,b,c];};E.prototype.ReadLine=function(){return this.$val.ReadLine();};E.Ptr.prototype.ReadBytes=function(a){var b=Y.nil,c=$ifaceNil,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;d=this;e=Y.nil;f=AA.nil;c=$ifaceNil;while(true){g=$ifaceNil;h=d.ReadSlice(a);e=h[0];g=h[1];if($interfaceIsEqual(g,$ifaceNil)){break;}if(!($interfaceIsEqual(g,$pkg.ErrBufferFull))){c=g;break;}i=Y.make(e.$length);$copySlice(i,e);f=$append(f,i);}j=0;k=f;l=0;while(l=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+m]).$length)>>0;l++;}j=j+(e.$length)>>0;n=Y.make(j);j=0;o=f;p=0;while(p=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+q])))>>0;p++;}$copySlice($subslice(n,j),e);r=n;s=c;b=r;c=s;return[b,c];};E.prototype.ReadBytes=function(a){return this.$val.ReadBytes(a);};E.Ptr.prototype.ReadString=function(a){var b="",c=$ifaceNil,d,e,f,g,h;d=this;e=d.ReadBytes(a);f=e[0];c=e[1];b=$bytesToString(f);g=b;h=c;b=g;c=h;return[b,c];};E.prototype.ReadString=function(a){return this.$val.ReadString(a);};E.Ptr.prototype.WriteTo=function(a){var b=new $Int64(0,0),c=$ifaceNil,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae;d=this;e=d.writeBuf(a);b=e[0];c=e[1];if(!($interfaceIsEqual(c,$ifaceNil))){return[b,c];}f=$assertType(d.rd,C.WriterTo,true);g=f[0];h=f[1];if(h){i=g.WriteTo(a);j=i[0];k=i[1];b=(l=j,new $Int64(b.$high+l.$high,b.$low+l.$low));m=b;n=k;b=m;c=n;return[b,c];}o=$assertType(a,C.ReaderFrom,true);p=o[0];q=o[1];if(q){r=p.ReadFrom(d.rd);s=r[0];t=r[1];b=(u=s,new $Int64(b.$high+u.$high,b.$low+u.$low));v=b;w=t;b=v;c=w;return[b,c];}if((d.w-d.r>>0)>0;return[new $Int64(0,d),e];};E.prototype.writeBuf=function(a){return this.$val.writeBuf(a);};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}Y=$sliceType($Uint8);Z=$ptrType(E);AA=$sliceType(Y);Z.methods=[["Buffered","Buffered","",$funcType([],[$Int],false),-1],["Peek","Peek","",$funcType([$Int],[Y,$error],false),-1],["Read","Read","",$funcType([Y],[$Int,$error],false),-1],["ReadByte","ReadByte","",$funcType([],[$Uint8,$error],false),-1],["ReadBytes","ReadBytes","",$funcType([$Uint8],[Y,$error],false),-1],["ReadLine","ReadLine","",$funcType([],[Y,$Bool,$error],false),-1],["ReadRune","ReadRune","",$funcType([],[$Int32,$Int,$error],false),-1],["ReadSlice","ReadSlice","",$funcType([$Uint8],[Y,$error],false),-1],["ReadString","ReadString","",$funcType([$Uint8],[$String,$error],false),-1],["Reset","Reset","",$funcType([C.Reader],[],false),-1],["UnreadByte","UnreadByte","",$funcType([],[$error],false),-1],["UnreadRune","UnreadRune","",$funcType([],[$error],false),-1],["WriteTo","WriteTo","",$funcType([C.Writer],[$Int64,$error],false),-1],["fill","fill","bufio",$funcType([],[],false),-1],["readErr","readErr","bufio",$funcType([],[$error],false),-1],["reset","reset","bufio",$funcType([Y,C.Reader],[],false),-1],["writeBuf","writeBuf","bufio",$funcType([C.Writer],[$Int64,$error],false),-1]];E.init([["buf","buf","bufio",Y,""],["rd","rd","bufio",C.Reader,""],["r","r","bufio",$Int,""],["w","w","bufio",$Int,""],["err","err","bufio",$error,""],["lastByte","lastByte","bufio",$Int,""],["lastRuneSize","lastRuneSize","bufio",$Int,""]]);$pkg.ErrInvalidUnreadByte=B.New("bufio: invalid use of UnreadByte");$pkg.ErrInvalidUnreadRune=B.New("bufio: invalid use of UnreadRune");$pkg.ErrBufferFull=B.New("bufio: buffer full");$pkg.ErrNegativeCount=B.New("bufio: negative count");H=B.New("bufio: reader returned negative count from Read");I=B.New("bufio: writer returned negative count from Write");$pkg.ErrTooLong=B.New("bufio.Scanner: token too long");$pkg.ErrNegativeAdvance=B.New("bufio.Scanner: SplitFunc returns negative advance count");$pkg.ErrAdvanceTooFar=B.New("bufio.Scanner: SplitFunc returns advance count beyond input");}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["image"]=(function(){var $pkg={},A,B,E,C,D,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK,BL,F,I,O,Q,S,T,V,X,Z,AB,AD,AF,AH,AJ,AL,AN,AP,AQ,G,a,b,c,d,H,J,K,L,M,R,W,Y,AA,AC,AI,AK,AM,AO,AR;A=$packages["bufio"];B=$packages["errors"];E=$packages["image/color"];C=$packages["io"];D=$packages["strconv"];F=$pkg.format=$newType(0,$kindStruct,"image.format","format","image",function(name_,magic_,decode_,decodeConfig_){this.$val=this;this.name=name_!==undefined?name_:"";this.magic=magic_!==undefined?magic_:"";this.decode=decode_!==undefined?decode_:$throwNilPointerError;this.decodeConfig=decodeConfig_!==undefined?decodeConfig_:$throwNilPointerError;});I=$pkg.reader=$newType(8,$kindInterface,"image.reader","reader","image",null);O=$pkg.Point=$newType(0,$kindStruct,"image.Point","Point","image",function(X_,Y_){this.$val=this;this.X=X_!==undefined?X_:0;this.Y=Y_!==undefined?Y_:0;});Q=$pkg.Rectangle=$newType(0,$kindStruct,"image.Rectangle","Rectangle","image",function(Min_,Max_){this.$val=this;this.Min=Min_!==undefined?Min_:new O.Ptr();this.Max=Max_!==undefined?Max_:new O.Ptr();});S=$pkg.Config=$newType(0,$kindStruct,"image.Config","Config","image",function(ColorModel_,Width_,Height_){this.$val=this;this.ColorModel=ColorModel_!==undefined?ColorModel_:$ifaceNil;this.Width=Width_!==undefined?Width_:0;this.Height=Height_!==undefined?Height_:0;});T=$pkg.Image=$newType(8,$kindInterface,"image.Image","Image","image",null);V=$pkg.RGBA=$newType(0,$kindStruct,"image.RGBA","RGBA","image",function(Pix_,Stride_,Rect_){this.$val=this;this.Pix=Pix_!==undefined?Pix_:AT.nil;this.Stride=Stride_!==undefined?Stride_:0;this.Rect=Rect_!==undefined?Rect_:new Q.Ptr();});X=$pkg.RGBA64=$newType(0,$kindStruct,"image.RGBA64","RGBA64","image",function(Pix_,Stride_,Rect_){this.$val=this;this.Pix=Pix_!==undefined?Pix_:AT.nil;this.Stride=Stride_!==undefined?Stride_:0;this.Rect=Rect_!==undefined?Rect_:new Q.Ptr();});Z=$pkg.NRGBA=$newType(0,$kindStruct,"image.NRGBA","NRGBA","image",function(Pix_,Stride_,Rect_){this.$val=this;this.Pix=Pix_!==undefined?Pix_:AT.nil;this.Stride=Stride_!==undefined?Stride_:0;this.Rect=Rect_!==undefined?Rect_:new Q.Ptr();});AB=$pkg.NRGBA64=$newType(0,$kindStruct,"image.NRGBA64","NRGBA64","image",function(Pix_,Stride_,Rect_){this.$val=this;this.Pix=Pix_!==undefined?Pix_:AT.nil;this.Stride=Stride_!==undefined?Stride_:0;this.Rect=Rect_!==undefined?Rect_:new Q.Ptr();});AD=$pkg.Alpha=$newType(0,$kindStruct,"image.Alpha","Alpha","image",function(Pix_,Stride_,Rect_){this.$val=this;this.Pix=Pix_!==undefined?Pix_:AT.nil;this.Stride=Stride_!==undefined?Stride_:0;this.Rect=Rect_!==undefined?Rect_:new Q.Ptr();});AF=$pkg.Alpha16=$newType(0,$kindStruct,"image.Alpha16","Alpha16","image",function(Pix_,Stride_,Rect_){this.$val=this;this.Pix=Pix_!==undefined?Pix_:AT.nil;this.Stride=Stride_!==undefined?Stride_:0;this.Rect=Rect_!==undefined?Rect_:new Q.Ptr();});AH=$pkg.Gray=$newType(0,$kindStruct,"image.Gray","Gray","image",function(Pix_,Stride_,Rect_){this.$val=this;this.Pix=Pix_!==undefined?Pix_:AT.nil;this.Stride=Stride_!==undefined?Stride_:0;this.Rect=Rect_!==undefined?Rect_:new Q.Ptr();});AJ=$pkg.Gray16=$newType(0,$kindStruct,"image.Gray16","Gray16","image",function(Pix_,Stride_,Rect_){this.$val=this;this.Pix=Pix_!==undefined?Pix_:AT.nil;this.Stride=Stride_!==undefined?Stride_:0;this.Rect=Rect_!==undefined?Rect_:new Q.Ptr();});AL=$pkg.Paletted=$newType(0,$kindStruct,"image.Paletted","Paletted","image",function(Pix_,Stride_,Rect_,Palette_){this.$val=this;this.Pix=Pix_!==undefined?Pix_:AT.nil;this.Stride=Stride_!==undefined?Stride_:0;this.Rect=Rect_!==undefined?Rect_:new Q.Ptr();this.Palette=Palette_!==undefined?Palette_:E.Palette.nil;});AN=$pkg.Uniform=$newType(0,$kindStruct,"image.Uniform","Uniform","image",function(C_){this.$val=this;this.C=C_!==undefined?C_:$ifaceNil;});AP=$pkg.YCbCrSubsampleRatio=$newType(4,$kindInt,"image.YCbCrSubsampleRatio","YCbCrSubsampleRatio","image",null);AQ=$pkg.YCbCr=$newType(0,$kindStruct,"image.YCbCr","YCbCr","image",function(Y_,Cb_,Cr_,YStride_,CStride_,SubsampleRatio_,Rect_){this.$val=this;this.Y=Y_!==undefined?Y_:AT.nil;this.Cb=Cb_!==undefined?Cb_:AT.nil;this.Cr=Cr_!==undefined?Cr_:AT.nil;this.YStride=YStride_!==undefined?YStride_:0;this.CStride=CStride_!==undefined?CStride_:0;this.SubsampleRatio=SubsampleRatio_!==undefined?SubsampleRatio_:0;this.Rect=Rect_!==undefined?Rect_:new Q.Ptr();});H=$pkg.RegisterFormat=function(e,f,g,h){G=$append(G,new F.Ptr(e,f,g,h));};J=function(e){var f,g,h;f=$assertType(e,I,true);g=f[0];h=f[1];if(h){return g;}return A.NewReader(e);};K=function(e,f){var g,h,i,j;if(!((e.length===f.$length))){return false;}g=f;h=0;while(h=g.$length)?$throwRuntimeError("index out of range"):g.$array[g.$offset+h]);if(!((e.charCodeAt(i)===j))&&!((e.charCodeAt(i)===63))){return false;}h++;}return true;};L=function(e){var f,g,h,i,j,k;f=G;g=0;while(g=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+g]),F);i=e.Peek(h.magic.length);j=i[0];k=i[1];if($interfaceIsEqual(k,$ifaceNil)&&K(h.magic,j)){return h;}g++;}return new F.Ptr("","",$throwNilPointerError,$throwNilPointerError);};M=$pkg.Decode=function(e){var f,g,h,i,j;f=J(e);g=$clone(L(f),F);if(g.decode===$throwNilPointerError){return[$ifaceNil,"",$pkg.ErrFormat];}h=g.decode(f);i=h[0];j=h[1];return[i,g.name,j];};O.Ptr.prototype.String=function(){var e;e=$clone(this,O);return"("+D.Itoa(e.X)+","+D.Itoa(e.Y)+")";};O.prototype.String=function(){return this.$val.String();};O.Ptr.prototype.Add=function(e){var f;f=$clone(this,O);e=$clone(e,O);return new O.Ptr(f.X+e.X>>0,f.Y+e.Y>>0);};O.prototype.Add=function(e){return this.$val.Add(e);};O.Ptr.prototype.Sub=function(e){var f;f=$clone(this,O);e=$clone(e,O);return new O.Ptr(f.X-e.X>>0,f.Y-e.Y>>0);};O.prototype.Sub=function(e){return this.$val.Sub(e);};O.Ptr.prototype.Mul=function(e){var f;f=$clone(this,O);return new O.Ptr(f.X*e>>0,f.Y*e>>0);};O.prototype.Mul=function(e){return this.$val.Mul(e);};O.Ptr.prototype.Div=function(e){var f,g,h;f=$clone(this,O);return new O.Ptr((g=f.X/e,(g===g&&g!==1/0&&g!==-1/0)?g>>0:$throwRuntimeError("integer divide by zero")),(h=f.Y/e,(h===h&&h!==1/0&&h!==-1/0)?h>>0:$throwRuntimeError("integer divide by zero")));};O.prototype.Div=function(e){return this.$val.Div(e);};O.Ptr.prototype.In=function(e){var f;f=$clone(this,O);e=$clone(e,Q);return e.Min.X<=f.X&&f.X>0;}f.Y=(l=f.Y%j,l===l?l:$throwRuntimeError("integer divide by zero"));if(f.Y<0){f.Y=f.Y+(j)>>0;}return f.Add(e.Min);};O.prototype.Mod=function(e){return this.$val.Mod(e);};O.Ptr.prototype.Eq=function(e){var f;f=$clone(this,O);e=$clone(e,O);return(f.X===e.X)&&(f.Y===e.Y);};O.prototype.Eq=function(e){return this.$val.Eq(e);};Q.Ptr.prototype.String=function(){var e;e=$clone(this,Q);return e.Min.String()+"-"+e.Max.String();};Q.prototype.String=function(){return this.$val.String();};Q.Ptr.prototype.Dx=function(){var e;e=$clone(this,Q);return e.Max.X-e.Min.X>>0;};Q.prototype.Dx=function(){return this.$val.Dx();};Q.Ptr.prototype.Dy=function(){var e;e=$clone(this,Q);return e.Max.Y-e.Min.Y>>0;};Q.prototype.Dy=function(){return this.$val.Dy();};Q.Ptr.prototype.Size=function(){var e;e=$clone(this,Q);return new O.Ptr(e.Max.X-e.Min.X>>0,e.Max.Y-e.Min.Y>>0);};Q.prototype.Size=function(){return this.$val.Size();};Q.Ptr.prototype.Add=function(e){var f;f=$clone(this,Q);e=$clone(e,O);return new Q.Ptr(new O.Ptr(f.Min.X+e.X>>0,f.Min.Y+e.Y>>0),new O.Ptr(f.Max.X+e.X>>0,f.Max.Y+e.Y>>0));};Q.prototype.Add=function(e){return this.$val.Add(e);};Q.Ptr.prototype.Sub=function(e){var f;f=$clone(this,Q);e=$clone(e,O);return new Q.Ptr(new O.Ptr(f.Min.X-e.X>>0,f.Min.Y-e.Y>>0),new O.Ptr(f.Max.X-e.X>>0,f.Max.Y-e.Y>>0));};Q.prototype.Sub=function(e){return this.$val.Sub(e);};Q.Ptr.prototype.Inset=function(e){var f,g,h;f=$clone(this,Q);if(f.Dx()<(2*e>>0)){f.Min.X=(g=((f.Min.X+f.Max.X>>0))/2,(g===g&&g!==1/0&&g!==-1/0)?g>>0:$throwRuntimeError("integer divide by zero"));f.Max.X=f.Min.X;}else{f.Min.X=f.Min.X+(e)>>0;f.Max.X=f.Max.X-(e)>>0;}if(f.Dy()<(2*e>>0)){f.Min.Y=(h=((f.Min.Y+f.Max.Y>>0))/2,(h===h&&h!==1/0&&h!==-1/0)?h>>0:$throwRuntimeError("integer divide by zero"));f.Max.Y=f.Min.Y;}else{f.Min.Y=f.Min.Y+(e)>>0;f.Max.Y=f.Max.Y-(e)>>0;}return f;};Q.prototype.Inset=function(e){return this.$val.Inset(e);};Q.Ptr.prototype.Intersect=function(e){var f;f=$clone(this,Q);e=$clone(e,Q);if(f.Min.Xe.Max.X){f.Max.X=e.Max.X;}if(f.Max.Y>e.Max.Y){f.Max.Y=e.Max.Y;}if(f.Min.X>f.Max.X||f.Min.Y>f.Max.Y){return $pkg.ZR;}return f;};Q.prototype.Intersect=function(e){return this.$val.Intersect(e);};Q.Ptr.prototype.Union=function(e){var f;f=$clone(this,Q);e=$clone(e,Q);if(f.Min.X>e.Min.X){f.Min.X=e.Min.X;}if(f.Min.Y>e.Min.Y){f.Min.Y=e.Min.Y;}if(f.Max.X=e.Max.X||e.Min.Y>=e.Max.Y;};Q.prototype.Empty=function(){return this.$val.Empty();};Q.Ptr.prototype.Eq=function(e){var f;f=$clone(this,Q);e=$clone(e,Q);return(f.Min.X===e.Min.X)&&(f.Min.Y===e.Min.Y)&&(f.Max.X===e.Max.X)&&(f.Max.Y===e.Max.Y);};Q.prototype.Eq=function(e){return this.$val.Eq(e);};Q.Ptr.prototype.Overlaps=function(e){var f;f=$clone(this,Q);e=$clone(e,Q);return f.Min.Xg){i=g;j=e;e=i;g=j;}if(f>h){k=h;l=f;f=k;h=l;}return new Q.Ptr(new O.Ptr(e,f),new O.Ptr(g,h));};V.Ptr.prototype.ColorModel=function(){var e;e=this;return E.RGBAModel;};V.prototype.ColorModel=function(){return this.$val.ColorModel();};V.Ptr.prototype.Bounds=function(){var e;e=this;return e.Rect;};V.prototype.Bounds=function(){return this.$val.Bounds();};V.Ptr.prototype.At=function(e,f){var g,h;g=this;return(h=g.RGBAAt(e,f),new h.constructor.Struct(h));};V.prototype.At=function(e,f){return this.$val.At(e,f);};V.Ptr.prototype.RGBAAt=function(e,f){var g,h,i,j,k,l,m,n,o,p;g=this;if(!(new O.Ptr(e,f).In(g.Rect))){return new E.RGBA.Ptr(0,0,0,0);}h=g.PixOffset(e,f);return new E.RGBA.Ptr((i=g.Pix,j=h+0>>0,((j<0||j>=i.$length)?$throwRuntimeError("index out of range"):i.$array[i.$offset+j])),(k=g.Pix,l=h+1>>0,((l<0||l>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+l])),(m=g.Pix,n=h+2>>0,((n<0||n>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+n])),(o=g.Pix,p=h+3>>0,((p<0||p>=o.$length)?$throwRuntimeError("index out of range"):o.$array[o.$offset+p])));};V.prototype.RGBAAt=function(e,f){return this.$val.RGBAAt(e,f);};V.Ptr.prototype.PixOffset=function(e,f){var g;g=this;return(((f-g.Rect.Min.Y>>0))*g.Stride>>0)+(((e-g.Rect.Min.X>>0))*4>>0)>>0;};V.prototype.PixOffset=function(e,f){return this.$val.PixOffset(e,f);};V.Ptr.prototype.Set=function(e,f,g){var h,i,j,k,l,m,n,o,p,q,r;h=this;if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);j=$clone($assertType(E.RGBAModel.Convert(g),E.RGBA),E.RGBA);(k=h.Pix,l=i+0>>0,(l<0||l>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+l]=j.R);(m=h.Pix,n=i+1>>0,(n<0||n>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+n]=j.G);(o=h.Pix,p=i+2>>0,(p<0||p>=o.$length)?$throwRuntimeError("index out of range"):o.$array[o.$offset+p]=j.B);(q=h.Pix,r=i+3>>0,(r<0||r>=q.$length)?$throwRuntimeError("index out of range"):q.$array[q.$offset+r]=j.A);};V.prototype.Set=function(e,f,g){return this.$val.Set(e,f,g);};V.Ptr.prototype.SetRGBA=function(e,f,g){var h,i,j,k,l,m,n,o,p,q;h=this;g=$clone(g,E.RGBA);if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);(j=h.Pix,k=i+0>>0,(k<0||k>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+k]=g.R);(l=h.Pix,m=i+1>>0,(m<0||m>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+m]=g.G);(n=h.Pix,o=i+2>>0,(o<0||o>=n.$length)?$throwRuntimeError("index out of range"):n.$array[n.$offset+o]=g.B);(p=h.Pix,q=i+3>>0,(q<0||q>=p.$length)?$throwRuntimeError("index out of range"):p.$array[p.$offset+q]=g.A);};V.prototype.SetRGBA=function(e,f,g){return this.$val.SetRGBA(e,f,g);};V.Ptr.prototype.SubImage=function(e){var f,g;f=this;e=$clone(e,Q);$copy(e,e.Intersect(f.Rect),Q);if(e.Empty()){return new V.Ptr(AT.nil,0,new Q.Ptr());}g=f.PixOffset(e.Min.X,e.Min.Y);return new V.Ptr($subslice(f.Pix,g),f.Stride,$clone(e,Q));};V.prototype.SubImage=function(e){return this.$val.SubImage(e);};V.Ptr.prototype.Opaque=function(){var e,f,g,h,i,j,k,l;e=this;if(e.Rect.Empty()){return true;}f=3;g=e.Rect.Dx()*4>>0;h=f;i=g;j=e.Rect.Min.Y;while(j=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+k]))===255))){return false;}k=k+(4)>>0;}h=h+(e.Stride)>>0;i=i+(e.Stride)>>0;j=j+(1)>>0;}return true;};V.prototype.Opaque=function(){return this.$val.Opaque();};W=$pkg.NewRGBA=function(e){var f,g,h,i,j;e=$clone(e,Q);f=e.Dx();g=e.Dy();h=f;i=g;j=AT.make(((4*h>>0)*i>>0));return new V.Ptr(j,4*h>>0,$clone(e,Q));};X.Ptr.prototype.ColorModel=function(){var e;e=this;return E.RGBA64Model;};X.prototype.ColorModel=function(){return this.$val.ColorModel();};X.Ptr.prototype.Bounds=function(){var e;e=this;return e.Rect;};X.prototype.Bounds=function(){return this.$val.Bounds();};X.Ptr.prototype.At=function(e,f){var g,h;g=this;return(h=g.RGBA64At(e,f),new h.constructor.Struct(h));};X.prototype.At=function(e,f){return this.$val.At(e,f);};X.Ptr.prototype.RGBA64At=function(e,f){var g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x;g=this;if(!(new O.Ptr(e,f).In(g.Rect))){return new E.RGBA64.Ptr(0,0,0,0);}h=g.PixOffset(e,f);return new E.RGBA64.Ptr(((((i=g.Pix,j=h+0>>0,((j<0||j>=i.$length)?$throwRuntimeError("index out of range"):i.$array[i.$offset+j]))<<16>>>16)<<8<<16>>>16)|((k=g.Pix,l=h+1>>0,((l<0||l>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+l]))<<16>>>16))>>>0,((((m=g.Pix,n=h+2>>0,((n<0||n>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+n]))<<16>>>16)<<8<<16>>>16)|((o=g.Pix,p=h+3>>0,((p<0||p>=o.$length)?$throwRuntimeError("index out of range"):o.$array[o.$offset+p]))<<16>>>16))>>>0,((((q=g.Pix,r=h+4>>0,((r<0||r>=q.$length)?$throwRuntimeError("index out of range"):q.$array[q.$offset+r]))<<16>>>16)<<8<<16>>>16)|((s=g.Pix,t=h+5>>0,((t<0||t>=s.$length)?$throwRuntimeError("index out of range"):s.$array[s.$offset+t]))<<16>>>16))>>>0,((((u=g.Pix,v=h+6>>0,((v<0||v>=u.$length)?$throwRuntimeError("index out of range"):u.$array[u.$offset+v]))<<16>>>16)<<8<<16>>>16)|((w=g.Pix,x=h+7>>0,((x<0||x>=w.$length)?$throwRuntimeError("index out of range"):w.$array[w.$offset+x]))<<16>>>16))>>>0);};X.prototype.RGBA64At=function(e,f){return this.$val.RGBA64At(e,f);};X.Ptr.prototype.PixOffset=function(e,f){var g;g=this;return(((f-g.Rect.Min.Y>>0))*g.Stride>>0)+(((e-g.Rect.Min.X>>0))*8>>0)>>0;};X.prototype.PixOffset=function(e,f){return this.$val.PixOffset(e,f);};X.Ptr.prototype.Set=function(e,f,g){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;h=this;if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);j=$clone($assertType(E.RGBA64Model.Convert(g),E.RGBA64),E.RGBA64);(k=h.Pix,l=i+0>>0,(l<0||l>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+l]=((j.R>>>8<<16>>>16)<<24>>>24));(m=h.Pix,n=i+1>>0,(n<0||n>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+n]=(j.R<<24>>>24));(o=h.Pix,p=i+2>>0,(p<0||p>=o.$length)?$throwRuntimeError("index out of range"):o.$array[o.$offset+p]=((j.G>>>8<<16>>>16)<<24>>>24));(q=h.Pix,r=i+3>>0,(r<0||r>=q.$length)?$throwRuntimeError("index out of range"):q.$array[q.$offset+r]=(j.G<<24>>>24));(s=h.Pix,t=i+4>>0,(t<0||t>=s.$length)?$throwRuntimeError("index out of range"):s.$array[s.$offset+t]=((j.B>>>8<<16>>>16)<<24>>>24));(u=h.Pix,v=i+5>>0,(v<0||v>=u.$length)?$throwRuntimeError("index out of range"):u.$array[u.$offset+v]=(j.B<<24>>>24));(w=h.Pix,x=i+6>>0,(x<0||x>=w.$length)?$throwRuntimeError("index out of range"):w.$array[w.$offset+x]=((j.A>>>8<<16>>>16)<<24>>>24));(y=h.Pix,z=i+7>>0,(z<0||z>=y.$length)?$throwRuntimeError("index out of range"):y.$array[y.$offset+z]=(j.A<<24>>>24));};X.prototype.Set=function(e,f,g){return this.$val.Set(e,f,g);};X.Ptr.prototype.SetRGBA64=function(e,f,g){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y;h=this;g=$clone(g,E.RGBA64);if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);(j=h.Pix,k=i+0>>0,(k<0||k>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+k]=((g.R>>>8<<16>>>16)<<24>>>24));(l=h.Pix,m=i+1>>0,(m<0||m>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+m]=(g.R<<24>>>24));(n=h.Pix,o=i+2>>0,(o<0||o>=n.$length)?$throwRuntimeError("index out of range"):n.$array[n.$offset+o]=((g.G>>>8<<16>>>16)<<24>>>24));(p=h.Pix,q=i+3>>0,(q<0||q>=p.$length)?$throwRuntimeError("index out of range"):p.$array[p.$offset+q]=(g.G<<24>>>24));(r=h.Pix,s=i+4>>0,(s<0||s>=r.$length)?$throwRuntimeError("index out of range"):r.$array[r.$offset+s]=((g.B>>>8<<16>>>16)<<24>>>24));(t=h.Pix,u=i+5>>0,(u<0||u>=t.$length)?$throwRuntimeError("index out of range"):t.$array[t.$offset+u]=(g.B<<24>>>24));(v=h.Pix,w=i+6>>0,(w<0||w>=v.$length)?$throwRuntimeError("index out of range"):v.$array[v.$offset+w]=((g.A>>>8<<16>>>16)<<24>>>24));(x=h.Pix,y=i+7>>0,(y<0||y>=x.$length)?$throwRuntimeError("index out of range"):x.$array[x.$offset+y]=(g.A<<24>>>24));};X.prototype.SetRGBA64=function(e,f,g){return this.$val.SetRGBA64(e,f,g);};X.Ptr.prototype.SubImage=function(e){var f,g;f=this;e=$clone(e,Q);$copy(e,e.Intersect(f.Rect),Q);if(e.Empty()){return new X.Ptr(AT.nil,0,new Q.Ptr());}g=f.PixOffset(e.Min.X,e.Min.Y);return new X.Ptr($subslice(f.Pix,g),f.Stride,$clone(e,Q));};X.prototype.SubImage=function(e){return this.$val.SubImage(e);};X.Ptr.prototype.Opaque=function(){var e,f,g,h,i,j,k,l,m,n,o;e=this;if(e.Rect.Empty()){return true;}f=6;g=e.Rect.Dx()*8>>0;h=f;i=g;j=e.Rect.Min.Y;while(j>0,((m<0||m>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+m]))===255))||!(((n=e.Pix,o=k+1>>0,((o<0||o>=n.$length)?$throwRuntimeError("index out of range"):n.$array[n.$offset+o]))===255))){return false;}k=k+(8)>>0;}h=h+(e.Stride)>>0;i=i+(e.Stride)>>0;j=j+(1)>>0;}return true;};X.prototype.Opaque=function(){return this.$val.Opaque();};Y=$pkg.NewRGBA64=function(e){var f,g,h,i,j;e=$clone(e,Q);f=e.Dx();g=e.Dy();h=f;i=g;j=AT.make(((8*h>>0)*i>>0));return new X.Ptr(j,8*h>>0,$clone(e,Q));};Z.Ptr.prototype.ColorModel=function(){var e;e=this;return E.NRGBAModel;};Z.prototype.ColorModel=function(){return this.$val.ColorModel();};Z.Ptr.prototype.Bounds=function(){var e;e=this;return e.Rect;};Z.prototype.Bounds=function(){return this.$val.Bounds();};Z.Ptr.prototype.At=function(e,f){var g,h;g=this;return(h=g.NRGBAAt(e,f),new h.constructor.Struct(h));};Z.prototype.At=function(e,f){return this.$val.At(e,f);};Z.Ptr.prototype.NRGBAAt=function(e,f){var g,h,i,j,k,l,m,n,o,p;g=this;if(!(new O.Ptr(e,f).In(g.Rect))){return new E.NRGBA.Ptr(0,0,0,0);}h=g.PixOffset(e,f);return new E.NRGBA.Ptr((i=g.Pix,j=h+0>>0,((j<0||j>=i.$length)?$throwRuntimeError("index out of range"):i.$array[i.$offset+j])),(k=g.Pix,l=h+1>>0,((l<0||l>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+l])),(m=g.Pix,n=h+2>>0,((n<0||n>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+n])),(o=g.Pix,p=h+3>>0,((p<0||p>=o.$length)?$throwRuntimeError("index out of range"):o.$array[o.$offset+p])));};Z.prototype.NRGBAAt=function(e,f){return this.$val.NRGBAAt(e,f);};Z.Ptr.prototype.PixOffset=function(e,f){var g;g=this;return(((f-g.Rect.Min.Y>>0))*g.Stride>>0)+(((e-g.Rect.Min.X>>0))*4>>0)>>0;};Z.prototype.PixOffset=function(e,f){return this.$val.PixOffset(e,f);};Z.Ptr.prototype.Set=function(e,f,g){var h,i,j,k,l,m,n,o,p,q,r;h=this;if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);j=$clone($assertType(E.NRGBAModel.Convert(g),E.NRGBA),E.NRGBA);(k=h.Pix,l=i+0>>0,(l<0||l>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+l]=j.R);(m=h.Pix,n=i+1>>0,(n<0||n>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+n]=j.G);(o=h.Pix,p=i+2>>0,(p<0||p>=o.$length)?$throwRuntimeError("index out of range"):o.$array[o.$offset+p]=j.B);(q=h.Pix,r=i+3>>0,(r<0||r>=q.$length)?$throwRuntimeError("index out of range"):q.$array[q.$offset+r]=j.A);};Z.prototype.Set=function(e,f,g){return this.$val.Set(e,f,g);};Z.Ptr.prototype.SetNRGBA=function(e,f,g){var h,i,j,k,l,m,n,o,p,q;h=this;g=$clone(g,E.NRGBA);if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);(j=h.Pix,k=i+0>>0,(k<0||k>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+k]=g.R);(l=h.Pix,m=i+1>>0,(m<0||m>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+m]=g.G);(n=h.Pix,o=i+2>>0,(o<0||o>=n.$length)?$throwRuntimeError("index out of range"):n.$array[n.$offset+o]=g.B);(p=h.Pix,q=i+3>>0,(q<0||q>=p.$length)?$throwRuntimeError("index out of range"):p.$array[p.$offset+q]=g.A);};Z.prototype.SetNRGBA=function(e,f,g){return this.$val.SetNRGBA(e,f,g);};Z.Ptr.prototype.SubImage=function(e){var f,g;f=this;e=$clone(e,Q);$copy(e,e.Intersect(f.Rect),Q);if(e.Empty()){return new Z.Ptr(AT.nil,0,new Q.Ptr());}g=f.PixOffset(e.Min.X,e.Min.Y);return new Z.Ptr($subslice(f.Pix,g),f.Stride,$clone(e,Q));};Z.prototype.SubImage=function(e){return this.$val.SubImage(e);};Z.Ptr.prototype.Opaque=function(){var e,f,g,h,i,j,k,l;e=this;if(e.Rect.Empty()){return true;}f=3;g=e.Rect.Dx()*4>>0;h=f;i=g;j=e.Rect.Min.Y;while(j=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+k]))===255))){return false;}k=k+(4)>>0;}h=h+(e.Stride)>>0;i=i+(e.Stride)>>0;j=j+(1)>>0;}return true;};Z.prototype.Opaque=function(){return this.$val.Opaque();};AA=$pkg.NewNRGBA=function(e){var f,g,h,i,j;e=$clone(e,Q);f=e.Dx();g=e.Dy();h=f;i=g;j=AT.make(((4*h>>0)*i>>0));return new Z.Ptr(j,4*h>>0,$clone(e,Q));};AB.Ptr.prototype.ColorModel=function(){var e;e=this;return E.NRGBA64Model;};AB.prototype.ColorModel=function(){return this.$val.ColorModel();};AB.Ptr.prototype.Bounds=function(){var e;e=this;return e.Rect;};AB.prototype.Bounds=function(){return this.$val.Bounds();};AB.Ptr.prototype.At=function(e,f){var g,h;g=this;return(h=g.NRGBA64At(e,f),new h.constructor.Struct(h));};AB.prototype.At=function(e,f){return this.$val.At(e,f);};AB.Ptr.prototype.NRGBA64At=function(e,f){var g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x;g=this;if(!(new O.Ptr(e,f).In(g.Rect))){return new E.NRGBA64.Ptr(0,0,0,0);}h=g.PixOffset(e,f);return new E.NRGBA64.Ptr(((((i=g.Pix,j=h+0>>0,((j<0||j>=i.$length)?$throwRuntimeError("index out of range"):i.$array[i.$offset+j]))<<16>>>16)<<8<<16>>>16)|((k=g.Pix,l=h+1>>0,((l<0||l>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+l]))<<16>>>16))>>>0,((((m=g.Pix,n=h+2>>0,((n<0||n>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+n]))<<16>>>16)<<8<<16>>>16)|((o=g.Pix,p=h+3>>0,((p<0||p>=o.$length)?$throwRuntimeError("index out of range"):o.$array[o.$offset+p]))<<16>>>16))>>>0,((((q=g.Pix,r=h+4>>0,((r<0||r>=q.$length)?$throwRuntimeError("index out of range"):q.$array[q.$offset+r]))<<16>>>16)<<8<<16>>>16)|((s=g.Pix,t=h+5>>0,((t<0||t>=s.$length)?$throwRuntimeError("index out of range"):s.$array[s.$offset+t]))<<16>>>16))>>>0,((((u=g.Pix,v=h+6>>0,((v<0||v>=u.$length)?$throwRuntimeError("index out of range"):u.$array[u.$offset+v]))<<16>>>16)<<8<<16>>>16)|((w=g.Pix,x=h+7>>0,((x<0||x>=w.$length)?$throwRuntimeError("index out of range"):w.$array[w.$offset+x]))<<16>>>16))>>>0);};AB.prototype.NRGBA64At=function(e,f){return this.$val.NRGBA64At(e,f);};AB.Ptr.prototype.PixOffset=function(e,f){var g;g=this;return(((f-g.Rect.Min.Y>>0))*g.Stride>>0)+(((e-g.Rect.Min.X>>0))*8>>0)>>0;};AB.prototype.PixOffset=function(e,f){return this.$val.PixOffset(e,f);};AB.Ptr.prototype.Set=function(e,f,g){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;h=this;if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);j=$clone($assertType(E.NRGBA64Model.Convert(g),E.NRGBA64),E.NRGBA64);(k=h.Pix,l=i+0>>0,(l<0||l>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+l]=((j.R>>>8<<16>>>16)<<24>>>24));(m=h.Pix,n=i+1>>0,(n<0||n>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+n]=(j.R<<24>>>24));(o=h.Pix,p=i+2>>0,(p<0||p>=o.$length)?$throwRuntimeError("index out of range"):o.$array[o.$offset+p]=((j.G>>>8<<16>>>16)<<24>>>24));(q=h.Pix,r=i+3>>0,(r<0||r>=q.$length)?$throwRuntimeError("index out of range"):q.$array[q.$offset+r]=(j.G<<24>>>24));(s=h.Pix,t=i+4>>0,(t<0||t>=s.$length)?$throwRuntimeError("index out of range"):s.$array[s.$offset+t]=((j.B>>>8<<16>>>16)<<24>>>24));(u=h.Pix,v=i+5>>0,(v<0||v>=u.$length)?$throwRuntimeError("index out of range"):u.$array[u.$offset+v]=(j.B<<24>>>24));(w=h.Pix,x=i+6>>0,(x<0||x>=w.$length)?$throwRuntimeError("index out of range"):w.$array[w.$offset+x]=((j.A>>>8<<16>>>16)<<24>>>24));(y=h.Pix,z=i+7>>0,(z<0||z>=y.$length)?$throwRuntimeError("index out of range"):y.$array[y.$offset+z]=(j.A<<24>>>24));};AB.prototype.Set=function(e,f,g){return this.$val.Set(e,f,g);};AB.Ptr.prototype.SetNRGBA64=function(e,f,g){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y;h=this;g=$clone(g,E.NRGBA64);if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);(j=h.Pix,k=i+0>>0,(k<0||k>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+k]=((g.R>>>8<<16>>>16)<<24>>>24));(l=h.Pix,m=i+1>>0,(m<0||m>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+m]=(g.R<<24>>>24));(n=h.Pix,o=i+2>>0,(o<0||o>=n.$length)?$throwRuntimeError("index out of range"):n.$array[n.$offset+o]=((g.G>>>8<<16>>>16)<<24>>>24));(p=h.Pix,q=i+3>>0,(q<0||q>=p.$length)?$throwRuntimeError("index out of range"):p.$array[p.$offset+q]=(g.G<<24>>>24));(r=h.Pix,s=i+4>>0,(s<0||s>=r.$length)?$throwRuntimeError("index out of range"):r.$array[r.$offset+s]=((g.B>>>8<<16>>>16)<<24>>>24));(t=h.Pix,u=i+5>>0,(u<0||u>=t.$length)?$throwRuntimeError("index out of range"):t.$array[t.$offset+u]=(g.B<<24>>>24));(v=h.Pix,w=i+6>>0,(w<0||w>=v.$length)?$throwRuntimeError("index out of range"):v.$array[v.$offset+w]=((g.A>>>8<<16>>>16)<<24>>>24));(x=h.Pix,y=i+7>>0,(y<0||y>=x.$length)?$throwRuntimeError("index out of range"):x.$array[x.$offset+y]=(g.A<<24>>>24));};AB.prototype.SetNRGBA64=function(e,f,g){return this.$val.SetNRGBA64(e,f,g);};AB.Ptr.prototype.SubImage=function(e){var f,g;f=this;e=$clone(e,Q);$copy(e,e.Intersect(f.Rect),Q);if(e.Empty()){return new AB.Ptr(AT.nil,0,new Q.Ptr());}g=f.PixOffset(e.Min.X,e.Min.Y);return new AB.Ptr($subslice(f.Pix,g),f.Stride,$clone(e,Q));};AB.prototype.SubImage=function(e){return this.$val.SubImage(e);};AB.Ptr.prototype.Opaque=function(){var e,f,g,h,i,j,k,l,m,n,o;e=this;if(e.Rect.Empty()){return true;}f=6;g=e.Rect.Dx()*8>>0;h=f;i=g;j=e.Rect.Min.Y;while(j>0,((m<0||m>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+m]))===255))||!(((n=e.Pix,o=k+1>>0,((o<0||o>=n.$length)?$throwRuntimeError("index out of range"):n.$array[n.$offset+o]))===255))){return false;}k=k+(8)>>0;}h=h+(e.Stride)>>0;i=i+(e.Stride)>>0;j=j+(1)>>0;}return true;};AB.prototype.Opaque=function(){return this.$val.Opaque();};AC=$pkg.NewNRGBA64=function(e){var f,g,h,i,j;e=$clone(e,Q);f=e.Dx();g=e.Dy();h=f;i=g;j=AT.make(((8*h>>0)*i>>0));return new AB.Ptr(j,8*h>>0,$clone(e,Q));};AD.Ptr.prototype.ColorModel=function(){var e;e=this;return E.AlphaModel;};AD.prototype.ColorModel=function(){return this.$val.ColorModel();};AD.Ptr.prototype.Bounds=function(){var e;e=this;return e.Rect;};AD.prototype.Bounds=function(){return this.$val.Bounds();};AD.Ptr.prototype.At=function(e,f){var g,h;g=this;return(h=g.AlphaAt(e,f),new h.constructor.Struct(h));};AD.prototype.At=function(e,f){return this.$val.At(e,f);};AD.Ptr.prototype.AlphaAt=function(e,f){var g,h,i;g=this;if(!(new O.Ptr(e,f).In(g.Rect))){return new E.Alpha.Ptr(0);}h=g.PixOffset(e,f);return new E.Alpha.Ptr((i=g.Pix,((h<0||h>=i.$length)?$throwRuntimeError("index out of range"):i.$array[i.$offset+h])));};AD.prototype.AlphaAt=function(e,f){return this.$val.AlphaAt(e,f);};AD.Ptr.prototype.PixOffset=function(e,f){var g;g=this;return(((f-g.Rect.Min.Y>>0))*g.Stride>>0)+(((e-g.Rect.Min.X>>0))*1>>0)>>0;};AD.prototype.PixOffset=function(e,f){return this.$val.PixOffset(e,f);};AD.Ptr.prototype.Set=function(e,f,g){var h,i,j;h=this;if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);(j=h.Pix,(i<0||i>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+i]=$assertType(E.AlphaModel.Convert(g),E.Alpha).A);};AD.prototype.Set=function(e,f,g){return this.$val.Set(e,f,g);};AD.Ptr.prototype.SetAlpha=function(e,f,g){var h,i,j;h=this;g=$clone(g,E.Alpha);if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);(j=h.Pix,(i<0||i>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+i]=g.A);};AD.prototype.SetAlpha=function(e,f,g){return this.$val.SetAlpha(e,f,g);};AD.Ptr.prototype.SubImage=function(e){var f,g;f=this;e=$clone(e,Q);$copy(e,e.Intersect(f.Rect),Q);if(e.Empty()){return new AD.Ptr(AT.nil,0,new Q.Ptr());}g=f.PixOffset(e.Min.X,e.Min.Y);return new AD.Ptr($subslice(f.Pix,g),f.Stride,$clone(e,Q));};AD.prototype.SubImage=function(e){return this.$val.SubImage(e);};AD.Ptr.prototype.Opaque=function(){var e,f,g,h,i,j,k,l;e=this;if(e.Rect.Empty()){return true;}f=0;g=e.Rect.Dx();h=f;i=g;j=e.Rect.Min.Y;while(j=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+k]))===255))){return false;}k=k+(1)>>0;}h=h+(e.Stride)>>0;i=i+(e.Stride)>>0;j=j+(1)>>0;}return true;};AD.prototype.Opaque=function(){return this.$val.Opaque();};AF.Ptr.prototype.ColorModel=function(){var e;e=this;return E.Alpha16Model;};AF.prototype.ColorModel=function(){return this.$val.ColorModel();};AF.Ptr.prototype.Bounds=function(){var e;e=this;return e.Rect;};AF.prototype.Bounds=function(){return this.$val.Bounds();};AF.Ptr.prototype.At=function(e,f){var g,h;g=this;return(h=g.Alpha16At(e,f),new h.constructor.Struct(h));};AF.prototype.At=function(e,f){return this.$val.At(e,f);};AF.Ptr.prototype.Alpha16At=function(e,f){var g,h,i,j,k,l;g=this;if(!(new O.Ptr(e,f).In(g.Rect))){return new E.Alpha16.Ptr(0);}h=g.PixOffset(e,f);return new E.Alpha16.Ptr(((((i=g.Pix,j=h+0>>0,((j<0||j>=i.$length)?$throwRuntimeError("index out of range"):i.$array[i.$offset+j]))<<16>>>16)<<8<<16>>>16)|((k=g.Pix,l=h+1>>0,((l<0||l>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+l]))<<16>>>16))>>>0);};AF.prototype.Alpha16At=function(e,f){return this.$val.Alpha16At(e,f);};AF.Ptr.prototype.PixOffset=function(e,f){var g;g=this;return(((f-g.Rect.Min.Y>>0))*g.Stride>>0)+(((e-g.Rect.Min.X>>0))*2>>0)>>0;};AF.prototype.PixOffset=function(e,f){return this.$val.PixOffset(e,f);};AF.Ptr.prototype.Set=function(e,f,g){var h,i,j,k,l,m,n;h=this;if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);j=$clone($assertType(E.Alpha16Model.Convert(g),E.Alpha16),E.Alpha16);(k=h.Pix,l=i+0>>0,(l<0||l>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+l]=((j.A>>>8<<16>>>16)<<24>>>24));(m=h.Pix,n=i+1>>0,(n<0||n>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+n]=(j.A<<24>>>24));};AF.prototype.Set=function(e,f,g){return this.$val.Set(e,f,g);};AF.Ptr.prototype.SetAlpha16=function(e,f,g){var h,i,j,k,l,m;h=this;g=$clone(g,E.Alpha16);if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);(j=h.Pix,k=i+0>>0,(k<0||k>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+k]=((g.A>>>8<<16>>>16)<<24>>>24));(l=h.Pix,m=i+1>>0,(m<0||m>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+m]=(g.A<<24>>>24));};AF.prototype.SetAlpha16=function(e,f,g){return this.$val.SetAlpha16(e,f,g);};AF.Ptr.prototype.SubImage=function(e){var f,g;f=this;e=$clone(e,Q);$copy(e,e.Intersect(f.Rect),Q);if(e.Empty()){return new AF.Ptr(AT.nil,0,new Q.Ptr());}g=f.PixOffset(e.Min.X,e.Min.Y);return new AF.Ptr($subslice(f.Pix,g),f.Stride,$clone(e,Q));};AF.prototype.SubImage=function(e){return this.$val.SubImage(e);};AF.Ptr.prototype.Opaque=function(){var e,f,g,h,i,j,k,l,m,n,o;e=this;if(e.Rect.Empty()){return true;}f=0;g=e.Rect.Dx()*2>>0;h=f;i=g;j=e.Rect.Min.Y;while(j>0,((m<0||m>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+m]))===255))||!(((n=e.Pix,o=k+1>>0,((o<0||o>=n.$length)?$throwRuntimeError("index out of range"):n.$array[n.$offset+o]))===255))){return false;}k=k+(2)>>0;}h=h+(e.Stride)>>0;i=i+(e.Stride)>>0;j=j+(1)>>0;}return true;};AF.prototype.Opaque=function(){return this.$val.Opaque();};AH.Ptr.prototype.ColorModel=function(){var e;e=this;return E.GrayModel;};AH.prototype.ColorModel=function(){return this.$val.ColorModel();};AH.Ptr.prototype.Bounds=function(){var e;e=this;return e.Rect;};AH.prototype.Bounds=function(){return this.$val.Bounds();};AH.Ptr.prototype.At=function(e,f){var g,h;g=this;return(h=g.GrayAt(e,f),new h.constructor.Struct(h));};AH.prototype.At=function(e,f){return this.$val.At(e,f);};AH.Ptr.prototype.GrayAt=function(e,f){var g,h,i;g=this;if(!(new O.Ptr(e,f).In(g.Rect))){return new E.Gray.Ptr(0);}h=g.PixOffset(e,f);return new E.Gray.Ptr((i=g.Pix,((h<0||h>=i.$length)?$throwRuntimeError("index out of range"):i.$array[i.$offset+h])));};AH.prototype.GrayAt=function(e,f){return this.$val.GrayAt(e,f);};AH.Ptr.prototype.PixOffset=function(e,f){var g;g=this;return(((f-g.Rect.Min.Y>>0))*g.Stride>>0)+(((e-g.Rect.Min.X>>0))*1>>0)>>0;};AH.prototype.PixOffset=function(e,f){return this.$val.PixOffset(e,f);};AH.Ptr.prototype.Set=function(e,f,g){var h,i,j;h=this;if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);(j=h.Pix,(i<0||i>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+i]=$assertType(E.GrayModel.Convert(g),E.Gray).Y);};AH.prototype.Set=function(e,f,g){return this.$val.Set(e,f,g);};AH.Ptr.prototype.SetGray=function(e,f,g){var h,i,j;h=this;g=$clone(g,E.Gray);if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);(j=h.Pix,(i<0||i>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+i]=g.Y);};AH.prototype.SetGray=function(e,f,g){return this.$val.SetGray(e,f,g);};AH.Ptr.prototype.SubImage=function(e){var f,g;f=this;e=$clone(e,Q);$copy(e,e.Intersect(f.Rect),Q);if(e.Empty()){return new AH.Ptr(AT.nil,0,new Q.Ptr());}g=f.PixOffset(e.Min.X,e.Min.Y);return new AH.Ptr($subslice(f.Pix,g),f.Stride,$clone(e,Q));};AH.prototype.SubImage=function(e){return this.$val.SubImage(e);};AH.Ptr.prototype.Opaque=function(){var e;e=this;return true;};AH.prototype.Opaque=function(){return this.$val.Opaque();};AI=$pkg.NewGray=function(e){var f,g,h,i,j;e=$clone(e,Q);f=e.Dx();g=e.Dy();h=f;i=g;j=AT.make(((1*h>>0)*i>>0));return new AH.Ptr(j,1*h>>0,$clone(e,Q));};AJ.Ptr.prototype.ColorModel=function(){var e;e=this;return E.Gray16Model;};AJ.prototype.ColorModel=function(){return this.$val.ColorModel();};AJ.Ptr.prototype.Bounds=function(){var e;e=this;return e.Rect;};AJ.prototype.Bounds=function(){return this.$val.Bounds();};AJ.Ptr.prototype.At=function(e,f){var g,h;g=this;return(h=g.Gray16At(e,f),new h.constructor.Struct(h));};AJ.prototype.At=function(e,f){return this.$val.At(e,f);};AJ.Ptr.prototype.Gray16At=function(e,f){var g,h,i,j,k,l;g=this;if(!(new O.Ptr(e,f).In(g.Rect))){return new E.Gray16.Ptr(0);}h=g.PixOffset(e,f);return new E.Gray16.Ptr(((((i=g.Pix,j=h+0>>0,((j<0||j>=i.$length)?$throwRuntimeError("index out of range"):i.$array[i.$offset+j]))<<16>>>16)<<8<<16>>>16)|((k=g.Pix,l=h+1>>0,((l<0||l>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+l]))<<16>>>16))>>>0);};AJ.prototype.Gray16At=function(e,f){return this.$val.Gray16At(e,f);};AJ.Ptr.prototype.PixOffset=function(e,f){var g;g=this;return(((f-g.Rect.Min.Y>>0))*g.Stride>>0)+(((e-g.Rect.Min.X>>0))*2>>0)>>0;};AJ.prototype.PixOffset=function(e,f){return this.$val.PixOffset(e,f);};AJ.Ptr.prototype.Set=function(e,f,g){var h,i,j,k,l,m,n;h=this;if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);j=$clone($assertType(E.Gray16Model.Convert(g),E.Gray16),E.Gray16);(k=h.Pix,l=i+0>>0,(l<0||l>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+l]=((j.Y>>>8<<16>>>16)<<24>>>24));(m=h.Pix,n=i+1>>0,(n<0||n>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+n]=(j.Y<<24>>>24));};AJ.prototype.Set=function(e,f,g){return this.$val.Set(e,f,g);};AJ.Ptr.prototype.SetGray16=function(e,f,g){var h,i,j,k,l,m;h=this;g=$clone(g,E.Gray16);if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);(j=h.Pix,k=i+0>>0,(k<0||k>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+k]=((g.Y>>>8<<16>>>16)<<24>>>24));(l=h.Pix,m=i+1>>0,(m<0||m>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+m]=(g.Y<<24>>>24));};AJ.prototype.SetGray16=function(e,f,g){return this.$val.SetGray16(e,f,g);};AJ.Ptr.prototype.SubImage=function(e){var f,g;f=this;e=$clone(e,Q);$copy(e,e.Intersect(f.Rect),Q);if(e.Empty()){return new AJ.Ptr(AT.nil,0,new Q.Ptr());}g=f.PixOffset(e.Min.X,e.Min.Y);return new AJ.Ptr($subslice(f.Pix,g),f.Stride,$clone(e,Q));};AJ.prototype.SubImage=function(e){return this.$val.SubImage(e);};AJ.Ptr.prototype.Opaque=function(){var e;e=this;return true;};AJ.prototype.Opaque=function(){return this.$val.Opaque();};AK=$pkg.NewGray16=function(e){var f,g,h,i,j;e=$clone(e,Q);f=e.Dx();g=e.Dy();h=f;i=g;j=AT.make(((2*h>>0)*i>>0));return new AJ.Ptr(j,2*h>>0,$clone(e,Q));};AL.Ptr.prototype.ColorModel=function(){var e;e=this;return e.Palette;};AL.prototype.ColorModel=function(){return this.$val.ColorModel();};AL.Ptr.prototype.Bounds=function(){var e;e=this;return e.Rect;};AL.prototype.Bounds=function(){return this.$val.Bounds();};AL.Ptr.prototype.At=function(e,f){var g,h,i,j,k,l;g=this;if(g.Palette.$length===0){return $ifaceNil;}if(!(new O.Ptr(e,f).In(g.Rect))){return(h=g.Palette,((0<0||0>=h.$length)?$throwRuntimeError("index out of range"):h.$array[h.$offset+0]));}i=g.PixOffset(e,f);return(j=g.Palette,k=(l=g.Pix,((i<0||i>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+i])),((k<0||k>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+k]));};AL.prototype.At=function(e,f){return this.$val.At(e,f);};AL.Ptr.prototype.PixOffset=function(e,f){var g;g=this;return(((f-g.Rect.Min.Y>>0))*g.Stride>>0)+(((e-g.Rect.Min.X>>0))*1>>0)>>0;};AL.prototype.PixOffset=function(e,f){return this.$val.PixOffset(e,f);};AL.Ptr.prototype.Set=function(e,f,g){var h,i,j;h=this;if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);(j=h.Pix,(i<0||i>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+i]=(h.Palette.Index(g)<<24>>>24));};AL.prototype.Set=function(e,f,g){return this.$val.Set(e,f,g);};AL.Ptr.prototype.ColorIndexAt=function(e,f){var g,h,i;g=this;if(!(new O.Ptr(e,f).In(g.Rect))){return 0;}h=g.PixOffset(e,f);return(i=g.Pix,((h<0||h>=i.$length)?$throwRuntimeError("index out of range"):i.$array[i.$offset+h]));};AL.prototype.ColorIndexAt=function(e,f){return this.$val.ColorIndexAt(e,f);};AL.Ptr.prototype.SetColorIndex=function(e,f,g){var h,i,j;h=this;if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);(j=h.Pix,(i<0||i>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+i]=g);};AL.prototype.SetColorIndex=function(e,f,g){return this.$val.SetColorIndex(e,f,g);};AL.Ptr.prototype.SubImage=function(e){var f,g;f=this;e=$clone(e,Q);$copy(e,e.Intersect(f.Rect),Q);if(e.Empty()){return new AL.Ptr(AT.nil,0,new Q.Ptr(),f.Palette);}g=f.PixOffset(e.Min.X,e.Min.Y);return new AL.Ptr($subslice(f.Pix,g),f.Stride,$clone(f.Rect.Intersect(e),Q),f.Palette);};AL.prototype.SubImage=function(e){return this.$val.SubImage(e);};AL.Ptr.prototype.Opaque=function(){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;e=this;f=$clone(AU.zero(),AU);g=0;h=e.Rect.Dx();i=g;j=h;k=e.Rect.Min.Y;while(k=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+m]);(n<0||n>=f.length)?$throwRuntimeError("index out of range"):f[n]=true;m++;}i=i+(e.Stride)>>0;j=j+(e.Stride)>>0;k=k+(1)>>0;}o=e.Palette;p=0;while(p=o.$length)?$throwRuntimeError("index out of range"):o.$array[o.$offset+p]);if(!((q<0||q>=f.length)?$throwRuntimeError("index out of range"):f[q])){p++;continue;}s=r.RGBA();t=s[3];if(!((t===65535))){return false;}p++;}return true;};AL.prototype.Opaque=function(){return this.$val.Opaque();};AM=$pkg.NewPaletted=function(e,f){var g,h,i,j,k;e=$clone(e,Q);g=e.Dx();h=e.Dy();i=g;j=h;k=AT.make(((1*i>>0)*j>>0));return new AL.Ptr(k,1*i>>0,$clone(e,Q),f);};AN.Ptr.prototype.RGBA=function(){var e=0,f=0,g=0,h=0,i,j;i=this;j=i.C.RGBA();e=j[0];f=j[1];g=j[2];h=j[3];return[e,f,g,h];};AN.prototype.RGBA=function(){return this.$val.RGBA();};AN.Ptr.prototype.ColorModel=function(){var e;e=this;return e;};AN.prototype.ColorModel=function(){return this.$val.ColorModel();};AN.Ptr.prototype.Convert=function(e){var f;f=this;return f.C;};AN.prototype.Convert=function(e){return this.$val.Convert(e);};AN.Ptr.prototype.Bounds=function(){var e;e=this;return new Q.Ptr(new O.Ptr(-1000000000,-1000000000),new O.Ptr(1000000000,1000000000));};AN.prototype.Bounds=function(){return this.$val.Bounds();};AN.Ptr.prototype.At=function(e,f){var g;g=this;return g.C;};AN.prototype.At=function(e,f){return this.$val.At(e,f);};AN.Ptr.prototype.Opaque=function(){var e,f,g;e=this;f=e.C.RGBA();g=f[3];return g===65535;};AN.prototype.Opaque=function(){return this.$val.Opaque();};AO=$pkg.NewUniform=function(e){return new AN.Ptr(e);};AP.prototype.String=function(){var e,f;e=this.$val!==undefined?this.$val:this;f=e;if(f===0){return"YCbCrSubsampleRatio444";}else if(f===1){return"YCbCrSubsampleRatio422";}else if(f===2){return"YCbCrSubsampleRatio420";}else if(f===3){return"YCbCrSubsampleRatio440";}return"YCbCrSubsampleRatioUnknown";};$ptrType(AP).prototype.String=function(){return new AP(this.$get()).String();};AQ.Ptr.prototype.ColorModel=function(){var e;e=this;return E.YCbCrModel;};AQ.prototype.ColorModel=function(){return this.$val.ColorModel();};AQ.Ptr.prototype.Bounds=function(){var e;e=this;return e.Rect;};AQ.prototype.Bounds=function(){return this.$val.Bounds();};AQ.Ptr.prototype.At=function(e,f){var g,h;g=this;return(h=g.YCbCrAt(e,f),new h.constructor.Struct(h));};AQ.prototype.At=function(e,f){return this.$val.At(e,f);};AQ.Ptr.prototype.YCbCrAt=function(e,f){var g,h,i,j,k,l;g=this;if(!(new O.Ptr(e,f).In(g.Rect))){return new E.YCbCr.Ptr(0,0,0);}h=g.YOffset(e,f);i=g.COffset(e,f);return new E.YCbCr.Ptr((j=g.Y,((h<0||h>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+h])),(k=g.Cb,((i<0||i>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+i])),(l=g.Cr,((i<0||i>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+i])));};AQ.prototype.YCbCrAt=function(e,f){return this.$val.YCbCrAt(e,f);};AQ.Ptr.prototype.YOffset=function(e,f){var g;g=this;return(((f-g.Rect.Min.Y>>0))*g.YStride>>0)+((e-g.Rect.Min.X>>0))>>0;};AQ.prototype.YOffset=function(e,f){return this.$val.YOffset(e,f);};AQ.Ptr.prototype.COffset=function(e,f){var g,h,i,j,k,l,m,n,o,p;g=this;h=g.SubsampleRatio;if(h===1){return(((f-g.Rect.Min.Y>>0))*g.CStride>>0)+(((i=e/2,(i===i&&i!==1/0&&i!==-1/0)?i>>0:$throwRuntimeError("integer divide by zero"))-(j=g.Rect.Min.X/2,(j===j&&j!==1/0&&j!==-1/0)?j>>0:$throwRuntimeError("integer divide by zero"))>>0))>>0;}else if(h===2){return((((k=f/2,(k===k&&k!==1/0&&k!==-1/0)?k>>0:$throwRuntimeError("integer divide by zero"))-(l=g.Rect.Min.Y/2,(l===l&&l!==1/0&&l!==-1/0)?l>>0:$throwRuntimeError("integer divide by zero"))>>0))*g.CStride>>0)+(((m=e/2,(m===m&&m!==1/0&&m!==-1/0)?m>>0:$throwRuntimeError("integer divide by zero"))-(n=g.Rect.Min.X/2,(n===n&&n!==1/0&&n!==-1/0)?n>>0:$throwRuntimeError("integer divide by zero"))>>0))>>0;}else if(h===3){return((((o=f/2,(o===o&&o!==1/0&&o!==-1/0)?o>>0:$throwRuntimeError("integer divide by zero"))-(p=g.Rect.Min.Y/2,(p===p&&p!==1/0&&p!==-1/0)?p>>0:$throwRuntimeError("integer divide by zero"))>>0))*g.CStride>>0)+((e-g.Rect.Min.X>>0))>>0;}return(((f-g.Rect.Min.Y>>0))*g.CStride>>0)+((e-g.Rect.Min.X>>0))>>0;};AQ.prototype.COffset=function(e,f){return this.$val.COffset(e,f);};AQ.Ptr.prototype.SubImage=function(e){var f,g,h;f=this;e=$clone(e,Q);$copy(e,e.Intersect(f.Rect),Q);if(e.Empty()){return new AQ.Ptr(AT.nil,AT.nil,AT.nil,0,0,f.SubsampleRatio,new Q.Ptr());}g=f.YOffset(e.Min.X,e.Min.Y);h=f.COffset(e.Min.X,e.Min.Y);return new AQ.Ptr($subslice(f.Y,g),$subslice(f.Cb,h),$subslice(f.Cr,h),f.YStride,f.CStride,f.SubsampleRatio,$clone(e,Q));};AQ.prototype.SubImage=function(e){return this.$val.SubImage(e);};AQ.Ptr.prototype.Opaque=function(){var e;e=this;return true;};AQ.prototype.Opaque=function(){return this.$val.Opaque();};AR=$pkg.NewYCbCr=function(e,f){var g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x;e=$clone(e,Q);g=e.Dx();h=e.Dy();i=0;j=0;k=g;l=h;m=i;n=j;o=f;if(o===1){m=(p=((e.Max.X+1>>0))/2,(p===p&&p!==1/0&&p!==-1/0)?p>>0:$throwRuntimeError("integer divide by zero"))-(q=e.Min.X/2,(q===q&&q!==1/0&&q!==-1/0)?q>>0:$throwRuntimeError("integer divide by zero"))>>0;n=l;}else if(o===2){m=(r=((e.Max.X+1>>0))/2,(r===r&&r!==1/0&&r!==-1/0)?r>>0:$throwRuntimeError("integer divide by zero"))-(s=e.Min.X/2,(s===s&&s!==1/0&&s!==-1/0)?s>>0:$throwRuntimeError("integer divide by zero"))>>0;n=(t=((e.Max.Y+1>>0))/2,(t===t&&t!==1/0&&t!==-1/0)?t>>0:$throwRuntimeError("integer divide by zero"))-(u=e.Min.Y/2,(u===u&&u!==1/0&&u!==-1/0)?u>>0:$throwRuntimeError("integer divide by zero"))>>0;}else if(o===3){m=k;n=(v=((e.Max.Y+1>>0))/2,(v===v&&v!==1/0&&v!==-1/0)?v>>0:$throwRuntimeError("integer divide by zero"))-(w=e.Min.Y/2,(w===w&&w!==1/0&&w!==-1/0)?w>>0:$throwRuntimeError("integer divide by zero"))>>0;}else{m=k;n=l;}x=AV.make(((k*l>>0)+((2*m>>0)*n>>0)>>0));return new AQ.Ptr($subslice(x,0,(k*l>>0)),$subslice(x,((k*l>>0)+((0*m>>0)*n>>0)>>0),((k*l>>0)+((1*m>>0)*n>>0)>>0)),$subslice(x,((k*l>>0)+((1*m>>0)*n>>0)>>0),((k*l>>0)+((2*m>>0)*n>>0)>>0)),k,m,f,$clone(e,Q));};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=E.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}AS=$sliceType(F);AT=$sliceType($Uint8);AU=$arrayType($Bool,256);AV=$sliceType($Uint8);AW=$funcType([C.Reader],[T,$error],false);AX=$funcType([C.Reader],[S,$error],false);AY=$ptrType(O);AZ=$ptrType(Q);BA=$ptrType(V);BB=$ptrType(X);BC=$ptrType(Z);BD=$ptrType(AB);BE=$ptrType(AD);BF=$ptrType(AF);BG=$ptrType(AH);BH=$ptrType(AJ);BI=$ptrType(AL);BJ=$ptrType(AN);BK=$ptrType(AP);BL=$ptrType(AQ);F.init([["name","name","image",$String,""],["magic","magic","image",$String,""],["decode","decode","image",AW,""],["decodeConfig","decodeConfig","image",AX,""]]);I.init([["Peek","Peek","",$funcType([$Int],[AV,$error],false)],["Read","Read","",$funcType([AV],[$Int,$error],false)]]);O.methods=[["Add","Add","",$funcType([O],[O],false),-1],["Div","Div","",$funcType([$Int],[O],false),-1],["Eq","Eq","",$funcType([O],[$Bool],false),-1],["In","In","",$funcType([Q],[$Bool],false),-1],["Mod","Mod","",$funcType([Q],[O],false),-1],["Mul","Mul","",$funcType([$Int],[O],false),-1],["String","String","",$funcType([],[$String],false),-1],["Sub","Sub","",$funcType([O],[O],false),-1]];AY.methods=[["Add","Add","",$funcType([O],[O],false),-1],["Div","Div","",$funcType([$Int],[O],false),-1],["Eq","Eq","",$funcType([O],[$Bool],false),-1],["In","In","",$funcType([Q],[$Bool],false),-1],["Mod","Mod","",$funcType([Q],[O],false),-1],["Mul","Mul","",$funcType([$Int],[O],false),-1],["String","String","",$funcType([],[$String],false),-1],["Sub","Sub","",$funcType([O],[O],false),-1]];O.init([["X","X","",$Int,""],["Y","Y","",$Int,""]]);Q.methods=[["Add","Add","",$funcType([O],[Q],false),-1],["Canon","Canon","",$funcType([],[Q],false),-1],["Dx","Dx","",$funcType([],[$Int],false),-1],["Dy","Dy","",$funcType([],[$Int],false),-1],["Empty","Empty","",$funcType([],[$Bool],false),-1],["Eq","Eq","",$funcType([Q],[$Bool],false),-1],["In","In","",$funcType([Q],[$Bool],false),-1],["Inset","Inset","",$funcType([$Int],[Q],false),-1],["Intersect","Intersect","",$funcType([Q],[Q],false),-1],["Overlaps","Overlaps","",$funcType([Q],[$Bool],false),-1],["Size","Size","",$funcType([],[O],false),-1],["String","String","",$funcType([],[$String],false),-1],["Sub","Sub","",$funcType([O],[Q],false),-1],["Union","Union","",$funcType([Q],[Q],false),-1]];AZ.methods=[["Add","Add","",$funcType([O],[Q],false),-1],["Canon","Canon","",$funcType([],[Q],false),-1],["Dx","Dx","",$funcType([],[$Int],false),-1],["Dy","Dy","",$funcType([],[$Int],false),-1],["Empty","Empty","",$funcType([],[$Bool],false),-1],["Eq","Eq","",$funcType([Q],[$Bool],false),-1],["In","In","",$funcType([Q],[$Bool],false),-1],["Inset","Inset","",$funcType([$Int],[Q],false),-1],["Intersect","Intersect","",$funcType([Q],[Q],false),-1],["Overlaps","Overlaps","",$funcType([Q],[$Bool],false),-1],["Size","Size","",$funcType([],[O],false),-1],["String","String","",$funcType([],[$String],false),-1],["Sub","Sub","",$funcType([O],[Q],false),-1],["Union","Union","",$funcType([Q],[Q],false),-1]];Q.init([["Min","Min","",O,""],["Max","Max","",O,""]]);S.init([["ColorModel","ColorModel","",E.Model,""],["Width","Width","",$Int,""],["Height","Height","",$Int,""]]);T.init([["At","At","",$funcType([$Int,$Int],[E.Color],false)],["Bounds","Bounds","",$funcType([],[Q],false)],["ColorModel","ColorModel","",$funcType([],[E.Model],false)]]);BA.methods=[["At","At","",$funcType([$Int,$Int],[E.Color],false),-1],["Bounds","Bounds","",$funcType([],[Q],false),-1],["ColorModel","ColorModel","",$funcType([],[E.Model],false),-1],["Opaque","Opaque","",$funcType([],[$Bool],false),-1],["PixOffset","PixOffset","",$funcType([$Int,$Int],[$Int],false),-1],["RGBAAt","RGBAAt","",$funcType([$Int,$Int],[E.RGBA],false),-1],["Set","Set","",$funcType([$Int,$Int,E.Color],[],false),-1],["SetRGBA","SetRGBA","",$funcType([$Int,$Int,E.RGBA],[],false),-1],["SubImage","SubImage","",$funcType([Q],[T],false),-1]];V.init([["Pix","Pix","",AT,""],["Stride","Stride","",$Int,""],["Rect","Rect","",Q,""]]);BB.methods=[["At","At","",$funcType([$Int,$Int],[E.Color],false),-1],["Bounds","Bounds","",$funcType([],[Q],false),-1],["ColorModel","ColorModel","",$funcType([],[E.Model],false),-1],["Opaque","Opaque","",$funcType([],[$Bool],false),-1],["PixOffset","PixOffset","",$funcType([$Int,$Int],[$Int],false),-1],["RGBA64At","RGBA64At","",$funcType([$Int,$Int],[E.RGBA64],false),-1],["Set","Set","",$funcType([$Int,$Int,E.Color],[],false),-1],["SetRGBA64","SetRGBA64","",$funcType([$Int,$Int,E.RGBA64],[],false),-1],["SubImage","SubImage","",$funcType([Q],[T],false),-1]];X.init([["Pix","Pix","",AT,""],["Stride","Stride","",$Int,""],["Rect","Rect","",Q,""]]);BC.methods=[["At","At","",$funcType([$Int,$Int],[E.Color],false),-1],["Bounds","Bounds","",$funcType([],[Q],false),-1],["ColorModel","ColorModel","",$funcType([],[E.Model],false),-1],["NRGBAAt","NRGBAAt","",$funcType([$Int,$Int],[E.NRGBA],false),-1],["Opaque","Opaque","",$funcType([],[$Bool],false),-1],["PixOffset","PixOffset","",$funcType([$Int,$Int],[$Int],false),-1],["Set","Set","",$funcType([$Int,$Int,E.Color],[],false),-1],["SetNRGBA","SetNRGBA","",$funcType([$Int,$Int,E.NRGBA],[],false),-1],["SubImage","SubImage","",$funcType([Q],[T],false),-1]];Z.init([["Pix","Pix","",AT,""],["Stride","Stride","",$Int,""],["Rect","Rect","",Q,""]]);BD.methods=[["At","At","",$funcType([$Int,$Int],[E.Color],false),-1],["Bounds","Bounds","",$funcType([],[Q],false),-1],["ColorModel","ColorModel","",$funcType([],[E.Model],false),-1],["NRGBA64At","NRGBA64At","",$funcType([$Int,$Int],[E.NRGBA64],false),-1],["Opaque","Opaque","",$funcType([],[$Bool],false),-1],["PixOffset","PixOffset","",$funcType([$Int,$Int],[$Int],false),-1],["Set","Set","",$funcType([$Int,$Int,E.Color],[],false),-1],["SetNRGBA64","SetNRGBA64","",$funcType([$Int,$Int,E.NRGBA64],[],false),-1],["SubImage","SubImage","",$funcType([Q],[T],false),-1]];AB.init([["Pix","Pix","",AT,""],["Stride","Stride","",$Int,""],["Rect","Rect","",Q,""]]);BE.methods=[["AlphaAt","AlphaAt","",$funcType([$Int,$Int],[E.Alpha],false),-1],["At","At","",$funcType([$Int,$Int],[E.Color],false),-1],["Bounds","Bounds","",$funcType([],[Q],false),-1],["ColorModel","ColorModel","",$funcType([],[E.Model],false),-1],["Opaque","Opaque","",$funcType([],[$Bool],false),-1],["PixOffset","PixOffset","",$funcType([$Int,$Int],[$Int],false),-1],["Set","Set","",$funcType([$Int,$Int,E.Color],[],false),-1],["SetAlpha","SetAlpha","",$funcType([$Int,$Int,E.Alpha],[],false),-1],["SubImage","SubImage","",$funcType([Q],[T],false),-1]];AD.init([["Pix","Pix","",AT,""],["Stride","Stride","",$Int,""],["Rect","Rect","",Q,""]]);BF.methods=[["Alpha16At","Alpha16At","",$funcType([$Int,$Int],[E.Alpha16],false),-1],["At","At","",$funcType([$Int,$Int],[E.Color],false),-1],["Bounds","Bounds","",$funcType([],[Q],false),-1],["ColorModel","ColorModel","",$funcType([],[E.Model],false),-1],["Opaque","Opaque","",$funcType([],[$Bool],false),-1],["PixOffset","PixOffset","",$funcType([$Int,$Int],[$Int],false),-1],["Set","Set","",$funcType([$Int,$Int,E.Color],[],false),-1],["SetAlpha16","SetAlpha16","",$funcType([$Int,$Int,E.Alpha16],[],false),-1],["SubImage","SubImage","",$funcType([Q],[T],false),-1]];AF.init([["Pix","Pix","",AT,""],["Stride","Stride","",$Int,""],["Rect","Rect","",Q,""]]);BG.methods=[["At","At","",$funcType([$Int,$Int],[E.Color],false),-1],["Bounds","Bounds","",$funcType([],[Q],false),-1],["ColorModel","ColorModel","",$funcType([],[E.Model],false),-1],["GrayAt","GrayAt","",$funcType([$Int,$Int],[E.Gray],false),-1],["Opaque","Opaque","",$funcType([],[$Bool],false),-1],["PixOffset","PixOffset","",$funcType([$Int,$Int],[$Int],false),-1],["Set","Set","",$funcType([$Int,$Int,E.Color],[],false),-1],["SetGray","SetGray","",$funcType([$Int,$Int,E.Gray],[],false),-1],["SubImage","SubImage","",$funcType([Q],[T],false),-1]];AH.init([["Pix","Pix","",AT,""],["Stride","Stride","",$Int,""],["Rect","Rect","",Q,""]]);BH.methods=[["At","At","",$funcType([$Int,$Int],[E.Color],false),-1],["Bounds","Bounds","",$funcType([],[Q],false),-1],["ColorModel","ColorModel","",$funcType([],[E.Model],false),-1],["Gray16At","Gray16At","",$funcType([$Int,$Int],[E.Gray16],false),-1],["Opaque","Opaque","",$funcType([],[$Bool],false),-1],["PixOffset","PixOffset","",$funcType([$Int,$Int],[$Int],false),-1],["Set","Set","",$funcType([$Int,$Int,E.Color],[],false),-1],["SetGray16","SetGray16","",$funcType([$Int,$Int,E.Gray16],[],false),-1],["SubImage","SubImage","",$funcType([Q],[T],false),-1]];AJ.init([["Pix","Pix","",AT,""],["Stride","Stride","",$Int,""],["Rect","Rect","",Q,""]]);BI.methods=[["At","At","",$funcType([$Int,$Int],[E.Color],false),-1],["Bounds","Bounds","",$funcType([],[Q],false),-1],["ColorIndexAt","ColorIndexAt","",$funcType([$Int,$Int],[$Uint8],false),-1],["ColorModel","ColorModel","",$funcType([],[E.Model],false),-1],["Opaque","Opaque","",$funcType([],[$Bool],false),-1],["PixOffset","PixOffset","",$funcType([$Int,$Int],[$Int],false),-1],["Set","Set","",$funcType([$Int,$Int,E.Color],[],false),-1],["SetColorIndex","SetColorIndex","",$funcType([$Int,$Int,$Uint8],[],false),-1],["SubImage","SubImage","",$funcType([Q],[T],false),-1]];AL.init([["Pix","Pix","",AT,""],["Stride","Stride","",$Int,""],["Rect","Rect","",Q,""],["Palette","Palette","",E.Palette,""]]);BJ.methods=[["At","At","",$funcType([$Int,$Int],[E.Color],false),-1],["Bounds","Bounds","",$funcType([],[Q],false),-1],["ColorModel","ColorModel","",$funcType([],[E.Model],false),-1],["Convert","Convert","",$funcType([E.Color],[E.Color],false),-1],["Opaque","Opaque","",$funcType([],[$Bool],false),-1],["RGBA","RGBA","",$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false),-1]];AN.init([["C","C","",E.Color,""]]);AP.methods=[["String","String","",$funcType([],[$String],false),-1]];BK.methods=[["String","String","",$funcType([],[$String],false),-1]];BL.methods=[["At","At","",$funcType([$Int,$Int],[E.Color],false),-1],["Bounds","Bounds","",$funcType([],[Q],false),-1],["COffset","COffset","",$funcType([$Int,$Int],[$Int],false),-1],["ColorModel","ColorModel","",$funcType([],[E.Model],false),-1],["Opaque","Opaque","",$funcType([],[$Bool],false),-1],["SubImage","SubImage","",$funcType([Q],[T],false),-1],["YCbCrAt","YCbCrAt","",$funcType([$Int,$Int],[E.YCbCr],false),-1],["YOffset","YOffset","",$funcType([$Int,$Int],[$Int],false),-1]];AQ.init([["Y","Y","",AT,""],["Cb","Cb","",AT,""],["Cr","Cr","",AT,""],["YStride","YStride","",$Int,""],["CStride","CStride","",$Int,""],["SubsampleRatio","SubsampleRatio","",AP,""],["Rect","Rect","",Q,""]]);G=AS.nil;$pkg.ZP=new O.Ptr();$pkg.ZR=new Q.Ptr();$pkg.ErrFormat=B.New("image: unknown format");$pkg.Black=AO((a=E.Black,new a.constructor.Struct(a)));$pkg.White=AO((b=E.White,new b.constructor.Struct(b)));$pkg.Transparent=AO((c=E.Transparent,new c.constructor.Struct(c)));$pkg.Opaque=AO((d=E.Opaque,new d.constructor.Struct(d)));}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["image/draw"]=(function(){var $pkg={},A,B,X,Y,Z,AA,AB,AC,AD,AE,AF,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V;A=$packages["image"];B=$packages["image/color"];H=function(b,c,d,e,f,g){var h,i,j;h=$clone(c.Min,A.Point);$copy(c,c.Intersect(b.Bounds()),A.Rectangle);$copy(c,c.Intersect(d.Bounds().Add(h.Sub(e))),A.Rectangle);if(!($interfaceIsEqual(f,$ifaceNil))){$copy(c,c.Intersect(f.Bounds().Add(h.Sub(g))),A.Rectangle);}i=c.Min.X-h.X>>0;j=c.Min.Y-h.Y>>0;if((i===0)&&(j===0)){return;}e.X=(e).X+(i)>>0;e.Y=(e).Y+(j)>>0;g.X=(g).X+(i)>>0;g.Y=(g).Y+(j)>>0;};I=function(b,c,d,e){e=$clone(e,A.Point);c=$clone(c,A.Rectangle);return $interfaceIsEqual(b,d)&&c.Overlaps(c.Add(e.Sub(c.Min)))&&(e.Y>0;ag=w-1>>0;ah=-1;w=af;x=ag;y=ah;ai=ad-1>>0;aj=ac-1>>0;ak=-1;ac=ai;ad=aj;ae=ak;}al=$clone(new B.RGBA64.Ptr(),B.RGBA64);am=(e.Y+ac>>0)-c.Min.Y>>0;an=(g.Y+ac>>0)-c.Min.Y>>0;ao=ac;while(!((ao===ad))){ap=(e.X+w>>0)-c.Min.X>>0;aq=(g.X+w>>0)-c.Min.X>>0;ar=w;while(!((ar===x))){as=65535;if(!($interfaceIsEqual(f,$ifaceNil))){at=f.At(aq,an).RGBA();as=at[3];}if(as===0){if(h===0){}else{b.Set(ar,ao,(au=B.Transparent,new au.constructor.Struct(au)));}}else if((as===65535)&&(h===1)){b.Set(ar,ao,d.At(ap,am));}else{av=d.At(ap,am).RGBA();aw=av[0];ax=av[1];ay=av[2];az=av[3];if(h===0){ba=b.At(ar,ao).RGBA();bb=ba[0];bc=ba[1];bd=ba[2];be=ba[3];bg=65535-((bf=((((az>>>16<<16)*as>>>0)+(az<<16>>>16)*as)>>>0)/65535,(bf===bf&&bf!==1/0&&bf!==-1/0)?bf>>>0:$throwRuntimeError("integer divide by zero")))>>>0;al.R=((bh=((((((bb>>>16<<16)*bg>>>0)+(bb<<16>>>16)*bg)>>>0)+((((aw>>>16<<16)*as>>>0)+(aw<<16>>>16)*as)>>>0)>>>0))/65535,(bh===bh&&bh!==1/0&&bh!==-1/0)?bh>>>0:$throwRuntimeError("integer divide by zero"))<<16>>>16);al.G=((bi=((((((bc>>>16<<16)*bg>>>0)+(bc<<16>>>16)*bg)>>>0)+((((ax>>>16<<16)*as>>>0)+(ax<<16>>>16)*as)>>>0)>>>0))/65535,(bi===bi&&bi!==1/0&&bi!==-1/0)?bi>>>0:$throwRuntimeError("integer divide by zero"))<<16>>>16);al.B=((bj=((((((bd>>>16<<16)*bg>>>0)+(bd<<16>>>16)*bg)>>>0)+((((ay>>>16<<16)*as>>>0)+(ay<<16>>>16)*as)>>>0)>>>0))/65535,(bj===bj&&bj!==1/0&&bj!==-1/0)?bj>>>0:$throwRuntimeError("integer divide by zero"))<<16>>>16);al.A=((bk=((((((be>>>16<<16)*bg>>>0)+(be<<16>>>16)*bg)>>>0)+((((az>>>16<<16)*as>>>0)+(az<<16>>>16)*as)>>>0)>>>0))/65535,(bk===bk&&bk!==1/0&&bk!==-1/0)?bk>>>0:$throwRuntimeError("integer divide by zero"))<<16>>>16);}else{al.R=((bl=((((aw>>>16<<16)*as>>>0)+(aw<<16>>>16)*as)>>>0)/65535,(bl===bl&&bl!==1/0&&bl!==-1/0)?bl>>>0:$throwRuntimeError("integer divide by zero"))<<16>>>16);al.G=((bm=((((ax>>>16<<16)*as>>>0)+(ax<<16>>>16)*as)>>>0)/65535,(bm===bm&&bm!==1/0&&bm!==-1/0)?bm>>>0:$throwRuntimeError("integer divide by zero"))<<16>>>16);al.B=((bn=((((ay>>>16<<16)*as>>>0)+(ay<<16>>>16)*as)>>>0)/65535,(bn===bn&&bn!==1/0&&bn!==-1/0)?bn>>>0:$throwRuntimeError("integer divide by zero"))<<16>>>16);al.A=((bo=((((az>>>16<<16)*as>>>0)+(az<<16>>>16)*as)>>>0)/65535,(bo===bo&&bo!==1/0&&bo!==-1/0)?bo>>>0:$throwRuntimeError("integer divide by zero"))<<16>>>16);}b.Set(ar,ao,al);}bp=ar+y>>0;bq=ap+y>>0;br=aq+y>>0;ar=bp;ap=bq;aq=br;}bs=ao+ae>>0;bt=am+ae>>0;bu=an+ae>>0;ao=bs;am=bt;an=bu;}};L=function(b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am;c=$clone(c,A.Rectangle);e=d.RGBA();f=e[0];g=e[1];h=e[2];i=e[3];k=(j=(65535-i>>>0),(((j>>>16<<16)*257>>>0)+(j<<16>>>16)*257)>>>0);l=b.PixOffset(c.Min.X,c.Min.Y);m=l+(c.Dx()*4>>0)>>0;n=c.Min.Y;while(!((n===c.Max.Y))){o=l;while(o>0,((q<0||q>=p.$length)?$throwRuntimeError("index out of range"):p.$array[p.$offset+q]))>>>0);u=((s=b.Pix,t=o+1>>0,((t<0||t>=s.$length)?$throwRuntimeError("index out of range"):s.$array[s.$offset+t]))>>>0);x=((v=b.Pix,w=o+2>>0,((w<0||w>=v.$length)?$throwRuntimeError("index out of range"):v.$array[v.$offset+w]))>>>0);aa=((y=b.Pix,z=o+3>>0,((z<0||z>=y.$length)?$throwRuntimeError("index out of range"):y.$array[y.$offset+z]))>>>0);(ac=b.Pix,ad=o+0>>0,(ad<0||ad>=ac.$length)?$throwRuntimeError("index out of range"):ac.$array[ac.$offset+ad]=(((((ab=((((r>>>16<<16)*k>>>0)+(r<<16>>>16)*k)>>>0)/65535,(ab===ab&&ab!==1/0&&ab!==-1/0)?ab>>>0:$throwRuntimeError("integer divide by zero"))+f>>>0))>>>8>>>0)<<24>>>24));(af=b.Pix,ag=o+1>>0,(ag<0||ag>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+ag]=(((((ae=((((u>>>16<<16)*k>>>0)+(u<<16>>>16)*k)>>>0)/65535,(ae===ae&&ae!==1/0&&ae!==-1/0)?ae>>>0:$throwRuntimeError("integer divide by zero"))+g>>>0))>>>8>>>0)<<24>>>24));(ai=b.Pix,aj=o+2>>0,(aj<0||aj>=ai.$length)?$throwRuntimeError("index out of range"):ai.$array[ai.$offset+aj]=(((((ah=((((x>>>16<<16)*k>>>0)+(x<<16>>>16)*k)>>>0)/65535,(ah===ah&&ah!==1/0&&ah!==-1/0)?ah>>>0:$throwRuntimeError("integer divide by zero"))+h>>>0))>>>8>>>0)<<24>>>24));(al=b.Pix,am=o+3>>0,(am<0||am>=al.$length)?$throwRuntimeError("index out of range"):al.$array[al.$offset+am]=(((((ak=((((aa>>>16<<16)*k>>>0)+(aa<<16>>>16)*k)>>>0)/65535,(ak===ak&&ak!==1/0&&ak!==-1/0)?ak>>>0:$throwRuntimeError("integer divide by zero"))+i>>>0))>>>8>>>0)<<24>>>24));o=o+(4)>>0;}l=l+(b.Stride)>>0;m=m+(b.Stride)>>0;n=n+(1)>>0;}};M=function(b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;c=$clone(c,A.Rectangle);e=d.RGBA();f=e[0];g=e[1];h=e[2];i=e[3];j=b.PixOffset(c.Min.X,c.Min.Y);k=j+(c.Dx()*4>>0)>>0;l=j;while(l>0,(n<0||n>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+n]=((f>>>8>>>0)<<24>>>24));(o=b.Pix,p=l+1>>0,(p<0||p>=o.$length)?$throwRuntimeError("index out of range"):o.$array[o.$offset+p]=((g>>>8>>>0)<<24>>>24));(q=b.Pix,r=l+2>>0,(r<0||r>=q.$length)?$throwRuntimeError("index out of range"):q.$array[q.$offset+r]=((h>>>8>>>0)<<24>>>24));(s=b.Pix,t=l+3>>0,(t<0||t>=s.$length)?$throwRuntimeError("index out of range"):s.$array[s.$offset+t]=((i>>>8>>>0)<<24>>>24));l=l+(4)>>0;}u=$subslice(b.Pix,j,k);v=c.Min.Y+1>>0;while(v>0;k=k+(b.Stride)>>0;$copySlice($subslice(b.Pix,j,k),u);v=v+(1)>>0;}};N=function(b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh;e=$clone(e,A.Point);c=$clone(c,A.Rectangle);f=c.Dx();g=c.Dy();h=f;i=g;j=b.PixOffset(c.Min.X,c.Min.Y);k=d.PixOffset(e.X,e.Y);l=0;m=0;n=l;o=m;p=0;q=0;r=0;s=p;t=q;u=r;if(c.Min.Y>0;x=4;s=v;t=w;u=x;}else{j=j+((((i-1>>0))*b.Stride>>0))>>0;k=k+((((i-1>>0))*d.Stride>>0))>>0;n=-b.Stride;o=-d.Stride;y=((h-1>>0))*4>>0;z=-4;aa=-4;s=y;t=z;u=aa;}while(i>0){ab=$subslice(b.Pix,j);ac=$subslice(d.Pix,k);ad=s;while(!((ad===t))){ag=(ae=((af=ad+0>>0,((af<0||af>=ac.$length)?$throwRuntimeError("index out of range"):ac.$array[ac.$offset+af]))>>>0),(((ae>>>16<<16)*257>>>0)+(ae<<16>>>16)*257)>>>0);aj=(ah=((ai=ad+1>>0,((ai<0||ai>=ac.$length)?$throwRuntimeError("index out of range"):ac.$array[ac.$offset+ai]))>>>0),(((ah>>>16<<16)*257>>>0)+(ah<<16>>>16)*257)>>>0);am=(ak=((al=ad+2>>0,((al<0||al>=ac.$length)?$throwRuntimeError("index out of range"):ac.$array[ac.$offset+al]))>>>0),(((ak>>>16<<16)*257>>>0)+(ak<<16>>>16)*257)>>>0);ap=(an=((ao=ad+3>>0,((ao<0||ao>=ac.$length)?$throwRuntimeError("index out of range"):ac.$array[ac.$offset+ao]))>>>0),(((an>>>16<<16)*257>>>0)+(an<<16>>>16)*257)>>>0);ar=((aq=ad+0>>0,((aq<0||aq>=ab.$length)?$throwRuntimeError("index out of range"):ab.$array[ab.$offset+aq]))>>>0);at=((as=ad+1>>0,((as<0||as>=ab.$length)?$throwRuntimeError("index out of range"):ab.$array[ab.$offset+as]))>>>0);av=((au=ad+2>>0,((au<0||au>=ab.$length)?$throwRuntimeError("index out of range"):ab.$array[ab.$offset+au]))>>>0);ax=((aw=ad+3>>0,((aw<0||aw>=ab.$length)?$throwRuntimeError("index out of range"):ab.$array[ab.$offset+aw]))>>>0);az=(ay=(65535-ap>>>0),(((ay>>>16<<16)*257>>>0)+(ay<<16>>>16)*257)>>>0);(bb=ad+0>>0,(bb<0||bb>=ab.$length)?$throwRuntimeError("index out of range"):ab.$array[ab.$offset+bb]=(((((ba=((((ar>>>16<<16)*az>>>0)+(ar<<16>>>16)*az)>>>0)/65535,(ba===ba&&ba!==1/0&&ba!==-1/0)?ba>>>0:$throwRuntimeError("integer divide by zero"))+ag>>>0))>>>8>>>0)<<24>>>24));(bd=ad+1>>0,(bd<0||bd>=ab.$length)?$throwRuntimeError("index out of range"):ab.$array[ab.$offset+bd]=(((((bc=((((at>>>16<<16)*az>>>0)+(at<<16>>>16)*az)>>>0)/65535,(bc===bc&&bc!==1/0&&bc!==-1/0)?bc>>>0:$throwRuntimeError("integer divide by zero"))+aj>>>0))>>>8>>>0)<<24>>>24));(bf=ad+2>>0,(bf<0||bf>=ab.$length)?$throwRuntimeError("index out of range"):ab.$array[ab.$offset+bf]=(((((be=((((av>>>16<<16)*az>>>0)+(av<<16>>>16)*az)>>>0)/65535,(be===be&&be!==1/0&&be!==-1/0)?be>>>0:$throwRuntimeError("integer divide by zero"))+am>>>0))>>>8>>>0)<<24>>>24));(bh=ad+3>>0,(bh<0||bh>=ab.$length)?$throwRuntimeError("index out of range"):ab.$array[ab.$offset+bh]=(((((bg=((((ax>>>16<<16)*az>>>0)+(ax<<16>>>16)*az)>>>0)/65535,(bg===bg&&bg!==1/0&&bg!==-1/0)?bg>>>0:$throwRuntimeError("integer divide by zero"))+ap>>>0))>>>8>>>0)<<24>>>24));ad=ad+(u)>>0;}j=j+(n)>>0;k=k+(o)>>0;i=i-(1)>>0;}};O=function(b,c,d,e){var f,g,h,i,j,k,l,m,n,o;e=$clone(e,A.Point);c=$clone(c,A.Rectangle);f=4*c.Dx()>>0;g=c.Dy();h=f;i=g;j=b.PixOffset(c.Min.X,c.Min.Y);k=d.PixOffset(e.X,e.Y);l=0;m=0;n=l;o=m;if(c.Min.Y<=e.Y){n=b.Stride;o=d.Stride;}else{j=j+((((i-1>>0))*b.Stride>>0))>>0;k=k+((((i-1>>0))*d.Stride>>0))>>0;n=-b.Stride;o=-d.Stride;}while(i>0){$copySlice($subslice(b.Pix,j,(j+h>>0)),$subslice(d.Pix,k,(k+h>>0)));j=j+(n)>>0;k=k+(o)>>0;i=i-(1)>>0;}};P=function(b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb;e=$clone(e,A.Point);c=$clone(c,A.Rectangle);f=((c.Min.X-b.Rect.Min.X>>0))*4>>0;g=((c.Max.X-b.Rect.Min.X>>0))*4>>0;h=((e.X-d.Rect.Min.X>>0))*4>>0;i=c.Max.Y-b.Rect.Min.Y>>0;j=c.Min.Y-b.Rect.Min.Y>>0;k=e.Y-d.Rect.Min.Y>>0;while(!((j===i))){l=$subslice(b.Pix,(j*b.Stride>>0));m=$subslice(d.Pix,(k*d.Stride>>0));n=f;o=h;p=n;q=o;while(p>0,((s<0||s>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+s]))>>>0),(((r>>>16<<16)*257>>>0)+(r<<16>>>16)*257)>>>0);x=(u=(v=((w=q+0>>0,((w<0||w>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+w]))>>>0),(((v>>>16<<16)*t>>>0)+(v<<16>>>16)*t)>>>0)/255,(u===u&&u!==1/0&&u!==-1/0)?u>>>0:$throwRuntimeError("integer divide by zero"));ab=(y=(z=((aa=q+1>>0,((aa<0||aa>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+aa]))>>>0),(((z>>>16<<16)*t>>>0)+(z<<16>>>16)*t)>>>0)/255,(y===y&&y!==1/0&&y!==-1/0)?y>>>0:$throwRuntimeError("integer divide by zero"));af=(ac=(ad=((ae=q+2>>0,((ae<0||ae>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+ae]))>>>0),(((ad>>>16<<16)*t>>>0)+(ad<<16>>>16)*t)>>>0)/255,(ac===ac&&ac!==1/0&&ac!==-1/0)?ac>>>0:$throwRuntimeError("integer divide by zero"));ah=((ag=p+0>>0,((ag<0||ag>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+ag]))>>>0);aj=((ai=p+1>>0,((ai<0||ai>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+ai]))>>>0);al=((ak=p+2>>0,((ak<0||ak>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+ak]))>>>0);an=((am=p+3>>0,((am<0||am>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+am]))>>>0);ap=(ao=(65535-t>>>0),(((ao>>>16<<16)*257>>>0)+(ao<<16>>>16)*257)>>>0);(ar=p+0>>0,(ar<0||ar>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+ar]=(((((aq=((((ah>>>16<<16)*ap>>>0)+(ah<<16>>>16)*ap)>>>0)/65535,(aq===aq&&aq!==1/0&&aq!==-1/0)?aq>>>0:$throwRuntimeError("integer divide by zero"))+x>>>0))>>>8>>>0)<<24>>>24));(at=p+1>>0,(at<0||at>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+at]=(((((as=((((aj>>>16<<16)*ap>>>0)+(aj<<16>>>16)*ap)>>>0)/65535,(as===as&&as!==1/0&&as!==-1/0)?as>>>0:$throwRuntimeError("integer divide by zero"))+ab>>>0))>>>8>>>0)<<24>>>24));(av=p+2>>0,(av<0||av>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+av]=(((((au=((((al>>>16<<16)*ap>>>0)+(al<<16>>>16)*ap)>>>0)/65535,(au===au&&au!==1/0&&au!==-1/0)?au>>>0:$throwRuntimeError("integer divide by zero"))+af>>>0))>>>8>>>0)<<24>>>24));(ax=p+3>>0,(ax<0||ax>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+ax]=(((((aw=((((an>>>16<<16)*ap>>>0)+(an<<16>>>16)*ap)>>>0)/65535,(aw===aw&&aw!==1/0&&aw!==-1/0)?aw>>>0:$throwRuntimeError("integer divide by zero"))+t>>>0))>>>8>>>0)<<24>>>24));ay=p+4>>0;az=q+4>>0;p=ay;q=az;}ba=j+1>>0;bb=k+1>>0;j=ba;k=bb;}};Q=function(b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an;e=$clone(e,A.Point);c=$clone(c,A.Rectangle);f=((c.Min.X-b.Rect.Min.X>>0))*4>>0;g=((c.Max.X-b.Rect.Min.X>>0))*4>>0;h=((e.X-d.Rect.Min.X>>0))*4>>0;i=c.Max.Y-b.Rect.Min.Y>>0;j=c.Min.Y-b.Rect.Min.Y>>0;k=e.Y-d.Rect.Min.Y>>0;while(!((j===i))){l=$subslice(b.Pix,(j*b.Stride>>0));m=$subslice(d.Pix,(k*d.Stride>>0));n=f;o=h;p=n;q=o;while(p>0,((s<0||s>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+s]))>>>0),(((r>>>16<<16)*257>>>0)+(r<<16>>>16)*257)>>>0);x=(u=(v=((w=q+0>>0,((w<0||w>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+w]))>>>0),(((v>>>16<<16)*t>>>0)+(v<<16>>>16)*t)>>>0)/255,(u===u&&u!==1/0&&u!==-1/0)?u>>>0:$throwRuntimeError("integer divide by zero"));ab=(y=(z=((aa=q+1>>0,((aa<0||aa>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+aa]))>>>0),(((z>>>16<<16)*t>>>0)+(z<<16>>>16)*t)>>>0)/255,(y===y&&y!==1/0&&y!==-1/0)?y>>>0:$throwRuntimeError("integer divide by zero"));af=(ac=(ad=((ae=q+2>>0,((ae<0||ae>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+ae]))>>>0),(((ad>>>16<<16)*t>>>0)+(ad<<16>>>16)*t)>>>0)/255,(ac===ac&&ac!==1/0&&ac!==-1/0)?ac>>>0:$throwRuntimeError("integer divide by zero"));(ag=p+0>>0,(ag<0||ag>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+ag]=((x>>>8>>>0)<<24>>>24));(ah=p+1>>0,(ah<0||ah>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+ah]=((ab>>>8>>>0)<<24>>>24));(ai=p+2>>0,(ai<0||ai>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+ai]=((af>>>8>>>0)<<24>>>24));(aj=p+3>>0,(aj<0||aj>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+aj]=((t>>>8>>>0)<<24>>>24));ak=p+4>>0;al=q+4>>0;p=ak;q=al;}am=j+1>>0;an=k+1>>0;j=am;k=an;}};R=function(b,c,d,e){var f=false,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt;e=$clone(e,A.Point);c=$clone(c,A.Rectangle);g=((c.Min.X-b.Rect.Min.X>>0))*4>>0;h=((c.Max.X-b.Rect.Min.X>>0))*4>>0;i=c.Min.Y-b.Rect.Min.Y>>0;j=c.Max.Y-b.Rect.Min.Y>>0;k=d.SubsampleRatio;if(k===0){l=i;m=e.Y;n=l;o=m;while(!((n===j))){p=$subslice(b.Pix,(n*b.Stride>>0));q=(((o-d.Rect.Min.Y>>0))*d.YStride>>0)+((e.X-d.Rect.Min.X>>0))>>0;r=(((o-d.Rect.Min.Y>>0))*d.CStride>>0)+((e.X-d.Rect.Min.X>>0))>>0;s=g;while(!((s===h))){t=B.YCbCrToRGB((u=d.Y,((q<0||q>=u.$length)?$throwRuntimeError("index out of range"):u.$array[u.$offset+q])),(v=d.Cb,((r<0||r>=v.$length)?$throwRuntimeError("index out of range"):v.$array[v.$offset+r])),(w=d.Cr,((r<0||r>=w.$length)?$throwRuntimeError("index out of range"):w.$array[w.$offset+r])));x=t[0];y=t[1];z=t[2];(aa=s+0>>0,(aa<0||aa>=p.$length)?$throwRuntimeError("index out of range"):p.$array[p.$offset+aa]=x);(ab=s+1>>0,(ab<0||ab>=p.$length)?$throwRuntimeError("index out of range"):p.$array[p.$offset+ab]=y);(ac=s+2>>0,(ac<0||ac>=p.$length)?$throwRuntimeError("index out of range"):p.$array[p.$offset+ac]=z);(ad=s+3>>0,(ad<0||ad>=p.$length)?$throwRuntimeError("index out of range"):p.$array[p.$offset+ad]=255);ae=s+4>>0;af=q+1>>0;ag=r+1>>0;s=ae;q=af;r=ag;}ah=n+1>>0;ai=o+1>>0;n=ah;o=ai;}}else if(k===1){aj=i;ak=e.Y;al=aj;am=ak;while(!((al===j))){an=$subslice(b.Pix,(al*b.Stride>>0));ao=(((am-d.Rect.Min.Y>>0))*d.YStride>>0)+((e.X-d.Rect.Min.X>>0))>>0;aq=(((am-d.Rect.Min.Y>>0))*d.CStride>>0)-(ap=d.Rect.Min.X/2,(ap===ap&&ap!==1/0&&ap!==-1/0)?ap>>0:$throwRuntimeError("integer divide by zero"))>>0;ar=g;as=e.X;at=ar;au=as;while(!((at===h))){aw=aq+(av=au/2,(av===av&&av!==1/0&&av!==-1/0)?av>>0:$throwRuntimeError("integer divide by zero"))>>0;ax=B.YCbCrToRGB((ay=d.Y,((ao<0||ao>=ay.$length)?$throwRuntimeError("index out of range"):ay.$array[ay.$offset+ao])),(az=d.Cb,((aw<0||aw>=az.$length)?$throwRuntimeError("index out of range"):az.$array[az.$offset+aw])),(ba=d.Cr,((aw<0||aw>=ba.$length)?$throwRuntimeError("index out of range"):ba.$array[ba.$offset+aw])));bb=ax[0];bc=ax[1];bd=ax[2];(be=at+0>>0,(be<0||be>=an.$length)?$throwRuntimeError("index out of range"):an.$array[an.$offset+be]=bb);(bf=at+1>>0,(bf<0||bf>=an.$length)?$throwRuntimeError("index out of range"):an.$array[an.$offset+bf]=bc);(bg=at+2>>0,(bg<0||bg>=an.$length)?$throwRuntimeError("index out of range"):an.$array[an.$offset+bg]=bd);(bh=at+3>>0,(bh<0||bh>=an.$length)?$throwRuntimeError("index out of range"):an.$array[an.$offset+bh]=255);bi=at+4>>0;bj=au+1>>0;bk=ao+1>>0;at=bi;au=bj;ao=bk;}bl=al+1>>0;bm=am+1>>0;al=bl;am=bm;}}else if(k===2){bn=i;bo=e.Y;bp=bn;bq=bo;while(!((bp===j))){br=$subslice(b.Pix,(bp*b.Stride>>0));bs=(((bq-d.Rect.Min.Y>>0))*d.YStride>>0)+((e.X-d.Rect.Min.X>>0))>>0;bw=((((bt=bq/2,(bt===bt&&bt!==1/0&&bt!==-1/0)?bt>>0:$throwRuntimeError("integer divide by zero"))-(bu=d.Rect.Min.Y/2,(bu===bu&&bu!==1/0&&bu!==-1/0)?bu>>0:$throwRuntimeError("integer divide by zero"))>>0))*d.CStride>>0)-(bv=d.Rect.Min.X/2,(bv===bv&&bv!==1/0&&bv!==-1/0)?bv>>0:$throwRuntimeError("integer divide by zero"))>>0;bx=g;by=e.X;bz=bx;ca=by;while(!((bz===h))){cc=bw+(cb=ca/2,(cb===cb&&cb!==1/0&&cb!==-1/0)?cb>>0:$throwRuntimeError("integer divide by zero"))>>0;cd=B.YCbCrToRGB((ce=d.Y,((bs<0||bs>=ce.$length)?$throwRuntimeError("index out of range"):ce.$array[ce.$offset+bs])),(cf=d.Cb,((cc<0||cc>=cf.$length)?$throwRuntimeError("index out of range"):cf.$array[cf.$offset+cc])),(cg=d.Cr,((cc<0||cc>=cg.$length)?$throwRuntimeError("index out of range"):cg.$array[cg.$offset+cc])));ch=cd[0];ci=cd[1];cj=cd[2];(ck=bz+0>>0,(ck<0||ck>=br.$length)?$throwRuntimeError("index out of range"):br.$array[br.$offset+ck]=ch);(cl=bz+1>>0,(cl<0||cl>=br.$length)?$throwRuntimeError("index out of range"):br.$array[br.$offset+cl]=ci);(cm=bz+2>>0,(cm<0||cm>=br.$length)?$throwRuntimeError("index out of range"):br.$array[br.$offset+cm]=cj);(cn=bz+3>>0,(cn<0||cn>=br.$length)?$throwRuntimeError("index out of range"):br.$array[br.$offset+cn]=255);co=bz+4>>0;cp=ca+1>>0;cq=bs+1>>0;bz=co;ca=cp;bs=cq;}cr=bp+1>>0;cs=bq+1>>0;bp=cr;bq=cs;}}else if(k===3){ct=i;cu=e.Y;cv=ct;cw=cu;while(!((cv===j))){cx=$subslice(b.Pix,(cv*b.Stride>>0));cy=(((cw-d.Rect.Min.Y>>0))*d.YStride>>0)+((e.X-d.Rect.Min.X>>0))>>0;db=((((cz=cw/2,(cz===cz&&cz!==1/0&&cz!==-1/0)?cz>>0:$throwRuntimeError("integer divide by zero"))-(da=d.Rect.Min.Y/2,(da===da&&da!==1/0&&da!==-1/0)?da>>0:$throwRuntimeError("integer divide by zero"))>>0))*d.CStride>>0)+((e.X-d.Rect.Min.X>>0))>>0;dc=g;while(!((dc===h))){dd=B.YCbCrToRGB((de=d.Y,((cy<0||cy>=de.$length)?$throwRuntimeError("index out of range"):de.$array[de.$offset+cy])),(df=d.Cb,((db<0||db>=df.$length)?$throwRuntimeError("index out of range"):df.$array[df.$offset+db])),(dg=d.Cr,((db<0||db>=dg.$length)?$throwRuntimeError("index out of range"):dg.$array[dg.$offset+db])));dh=dd[0];di=dd[1];dj=dd[2];(dk=dc+0>>0,(dk<0||dk>=cx.$length)?$throwRuntimeError("index out of range"):cx.$array[cx.$offset+dk]=dh);(dl=dc+1>>0,(dl<0||dl>=cx.$length)?$throwRuntimeError("index out of range"):cx.$array[cx.$offset+dl]=di);(dm=dc+2>>0,(dm<0||dm>=cx.$length)?$throwRuntimeError("index out of range"):cx.$array[cx.$offset+dm]=dj);(dn=dc+3>>0,(dn<0||dn>=cx.$length)?$throwRuntimeError("index out of range"):cx.$array[cx.$offset+dn]=255);dp=dc+4>>0;dq=cy+1>>0;dr=db+1>>0;dc=dp;cy=dq;db=dr;}ds=cv+1>>0;dt=cw+1>>0;cv=ds;cw=dt;}}else{f=false;return f;}f=true;return f;};S=function(b,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be;f=$clone(f,A.Point);c=$clone(c,A.Rectangle);g=b.PixOffset(c.Min.X,c.Min.Y);h=g+(c.Dx()*4>>0)>>0;i=e.PixOffset(f.X,f.Y);j=d.RGBA();k=j[0];l=j[1];m=j[2];n=j[3];o=c.Min.Y;p=f.Y;q=o;r=p;while(!((q===c.Max.Y))){s=g;t=i;u=s;v=t;while(u=w.$length)?$throwRuntimeError("index out of range"):w.$array[w.$offset+v]))>>>0);if(x===0){y=u+4>>0;z=v+1>>0;u=y;v=z;continue;}x=(x|((x<<8>>>0)))>>>0;ac=((aa=b.Pix,ab=u+0>>0,((ab<0||ab>=aa.$length)?$throwRuntimeError("index out of range"):aa.$array[aa.$offset+ab]))>>>0);af=((ad=b.Pix,ae=u+1>>0,((ae<0||ae>=ad.$length)?$throwRuntimeError("index out of range"):ad.$array[ad.$offset+ae]))>>>0);ai=((ag=b.Pix,ah=u+2>>0,((ah<0||ah>=ag.$length)?$throwRuntimeError("index out of range"):ag.$array[ag.$offset+ah]))>>>0);al=((aj=b.Pix,ak=u+3>>0,((ak<0||ak>=aj.$length)?$throwRuntimeError("index out of range"):aj.$array[aj.$offset+ak]))>>>0);ao=(am=(65535-((an=((((n>>>16<<16)*x>>>0)+(n<<16>>>16)*x)>>>0)/65535,(an===an&&an!==1/0&&an!==-1/0)?an>>>0:$throwRuntimeError("integer divide by zero")))>>>0),(((am>>>16<<16)*257>>>0)+(am<<16>>>16)*257)>>>0);(aq=b.Pix,ar=u+0>>0,(ar<0||ar>=aq.$length)?$throwRuntimeError("index out of range"):aq.$array[aq.$offset+ar]=(((ap=((((((ac>>>16<<16)*ao>>>0)+(ac<<16>>>16)*ao)>>>0)+((((k>>>16<<16)*x>>>0)+(k<<16>>>16)*x)>>>0)>>>0))/65535,(ap===ap&&ap!==1/0&&ap!==-1/0)?ap>>>0:$throwRuntimeError("integer divide by zero"))>>>8>>>0)<<24>>>24));(at=b.Pix,au=u+1>>0,(au<0||au>=at.$length)?$throwRuntimeError("index out of range"):at.$array[at.$offset+au]=(((as=((((((af>>>16<<16)*ao>>>0)+(af<<16>>>16)*ao)>>>0)+((((l>>>16<<16)*x>>>0)+(l<<16>>>16)*x)>>>0)>>>0))/65535,(as===as&&as!==1/0&&as!==-1/0)?as>>>0:$throwRuntimeError("integer divide by zero"))>>>8>>>0)<<24>>>24));(aw=b.Pix,ax=u+2>>0,(ax<0||ax>=aw.$length)?$throwRuntimeError("index out of range"):aw.$array[aw.$offset+ax]=(((av=((((((ai>>>16<<16)*ao>>>0)+(ai<<16>>>16)*ao)>>>0)+((((m>>>16<<16)*x>>>0)+(m<<16>>>16)*x)>>>0)>>>0))/65535,(av===av&&av!==1/0&&av!==-1/0)?av>>>0:$throwRuntimeError("integer divide by zero"))>>>8>>>0)<<24>>>24));(az=b.Pix,ba=u+3>>0,(ba<0||ba>=az.$length)?$throwRuntimeError("index out of range"):az.$array[az.$offset+ba]=(((ay=((((((al>>>16<<16)*ao>>>0)+(al<<16>>>16)*ao)>>>0)+((((n>>>16<<16)*x>>>0)+(n<<16>>>16)*x)>>>0)>>>0))/65535,(ay===ay&&ay!==1/0&&ay!==-1/0)?ay>>>0:$throwRuntimeError("integer divide by zero"))>>>8>>>0)<<24>>>24));bb=u+4>>0;bc=v+1>>0;u=bb;v=bc;}g=g+(b.Stride)>>0;h=h+(b.Stride)>>0;i=i+(e.Stride)>>0;bd=q+1>>0;be=r+1>>0;q=bd;r=be;}};T=function(b,c,d,e,f,g,h){var i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn;g=$clone(g,A.Point);e=$clone(e,A.Point);c=$clone(c,A.Rectangle);i=c.Min.X;j=c.Max.X;k=1;l=i;m=j;n=k;o=c.Min.Y;p=c.Max.Y;q=1;r=o;s=p;t=q;if($interfaceIsEqual(b,d)&&c.Overlaps(c.Add(e.Sub(c.Min)))){if(e.Y>0;v=l-1>>0;w=-1;l=u;m=v;n=w;x=s-1>>0;y=r-1>>0;z=-1;r=x;s=y;t=z;}}aa=(e.Y+r>>0)-c.Min.Y>>0;ab=(g.Y+r>>0)-c.Min.Y>>0;ac=(e.X+l>>0)-c.Min.X>>0;ad=(g.X+l>>0)-c.Min.X>>0;ae=ac+((m-l>>0))>>0;af=b.PixOffset(l,r);ag=n*4>>0;ah=r;while(!((ah===s))){ai=af;aj=ac;ak=ad;al=ai;am=aj;an=ak;while(!((am===ae))){ao=65535;if(!($interfaceIsEqual(f,$ifaceNil))){ap=f.At(an,ab).RGBA();ao=ap[3];}aq=d.At(am,aa).RGBA();ar=aq[0];as=aq[1];at=aq[2];au=aq[3];if(h===0){ax=((av=b.Pix,aw=al+0>>0,((aw<0||aw>=av.$length)?$throwRuntimeError("index out of range"):av.$array[av.$offset+aw]))>>>0);ba=((ay=b.Pix,az=al+1>>0,((az<0||az>=ay.$length)?$throwRuntimeError("index out of range"):ay.$array[ay.$offset+az]))>>>0);bd=((bb=b.Pix,bc=al+2>>0,((bc<0||bc>=bb.$length)?$throwRuntimeError("index out of range"):bb.$array[bb.$offset+bc]))>>>0);bg=((be=b.Pix,bf=al+3>>0,((bf<0||bf>=be.$length)?$throwRuntimeError("index out of range"):be.$array[be.$offset+bf]))>>>0);bj=(bh=(65535-((bi=((((au>>>16<<16)*ao>>>0)+(au<<16>>>16)*ao)>>>0)/65535,(bi===bi&&bi!==1/0&&bi!==-1/0)?bi>>>0:$throwRuntimeError("integer divide by zero")))>>>0),(((bh>>>16<<16)*257>>>0)+(bh<<16>>>16)*257)>>>0);(bl=b.Pix,bm=al+0>>0,(bm<0||bm>=bl.$length)?$throwRuntimeError("index out of range"):bl.$array[bl.$offset+bm]=(((bk=((((((ax>>>16<<16)*bj>>>0)+(ax<<16>>>16)*bj)>>>0)+((((ar>>>16<<16)*ao>>>0)+(ar<<16>>>16)*ao)>>>0)>>>0))/65535,(bk===bk&&bk!==1/0&&bk!==-1/0)?bk>>>0:$throwRuntimeError("integer divide by zero"))>>>8>>>0)<<24>>>24));(bo=b.Pix,bp=al+1>>0,(bp<0||bp>=bo.$length)?$throwRuntimeError("index out of range"):bo.$array[bo.$offset+bp]=(((bn=((((((ba>>>16<<16)*bj>>>0)+(ba<<16>>>16)*bj)>>>0)+((((as>>>16<<16)*ao>>>0)+(as<<16>>>16)*ao)>>>0)>>>0))/65535,(bn===bn&&bn!==1/0&&bn!==-1/0)?bn>>>0:$throwRuntimeError("integer divide by zero"))>>>8>>>0)<<24>>>24));(br=b.Pix,bs=al+2>>0,(bs<0||bs>=br.$length)?$throwRuntimeError("index out of range"):br.$array[br.$offset+bs]=(((bq=((((((bd>>>16<<16)*bj>>>0)+(bd<<16>>>16)*bj)>>>0)+((((at>>>16<<16)*ao>>>0)+(at<<16>>>16)*ao)>>>0)>>>0))/65535,(bq===bq&&bq!==1/0&&bq!==-1/0)?bq>>>0:$throwRuntimeError("integer divide by zero"))>>>8>>>0)<<24>>>24));(bu=b.Pix,bv=al+3>>0,(bv<0||bv>=bu.$length)?$throwRuntimeError("index out of range"):bu.$array[bu.$offset+bv]=(((bt=((((((bg>>>16<<16)*bj>>>0)+(bg<<16>>>16)*bj)>>>0)+((((au>>>16<<16)*ao>>>0)+(au<<16>>>16)*ao)>>>0)>>>0))/65535,(bt===bt&&bt!==1/0&&bt!==-1/0)?bt>>>0:$throwRuntimeError("integer divide by zero"))>>>8>>>0)<<24>>>24));}else{(bx=b.Pix,by=al+0>>0,(by<0||by>=bx.$length)?$throwRuntimeError("index out of range"):bx.$array[bx.$offset+by]=(((bw=((((ar>>>16<<16)*ao>>>0)+(ar<<16>>>16)*ao)>>>0)/65535,(bw===bw&&bw!==1/0&&bw!==-1/0)?bw>>>0:$throwRuntimeError("integer divide by zero"))>>>8>>>0)<<24>>>24));(ca=b.Pix,cb=al+1>>0,(cb<0||cb>=ca.$length)?$throwRuntimeError("index out of range"):ca.$array[ca.$offset+cb]=(((bz=((((as>>>16<<16)*ao>>>0)+(as<<16>>>16)*ao)>>>0)/65535,(bz===bz&&bz!==1/0&&bz!==-1/0)?bz>>>0:$throwRuntimeError("integer divide by zero"))>>>8>>>0)<<24>>>24));(cd=b.Pix,ce=al+2>>0,(ce<0||ce>=cd.$length)?$throwRuntimeError("index out of range"):cd.$array[cd.$offset+ce]=(((cc=((((at>>>16<<16)*ao>>>0)+(at<<16>>>16)*ao)>>>0)/65535,(cc===cc&&cc!==1/0&&cc!==-1/0)?cc>>>0:$throwRuntimeError("integer divide by zero"))>>>8>>>0)<<24>>>24));(cg=b.Pix,ch=al+3>>0,(ch<0||ch>=cg.$length)?$throwRuntimeError("index out of range"):cg.$array[cg.$offset+ch]=(((cf=((((au>>>16<<16)*ao>>>0)+(au<<16>>>16)*ao)>>>0)/65535,(cf===cf&&cf!==1/0&&cf!==-1/0)?cf>>>0:$throwRuntimeError("integer divide by zero"))>>>8>>>0)<<24>>>24));}ci=al+ag>>0;cj=am+n>>0;ck=an+n>>0;al=ci;am=cj;an=ck;}af=af+((t*b.Stride>>0))>>0;cl=ah+t>>0;cm=aa+t>>0;cn=ab+t>>0;ah=cl;aa=cm;ab=cn;}};U=function(b){if(b<0){return 0;}if(b>65535){return 65535;}return b;};V=function(b,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy;e=$clone(e,A.Point);c=$clone(c,A.Rectangle);g=AE.nil;h=AF.nil;i=0;j=g;k=h;l=i;m=$assertType(b,Y,true);n=m[0];o=m[1];if(o){j=AE.make(n.Palette.$length);p=n.Palette;q=0;while(q=p.$length)?$throwRuntimeError("index out of range"):p.$array[p.$offset+q]);t=s.RGBA();u=t[0];v=t[1];w=t[2];((r<0||r>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+r])[0]=(u>>0);((r<0||r>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+r])[1]=(v>>0);((r<0||r>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+r])[2]=(w>>0);q++;}x=$subslice(n.Pix,n.PixOffset(c.Min.X,c.Min.Y));y=n.Stride;k=x;l=y;}z=AE.nil;aa=AE.nil;ab=z;ac=aa;if(f){ab=AE.make((c.Dx()+2>>0));ac=AE.make((c.Dx()+2>>0));}ad=new B.RGBA64.Ptr(0,0,0,65535);ae=0;while(!((ae===c.Dy()))){af=0;while(!((af===c.Dx()))){ag=d.At(e.X+af>>0,e.Y+ae>>0).RGBA();ah=ag[0];ai=ag[1];aj=ag[2];ak=(ah>>0);al=(ai>>0);am=(aj>>0);an=ak;ao=al;ap=am;if(f){an=U(an+(aq=(ar=af+1>>0,((ar<0||ar>=ab.$length)?$throwRuntimeError("index out of range"):ab.$array[ab.$offset+ar]))[0]/16,(aq===aq&&aq!==1/0&&aq!==-1/0)?aq>>0:$throwRuntimeError("integer divide by zero"))>>0);ao=U(ao+(as=(at=af+1>>0,((at<0||at>=ab.$length)?$throwRuntimeError("index out of range"):ab.$array[ab.$offset+at]))[1]/16,(as===as&&as!==1/0&&as!==-1/0)?as>>0:$throwRuntimeError("integer divide by zero"))>>0);ap=U(ap+(au=(av=af+1>>0,((av<0||av>=ab.$length)?$throwRuntimeError("index out of range"):ab.$array[ab.$offset+av]))[2]/16,(au===au&&au!==1/0&&au!==-1/0)?au>>0:$throwRuntimeError("integer divide by zero"))>>0);}if(!(j===AE.nil)){aw=0;ax=4294967295;ay=aw;az=ax;ba=j;bb=0;while(bb=ba.$length)?$throwRuntimeError("index out of range"):ba.$array[ba.$offset+bb]),AD);be=((an-bd[0]>>0))>>1>>0;bf=(((((be>>>16<<16)*be>>0)+(be<<16>>>16)*be)>>0)>>>0);be=((ao-bd[1]>>0))>>1>>0;bf=bf+((((((be>>>16<<16)*be>>0)+(be<<16>>>16)*be)>>0)>>>0))>>>0;be=((ap-bd[2]>>0))>>1>>0;bf=bf+((((((be>>>16<<16)*be>>0)+(be<<16>>>16)*be)>>0)>>>0))>>>0;if(bf>0)+af>>0,(bi<0||bi>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+bi]=(ay<<24>>>24));if(!f){af=af+(1)>>0;continue;}an=an-(((ay<0||ay>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+ay])[0])>>0;ao=ao-(((ay<0||ay>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+ay])[1])>>0;ap=ap-(((ay<0||ay>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+ay])[2])>>0;}else{ad.R=(an<<16>>>16);ad.G=(ao<<16>>>16);ad.B=(ap<<16>>>16);b.Set(c.Min.X+af>>0,c.Min.Y+ae>>0,ad);if(!f){af=af+(1)>>0;continue;}bj=b.At(c.Min.X+af>>0,c.Min.Y+ae>>0).RGBA();ah=bj[0];ai=bj[1];aj=bj[2];an=an-((ah>>0))>>0;ao=ao-((ai>>0))>>0;ap=ap-((aj>>0))>>0;}bk=(bm=af+0>>0,((bm<0||bm>=ac.$length)?$throwRuntimeError("index out of range"):ac.$array[ac.$offset+bm]));bl=0;(bl<0||bl>=bk.length)?$throwRuntimeError("index out of range"):bk[bl]=((bl<0||bl>=bk.length)?$throwRuntimeError("index out of range"):bk[bl])+(((((an>>>16<<16)*3>>0)+(an<<16>>>16)*3)>>0))>>0;bn=(bp=af+0>>0,((bp<0||bp>=ac.$length)?$throwRuntimeError("index out of range"):ac.$array[ac.$offset+bp]));bo=1;(bo<0||bo>=bn.length)?$throwRuntimeError("index out of range"):bn[bo]=((bo<0||bo>=bn.length)?$throwRuntimeError("index out of range"):bn[bo])+(((((ao>>>16<<16)*3>>0)+(ao<<16>>>16)*3)>>0))>>0;bq=(bs=af+0>>0,((bs<0||bs>=ac.$length)?$throwRuntimeError("index out of range"):ac.$array[ac.$offset+bs]));br=2;(br<0||br>=bq.length)?$throwRuntimeError("index out of range"):bq[br]=((br<0||br>=bq.length)?$throwRuntimeError("index out of range"):bq[br])+(((((ap>>>16<<16)*3>>0)+(ap<<16>>>16)*3)>>0))>>0;bt=(bv=af+1>>0,((bv<0||bv>=ac.$length)?$throwRuntimeError("index out of range"):ac.$array[ac.$offset+bv]));bu=0;(bu<0||bu>=bt.length)?$throwRuntimeError("index out of range"):bt[bu]=((bu<0||bu>=bt.length)?$throwRuntimeError("index out of range"):bt[bu])+(((((an>>>16<<16)*5>>0)+(an<<16>>>16)*5)>>0))>>0;bw=(by=af+1>>0,((by<0||by>=ac.$length)?$throwRuntimeError("index out of range"):ac.$array[ac.$offset+by]));bx=1;(bx<0||bx>=bw.length)?$throwRuntimeError("index out of range"):bw[bx]=((bx<0||bx>=bw.length)?$throwRuntimeError("index out of range"):bw[bx])+(((((ao>>>16<<16)*5>>0)+(ao<<16>>>16)*5)>>0))>>0;bz=(cb=af+1>>0,((cb<0||cb>=ac.$length)?$throwRuntimeError("index out of range"):ac.$array[ac.$offset+cb]));ca=2;(ca<0||ca>=bz.length)?$throwRuntimeError("index out of range"):bz[ca]=((ca<0||ca>=bz.length)?$throwRuntimeError("index out of range"):bz[ca])+(((((ap>>>16<<16)*5>>0)+(ap<<16>>>16)*5)>>0))>>0;cc=(ce=af+2>>0,((ce<0||ce>=ac.$length)?$throwRuntimeError("index out of range"):ac.$array[ac.$offset+ce]));cd=0;(cd<0||cd>=cc.length)?$throwRuntimeError("index out of range"):cc[cd]=((cd<0||cd>=cc.length)?$throwRuntimeError("index out of range"):cc[cd])+(((((an>>>16<<16)*1>>0)+(an<<16>>>16)*1)>>0))>>0;cf=(ch=af+2>>0,((ch<0||ch>=ac.$length)?$throwRuntimeError("index out of range"):ac.$array[ac.$offset+ch]));cg=1;(cg<0||cg>=cf.length)?$throwRuntimeError("index out of range"):cf[cg]=((cg<0||cg>=cf.length)?$throwRuntimeError("index out of range"):cf[cg])+(((((ao>>>16<<16)*1>>0)+(ao<<16>>>16)*1)>>0))>>0;ci=(ck=af+2>>0,((ck<0||ck>=ac.$length)?$throwRuntimeError("index out of range"):ac.$array[ac.$offset+ck]));cj=2;(cj<0||cj>=ci.length)?$throwRuntimeError("index out of range"):ci[cj]=((cj<0||cj>=ci.length)?$throwRuntimeError("index out of range"):ci[cj])+(((((ap>>>16<<16)*1>>0)+(ap<<16>>>16)*1)>>0))>>0;cl=(cn=af+2>>0,((cn<0||cn>=ab.$length)?$throwRuntimeError("index out of range"):ab.$array[ab.$offset+cn]));cm=0;(cm<0||cm>=cl.length)?$throwRuntimeError("index out of range"):cl[cm]=((cm<0||cm>=cl.length)?$throwRuntimeError("index out of range"):cl[cm])+(((((an>>>16<<16)*7>>0)+(an<<16>>>16)*7)>>0))>>0;co=(cq=af+2>>0,((cq<0||cq>=ab.$length)?$throwRuntimeError("index out of range"):ab.$array[ab.$offset+cq]));cp=1;(cp<0||cp>=co.length)?$throwRuntimeError("index out of range"):co[cp]=((cp<0||cp>=co.length)?$throwRuntimeError("index out of range"):co[cp])+(((((ao>>>16<<16)*7>>0)+(ao<<16>>>16)*7)>>0))>>0;cr=(ct=af+2>>0,((ct<0||ct>=ab.$length)?$throwRuntimeError("index out of range"):ab.$array[ab.$offset+ct]));cs=2;(cs<0||cs>=cr.length)?$throwRuntimeError("index out of range"):cr[cs]=((cs<0||cs>=cr.length)?$throwRuntimeError("index out of range"):cr[cs])+(((((ap>>>16<<16)*7>>0)+(ap<<16>>>16)*7)>>0))>>0;af=af+(1)>>0;}if(f){cu=ac;cv=ab;ab=cu;ac=cv;cw=ac;cx=0;while(cx=ac.$length)?$throwRuntimeError("index out of range"):ac.$array[ac.$offset+cy]),AD.zero(),AD);cx++;}}ae=ae+(1)>>0;}};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}X=$ptrType(A.RGBA);Y=$ptrType(A.Paletted);Z=$ptrType(A.Uniform);AA=$ptrType(A.NRGBA);AB=$ptrType(A.YCbCr);AC=$ptrType(A.Alpha);AD=$arrayType($Int32,3);AE=$sliceType(AD);AF=$sliceType($Uint8);}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["github.com/hajimehoshi/ebiten/internal/graphics"]=(function(){var $pkg={},D,A,B,C,E,F,Q,R,S,T,U,V,W,X,H,K,L,N,G,I,J,M,O,P;D=$packages["errors"];A=$packages["github.com/hajimehoshi/ebiten/internal"];B=$packages["github.com/hajimehoshi/ebiten/internal/graphics/internal/shader"];C=$packages["github.com/hajimehoshi/ebiten/internal/opengl"];E=$packages["image"];F=$packages["image/draw"];H=$pkg.Framebuffer=$newType(0,$kindStruct,"graphics.Framebuffer","Framebuffer","github.com/hajimehoshi/ebiten/internal/graphics",function(native$0_,width_,height_,flipY_){this.$val=this;this.native$0=native$0_!==undefined?native$0_:$ifaceNil;this.width=width_!==undefined?width_:0;this.height=height_!==undefined?height_:0;this.flipY=flipY_!==undefined?flipY_:false;});K=$pkg.Matrix=$newType(8,$kindInterface,"graphics.Matrix","Matrix","github.com/hajimehoshi/ebiten/internal/graphics",null);L=$pkg.TextureQuads=$newType(8,$kindInterface,"graphics.TextureQuads","TextureQuads","github.com/hajimehoshi/ebiten/internal/graphics",null);N=$pkg.Texture=$newType(0,$kindStruct,"graphics.Texture","Texture","github.com/hajimehoshi/ebiten/internal/graphics",function(native$0_,width_,height_){this.$val=this;this.native$0=native$0_!==undefined?native$0_:$ifaceNil;this.width=width_!==undefined?width_:0;this.height=height_!==undefined?height_:0;});G=function(a,b,c,d){var e,f,g,h;e=2/(b-a>>0);f=2/(d-c>>0);g=-1*(b+a>>0)/(b-a>>0);h=-1*(d+c>>0)/(d-c>>0);return $toNativeArray($kindArray,[$toNativeArray($kindFloat64,[e,0,0,g]),$toNativeArray($kindFloat64,[0,f,0,h]),$toNativeArray($kindFloat64,[0,0,1,0]),$toNativeArray($kindFloat64,[0,0,0,1])]);};I=$pkg.NewZeroFramebuffer=function(a,b,c){var d;d=new H.Ptr($ifaceNil,b,c,true);return[d,$ifaceNil];};J=$pkg.NewFramebufferFromTexture=function(a,b){var c,d,e,f,g,h;c=a.NewFramebuffer(b.native$0);d=c[0];e=c[1];if(!($interfaceIsEqual(e,$ifaceNil))){return[R.nil,e];}f=b.Size();g=f[0];h=f[1];return[new H.Ptr(d,g,h,false),$ifaceNil];};H.Ptr.prototype.Size=function(){var a=0,b=0,c,d,e;c=this;d=c.width;e=c.height;a=d;b=e;return[a,b];};H.prototype.Size=function(){return this.$val.Size();};H.Ptr.prototype.Dispose=function(a){var b;b=this;a.DeleteFramebuffer(b.native$0);};H.prototype.Dispose=function(a){return this.$val.Dispose(a);};H.Ptr.prototype.setAsViewport=function(a){var b,c,d;b=this;c=A.NextPowerOf2Int(b.width);d=A.NextPowerOf2Int(b.height);return a.SetViewport(b.native$0,c,d);};H.prototype.setAsViewport=function(a){return this.$val.setAsViewport(a);};H.Ptr.prototype.projectionMatrix=function(){var a,b,c,d,e,f,g,h;a=this;b=A.NextPowerOf2Int(a.width);c=A.NextPowerOf2Int(a.height);d=G(0,b,0,c);if(a.flipY){e=(d.nilCheck,d[1]);f=1;(f<0||f>=e.length)?$throwRuntimeError("index out of range"):e[f]=((f<0||f>=e.length)?$throwRuntimeError("index out of range"):e[f])*(-1);g=(d.nilCheck,d[1]);h=3;(h<0||h>=g.length)?$throwRuntimeError("index out of range"):g[h]=((h<0||h>=g.length)?$throwRuntimeError("index out of range"):g[h])+(a.height/A.NextPowerOf2Int(a.height)*2);}return d;};H.prototype.projectionMatrix=function(){return this.$val.projectionMatrix();};H.Ptr.prototype.Fill=function(a,b,c,d,e){var f,g;f=this;g=f.setAsViewport(a);if(!($interfaceIsEqual(g,$ifaceNil))){return g;}return a.FillFramebuffer(f.native$0,b,c,d,e);};H.prototype.Fill=function(a,b,c,d,e){return this.$val.Fill(a,b,c,d,e);};H.Ptr.prototype.DrawTexture=function(a,b,c,d,e){var f,g,h;f=this;g=f.setAsViewport(a);if(!($interfaceIsEqual(g,$ifaceNil))){return g;}h=f.projectionMatrix();return B.DrawTexture(a,b.native$0,h,c,d,e);};H.prototype.DrawTexture=function(a,b,c,d,e){return this.$val.DrawTexture(a,b,c,d,e);};M=function(a){var b,c,d,e,f,g,h,i,j,k;b=a.Bounds().Size().X;c=a.Bounds().Size().Y;d=b;e=c;f=new E.Rectangle.Ptr($clone(E.ZP,E.Point),new E.Point.Ptr(A.NextPowerOf2Int(d),A.NextPowerOf2Int(e)));g=$assertType(a,S,true);h=g[0];i=g[1];if(i&&$equal(a.Bounds(),f,E.Rectangle)){return h;}j=E.NewRGBA(f);k=new E.Rectangle.Ptr($clone(E.ZP,E.Point),$clone(a.Bounds().Size(),E.Point));F.Draw(j,k,a,E.ZP,1);return j;};N.Ptr.prototype.Size=function(){var a=0,b=0,c,d,e;c=this;d=c.width;e=c.height;a=d;b=e;return[a,b];};N.prototype.Size=function(){return this.$val.Size();};O=$pkg.NewTexture=function(a,b,c,d){var e,f,g,h,i;e=A.NextPowerOf2Int(b);f=A.NextPowerOf2Int(c);if(e<4){return[T.nil,D.New("width must be equal or more than 4.")];}if(f<4){return[T.nil,D.New("height must be equal or more than 4.")];}g=a.NewTexture(e,f,U.nil,d);h=g[0];i=g[1];if(!($interfaceIsEqual(i,$ifaceNil))){return[T.nil,i];}return[new N.Ptr(h,b,c),$ifaceNil];};P=$pkg.NewTextureFromImage=function(a,b,c){var d,e,f,g,h,i;d=$clone(b.Bounds().Size(),E.Point);if(d.X<4){return[T.nil,D.New("width must be equal or more than 4.")];}if(d.Y<4){return[T.nil,D.New("height must be equal or more than 4.")];}e=M(b);f=$clone(e.Bounds().Size(),E.Point);g=a.NewTexture(f.X,f.Y,e.Pix,c);h=g[0];i=g[1];if(!($interfaceIsEqual(i,$ifaceNil))){return[T.nil,i];}return[new N.Ptr(h,d.X,d.Y),$ifaceNil];};N.Ptr.prototype.Dispose=function(a){var b;b=this;a.DeleteTexture(b.native$0);};N.prototype.Dispose=function(a){return this.$val.Dispose(a);};N.Ptr.prototype.Pixels=function(a){var b,c,d,e,f;b=this;c=A.NextPowerOf2Int(b.width);d=A.NextPowerOf2Int(b.height);e=c;f=d;return a.TexturePixels(b.native$0,e,f);};N.prototype.Pixels=function(a){return this.$val.Pixels(a);};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=D.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=A.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=E.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}$r=F.$init($BLOCKING);$s=6;case 6:if($r&&$r.$blocking){$r=$r();}Q=$arrayType($Float64,4);R=$ptrType(H);S=$ptrType(E.RGBA);T=$ptrType(N);U=$sliceType($Uint8);V=$ptrType(C.Context);W=$arrayType(Q,4);X=$ptrType(W);R.methods=[["Dispose","Dispose","",$funcType([V],[],false),-1],["DrawTexture","DrawTexture","",$funcType([V,T,L,K,K],[$error],false),-1],["Fill","Fill","",$funcType([V,$Float64,$Float64,$Float64,$Float64],[$error],false),-1],["Size","Size","",$funcType([],[$Int,$Int],false),-1],["projectionMatrix","projectionMatrix","github.com/hajimehoshi/ebiten/internal/graphics",$funcType([],[X],false),-1],["setAsViewport","setAsViewport","github.com/hajimehoshi/ebiten/internal/graphics",$funcType([V],[$error],false),-1]];H.init([["native$0","native","github.com/hajimehoshi/ebiten/internal/graphics",C.Framebuffer,""],["width","width","github.com/hajimehoshi/ebiten/internal/graphics",$Int,""],["height","height","github.com/hajimehoshi/ebiten/internal/graphics",$Int,""],["flipY","flipY","github.com/hajimehoshi/ebiten/internal/graphics",$Bool,""]]);K.init([["Element","Element","",$funcType([$Int,$Int],[$Float64],false)]]);L.init([["Len","Len","",$funcType([],[$Int],false)],["Texture","Texture","",$funcType([$Int],[$Float32,$Float32,$Float32,$Float32],false)],["Vertex","Vertex","",$funcType([$Int],[$Float32,$Float32,$Float32,$Float32],false)]]);T.methods=[["Dispose","Dispose","",$funcType([V],[],false),-1],["Pixels","Pixels","",$funcType([V],[U,$error],false),-1],["Size","Size","",$funcType([],[$Int,$Int],false),-1]];N.init([["native$0","native","github.com/hajimehoshi/ebiten/internal/graphics",C.Texture,""],["width","width","github.com/hajimehoshi/ebiten/internal/graphics",$Int,""],["height","height","github.com/hajimehoshi/ebiten/internal/graphics",$Int,""]]);}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["github.com/hajimehoshi/ebiten/internal/ui"]=(function(){var $pkg={},A,B,C,D,Y,Z,AA,AB,AC,AD,AE,AF,E,J,L,F,K,M,N,a,b,O,P,Q,R,S,T,U,V,W,X;A=$packages["github.com/gopherjs/gopherjs/js"];B=$packages["github.com/gopherjs/webgl"];C=$packages["github.com/hajimehoshi/ebiten/internal/opengl"];D=$packages["strconv"];E=$pkg.input=$newType(0,$kindStruct,"ui.input","input","github.com/hajimehoshi/ebiten/internal/ui",function(keyPressed_,mouseButtonPressed_,cursorX_,cursorY_){this.$val=this;this.keyPressed=keyPressed_!==undefined?keyPressed_:AE.zero();this.mouseButtonPressed=mouseButtonPressed_!==undefined?mouseButtonPressed_:AE.zero();this.cursorX=cursorX_!==undefined?cursorX_:0;this.cursorY=cursorY_!==undefined?cursorY_:0;});J=$pkg.Key=$newType(4,$kindInt,"ui.Key","Key","github.com/hajimehoshi/ebiten/internal/ui",null);L=$pkg.MouseButton=$newType(4,$kindInt,"ui.MouseButton","MouseButton","github.com/hajimehoshi/ebiten/internal/ui",null);E.Ptr.prototype.keyDown=function(c){var d,e,f,g,h,i;d=this;e=(f=K[c],f!==undefined?[f.v,true]:[0,false]);g=e[0];h=e[1];if(!h){return;}(i=d.keyPressed,(g<0||g>=i.length)?$throwRuntimeError("index out of range"):i[g]=true);};E.prototype.keyDown=function(c){return this.$val.keyDown(c);};E.Ptr.prototype.keyUp=function(c){var d,e,f,g,h,i;d=this;e=(f=K[c],f!==undefined?[f.v,true]:[0,false]);g=e[0];h=e[1];if(!h){return;}(i=d.keyPressed,(g<0||g>=i.length)?$throwRuntimeError("index out of range"):i[g]=false);};E.prototype.keyUp=function(c){return this.$val.keyUp(c);};E.Ptr.prototype.mouseDown=function(c){var d,e,f;d=this;e=d.mouseButtonPressed;f=c;if(f===0){e.nilCheck,e[0]=true;}else if(f===1){e.nilCheck,e[2]=true;}else if(f===2){e.nilCheck,e[1]=true;}};E.prototype.mouseDown=function(c){return this.$val.mouseDown(c);};E.Ptr.prototype.mouseUp=function(c){var d,e,f;d=this;e=d.mouseButtonPressed;f=c;if(f===0){e.nilCheck,e[0]=false;}else if(f===1){e.nilCheck,e[2]=false;}else if(f===2){e.nilCheck,e[1]=false;}};E.prototype.mouseUp=function(c){return this.$val.mouseUp(c);};E.Ptr.prototype.mouseMove=function(c,d){var e,f,g;e=this;f=c;g=d;e.cursorX=f;e.cursorY=g;};E.prototype.mouseMove=function(c,d){return this.$val.mouseMove(c,d);};O=function(){return!!!($global.document.hidden);};P=$pkg.Use=function(c){c(N);};Q=function($b){var $this=this,$args=arguments,$r,$s=0,c,d;if($b!==$BLOCKING){$nonblockingCall();};var $f=function(){s:while(true){switch($s){case 0:c=new AA(0);$global.window.requestAnimationFrame($externalize((function(){$close(c);}),AB));d=$recv(c,$BLOCKING);$s=1;case 1:if(d&&d.$blocking){d=d();}d[0];case-1:}return;}};$f.$blocking=true;return $f;};R=$pkg.DoEvents=function($b){var $this=this,$args=arguments,$r,$s=0;if($b!==$BLOCKING){$nonblockingCall();};var $f=function(){s:while(true){switch($s){case 0:$r=Q($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}case 2:if(!(!O())){$s=3;continue;}$r=Q($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$s=2;continue;case 3:case-1:}return;}};$f.$blocking=true;return $f;};S=$pkg.Terminate=function(){};T=$pkg.IsClosed=function(){return false;};U=$pkg.SwapBuffers=function(){};V=function($b){var $this=this,$args=arguments,$r,$s=0,c,d,e,f,g,h,i,j,k;if($b!==$BLOCKING){$nonblockingCall();};var $f=function(){s:while(true){switch($s){case 0:c=new AA(0);$global.window.onload=$externalize((function(){$close(c);}),AB);d=$recv(c,$BLOCKING);$s=1;case 1:if(d&&d.$blocking){d=d();}d[0];e=$global.document;e.onkeydown=$externalize((function(f){var g;g=$parseInt(f.keyCode)>>0;if(g===8){return false;}if(112<=g&&g<=123){return false;}if((g===37)&&(g===39)){return false;}return true;}),AC);M=e.createElement($externalize("canvas",$String));M.width=16;M.height=16;e.body.appendChild(M);f=e.documentElement.style;f.height=$externalize("100%",$String);f.margin=$externalize("0",$String);f.padding=$externalize("0",$String);g=e.body.style;g.backgroundColor=$externalize("#000",$String);g.position=$externalize("relative",$String);g.height=$externalize("100%",$String);g.margin=$externalize("0",$String);g.padding=$externalize("0",$String);e.body.onclick=$externalize((function(){M.focus();}),AB);h=M.style;h.position=$externalize("absolute",$String);i=B.NewContext(M,new B.ContextAttributes.Ptr(true,false,false,false,true,false));j=i[0];k=i[1];if(!($interfaceIsEqual(k,$ifaceNil))){$panic(k);}N=C.NewContext(j);M.setAttribute($externalize("tabindex",$String),1);M.style.outline=$externalize("none",$String);M.onkeydown=$externalize((function(l){var m;m=$parseInt(l.keyCode)>>0;F.keyDown(m);return false;}),AC);M.onkeyup=$externalize((function(l){var m;m=$parseInt(l.keyCode)>>0;F.keyUp(m);return false;}),AC);M.onmousedown=$externalize((function(l){var m;m=$parseInt(l.button)>>0;F.mouseDown(m);return false;}),AC);M.onmouseup=$externalize((function(l){var m;m=$parseInt(l.button)>>0;F.mouseUp(m);return false;}),AC);M.oncontextmenu=$externalize((function(l){return false;}),AC);case-1:}return;}};$f.$blocking=true;return $f;};W=function(){var c;c=$parseInt($global.window.devicePixelRatio)>>0;if(c===0){c=1;}return c;};X=$pkg.Start=function(c,d,e,f){var g=0,h=$ifaceNil,i,j,k,l,m,n,o,p;i=$global.document;i.title=$externalize(f,$String);g=e*W()>>0;M.width=c*g>>0;M.height=d*g>>0;j=M.style;k=c*e>>0;l=d*e>>0;j.width=$externalize(D.Itoa(k)+"px",$String);j.height=$externalize(D.Itoa(l)+"px",$String);j.left=$externalize("calc(50% - "+D.Itoa((m=k/2,(m===m&&m!==1/0&&m!==-1/0)?m>>0:$throwRuntimeError("integer divide by zero")))+"px)",$String);j.top=$externalize("calc(50% - "+D.Itoa((n=l/2,(n===n&&n!==1/0&&n!==-1/0)?n>>0:$throwRuntimeError("integer divide by zero")))+"px)",$String);M.onmousemove=$externalize((function(o){var p,q,r,s,t,u,v;p=M.getBoundingClientRect();q=$parseInt(o.clientX)>>0;r=$parseInt(o.clientY)>>0;s=q;t=r;s=s-(($parseInt(p.left)>>0))>>0;t=t-(($parseInt(p.top)>>0))>>0;F.mouseMove((u=s/e,(u===u&&u!==1/0&&u!==-1/0)?u>>0:$throwRuntimeError("integer divide by zero")),(v=t/e,(v===v&&v!==1/0&&v!==-1/0)?v>>0:$throwRuntimeError("integer divide by zero")));}),AD);M.focus();o=g;p=$ifaceNil;g=o;h=p;return[g,h];};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}Y=$ptrType(C.Context);Z=$structType([]);AA=$chanType(Z,false,false);AB=$funcType([],[],false);AC=$funcType([A.Object],[$Bool],false);AD=$funcType([A.Object],[],false);AE=$arrayType($Bool,256);AF=$ptrType(E);AF.methods=[["cursorPosition","cursorPosition","github.com/hajimehoshi/ebiten/internal/ui",$funcType([],[$Int,$Int],false),-1],["isKeyPressed","isKeyPressed","github.com/hajimehoshi/ebiten/internal/ui",$funcType([J],[$Bool],false),-1],["isMouseButtonPressed","isMouseButtonPressed","github.com/hajimehoshi/ebiten/internal/ui",$funcType([L],[$Bool],false),-1],["keyDown","keyDown","github.com/hajimehoshi/ebiten/internal/ui",$funcType([$Int],[],false),-1],["keyUp","keyUp","github.com/hajimehoshi/ebiten/internal/ui",$funcType([$Int],[],false),-1],["mouseDown","mouseDown","github.com/hajimehoshi/ebiten/internal/ui",$funcType([$Int],[],false),-1],["mouseMove","mouseMove","github.com/hajimehoshi/ebiten/internal/ui",$funcType([$Int,$Int],[],false),-1],["mouseUp","mouseUp","github.com/hajimehoshi/ebiten/internal/ui",$funcType([$Int],[],false),-1]];E.init([["keyPressed","keyPressed","github.com/hajimehoshi/ebiten/internal/ui",AE,""],["mouseButtonPressed","mouseButtonPressed","github.com/hajimehoshi/ebiten/internal/ui",AE,""],["cursorX","cursorX","github.com/hajimehoshi/ebiten/internal/ui",$Int,""],["cursorY","cursorY","github.com/hajimehoshi/ebiten/internal/ui",$Int,""]]);F=new E.Ptr();M=null;N=Y.nil;K=(a=new $Map(),b=8,a[b]={k:b,v:37},b=9,a[b]={k:b,v:67},b=13,a[b]={k:b,v:44},b=16,a[b]={k:b,v:65},b=17,a[b]={k:b,v:40},b=18,a[b]={k:b,v:36},b=20,a[b]={k:b,v:38},b=27,a[b]={k:b,v:45},b=32,a[b]={k:b,v:66},b=33,a[b]={k:b,v:62},b=34,a[b]={k:b,v:61},b=35,a[b]={k:b,v:43},b=36,a[b]={k:b,v:58},b=37,a[b]={k:b,v:60},b=38,a[b]={k:b,v:68},b=39,a[b]={k:b,v:64},b=40,a[b]={k:b,v:42},b=45,a[b]={k:b,v:59},b=46,a[b]={k:b,v:41},b=48,a[b]={k:b,v:0},b=49,a[b]={k:b,v:1},b=50,a[b]={k:b,v:2},b=51,a[b]={k:b,v:3},b=52,a[b]={k:b,v:4},b=53,a[b]={k:b,v:5},b=54,a[b]={k:b,v:6},b=55,a[b]={k:b,v:7},b=56,a[b]={k:b,v:8},b=57,a[b]={k:b,v:9},b=65,a[b]={k:b,v:10},b=66,a[b]={k:b,v:11},b=67,a[b]={k:b,v:12},b=68,a[b]={k:b,v:13},b=69,a[b]={k:b,v:14},b=70,a[b]={k:b,v:15},b=71,a[b]={k:b,v:16},b=72,a[b]={k:b,v:17},b=73,a[b]={k:b,v:18},b=74,a[b]={k:b,v:19},b=75,a[b]={k:b,v:20},b=76,a[b]={k:b,v:21},b=77,a[b]={k:b,v:22},b=78,a[b]={k:b,v:23},b=79,a[b]={k:b,v:24},b=80,a[b]={k:b,v:25},b=81,a[b]={k:b,v:26},b=82,a[b]={k:b,v:27},b=83,a[b]={k:b,v:28},b=84,a[b]={k:b,v:29},b=85,a[b]={k:b,v:30},b=86,a[b]={k:b,v:31},b=87,a[b]={k:b,v:32},b=88,a[b]={k:b,v:33},b=89,a[b]={k:b,v:34},b=90,a[b]={k:b,v:35},b=112,a[b]={k:b,v:46},b=113,a[b]={k:b,v:47},b=114,a[b]={k:b,v:48},b=115,a[b]={k:b,v:49},b=116,a[b]={k:b,v:50},b=117,a[b]={k:b,v:51},b=118,a[b]={k:b,v:52},b=119,a[b]={k:b,v:53},b=120,a[b]={k:b,v:54},b=121,a[b]={k:b,v:55},b=122,a[b]={k:b,v:56},b=123,a[b]={k:b,v:57},b=188,a[b]={k:b,v:39},b=190,a[b]={k:b,v:63},a);$r=V($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["github.com/hajimehoshi/ebiten"]=(function(){var $pkg={},F,G,B,C,D,E,H,A,I,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK,BL,N,X,AE,AF,AH,AI,AL,AM,AN,AO,AP,AS,L,M,W,AA,AC,AD,AG,AJ,AK,AT;F=$packages["errors"];G=$packages["github.com/hajimehoshi/ebiten/internal"];B=$packages["github.com/hajimehoshi/ebiten/internal/graphics"];C=$packages["github.com/hajimehoshi/ebiten/internal/opengl"];D=$packages["github.com/hajimehoshi/ebiten/internal/ui"];E=$packages["image"];H=$packages["image/color"];A=$packages["math"];I=$packages["time"];N=$pkg.ColorM=$newType(0,$kindStruct,"ebiten.ColorM","ColorM","github.com/hajimehoshi/ebiten",function(initialized_,es_){this.$val=this;this.initialized=initialized_!==undefined?initialized_:false;this.es=es_!==undefined?es_:AV.zero();});X=$pkg.GeoM=$newType(0,$kindStruct,"ebiten.GeoM","GeoM","github.com/hajimehoshi/ebiten",function(initialized_,es_){this.$val=this;this.initialized=initialized_!==undefined?initialized_:false;this.es=es_!==undefined?es_:BB.zero();});AE=$pkg.graphicsContext=$newType(0,$kindStruct,"ebiten.graphicsContext","graphicsContext","github.com/hajimehoshi/ebiten",function(glContext_,screen_,defaultR_,screenScale_){this.$val=this;this.glContext=glContext_!==undefined?glContext_:BD.nil;this.screen=screen_!==undefined?screen_:AW.nil;this.defaultR=defaultR_!==undefined?defaultR_:AW.nil;this.screenScale=screenScale_!==undefined?screenScale_:0;});AF=$pkg.innerImage=$newType(0,$kindStruct,"ebiten.innerImage","innerImage","github.com/hajimehoshi/ebiten",function(framebuffer_,texture_){this.$val=this;this.framebuffer=framebuffer_!==undefined?framebuffer_:BI.nil;this.texture=texture_!==undefined?texture_:AX.nil;});AH=$pkg.imageParts=$newType(12,$kindSlice,"ebiten.imageParts","imageParts","github.com/hajimehoshi/ebiten",null);AI=$pkg.wholeImage=$newType(0,$kindStruct,"ebiten.wholeImage","wholeImage","github.com/hajimehoshi/ebiten",function(width_,height_){this.$val=this;this.width=width_!==undefined?width_:0;this.height=height_!==undefined?height_:0;});AL=$pkg.textureQuads=$newType(0,$kindStruct,"ebiten.textureQuads","textureQuads","github.com/hajimehoshi/ebiten",function(parts_,width_,height_){this.$val=this;this.parts=parts_!==undefined?parts_:$ifaceNil;this.width=width_!==undefined?width_:0;this.height=height_!==undefined?height_:0;});AM=$pkg.Image=$newType(0,$kindStruct,"ebiten.Image","Image","github.com/hajimehoshi/ebiten",function(inner_,pixels_){this.$val=this;this.inner=inner_!==undefined?inner_:AW.nil;this.pixels=pixels_!==undefined?pixels_:AZ.nil;});AN=$pkg.ImagePart=$newType(0,$kindStruct,"ebiten.ImagePart","ImagePart","github.com/hajimehoshi/ebiten",function(Dst_,Src_){this.$val=this;this.Dst=Dst_!==undefined?Dst_:new E.Rectangle.Ptr();this.Src=Src_!==undefined?Src_:new E.Rectangle.Ptr();});AO=$pkg.ImageParts=$newType(8,$kindInterface,"ebiten.ImageParts","ImageParts","github.com/hajimehoshi/ebiten",null);AP=$pkg.DrawImageOptions=$newType(0,$kindStruct,"ebiten.DrawImageOptions","DrawImageOptions","github.com/hajimehoshi/ebiten",function(ImageParts_,GeoM_,ColorM_,Parts_){this.$val=this;this.ImageParts=ImageParts_!==undefined?ImageParts_:$ifaceNil;this.GeoM=GeoM_!==undefined?GeoM_:new X.Ptr();this.ColorM=ColorM_!==undefined?ColorM_:new N.Ptr();this.Parts=Parts_!==undefined?Parts_:BE.nil;});L=function(a,b,c){var d,e,f,g;d=a.dim();if(!((d===b.dim()))){$panic(new $String("diffrent-sized matrices can't be multiplied"));}e=0;while(e<(d-1>>0)){f=0;while(f>0;}e=e+(1)>>0;}};M=function(a,b,c){var d,e,f,g,h;d=a.dim();if(!((d===b.dim()))){$panic(new $String("diffrent-sized matrices can't be multiplied"));}e=0;while(e<(d-1>>0)){f=0;while(f>0)){g=g+(a.Element(e,h)*b.Element(h,f));h=h+(1)>>0;}if(f===(d-1>>0)){g=g+(a.Element(e,f));}c.SetElement(e,f,g);f=f+(1)>>0;}e=e+(1)>>0;}};N.Ptr.prototype.dim=function(){var a;a=this;return 5;};N.prototype.dim=function(){return this.$val.dim();};N.Ptr.prototype.initialize=function(){var a;a=this;a.initialized=true;a.es[0][0]=1;a.es[1][1]=1;a.es[2][2]=1;a.es[3][3]=1;};N.prototype.initialize=function(){return this.$val.initialize();};N.Ptr.prototype.Element=function(a,b){var c,d,e;c=this;if(!c.initialized){if(a===b){return 1;}return 0;}return(d=(e=c.es,((a<0||a>=e.length)?$throwRuntimeError("index out of range"):e[a])),((b<0||b>=d.length)?$throwRuntimeError("index out of range"):d[b]));};N.prototype.Element=function(a,b){return this.$val.Element(a,b);};N.Ptr.prototype.Concat=function(a){var b,c;b=this;a=$clone(a,N);if(!b.initialized){b.initialize();}c=new N.Ptr(false,AV.zero());M(a,b,c);$copy(b,c,N);};N.prototype.Concat=function(a){return this.$val.Concat(a);};N.Ptr.prototype.Add=function(a){var b,c;b=this;a=$clone(a,N);if(!b.initialized){b.initialize();}c=new N.Ptr(false,AV.zero());L(a,b,c);$copy(b,c,N);};N.prototype.Add=function(a){return this.$val.Add(a);};N.Ptr.prototype.Scale=function(a,b,c,d){var e,f,g,h,i,j,k,l,m,n;e=this;if(!e.initialized){e.initialize();}f=0;while(f<5){g=e.es[0];h=f;(h<0||h>=g.length)?$throwRuntimeError("index out of range"):g[h]=((h<0||h>=g.length)?$throwRuntimeError("index out of range"):g[h])*(a);i=e.es[1];j=f;(j<0||j>=i.length)?$throwRuntimeError("index out of range"):i[j]=((j<0||j>=i.length)?$throwRuntimeError("index out of range"):i[j])*(b);k=e.es[2];l=f;(l<0||l>=k.length)?$throwRuntimeError("index out of range"):k[l]=((l<0||l>=k.length)?$throwRuntimeError("index out of range"):k[l])*(c);m=e.es[3];n=f;(n<0||n>=m.length)?$throwRuntimeError("index out of range"):m[n]=((n<0||n>=m.length)?$throwRuntimeError("index out of range"):m[n])*(d);f=f+(1)>>0;}};N.prototype.Scale=function(a,b,c,d){return this.$val.Scale(a,b,c,d);};N.Ptr.prototype.Translate=function(a,b,c,d){var e,f,g,h,i,j,k,l,m;e=this;if(!e.initialized){e.initialize();}f=e.es[0];g=4;(g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g]=((g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g])+(a);h=e.es[1];i=4;(i<0||i>=h.length)?$throwRuntimeError("index out of range"):h[i]=((i<0||i>=h.length)?$throwRuntimeError("index out of range"):h[i])+(b);j=e.es[2];k=4;(k<0||k>=j.length)?$throwRuntimeError("index out of range"):j[k]=((k<0||k>=j.length)?$throwRuntimeError("index out of range"):j[k])+(c);l=e.es[3];m=4;(m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m]=((m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m])+(d);};N.prototype.Translate=function(a,b,c,d){return this.$val.Translate(a,b,c,d);};N.Ptr.prototype.SetElement=function(a,b,c){var d,e,f;d=this;if(!d.initialized){d.initialize();}(e=(f=d.es,((a<0||a>=f.length)?$throwRuntimeError("index out of range"):f[a])),(b<0||b>=e.length)?$throwRuntimeError("index out of range"):e[b]=c);};N.prototype.SetElement=function(a,b,c){return this.$val.SetElement(a,b,c);};W=$pkg.NewImageFromImage=function(a,b){var c,d;c=AW.nil;d=$ifaceNil;D.Use((function(e){var f,g,h;f=AX.nil;g=B.NewTextureFromImage(e,a,AC(e,b));f=g[0];d=g[1];if(!($interfaceIsEqual(d,$ifaceNil))){return;}h=AG(e,f);c=h[0];d=h[1];}));if(!($interfaceIsEqual(d,$ifaceNil))){return[AY.nil,d];}return[new AM.Ptr(c,AZ.nil),$ifaceNil];};X.Ptr.prototype.dim=function(){var a;a=this;return 3;};X.prototype.dim=function(){return this.$val.dim();};X.Ptr.prototype.initialize=function(){var a;a=this;a.initialized=true;a.es[0][0]=1;a.es[1][1]=1;};X.prototype.initialize=function(){return this.$val.initialize();};X.Ptr.prototype.Element=function(a,b){var c,d,e;c=this;if(!c.initialized){if(a===b){return 1;}return 0;}return(d=(e=c.es,((a<0||a>=e.length)?$throwRuntimeError("index out of range"):e[a])),((b<0||b>=d.length)?$throwRuntimeError("index out of range"):d[b]));};X.prototype.Element=function(a,b){return this.$val.Element(a,b);};X.Ptr.prototype.Concat=function(a){var b,c;b=this;a=$clone(a,X);if(!b.initialized){b.initialize();}c=new X.Ptr(false,BB.zero());M(a,b,c);$copy(b,c,X);};X.prototype.Concat=function(a){return this.$val.Concat(a);};X.Ptr.prototype.Add=function(a){var b,c;b=this;a=$clone(a,X);if(!b.initialized){b.initialize();}c=new X.Ptr(false,BB.zero());L(a,b,c);$copy(b,c,X);};X.prototype.Add=function(a){return this.$val.Add(a);};X.Ptr.prototype.Scale=function(a,b){var c,d,e,f,g,h;c=this;if(!c.initialized){c.initialize();}d=0;while(d<3){e=c.es[0];f=d;(f<0||f>=e.length)?$throwRuntimeError("index out of range"):e[f]=((f<0||f>=e.length)?$throwRuntimeError("index out of range"):e[f])*(a);g=c.es[1];h=d;(h<0||h>=g.length)?$throwRuntimeError("index out of range"):g[h]=((h<0||h>=g.length)?$throwRuntimeError("index out of range"):g[h])*(b);d=d+(1)>>0;}};X.prototype.Scale=function(a,b){return this.$val.Scale(a,b);};X.Ptr.prototype.Translate=function(a,b){var c,d,e,f,g;c=this;if(!c.initialized){c.initialize();}d=c.es[0];e=2;(e<0||e>=d.length)?$throwRuntimeError("index out of range"):d[e]=((e<0||e>=d.length)?$throwRuntimeError("index out of range"):d[e])+(a);f=c.es[1];g=2;(g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g]=((g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g])+(b);};X.prototype.Translate=function(a,b){return this.$val.Translate(a,b);};X.Ptr.prototype.Rotate=function(a){var b;b=this;b.Concat(AA(a));};X.prototype.Rotate=function(a){return this.$val.Rotate(a);};X.Ptr.prototype.SetElement=function(a,b,c){var d,e,f;d=this;if(!d.initialized){d.initialize();}(e=(f=d.es,((a<0||a>=f.length)?$throwRuntimeError("index out of range"):f[a])),(b<0||b>=e.length)?$throwRuntimeError("index out of range"):e[b]=c);};X.prototype.SetElement=function(a,b,c){return this.$val.SetElement(a,b,c);};AA=$pkg.RotateGeo=function(a){var b,c,d;b=A.Sincos(a);c=b[0];d=b[1];return new X.Ptr(true,$toNativeArray($kindArray,[$toNativeArray($kindFloat64,[d,-c,0]),$toNativeArray($kindFloat64,[c,d,0])]));};AC=function(a,b){var c;c=b;if(c===0){return a.Nearest;}else if(c===1){return a.Linear;}$panic(new $String("not reach"));};AD=function(a,b,c,d){var e,f,g,h,i,j,k;e=B.NewZeroFramebuffer(a,b*d>>0,c*d>>0);f=e[0];g=e[1];if(!($interfaceIsEqual(g,$ifaceNil))){return[BC.nil,g];}h=B.NewTexture(a,b,c,a.Nearest);i=h[0];g=h[1];if(!($interfaceIsEqual(g,$ifaceNil))){return[BC.nil,g];}j=AG(a,i);k=j[0];g=j[1];if(!($interfaceIsEqual(g,$ifaceNil))){return[BC.nil,g];}return[new AE.Ptr(a,k,new AF.Ptr(f,AX.nil),d),$ifaceNil];};AE.Ptr.prototype.preUpdate=function(){var a;a=this;return a.screen.Clear(a.glContext);};AE.prototype.preUpdate=function(){return this.$val.preUpdate();};AE.Ptr.prototype.postUpdate=function(){var a,b,c,d,e;a=this;b=a.defaultR.Clear(a.glContext);if(!($interfaceIsEqual(b,$ifaceNil))){return b;}c=a.screenScale;d=new AP.Ptr($ifaceNil,new X.Ptr(),new N.Ptr(),BE.nil);d.GeoM.Scale(c,c);e=a.defaultR.drawImage(a.glContext,a.screen,d);if(!($interfaceIsEqual(e,$ifaceNil))){return e;}return $ifaceNil;};AE.prototype.postUpdate=function(){return this.$val.postUpdate();};AG=function(a,b){var c,d,e;c=B.NewFramebufferFromTexture(a,b);d=c[0];e=c[1];if(!($interfaceIsEqual(e,$ifaceNil))){return[AW.nil,e];}return[new AF.Ptr(d,b),$ifaceNil];};AF.Ptr.prototype.size=function(){var a=0,b=0,c,d;c=this;d=c.framebuffer.Size();a=d[0];b=d[1];return[a,b];};AF.prototype.size=function(){return this.$val.size();};AF.Ptr.prototype.Clear=function(a){var b,c;b=this;return b.Fill(a,(c=H.Transparent,new c.constructor.Struct(c)));};AF.prototype.Clear=function(a){return this.$val.Clear(a);};AF.Ptr.prototype.Fill=function(a,b){var c,d,e,f,g,h;c=this;d=G.RGBA(b);e=d[0];f=d[1];g=d[2];h=d[3];return c.framebuffer.Fill(a,e,f,g,h);};AF.prototype.Fill=function(a,b){return this.$val.Fill(a,b);};AH.prototype.Len=function(){var a;a=this;return a.$length;};$ptrType(AH).prototype.Len=function(){return this.$get().Len();};AH.prototype.Dst=function(a){var b=0,c=0,d=0,e=0,f,g,h,i,j,k;f=this;g=((a<0||a>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+a]).Dst;h=g.Min.X;i=g.Min.Y;j=g.Max.X;k=g.Max.Y;b=h;c=i;d=j;e=k;return[b,c,d,e];};$ptrType(AH).prototype.Dst=function(a){return this.$get().Dst(a);};AH.prototype.Src=function(a){var b=0,c=0,d=0,e=0,f,g,h,i,j,k;f=this;g=((a<0||a>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+a]).Src;h=g.Min.X;i=g.Min.Y;j=g.Max.X;k=g.Max.Y;b=h;c=i;d=j;e=k;return[b,c,d,e];};$ptrType(AH).prototype.Src=function(a){return this.$get().Src(a);};AI.Ptr.prototype.Len=function(){var a;a=this;return 1;};AI.prototype.Len=function(){return this.$val.Len();};AI.Ptr.prototype.Dst=function(a){var b=0,c=0,d=0,e=0,f,g,h,i,j;f=this;g=0;h=0;i=f.width;j=f.height;b=g;c=h;d=i;e=j;return[b,c,d,e];};AI.prototype.Dst=function(a){return this.$val.Dst(a);};AI.Ptr.prototype.Src=function(a){var b=0,c=0,d=0,e=0,f,g,h,i,j;f=this;g=0;h=0;i=f.width;j=f.height;b=g;c=h;d=i;e=j;return[b,c,d,e];};AI.prototype.Src=function(a){return this.$val.Src(a);};AF.Ptr.prototype.drawImage=function(a,b,c){var d,e,f,g,h,i,j,k,l,m;d=this;if(c===BF.nil){c=new AP.Ptr($ifaceNil,new X.Ptr(),new N.Ptr(),BE.nil);}e=c.ImageParts;if($interfaceIsEqual(e,$ifaceNil)){f=c.Parts;if(!(f===BE.nil)){e=$subslice(new AH(f.$array),f.$offset,f.$offset+f.$length);}else{g=b.size();h=g[0];i=g[1];e=new AI.Ptr(h,i);}}j=b.size();k=j[0];l=j[1];m=new AL.Ptr(e,k,l);return d.framebuffer.DrawTexture(a,b.texture,m,c.GeoM,c.ColorM);};AF.prototype.drawImage=function(a,b,c){return this.$val.drawImage(a,b,c);};AJ=function(a,b){return a/G.NextPowerOf2Int(b);};AK=function(a,b){return a/G.NextPowerOf2Int(b);};AL.Ptr.prototype.Len=function(){var a;a=this;return a.parts.Len();};AL.prototype.Len=function(){return this.$val.Len();};AL.Ptr.prototype.Vertex=function(a){var b=0,c=0,d=0,e=0,f,g,h,i,j,k,l,m,n,o;f=this;g=f.parts.Dst(a);h=g[0];i=g[1];j=g[2];k=g[3];l=h;m=i;n=j;o=k;b=l;c=m;d=n;e=o;return[b,c,d,e];};AL.prototype.Vertex=function(a){return this.$val.Vertex(a);};AL.Ptr.prototype.Texture=function(a){var b=0,c=0,d=0,e=0,f,g,h,i,j,k,l,m,n,o,p,q,r,s;f=this;g=f.parts.Src(a);h=g[0];i=g[1];j=g[2];k=g[3];l=f.width;m=f.height;n=l;o=m;p=AJ(h,n);q=AK(i,o);r=AJ(j,n);s=AK(k,o);b=p;c=q;d=r;e=s;return[b,c,d,e];};AL.prototype.Texture=function(a){return this.$val.Texture(a);};AM.Ptr.prototype.Size=function(){var a=0,b=0,c,d;c=this;d=c.inner.size();a=d[0];b=d[1];return[a,b];};AM.prototype.Size=function(){return this.$val.Size();};AM.Ptr.prototype.Clear=function(){var a=$ifaceNil,b;b=this;b.pixels=AZ.nil;D.Use((function(c){a=b.inner.Clear(c);}));return a;};AM.prototype.Clear=function(){return this.$val.Clear();};AM.Ptr.prototype.Fill=function(a){var b=$ifaceNil,c;c=this;c.pixels=AZ.nil;D.Use((function(d){b=c.inner.Fill(d,a);}));return b;};AM.prototype.Fill=function(a){return this.$val.Fill(a);};AM.Ptr.prototype.DrawImage=function(a,b){var c=$ifaceNil,d;d=this;if(d===a){c=F.New("Image.DrawImage: image should be different from the receiver");return c;}c=d.drawImage(a.inner,b);return c;};AM.prototype.DrawImage=function(a,b){return this.$val.DrawImage(a,b);};AM.Ptr.prototype.drawImage=function(a,b){var c=$ifaceNil,d;d=this;d.pixels=AZ.nil;D.Use((function(e){c=d.inner.drawImage(e,a,b);}));return c;};AM.prototype.drawImage=function(a,b){return this.$val.drawImage(a,b);};AM.Ptr.prototype.Bounds=function(){var a,b,c,d;a=this;b=a.inner.size();c=b[0];d=b[1];return E.Rect(0,0,c,d);};AM.prototype.Bounds=function(){return this.$val.Bounds();};AM.Ptr.prototype.ColorModel=function(){var a;a=this;return H.RGBAModel;};AM.prototype.ColorModel=function(){return this.$val.ColorModel();};AM.Ptr.prototype.At=function(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;c=this;if(c.pixels===AZ.nil){D.Use((function(d){var e,f;e=$ifaceNil;f=c.inner.texture.Pixels(d);c.pixels=f[0];e=f[1];if(!($interfaceIsEqual(e,$ifaceNil))){$panic(e);}}));}d=c.inner.size();e=d[0];e=G.NextPowerOf2Int(e);f=(4*a>>0)+((4*b>>0)*e>>0)>>0;g=(h=c.pixels,((f<0||f>=h.$length)?$throwRuntimeError("index out of range"):h.$array[h.$offset+f]));i=(j=c.pixels,k=f+1>>0,((k<0||k>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+k]));l=(m=c.pixels,n=f+2>>0,((n<0||n>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+n]));o=(p=c.pixels,q=f+3>>0,((q<0||q>=p.$length)?$throwRuntimeError("index out of range"):p.$array[p.$offset+q]));r=g;s=i;t=l;u=o;return(v=new H.RGBA.Ptr(r,s,t,u),new v.constructor.Struct(v));};AM.prototype.At=function(a,b){return this.$val.At(a,b);};AT=$pkg.Run=function(a,b,c,d,e,$b){var $this=this,$args=arguments,$r,$deferred=[],$err=null,$s=0,f,g,h,i,j,k,l,m,n,o,p;if($b!==$BLOCKING){$nonblockingCall();};var $f=function(){try{$deferFrames.push($deferred);s:while(true){switch($s){case 0:f=D.Start(b,c,d,e);g=f[0];h=f[1];if(!($interfaceIsEqual(h,$ifaceNil))){return h;}$deferred.push([D.Terminate,[$BLOCKING]]);i=BC.nil;D.Use((function(j){var k;k=AD(j,b,c,g);i=k[0];h=k[1];}));if(!($interfaceIsEqual(h,$ifaceNil))){return h;}j=0;k=I.Now().UnixNano();case 1:if(!(true)){$s=2;continue;}$r=D.DoEvents($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}if(D.IsClosed()){return $ifaceNil;}D.Use((function(l){h=i.preUpdate();}));if(!($interfaceIsEqual(h,$ifaceNil))){return h;}l=a(new AM.Ptr(i.screen,AZ.nil));if(!($interfaceIsEqual(l,$ifaceNil))){return l;}D.Use((function(m){h=i.postUpdate();if(!($interfaceIsEqual(h,$ifaceNil))){return;}D.SwapBuffers();}));if(!($interfaceIsEqual(h,$ifaceNil))){return h;}m=I.Now().UnixNano();j=j+(1)>>0;if((n=(o=new $Int64(m.$high-k.$high,m.$low-k.$low),new I.Duration(o.$high,o.$low)),(0>31)*4294967296))>>0);k=m;j=0;}$s=1;continue;case 2:case-1:}return;}}catch(err){$err=err;return $ifaceNil;}finally{$deferFrames.pop();if($curGoroutine.asleep&&!$jumpToDefer){throw null;}$s=-1;$callDeferred($deferred,$err);}};$f.$blocking=true;return $f;};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=F.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=G.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}$r=E.$init($BLOCKING);$s=6;case 6:if($r&&$r.$blocking){$r=$r();}$r=H.$init($BLOCKING);$s=7;case 7:if($r&&$r.$blocking){$r=$r();}$r=A.$init($BLOCKING);$s=8;case 8:if($r&&$r.$blocking){$r=$r();}$r=I.$init($BLOCKING);$s=9;case 9:if($r&&$r.$blocking){$r=$r();}AU=$arrayType($Float64,5);AV=$arrayType(AU,4);AW=$ptrType(AF);AX=$ptrType(B.Texture);AY=$ptrType(AM);AZ=$sliceType($Uint8);BA=$arrayType($Float64,3);BB=$arrayType(BA,2);BC=$ptrType(AE);BD=$ptrType(C.Context);BE=$sliceType(AN);BF=$ptrType(AP);BG=$ptrType(N);BH=$ptrType(X);BI=$ptrType(B.Framebuffer);BJ=$ptrType(AH);BK=$ptrType(AI);BL=$ptrType(AL);BG.methods=[["Add","Add","",$funcType([N],[],false),-1],["Concat","Concat","",$funcType([N],[],false),-1],["Element","Element","",$funcType([$Int,$Int],[$Float64],false),-1],["Scale","Scale","",$funcType([$Float64,$Float64,$Float64,$Float64],[],false),-1],["SetElement","SetElement","",$funcType([$Int,$Int,$Float64],[],false),-1],["Translate","Translate","",$funcType([$Float64,$Float64,$Float64,$Float64],[],false),-1],["dim","dim","github.com/hajimehoshi/ebiten",$funcType([],[$Int],false),-1],["initialize","initialize","github.com/hajimehoshi/ebiten",$funcType([],[],false),-1]];N.init([["initialized","initialized","github.com/hajimehoshi/ebiten",$Bool,""],["es","es","github.com/hajimehoshi/ebiten",AV,""]]);BH.methods=[["Add","Add","",$funcType([X],[],false),-1],["Concat","Concat","",$funcType([X],[],false),-1],["Element","Element","",$funcType([$Int,$Int],[$Float64],false),-1],["Rotate","Rotate","",$funcType([$Float64],[],false),-1],["Scale","Scale","",$funcType([$Float64,$Float64],[],false),-1],["SetElement","SetElement","",$funcType([$Int,$Int,$Float64],[],false),-1],["Translate","Translate","",$funcType([$Float64,$Float64],[],false),-1],["dim","dim","github.com/hajimehoshi/ebiten",$funcType([],[$Int],false),-1],["initialize","initialize","github.com/hajimehoshi/ebiten",$funcType([],[],false),-1]];X.init([["initialized","initialized","github.com/hajimehoshi/ebiten",$Bool,""],["es","es","github.com/hajimehoshi/ebiten",BB,""]]);BC.methods=[["dispose","dispose","github.com/hajimehoshi/ebiten",$funcType([],[],false),-1],["postUpdate","postUpdate","github.com/hajimehoshi/ebiten",$funcType([],[$error],false),-1],["preUpdate","preUpdate","github.com/hajimehoshi/ebiten",$funcType([],[$error],false),-1]];AE.init([["glContext","glContext","github.com/hajimehoshi/ebiten",BD,""],["screen","screen","github.com/hajimehoshi/ebiten",AW,""],["defaultR","defaultR","github.com/hajimehoshi/ebiten",AW,""],["screenScale","screenScale","github.com/hajimehoshi/ebiten",$Int,""]]);AW.methods=[["Clear","Clear","",$funcType([BD],[$error],false),-1],["Fill","Fill","",$funcType([BD,H.Color],[$error],false),-1],["drawImage","drawImage","github.com/hajimehoshi/ebiten",$funcType([BD,AW,BF],[$error],false),-1],["size","size","github.com/hajimehoshi/ebiten",$funcType([],[$Int,$Int],false),-1]];AF.init([["framebuffer","framebuffer","github.com/hajimehoshi/ebiten",BI,""],["texture","texture","github.com/hajimehoshi/ebiten",AX,""]]);AH.methods=[["Dst","Dst","",$funcType([$Int],[$Int,$Int,$Int,$Int],false),-1],["Len","Len","",$funcType([],[$Int],false),-1],["Src","Src","",$funcType([$Int],[$Int,$Int,$Int,$Int],false),-1]];BJ.methods=[["Dst","Dst","",$funcType([$Int],[$Int,$Int,$Int,$Int],false),-1],["Len","Len","",$funcType([],[$Int],false),-1],["Src","Src","",$funcType([$Int],[$Int,$Int,$Int,$Int],false),-1]];AH.init(AN);BK.methods=[["Dst","Dst","",$funcType([$Int],[$Int,$Int,$Int,$Int],false),-1],["Len","Len","",$funcType([],[$Int],false),-1],["Src","Src","",$funcType([$Int],[$Int,$Int,$Int,$Int],false),-1]];AI.init([["width","width","github.com/hajimehoshi/ebiten",$Int,""],["height","height","github.com/hajimehoshi/ebiten",$Int,""]]);BL.methods=[["Len","Len","",$funcType([],[$Int],false),-1],["Texture","Texture","",$funcType([$Int],[$Float32,$Float32,$Float32,$Float32],false),-1],["Vertex","Vertex","",$funcType([$Int],[$Float32,$Float32,$Float32,$Float32],false),-1]];AL.init([["parts","parts","github.com/hajimehoshi/ebiten",AO,""],["width","width","github.com/hajimehoshi/ebiten",$Int,""],["height","height","github.com/hajimehoshi/ebiten",$Int,""]]);AY.methods=[["At","At","",$funcType([$Int,$Int],[H.Color],false),-1],["Bounds","Bounds","",$funcType([],[E.Rectangle],false),-1],["Clear","Clear","",$funcType([],[$error],false),-1],["ColorModel","ColorModel","",$funcType([],[H.Model],false),-1],["DrawImage","DrawImage","",$funcType([AY,BF],[$error],false),-1],["Fill","Fill","",$funcType([H.Color],[$error],false),-1],["Size","Size","",$funcType([],[$Int,$Int],false),-1],["drawImage","drawImage","github.com/hajimehoshi/ebiten",$funcType([AW,BF],[$error],false),-1]];AM.init([["inner","inner","github.com/hajimehoshi/ebiten",AW,""],["pixels","pixels","github.com/hajimehoshi/ebiten",AZ,""]]);AN.init([["Dst","Dst","",E.Rectangle,""],["Src","Src","",E.Rectangle,""]]);AO.init([["Dst","Dst","",$funcType([$Int],[$Int,$Int,$Int,$Int],false)],["Len","Len","",$funcType([],[$Int],false)],["Src","Src","",$funcType([$Int],[$Int,$Int,$Int,$Int],false)]]);AP.init([["ImageParts","ImageParts","",AO,""],["GeoM","GeoM","",X,""],["ColorM","ColorM","",N,""],["Parts","Parts","",BE,""]]);AS=0;}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["sort"]=(function(){var $pkg={};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["compress/flate"]=(function(){var $pkg={},E,A,B,C,D,F,BK,BL,BM,BN,BU,BV,BW,BX,CB,CC,CD,CE,CF,CG,CH,CI,CJ,CK,CL,CM,CS,CT,CU,CW,Y,Z,AK,AL,AM,AO,AP,AQ,AR,Q,AF,AG,AS,AW,G,AC,AD,AE,AT,AU,AV,AX,AY;E=$packages["bufio"];A=$packages["fmt"];B=$packages["io"];C=$packages["math"];D=$packages["sort"];F=$packages["strconv"];Y=$pkg.huffmanEncoder=$newType(0,$kindStruct,"flate.huffmanEncoder","huffmanEncoder","compress/flate",function(codeBits_,code_){this.$val=this;this.codeBits=codeBits_!==undefined?codeBits_:BV.nil;this.code=code_!==undefined?code_:BX.nil;});Z=$pkg.literalNode=$newType(0,$kindStruct,"flate.literalNode","literalNode","compress/flate",function(literal_,freq_){this.$val=this;this.literal=literal_!==undefined?literal_:0;this.freq=freq_!==undefined?freq_:0;});AK=$pkg.CorruptInputError=$newType(8,$kindInt64,"flate.CorruptInputError","CorruptInputError","compress/flate",null);AL=$pkg.InternalError=$newType(8,$kindString,"flate.InternalError","InternalError","compress/flate",null);AM=$pkg.ReadError=$newType(0,$kindStruct,"flate.ReadError","ReadError","compress/flate",function(Offset_,Err_){this.$val=this;this.Offset=Offset_!==undefined?Offset_:new $Int64(0,0);this.Err=Err_!==undefined?Err_:$ifaceNil;});AO=$pkg.Resetter=$newType(8,$kindInterface,"flate.Resetter","Resetter","compress/flate",null);AP=$pkg.huffmanDecoder=$newType(0,$kindStruct,"flate.huffmanDecoder","huffmanDecoder","compress/flate",function(min_,chunks_,links_,linkMask_){this.$val=this;this.min=min_!==undefined?min_:0;this.chunks=chunks_!==undefined?chunks_:CC.zero();this.links=links_!==undefined?links_:BL.nil;this.linkMask=linkMask_!==undefined?linkMask_:0;});AQ=$pkg.Reader=$newType(8,$kindInterface,"flate.Reader","Reader","compress/flate",null);AR=$pkg.decompressor=$newType(0,$kindStruct,"flate.decompressor","decompressor","compress/flate",function(r_,roffset_,woffset_,b_,nb_,h1_,h2_,bits_,codebits_,hist_,hp_,hw_,hfull_,buf_,step_,final$15_,err_,toRead_,hl_,hd_,copyLen_,copyDist_){this.$val=this;this.r=r_!==undefined?r_:$ifaceNil;this.roffset=roffset_!==undefined?roffset_:new $Int64(0,0);this.woffset=woffset_!==undefined?woffset_:new $Int64(0,0);this.b=b_!==undefined?b_:0;this.nb=nb_!==undefined?nb_:0;this.h1=h1_!==undefined?h1_:new AP.Ptr();this.h2=h2_!==undefined?h2_:new AP.Ptr();this.bits=bits_!==undefined?bits_:CH.nil;this.codebits=codebits_!==undefined?codebits_:CJ.nil;this.hist=hist_!==undefined?hist_:CL.nil;this.hp=hp_!==undefined?hp_:0;this.hw=hw_!==undefined?hw_:0;this.hfull=hfull_!==undefined?hfull_:false;this.buf=buf_!==undefined?buf_:CM.zero();this.step=step_!==undefined?step_:$throwNilPointerError;this.final$15=final$15_!==undefined?final$15_:false;this.err=err_!==undefined?err_:$ifaceNil;this.toRead=toRead_!==undefined?toRead_:BM.nil;this.hl=hl_!==undefined?hl_:CF.nil;this.hd=hd_!==undefined?hd_:CF.nil;this.copyLen=copyLen_!==undefined?copyLen_:0;this.copyDist=copyDist_!==undefined?copyDist_:0;});G=function(a,b,c,d){var e;if(b<=c){$copySlice($subslice(a,b,(b+d>>0)),$subslice(a,c,(c+d>>0)));return;}while(true){if(b>=(c+d>>0)){$copySlice($subslice(a,b,(b+d>>0)),$subslice(a,c,(c+d>>0)));return;}e=b-c>>0;$copySlice($subslice(a,b,(b+e>>0)),$subslice(a,c,(c+e>>0)));d=d-(e)>>0;b=b+(e)>>0;}};AC=function(a){return new Y.Ptr(BV.make(a),BX.make(a));};AD=function(){var a,b,c,d,e,f;a=AC(286);b=a.codeBits;c=a.code;d=0;d=0;while(d<286){e=0;f=0;switch(0){default:if(d<144){e=d+48<<16>>>16;f=8;break;}else if(d<256){e=(d+400<<16>>>16)-144<<16>>>16;f=9;break;}else if(d<280){e=d-256<<16>>>16;f=7;break;}else{e=(d+192<<16>>>16)-280<<16>>>16;f=8;}}(d<0||d>=b.$length)?$throwRuntimeError("index out of range"):b.$array[b.$offset+d]=f;(d<0||d>=c.$length)?$throwRuntimeError("index out of range"):c.$array[c.$offset+d]=AY(e,f);d=d+(1)<<16>>>16;}return a;};AE=function(){var a,b,c,d;a=AC(30);b=a.codeBits;c=a.code;d=0;while(d<30){(d<0||d>=b.$length)?$throwRuntimeError("index out of range"):b.$array[b.$offset+d]=5;(d<0||d>=c.$length)?$throwRuntimeError("index out of range"):c.$array[c.$offset+d]=AY(d,5);d=d+(1)<<16>>>16;}return a;};AK.prototype.Error=function(){var a;a=this;return"flate: corrupt input before offset "+F.FormatInt(new $Int64(a.$high,a.$low),10);};$ptrType(AK).prototype.Error=function(){return this.$get().Error();};AL.prototype.Error=function(){var a;a=this.$val!==undefined?this.$val:this;return"flate: internal error: "+a;};$ptrType(AL).prototype.Error=function(){return new AL(this.$get()).Error();};AM.Ptr.prototype.Error=function(){var a;a=this;return"flate: read error at offset "+F.FormatInt(a.Offset,10)+": "+a.Err.Error();};AM.prototype.Error=function(){return this.$val.Error();};AP.Ptr.prototype.init=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax;b=this;if(!((b.min===0))){$copy(b,new AP.Ptr(0,CC.zero(),BL.nil,0),AP);}c=$clone(CD.zero(),CD);d=0;e=0;f=d;g=e;h=a;i=0;while(i=h.$length)?$throwRuntimeError("index out of range"):h.$array[h.$offset+i]);if(j===0){i++;continue;}if((f===0)||jg){g=j;}k=c;l=j;(l<0||l>=k.length)?$throwRuntimeError("index out of range"):k[l]=((l<0||l>=k.length)?$throwRuntimeError("index out of range"):k[l])+(1)>>0;i++;}if(g===0){return false;}b.min=f;m=0;n=0;if(g>9){m=(g>>>0)-9>>>0;n=(o=m,o<32?(1<>0;b.linkMask=((n-1>>0)>>>0);}p=0;q=$clone(CD.zero(),CD);r=f;while(r<=g){if(r===10){s=p>>1>>0;if(512>0));t=(s>>>0);while(t<512){w=((u=t>>>8>>>0,((u<0||u>=AW.length)?$throwRuntimeError("index out of range"):AW[u]))>>0)|(((v=(t&255)>>>0,((v<0||v>=AW.length)?$throwRuntimeError("index out of range"):AW[v]))>>0)<<8>>0);w=(w>>$min((7),31))>>0;x=t-(s>>>0)>>>0;(y=b.chunks,(w<0||w>=y.length)?$throwRuntimeError("index out of range"):y[w]=(((x<<4>>>0)+(r>>>0)>>>0)>>>0));(aa=b.links,(x<0||x>=aa.$length)?$throwRuntimeError("index out of range"):aa.$array[aa.$offset+x]=BK.make(((z=m,z<32?(1<>0)));t=t+(1)>>>0;}}ab=((r<0||r>=c.length)?$throwRuntimeError("index out of range"):c[r]);(r<0||r>=q.length)?$throwRuntimeError("index out of range"):q[r]=p;p=p+(ab)>>0;p=(ac=(1),ac<32?(p<>0;r=r+(1)>>0;}ad=a;ae=0;while(ae=ad.$length)?$throwRuntimeError("index out of range"):ad.$array[ad.$offset+ae]);if(ag===0){ae++;continue;}ah=((ag<0||ag>=q.length)?$throwRuntimeError("index out of range"):q[ag]);ai=q;aj=ag;(aj<0||aj>=ai.length)?$throwRuntimeError("index out of range"):ai[aj]=((aj<0||aj>=ai.length)?$throwRuntimeError("index out of range"):ai[aj])+(1)>>0;ak=(((af<<4>>0)|ag)>>>0);an=((al=ah>>8>>0,((al<0||al>=AW.length)?$throwRuntimeError("index out of range"):AW[al]))>>0)|(((am=ah&255,((am<0||am>=AW.length)?$throwRuntimeError("index out of range"):AW[am]))>>0)<<8>>0);an=(an>>$min((((16-ag>>0)>>>0)),31))>>0;if(ag<=9){ao=an;while(ao<512){(ap=b.chunks,(ao<0||ao>=ap.length)?$throwRuntimeError("index out of range"):ap[ao]=ak);ao=ao+(((aq=(ag>>>0),aq<32?(1<>0))>>0;}}else{at=(ar=b.chunks,as=an&511,((as<0||as>=ar.length)?$throwRuntimeError("index out of range"):ar[as]))>>>4>>>0;if(at>=(b.links.$length>>>0)){return false;}av=(au=b.links,((at<0||at>=au.$length)?$throwRuntimeError("index out of range"):au.$array[au.$offset+at]));an=(an>>$min((9),31))>>0;aw=an;while(aw=av.$length)?$throwRuntimeError("index out of range"):av.$array[av.$offset+aw]=ak;aw=aw+(((ax=((ag-9>>0)>>>0),ax<32?(1<>0))>>0;}}ae++;}return true;};AP.prototype.init=function(a){return this.$val.init(a);};AR.Ptr.prototype.nextBlock=function(){var a,b,c,d,e,f;a=this;if(a.final$15){if(!((a.hw===a.hp))){a.flush($methodExpr(CE.prototype.nextBlock));return;}a.err=B.EOF;return;}while(a.nb<3){a.err=a.moreBits();if(!($interfaceIsEqual(a.err,$ifaceNil))){return;}}a.final$15=((a.b&1)>>>0)===1;a.b=(b=(1),b<32?(a.b>>>b):0)>>>0;c=(a.b&3)>>>0;a.b=(d=(2),d<32?(a.b>>>d):0)>>>0;a.nb=a.nb-(3)>>>0;e=c;switch(0){default:if(e===0){a.dataBlock();}else if(e===1){a.hl=Q;a.hd=CF.nil;a.huffmanBlock();}else if(e===2){a.err=a.readHuffman();if(!($interfaceIsEqual(a.err,$ifaceNil))){break;}a.hl=a.h1;a.hd=a.h2;a.huffmanBlock();}else{a.err=(f=a.roffset,new AK(f.$high,f.$low));}}};AR.prototype.nextBlock=function(){return this.$val.nextBlock();};AR.Ptr.prototype.Read=function(a){var b,c;b=this;while(true){if(b.toRead.$length>0){c=$copySlice(a,b.toRead);b.toRead=$subslice(b.toRead,c);return[c,$ifaceNil];}if(!($interfaceIsEqual(b.err,$ifaceNil))){return[0,b.err];}b.step(b);}};AR.prototype.Read=function(a){return this.$val.Read(a);};AR.Ptr.prototype.Close=function(){var a;a=this;if($interfaceIsEqual(a.err,B.EOF)){return $ifaceNil;}return a.err;};AR.prototype.Close=function(){return this.$val.Close();};AR.Ptr.prototype.readHuffman=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an;a=this;while(a.nb<14){b=a.moreBits();if(!($interfaceIsEqual(b,$ifaceNil))){return b;}}c=(((a.b&31)>>>0)>>0)+257>>0;if(c>286){return(d=a.roffset,new AK(d.$high,d.$low));}a.b=(e=(5),e<32?(a.b>>>e):0)>>>0;f=(((a.b&31)>>>0)>>0)+1>>0;a.b=(g=(5),g<32?(a.b>>>g):0)>>>0;h=(((a.b&15)>>>0)>>0)+4>>0;a.b=(i=(4),i<32?(a.b>>>i):0)>>>0;a.nb=a.nb-(14)>>>0;j=0;while(j=AS.length)?$throwRuntimeError("index out of range"):AS[j]),l.nilCheck,(m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m]=(((a.b&7)>>>0)>>0));a.b=(n=(3),n<32?(a.b>>>n):0)>>>0;a.nb=a.nb-(3)>>>0;j=j+(1)>>0;}o=h;while(o<19){(p=a.codebits,q=((o<0||o>=AS.length)?$throwRuntimeError("index out of range"):AS[o]),p.nilCheck,(q<0||q>=p.length)?$throwRuntimeError("index out of range"):p[q]=0);o=o+(1)>>0;}if(!a.h1.init($subslice(new BN(a.codebits),0))){return(r=a.roffset,new AK(r.$high,r.$low));}s=0;t=c+f>>0;u=s;v=t;while(u=z.length)?$throwRuntimeError("index out of range"):z[u]=x);u=u+(1)>>0;continue;}aa=0;ab=0;ac=0;ad=x;if(ad===16){aa=3;ab=2;if(u===0){return(ae=a.roffset,new AK(ae.$high,ae.$low));}ac=(af=a.bits,ag=u-1>>0,(af.nilCheck,((ag<0||ag>=af.length)?$throwRuntimeError("index out of range"):af[ag])));}else if(ad===17){aa=3;ab=3;ac=0;}else if(ad===18){aa=11;ab=7;ac=0;}else{return new AL("unexpected length code");}while(a.nb>>0)-1>>>0))>>>0)>>0))>>0;a.b=(aj=(ab),aj<32?(a.b>>>aj):0)>>>0;a.nb=a.nb-(ab)>>>0;if((u+aa>>0)>v){return(ak=a.roffset,new AK(ak.$high,ak.$low));}al=0;while(al=am.length)?$throwRuntimeError("index out of range"):am[u]=ac);u=u+(1)>>0;al=al+(1)>>0;}}if(!a.h1.init($subslice(new BN(a.bits),0,c))||!a.h2.init($subslice(new BN(a.bits),c,(c+f>>0)))){return(an=a.roffset,new AK(an.$high,an.$low));}return $ifaceNil;};AR.prototype.readHuffman=function(){return this.$val.readHuffman();};AR.Ptr.prototype.huffmanBlock=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x;a=this;while(true){b=a.huffSym(a.hl);c=b[0];d=b[1];if(!($interfaceIsEqual(d,$ifaceNil))){a.err=d;return;}e=0;f=0;if(c<256){(g=a.hist,h=a.hp,g.nilCheck,(h<0||h>=g.length)?$throwRuntimeError("index out of range"):g[h]=(c<<24>>>24));a.hp=a.hp+(1)>>0;if(a.hp===32768){a.flush($methodExpr(CE.prototype.huffmanBlock));return;}continue;}else if(c===256){a.step=$methodExpr(CE.prototype.nextBlock);return;}else if(c<265){f=c-254>>0;e=0;}else if(c<269){f=(c*2>>0)-519>>0;e=1;}else if(c<273){f=(c*4>>0)-1057>>0;e=2;}else if(c<277){f=(c*8>>0)-2149>>0;e=3;}else if(c<281){f=(c*16>>0)-4365>>0;e=4;}else if(c<285){f=(c*32>>0)-8861>>0;e=5;}else{f=258;e=0;}if(e>0){while(a.nb>>0)-1>>>0))>>>0)>>0))>>0;a.b=(j=(e),j<32?(a.b>>>j):0)>>>0;a.nb=a.nb-(e)>>>0;}k=0;if(a.hd===CF.nil){while(a.nb<5){d=a.moreBits();if(!($interfaceIsEqual(d,$ifaceNil))){a.err=d;return;}}k=((l=(((a.b&31)>>>0))<<3>>>0,((l<0||l>=AW.length)?$throwRuntimeError("index out of range"):AW[l]))>>0);a.b=(m=(5),m<32?(a.b>>>m):0)>>>0;a.nb=a.nb-(5)>>>0;}else{n=a.huffSym(a.hd);k=n[0];d=n[1];if(!($interfaceIsEqual(d,$ifaceNil))){a.err=d;return;}}if(k<4){k=k+(1)>>0;}else if(k>=30){a.err=(o=a.roffset,new AK(o.$high,o.$low));return;}else{p=((k-2>>0)>>>0)>>>1>>>0;r=(q=p,q<32?(((k&1))<>0;while(a.nb>>0)-1>>>0))>>>0)>>0));a.b=(t=(p),t<32?(a.b>>>t):0)>>>0;a.nb=a.nb-(p)>>>0;k=(((u=((p+1>>>0)),u<32?(1<>0)+1>>0)+r>>0;}if(k>32768){a.err=new AL("bad history distance");return;}if(!a.hfull&&k>a.hp){a.err=(v=a.roffset,new AK(v.$high,v.$low));return;}w=f;x=k;a.copyLen=w;a.copyDist=x;if(a.copyHist()){return;}}};AR.prototype.huffmanBlock=function(){return this.$val.huffmanBlock();};AR.Ptr.prototype.copyHist=function(){var a,b,c,d,e;a=this;b=a.hp-a.copyDist>>0;if(b<0){b=b+(32768)>>0;}while(a.copyLen>0){c=a.copyLen;d=32768-a.hp>>0;if(c>d){c=d;}e=32768-b>>0;if(c>e){c=e;}G(new BM(a.hist),a.hp,b,c);b=b+(c)>>0;a.hp=a.hp+(c)>>0;a.copyLen=a.copyLen-(c)>>0;if(a.hp===32768){a.flush($methodExpr(CE.prototype.copyHuff));return true;}if(b===32768){b=0;}}return false;};AR.prototype.copyHist=function(){return this.$val.copyHist();};AR.Ptr.prototype.copyHuff=function(){var a;a=this;if(a.copyHist()){return;}a.huffmanBlock();};AR.prototype.copyHuff=function(){return this.$val.copyHuff();};AR.Ptr.prototype.dataBlock=function(){var a,b,c,d,e,f,g,h,i;a=this;a.nb=0;a.b=0;b=B.ReadFull(a.r,$subslice(new BM(a.buf),0,4));c=b[0];d=b[1];a.roffset=(e=a.roffset,f=new $Int64(0,c),new $Int64(e.$high+f.$high,e.$low+f.$low));if(!($interfaceIsEqual(d,$ifaceNil))){a.err=new AM.Ptr(a.roffset,d);return;}g=(a.buf[0]>>0)|((a.buf[1]>>0)<<8>>0);h=(a.buf[2]>>0)|((a.buf[3]>>0)<<8>>0);if(!(((h<<16>>>16)===((~g>>0)<<16>>>16)))){a.err=(i=a.roffset,new AK(i.$high,i.$low));return;}if(g===0){a.flush($methodExpr(CE.prototype.nextBlock));return;}a.copyLen=g;a.copyData();};AR.prototype.dataBlock=function(){return this.$val.dataBlock();};AR.Ptr.prototype.copyData=function(){var a,b,c,d,e,f,g;a=this;b=a.copyLen;while(b>0){c=32768-a.hp>>0;if(c>b){c=b;}d=B.ReadFull(a.r,$subslice(new BM(a.hist),a.hp,(a.hp+c>>0)));c=d[0];e=d[1];a.roffset=(f=a.roffset,g=new $Int64(0,c),new $Int64(f.$high+g.$high,f.$low+g.$low));if(!($interfaceIsEqual(e,$ifaceNil))){a.err=new AM.Ptr(a.roffset,e);return;}b=b-(c)>>0;a.hp=a.hp+(c)>>0;if(a.hp===32768){a.copyLen=b;a.flush($methodExpr(CE.prototype.copyData));return;}}a.step=$methodExpr(CE.prototype.nextBlock);};AR.prototype.copyData=function(){return this.$val.copyData();};AR.Ptr.prototype.setDict=function(a){var b;b=this;if(a.$length>32768){a=$subslice(a,(a.$length-32768>>0));}b.hp=$copySlice(new BM(b.hist),a);if(b.hp===32768){b.hp=0;b.hfull=true;}b.hw=b.hp;};AR.prototype.setDict=function(a){return this.$val.setDict(a);};AR.Ptr.prototype.moreBits=function(){var a,b,c,d,e,f,g;a=this;b=a.r.ReadByte();c=b[0];d=b[1];if(!($interfaceIsEqual(d,$ifaceNil))){if($interfaceIsEqual(d,B.EOF)){d=B.ErrUnexpectedEOF;}return d;}a.roffset=(e=a.roffset,f=new $Int64(0,1),new $Int64(e.$high+f.$high,e.$low+f.$low));a.b=(a.b|(((g=a.nb,g<32?((c>>>0)<>>0)))>>>0;a.nb=a.nb+(8)>>>0;return $ifaceNil;};AR.prototype.moreBits=function(){return this.$val.moreBits();};AR.Ptr.prototype.huffSym=function(a){var b,c,d,e,f,g,h,i,j,k,l,m;b=this;c=(a.min>>>0);while(true){while(b.nb>>0,((f<0||f>=e.length)?$throwRuntimeError("index out of range"):e[f]));c=(((g&15)>>>0)>>>0);if(c>9){g=(h=(i=a.links,j=g>>>4>>>0,((j<0||j>=i.$length)?$throwRuntimeError("index out of range"):i.$array[i.$offset+j])),k=(((b.b>>>9>>>0))&a.linkMask)>>>0,((k<0||k>=h.$length)?$throwRuntimeError("index out of range"):h.$array[h.$offset+k]));c=(((g&15)>>>0)>>>0);if(c===0){b.err=(l=b.roffset,new AK(l.$high,l.$low));return[0,b.err];}}if(c<=b.nb){b.b=(m=(c),m<32?(b.b>>>m):0)>>>0;b.nb=b.nb-(c)>>>0;return[((g>>>4>>>0)>>0),$ifaceNil];}}};AR.prototype.huffSym=function(a){return this.$val.huffSym(a);};AR.Ptr.prototype.flush=function(a){var b,c,d;b=this;b.toRead=$subslice(new BM(b.hist),b.hw,b.hp);b.woffset=(c=b.woffset,d=new $Int64(0,(b.hp-b.hw>>0)),new $Int64(c.$high+d.$high,c.$low+d.$low));b.hw=b.hp;if(b.hp===32768){b.hp=0;b.hw=0;b.hfull=true;}b.step=a;};AR.prototype.flush=function(a){return this.$val.flush(a);};AT=function(a){var b,c,d;b=$assertType(a,AQ,true);c=b[0];d=b[1];if(d){return c;}return E.NewReader(a);};AR.Ptr.prototype.Reset=function(a,b){var c;c=this;$copy(c,new AR.Ptr(AT(a),new $Int64(0,0),new $Int64(0,0),0,0,new AP.Ptr(),new AP.Ptr(),c.bits,c.codebits,c.hist,0,0,false,CM.zero(),$methodExpr(CE.prototype.nextBlock),false,$ifaceNil,BM.nil,CF.nil,CF.nil,0,0),AR);if(!(b===BM.nil)){c.setDict(b);}return $ifaceNil;};AR.prototype.Reset=function(a,b){return this.$val.Reset(a,b);};AU=$pkg.NewReader=function(a){var b;b=$clone(new AR.Ptr(),AR);b.bits=CG.zero();b.codebits=CI.zero();b.r=AT(a);b.hist=CK.zero();b.step=$methodExpr(CE.prototype.nextBlock);return b;};AV=$pkg.NewReaderDict=function(a,b){var c;c=$clone(new AR.Ptr(),AR);c.r=AT(a);c.hist=CK.zero();c.bits=CG.zero();c.codebits=CI.zero();c.step=$methodExpr(CE.prototype.nextBlock);c.setDict(b);return c;};AX=function(a){var b,c;return(((b=a>>>8<<16>>>16,((b<0||b>=AW.length)?$throwRuntimeError("index out of range"):AW[b]))<<16>>>16)|(((c=(a&255)>>>0,((c<0||c>=AW.length)?$throwRuntimeError("index out of range"):AW[c]))<<16>>>16)<<8<<16>>>16))>>>0;};AY=function(a,b){var c;return AX((c=(16-b<<24>>>24),c<32?(a<>>16);};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=E.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=A.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}$r=F.$init($BLOCKING);$s=6;case 6:if($r&&$r.$blocking){$r=$r();}BK=$sliceType($Uint32);BL=$sliceType(BK);BM=$sliceType($Uint8);BN=$sliceType($Int);BU=$sliceType($Int32);BV=$sliceType($Uint8);BW=$ptrType(Y);BX=$sliceType($Uint16);CB=$sliceType(Z);CC=$arrayType($Uint32,512);CD=$arrayType($Int,16);CE=$ptrType(AR);CF=$ptrType(AP);CG=$arrayType($Int,318);CH=$ptrType(CG);CI=$arrayType($Int,19);CJ=$ptrType(CI);CK=$arrayType($Uint8,32768);CL=$ptrType(CK);CM=$arrayType($Uint8,4);CS=$ptrType(AK);CT=$ptrType(AL);CU=$ptrType(AM);CW=$funcType([CE],[],false);BW.methods=[["assignEncodingAndSize","assignEncodingAndSize","compress/flate",$funcType([BU,CB],[],false),-1],["bitCounts","bitCounts","compress/flate",$funcType([CB,$Int32],[BU],false),-1],["bitLength","bitLength","compress/flate",$funcType([BU],[$Int64],false),-1],["generate","generate","compress/flate",$funcType([BU,$Int32],[],false),-1]];Y.init([["codeBits","codeBits","compress/flate",BV,""],["code","code","compress/flate",BX,""]]);Z.init([["literal","literal","compress/flate",$Uint16,""],["freq","freq","compress/flate",$Int32,""]]);AK.methods=[["Error","Error","",$funcType([],[$String],false),-1]];CS.methods=[["Error","Error","",$funcType([],[$String],false),-1]];AL.methods=[["Error","Error","",$funcType([],[$String],false),-1]];CT.methods=[["Error","Error","",$funcType([],[$String],false),-1]];CU.methods=[["Error","Error","",$funcType([],[$String],false),-1]];AM.init([["Offset","Offset","",$Int64,""],["Err","Err","",$error,""]]);AO.init([["Reset","Reset","",$funcType([B.Reader,BM],[$error],false)]]);CF.methods=[["init","init","compress/flate",$funcType([BN],[$Bool],false),-1]];AP.init([["min","min","compress/flate",$Int,""],["chunks","chunks","compress/flate",CC,""],["links","links","compress/flate",BL,""],["linkMask","linkMask","compress/flate",$Uint32,""]]);AQ.init([["Read","Read","",$funcType([BM],[$Int,$error],false)],["ReadByte","ReadByte","",$funcType([],[$Uint8,$error],false)]]);CE.methods=[["Close","Close","",$funcType([],[$error],false),-1],["Read","Read","",$funcType([BM],[$Int,$error],false),-1],["Reset","Reset","",$funcType([B.Reader,BM],[$error],false),-1],["copyData","copyData","compress/flate",$funcType([],[],false),-1],["copyHist","copyHist","compress/flate",$funcType([],[$Bool],false),-1],["copyHuff","copyHuff","compress/flate",$funcType([],[],false),-1],["dataBlock","dataBlock","compress/flate",$funcType([],[],false),-1],["flush","flush","compress/flate",$funcType([CW],[],false),-1],["huffSym","huffSym","compress/flate",$funcType([CF],[$Int,$error],false),-1],["huffmanBlock","huffmanBlock","compress/flate",$funcType([],[],false),-1],["moreBits","moreBits","compress/flate",$funcType([],[$error],false),-1],["nextBlock","nextBlock","compress/flate",$funcType([],[],false),-1],["readHuffman","readHuffman","compress/flate",$funcType([],[$error],false),-1],["setDict","setDict","compress/flate",$funcType([BM],[],false),-1]];AR.init([["r","r","compress/flate",AQ,""],["roffset","roffset","compress/flate",$Int64,""],["woffset","woffset","compress/flate",$Int64,""],["b","b","compress/flate",$Uint32,""],["nb","nb","compress/flate",$Uint,""],["h1","h1","compress/flate",AP,""],["h2","h2","compress/flate",AP,""],["bits","bits","compress/flate",CH,""],["codebits","codebits","compress/flate",CJ,""],["hist","hist","compress/flate",CL,""],["hp","hp","compress/flate",$Int,""],["hw","hw","compress/flate",$Int,""],["hfull","hfull","compress/flate",$Bool,""],["buf","buf","compress/flate",CM,""],["step","step","compress/flate",CW,""],["final$15","final","compress/flate",$Bool,""],["err","err","compress/flate",$error,""],["toRead","toRead","compress/flate",BM,""],["hl","hl","compress/flate",CF,""],["hd","hd","compress/flate",CF,""],["copyLen","copyLen","compress/flate",$Int,""],["copyDist","copyDist","compress/flate",$Int,""]]);Q=new AP.Ptr(7,$toNativeArray($kindUint32,[4103,1288,264,4488,4359,1800,776,3081,4231,1544,520,2569,8,2056,1032,3593,4167,1416,392,2313,4423,1928,904,3337,4295,1672,648,2825,136,2184,1160,3849,4135,1352,328,4552,4391,1864,840,3209,4263,1608,584,2697,72,2120,1096,3721,4199,1480,456,2441,4455,1992,968,3465,4327,1736,712,2953,200,2248,1224,3977,4119,1320,296,4520,4375,1832,808,3145,4247,1576,552,2633,40,2088,1064,3657,4183,1448,424,2377,4439,1960,936,3401,4311,1704,680,2889,168,2216,1192,3913,4151,1384,360,4584,4407,1896,872,3273,4279,1640,616,2761,104,2152,1128,3785,4215,1512,488,2505,4471,2024,1000,3529,4343,1768,744,3017,232,2280,1256,4041,4103,1304,280,4504,4359,1816,792,3113,4231,1560,536,2601,24,2072,1048,3625,4167,1432,408,2345,4423,1944,920,3369,4295,1688,664,2857,152,2200,1176,3881,4135,1368,344,4568,4391,1880,856,3241,4263,1624,600,2729,88,2136,1112,3753,4199,1496,472,2473,4455,2008,984,3497,4327,1752,728,2985,216,2264,1240,4009,4119,1336,312,4536,4375,1848,824,3177,4247,1592,568,2665,56,2104,1080,3689,4183,1464,440,2409,4439,1976,952,3433,4311,1720,696,2921,184,2232,1208,3945,4151,1400,376,4600,4407,1912,888,3305,4279,1656,632,2793,120,2168,1144,3817,4215,1528,504,2537,4471,2040,1016,3561,4343,1784,760,3049,248,2296,1272,4073,4103,1288,264,4488,4359,1800,776,3097,4231,1544,520,2585,8,2056,1032,3609,4167,1416,392,2329,4423,1928,904,3353,4295,1672,648,2841,136,2184,1160,3865,4135,1352,328,4552,4391,1864,840,3225,4263,1608,584,2713,72,2120,1096,3737,4199,1480,456,2457,4455,1992,968,3481,4327,1736,712,2969,200,2248,1224,3993,4119,1320,296,4520,4375,1832,808,3161,4247,1576,552,2649,40,2088,1064,3673,4183,1448,424,2393,4439,1960,936,3417,4311,1704,680,2905,168,2216,1192,3929,4151,1384,360,4584,4407,1896,872,3289,4279,1640,616,2777,104,2152,1128,3801,4215,1512,488,2521,4471,2024,1000,3545,4343,1768,744,3033,232,2280,1256,4057,4103,1304,280,4504,4359,1816,792,3129,4231,1560,536,2617,24,2072,1048,3641,4167,1432,408,2361,4423,1944,920,3385,4295,1688,664,2873,152,2200,1176,3897,4135,1368,344,4568,4391,1880,856,3257,4263,1624,600,2745,88,2136,1112,3769,4199,1496,472,2489,4455,2008,984,3513,4327,1752,728,3001,216,2264,1240,4025,4119,1336,312,4536,4375,1848,824,3193,4247,1592,568,2681,56,2104,1080,3705,4183,1464,440,2425,4439,1976,952,3449,4311,1720,696,2937,184,2232,1208,3961,4151,1400,376,4600,4407,1912,888,3321,4279,1656,632,2809,120,2168,1144,3833,4215,1528,504,2553,4471,2040,1016,3577,4343,1784,760,3065,248,2296,1272,4089]),BL.nil,0);AS=$toNativeArray($kindInt,[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);AW=$toNativeArray($kindUint8,[0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,8,136,72,200,40,168,104,232,24,152,88,216,56,184,120,248,4,132,68,196,36,164,100,228,20,148,84,212,52,180,116,244,12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,3,131,67,195,35,163,99,227,19,147,83,211,51,179,115,243,11,139,75,203,43,171,107,235,27,155,91,219,59,187,123,251,7,135,71,199,39,167,103,231,23,151,87,215,55,183,119,247,15,143,79,207,47,175,111,239,31,159,95,223,63,191,127,255]);AF=AD();AG=AE();}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["hash"]=(function(){var $pkg={},A,E,C;A=$packages["io"];C=$pkg.Hash32=$newType(8,$kindInterface,"hash.Hash32","Hash32","hash",null);$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}E=$sliceType($Uint8);C.init([["BlockSize","BlockSize","",$funcType([],[$Int],false)],["Reset","Reset","",$funcType([],[],false)],["Size","Size","",$funcType([],[$Int],false)],["Sum","Sum","",$funcType([E],[E],false)],["Sum32","Sum32","",$funcType([],[$Uint32],false)],["Write","Write","",$funcType([E],[$Int,$error],false)]]);}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["hash/adler32"]=(function(){var $pkg={},A,F,G,B,C,D,E;A=$packages["hash"];B=$pkg.digest=$newType(4,$kindUint32,"adler32.digest","digest","hash/adler32",null);$ptrType(B).prototype.Reset=function(){var a;a=this;a.$set(1);};C=$pkg.New=function(){var a;a=$newDataPointer(0,F);a.Reset();return a;};$ptrType(B).prototype.Size=function(){var a;a=this;return 4;};$ptrType(B).prototype.BlockSize=function(){var a;a=this;return 1;};D=function(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;c=(((a&65535)>>>0)>>>0);d=((a>>>16>>>0)>>>0);e=c;f=d;while(b.$length>0){g=G.nil;if(b.$length>5552){h=$subslice(b,0,5552);i=$subslice(b,5552);b=h;g=i;}j=b;k=0;while(k=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+k]);e=e+((l>>>0))>>>0;f=f+(e)>>>0;k++;}e=(m=e%(65521),m===m?m:$throwRuntimeError("integer divide by zero"));f=(n=f%(65521),n===n?n:$throwRuntimeError("integer divide by zero"));b=g;}return((((f<<16>>>0)|e)>>>0)>>>0);};$ptrType(B).prototype.Write=function(a){var b=0,c=$ifaceNil,d,e,f;d=this;d.$set(D(d.$get(),a));e=a.$length;f=$ifaceNil;b=e;c=f;return[b,c];};$ptrType(B).prototype.Sum32=function(){var a;a=this;return(a.$get()>>>0);};$ptrType(B).prototype.Sum=function(a){var b,c;b=this;c=(b.$get()>>>0);return $append(a,((c>>>24>>>0)<<24>>>24),((c>>>16>>>0)<<24>>>24),((c>>>8>>>0)<<24>>>24),(c<<24>>>24));};E=$pkg.Checksum=function(a){return(D(1,a)>>>0);};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}F=$ptrType(B);G=$sliceType($Uint8);F.methods=[["BlockSize","BlockSize","",$funcType([],[$Int],false),-1],["Reset","Reset","",$funcType([],[],false),-1],["Size","Size","",$funcType([],[$Int],false),-1],["Sum","Sum","",$funcType([G],[G],false),-1],["Sum32","Sum32","",$funcType([],[$Uint32],false),-1],["Write","Write","",$funcType([G],[$Int,$error],false),-1]];}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["compress/zlib"]=(function(){var $pkg={},A,B,C,G,D,E,F,P,T,U,H,J,K;A=$packages["bufio"];B=$packages["compress/flate"];C=$packages["errors"];G=$packages["fmt"];D=$packages["hash"];E=$packages["hash/adler32"];F=$packages["io"];H=$pkg.reader=$newType(0,$kindStruct,"zlib.reader","reader","compress/zlib",function(r_,decompressor_,digest_,err_,scratch_){this.$val=this;this.r=r_!==undefined?r_:$ifaceNil;this.decompressor=decompressor_!==undefined?decompressor_:$ifaceNil;this.digest=digest_!==undefined?digest_:$ifaceNil;this.err=err_!==undefined?err_:$ifaceNil;this.scratch=scratch_!==undefined?scratch_:T.zero();});J=$pkg.NewReader=function(a){return K(a,P.nil);};K=$pkg.NewReaderDict=function(a,b){var c,d;c=new H.Ptr();d=c.Reset(a,b);if(!($interfaceIsEqual(d,$ifaceNil))){return[$ifaceNil,d];}return[c,$ifaceNil];};H.Ptr.prototype.Read=function(a){var b=0,c=$ifaceNil,d,e,f,g,h,i,j,k,l,m,n,o,p;d=this;if(!($interfaceIsEqual(d.err,$ifaceNil))){e=0;f=d.err;b=e;c=f;return[b,c];}if(a.$length===0){g=0;h=$ifaceNil;b=g;c=h;return[b,c];}i=d.decompressor.Read(a);b=i[0];c=i[1];d.digest.Write($subslice(a,0,b));if(!((b===0))||!($interfaceIsEqual(c,F.EOF))){d.err=c;return[b,c];}j=F.ReadFull(d.r,$subslice(new P(d.scratch),0,4));k=j[1];if(!($interfaceIsEqual(k,$ifaceNil))){d.err=k;l=0;m=k;b=l;c=m;return[b,c];}n=(((((((d.scratch[0]>>>0)<<24>>>0)|((d.scratch[1]>>>0)<<16>>>0))>>>0)|((d.scratch[2]>>>0)<<8>>>0))>>>0)|(d.scratch[3]>>>0))>>>0;if(!((n===d.digest.Sum32()))){d.err=$pkg.ErrChecksum;o=0;p=d.err;b=o;c=p;return[b,c];}return[b,c];};H.prototype.Read=function(a){return this.$val.Read(a);};H.Ptr.prototype.Close=function(){var a;a=this;if(!($interfaceIsEqual(a.err,$ifaceNil))){return a.err;}a.err=a.decompressor.Close();return a.err;};H.prototype.Close=function(){return this.$val.Close();};H.Ptr.prototype.Reset=function(a,b){var c,d,e,f,g,h,i,j,k,l,m;c=this;d=$assertType(a,B.Reader,true);e=d[0];f=d[1];if(f){c.r=e;}else{c.r=A.NewReader(a);}g=F.ReadFull(c.r,$subslice(new P(c.scratch),0,2));h=g[1];if(!($interfaceIsEqual(h,$ifaceNil))){return h;}i=(((c.scratch[0]>>>0)<<8>>>0)|(c.scratch[1]>>>0))>>>0;if((!((((c.scratch[0]&15)>>>0)===8)))||(!(((j=i%31,j===j?j:$throwRuntimeError("integer divide by zero"))===0)))){return $pkg.ErrHeader;}k=!((((c.scratch[1]&32)>>>0)===0));if(k){l=F.ReadFull(c.r,$subslice(new P(c.scratch),0,4));h=l[1];if(!($interfaceIsEqual(h,$ifaceNil))){return h;}m=(((((((c.scratch[0]>>>0)<<24>>>0)|((c.scratch[1]>>>0)<<16>>>0))>>>0)|((c.scratch[2]>>>0)<<8>>>0))>>>0)|(c.scratch[3]>>>0))>>>0;if(!((m===E.Checksum(b)))){return $pkg.ErrDictionary;}}if($interfaceIsEqual(c.decompressor,$ifaceNil)){if(k){c.decompressor=B.NewReaderDict(c.r,b);}else{c.decompressor=B.NewReader(c.r);}}else{$assertType(c.decompressor,B.Resetter).Reset(c.r,b);}c.digest=E.New();return $ifaceNil;};H.prototype.Reset=function(a,b){return this.$val.Reset(a,b);};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=G.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}$r=E.$init($BLOCKING);$s=6;case 6:if($r&&$r.$blocking){$r=$r();}$r=F.$init($BLOCKING);$s=7;case 7:if($r&&$r.$blocking){$r=$r();}P=$sliceType($Uint8);T=$arrayType($Uint8,4);U=$ptrType(H);U.methods=[["Close","Close","",$funcType([],[$error],false),-1],["Read","Read","",$funcType([P],[$Int,$error],false),-1],["Reset","Reset","",$funcType([F.Reader,P],[$error],false),-1]];H.init([["r","r","compress/zlib",B.Reader,""],["decompressor","decompressor","compress/zlib",F.ReadCloser,""],["digest","digest","compress/zlib",D.Hash32,""],["err","err","compress/zlib",$error,""],["scratch","scratch","compress/zlib",T,""]]);$pkg.ErrChecksum=C.New("zlib: invalid checksum");$pkg.ErrDictionary=C.New("zlib: invalid dictionary");$pkg.ErrHeader=C.New("zlib: invalid header");}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["encoding/binary"]=(function(){var $pkg={},A,B,C,D,Y,AQ,G,U;A=$packages["errors"];B=$packages["io"];C=$packages["math"];D=$packages["reflect"];G=$pkg.bigEndian=$newType(0,$kindStruct,"binary.bigEndian","bigEndian","encoding/binary",function(){this.$val=this;});G.Ptr.prototype.Uint16=function(a){return((((1<0||1>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+1])<<16>>>16)|((((0<0||0>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+0])<<16>>>16)<<8<<16>>>16))>>>0;};G.prototype.Uint16=function(a){return this.$val.Uint16(a);};G.Ptr.prototype.PutUint16=function(a,b){(0<0||0>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+0]=((b>>>8<<16>>>16)<<24>>>24);(1<0||1>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+1]=(b<<24>>>24);};G.prototype.PutUint16=function(a,b){return this.$val.PutUint16(a,b);};G.Ptr.prototype.Uint32=function(a){return((((((((3<0||3>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+3])>>>0)|((((2<0||2>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+2])>>>0)<<8>>>0))>>>0)|((((1<0||1>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+1])>>>0)<<16>>>0))>>>0)|((((0<0||0>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+0])>>>0)<<24>>>0))>>>0;};G.prototype.Uint32=function(a){return this.$val.Uint32(a);};G.Ptr.prototype.PutUint32=function(a,b){(0<0||0>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+0]=((b>>>24>>>0)<<24>>>24);(1<0||1>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+1]=((b>>>16>>>0)<<24>>>24);(2<0||2>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+2]=((b>>>8>>>0)<<24>>>24);(3<0||3>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+3]=(b<<24>>>24);};G.prototype.PutUint32=function(a,b){return this.$val.PutUint32(a,b);};G.Ptr.prototype.Uint64=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;return(b=(c=(d=(e=(f=(g=(h=new $Uint64(0,((7<0||7>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+7])),i=$shiftLeft64(new $Uint64(0,((6<0||6>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+6])),8),new $Uint64(h.$high|i.$high,(h.$low|i.$low)>>>0)),j=$shiftLeft64(new $Uint64(0,((5<0||5>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+5])),16),new $Uint64(g.$high|j.$high,(g.$low|j.$low)>>>0)),k=$shiftLeft64(new $Uint64(0,((4<0||4>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+4])),24),new $Uint64(f.$high|k.$high,(f.$low|k.$low)>>>0)),l=$shiftLeft64(new $Uint64(0,((3<0||3>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+3])),32),new $Uint64(e.$high|l.$high,(e.$low|l.$low)>>>0)),m=$shiftLeft64(new $Uint64(0,((2<0||2>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+2])),40),new $Uint64(d.$high|m.$high,(d.$low|m.$low)>>>0)),n=$shiftLeft64(new $Uint64(0,((1<0||1>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+1])),48),new $Uint64(c.$high|n.$high,(c.$low|n.$low)>>>0)),o=$shiftLeft64(new $Uint64(0,((0<0||0>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+0])),56),new $Uint64(b.$high|o.$high,(b.$low|o.$low)>>>0));};G.prototype.Uint64=function(a){return this.$val.Uint64(a);};G.Ptr.prototype.PutUint64=function(a,b){(0<0||0>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+0]=($shiftRightUint64(b,56).$low<<24>>>24);(1<0||1>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+1]=($shiftRightUint64(b,48).$low<<24>>>24);(2<0||2>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+2]=($shiftRightUint64(b,40).$low<<24>>>24);(3<0||3>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+3]=($shiftRightUint64(b,32).$low<<24>>>24);(4<0||4>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+4]=($shiftRightUint64(b,24).$low<<24>>>24);(5<0||5>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+5]=($shiftRightUint64(b,16).$low<<24>>>24);(6<0||6>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+6]=($shiftRightUint64(b,8).$low<<24>>>24);(7<0||7>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+7]=(b.$low<<24>>>24);};G.prototype.PutUint64=function(a,b){return this.$val.PutUint64(a,b);};G.Ptr.prototype.String=function(){return"BigEndian";};G.prototype.String=function(){return this.$val.String();};G.Ptr.prototype.GoString=function(){return"binary.BigEndian";};G.prototype.GoString=function(){return this.$val.GoString();};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}Y=$sliceType($Uint8);AQ=$ptrType(G);G.methods=[["GoString","GoString","",$funcType([],[$String],false),-1],["PutUint16","PutUint16","",$funcType([Y,$Uint16],[],false),-1],["PutUint32","PutUint32","",$funcType([Y,$Uint32],[],false),-1],["PutUint64","PutUint64","",$funcType([Y,$Uint64],[],false),-1],["String","String","",$funcType([],[$String],false),-1],["Uint16","Uint16","",$funcType([Y],[$Uint16],false),-1],["Uint32","Uint32","",$funcType([Y],[$Uint32],false),-1],["Uint64","Uint64","",$funcType([Y],[$Uint64],false),-1]];AQ.methods=[["GoString","GoString","",$funcType([],[$String],false),-1],["PutUint16","PutUint16","",$funcType([Y,$Uint16],[],false),-1],["PutUint32","PutUint32","",$funcType([Y,$Uint32],[],false),-1],["PutUint64","PutUint64","",$funcType([Y,$Uint64],[],false),-1],["String","String","",$funcType([],[$String],false),-1],["Uint16","Uint16","",$funcType([Y],[$Uint16],false),-1],["Uint32","Uint32","",$funcType([Y],[$Uint32],false),-1],["Uint64","Uint64","",$funcType([Y],[$Uint64],false),-1]];G.init([]);$pkg.BigEndian=new G.Ptr();U=A.New("binary: varint overflows a 64-bit integer");}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["hash/crc32"]=(function(){var $pkg={},A,B,Q,R,S,C,I,D,H,J,K,L,M,P;A=$packages["hash"];B=$packages["sync"];C=$pkg.Table=$newType(1024,$kindArray,"crc32.Table","Table","hash/crc32",null);I=$pkg.digest=$newType(0,$kindStruct,"crc32.digest","digest","hash/crc32",function(crc_,tab_){this.$val=this;this.crc=crc_!==undefined?crc_:0;this.tab=tab_!==undefined?tab_:Q.nil;});H=function(a){var b,c,d,e,f;b=C.zero();c=0;while(c<256){d=(c>>>0);e=0;while(e<8){if(((d&1)>>>0)===1){d=(((d>>>1>>>0))^a)>>>0;}else{d=(f=(1),f<32?(d>>>f):0)>>>0;}e=e+(1)>>0;}b.nilCheck,(c<0||c>=b.length)?$throwRuntimeError("index out of range"):b[c]=d;c=c+(1)>>0;}return b;};J=$pkg.New=function(a){return new I.Ptr(0,a);};K=$pkg.NewIEEE=function(){return J($pkg.IEEETable);};I.Ptr.prototype.Size=function(){var a;a=this;return 4;};I.prototype.Size=function(){return this.$val.Size();};I.Ptr.prototype.BlockSize=function(){var a;a=this;return 1;};I.prototype.BlockSize=function(){return this.$val.BlockSize();};I.Ptr.prototype.Reset=function(){var a;a=this;a.crc=0;};I.prototype.Reset=function(){return this.$val.Reset();};L=function(a,b,c){var d,e,f,g;a=~a>>>0;d=c;e=0;while(e=d.$length)?$throwRuntimeError("index out of range"):d.$array[d.$offset+e]);a=((g=((a<<24>>>24)^f)<<24>>>24,(b.nilCheck,((g<0||g>=b.length)?$throwRuntimeError("index out of range"):b[g])))^((a>>>8>>>0)))>>>0;e++;}return~a>>>0;};M=$pkg.Update=function(a,b,c){if($equal(b,D,C)){return P(a,c);}return L(a,b,c);};I.Ptr.prototype.Write=function(a){var b=0,c=$ifaceNil,d,e,f;d=this;d.crc=M(d.crc,d.tab,a);e=a.$length;f=$ifaceNil;b=e;c=f;return[b,c];};I.prototype.Write=function(a){return this.$val.Write(a);};I.Ptr.prototype.Sum32=function(){var a;a=this;return a.crc;};I.prototype.Sum32=function(){return this.$val.Sum32();};I.Ptr.prototype.Sum=function(a){var b,c;b=this;c=b.Sum32();return $append(a,((c>>>24>>>0)<<24>>>24),((c>>>16>>>0)<<24>>>24),((c>>>8>>>0)<<24>>>24),(c<<24>>>24));};I.prototype.Sum=function(a){return this.$val.Sum(a);};P=function(a,b){return L(a,D,b);};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}Q=$ptrType(C);R=$sliceType($Uint8);S=$ptrType(I);C.init($Uint32,256);S.methods=[["BlockSize","BlockSize","",$funcType([],[$Int],false),-1],["Reset","Reset","",$funcType([],[],false),-1],["Size","Size","",$funcType([],[$Int],false),-1],["Sum","Sum","",$funcType([R],[R],false),-1],["Sum32","Sum32","",$funcType([],[$Uint32],false),-1],["Write","Write","",$funcType([R],[$Int,$error],false),-1]];I.init([["crc","crc","hash/crc32",$Uint32,""],["tab","tab","hash/crc32",Q,""]]);D=Q.nil;$pkg.IEEETable=H(3988292384);}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["image/png"]=(function(){var $pkg={},I,A,B,C,D,E,F,G,H,J,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AZ,BA,BB,N,P,Q,S,O,R,K,M,T,U,V,W;I=$packages["bufio"];A=$packages["compress/zlib"];B=$packages["encoding/binary"];C=$packages["fmt"];D=$packages["hash"];E=$packages["hash/crc32"];F=$packages["image"];G=$packages["image/color"];H=$packages["io"];J=$packages["strconv"];N=$pkg.interlaceScan=$newType(0,$kindStruct,"png.interlaceScan","interlaceScan","image/png",function(xFactor_,yFactor_,xOffset_,yOffset_){this.$val=this;this.xFactor=xFactor_!==undefined?xFactor_:0;this.yFactor=yFactor_!==undefined?yFactor_:0;this.xOffset=xOffset_!==undefined?xOffset_:0;this.yOffset=yOffset_!==undefined?yOffset_:0;});P=$pkg.decoder=$newType(0,$kindStruct,"png.decoder","decoder","image/png",function(r_,img_,crc_,width_,height_,depth_,palette_,cb_,stage_,idatLength_,tmp_,interlace_){this.$val=this;this.r=r_!==undefined?r_:$ifaceNil;this.img=img_!==undefined?img_:$ifaceNil;this.crc=crc_!==undefined?crc_:$ifaceNil;this.width=width_!==undefined?width_:0;this.height=height_!==undefined?height_:0;this.depth=depth_!==undefined?depth_:0;this.palette=palette_!==undefined?palette_:G.Palette.nil;this.cb=cb_!==undefined?cb_:0;this.stage=stage_!==undefined?stage_:0;this.idatLength=idatLength_!==undefined?idatLength_:0;this.tmp=tmp_!==undefined?tmp_:AW.zero();this.interlace=interlace_!==undefined?interlace_:0;});Q=$pkg.FormatError=$newType(8,$kindString,"png.FormatError","FormatError","image/png",null);S=$pkg.UnsupportedError=$newType(8,$kindString,"png.UnsupportedError","UnsupportedError","image/png",null);K=function(a){var b;b=a>>31>>0;return(((a^b)>>0))-b>>0;};M=function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;d=0;e=0;f=0;g=0;h=0;i=0;j=d;k=e;l=f;m=g;n=h;o=i;p=0;while(p=b.$length)?$throwRuntimeError("index out of range"):b.$array[b.$offset+s])>>0);m=k-l>>0;n=j-l>>0;o=K(m+n>>0);m=K(m);n=K(n);if(m<=n&&m<=o){}else if(n<=o){j=k;}else{j=l;}j=j+((((s<0||s>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+s])>>0))>>0;j=j&(255);(s<0||s>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+s]=(j<<24>>>24);l=k;s=s+(c)>>0;}p=p+(1)>>0;}};Q.prototype.Error=function(){var a;a=this.$val!==undefined?this.$val:this;return"png: invalid format: "+a;};$ptrType(Q).prototype.Error=function(){return new Q(this.$get()).Error();};S.prototype.Error=function(){var a;a=this.$val!==undefined?this.$val:this;return"png: unsupported feature: "+a;};$ptrType(S).prototype.Error=function(){return new S(this.$get()).Error();};T=function(a,b){if(a>0);e=(B.BigEndian.Uint32($subslice(new AJ(b.tmp),0,4))>>0);f=(B.BigEndian.Uint32($subslice(new AJ(b.tmp),4,8))>>0);if(e<0||f<0){return new Q("negative dimension");}g=$mul64(new $Int64(0,e),new $Int64(0,f));if(!((h=new $Int64(0,((g.$low+((g.$high>>31)*4294967296))>>0)),(g.$high===h.$high&&g.$low===h.$low)))){return new S("dimension overflow");}b.cb=0;b.depth=(b.tmp[8]>>0);i=b.depth;if(i===1){j=b.tmp[9];if(j===0){b.cb=1;}else if(j===3){b.cb=7;}}else if(i===2){k=b.tmp[9];if(k===0){b.cb=2;}else if(k===3){b.cb=8;}}else if(i===4){l=b.tmp[9];if(l===0){b.cb=3;}else if(l===3){b.cb=9;}}else if(i===8){m=b.tmp[9];if(m===0){b.cb=4;}else if(m===2){b.cb=6;}else if(m===3){b.cb=10;}else if(m===4){b.cb=5;}else if(m===6){b.cb=11;}}else if(i===16){n=b.tmp[9];if(n===0){b.cb=12;}else if(n===2){b.cb=14;}else if(n===4){b.cb=13;}else if(n===6){b.cb=15;}}if(b.cb===0){return new S(C.Sprintf("bit depth %d, color type %d",new AK([new $Uint8(b.tmp[8]),new $Uint8(b.tmp[9])])));}o=(e>>0);p=(f>>0);b.width=o;b.height=p;return b.verifyChecksum();};P.prototype.parseIHDR=function(a){return this.$val.parseIHDR(a);};P.Ptr.prototype.parsePLTE=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;b=this;d=((c=a/3,(c===c&&c!==1/0&&c!==-1/0)?c>>>0:$throwRuntimeError("integer divide by zero"))>>0);if(!(((e=a%3,e===e?e:$throwRuntimeError("integer divide by zero"))===0))||d<=0||d>256||d>((f=(b.depth>>>0),f<32?(1<>0)){return new Q("bad PLTE length");}g=H.ReadFull(b.r,$subslice(new AJ(b.tmp),0,(3*d>>0)));h=g[0];i=g[1];if(!($interfaceIsEqual(i,$ifaceNil))){return i;}b.crc.Write($subslice(new AJ(b.tmp),0,h));j=b.cb;if(j===7||j===8||j===9||j===10){b.palette=G.Palette.make(256);k=0;while(k=s.$length)?$throwRuntimeError("index out of range"):s.$array[s.$offset+k]=(l=new G.RGBA.Ptr((m=b.tmp,n=(3*k>>0)+0>>0,((n<0||n>=m.length)?$throwRuntimeError("index out of range"):m[n])),(o=b.tmp,p=(3*k>>0)+1>>0,((p<0||p>=o.length)?$throwRuntimeError("index out of range"):o[p])),(q=b.tmp,r=(3*k>>0)+2>>0,((r<0||r>=q.length)?$throwRuntimeError("index out of range"):q[r])),255),new l.constructor.Struct(l)));k=k+(1)>>0;}t=d;while(t<256){(v=b.palette,(t<0||t>=v.$length)?$throwRuntimeError("index out of range"):v.$array[v.$offset+t]=(u=new G.RGBA.Ptr(0,0,0,255),new u.constructor.Struct(u)));t=t+(1)>>0;}b.palette=$subslice(b.palette,0,d);}else if(j===6||j===11||j===14||j===15){}else{return new Q("PLTE, color type mismatch");}return b.verifyChecksum();};P.prototype.parsePLTE=function(a){return this.$val.parsePLTE(a);};P.Ptr.prototype.parsetRNS=function(a){var b,c,d,e,f,g,h,i,j,k,l;b=this;if(a>256){return new Q("bad tRNS length");}c=H.ReadFull(b.r,$subslice(new AJ(b.tmp),0,a));d=c[0];e=c[1];if(!($interfaceIsEqual(e,$ifaceNil))){return e;}b.crc.Write($subslice(new AJ(b.tmp),0,d));f=b.cb;if(f===4||f===12){return new S("grayscale transparency");}else if(f===6||f===14){return new S("truecolor transparency");}else if(f===7||f===8||f===9||f===10){if(b.palette.$length=h.$length)?$throwRuntimeError("index out of range"):h.$array[h.$offset+g])),G.RGBA),G.RGBA);(l=b.palette,(g<0||g>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+g]=(j=new G.NRGBA.Ptr(i.R,i.G,i.B,(k=b.tmp,((g<0||g>=k.length)?$throwRuntimeError("index out of range"):k[g]))),new j.constructor.Struct(j)));g=g+(1)>>0;}}else if(f===5||f===13||f===11||f===15){return new Q("tRNS, color type mismatch");}return b.verifyChecksum();};P.prototype.parsetRNS=function(a){return this.$val.parsetRNS(a);};P.Ptr.prototype.Read=function(a){var b,c,d,e,f,g,h;b=this;if(a.$length===0){return[0,$ifaceNil];}while(b.idatLength===0){c=b.verifyChecksum();if(!($interfaceIsEqual(c,$ifaceNil))){return[0,c];}d=H.ReadFull(b.r,$subslice(new AJ(b.tmp),0,8));e=d[1];if(!($interfaceIsEqual(e,$ifaceNil))){return[0,e];}b.idatLength=B.BigEndian.Uint32($subslice(new AJ(b.tmp),0,4));if(!($bytesToString($subslice(new AJ(b.tmp),4,8))==="IDAT")){return[0,new Q("not enough pixel data")];}b.crc.Reset();b.crc.Write($subslice(new AJ(b.tmp),4,8));}if((b.idatLength>>0)<0){return[0,new S("IDAT chunk length overflow")];}f=b.r.Read($subslice(a,0,T(a.$length,(b.idatLength>>0))));g=f[0];h=f[1];b.crc.Write($subslice(a,0,g));b.idatLength=b.idatLength-((g>>>0))>>>0;return[g,h];};P.prototype.Read=function(a){return this.$val.Read(a);};P.Ptr.prototype.decode=function(){var $deferred=[],$err=null,a,b,c,d,e,f,g,h,i,j,k,l,m,n;try{$deferFrames.push($deferred);a=this;b=A.NewReader(a);c=b[0];d=b[1];if(!($interfaceIsEqual(d,$ifaceNil))){return[$ifaceNil,d];}$deferred.push([$methodVal(c,"Close"),[]]);e=$ifaceNil;if(a.interlace===0){f=a.readImagePass(c,0,false);e=f[0];d=f[1];}else if(a.interlace===1){g=a.readImagePass($ifaceNil,0,true);e=g[0];d=g[1];h=0;while(h<7){i=a.readImagePass(c,h,false);j=i[0];k=i[1];if(!($interfaceIsEqual(k,$ifaceNil))){return[$ifaceNil,k];}a.mergePassInto(e,j,h);h=h+(1)>>0;}}l=0;m=0;while((l===0)&&$interfaceIsEqual(d,$ifaceNil)){if(m===100){return[$ifaceNil,H.ErrNoProgress];}n=c.Read($subslice(new AJ(a.tmp),0,1));l=n[0];d=n[1];m=m+(1)>>0;}if(!($interfaceIsEqual(d,$ifaceNil))&&!($interfaceIsEqual(d,H.EOF))){return[$ifaceNil,new Q(d.Error())];}if(!((l===0))||!((a.idatLength===0))){return[$ifaceNil,new Q("too much pixel data")];}return[e,$ifaceNil];}catch(err){$err=err;return[$ifaceNil,$ifaceNil];}finally{$deferFrames.pop();$callDeferred($deferred,$err);}};P.prototype.decode=function(){return this.$val.decode();};P.Ptr.prototype.readImagePass=function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,ea,eb,ec,ed,ee,ef,eg,eh,ei,ej,ek,el,em,en,eo,ep,eq,er,es;d=this;e=0;f=0;g=AL.nil;h=AM.nil;i=AN.nil;j=AO.nil;k=AP.nil;l=AQ.nil;m=AR.nil;n=$ifaceNil;o=d.width;p=d.height;q=o;r=p;if((d.interlace===1)&&!c){s=$clone(((b<0||b>=O.$length)?$throwRuntimeError("index out of range"):O.$array[O.$offset+b]),N);q=(t=((((q-s.xOffset>>0)+s.xFactor>>0)-1>>0))/s.xFactor,(t===t&&t!==1/0&&t!==-1/0)?t>>0:$throwRuntimeError("integer divide by zero"));r=(u=((((r-s.yOffset>>0)+s.yFactor>>0)-1>>0))/s.yFactor,(u===u&&u!==1/0&&u!==-1/0)?u>>0:$throwRuntimeError("integer divide by zero"));}v=d.cb;if(v===1||v===2||v===3||v===4){e=d.depth;g=F.NewGray(F.Rect(0,0,q,r));n=g;}else if(v===5){e=16;j=F.NewNRGBA(F.Rect(0,0,q,r));n=j;}else if(v===6){e=24;h=F.NewRGBA(F.Rect(0,0,q,r));n=h;}else if(v===7||v===8||v===9||v===10){e=d.depth;i=F.NewPaletted(F.Rect(0,0,q,r),d.palette);n=i;}else if(v===11){e=32;j=F.NewNRGBA(F.Rect(0,0,q,r));n=j;}else if(v===12){e=16;k=F.NewGray16(F.Rect(0,0,q,r));n=k;}else if(v===13){e=32;m=F.NewNRGBA64(F.Rect(0,0,q,r));n=m;}else if(v===14){e=48;l=F.NewRGBA64(F.Rect(0,0,q,r));n=l;}else if(v===15){e=64;m=F.NewNRGBA64(F.Rect(0,0,q,r));n=m;}if(c){return[n,$ifaceNil];}x=(w=((e+7>>0))/8,(w===w&&w!==1/0&&w!==-1/0)?w>>0:$throwRuntimeError("integer divide by zero"));z=1+(y=(((e*q>>0)+7>>0))/8,(y===y&&y!==1/0&&y!==-1/0)?y>>0:$throwRuntimeError("integer divide by zero"))>>0;aa=AS.make(z);ab=AS.make(z);ac=0;while(ac=aa.$length)?$throwRuntimeError("index out of range"):aa.$array[aa.$offset+0]);if(ah===0){}else if(ah===1){ai=x;while(ai=aj.$length)?$throwRuntimeError("index out of range"):aj.$array[aj.$offset+ak]=((ak<0||ak>=aj.$length)?$throwRuntimeError("index out of range"):aj.$array[aj.$offset+ak])+((al=ai-x>>0,((al<0||al>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+al])))<<24>>>24;ai=ai+(1)>>0;}}else if(ah===2){am=ag;an=0;while(an=am.$length)?$throwRuntimeError("index out of range"):am.$array[am.$offset+an]);aq=af;ar=ao;(ar<0||ar>=aq.$length)?$throwRuntimeError("index out of range"):aq.$array[aq.$offset+ar]=((ar<0||ar>=aq.$length)?$throwRuntimeError("index out of range"):aq.$array[aq.$offset+ar])+(ap)<<24>>>24;an++;}}else if(ah===3){as=0;while(as=at.$length)?$throwRuntimeError("index out of range"):at.$array[at.$offset+au]=((au<0||au>=at.$length)?$throwRuntimeError("index out of range"):at.$array[at.$offset+au])+((av=((as<0||as>=ag.$length)?$throwRuntimeError("index out of range"):ag.$array[ag.$offset+as])/2,(av===av&&av!==1/0&&av!==-1/0)?av>>>0:$throwRuntimeError("integer divide by zero")))<<24>>>24;as=as+(1)>>0;}aw=x;while(aw=ax.$length)?$throwRuntimeError("index out of range"):ax.$array[ax.$offset+ay]=((ay<0||ay>=ax.$length)?$throwRuntimeError("index out of range"):ax.$array[ax.$offset+ay])+(((az=((((ba=aw-x>>0,((ba<0||ba>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+ba]))>>0)+(((aw<0||aw>=ag.$length)?$throwRuntimeError("index out of range"):ag.$array[ag.$offset+aw])>>0)>>0))/2,(az===az&&az!==1/0&&az!==-1/0)?az>>0:$throwRuntimeError("integer divide by zero"))<<24>>>24))<<24>>>24;aw=aw+(1)>>0;}}else if(ah===4){M(af,ag,x);}else{return[$ifaceNil,new Q("bad filter type")];}bb=d.cb;if(bb===1){bc=0;while(bc>0:$throwRuntimeError("integer divide by zero")),((bd<0||bd>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+bd]));bg=0;while(bg<8&&(bc+bg>>0)>0,ac,new G.Gray.Ptr(((bf>>>7<<24>>>24))*255<<24>>>24));bf=(bh=(1),bh<32?(bf<>>24;bg=bg+(1)>>0;}bc=bc+(8)>>0;}}else if(bb===2){bi=0;while(bi>0:$throwRuntimeError("integer divide by zero")),((bj<0||bj>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+bj]));bm=0;while(bm<4&&(bi+bm>>0)>0,ac,new G.Gray.Ptr(((bl>>>6<<24>>>24))*85<<24>>>24));bl=(bn=(2),bn<32?(bl<>>24;bm=bm+(1)>>0;}bi=bi+(4)>>0;}}else if(bb===3){bo=0;while(bo>0:$throwRuntimeError("integer divide by zero")),((bp<0||bp>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+bp]));bs=0;while(bs<2&&(bo+bs>>0)>0,ac,new G.Gray.Ptr(((br>>>4<<24>>>24))*17<<24>>>24));br=(bt=(4),bt<32?(br<>>24;bs=bs+(1)>>0;}bo=bo+(2)>>0;}}else if(bb===4){$copySlice($subslice(g.Pix,f),af);f=f+(g.Stride)>>0;}else if(bb===5){bu=0;while(bu>0)+0>>0,((bv<0||bv>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+bv]));j.SetNRGBA(bu,ac,new G.NRGBA.Ptr(bw,bw,bw,(bx=(2*bu>>0)+1>>0,((bx<0||bx>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+bx]))));bu=bu+(1)>>0;}}else if(bb===6){by=h.Pix;bz=f;ca=0;cb=by;cc=bz;cd=ca;ce=0;while(ce>0,(cg<0||cg>=cb.$length)?$throwRuntimeError("index out of range"):cb.$array[cb.$offset+cg]=(cf=cd+0>>0,((cf<0||cf>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+cf])));(ci=cc+1>>0,(ci<0||ci>=cb.$length)?$throwRuntimeError("index out of range"):cb.$array[cb.$offset+ci]=(ch=cd+1>>0,((ch<0||ch>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+ch])));(ck=cc+2>>0,(ck<0||ck>=cb.$length)?$throwRuntimeError("index out of range"):cb.$array[cb.$offset+ck]=(cj=cd+2>>0,((cj<0||cj>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+cj])));(cl=cc+3>>0,(cl<0||cl>=cb.$length)?$throwRuntimeError("index out of range"):cb.$array[cb.$offset+cl]=255);cc=cc+(4)>>0;cd=cd+(3)>>0;ce=ce+(1)>>0;}f=f+(h.Stride)>>0;}else if(bb===7){cm=0;while(cm>0:$throwRuntimeError("integer divide by zero")),((cn<0||cn>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+cn]));cq=0;while(cq<8&&(cm+cq>>0)>>7<<24>>>24;if(i.Palette.$length<=(cr>>0)){i.Palette=$subslice(i.Palette,0,((cr>>0)+1>>0));}i.SetColorIndex(cm+cq>>0,ac,cr);cp=(cs=(1),cs<32?(cp<>>24;cq=cq+(1)>>0;}cm=cm+(8)>>0;}}else if(bb===8){ct=0;while(ct>0:$throwRuntimeError("integer divide by zero")),((cu<0||cu>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+cu]));cx=0;while(cx<4&&(ct+cx>>0)>>6<<24>>>24;if(i.Palette.$length<=(cy>>0)){i.Palette=$subslice(i.Palette,0,((cy>>0)+1>>0));}i.SetColorIndex(ct+cx>>0,ac,cy);cw=(cz=(2),cz<32?(cw<>>24;cx=cx+(1)>>0;}ct=ct+(4)>>0;}}else if(bb===9){da=0;while(da>0:$throwRuntimeError("integer divide by zero")),((db<0||db>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+db]));de=0;while(de<2&&(da+de>>0)>>4<<24>>>24;if(i.Palette.$length<=(df>>0)){i.Palette=$subslice(i.Palette,0,((df>>0)+1>>0));}i.SetColorIndex(da+de>>0,ac,df);dd=(dg=(4),dg<32?(dd<>>24;de=de+(1)>>0;}da=da+(2)>>0;}}else if(bb===10){if(!((i.Palette.$length===255))){dh=0;while(dh=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+dh])>>0)){i.Palette=$subslice(i.Palette,0,((((dh<0||dh>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+dh])>>0)+1>>0));}dh=dh+(1)>>0;}}$copySlice($subslice(i.Pix,f),af);f=f+(i.Stride)>>0;}else if(bb===11){$copySlice($subslice(j.Pix,f),af);f=f+(j.Stride)>>0;}else if(bb===12){di=0;while(di>0)+0>>0,((dj<0||dj>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+dj]))<<16>>>16)<<8<<16>>>16)|((dk=(2*di>>0)+1>>0,((dk<0||dk>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+dk]))<<16>>>16))>>>0;k.SetGray16(di,ac,new G.Gray16.Ptr(dl));di=di+(1)>>0;}}else if(bb===13){dm=0;while(dm>0)+0>>0,((dn<0||dn>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+dn]))<<16>>>16)<<8<<16>>>16)|((dp=(4*dm>>0)+1>>0,((dp<0||dp>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+dp]))<<16>>>16))>>>0;dt=((((dr=(4*dm>>0)+2>>0,((dr<0||dr>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+dr]))<<16>>>16)<<8<<16>>>16)|((ds=(4*dm>>0)+3>>0,((ds<0||ds>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+ds]))<<16>>>16))>>>0;m.SetNRGBA64(dm,ac,new G.NRGBA64.Ptr(dq,dq,dq,dt));dm=dm+(1)>>0;}}else if(bb===14){du=0;while(du>0)+0>>0,((dv<0||dv>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+dv]))<<16>>>16)<<8<<16>>>16)|((dw=(6*du>>0)+1>>0,((dw<0||dw>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+dw]))<<16>>>16))>>>0;ea=((((dy=(6*du>>0)+2>>0,((dy<0||dy>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+dy]))<<16>>>16)<<8<<16>>>16)|((dz=(6*du>>0)+3>>0,((dz<0||dz>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+dz]))<<16>>>16))>>>0;ed=((((eb=(6*du>>0)+4>>0,((eb<0||eb>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+eb]))<<16>>>16)<<8<<16>>>16)|((ec=(6*du>>0)+5>>0,((ec<0||ec>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+ec]))<<16>>>16))>>>0;l.SetRGBA64(du,ac,new G.RGBA64.Ptr(dx,ea,ed,65535));du=du+(1)>>0;}}else if(bb===15){ee=0;while(ee>0)+0>>0,((ef<0||ef>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+ef]))<<16>>>16)<<8<<16>>>16)|((eg=(8*ee>>0)+1>>0,((eg<0||eg>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+eg]))<<16>>>16))>>>0;ek=((((ei=(8*ee>>0)+2>>0,((ei<0||ei>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+ei]))<<16>>>16)<<8<<16>>>16)|((ej=(8*ee>>0)+3>>0,((ej<0||ej>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+ej]))<<16>>>16))>>>0;en=((((el=(8*ee>>0)+4>>0,((el<0||el>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+el]))<<16>>>16)<<8<<16>>>16)|((em=(8*ee>>0)+5>>0,((em<0||em>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+em]))<<16>>>16))>>>0;eq=((((eo=(8*ee>>0)+6>>0,((eo<0||eo>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+eo]))<<16>>>16)<<8<<16>>>16)|((ep=(8*ee>>0)+7>>0,((ep<0||ep>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+ep]))<<16>>>16))>>>0;m.SetNRGBA64(ee,ac,new G.NRGBA64.Ptr(eh,ek,en,eq));ee=ee+(1)>>0;}}er=aa;es=ab;ab=er;aa=es;ac=ac+(1)>>0;}return[n,$ifaceNil];};P.prototype.readImagePass=function(a,b,c){return this.$val.readImagePass(a,b,c);};P.Ptr.prototype.mergePassInto=function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au;d=this;e=$clone(((c<0||c>=O.$length)?$throwRuntimeError("index out of range"):O.$array[O.$offset+c]),N);f=AS.nil;g=AS.nil;h=0;i=$clone(new F.Rectangle.Ptr(),F.Rectangle);j=0;l=a;if($assertType(l,AT,true)[1]){k=l.$val;f=$assertType(b,AT).Pix;m=k.Pix;n=k.Stride;o=$clone(k.Rect,F.Rectangle);g=m;h=n;$copy(i,o,F.Rectangle);j=1;}else if($assertType(l,AU,true)[1]){k=l.$val;f=$assertType(b,AU).Pix;p=k.Pix;q=k.Stride;r=$clone(k.Rect,F.Rectangle);g=p;h=q;$copy(i,r,F.Rectangle);j=2;}else if($assertType(l,AL,true)[1]){k=l.$val;f=$assertType(b,AL).Pix;s=k.Pix;t=k.Stride;u=$clone(k.Rect,F.Rectangle);g=s;h=t;$copy(i,u,F.Rectangle);j=1;}else if($assertType(l,AP,true)[1]){k=l.$val;f=$assertType(b,AP).Pix;v=k.Pix;w=k.Stride;x=$clone(k.Rect,F.Rectangle);g=v;h=w;$copy(i,x,F.Rectangle);j=2;}else if($assertType(l,AO,true)[1]){k=l.$val;f=$assertType(b,AO).Pix;y=k.Pix;z=k.Stride;aa=$clone(k.Rect,F.Rectangle);g=y;h=z;$copy(i,aa,F.Rectangle);j=4;}else if($assertType(l,AR,true)[1]){k=l.$val;f=$assertType(b,AR).Pix;ab=k.Pix;ac=k.Stride;ad=$clone(k.Rect,F.Rectangle);g=ab;h=ac;$copy(i,ad,F.Rectangle);j=8;}else if($assertType(l,AN,true)[1]){k=l.$val;f=$assertType(b,AN).Pix;ae=k.Pix;af=k.Stride;ag=$clone(k.Rect,F.Rectangle);g=ae;h=af;$copy(i,ag,F.Rectangle);j=1;}else if($assertType(l,AM,true)[1]){k=l.$val;f=$assertType(b,AM).Pix;ah=k.Pix;ai=k.Stride;aj=$clone(k.Rect,F.Rectangle);g=ah;h=ai;$copy(i,aj,F.Rectangle);j=4;}else if($assertType(l,AQ,true)[1]){k=l.$val;f=$assertType(b,AQ).Pix;ak=k.Pix;al=k.Stride;am=$clone(k.Rect,F.Rectangle);g=ak;h=al;$copy(i,am,F.Rectangle);j=8;}an=0;ao=$clone(b.Bounds(),F.Rectangle);ap=an;aq=$clone(ao,F.Rectangle);ar=aq.Min.Y;while(ar>0)+e.yOffset>>0)-i.Min.Y>>0))*h>>0)+(((e.xOffset-i.Min.X>>0))*j>>0)>>0;at=aq.Min.X;while(at>0)*j>>0)>>0;$copySlice($subslice(g,au),$subslice(f,ap,(ap+j>>0)));ap=ap+(j)>>0;at=at+(1)>>0;}ar=ar+(1)>>0;}};P.prototype.mergePassInto=function(a,b,c){return this.$val.mergePassInto(a,b,c);};P.Ptr.prototype.parseIDAT=function(a){var b=$ifaceNil,c,d;c=this;c.idatLength=a;d=c.decode();c.img=d[0];b=d[1];if(!($interfaceIsEqual(b,$ifaceNil))){b=b;return b;}b=c.verifyChecksum();return b;};P.prototype.parseIDAT=function(a){return this.$val.parseIDAT(a);};P.Ptr.prototype.parseIEND=function(a){var b;b=this;if(!((a===0))){return new Q("bad IEND length");}return b.verifyChecksum();};P.prototype.parseIEND=function(a){return this.$val.parseIEND(a);};P.Ptr.prototype.parseChunk=function(){var a,b,c,d,e,f,g,h;a=this;b=H.ReadFull(a.r,$subslice(new AJ(a.tmp),0,8));c=b[0];d=b[1];if(!($interfaceIsEqual(d,$ifaceNil))){return d;}e=B.BigEndian.Uint32($subslice(new AJ(a.tmp),0,4));a.crc.Reset();a.crc.Write($subslice(new AJ(a.tmp),4,8));f=$bytesToString($subslice(new AJ(a.tmp),4,8));if(f==="IHDR"){if(!((a.stage===0))){return new Q(R);}a.stage=1;return a.parseIHDR(e);}else if(f==="PLTE"){if(!((a.stage===1))){return new Q(R);}a.stage=2;return a.parsePLTE(e);}else if(f==="tRNS"){if(!((a.stage===2))){return new Q(R);}return a.parsetRNS(e);}else if(f==="IDAT"){if(a.stage<1||a.stage>3||((a.cb===10)&&(a.stage===1))){return new Q(R);}a.stage=3;return a.parseIDAT(e);}else if(f==="IEND"){if(!((a.stage===3))){return new Q(R);}a.stage=4;return a.parseIEND(e);}g=$clone(AV.zero(),AV);while(e>0){h=H.ReadFull(a.r,$subslice(new AJ(g),0,T(4096,(e>>0))));c=h[0];d=h[1];if(!($interfaceIsEqual(d,$ifaceNil))){return d;}a.crc.Write($subslice(new AJ(g),0,c));e=e-((c>>>0))>>>0;}return a.verifyChecksum();};P.prototype.parseChunk=function(){return this.$val.parseChunk();};P.Ptr.prototype.verifyChecksum=function(){var a,b,c;a=this;b=H.ReadFull(a.r,$subslice(new AJ(a.tmp),0,4));c=b[1];if(!($interfaceIsEqual(c,$ifaceNil))){return c;}if(!((B.BigEndian.Uint32($subslice(new AJ(a.tmp),0,4))===a.crc.Sum32()))){return new Q("invalid checksum");}return $ifaceNil;};P.prototype.verifyChecksum=function(){return this.$val.verifyChecksum();};P.Ptr.prototype.checkHeader=function(){var a,b,c;a=this;b=H.ReadFull(a.r,$subslice(new AJ(a.tmp),0,8));c=b[1];if(!($interfaceIsEqual(c,$ifaceNil))){return c;}if(!($bytesToString($subslice(new AJ(a.tmp),0,8))==="\x89PNG\r\n\x1A\n")){return new Q("not a PNG file");}return $ifaceNil;};P.prototype.checkHeader=function(){return this.$val.checkHeader();};U=$pkg.Decode=function(a){var b,c,d;b=new P.Ptr(a,$ifaceNil,E.NewIEEE(),0,0,0,G.Palette.nil,0,0,0,AW.zero(),0);c=b.checkHeader();if(!($interfaceIsEqual(c,$ifaceNil))){if($interfaceIsEqual(c,H.EOF)){c=H.ErrUnexpectedEOF;}return[$ifaceNil,c];}while(!((b.stage===4))){d=b.parseChunk();if(!($interfaceIsEqual(d,$ifaceNil))){if($interfaceIsEqual(d,H.EOF)){d=H.ErrUnexpectedEOF;}return[$ifaceNil,d];}}return[b.img,$ifaceNil];};V=$pkg.DecodeConfig=function(a){var b,c,d,e,f,g;b=new P.Ptr(a,$ifaceNil,E.NewIEEE(),0,0,0,G.Palette.nil,0,0,0,AW.zero(),0);c=b.checkHeader();if(!($interfaceIsEqual(c,$ifaceNil))){if($interfaceIsEqual(c,H.EOF)){c=H.ErrUnexpectedEOF;}return[new F.Config.Ptr($ifaceNil,0,0),c];}while(true){d=b.parseChunk();if(!($interfaceIsEqual(d,$ifaceNil))){if($interfaceIsEqual(d,H.EOF)){d=H.ErrUnexpectedEOF;}return[new F.Config.Ptr($ifaceNil,0,0),d];}e=(b.cb===10)||(b.cb===9)||(b.cb===8)||(b.cb===7);if((b.stage===1)&&!e){break;}if((b.stage===2)&&e){break;}}f=$ifaceNil;g=b.cb;if(g===1||g===2||g===3||g===4){f=G.GrayModel;}else if(g===5){f=G.NRGBAModel;}else if(g===6){f=G.RGBAModel;}else if(g===7||g===8||g===9||g===10){f=b.palette;}else if(g===11){f=G.NRGBAModel;}else if(g===12){f=G.Gray16Model;}else if(g===13){f=G.NRGBA64Model;}else if(g===14){f=G.RGBA64Model;}else if(g===15){f=G.NRGBA64Model;}return[new F.Config.Ptr(f,b.width,b.height),$ifaceNil];};W=function(){F.RegisterFormat("png","\x89PNG\r\n\x1A\n",U,V);};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=I.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=A.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}$r=E.$init($BLOCKING);$s=6;case 6:if($r&&$r.$blocking){$r=$r();}$r=F.$init($BLOCKING);$s=7;case 7:if($r&&$r.$blocking){$r=$r();}$r=G.$init($BLOCKING);$s=8;case 8:if($r&&$r.$blocking){$r=$r();}$r=H.$init($BLOCKING);$s=9;case 9:if($r&&$r.$blocking){$r=$r();}$r=J.$init($BLOCKING);$s=10;case 10:if($r&&$r.$blocking){$r=$r();}AI=$sliceType(N);AJ=$sliceType($Uint8);AK=$sliceType($emptyInterface);AL=$ptrType(F.Gray);AM=$ptrType(F.RGBA);AN=$ptrType(F.Paletted);AO=$ptrType(F.NRGBA);AP=$ptrType(F.Gray16);AQ=$ptrType(F.RGBA64);AR=$ptrType(F.NRGBA64);AS=$sliceType($Uint8);AT=$ptrType(F.Alpha);AU=$ptrType(F.Alpha16);AV=$arrayType($Uint8,4096);AW=$arrayType($Uint8,768);AZ=$ptrType(P);BA=$ptrType(Q);BB=$ptrType(S);N.init([["xFactor","xFactor","image/png",$Int,""],["yFactor","yFactor","image/png",$Int,""],["xOffset","xOffset","image/png",$Int,""],["yOffset","yOffset","image/png",$Int,""]]);AZ.methods=[["Read","Read","",$funcType([AJ],[$Int,$error],false),-1],["checkHeader","checkHeader","image/png",$funcType([],[$error],false),-1],["decode","decode","image/png",$funcType([],[F.Image,$error],false),-1],["mergePassInto","mergePassInto","image/png",$funcType([F.Image,F.Image,$Int],[],false),-1],["parseChunk","parseChunk","image/png",$funcType([],[$error],false),-1],["parseIDAT","parseIDAT","image/png",$funcType([$Uint32],[$error],false),-1],["parseIEND","parseIEND","image/png",$funcType([$Uint32],[$error],false),-1],["parseIHDR","parseIHDR","image/png",$funcType([$Uint32],[$error],false),-1],["parsePLTE","parsePLTE","image/png",$funcType([$Uint32],[$error],false),-1],["parsetRNS","parsetRNS","image/png",$funcType([$Uint32],[$error],false),-1],["readImagePass","readImagePass","image/png",$funcType([H.Reader,$Int,$Bool],[F.Image,$error],false),-1],["verifyChecksum","verifyChecksum","image/png",$funcType([],[$error],false),-1]];P.init([["r","r","image/png",H.Reader,""],["img","img","image/png",F.Image,""],["crc","crc","image/png",D.Hash32,""],["width","width","image/png",$Int,""],["height","height","image/png",$Int,""],["depth","depth","image/png",$Int,""],["palette","palette","image/png",G.Palette,""],["cb","cb","image/png",$Int,""],["stage","stage","image/png",$Int,""],["idatLength","idatLength","image/png",$Uint32,""],["tmp","tmp","image/png",AW,""],["interlace","interlace","image/png",$Int,""]]);Q.methods=[["Error","Error","",$funcType([],[$String],false),-1]];BA.methods=[["Error","Error","",$funcType([],[$String],false),-1]];S.methods=[["Error","Error","",$funcType([],[$String],false),-1]];BB.methods=[["Error","Error","",$funcType([],[$String],false),-1]];O=new AI([new N.Ptr(8,8,0,0),new N.Ptr(8,8,4,0),new N.Ptr(4,8,0,4),new N.Ptr(4,4,2,0),new N.Ptr(2,4,0,2),new N.Ptr(2,2,1,0),new N.Ptr(1,2,0,1)]);R="chunk out of order";W();}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["path/filepath"]=(function(){var $pkg={},G,A,B,C,D,E,F;G=$packages["bytes"];A=$packages["errors"];B=$packages["os"];C=$packages["runtime"];D=$packages["sort"];E=$packages["strings"];F=$packages["unicode/utf8"];$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=G.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=A.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}$r=E.$init($BLOCKING);$s=6;case 6:if($r&&$r.$blocking){$r=$r();}$r=F.$init($BLOCKING);$s=7;case 7:if($r&&$r.$blocking){$r=$r();}$pkg.ErrBadPattern=A.New("syntax error in pattern");$pkg.SkipDir=A.New("skip this directory");}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["io/ioutil"]=(function(){var $pkg={},A,B,C,F,D,G,E,H,Y,Z,AA,R;A=$packages["bytes"];B=$packages["io"];C=$packages["os"];F=$packages["path/filepath"];D=$packages["sort"];G=$packages["strconv"];E=$packages["sync"];H=$packages["time"];$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=F.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}$r=G.$init($BLOCKING);$s=6;case 6:if($r&&$r.$blocking){$r=$r();}$r=E.$init($BLOCKING);$s=7;case 7:if($r&&$r.$blocking){$r=$r();}$r=H.$init($BLOCKING);$s=8;case 8:if($r&&$r.$blocking){$r=$r();}Y=$sliceType($emptyInterface);Z=$sliceType($Uint8);AA=$ptrType(Z);R=new E.Pool.Ptr(0,0,Y.nil,(function(){var a;a=Z.make(8192);return new AA(function(){return a;},function($v){a=$v;});}));}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["path"]=(function(){var $pkg={},A,B,C;A=$packages["errors"];B=$packages["strings"];C=$packages["unicode/utf8"];$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$pkg.ErrBadPattern=A.New("syntax error in pattern");}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["github.com/hajimehoshi/ebiten/internal/assets"]=(function(){var $pkg={},A,D,B,C,E,F,G,H,I,J;A=$packages["bytes"];D=$packages["fmt"];B=$packages["image"];C=$packages["image/png"];E=$packages["io/ioutil"];F=$packages["os"];G=$packages["path"];H=$packages["path/filepath"];I=$packages["strings"];J=$packages["time"];$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=E.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}$r=F.$init($BLOCKING);$s=6;case 6:if($r&&$r.$blocking){$r=$r();}$r=G.$init($BLOCKING);$s=7;case 7:if($r&&$r.$blocking){$r=$r();}$r=H.$init($BLOCKING);$s=8;case 8:if($r&&$r.$blocking){$r=$r();}$r=I.$init($BLOCKING);$s=9;case 9:if($r&&$r.$blocking){$r=$r();}$r=J.$init($BLOCKING);$s=10;case 10:if($r&&$r.$blocking){$r=$r();}}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["image/color/palette"]=(function(){var $pkg={},A;A=$packages["image/color"];$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["compress/lzw"]=(function(){var $pkg={},A,B,C,D,N,O,P,S,T,U,V,F,G,L,H;A=$packages["bufio"];B=$packages["errors"];C=$packages["fmt"];D=$packages["io"];F=$pkg.decoder=$newType(0,$kindStruct,"lzw.decoder","decoder","compress/lzw",function(r_,bits_,nBits_,width_,read_,litWidth_,err_,clear_,eof_,hi_,overflow_,last_,suffix_,prefix_,output_,o_,toRead_){this.$val=this;this.r=r_!==undefined?r_:$ifaceNil;this.bits=bits_!==undefined?bits_:0;this.nBits=nBits_!==undefined?nBits_:0;this.width=width_!==undefined?width_:0;this.read=read_!==undefined?read_:$throwNilPointerError;this.litWidth=litWidth_!==undefined?litWidth_:0;this.err=err_!==undefined?err_:$ifaceNil;this.clear=clear_!==undefined?clear_:0;this.eof=eof_!==undefined?eof_:0;this.hi=hi_!==undefined?hi_:0;this.overflow=overflow_!==undefined?overflow_:0;this.last=last_!==undefined?last_:0;this.suffix=suffix_!==undefined?suffix_:S.zero();this.prefix=prefix_!==undefined?prefix_:T.zero();this.output=output_!==undefined?output_:U.zero();this.o=o_!==undefined?o_:0;this.toRead=toRead_!==undefined?toRead_:N.nil;});F.Ptr.prototype.readLSB=function(){var a,b,c,d,e,f,g,h;a=this;while(a.nBits>>0)<>>0)))>>>0;a.nBits=a.nBits+(8)>>>0;}g=(((a.bits&((((f=a.width,f<32?(1<>>0)-1>>>0)))>>>0)<<16>>>16);a.bits=(h=(a.width),h<32?(a.bits>>>h):0)>>>0;a.nBits=a.nBits-(a.width)>>>0;return[g,$ifaceNil];};F.prototype.readLSB=function(){return this.$val.readLSB();};F.Ptr.prototype.readMSB=function(){var a,b,c,d,e,f,g,h;a=this;while(a.nBits>>0)),e<32?((c>>>0)<>>0)))>>>0;a.nBits=a.nBits+(8)>>>0;}g=(((f=((32-a.width>>>0)),f<32?(a.bits>>>f):0)>>>0)<<16>>>16);a.bits=(h=(a.width),h<32?(a.bits<>>0;a.nBits=a.nBits-(a.width)>>>0;return[g,$ifaceNil];};F.prototype.readMSB=function(){return this.$val.readMSB();};F.Ptr.prototype.Read=function(a){var b,c;b=this;while(true){if(b.toRead.$length>0){c=$copySlice(a,b.toRead);b.toRead=$subslice(b.toRead,c);return[c,$ifaceNil];}if(!($interfaceIsEqual(b.err,$ifaceNil))){return[0,b.err];}b.decode();}};F.prototype.Read=function(a){return this.$val.Read(a);};F.Ptr.prototype.decode=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab;a=this;while(true){b=a.read(a);c=b[0];d=b[1];if(!($interfaceIsEqual(d,$ifaceNil))){if($interfaceIsEqual(d,D.EOF)){d=D.ErrUnexpectedEOF;}a.err=d;return;}if(c=e.length)?$throwRuntimeError("index out of range"):e[f]=(c<<24>>>24));a.o=a.o+(1)>>0;if(!((a.last===65535))){(g=a.suffix,h=a.hi,(h<0||h>=g.length)?$throwRuntimeError("index out of range"):g[h]=(c<<24>>>24));(i=a.prefix,j=a.hi,(j<0||j>=i.length)?$throwRuntimeError("index out of range"):i[j]=a.last);}}else if(c===a.clear){a.width=1+(a.litWidth>>>0)>>>0;a.hi=a.eof;a.overflow=(k=a.width,k<32?(1<>>16;a.last=65535;continue;}else if(c===a.eof){a.flush();a.err=D.EOF;return;}else if(c<=a.hi){l=c;m=8191;n=l;o=m;if(c===a.hi){n=a.last;while(n>=a.clear){n=(p=a.prefix,((n<0||n>=p.length)?$throwRuntimeError("index out of range"):p[n]));}(q=a.output,(o<0||o>=q.length)?$throwRuntimeError("index out of range"):q[o]=(n<<24>>>24));o=o-(1)>>0;n=a.last;}while(n>=a.clear){(s=a.output,(o<0||o>=s.length)?$throwRuntimeError("index out of range"):s[o]=(r=a.suffix,((n<0||n>=r.length)?$throwRuntimeError("index out of range"):r[n])));o=o-(1)>>0;n=(t=a.prefix,((n<0||n>=t.length)?$throwRuntimeError("index out of range"):t[n]));}(u=a.output,(o<0||o>=u.length)?$throwRuntimeError("index out of range"):u[o]=(n<<24>>>24));a.o=a.o+($copySlice($subslice(new N(a.output),a.o),$subslice(new N(a.output),o)))>>0;if(!((a.last===65535))){(v=a.suffix,w=a.hi,(w<0||w>=v.length)?$throwRuntimeError("index out of range"):v[w]=(n<<24>>>24));(x=a.prefix,y=a.hi,(y<0||y>=x.length)?$throwRuntimeError("index out of range"):x[y]=a.last);}}else{a.err=B.New("lzw: invalid code");return;}z=c;aa=a.hi+1<<16>>>16;a.last=z;a.hi=aa;if(a.hi>=a.overflow){if(a.width===12){a.last=65535;}else{a.width=a.width+(1)>>>0;a.overflow=(ab=(1),ab<32?(a.overflow<>>16;}}if(a.o>=4096){a.flush();return;}}};F.prototype.decode=function(){return this.$val.decode();};F.Ptr.prototype.flush=function(){var a;a=this;a.toRead=$subslice(new N(a.output),0,a.o);a.o=0;};F.prototype.flush=function(){return this.$val.flush();};F.Ptr.prototype.Close=function(){var a;a=this;a.err=G;return $ifaceNil;};F.prototype.Close=function(){return this.$val.Close();};H=$pkg.NewReader=function(a,b,c){var d,e,f,g,h,i,j,k,l;d=new F.Ptr();e=b;if(e===0){d.read=$methodExpr(O.prototype.readLSB);}else if(e===1){d.read=$methodExpr(O.prototype.readMSB);}else{d.err=B.New("lzw: unknown order");return d;}if(c<2||8>>0)>>>0;d.clear=(i=(c>>>0),i<32?(1<>>16;j=d.clear+1<<16>>>16;k=d.clear+1<<16>>>16;d.eof=j;d.hi=k;d.overflow=(l=d.width,l<32?(1<>>16;d.last=65535;return d;};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}N=$sliceType($Uint8);O=$ptrType(F);P=$sliceType($emptyInterface);S=$arrayType($Uint8,4096);T=$arrayType($Uint16,4096);U=$arrayType($Uint8,8192);V=$funcType([O],[$Uint16,$error],false);O.methods=[["Close","Close","",$funcType([],[$error],false),-1],["Read","Read","",$funcType([N],[$Int,$error],false),-1],["decode","decode","compress/lzw",$funcType([],[],false),-1],["flush","flush","compress/lzw",$funcType([],[],false),-1],["readLSB","readLSB","compress/lzw",$funcType([],[$Uint16,$error],false),-1],["readMSB","readMSB","compress/lzw",$funcType([],[$Uint16,$error],false),-1]];F.init([["r","r","compress/lzw",D.ByteReader,""],["bits","bits","compress/lzw",$Uint32,""],["nBits","nBits","compress/lzw",$Uint,""],["width","width","compress/lzw",$Uint,""],["read","read","compress/lzw",V,""],["litWidth","litWidth","compress/lzw",$Int,""],["err","err","compress/lzw",$error,""],["clear","clear","compress/lzw",$Uint16,""],["eof","eof","compress/lzw",$Uint16,""],["hi","hi","compress/lzw",$Uint16,""],["overflow","overflow","compress/lzw",$Uint16,""],["last","last","compress/lzw",$Uint16,""],["suffix","suffix","compress/lzw",S,""],["prefix","prefix","compress/lzw",T,""],["output","output","compress/lzw",U,""],["o","o","compress/lzw",$Int,""],["toRead","toRead","compress/lzw",N,""]]);G=B.New("compress/lzw: reader/writer is closed");L=B.New("lzw: out of codes");}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["image/gif"]=(function(){var $pkg={},A,B,C,D,E,F,H,I,G,AG,AH,AI,AJ,AK,AL,AN,AO,AQ,AS,AT,M,N,O,P,J,K,L,Q,R,S,V,W;A=$packages["bufio"];B=$packages["compress/lzw"];C=$packages["errors"];D=$packages["fmt"];E=$packages["image"];F=$packages["image/color"];H=$packages["image/color/palette"];I=$packages["image/draw"];G=$packages["io"];M=$pkg.reader=$newType(8,$kindInterface,"gif.reader","reader","image/gif",null);N=$pkg.decoder=$newType(0,$kindStruct,"gif.decoder","decoder","image/gif",function(r_,vers_,width_,height_,flags_,headerFields_,backgroundIndex_,loopCount_,delayTime_,aspect_,imageFields_,transparentIndex_,hasTransparentIndex_,pixelSize_,globalColorMap_,delay_,image_,tmp_){this.$val=this;this.r=r_!==undefined?r_:$ifaceNil;this.vers=vers_!==undefined?vers_:"";this.width=width_!==undefined?width_:0;this.height=height_!==undefined?height_:0;this.flags=flags_!==undefined?flags_:0;this.headerFields=headerFields_!==undefined?headerFields_:0;this.backgroundIndex=backgroundIndex_!==undefined?backgroundIndex_:0;this.loopCount=loopCount_!==undefined?loopCount_:0;this.delayTime=delayTime_!==undefined?delayTime_:0;this.aspect=aspect_!==undefined?aspect_:0;this.imageFields=imageFields_!==undefined?imageFields_:0;this.transparentIndex=transparentIndex_!==undefined?transparentIndex_:0;this.hasTransparentIndex=hasTransparentIndex_!==undefined?hasTransparentIndex_:false;this.pixelSize=pixelSize_!==undefined?pixelSize_:0;this.globalColorMap=globalColorMap_!==undefined?globalColorMap_:F.Palette.nil;this.delay=delay_!==undefined?delay_:AO.nil;this.image=image_!==undefined?image_:AN.nil;this.tmp=tmp_!==undefined?tmp_:AQ.zero();});O=$pkg.blockReader=$newType(0,$kindStruct,"gif.blockReader","blockReader","image/gif",function(r_,slice_,err_,tmp_){this.$val=this;this.r=r_!==undefined?r_:$ifaceNil;this.slice=slice_!==undefined?slice_:AH.nil;this.err=err_!==undefined?err_:$ifaceNil;this.tmp=tmp_!==undefined?tmp_:AJ.zero();});P=$pkg.interlaceScan=$newType(0,$kindStruct,"gif.interlaceScan","interlaceScan","image/gif",function(skip_,start_){this.$val=this;this.skip=skip_!==undefined?skip_:0;this.start=start_!==undefined?start_:0;});O.Ptr.prototype.Read=function(a){var b,c,d,e,f;b=this;if(!($interfaceIsEqual(b.err,$ifaceNil))){return[0,b.err];}if(a.$length===0){return[0,$ifaceNil];}if(b.slice.$length===0){c=0;d=b.r.ReadByte();c=d[0];b.err=d[1];if(!($interfaceIsEqual(b.err,$ifaceNil))){return[0,b.err];}if(c===0){b.err=G.EOF;return[0,b.err];}b.slice=$subslice(new AH(b.tmp),0,c);e=G.ReadFull(b.r,b.slice);b.err=e[1];if(!($interfaceIsEqual(b.err,$ifaceNil))){return[0,b.err];}}f=$copySlice(a,b.slice);b.slice=$subslice(b.slice,f);return[f,$ifaceNil];};O.prototype.Read=function(a){return this.$val.Read(a);};N.Ptr.prototype.decode=function(a,b){var $deferred=[],$err=null,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah;try{$deferFrames.push($deferred);c=this;d=$assertType(a,M,true);e=d[0];f=d[1];if(f){c.r=e;}else{c.r=A.NewReader(a);}g=c.readHeaderAndScreenDescriptor();if(!($interfaceIsEqual(g,$ifaceNil))){return g;}if(b){return $ifaceNil;}if(!((((c.headerFields&128)>>>0)===0))){h=c.readColorMap();c.globalColorMap=h[0];g=h[1];if(!($interfaceIsEqual(g,$ifaceNil))){return g;}}while(true){i=c.r.ReadByte();j=i[0];k=i[1];if(!($interfaceIsEqual(k,$ifaceNil))){return k;}l=j;if(l===33){k=c.readExtension();if(!($interfaceIsEqual(k,$ifaceNil))){return k;}}else if(l===44){m=c.newImageFromDescriptor();n=m[0];o=m[1];if(!($interfaceIsEqual(o,$ifaceNil))){return o;}p=!((((c.imageFields&128)>>>0)===0));if(p){q=c.readColorMap();n.Palette=q[0];o=q[1];if(!($interfaceIsEqual(o,$ifaceNil))){return o;}}else{n.Palette=c.globalColorMap;}if(c.hasTransparentIndex&&(c.transparentIndex>>0)=s.$length)?$throwRuntimeError("index out of range"):s.$array[s.$offset+t]=(r=new F.RGBA.Ptr(0,0,0,0),new r.constructor.Struct(r)));}u=c.r.ReadByte();v=u[0];o=u[1];if(!($interfaceIsEqual(o,$ifaceNil))){return o;}if(v<2||v>8){return D.Errorf("gif: pixel size in decode out of range: %d",new AI([new $Uint8(v)]));}w=new O.Ptr(c.r,AH.nil,$ifaceNil,AJ.zero());x=B.NewReader(w,0,(v>>0));$deferred.push([$methodVal(x,"Close"),[]]);y=G.ReadFull(x,n.Pix);o=y[1];if(!($interfaceIsEqual(o,$ifaceNil))){if(!($interfaceIsEqual(o,G.ErrUnexpectedEOF))){return o;}return J;}z=x.Read($subslice(new AH(c.tmp),0,1));aa=z[0];ab=z[1];if(!((aa===0))||!($interfaceIsEqual(ab,G.EOF))){if(!($interfaceIsEqual(ab,$ifaceNil))){return ab;}return K;}ac=w.Read($subslice(new AH(c.tmp),0,1));ad=ac[0];ae=ac[1];if(!((ad===0))||!($interfaceIsEqual(ae,G.EOF))){if(!($interfaceIsEqual(ae,$ifaceNil))){return ae;}return K;}if(n.Palette.$length<256){af=n.Pix;ag=0;while(ag=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+ag]);if((ah>>0)>=n.Palette.$length){return L;}ag++;}}if(!((((c.imageFields&64)>>>0)===0))){R(n);}c.image=$append(c.image,n);c.delay=$append(c.delay,c.delayTime);c.delayTime=0;c.hasTransparentIndex=false;}else if(l===59){if(c.image.$length===0){return G.ErrUnexpectedEOF;}return $ifaceNil;}else{return D.Errorf("gif: unknown block type: 0x%.2x",new AI([new $Uint8(j)]));}}}catch(err){$err=err;return $ifaceNil;}finally{$deferFrames.pop();$callDeferred($deferred,$err);}};N.prototype.decode=function(a,b){return this.$val.decode(a,b);};N.Ptr.prototype.readHeaderAndScreenDescriptor=function(){var a,b,c;a=this;b=G.ReadFull(a.r,$subslice(new AH(a.tmp),0,13));c=b[1];if(!($interfaceIsEqual(c,$ifaceNil))){return c;}a.vers=$bytesToString($subslice(new AH(a.tmp),0,6));if(!(a.vers==="GIF87a")&&!(a.vers==="GIF89a")){return D.Errorf("gif: can't recognize format %s",new AI([new $String(a.vers)]));}a.width=(a.tmp[6]>>0)+((a.tmp[7]>>0)<<8>>0)>>0;a.height=(a.tmp[8]>>0)+((a.tmp[9]>>0)<<8>>0)>>0;a.headerFields=a.tmp[10];a.backgroundIndex=a.tmp[11];a.aspect=a.tmp[12];a.loopCount=-1;a.pixelSize=(((a.headerFields&7)>>>0)>>>0)+1>>>0;return $ifaceNil;};N.prototype.readHeaderAndScreenDescriptor=function(){return this.$val.readHeaderAndScreenDescriptor();};N.Ptr.prototype.readColorMap=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;a=this;if(a.pixelSize>8){return[F.Palette.nil,D.Errorf("gif: can't handle %d bits per pixel",new AI([new $Uint(a.pixelSize)]))];}c=(b=a.pixelSize,b<32?(1<>0;if(!((((a.imageFields&128)>>>0)===0))){c=(d=(((((a.imageFields&7)>>>0))+1<<24>>>24)),d<32?(1<>0;}e=3*c>>0;f=G.ReadFull(a.r,$subslice(new AH(a.tmp),0,e));g=f[1];if(!($interfaceIsEqual(g,$ifaceNil))){return[F.Palette.nil,D.Errorf("gif: short read on color map: %s",new AI([g]))];}h=F.Palette.make(c);i=0;j=h;k=0;while(k=h.$length)?$throwRuntimeError("index out of range"):h.$array[h.$offset+l]=(m=new F.RGBA.Ptr((n=a.tmp,o=i+0>>0,((o<0||o>=n.length)?$throwRuntimeError("index out of range"):n[o])),(p=a.tmp,q=i+1>>0,((q<0||q>=p.length)?$throwRuntimeError("index out of range"):p[q])),(r=a.tmp,s=i+2>>0,((s<0||s>=r.length)?$throwRuntimeError("index out of range"):r[s])),255),new m.constructor.Struct(m));i=i+(3)>>0;k++;}return[h,$ifaceNil];};N.prototype.readColorMap=function(){return this.$val.readColorMap();};N.Ptr.prototype.readExtension=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;a=this;b=a.r.ReadByte();c=b[0];d=b[1];if(!($interfaceIsEqual(d,$ifaceNil))){return d;}e=0;f=c;if(f===1){e=13;}else if(f===249){return a.readGraphicControl();}else if(f===254){}else if(f===255){g=a.r.ReadByte();h=g[0];i=g[1];if(!($interfaceIsEqual(i,$ifaceNil))){return i;}e=(h>>0);}else{return D.Errorf("gif: unknown extension 0x%.2x",new AI([new $Uint8(c)]));}if(e>0){j=G.ReadFull(a.r,$subslice(new AH(a.tmp),0,e));k=j[1];if(!($interfaceIsEqual(k,$ifaceNil))){return k;}}if((c===255)&&$bytesToString($subslice(new AH(a.tmp),0,e))==="NETSCAPE2.0"){l=a.readBlock();m=l[0];n=l[1];if((m===0)||!($interfaceIsEqual(n,$ifaceNil))){return n;}if((m===3)&&(a.tmp[0]===1)){a.loopCount=(a.tmp[1]>>0)|((a.tmp[2]>>0)<<8>>0);}}while(true){o=a.readBlock();p=o[0];q=o[1];if((p===0)||!($interfaceIsEqual(q,$ifaceNil))){return q;}}};N.prototype.readExtension=function(){return this.$val.readExtension();};N.Ptr.prototype.readGraphicControl=function(){var a,b,c;a=this;b=G.ReadFull(a.r,$subslice(new AH(a.tmp),0,6));c=b[1];if(!($interfaceIsEqual(c,$ifaceNil))){return D.Errorf("gif: can't read graphic control: %s",new AI([c]));}a.flags=a.tmp[1];a.delayTime=(a.tmp[2]>>0)|((a.tmp[3]>>0)<<8>>0);if(!((((a.flags&1)>>>0)===0))){a.transparentIndex=a.tmp[4];a.hasTransparentIndex=true;}return $ifaceNil;};N.prototype.readGraphicControl=function(){return this.$val.readGraphicControl();};N.Ptr.prototype.newImageFromDescriptor=function(){var a,b,c,d,e,f,g,h;a=this;b=G.ReadFull(a.r,$subslice(new AH(a.tmp),0,9));c=b[1];if(!($interfaceIsEqual(c,$ifaceNil))){return[AK.nil,D.Errorf("gif: can't read image descriptor: %s",new AI([c]))];}d=(a.tmp[0]>>0)+((a.tmp[1]>>0)<<8>>0)>>0;e=(a.tmp[2]>>0)+((a.tmp[3]>>0)<<8>>0)>>0;f=(a.tmp[4]>>0)+((a.tmp[5]>>0)<<8>>0)>>0;g=(a.tmp[6]>>0)+((a.tmp[7]>>0)<<8>>0)>>0;a.imageFields=a.tmp[8];h=$clone(E.Rect(d,e,d+f>>0,e+g>>0),E.Rectangle);if(!($equal(h,h.Intersect(E.Rect(0,0,a.width,a.height)),E.Rectangle))){return[AK.nil,C.New("gif: frame bounds larger than image bounds")];}return[E.NewPaletted(h,F.Palette.nil),$ifaceNil];};N.prototype.newImageFromDescriptor=function(){return this.$val.newImageFromDescriptor();};N.Ptr.prototype.readBlock=function(){var a,b,c,d;a=this;b=a.r.ReadByte();c=b[0];d=b[1];if((c===0)||!($interfaceIsEqual(d,$ifaceNil))){return[0,d];}return G.ReadFull(a.r,$subslice(new AH(a.tmp),0,c));};N.prototype.readBlock=function(){return this.$val.readBlock();};R=function(a){var b,c,d,e,f,g,h,i,j;b=AL.nil;c=a.Bounds().Dx();d=a.Bounds().Dy();b=AL.make((c*d>>0));e=0;f=Q;g=0;while(g=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+g]),P);i=h.start*c>>0;j=h.start;while(j>0)),$subslice(a.Pix,e,(e+c>>0)));e=e+(c)>>0;i=i+((c*h.skip>>0))>>0;j=j+(h.skip)>>0;}g++;}a.Pix=b;};S=$pkg.Decode=function(a){var b,c,d;b=$clone(new N.Ptr(),N);c=b.decode(a,false);if(!($interfaceIsEqual(c,$ifaceNil))){return[$ifaceNil,c];}return[(d=b.image,((0<0||0>=d.$length)?$throwRuntimeError("index out of range"):d.$array[d.$offset+0])),$ifaceNil];};V=$pkg.DecodeConfig=function(a){var b,c;b=$clone(new N.Ptr(),N);c=b.decode(a,true);if(!($interfaceIsEqual(c,$ifaceNil))){return[new E.Config.Ptr($ifaceNil,0,0),c];}return[new E.Config.Ptr(b.globalColorMap,b.width,b.height),$ifaceNil];};W=function(){E.RegisterFormat("gif","GIF8?a",S,V);};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=E.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}$r=F.$init($BLOCKING);$s=6;case 6:if($r&&$r.$blocking){$r=$r();}$r=H.$init($BLOCKING);$s=7;case 7:if($r&&$r.$blocking){$r=$r();}$r=I.$init($BLOCKING);$s=8;case 8:if($r&&$r.$blocking){$r=$r();}$r=G.$init($BLOCKING);$s=9;case 9:if($r&&$r.$blocking){$r=$r();}AG=$sliceType(P);AH=$sliceType($Uint8);AI=$sliceType($emptyInterface);AJ=$arrayType($Uint8,256);AK=$ptrType(E.Paletted);AL=$sliceType($Uint8);AN=$sliceType(AK);AO=$sliceType($Int);AQ=$arrayType($Uint8,1024);AS=$ptrType(N);AT=$ptrType(O);M.init([["Read","Read","",$funcType([AH],[$Int,$error],false)],["ReadByte","ReadByte","",$funcType([],[$Uint8,$error],false)]]);AS.methods=[["decode","decode","image/gif",$funcType([G.Reader,$Bool],[$error],false),-1],["newImageFromDescriptor","newImageFromDescriptor","image/gif",$funcType([],[AK,$error],false),-1],["readBlock","readBlock","image/gif",$funcType([],[$Int,$error],false),-1],["readColorMap","readColorMap","image/gif",$funcType([],[F.Palette,$error],false),-1],["readExtension","readExtension","image/gif",$funcType([],[$error],false),-1],["readGraphicControl","readGraphicControl","image/gif",$funcType([],[$error],false),-1],["readHeaderAndScreenDescriptor","readHeaderAndScreenDescriptor","image/gif",$funcType([],[$error],false),-1]];N.init([["r","r","image/gif",M,""],["vers","vers","image/gif",$String,""],["width","width","image/gif",$Int,""],["height","height","image/gif",$Int,""],["flags","flags","image/gif",$Uint8,""],["headerFields","headerFields","image/gif",$Uint8,""],["backgroundIndex","backgroundIndex","image/gif",$Uint8,""],["loopCount","loopCount","image/gif",$Int,""],["delayTime","delayTime","image/gif",$Int,""],["aspect","aspect","image/gif",$Uint8,""],["imageFields","imageFields","image/gif",$Uint8,""],["transparentIndex","transparentIndex","image/gif",$Uint8,""],["hasTransparentIndex","hasTransparentIndex","image/gif",$Bool,""],["pixelSize","pixelSize","image/gif",$Uint,""],["globalColorMap","globalColorMap","image/gif",F.Palette,""],["delay","delay","image/gif",AO,""],["image","image","image/gif",AN,""],["tmp","tmp","image/gif",AQ,""]]);AT.methods=[["Read","Read","",$funcType([AH],[$Int,$error],false),-1]];O.init([["r","r","image/gif",M,""],["slice","slice","image/gif",AH,""],["err","err","image/gif",$error,""],["tmp","tmp","image/gif",AJ,""]]);P.init([["skip","skip","image/gif",$Int,""],["start","start","image/gif",$Int,""]]);J=C.New("gif: not enough image data");K=C.New("gif: too much image data");L=C.New("gif: invalid pixel value");Q=new AG([new P.Ptr(8,0),new P.Ptr(8,4),new P.Ptr(4,2),new P.Ptr(2,1)]);W();}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["github.com/hajimehoshi/ebiten/ebitenutil"]=(function(){var $pkg={},L,M,N,O,A,B,F,C,G,H,I,J,D,E,K,Y,AA,AB,AG,AH,AI,AJ,U,V,X;L=$packages["bytes"];M=$packages["errors"];N=$packages["fmt"];O=$packages["github.com/gopherjs/gopherjs/js"];A=$packages["github.com/hajimehoshi/ebiten"];B=$packages["github.com/hajimehoshi/ebiten/internal/assets"];F=$packages["image"];C=$packages["image/color"];G=$packages["image/color/palette"];H=$packages["image/draw"];I=$packages["image/gif"];J=$packages["io"];D=$packages["math"];E=$packages["strings"];K=$packages["sync"];V=function(){var a,b,c,d,e,f,g,h,i,j,k;a=new AA([]);b=new AB([0,128,255]);c=0;while(c=b.$length)?$throwRuntimeError("index out of range"):b.$array[b.$offset+c]);e=new AB([0,128,255]);f=0;while(f=e.$length)?$throwRuntimeError("index out of range"):e.$array[e.$offset+f]);h=new AB([0,128,255]);i=0;while(i=h.$length)?$throwRuntimeError("index out of range"):h.$array[h.$offset+i]);a=$append(a,(k=new C.RGBA.Ptr(d,g,j,255),new k.constructor.Struct(k)));i++;}f++;}c++;}U=$subslice(new C.Palette(a.$array),a.$offset,a.$offset+a.$length);};X=$pkg.NewImageFromFile=function(a,b,$b){var $this=this,$args=arguments,$r,$s=0,c,d,e,f,g,h,i,j,k,l,m;if($b!==$BLOCKING){$nonblockingCall();};var $f=function(){s:while(true){switch($s){case 0:c=$ifaceNil;d=null;e=new AH(0);f=new($global.XMLHttpRequest)();f.open($externalize("GET",$String),$externalize(a,$String),$externalize(true,$Bool));f.responseType=$externalize("arraybuffer",$String);f.onload=$externalize((function(){var $deferred=[],$err=null,g,h;try{$deferFrames.push($deferred);$deferred.push([function(g){$close(g);},[e]]);h=$parseInt(f.status)>>0;if(200<=h&&h<400){d=f.response;return;}c=M.New(N.Sprintf("http error: %d",new AI([new $Int(h)])));}catch(err){$err=err;}finally{$deferFrames.pop();$callDeferred($deferred,$err);}}),AJ);f.onerror=$externalize((function(){var $deferred=[],$err=null,g;try{$deferFrames.push($deferred);$deferred.push([function(g){$close(g);},[e]]);c=M.New("http error");}catch(err){$err=err;}finally{$deferFrames.pop();$callDeferred($deferred,$err);}}),AJ);f.send();g=$recv(e,$BLOCKING);$s=1;case 1:if(g&&g.$blocking){g=g();}g[0];if(!($interfaceIsEqual(c,$ifaceNil))){return[Y.nil,$ifaceNil,c];}h=$assertType($internalize(new($global.Uint8Array)(d),$emptyInterface),AB);i=L.NewBuffer(h);j=F.Decode(i);k=j[0];c=j[2];if(!($interfaceIsEqual(c,$ifaceNil))){return[Y.nil,$ifaceNil,c];}l=A.NewImageFromImage(k,b);m=l[0];c=l[1];if(!($interfaceIsEqual(c,$ifaceNil))){return[Y.nil,$ifaceNil,c];}return[m,k,$ifaceNil];case-1:}return;}};$f.$blocking=true;return $f;};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=L.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=M.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=N.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=O.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=A.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=6;case 6:if($r&&$r.$blocking){$r=$r();}$r=F.$init($BLOCKING);$s=7;case 7:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=8;case 8:if($r&&$r.$blocking){$r=$r();}$r=G.$init($BLOCKING);$s=9;case 9:if($r&&$r.$blocking){$r=$r();}$r=H.$init($BLOCKING);$s=10;case 10:if($r&&$r.$blocking){$r=$r();}$r=I.$init($BLOCKING);$s=11;case 11:if($r&&$r.$blocking){$r=$r();}$r=J.$init($BLOCKING);$s=12;case 12:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=13;case 13:if($r&&$r.$blocking){$r=$r();}$r=E.$init($BLOCKING);$s=14;case 14:if($r&&$r.$blocking){$r=$r();}$r=K.$init($BLOCKING);$s=15;case 15:if($r&&$r.$blocking){$r=$r();}Y=$ptrType(A.Image);AA=$sliceType(C.Color);AB=$sliceType($Uint8);AG=$structType([]);AH=$chanType(AG,false,false);AI=$sliceType($emptyInterface);AJ=$funcType([],[],false);U=C.Palette.nil;V();}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["image/jpeg"]=(function(){var $pkg={},D,E,B,C,A,AQ,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BF,BI,BJ,BK,BL,BM,BN,BO,BP,BQ,BR,BS,BT,BU,BV,BW,G,I,K,L,M,P,Q,AB,AD,H,N,R,AC,AE,J,S,T,U,AF;D=$packages["bufio"];E=$packages["errors"];B=$packages["image"];C=$packages["image/color"];A=$packages["io"];G=$pkg.huffman=$newType(0,$kindStruct,"jpeg.huffman","huffman","image/jpeg",function(nCodes_,lut_,vals_,minCodes_,maxCodes_,valsIndices_){this.$val=this;this.nCodes=nCodes_!==undefined?nCodes_:0;this.lut=lut_!==undefined?lut_:BI.zero();this.vals=vals_!==undefined?vals_:BJ.zero();this.minCodes=minCodes_!==undefined?minCodes_:AT.zero();this.maxCodes=maxCodes_!==undefined?maxCodes_:AT.zero();this.valsIndices=valsIndices_!==undefined?valsIndices_:AT.zero();});I=$pkg.block=$newType(256,$kindArray,"jpeg.block","block","image/jpeg",null);K=$pkg.FormatError=$newType(8,$kindString,"jpeg.FormatError","FormatError","image/jpeg",null);L=$pkg.UnsupportedError=$newType(8,$kindString,"jpeg.UnsupportedError","UnsupportedError","image/jpeg",null);M=$pkg.component=$newType(0,$kindStruct,"jpeg.component","component","image/jpeg",function(h_,v_,c_,tq_){this.$val=this;this.h=h_!==undefined?h_:0;this.v=v_!==undefined?v_:0;this.c=c_!==undefined?c_:0;this.tq=tq_!==undefined?tq_:0;});P=$pkg.bits=$newType(0,$kindStruct,"jpeg.bits","bits","image/jpeg",function(a_,m_,n_){this.$val=this;this.a=a_!==undefined?a_:0;this.m=m_!==undefined?m_:0;this.n=n_!==undefined?n_:0;});Q=$pkg.decoder=$newType(0,$kindStruct,"jpeg.decoder","decoder","image/jpeg",function(r_,bits_,bytes_,width_,height_,img1_,img3_,ri_,nComp_,progressive_,eobRun_,comp_,progCoeffs_,huff_,quant_,tmp_){this.$val=this;this.r=r_!==undefined?r_:$ifaceNil;this.bits=bits_!==undefined?bits_:new P.Ptr();this.bytes=bytes_!==undefined?bytes_:new BN.Ptr();this.width=width_!==undefined?width_:0;this.height=height_!==undefined?height_:0;this.img1=img1_!==undefined?img1_:AV.nil;this.img3=img3_!==undefined?img3_:AW.nil;this.ri=ri_!==undefined?ri_:0;this.nComp=nComp_!==undefined?nComp_:0;this.progressive=progressive_!==undefined?progressive_:false;this.eobRun=eobRun_!==undefined?eobRun_:0;this.comp=comp_!==undefined?comp_:BO.zero();this.progCoeffs=progCoeffs_!==undefined?progCoeffs_:BP.zero();this.huff=huff_!==undefined?huff_:BR.zero();this.quant=quant_!==undefined?quant_:BF.zero();this.tmp=tmp_!==undefined?tmp_:BS.zero();});AB=$pkg.huffmanSpec=$newType(0,$kindStruct,"jpeg.huffmanSpec","huffmanSpec","image/jpeg",function(count_,value_){this.$val=this;this.count=count_!==undefined?count_:BW.zero();this.value=value_!==undefined?value_:AS.nil;});AD=$pkg.huffmanLUT=$newType(12,$kindSlice,"jpeg.huffmanLUT","huffmanLUT","image/jpeg",null);Q.Ptr.prototype.ensureNBits=function(a){var b,c,d,e,f;b=this;while(true){c=b.readByteStuffedByte();d=c[0];e=c[1];if(!($interfaceIsEqual(e,$ifaceNil))){if($interfaceIsEqual(e,A.EOF)){return new K(H);}return e;}b.bits.a=((b.bits.a<<8>>>0)|(d>>>0))>>>0;b.bits.n=b.bits.n+(8)>>0;if(b.bits.m===0){b.bits.m=128;}else{b.bits.m=(f=(8),f<32?(b.bits.m<>>0;}if(b.bits.n>=a){break;}}return $ifaceNil;};Q.prototype.ensureNBits=function(a){return this.$val.ensureNBits(a);};Q.Ptr.prototype.receiveExtend=function(a){var b,c,d,e,f,g,h,i;b=this;if(b.bits.n<(a>>0)){c=b.ensureNBits((a>>0));if(!($interfaceIsEqual(c,$ifaceNil))){return[0,c];}}b.bits.n=b.bits.n-((a>>0))>>0;b.bits.m=(d=(a),d<32?(b.bits.m>>>d):0)>>>0;f=(e=a,e<32?(1<>0;h=(((g=(b.bits.n<<24>>>24),g<32?(b.bits.a>>>g):0)>>>0)>>0)&((f-1>>0));if(h<(f>>1>>0)){h=h+(((((i=a,i<32?(-1<>0))+1>>0))>>0;}return[h,$ifaceNil];};Q.prototype.receiveExtend=function(a){return this.$val.receiveExtend(a);};Q.Ptr.prototype.processDHT=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw;b=this;while(a>0){if(a<17){return new K("DHT has wrong length");}c=b.readFull($subslice(new AS(b.tmp),0,17));if(!($interfaceIsEqual(c,$ifaceNil))){return c;}d=b.tmp[0]>>>4<<24>>>24;if(d>1){return new K("bad Tc value");}e=(b.tmp[0]&15)>>>0;if(e>3||!b.progressive&&e>1){return new K("bad Th value");}h=(f=(g=b.huff,((d<0||d>=g.length)?$throwRuntimeError("index out of range"):g[d])),((e<0||e>=f.length)?$throwRuntimeError("index out of range"):f[e]));h.nCodes=0;i=$clone(AT.zero(),AT);j=i;k=0;while(k<16){l=k;(l<0||l>=i.length)?$throwRuntimeError("index out of range"):i[l]=((m=b.tmp,n=l+1>>0,((n<0||n>=m.length)?$throwRuntimeError("index out of range"):m[n]))>>0);h.nCodes=h.nCodes+(((l<0||l>=i.length)?$throwRuntimeError("index out of range"):i[l]))>>0;k++;}if(h.nCodes===0){return new K("Huffman table has zero length");}if(h.nCodes>256){return new K("Huffman table has excessive length");}a=a-(((h.nCodes>>0)+17>>0))>>0;if(a<0){return new K("DHT has wrong length");}o=b.readFull($subslice(new AU(h.vals),0,h.nCodes));if(!($interfaceIsEqual(o,$ifaceNil))){return o;}p=h.lut;q=0;while(q<256){r=q;(s=h.lut,(r<0||r>=s.length)?$throwRuntimeError("index out of range"):s[r]=0);q++;}t=0;u=0;v=t;w=u;x=0;while(x<8){w=(y=(1),y<32?(w<>>0;z=0;while(z<((x<0||x>=i.length)?$throwRuntimeError("index out of range"):i[x])){ab=(((aa=((7-x>>>0)),aa<32?(w<>>0)<<24>>>24);ad=((((ac=h.vals,((v<0||v>=ac.length)?$throwRuntimeError("index out of range"):ac[v]))<<16>>>16)<<8<<16>>>16)|((2+x>>>0)<<16>>>16))>>>0;ae=0;while(ae<((af=((7-x>>>0)),af<32?(1<>>24)){(ag=h.lut,ah=(ab|ae)>>>0,(ah<0||ah>=ag.length)?$throwRuntimeError("index out of range"):ag[ah]=ad);ae=ae+(1)<<24>>>24;}w=w+(1)>>>0;v=v+(1)>>>0;z=z+(1)>>0;}x=x+(1)>>>0;}ai=0;aj=0;ak=ai;al=aj;am=i;an=0;while(an<16){ao=an;ap=((an<0||an>=am.length)?$throwRuntimeError("index out of range"):am[an]);if(ap===0){(aq=h.minCodes,(ao<0||ao>=aq.length)?$throwRuntimeError("index out of range"):aq[ao]=-1);(ar=h.maxCodes,(ao<0||ao>=ar.length)?$throwRuntimeError("index out of range"):ar[ao]=-1);(as=h.valsIndices,(ao<0||ao>=as.length)?$throwRuntimeError("index out of range"):as[ao]=-1);}else{(at=h.minCodes,(ao<0||ao>=at.length)?$throwRuntimeError("index out of range"):at[ao]=ak);(au=h.maxCodes,(ao<0||ao>=au.length)?$throwRuntimeError("index out of range"):au[ao]=(ak+ap>>0)-1>>0);(av=h.valsIndices,(ao<0||ao>=av.length)?$throwRuntimeError("index out of range"):av[ao]=al);ak=ak+(ap)>>0;al=al+(ap)>>0;}ak=(aw=(1),aw<32?(ak<>0;an++;}}return $ifaceNil;};Q.prototype.processDHT=function(a){return this.$val.processDHT(a);};Q.Ptr.prototype.decodeHuffman=function(a){var $this=this,$args=arguments,$s=0,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s:while(true){switch($s){case 0:b=$this;if(a.nCodes===0){return[0,new K("uninitialized Huffman table")];}if(b.bits.n<8){}else{$s=2;continue;}c=b.ensureNBits(8);if(!($interfaceIsEqual(c,$ifaceNil))){}else{$s=3;continue;}if(!($interfaceIsEqual(c,new K(R)))&&!($interfaceIsEqual(c,new K(H)))){return[0,c];}b.unreadByteStuffedByte();$s=1;continue;case 3:case 2:g=(d=a.lut,e=((((f=((b.bits.n-8>>0)>>>0),f<32?(b.bits.a>>>f):0)>>>0))&255)>>>0,((e<0||e>=d.length)?$throwRuntimeError("index out of range"):d[e]));if(!((g===0))){h=(((g&255)>>>0))-1<<16>>>16;b.bits.n=b.bits.n-((h>>0))>>0;b.bits.m=(i=(h),i<32?(b.bits.m>>>i):0)>>>0;return[((g>>>8<<16>>>16)<<24>>>24),$ifaceNil];}case 1:j=0;k=0;l=j;m=k;slowPath:while(l<16){if(b.bits.n===0){n=b.ensureNBits(1);if(!($interfaceIsEqual(n,$ifaceNil))){return[0,n];}}if(!((((b.bits.a&b.bits.m)>>>0)===0))){m=m|(1);}b.bits.n=b.bits.n-(1)>>0;b.bits.m=(o=(1),o<32?(b.bits.m>>>o):0)>>>0;if(m<=(p=a.maxCodes,((l<0||l>=p.length)?$throwRuntimeError("index out of range"):p[l]))){return[(q=a.vals,r=((s=a.valsIndices,((l<0||l>=s.length)?$throwRuntimeError("index out of range"):s[l]))+m>>0)-(t=a.minCodes,((l<0||l>=t.length)?$throwRuntimeError("index out of range"):t[l]))>>0,((r<0||r>=q.length)?$throwRuntimeError("index out of range"):q[r])),$ifaceNil];}m=(u=(1),u<32?(m<>0;l=l+(1)>>0;}return[0,new K("bad Huffman code")];case-1:}return;}};Q.prototype.decodeHuffman=function(a){return this.$val.decodeHuffman(a);};Q.Ptr.prototype.decodeBit=function(){var a,b,c,d;a=this;if(a.bits.n===0){b=a.ensureNBits(1);if(!($interfaceIsEqual(b,$ifaceNil))){return[false,b];}}c=!((((a.bits.a&a.bits.m)>>>0)===0));a.bits.n=a.bits.n-(1)>>0;a.bits.m=(d=(1),d<32?(a.bits.m>>>d):0)>>>0;return[c,$ifaceNil];};Q.prototype.decodeBit=function(){return this.$val.decodeBit();};Q.Ptr.prototype.decodeBits=function(a){var b,c,d,e,f,g;b=this;if(b.bits.n>0)>>>0),d<32?(b.bits.a>>>d):0)>>>0;e=(e&(((((f=(a>>>0),f<32?(1<>>0))-1>>>0)))>>>0;b.bits.n=b.bits.n-(a)>>0;b.bits.m=(g=((a>>>0)),g<32?(b.bits.m>>>g):0)>>>0;return[e,$ifaceNil];};Q.prototype.decodeBits=function(a){return this.$val.decodeBits(a);};J=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc;b=0;while(b<8){c=b*8>>0;if(((d=c+1>>0,(a.nilCheck,((d<0||d>=a.length)?$throwRuntimeError("index out of range"):a[d])))===0)&&((e=c+2>>0,(a.nilCheck,((e<0||e>=a.length)?$throwRuntimeError("index out of range"):a[e])))===0)&&((f=c+3>>0,(a.nilCheck,((f<0||f>=a.length)?$throwRuntimeError("index out of range"):a[f])))===0)&&((g=c+4>>0,(a.nilCheck,((g<0||g>=a.length)?$throwRuntimeError("index out of range"):a[g])))===0)&&((h=c+5>>0,(a.nilCheck,((h<0||h>=a.length)?$throwRuntimeError("index out of range"):a[h])))===0)&&((i=c+6>>0,(a.nilCheck,((i<0||i>=a.length)?$throwRuntimeError("index out of range"):a[i])))===0)&&((j=c+7>>0,(a.nilCheck,((j<0||j>=a.length)?$throwRuntimeError("index out of range"):a[j])))===0)){l=(k=c+0>>0,(a.nilCheck,((k<0||k>=a.length)?$throwRuntimeError("index out of range"):a[k])))<<3>>0;(m=c+0>>0,a.nilCheck,(m<0||m>=a.length)?$throwRuntimeError("index out of range"):a[m]=l);(n=c+1>>0,a.nilCheck,(n<0||n>=a.length)?$throwRuntimeError("index out of range"):a[n]=l);(o=c+2>>0,a.nilCheck,(o<0||o>=a.length)?$throwRuntimeError("index out of range"):a[o]=l);(p=c+3>>0,a.nilCheck,(p<0||p>=a.length)?$throwRuntimeError("index out of range"):a[p]=l);(q=c+4>>0,a.nilCheck,(q<0||q>=a.length)?$throwRuntimeError("index out of range"):a[q]=l);(r=c+5>>0,a.nilCheck,(r<0||r>=a.length)?$throwRuntimeError("index out of range"):a[r]=l);(s=c+6>>0,a.nilCheck,(s<0||s>=a.length)?$throwRuntimeError("index out of range"):a[s]=l);(t=c+7>>0,a.nilCheck,(t<0||t>=a.length)?$throwRuntimeError("index out of range"):a[t]=l);b=b+(1)>>0;continue;}v=(((u=c+0>>0,(a.nilCheck,((u<0||u>=a.length)?$throwRuntimeError("index out of range"):a[u])))<<11>>0))+128>>0;x=(w=c+4>>0,(a.nilCheck,((w<0||w>=a.length)?$throwRuntimeError("index out of range"):a[w])))<<11>>0;z=(y=c+6>>0,(a.nilCheck,((y<0||y>=a.length)?$throwRuntimeError("index out of range"):a[y])));ab=(aa=c+2>>0,(a.nilCheck,((aa<0||aa>=a.length)?$throwRuntimeError("index out of range"):a[aa])));ad=(ac=c+1>>0,(a.nilCheck,((ac<0||ac>=a.length)?$throwRuntimeError("index out of range"):a[ac])));af=(ae=c+7>>0,(a.nilCheck,((ae<0||ae>=a.length)?$throwRuntimeError("index out of range"):a[ae])));ah=(ag=c+5>>0,(a.nilCheck,((ag<0||ag>=a.length)?$throwRuntimeError("index out of range"):a[ag])));aj=(ai=c+3>>0,(a.nilCheck,((ai<0||ai>=a.length)?$throwRuntimeError("index out of range"):a[ai])));al=(ak=(ad+af>>0),(((565>>>16<<16)*ak>>0)+(565<<16>>>16)*ak)>>0);ad=al+((((2276>>>16<<16)*ad>>0)+(2276<<16>>>16)*ad)>>0)>>0;af=al-((((3406>>>16<<16)*af>>0)+(3406<<16>>>16)*af)>>0)>>0;al=(am=(ah+aj>>0),(((2408>>>16<<16)*am>>0)+(2408<<16>>>16)*am)>>0);ah=al-((((799>>>16<<16)*ah>>0)+(799<<16>>>16)*ah)>>0)>>0;aj=al-((((4017>>>16<<16)*aj>>0)+(4017<<16>>>16)*aj)>>0)>>0;al=v+x>>0;v=v-(x)>>0;x=(an=(ab+z>>0),(((1108>>>16<<16)*an>>0)+(1108<<16>>>16)*an)>>0);z=x-((((3784>>>16<<16)*z>>0)+(3784<<16>>>16)*z)>>0)>>0;ab=x+((((1568>>>16<<16)*ab>>0)+(1568<<16>>>16)*ab)>>0)>>0;x=ad+ah>>0;ad=ad-(ah)>>0;ah=af+aj>>0;af=af-(aj)>>0;aj=al+ab>>0;al=al-(ab)>>0;ab=v+z>>0;v=v-(z)>>0;z=(((ao=(ad+af>>0),(((181>>>16<<16)*ao>>0)+(181<<16>>>16)*ao)>>0)+128>>0))>>8>>0;ad=(((ap=(ad-af>>0),(((181>>>16<<16)*ap>>0)+(181<<16>>>16)*ap)>>0)+128>>0))>>8>>0;(aq=c+0>>0,a.nilCheck,(aq<0||aq>=a.length)?$throwRuntimeError("index out of range"):a[aq]=((aj+x>>0))>>8>>0);(ar=c+1>>0,a.nilCheck,(ar<0||ar>=a.length)?$throwRuntimeError("index out of range"):a[ar]=((ab+z>>0))>>8>>0);(as=c+2>>0,a.nilCheck,(as<0||as>=a.length)?$throwRuntimeError("index out of range"):a[as]=((v+ad>>0))>>8>>0);(at=c+3>>0,a.nilCheck,(at<0||at>=a.length)?$throwRuntimeError("index out of range"):a[at]=((al+ah>>0))>>8>>0);(au=c+4>>0,a.nilCheck,(au<0||au>=a.length)?$throwRuntimeError("index out of range"):a[au]=((al-ah>>0))>>8>>0);(av=c+5>>0,a.nilCheck,(av<0||av>=a.length)?$throwRuntimeError("index out of range"):a[av]=((v-ad>>0))>>8>>0);(aw=c+6>>0,a.nilCheck,(aw<0||aw>=a.length)?$throwRuntimeError("index out of range"):a[aw]=((ab-z>>0))>>8>>0);(ax=c+7>>0,a.nilCheck,(ax<0||ax>=a.length)?$throwRuntimeError("index out of range"):a[ax]=((aj-x>>0))>>8>>0);b=b+(1)>>0;}ay=0;while(ay<8){ba=(((az=0+ay>>0,(a.nilCheck,((az<0||az>=a.length)?$throwRuntimeError("index out of range"):a[az])))<<8>>0))+8192>>0;bc=(bb=32+ay>>0,(a.nilCheck,((bb<0||bb>=a.length)?$throwRuntimeError("index out of range"):a[bb])))<<8>>0;be=(bd=48+ay>>0,(a.nilCheck,((bd<0||bd>=a.length)?$throwRuntimeError("index out of range"):a[bd])));bg=(bf=16+ay>>0,(a.nilCheck,((bf<0||bf>=a.length)?$throwRuntimeError("index out of range"):a[bf])));bi=(bh=8+ay>>0,(a.nilCheck,((bh<0||bh>=a.length)?$throwRuntimeError("index out of range"):a[bh])));bk=(bj=56+ay>>0,(a.nilCheck,((bj<0||bj>=a.length)?$throwRuntimeError("index out of range"):a[bj])));bm=(bl=40+ay>>0,(a.nilCheck,((bl<0||bl>=a.length)?$throwRuntimeError("index out of range"):a[bl])));bo=(bn=24+ay>>0,(a.nilCheck,((bn<0||bn>=a.length)?$throwRuntimeError("index out of range"):a[bn])));bq=(bp=(bi+bk>>0),(((565>>>16<<16)*bp>>0)+(565<<16>>>16)*bp)>>0)+4>>0;bi=((bq+((((2276>>>16<<16)*bi>>0)+(2276<<16>>>16)*bi)>>0)>>0))>>3>>0;bk=((bq-((((3406>>>16<<16)*bk>>0)+(3406<<16>>>16)*bk)>>0)>>0))>>3>>0;bq=(br=(bm+bo>>0),(((2408>>>16<<16)*br>>0)+(2408<<16>>>16)*br)>>0)+4>>0;bm=((bq-((((799>>>16<<16)*bm>>0)+(799<<16>>>16)*bm)>>0)>>0))>>3>>0;bo=((bq-((((4017>>>16<<16)*bo>>0)+(4017<<16>>>16)*bo)>>0)>>0))>>3>>0;bq=ba+bc>>0;ba=ba-(bc)>>0;bc=(bs=(bg+be>>0),(((1108>>>16<<16)*bs>>0)+(1108<<16>>>16)*bs)>>0)+4>>0;be=((bc-((((3784>>>16<<16)*be>>0)+(3784<<16>>>16)*be)>>0)>>0))>>3>>0;bg=((bc+((((1568>>>16<<16)*bg>>0)+(1568<<16>>>16)*bg)>>0)>>0))>>3>>0;bc=bi+bm>>0;bi=bi-(bm)>>0;bm=bk+bo>>0;bk=bk-(bo)>>0;bo=bq+bg>>0;bq=bq-(bg)>>0;bg=ba+be>>0;ba=ba-(be)>>0;be=(((bt=(bi+bk>>0),(((181>>>16<<16)*bt>>0)+(181<<16>>>16)*bt)>>0)+128>>0))>>8>>0;bi=(((bu=(bi-bk>>0),(((181>>>16<<16)*bu>>0)+(181<<16>>>16)*bu)>>0)+128>>0))>>8>>0;(bv=0+ay>>0,a.nilCheck,(bv<0||bv>=a.length)?$throwRuntimeError("index out of range"):a[bv]=((bo+bc>>0))>>14>>0);(bw=8+ay>>0,a.nilCheck,(bw<0||bw>=a.length)?$throwRuntimeError("index out of range"):a[bw]=((bg+be>>0))>>14>>0);(bx=16+ay>>0,a.nilCheck,(bx<0||bx>=a.length)?$throwRuntimeError("index out of range"):a[bx]=((ba+bi>>0))>>14>>0);(by=24+ay>>0,a.nilCheck,(by<0||by>=a.length)?$throwRuntimeError("index out of range"):a[by]=((bq+bm>>0))>>14>>0);(bz=32+ay>>0,a.nilCheck,(bz<0||bz>=a.length)?$throwRuntimeError("index out of range"):a[bz]=((bq-bm>>0))>>14>>0);(ca=40+ay>>0,a.nilCheck,(ca<0||ca>=a.length)?$throwRuntimeError("index out of range"):a[ca]=((ba-bi>>0))>>14>>0);(cb=48+ay>>0,a.nilCheck,(cb<0||cb>=a.length)?$throwRuntimeError("index out of range"):a[cb]=((bg-be>>0))>>14>>0);(cc=56+ay>>0,a.nilCheck,(cc<0||cc>=a.length)?$throwRuntimeError("index out of range"):a[cc]=((bo-bc>>0))>>14>>0);ay=ay+(1)>>0;}};K.prototype.Error=function(){var a;a=this.$val!==undefined?this.$val:this;return"invalid JPEG format: "+a;};$ptrType(K).prototype.Error=function(){return new K(this.$get()).Error();};L.prototype.Error=function(){var a;a=this.$val!==undefined?this.$val:this;return"unsupported JPEG feature: "+a;};$ptrType(L).prototype.Error=function(){return new L(this.$get()).Error();};Q.Ptr.prototype.fill=function(){var a,b,c,d,e,f,g,h,i,j;a=this;if(!((a.bytes.i===a.bytes.j))){$panic(new $String("jpeg: fill called when unread bytes exist"));}if(a.bytes.j>2){a.bytes.buf[0]=(b=a.bytes.buf,c=a.bytes.j-2>>0,((c<0||c>=b.length)?$throwRuntimeError("index out of range"):b[c]));a.bytes.buf[1]=(d=a.bytes.buf,e=a.bytes.j-1>>0,((e<0||e>=d.length)?$throwRuntimeError("index out of range"):d[e]));f=2;g=2;a.bytes.i=f;a.bytes.j=g;}h=a.r.Read($subslice(new AS(a.bytes.buf),a.bytes.j));i=h[0];j=h[1];a.bytes.j=a.bytes.j+(i)>>0;if(i>0){j=$ifaceNil;}return j;};Q.prototype.fill=function(){return this.$val.fill();};Q.Ptr.prototype.unreadByteStuffedByte=function(){var a,b,c;a=this;if(a.bytes.nUnreadable===0){$panic(new $String("jpeg: unreadByteStuffedByte call cannot be fulfilled"));}a.bytes.i=a.bytes.i-(a.bytes.nUnreadable)>>0;a.bytes.nUnreadable=0;if(a.bits.n>=8){a.bits.a=(b=(8),b<32?(a.bits.a>>>b):0)>>>0;a.bits.n=a.bits.n-(8)>>0;a.bits.m=(c=(8),c<32?(a.bits.m>>>c):0)>>>0;}};Q.prototype.unreadByteStuffedByte=function(){return this.$val.unreadByteStuffedByte();};Q.Ptr.prototype.readByte=function(){var a=0,b=$ifaceNil,c,d,e,f,g,h,i;c=this;while(c.bytes.i===c.bytes.j){b=c.fill();if(!($interfaceIsEqual(b,$ifaceNil))){d=0;e=b;a=d;b=e;return[a,b];}}a=(f=c.bytes.buf,g=c.bytes.i,((g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g]));c.bytes.i=c.bytes.i+(1)>>0;c.bytes.nUnreadable=0;h=a;i=$ifaceNil;a=h;b=i;return[a,b];};Q.prototype.readByte=function(){return this.$val.readByte();};Q.Ptr.prototype.readByteStuffedByte=function(){var a=0,b=$ifaceNil,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y;c=this;if((c.bytes.i+2>>0)<=c.bytes.j){a=(d=c.bytes.buf,e=c.bytes.i,((e<0||e>=d.length)?$throwRuntimeError("index out of range"):d[e]));c.bytes.i=c.bytes.i+(1)>>0;c.bytes.nUnreadable=1;if(!((a===255))){f=a;g=b;a=f;b=g;return[a,b];}if(!(((h=c.bytes.buf,i=c.bytes.i,((i<0||i>=h.length)?$throwRuntimeError("index out of range"):h[i]))===0))){j=0;k=new K(R);a=j;b=k;return[a,b];}c.bytes.i=c.bytes.i+(1)>>0;c.bytes.nUnreadable=2;l=255;m=$ifaceNil;a=l;b=m;return[a,b];}n=c.readByte();a=n[0];b=n[1];if(!($interfaceIsEqual(b,$ifaceNil))){o=0;p=b;a=o;b=p;return[a,b];}if(!((a===255))){c.bytes.nUnreadable=1;q=a;r=$ifaceNil;a=q;b=r;return[a,b];}s=c.readByte();a=s[0];b=s[1];if(!($interfaceIsEqual(b,$ifaceNil))){c.bytes.nUnreadable=1;t=0;u=b;a=t;b=u;return[a,b];}c.bytes.nUnreadable=2;if(!((a===0))){v=0;w=new K(R);a=v;b=w;return[a,b];}x=255;y=$ifaceNil;a=x;b=y;return[a,b];};Q.prototype.readByteStuffedByte=function(){return this.$val.readByteStuffedByte();};Q.Ptr.prototype.readFull=function(a){var b,c,d;b=this;if(!((b.bytes.nUnreadable===0))){if(b.bits.n>=8){b.unreadByteStuffedByte();}b.bytes.nUnreadable=0;}while(true){c=$copySlice(a,$subslice(new AS(b.bytes.buf),b.bytes.i,b.bytes.j));a=$subslice(a,c);b.bytes.i=b.bytes.i+(c)>>0;if(a.$length===0){break;}d=b.fill();if(!($interfaceIsEqual(d,$ifaceNil))){if($interfaceIsEqual(d,A.EOF)){d=A.ErrUnexpectedEOF;}return d;}}return $ifaceNil;};Q.prototype.readFull=function(a){return this.$val.readFull(a);};Q.Ptr.prototype.ignore=function(a){var b,c,d;b=this;if(!((b.bytes.nUnreadable===0))){if(b.bits.n>=8){b.unreadByteStuffedByte();}b.bytes.nUnreadable=0;}while(true){c=b.bytes.j-b.bytes.i>>0;if(c>a){c=a;}b.bytes.i=b.bytes.i+(c)>>0;a=a-(c)>>0;if(a===0){break;}d=b.fill();if(!($interfaceIsEqual(d,$ifaceNil))){if($interfaceIsEqual(d,A.EOF)){d=A.ErrUnexpectedEOF;}return d;}}return $ifaceNil;};Q.prototype.ignore=function(a){return this.$val.ignore(a);};Q.Ptr.prototype.processSOF=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;b=this;c=a;if(c===9){b.nComp=1;}else if(c===15){b.nComp=3;}else{return new L("SOF has wrong length");}d=b.readFull($subslice(new AS(b.tmp),0,a));if(!($interfaceIsEqual(d,$ifaceNil))){return d;}if(!((b.tmp[0]===8))){return new L("precision");}b.height=((b.tmp[1]>>0)<<8>>0)+(b.tmp[2]>>0)>>0;b.width=((b.tmp[3]>>0)<<8>>0)+(b.tmp[4]>>0)>>0;if(!(((b.tmp[5]>>0)===b.nComp))){return new L("SOF has wrong number of image components");}e=0;while(e=h.length)?$throwRuntimeError("index out of range"):h[e])).c=(f=b.tmp,g=6+(3*e>>0)>>0,((g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g]));(k=b.comp,((e<0||e>=k.length)?$throwRuntimeError("index out of range"):k[e])).tq=(i=b.tmp,j=8+(3*e>>0)>>0,((j<0||j>=i.length)?$throwRuntimeError("index out of range"):i[j]));if(b.nComp===1){(l=b.comp,((e<0||e>=l.length)?$throwRuntimeError("index out of range"):l[e])).h=1;(m=b.comp,((e<0||e>=m.length)?$throwRuntimeError("index out of range"):m[e])).v=1;e=e+(1)>>0;continue;}p=(n=b.tmp,o=7+(3*e>>0)>>0,((o<0||o>=n.length)?$throwRuntimeError("index out of range"):n[o]));(q=b.comp,((e<0||e>=q.length)?$throwRuntimeError("index out of range"):q[e])).h=((p>>>4<<24>>>24)>>0);(r=b.comp,((e<0||e>=r.length)?$throwRuntimeError("index out of range"):r[e])).v=(((p&15)>>>0)>>0);if(e===0){if(!((p===17))&&!((p===33))&&!((p===34))&&!((p===18))){return new L("luma/chroma downsample ratio");}}else if(!((p===17))){return new L("luma/chroma downsample ratio");}e=e+(1)>>0;}return $ifaceNil;};Q.prototype.processSOF=function(a){return this.$val.processSOF(a);};Q.Ptr.prototype.processDQT=function(a){var b,c,d,e,f,g,h,i,j,k,l,m;b=this;while(a>=65){c=b.readFull($subslice(new AS(b.tmp),0,65));if(!($interfaceIsEqual(c,$ifaceNil))){return c;}d=b.tmp[0]>>>4<<24>>>24;if(!((d===0))){return new L("bad Pq value");}e=(b.tmp[0]&15)>>>0;if(e>3){return new K("bad Tq value");}f=(g=b.quant,((e<0||e>=g.length)?$throwRuntimeError("index out of range"):g[e]));h=0;while(h<64){i=h;(l=(m=b.quant,((e<0||e>=m.length)?$throwRuntimeError("index out of range"):m[e])),(i<0||i>=l.length)?$throwRuntimeError("index out of range"):l[i]=((j=b.tmp,k=i+1>>0,((k<0||k>=j.length)?$throwRuntimeError("index out of range"):j[k]))>>0));h++;}a=a-(65)>>0;}if(!((a===0))){return new K("DQT has wrong length");}return $ifaceNil;};Q.prototype.processDQT=function(a){return this.$val.processDQT(a);};Q.Ptr.prototype.processDRI=function(a){var b,c;b=this;if(!((a===2))){return new K("DRI has wrong length");}c=b.readFull($subslice(new AS(b.tmp),0,2));if(!($interfaceIsEqual(c,$ifaceNil))){return c;}b.ri=((b.tmp[0]>>0)<<8>>0)+(b.tmp[1]>>0)>>0;return $ifaceNil;};Q.prototype.processDRI=function(a){return this.$val.processDRI(a);};Q.Ptr.prototype.decode=function(a,b){var c,d,e,f,g,h,i;c=this;c.r=a;d=c.readFull($subslice(new AS(c.tmp),0,2));if(!($interfaceIsEqual(d,$ifaceNil))){return[$ifaceNil,d];}if(!((c.tmp[0]===255))||!((c.tmp[1]===216))){return[$ifaceNil,new K("missing SOI marker")];}while(true){e=c.readFull($subslice(new AS(c.tmp),0,2));if(!($interfaceIsEqual(e,$ifaceNil))){return[$ifaceNil,e];}while(!((c.tmp[0]===255))){c.tmp[0]=c.tmp[1];f=c.readByte();c.tmp[1]=f[0];e=f[1];if(!($interfaceIsEqual(e,$ifaceNil))){return[$ifaceNil,e];}}g=c.tmp[1];if(g===0){continue;}while(g===255){h=c.readByte();g=h[0];e=h[1];if(!($interfaceIsEqual(e,$ifaceNil))){return[$ifaceNil,e];}}if(g===217){break;}if(208<=g&&g<=215){continue;}e=c.readFull($subslice(new AS(c.tmp),0,2));if(!($interfaceIsEqual(e,$ifaceNil))){return[$ifaceNil,e];}i=(((c.tmp[0]>>0)<<8>>0)+(c.tmp[1]>>0)>>0)-2>>0;if(i<0){return[$ifaceNil,new K("short segment length")];}if((g===192)||(g===194)){c.progressive=g===194;e=c.processSOF(i);if(b){return[$ifaceNil,e];}}else if(g===196){e=c.processDHT(i);}else if(g===219){e=c.processDQT(i);}else if(g===218){e=c.processSOS(i);}else if(g===221){e=c.processDRI(i);}else if(224<=g&&g<=239||(g===254)){e=c.ignore(i);}else{e=new L("unknown marker");}if(!($interfaceIsEqual(e,$ifaceNil))){return[$ifaceNil,e];}}if(!(c.img1===AV.nil)){return[c.img1,$ifaceNil];}if(!(c.img3===AW.nil)){return[c.img3,$ifaceNil];}return[$ifaceNil,new K("missing SOS marker")];};Q.prototype.decode=function(a,b){return this.$val.decode(a,b);};S=$pkg.Decode=function(a){var b;b=$clone(new Q.Ptr(),Q);return b.decode(a,false);};T=$pkg.DecodeConfig=function(a){var b,c,d,e;b=$clone(new Q.Ptr(),Q);c=b.decode(a,true);d=c[1];if(!($interfaceIsEqual(d,$ifaceNil))){return[new B.Config.Ptr($ifaceNil,0,0),d];}e=b.nComp;if(e===1){return[new B.Config.Ptr(C.GrayModel,b.width,b.height),$ifaceNil];}else if(e===3){return[new B.Config.Ptr(C.YCbCrModel,b.width,b.height),$ifaceNil];}return[new B.Config.Ptr($ifaceNil,0,0),new K("missing SOF marker")];};U=function(){B.RegisterFormat("jpeg","\xFF\xD8",S,T);};Q.Ptr.prototype.makeImg=function(a,b,c,d){var e,f,g,h;e=this;if(e.nComp===1){f=B.NewGray(B.Rect(0,0,8*c>>0,8*d>>0));e.img1=$assertType(f.SubImage(B.Rect(0,0,e.width,e.height)),AV);return;}g=0;if((a===1)&&(b===1)){g=0;}else if((a===1)&&(b===2)){g=3;}else if((a===2)&&(b===1)){g=1;}else if((a===2)&&(b===2)){g=2;}else{$panic(new $String("unreachable"));}h=B.NewYCbCr(B.Rect(0,0,(8*a>>0)*c>>0,(8*b>>0)*d>>0),g);e.img3=$assertType(h.SubImage(B.Rect(0,0,e.width,e.height)),AW);};Q.prototype.makeImg=function(a,b,c,d){return this.$val.makeImg(a,b,c,d);};Q.Ptr.prototype.processSOS=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,ea,eb,ec,ed,ee,ef,eg,eh,ei,ej,ek,el,em,en,eo,ep,eq,er,es;b=this;if(b.nComp===0){return new K("missing SOF marker");}if(a<6||(4+(2*b.nComp>>0)>>0)>0);if(!((a===(4+(2*e>>0)>>0)))){return new K("SOS length inconsistent with number of components");}f=$clone(AY.zero(),AY);g=0;while(g>0)>>0,((i<0||i>=h.length)?$throwRuntimeError("index out of range"):h[i]));k=-1;l=b.comp;m=0;while(m<3){n=m;o=$clone(((m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m]),M);if(j===o.c){k=n;}m++;}if(k<0){return new K("unknown component selector");}((g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g]).compIndex=(k<<24>>>24);((g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g]).td=(p=b.tmp,q=2+(2*g>>0)>>0,((q<0||q>=p.length)?$throwRuntimeError("index out of range"):p[q]))>>>4<<24>>>24;if(((g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g]).td>3){return new K("bad Td value");}((g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g]).ta=((r=b.tmp,s=2+(2*g>>0)>>0,((s<0||s>=r.length)?$throwRuntimeError("index out of range"):r[s]))&15)>>>0;if(((g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g]).ta>3){return new K("bad Ta value");}g=g+(1)>>0;}t=0;u=63;v=0;w=0;x=t;y=u;z=v;aa=w;if(b.progressive){x=((ab=b.tmp,ac=1+(2*e>>0)>>0,((ac<0||ac>=ab.length)?$throwRuntimeError("index out of range"):ab[ac]))>>0);y=((ad=b.tmp,ae=2+(2*e>>0)>>0,((ae<0||ae>=ad.length)?$throwRuntimeError("index out of range"):ad[ae]))>>0);z=(((af=b.tmp,ag=3+(2*e>>0)>>0,((ag<0||ag>=af.length)?$throwRuntimeError("index out of range"):af[ag]))>>>4<<24>>>24)>>>0);aa=((((ah=b.tmp,ai=3+(2*e>>0)>>0,((ai<0||ai>=ah.length)?$throwRuntimeError("index out of range"):ah[ai]))&15)>>>0)>>>0);if(((x===0)&&!((y===0)))||x>y||64<=y){return new K("bad spectral selection bounds");}if(!((x===0))&&!((e===1))){return new K("progressive AC coefficients for more than one component");}if(!((z===0))&&!((z===(aa+1>>>0)))){return new K("bad successive approximation values");}}aj=b.comp[0].h;ak=b.comp[0].v;al=aj;am=ak;ao=(an=(((b.width+(8*al>>0)>>0)-1>>0))/((8*al>>0)),(an===an&&an!==1/0&&an!==-1/0)?an>>0:$throwRuntimeError("integer divide by zero"));aq=(ap=(((b.height+(8*am>>0)>>0)-1>>0))/((8*am>>0)),(ap===ap&&ap!==1/0&&ap!==-1/0)?ap>>0:$throwRuntimeError("integer divide by zero"));if(b.img1===AV.nil&&b.img3===AW.nil){b.makeImg(al,am,ao,aq);}if(b.progressive){ar=0;while(ar=f.length)?$throwRuntimeError("index out of range"):f[ar]).compIndex;if((at=b.progCoeffs,((as<0||as>=at.length)?$throwRuntimeError("index out of range"):at[as]))===AZ.nil){(aw=b.progCoeffs,(as<0||as>=aw.length)?$throwRuntimeError("index out of range"):aw[as]=AZ.make((((ao*aq>>0)*(au=b.comp,((as<0||as>=au.length)?$throwRuntimeError("index out of range"):au[as])).h>>0)*(av=b.comp,((as<0||as>=av.length)?$throwRuntimeError("index out of range"):av[as])).v>>0)));}ar=ar+(1)>>0;}}$copy(b.bits,new P.Ptr(0,0,0),P);ax=0;ay=208;az=ax;ba=ay;bb=$clone(I.zero(),I);bc=$clone(BA.zero(),BA);bd=0;be=0;bf=bd;bg=be;bh=0;bi=0;while(bi=f.length)?$throwRuntimeError("index out of range"):f[bk]).compIndex;bp=(bm=b.quant,bn=(bo=b.comp,((bl<0||bl>=bo.length)?$throwRuntimeError("index out of range"):bo[bl])).tq,((bn<0||bn>=bm.length)?$throwRuntimeError("index out of range"):bm[bn]));bq=0;while(bq<((br=b.comp,((bl<0||bl>=br.length)?$throwRuntimeError("index out of range"):br[bl])).h*(bs=b.comp,((bl<0||bl>=bs.length)?$throwRuntimeError("index out of range"):bs[bl])).v>>0)){if(!((e===1))){bt=(bu=b.comp,((bl<0||bl>=bu.length)?$throwRuntimeError("index out of range"):bu[bl])).h*bj>>0;bv=(bw=b.comp,((bl<0||bl>=bw.length)?$throwRuntimeError("index out of range"):bw[bl])).v*bi>>0;bf=bt;bg=bv;if(al===1){bg=bg+(bq)>>0;}else{bf=bf+((bx=bq%2,bx===bx?bx:$throwRuntimeError("integer divide by zero")))>>0;bg=bg+((by=bq/2,(by===by&&by!==1/0&&by!==-1/0)?by>>0:$throwRuntimeError("integer divide by zero")))>>0;}}else{ca=ao*(bz=b.comp,((bl<0||bl>=bz.length)?$throwRuntimeError("index out of range"):bz[bl])).h>>0;bf=(cb=bh%ca,cb===cb?cb:$throwRuntimeError("integer divide by zero"));bg=(cc=bh/ca,(cc===cc&&cc!==1/0&&cc!==-1/0)?cc>>0:$throwRuntimeError("integer divide by zero"));bh=bh+(1)>>0;if((bf*8>>0)>=b.width||(bg*8>>0)>=b.height){bq=bq+(1)>>0;continue;}}if(b.progressive){$copy(bb,(cd=(ce=b.progCoeffs,((bl<0||bl>=ce.length)?$throwRuntimeError("index out of range"):ce[bl])),cf=((bg*ao>>0)*(cg=b.comp,((bl<0||bl>=cg.length)?$throwRuntimeError("index out of range"):cg[bl])).h>>0)+bf>>0,((cf<0||cf>=cd.$length)?$throwRuntimeError("index out of range"):cd.$array[cd.$offset+cf])),I);}else{$copy(bb,BB.zero(),I);}if(!((z===0))){ck=b.refine(bb,(ch=b.huff[1],ci=((bk<0||bk>=f.length)?$throwRuntimeError("index out of range"):f[bk]).ta,((ci<0||ci>=ch.length)?$throwRuntimeError("index out of range"):ch[ci])),x,y,(cj=aa,cj<32?(1<>0);if(!($interfaceIsEqual(ck,$ifaceNil))){return ck;}}else{cl=x;if(cl===0){cl=cl+(1)>>0;cm=b.decodeHuffman((cn=b.huff[0],co=((bk<0||bk>=f.length)?$throwRuntimeError("index out of range"):f[bk]).td,((co<0||co>=cn.length)?$throwRuntimeError("index out of range"):cn[co])));cp=cm[0];cq=cm[1];if(!($interfaceIsEqual(cq,$ifaceNil))){return cq;}if(cp>16){return new L("excessive DC component");}cr=b.receiveExtend(cp);cs=cr[0];cq=cr[1];if(!($interfaceIsEqual(cq,$ifaceNil))){return cq;}ct=bc;cu=bl;(cu<0||cu>=ct.length)?$throwRuntimeError("index out of range"):ct[cu]=((cu<0||cu>=ct.length)?$throwRuntimeError("index out of range"):ct[cu])+(cs)>>0;bb[0]=(cv=aa,cv<32?(((bl<0||bl>=bc.length)?$throwRuntimeError("index out of range"):bc[bl])<>0;}if(cl<=y&&b.eobRun>0){b.eobRun=b.eobRun-(1)<<16>>>16;}else{cy=(cw=b.huff[1],cx=((bk<0||bk>=f.length)?$throwRuntimeError("index out of range"):f[bk]).ta,((cx<0||cx>=cw.length)?$throwRuntimeError("index out of range"):cw[cx]));while(cl<=y){cz=b.decodeHuffman(cy);da=cz[0];db=cz[1];if(!($interfaceIsEqual(db,$ifaceNil))){return db;}dc=da>>>4<<24>>>24;dd=(da&15)>>>0;if(!((dd===0))){cl=cl+((dc>>0))>>0;if(cl>y){break;}de=b.receiveExtend(dd);df=de[0];dg=de[1];if(!($interfaceIsEqual(dg,$ifaceNil))){return dg;}(di=((cl<0||cl>=N.length)?$throwRuntimeError("index out of range"):N[cl]),(di<0||di>=bb.length)?$throwRuntimeError("index out of range"):bb[di]=(dh=aa,dh<32?(df<>0);}else{if(!((dc===15))){b.eobRun=((dj=dc,dj<32?(1<>>16);if(!((dc===0))){dk=b.decodeBits((dc>>0));dl=dk[0];dm=dk[1];if(!($interfaceIsEqual(dm,$ifaceNil))){return dm;}b.eobRun=(b.eobRun|((dl<<16>>>16)))>>>0;}b.eobRun=b.eobRun-(1)<<16>>>16;break;}cl=cl+(15)>>0;}cl=cl+(1)>>0;}}}if(b.progressive){if(!((y===63))||!((aa===0))){$copy((dn=(dp=b.progCoeffs,((bl<0||bl>=dp.length)?$throwRuntimeError("index out of range"):dp[bl])),dq=((bg*ao>>0)*(dr=b.comp,((bl<0||bl>=dr.length)?$throwRuntimeError("index out of range"):dr[bl])).h>>0)+bf>>0,((dq<0||dq>=dn.$length)?$throwRuntimeError("index out of range"):dn.$array[dn.$offset+dq])),bb,I);bq=bq+(1)>>0;continue;}}ds=0;while(ds<64){dt=bb;du=((ds<0||ds>=N.length)?$throwRuntimeError("index out of range"):N[ds]);(du<0||du>=dt.length)?$throwRuntimeError("index out of range"):dt[du]=(dv=((du<0||du>=dt.length)?$throwRuntimeError("index out of range"):dt[du]),dw=(bp.nilCheck,((ds<0||ds>=bp.length)?$throwRuntimeError("index out of range"):bp[ds])),(((dv>>>16<<16)*dw>>0)+(dv<<16>>>16)*dw)>>0);ds=ds+(1)>>0;}J(bb);dx=AS.nil;dy=0;dz=dx;ea=dy;if(b.nComp===1){eb=$subslice(b.img1.Pix,(8*(((bg*b.img1.Stride>>0)+bf>>0))>>0));ec=b.img1.Stride;dz=eb;ea=ec;}else{ed=bl;if(ed===0){ee=$subslice(b.img3.Y,(8*(((bg*b.img3.YStride>>0)+bf>>0))>>0));ef=b.img3.YStride;dz=ee;ea=ef;}else if(ed===1){eg=$subslice(b.img3.Cb,(8*(((bg*b.img3.CStride>>0)+bf>>0))>>0));eh=b.img3.CStride;dz=eg;ea=eh;}else if(ed===2){ei=$subslice(b.img3.Cr,(8*(((bg*b.img3.CStride>>0)+bf>>0))>>0));ej=b.img3.CStride;dz=ei;ea=ej;}else{return new L("too many components");}}ek=0;while(ek<8){el=ek*8>>0;em=ek*ea>>0;en=0;while(en<8){ep=(eo=el+en>>0,((eo<0||eo>=bb.length)?$throwRuntimeError("index out of range"):bb[eo]));if(ep<-128){ep=0;}else if(ep>127){ep=255;}else{ep=ep+(128)>>0;}(eq=em+en>>0,(eq<0||eq>=dz.$length)?$throwRuntimeError("index out of range"):dz.$array[dz.$offset+eq]=(ep<<24>>>24));en=en+(1)>>0;}ek=ek+(1)>>0;}bq=bq+(1)>>0;}bk=bk+(1)>>0;}az=az+(1)>>0;if(b.ri>0&&((er=az%b.ri,er===er?er:$throwRuntimeError("integer divide by zero"))===0)&&az<(ao*aq>>0)){es=b.readFull($subslice(new AS(b.tmp),0,2));if(!($interfaceIsEqual(es,$ifaceNil))){return es;}if(!((b.tmp[0]===255))||!((b.tmp[1]===ba))){return new K("bad RST marker");}ba=ba+(1)<<24>>>24;if(ba===216){ba=208;}$copy(b.bits,new P.Ptr(0,0,0),P);$copy(bc,BA.zero(),BA);b.eobRun=0;}bj=bj+(1)>>0;}bi=bi+(1)>>0;}return $ifaceNil;};Q.prototype.processSOS=function(a){return this.$val.processSOS(a);};Q.Ptr.prototype.refine=function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad;f=this;if(c===0){if(!((d===0))){$panic(new $String("unreachable"));}g=f.decodeBit();h=g[0];i=g[1];if(!($interfaceIsEqual(i,$ifaceNil))){return i;}if(h){j=a;k=0;j.nilCheck,(k<0||k>=j.length)?$throwRuntimeError("index out of range"):j[k]=(j.nilCheck,((k<0||k>=j.length)?$throwRuntimeError("index out of range"):j[k]))|(e);}return $ifaceNil;}l=c;if(f.eobRun===0){loop:while(l<=d){m=0;n=f.decodeHuffman(b);o=n[0];p=n[1];if(!($interfaceIsEqual(p,$ifaceNil))){return p;}q=o>>>4<<24>>>24;r=(o&15)>>>0;s=r;if(s===0){if(!((q===15))){f.eobRun=((t=q,t<32?(1<>>16);if(!((q===0))){u=f.decodeBits((q>>0));v=u[0];w=u[1];if(!($interfaceIsEqual(w,$ifaceNil))){return w;}f.eobRun=(f.eobRun|((v<<16>>>16)))>>>0;}break loop;}}else if(s===1){m=e;x=f.decodeBit();y=x[0];z=x[1];if(!($interfaceIsEqual(z,$ifaceNil))){return z;}if(!y){m=-m;}}else{return new K("unexpected Huffman code");}aa=f.refineNonZeroes(a,l,d,(q>>0),e);l=aa[0];p=aa[1];if(!($interfaceIsEqual(p,$ifaceNil))){return p;}if(l>d){return new K("too many coefficients");}if(!((m===0))){(ab=((l<0||l>=N.length)?$throwRuntimeError("index out of range"):N[l]),a.nilCheck,(ab<0||ab>=a.length)?$throwRuntimeError("index out of range"):a[ab]=m);}l=l+(1)>>0;}}if(f.eobRun>0){f.eobRun=f.eobRun-(1)<<16>>>16;ac=f.refineNonZeroes(a,l,d,-1,e);ad=ac[1];if(!($interfaceIsEqual(ad,$ifaceNil))){return ad;}}return $ifaceNil;};Q.prototype.refine=function(a,b,c,d,e){return this.$val.refine(a,b,c,d,e);};Q.Ptr.prototype.refineNonZeroes=function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n;f=this;while(b<=c){g=((b<0||b>=N.length)?$throwRuntimeError("index out of range"):N[b]);if((a.nilCheck,((g<0||g>=a.length)?$throwRuntimeError("index out of range"):a[g]))===0){if(d===0){break;}d=d-(1)>>0;b=b+(1)>>0;continue;}h=f.decodeBit();i=h[0];j=h[1];if(!($interfaceIsEqual(j,$ifaceNil))){return[0,j];}if(!i){b=b+(1)>>0;continue;}if((a.nilCheck,((g<0||g>=a.length)?$throwRuntimeError("index out of range"):a[g]))>=0){k=a;l=g;k.nilCheck,(l<0||l>=k.length)?$throwRuntimeError("index out of range"):k[l]=(k.nilCheck,((l<0||l>=k.length)?$throwRuntimeError("index out of range"):k[l]))+(e)>>0;}else{m=a;n=g;m.nilCheck,(n<0||n>=m.length)?$throwRuntimeError("index out of range"):m[n]=(m.nilCheck,((n<0||n>=m.length)?$throwRuntimeError("index out of range"):m[n]))-(e)>>0;}b=b+(1)>>0;}return[b,$ifaceNil];};Q.prototype.refineNonZeroes=function(a,b,c,d,e){return this.$val.refineNonZeroes(a,b,c,d,e);};$ptrType(AD).prototype.init=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;b=this;a=$clone(a,AB);c=0;d=a.value;e=0;while(e=d.$length)?$throwRuntimeError("index out of range"):d.$array[d.$offset+e]);if((f>>0)>c){c=(f>>0);}e++;}b.$set((g=BC.make((c+1>>0)),$subslice(new AD(g.$array),g.$offset,g.$offset+g.$length)));h=0;i=0;j=h;k=i;l=0;while(l<16){m=((l+1>>0)>>>0)<<24>>>0;n=0;while(n<(o=a.count,((l<0||l>=o.length)?$throwRuntimeError("index out of range"):o[l]))){(p=b.$get(),q=(r=a.value,((k<0||k>=r.$length)?$throwRuntimeError("index out of range"):r.$array[r.$offset+k])),(q<0||q>=p.$length)?$throwRuntimeError("index out of range"):p.$array[p.$offset+q]=(m|j)>>>0);j=j+(1)>>>0;k=k+(1)>>0;n=n+(1)<<24>>>24;}j=(s=(1),s<32?(j<>>0;l=l+(1)>>0;}};AF=function(){var a,b,c,d;a=AC;b=0;while(b<4){c=b;d=$clone(((b<0||b>=a.length)?$throwRuntimeError("index out of range"):a[b]),AB);new BD(function(){return((c<0||c>=this.$target.length)?$throwRuntimeError("index out of range"):this.$target[c]);},function($v){(c<0||c>=this.$target.length)?$throwRuntimeError("index out of range"):this.$target[c]=$v;},AE).init(d);b++;}};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=D.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=E.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=A.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}AQ=$arrayType(AD,4);AS=$sliceType($Uint8);AT=$arrayType($Int32,16);AU=$sliceType($Uint8);AV=$ptrType(B.Gray);AW=$ptrType(B.YCbCr);AX=$structType([["compIndex","compIndex","image/jpeg",$Uint8,""],["td","td","image/jpeg",$Uint8,""],["ta","ta","image/jpeg",$Uint8,""]]);AY=$arrayType(AX,3);AZ=$sliceType(I);BA=$arrayType($Int32,3);BB=$arrayType($Int32,64);BC=$sliceType($Uint32);BD=$ptrType(AD);BF=$arrayType(I,4);BI=$arrayType($Uint16,256);BJ=$arrayType($Uint8,256);BK=$ptrType(K);BL=$ptrType(L);BM=$arrayType($Uint8,4096);BN=$structType([["buf","buf","image/jpeg",BM,""],["i","i","image/jpeg",$Int,""],["j","j","image/jpeg",$Int,""],["nUnreadable","nUnreadable","image/jpeg",$Int,""]]);BO=$arrayType(M,3);BP=$arrayType(AZ,3);BQ=$arrayType(G,4);BR=$arrayType(BQ,2);BS=$arrayType($Uint8,65);BT=$ptrType(G);BU=$ptrType(I);BV=$ptrType(Q);BW=$arrayType($Uint8,16);G.init([["nCodes","nCodes","image/jpeg",$Int32,""],["lut","lut","image/jpeg",BI,""],["vals","vals","image/jpeg",BJ,""],["minCodes","minCodes","image/jpeg",AT,""],["maxCodes","maxCodes","image/jpeg",AT,""],["valsIndices","valsIndices","image/jpeg",AT,""]]);I.init($Int32,64);K.methods=[["Error","Error","",$funcType([],[$String],false),-1]];BK.methods=[["Error","Error","",$funcType([],[$String],false),-1]];L.methods=[["Error","Error","",$funcType([],[$String],false),-1]];BL.methods=[["Error","Error","",$funcType([],[$String],false),-1]];M.init([["h","h","image/jpeg",$Int,""],["v","v","image/jpeg",$Int,""],["c","c","image/jpeg",$Uint8,""],["tq","tq","image/jpeg",$Uint8,""]]);P.init([["a","a","image/jpeg",$Uint32,""],["m","m","image/jpeg",$Uint32,""],["n","n","image/jpeg",$Int32,""]]);BV.methods=[["decode","decode","image/jpeg",$funcType([A.Reader,$Bool],[B.Image,$error],false),-1],["decodeBit","decodeBit","image/jpeg",$funcType([],[$Bool,$error],false),-1],["decodeBits","decodeBits","image/jpeg",$funcType([$Int32],[$Uint32,$error],false),-1],["decodeHuffman","decodeHuffman","image/jpeg",$funcType([BT],[$Uint8,$error],false),-1],["ensureNBits","ensureNBits","image/jpeg",$funcType([$Int32],[$error],false),-1],["fill","fill","image/jpeg",$funcType([],[$error],false),-1],["ignore","ignore","image/jpeg",$funcType([$Int],[$error],false),-1],["makeImg","makeImg","image/jpeg",$funcType([$Int,$Int,$Int,$Int],[],false),-1],["processDHT","processDHT","image/jpeg",$funcType([$Int],[$error],false),-1],["processDQT","processDQT","image/jpeg",$funcType([$Int],[$error],false),-1],["processDRI","processDRI","image/jpeg",$funcType([$Int],[$error],false),-1],["processSOF","processSOF","image/jpeg",$funcType([$Int],[$error],false),-1],["processSOS","processSOS","image/jpeg",$funcType([$Int],[$error],false),-1],["readByte","readByte","image/jpeg",$funcType([],[$Uint8,$error],false),-1],["readByteStuffedByte","readByteStuffedByte","image/jpeg",$funcType([],[$Uint8,$error],false),-1],["readFull","readFull","image/jpeg",$funcType([AS],[$error],false),-1],["receiveExtend","receiveExtend","image/jpeg",$funcType([$Uint8],[$Int32,$error],false),-1],["refine","refine","image/jpeg",$funcType([BU,BT,$Int32,$Int32,$Int32],[$error],false),-1],["refineNonZeroes","refineNonZeroes","image/jpeg",$funcType([BU,$Int32,$Int32,$Int32,$Int32],[$Int32,$error],false),-1],["unreadByteStuffedByte","unreadByteStuffedByte","image/jpeg",$funcType([],[],false),-1]];Q.init([["r","r","image/jpeg",A.Reader,""],["bits","bits","image/jpeg",P,""],["bytes","bytes","image/jpeg",BN,""],["width","width","image/jpeg",$Int,""],["height","height","image/jpeg",$Int,""],["img1","img1","image/jpeg",AV,""],["img3","img3","image/jpeg",AW,""],["ri","ri","image/jpeg",$Int,""],["nComp","nComp","image/jpeg",$Int,""],["progressive","progressive","image/jpeg",$Bool,""],["eobRun","eobRun","image/jpeg",$Uint16,""],["comp","comp","image/jpeg",BO,""],["progCoeffs","progCoeffs","image/jpeg",BP,""],["huff","huff","image/jpeg",BR,""],["quant","quant","image/jpeg",BF,""],["tmp","tmp","image/jpeg",BS,""]]);AB.init([["count","count","image/jpeg",BW,""],["value","value","image/jpeg",AS,""]]);BD.methods=[["init","init","image/jpeg",$funcType([AB],[],false),-1]];AD.init($Uint32);AE=AQ.zero();H="short Huffman data";N=$toNativeArray($kindInt,[0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]);R="missing 0xff00 sequence";AC=$toNativeArray($kindStruct,[new AB.Ptr($toNativeArray($kindUint8,[0,1,5,1,1,1,1,1,1,0,0,0,0,0,0,0]),new AS([0,1,2,3,4,5,6,7,8,9,10,11])),new AB.Ptr($toNativeArray($kindUint8,[0,2,1,3,3,2,4,3,5,5,4,4,0,0,1,125]),new AS([1,2,3,0,4,17,5,18,33,49,65,6,19,81,97,7,34,113,20,50,129,145,161,8,35,66,177,193,21,82,209,240,36,51,98,114,130,9,10,22,23,24,25,26,37,38,39,40,41,42,52,53,54,55,56,57,58,67,68,69,70,71,72,73,74,83,84,85,86,87,88,89,90,99,100,101,102,103,104,105,106,115,116,117,118,119,120,121,122,131,132,133,134,135,136,137,138,146,147,148,149,150,151,152,153,154,162,163,164,165,166,167,168,169,170,178,179,180,181,182,183,184,185,186,194,195,196,197,198,199,200,201,202,210,211,212,213,214,215,216,217,218,225,226,227,228,229,230,231,232,233,234,241,242,243,244,245,246,247,248,249,250])),new AB.Ptr($toNativeArray($kindUint8,[0,3,1,1,1,1,1,1,1,1,1,0,0,0,0,0]),new AS([0,1,2,3,4,5,6,7,8,9,10,11])),new AB.Ptr($toNativeArray($kindUint8,[0,2,1,2,4,4,3,4,7,5,4,4,0,1,2,119]),new AS([0,1,2,3,17,4,5,33,49,6,18,65,81,7,97,113,19,34,50,129,8,20,66,145,161,177,193,9,35,51,82,240,21,98,114,209,10,22,36,52,225,37,241,23,24,25,26,38,39,40,41,42,53,54,55,56,57,58,67,68,69,70,71,72,73,74,83,84,85,86,87,88,89,90,99,100,101,102,103,104,105,106,115,116,117,118,119,120,121,122,130,131,132,133,134,135,136,137,138,146,147,148,149,150,151,152,153,154,162,163,164,165,166,167,168,169,170,178,179,180,181,182,183,184,185,186,194,195,196,197,198,199,200,201,202,210,211,212,213,214,215,216,217,218,226,227,228,229,230,231,232,233,234,242,243,244,245,246,247,248,249,250]))]);U();AF();}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["log"]=(function(){var $pkg={},A,B,C,D,E,F,Y,Z,AA,AB,AC,G,I,H,J,S;A=$packages["fmt"];B=$packages["io"];C=$packages["os"];D=$packages["runtime"];E=$packages["sync"];F=$packages["time"];G=$pkg.Logger=$newType(0,$kindStruct,"log.Logger","Logger","log",function(mu_,prefix_,flag_,out_,buf_){this.$val=this;this.mu=mu_!==undefined?mu_:new E.Mutex.Ptr();this.prefix=prefix_!==undefined?prefix_:"";this.flag=flag_!==undefined?flag_:0;this.out=out_!==undefined?out_:$ifaceNil;this.buf=buf_!==undefined?buf_:Y.nil;});H=$pkg.New=function(a,b,c){return new G.Ptr(new E.Mutex.Ptr(),b,c,a,Y.nil);};J=function(a,b,c){var d,e,f,g,h;d=(b>>>0);if((d===0)&&c<=1){a.$set($append(a.$get(),48));return;}e=$clone(Z.zero(),Z);f=32;while(d>0||c>0){f=f-(1)>>0;c=c-(1)>>0;(f<0||f>=e.length)?$throwRuntimeError("index out of range"):e[f]=((g=d%10,g===g?g:$throwRuntimeError("integer divide by zero"))<<24>>>24)+48<<24>>>24;d=(h=d/(10),(h===h&&h!==1/0&&h!==-1/0)?h>>>0:$throwRuntimeError("integer divide by zero"));}a.$set($appendSlice(a.$get(),$subslice(new Y(e),f)));};G.Ptr.prototype.formatHeader=function(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p;e=this;b=$clone(b,F.Time);a.$set($appendSlice(a.$get(),new Y($stringToBytes(e.prefix))));if(!(((e.flag&7)===0))){if(!(((e.flag&1)===0))){f=b.Date();g=f[0];h=f[1];i=f[2];J(a,g,4);a.$set($append(a.$get(),47));J(a,(h>>0),2);a.$set($append(a.$get(),47));J(a,i,2);a.$set($append(a.$get(),32));}if(!(((e.flag&6)===0))){j=b.Clock();k=j[0];l=j[1];m=j[2];J(a,k,2);a.$set($append(a.$get(),58));J(a,l,2);a.$set($append(a.$get(),58));J(a,m,2);if(!(((e.flag&4)===0))){a.$set($append(a.$get(),46));J(a,(n=b.Nanosecond()/1000,(n===n&&n!==1/0&&n!==-1/0)?n>>0:$throwRuntimeError("integer divide by zero")),6);}a.$set($append(a.$get(),32));}}if(!(((e.flag&24)===0))){if(!(((e.flag&16)===0))){o=c;p=c.length-1>>0;while(p>0){if(c.charCodeAt(p)===47){o=c.substring((p+1>>0));break;}p=p-(1)>>0;}c=o;}a.$set($appendSlice(a.$get(),new Y($stringToBytes(c))));a.$set($append(a.$get(),58));J(a,d,-1);a.$set($appendSlice(a.$get(),new Y($stringToBytes(": "))));}};G.prototype.formatHeader=function(a,b,c,d){return this.$val.formatHeader(a,b,c,d);};G.Ptr.prototype.Output=function(a,b){var $deferred=[],$err=null,c,d,e,f,g,h,i,j;try{$deferFrames.push($deferred);c=this;d=$clone(F.Now(),F.Time);e="";f=0;c.mu.Lock();$deferred.push([$methodVal(c.mu,"Unlock"),[]]);if(!(((c.flag&24)===0))){c.mu.Unlock();g=false;h=D.Caller(a);e=h[1];f=h[2];g=h[3];if(!g){e="???";f=0;}c.mu.Lock();}c.buf=$subslice(c.buf,0,0);c.formatHeader(new AA(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c),d,e,f);c.buf=$appendSlice(c.buf,new Y($stringToBytes(b)));if(b.length>0&&!((b.charCodeAt((b.length-1>>0))===10))){c.buf=$append(c.buf,10);}i=c.out.Write(c.buf);j=i[1];return j;}catch(err){$err=err;return $ifaceNil;}finally{$deferFrames.pop();$callDeferred($deferred,$err);}};G.prototype.Output=function(a,b){return this.$val.Output(a,b);};G.Ptr.prototype.Printf=function(a,b){var c;c=this;c.Output(2,A.Sprintf(a,b));};G.prototype.Printf=function(a,b){return this.$val.Printf(a,b);};G.Ptr.prototype.Print=function(a){var b;b=this;b.Output(2,A.Sprint(a));};G.prototype.Print=function(a){return this.$val.Print(a);};G.Ptr.prototype.Println=function(a){var b;b=this;b.Output(2,A.Sprintln(a));};G.prototype.Println=function(a){return this.$val.Println(a);};G.Ptr.prototype.Fatal=function(a){var b;b=this;b.Output(2,A.Sprint(a));C.Exit(1);};G.prototype.Fatal=function(a){return this.$val.Fatal(a);};G.Ptr.prototype.Fatalf=function(a,b){var c;c=this;c.Output(2,A.Sprintf(a,b));C.Exit(1);};G.prototype.Fatalf=function(a,b){return this.$val.Fatalf(a,b);};G.Ptr.prototype.Fatalln=function(a){var b;b=this;b.Output(2,A.Sprintln(a));C.Exit(1);};G.prototype.Fatalln=function(a){return this.$val.Fatalln(a);};G.Ptr.prototype.Panic=function(a){var b,c;b=this;c=A.Sprint(a);b.Output(2,c);$panic(new $String(c));};G.prototype.Panic=function(a){return this.$val.Panic(a);};G.Ptr.prototype.Panicf=function(a,b){var c,d;c=this;d=A.Sprintf(a,b);c.Output(2,d);$panic(new $String(d));};G.prototype.Panicf=function(a,b){return this.$val.Panicf(a,b);};G.Ptr.prototype.Panicln=function(a){var b,c;b=this;c=A.Sprintln(a);b.Output(2,c);$panic(new $String(c));};G.prototype.Panicln=function(a){return this.$val.Panicln(a);};G.Ptr.prototype.Flags=function(){var $deferred=[],$err=null,a;try{$deferFrames.push($deferred);a=this;a.mu.Lock();$deferred.push([$methodVal(a.mu,"Unlock"),[]]);return a.flag;}catch(err){$err=err;return 0;}finally{$deferFrames.pop();$callDeferred($deferred,$err);}};G.prototype.Flags=function(){return this.$val.Flags();};G.Ptr.prototype.SetFlags=function(a){var $deferred=[],$err=null,b;try{$deferFrames.push($deferred);b=this;b.mu.Lock();$deferred.push([$methodVal(b.mu,"Unlock"),[]]);b.flag=a;}catch(err){$err=err;}finally{$deferFrames.pop();$callDeferred($deferred,$err);}};G.prototype.SetFlags=function(a){return this.$val.SetFlags(a);};G.Ptr.prototype.Prefix=function(){var $deferred=[],$err=null,a;try{$deferFrames.push($deferred);a=this;a.mu.Lock();$deferred.push([$methodVal(a.mu,"Unlock"),[]]);return a.prefix;}catch(err){$err=err;return"";}finally{$deferFrames.pop();$callDeferred($deferred,$err);}};G.prototype.Prefix=function(){return this.$val.Prefix();};G.Ptr.prototype.SetPrefix=function(a){var $deferred=[],$err=null,b;try{$deferFrames.push($deferred);b=this;b.mu.Lock();$deferred.push([$methodVal(b.mu,"Unlock"),[]]);b.prefix=a;}catch(err){$err=err;}finally{$deferFrames.pop();$callDeferred($deferred,$err);}};G.prototype.SetPrefix=function(a){return this.$val.SetPrefix(a);};S=$pkg.Fatal=function(a){I.Output(2,A.Sprint(a));C.Exit(1);};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=E.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}$r=F.$init($BLOCKING);$s=6;case 6:if($r&&$r.$blocking){$r=$r();}Y=$sliceType($Uint8);Z=$arrayType($Uint8,32);AA=$ptrType(Y);AB=$sliceType($emptyInterface);AC=$ptrType(G);AC.methods=[["Fatal","Fatal","",$funcType([AB],[],true),-1],["Fatalf","Fatalf","",$funcType([$String,AB],[],true),-1],["Fatalln","Fatalln","",$funcType([AB],[],true),-1],["Flags","Flags","",$funcType([],[$Int],false),-1],["Output","Output","",$funcType([$Int,$String],[$error],false),-1],["Panic","Panic","",$funcType([AB],[],true),-1],["Panicf","Panicf","",$funcType([$String,AB],[],true),-1],["Panicln","Panicln","",$funcType([AB],[],true),-1],["Prefix","Prefix","",$funcType([],[$String],false),-1],["Print","Print","",$funcType([AB],[],true),-1],["Printf","Printf","",$funcType([$String,AB],[],true),-1],["Println","Println","",$funcType([AB],[],true),-1],["SetFlags","SetFlags","",$funcType([$Int],[],false),-1],["SetPrefix","SetPrefix","",$funcType([$String],[],false),-1],["formatHeader","formatHeader","log",$funcType([AA,F.Time,$String,$Int],[],false),-1]];G.init([["mu","mu","log",E.Mutex,""],["prefix","prefix","log",$String,""],["flag","flag","log",$Int,""],["out","out","log",B.Writer,""],["buf","buf","log",Y,""]]);I=H(C.Stderr,"",3);}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $packages["github.com/hajimehoshi/ebiten/example/perspective"]=(function(){var $pkg={},A,B,C,D,I,J,K,L,F,E,G,H;A=$packages["github.com/hajimehoshi/ebiten"];B=$packages["github.com/hajimehoshi/ebiten/ebitenutil"];C=$packages["image/jpeg"];D=$packages["log"];F=$pkg.parts=$newType(0,$kindStruct,"main.parts","parts","github.com/hajimehoshi/ebiten/example/perspective",function(image_){this.$val=this;this.image=image_!==undefined?image_:I.nil;});F.Ptr.prototype.Len=function(){var a,b,c;a=$clone(this,F);b=a.image.Size();c=b[1];return c;};F.prototype.Len=function(){return this.$val.Len();};F.Ptr.prototype.Dst=function(a){var b=0,c=0,d=0,e=0,f,g,h,i,j,k,l,m,n,o,p,q,r;f=$clone(this,F);g=f.image.Size();h=g[0];i=g[1];k=h+(j=(a*3>>0)/4,(j===j&&j!==1/0&&j!==-1/0)?j>>0:$throwRuntimeError("integer divide by zero"))>>0;n=(l=((m=(((i-a>>0))*3>>0)/4,(m===m&&m!==1/0&&m!==-1/0)?m>>0:$throwRuntimeError("integer divide by zero")))/2,(l===l&&l!==1/0&&l!==-1/0)?l>>0:$throwRuntimeError("integer divide by zero"));o=n;p=a;q=n+k>>0;r=a+1>>0;b=o;c=p;d=q;e=r;return[b,c,d,e];};F.prototype.Dst=function(a){return this.$val.Dst(a);};F.Ptr.prototype.Src=function(a){var b=0,c=0,d=0,e=0,f,g,h,i,j,k,l;f=$clone(this,F);g=f.image.Size();h=g[0];i=0;j=a;k=h;l=a+1>>0;b=i;c=j;d=k;e=l;return[b,c,d,e];};F.prototype.Src=function(a){return this.$val.Src(a);};G=function(a){var b,c,d,e,f;b=new A.DrawImageOptions.Ptr(new F.Ptr(E),new A.GeoM.Ptr(),new A.ColorM.Ptr(),J.nil);c=E.Size();d=c[0];e=c[1];f=d+e*0.75;b.GeoM.Translate(-f/2,-e/2);b.GeoM.Translate(160,120);a.DrawImage(E,b);return $ifaceNil;};H=function($b){var $this=this,$args=arguments,$r,$s=0,a,b,c,d,e;if($b!==$BLOCKING){$nonblockingCall();};var $f=function(){s:while(true){switch($s){case 0:a=$ifaceNil;c=B.NewImageFromFile("images/gophers.jpg",0,$BLOCKING);$s=1;case 1:if(c&&c.$blocking){c=c();}b=c;E=b[0];a=b[2];if(!($interfaceIsEqual(a,$ifaceNil))){D.Fatal(new K([a]));}d=A.Run(G,320,240,2,"Perspective (Ebiten Demo)",$BLOCKING);$s=2;case 2:if(d&&d.$blocking){d=d();}e=d;if(!($interfaceIsEqual(e,$ifaceNil))){}else{$s=3;continue;}D.Fatal(new K([e]));case 3:case-1:}return;}};$f.$blocking=true;return $f;};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}I=$ptrType(A.Image);J=$sliceType(A.ImagePart);K=$sliceType($emptyInterface);L=$ptrType(F);F.methods=[["Dst","Dst","",$funcType([$Int],[$Int,$Int,$Int,$Int],false),-1],["Len","Len","",$funcType([],[$Int],false),-1],["Src","Src","",$funcType([$Int],[$Int,$Int,$Int,$Int],false),-1]];L.methods=[["Dst","Dst","",$funcType([$Int],[$Int,$Int,$Int,$Int],false),-1],["Len","Len","",$funcType([],[$Int],false),-1],["Src","Src","",$funcType([$Int],[$Int,$Int,$Int,$Int],false),-1]];F.init([["image","image","github.com/hajimehoshi/ebiten/example/perspective",I,""]]);E=I.nil;$r=H($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}}return;}};$f.$blocking=true;return $f;};return $pkg;})(); $go($packages["github.com/hajimehoshi/ebiten/example/perspective"].$init, [], true); $flushConsole(); })(); //# sourceMappingURL=perspective.js.map