diff --git "a/assets/worker-BJyeiA2_.js" "b/assets/worker-BJyeiA2_.js" new file mode 100644--- /dev/null +++ "b/assets/worker-BJyeiA2_.js" @@ -0,0 +1,2738 @@ +var Kc={},Zc,A2,Zg={"./node_modules/onnxruntime-web/dist/ort-wasm-simd-threaded.jsep.wasm":(x,C,d)=>{x.exports=d.p+"ort-wasm-simd-threaded.jsep.wasm"},"./node_modules/onnxruntime-web/dist/ort.bundle.min.mjs?46eb":(x,C,d)=>{x.exports=d.p+"ort.bundle.min.mjs"},"?2ce3":()=>{},"?7a2c":()=>{},"?a42a":()=>{},"?2b25":()=>{},"?569f":()=>{},"?3f59":()=>{},"?154a":()=>{},"./node_modules/@huggingface/jinja/dist/index.js":(x,C,d)=>{d.r(C),d.d(C,{Environment:()=>vA,Interpreter:()=>SA,Template:()=>OA,parse:()=>Ie,tokenize:()=>S});var k=Object.freeze({Text:"Text",NumericLiteral:"NumericLiteral",BooleanLiteral:"BooleanLiteral",NullLiteral:"NullLiteral",StringLiteral:"StringLiteral",Identifier:"Identifier",Equals:"Equals",OpenParen:"OpenParen",CloseParen:"CloseParen",OpenStatement:"OpenStatement",CloseStatement:"CloseStatement",OpenExpression:"OpenExpression",CloseExpression:"CloseExpression",OpenSquareBracket:"OpenSquareBracket",CloseSquareBracket:"CloseSquareBracket",OpenCurlyBracket:"OpenCurlyBracket",CloseCurlyBracket:"CloseCurlyBracket",Comma:"Comma",Dot:"Dot",Colon:"Colon",Pipe:"Pipe",CallOperator:"CallOperator",AdditiveBinaryOperator:"AdditiveBinaryOperator",MultiplicativeBinaryOperator:"MultiplicativeBinaryOperator",ComparisonBinaryOperator:"ComparisonBinaryOperator",UnaryOperator:"UnaryOperator",Set:"Set",If:"If",For:"For",In:"In",Is:"Is",NotIn:"NotIn",Else:"Else",EndIf:"EndIf",ElseIf:"ElseIf",EndFor:"EndFor",And:"And",Or:"Or",Not:"UnaryOperator",Macro:"Macro",EndMacro:"EndMacro"}),z=Object.freeze({set:k.Set,for:k.For,in:k.In,is:k.Is,if:k.If,else:k.Else,endif:k.EndIf,elif:k.ElseIf,endfor:k.EndFor,and:k.And,or:k.Or,not:k.Not,"not in":k.NotIn,macro:k.Macro,endmacro:k.EndMacro,true:k.BooleanLiteral,false:k.BooleanLiteral,none:k.NullLiteral,True:k.BooleanLiteral,False:k.BooleanLiteral,None:k.NullLiteral}),K=class{constructor(ue,$){this.value=ue,this.type=$}};function L(ue){return/\w/.test(ue)}function j(ue){return/[0-9]/.test(ue)}var q=[["{%",k.OpenStatement],["%}",k.CloseStatement],["{{",k.OpenExpression],["}}",k.CloseExpression],["(",k.OpenParen],[")",k.CloseParen],["{",k.OpenCurlyBracket],["}",k.CloseCurlyBracket],["[",k.OpenSquareBracket],["]",k.CloseSquareBracket],[",",k.Comma],[".",k.Dot],[":",k.Colon],["|",k.Pipe],["<=",k.ComparisonBinaryOperator],[">=",k.ComparisonBinaryOperator],["==",k.ComparisonBinaryOperator],["!=",k.ComparisonBinaryOperator],["<",k.ComparisonBinaryOperator],[">",k.ComparisonBinaryOperator],["+",k.AdditiveBinaryOperator],["-",k.AdditiveBinaryOperator],["*",k.MultiplicativeBinaryOperator],["/",k.MultiplicativeBinaryOperator],["%",k.MultiplicativeBinaryOperator],["=",k.Equals]],W=new Map([["n",` +`],["t"," "],["r","\r"],["b","\b"],["f","\f"],["v","\v"],["'","'"],['"','"'],["\\","\\"]]);function S(ue,$={}){const me=[],Se=function(oA,BA={}){return oA.endsWith(` +`)&&(oA=oA.slice(0,-1)),oA=oA.replace(/{#.*?#}/gs,"{##}"),BA.lstrip_blocks&&(oA=oA.replace(/^[ \t]*({[#%])/gm,"$1")),BA.trim_blocks&&(oA=oA.replace(/([#%]})\n/g,"$1")),oA.replace(/{##}/g,"").replace(/-%}\s*/g,"%}").replace(/\s*{%-/g,"{%").replace(/-}}\s*/g,"}}").replace(/\s*{{-/g,"{{")}(ue,$);let qe=0;const dA=oA=>{let BA="";for(;oA(Se[qe]);)if(Se[qe]!=="\\"){if(BA+=Se[qe++],qe>=Se.length)throw new SyntaxError("Unexpected end of input")}else{if(++qe,qe>=Se.length)throw new SyntaxError("Unexpected end of input");const QA=Se[qe++],TA=W.get(QA);if(TA===void 0)throw new SyntaxError(`Unexpected escaped character: ${QA}`);BA+=TA}return BA};e:for(;qe0){me.push(new K(QA,k.Text));continue}}dA(QA=>/\s/.test(QA));const BA=Se[qe];if(BA==="-"||BA==="+"){const QA=me.at(-1)?.type;if(QA===k.Text||QA===void 0)throw new SyntaxError(`Unexpected character: ${BA}`);switch(QA){case k.Identifier:case k.NumericLiteral:case k.BooleanLiteral:case k.NullLiteral:case k.StringLiteral:case k.CloseParen:case k.CloseSquareBracket:break;default:{++qe;const TA=dA(j);me.push(new K(`${BA}${TA}`,TA.length>0?k.NumericLiteral:k.UnaryOperator));continue}}}for(const[QA,TA]of q)if(Se.slice(qe,qe+QA.length)===QA){me.push(new K(QA,TA)),qe+=QA.length;continue e}if(BA!=="'"&&BA!=='"')if(j(BA)){const QA=dA(j);me.push(new K(QA,k.NumericLiteral))}else{if(!L(BA))throw new SyntaxError(`Unexpected character: ${BA}`);{const QA=dA(L),TA=Object.hasOwn(z,QA)?z[QA]:k.Identifier;TA===k.In&&me.at(-1)?.type===k.Not?(me.pop(),me.push(new K("not in",k.NotIn))):me.push(new K(QA,TA))}}else{++qe;const QA=dA(TA=>TA!==BA);me.push(new K(QA,k.StringLiteral)),++qe}}return me}var X=class{type="Statement"},R=class extends X{constructor(ue){super(),this.body=ue}type="Program"},ae=class extends X{constructor(ue,$,me){super(),this.test=ue,this.body=$,this.alternate=me}type="If"},be=class extends X{constructor(ue,$,me,Se){super(),this.loopvar=ue,this.iterable=$,this.body=me,this.defaultBlock=Se}type="For"},xe=class extends X{constructor(ue,$){super(),this.assignee=ue,this.value=$}type="Set"},Ee=class extends X{constructor(ue,$,me){super(),this.name=ue,this.args=$,this.body=me}type="Macro"},se=class extends X{type="Expression"},ie=class extends se{constructor(ue,$,me){super(),this.object=ue,this.property=$,this.computed=me}type="MemberExpression"},we=class extends se{constructor(ue,$){super(),this.callee=ue,this.args=$}type="CallExpression"},u=class extends se{constructor(ue){super(),this.value=ue}type="Identifier"},b=class extends se{constructor(ue){super(),this.value=ue}type="Literal"},e=class extends b{type="NumericLiteral"},l=class extends b{type="StringLiteral"},M=class extends b{type="BooleanLiteral"},ge=class extends b{type="NullLiteral"},D=class extends b{type="ArrayLiteral"},P=class extends b{type="TupleLiteral"},Re=class extends b{type="ObjectLiteral"},Ne=class extends se{constructor(ue,$,me){super(),this.operator=ue,this.left=$,this.right=me}type="BinaryExpression"},Ye=class extends se{constructor(ue,$){super(),this.operand=ue,this.filter=$}type="FilterExpression"},Je=class extends se{constructor(ue,$){super(),this.iterable=ue,this.test=$}type="SelectExpression"},AA=class extends se{constructor(ue,$,me){super(),this.operand=ue,this.negate=$,this.test=me}type="TestExpression"},xA=class extends se{constructor(ue,$){super(),this.operator=ue,this.argument=$}type="UnaryExpression"},GA=class extends se{constructor(ue=void 0,$=void 0,me=void 0){super(),this.start=ue,this.stop=$,this.step=me}type="SliceExpression"},Ge=class extends se{constructor(ue,$){super(),this.key=ue,this.value=$}type="KeywordArgumentExpression"};function Ie(ue){const $=new R([]);let me=0;function Se(ZA,$A){const PA=ue[me++];if(!PA||PA.type!==ZA)throw new Error(`Parser Error: ${$A}. ${PA.type} !== ${ZA}.`);return PA}function qe(){switch(ue[me].type){case k.Text:return new l(Se(k.Text,"Expected text token").value);case k.OpenStatement:return function(){let ZA;switch(Se(k.OpenStatement,"Expected opening statement token"),ue[me].type){case k.Set:++me,ZA=BA(),Se(k.CloseStatement,"Expected closing statement token");break;case k.If:++me,ZA=QA(),Se(k.OpenStatement,"Expected {% token"),Se(k.EndIf,"Expected endif token"),Se(k.CloseStatement,"Expected %} token");break;case k.Macro:++me,ZA=function(){const $A=Ia();if($A.type!=="Identifier")throw new SyntaxError("Expected identifier following macro statement");const PA=tr();Se(k.CloseStatement,"Expected closing statement token");const qt=[];for(;dA(k.OpenStatement,k.EndMacro);)qt.push(qe());return new Ee($A,PA,qt)}(),Se(k.OpenStatement,"Expected {% token"),Se(k.EndMacro,"Expected endmacro token"),Se(k.CloseStatement,"Expected %} token");break;case k.For:++me,ZA=function(){const $A=TA(!0);if(!($A instanceof u||$A instanceof P))throw new SyntaxError(`Expected identifier/tuple for the loop variable, got ${$A.type} instead`);Se(k.In,"Expected `in` keyword following loop variable");const PA=Mt();Se(k.CloseStatement,"Expected closing statement token");const qt=[];for(;dA(k.OpenStatement,k.EndFor)&&dA(k.OpenStatement,k.Else);)qt.push(qe());const cs=[];if(oA(k.OpenStatement,k.Else))for(++me,++me,Se(k.CloseStatement,"Expected closing statement token");dA(k.OpenStatement,k.EndFor);)cs.push(qe());return new be($A,PA,qt,cs)}(),Se(k.OpenStatement,"Expected {% token"),Se(k.EndFor,"Expected endfor token"),Se(k.CloseStatement,"Expected %} token");break;default:throw new SyntaxError(`Unknown statement type: ${ue[me].type}`)}return ZA}();case k.OpenExpression:return function(){Se(k.OpenExpression,"Expected opening expression token");const ZA=Mt();return Se(k.CloseExpression,"Expected closing expression token"),ZA}();default:throw new SyntaxError(`Unexpected token type: ${ue[me].type}`)}}function dA(...ZA){return me+ZA.length<=ue.length&&ZA.some(($A,PA)=>$A!==ue[me+PA].type)}function oA(...ZA){return me+ZA.length<=ue.length&&ZA.every(($A,PA)=>$A===ue[me+PA].type)}function BA(){const ZA=Mt();if(oA(k.Equals)){++me;const $A=BA();return new xe(ZA,$A)}return ZA}function QA(){const ZA=Mt();Se(k.CloseStatement,"Expected closing statement token");const $A=[],PA=[];for(;ue[me]?.type!==k.OpenStatement||ue[me+1]?.type!==k.ElseIf&&ue[me+1]?.type!==k.Else&&ue[me+1]?.type!==k.EndIf;)$A.push(qe());if(ue[me]?.type===k.OpenStatement&&ue[me+1]?.type!==k.EndIf)if(++me,oA(k.ElseIf))Se(k.ElseIf,"Expected elseif token"),PA.push(QA());else for(Se(k.Else,"Expected else token"),Se(k.CloseStatement,"Expected closing statement token");ue[me]?.type!==k.OpenStatement||ue[me+1]?.type!==k.EndIf;)PA.push(qe());return new ae(ZA,$A,PA)}function TA(ZA=!1){const $A=ZA?Ia:Mt,PA=[$A()],qt=oA(k.Comma);for(;qt&&(++me,PA.push($A()),oA(k.Comma)););return qt?new P(PA):PA[0]}function Mt(){return function(){const ZA=Tt();if(oA(k.If)){++me;const $A=Tt();if(oA(k.Else)){++me;const PA=Tt();return new ae($A,[ZA],[PA])}return new Je(ZA,$A)}return ZA}()}function Tt(){let ZA=gt();for(;oA(k.Or);){const $A=ue[me];++me;const PA=gt();ZA=new Ne($A,ZA,PA)}return ZA}function gt(){let ZA=Ct();for(;oA(k.And);){const $A=ue[me];++me;const PA=Ct();ZA=new Ne($A,ZA,PA)}return ZA}function Ct(){let ZA;for(;oA(k.Not);){const $A=ue[me];++me;const PA=Ct();ZA=new xA($A,PA)}return ZA??function(){let $A=$t();for(;oA(k.ComparisonBinaryOperator)||oA(k.In)||oA(k.NotIn);){const PA=ue[me];++me;const qt=$t();$A=new Ne(PA,$A,qt)}return $A}()}function $t(){let ZA=Ka();for(;oA(k.AdditiveBinaryOperator);){const $A=ue[me];++me;const PA=Ka();ZA=new Ne($A,ZA,PA)}return ZA}function Qr(ZA){let $A=new we(ZA,tr());return $A=bt($A),oA(k.OpenParen)&&($A=Qr($A)),$A}function tr(){Se(k.OpenParen,"Expected opening parenthesis for arguments list");const ZA=function(){const $A=[];for(;!oA(k.CloseParen);){let PA=Mt();if(oA(k.Equals)){if(++me,!(PA instanceof u))throw new SyntaxError("Expected identifier for keyword argument");const qt=Mt();PA=new Ge(PA,qt)}$A.push(PA),oA(k.Comma)&&++me}return $A}();return Se(k.CloseParen,"Expected closing parenthesis for arguments list"),ZA}function da(){const ZA=[];let $A=!1;for(;!oA(k.CloseSquareBracket);)oA(k.Colon)?(ZA.push(void 0),++me,$A=!0):(ZA.push(Mt()),oA(k.Colon)&&(++me,$A=!0));if(ZA.length===0)throw new SyntaxError("Expected at least one argument for member/slice expression");if($A){if(ZA.length>3)throw new SyntaxError("Expected 0-3 arguments for slice expression");return new GA(...ZA)}return ZA[0]}function bt(ZA){for(;oA(k.Dot)||oA(k.OpenSquareBracket);){const $A=ue[me];let PA;++me;const qt=$A.type!==k.Dot;if(qt)PA=da(),Se(k.CloseSquareBracket,"Expected closing square bracket");else if(PA=Ia(),PA.type!=="Identifier")throw new SyntaxError("Expected identifier following dot operator");ZA=new ie(ZA,PA,qt)}return ZA}function Ka(){let ZA=Oa();for(;oA(k.MultiplicativeBinaryOperator);){const $A=ue[me];++me;const PA=Oa();ZA=new Ne($A,ZA,PA)}return ZA}function Oa(){let ZA=function(){let $A=function(){const PA=bt(Ia());return oA(k.OpenParen)?Qr(PA):PA}();for(;oA(k.Pipe);){++me;let PA=Ia();if(!(PA instanceof u))throw new SyntaxError("Expected identifier for the filter");oA(k.OpenParen)&&(PA=Qr(PA)),$A=new Ye($A,PA)}return $A}();for(;oA(k.Is);){++me;const $A=oA(k.Not);$A&&++me;let PA=Ia();if(PA instanceof M?PA=new u(PA.value.toString()):PA instanceof ge&&(PA=new u("none")),!(PA instanceof u))throw new SyntaxError("Expected identifier for the test");ZA=new AA(ZA,$A,PA)}return ZA}function Ia(){const ZA=ue[me];switch(ZA.type){case k.NumericLiteral:return++me,new e(Number(ZA.value));case k.StringLiteral:return++me,new l(ZA.value);case k.BooleanLiteral:return++me,new M(ZA.value.toLowerCase()==="true");case k.NullLiteral:return++me,new ge(null);case k.Identifier:return++me,new u(ZA.value);case k.OpenParen:{++me;const $A=TA();if(ue[me].type!==k.CloseParen)throw new SyntaxError(`Expected closing parenthesis, got ${ue[me].type} instead`);return++me,$A}case k.OpenSquareBracket:{++me;const $A=[];for(;!oA(k.CloseSquareBracket);)$A.push(Mt()),oA(k.Comma)&&++me;return++me,new D($A)}case k.OpenCurlyBracket:{++me;const $A=new Map;for(;!oA(k.CloseCurlyBracket);){const PA=Mt();Se(k.Colon,"Expected colon between key and value in object literal");const qt=Mt();$A.set(PA,qt),oA(k.Comma)&&++me}return++me,new Re($A)}default:throw new SyntaxError(`Unexpected token: ${ZA.type}`)}}for(;me=0?($=($??=0)<0?Math.max(ue.length+$,0):Math.min($,ue.length),me=(me??=ue.length)<0?Math.max(ue.length+me,0):Math.min(me,ue.length)):($=($??=ue.length-1)<0?Math.max(ue.length+$,-1):Math.min($,ue.length-1),me=(me??=-1)<-1?Math.max(ue.length+me,-1):Math.min(me,ue.length-1));const dA=[];for(let oA=$;qe*oA$.toUpperCase())}var kA=class{type="RuntimeValue";value;builtins=new Map;constructor(ue=void 0){this.value=ue}__bool__(){return new EA(!!this.value)}},aA=class extends kA{type="NumericValue"},nA=class extends kA{type="StringValue";builtins=new Map([["upper",new CA(()=>new nA(this.value.toUpperCase()))],["lower",new CA(()=>new nA(this.value.toLowerCase()))],["strip",new CA(()=>new nA(this.value.trim()))],["title",new CA(()=>new nA(Pe(this.value)))],["length",new aA(this.value.length)],["rstrip",new CA(()=>new nA(this.value.trimEnd()))],["lstrip",new CA(()=>new nA(this.value.trimStart()))],["split",new CA(ue=>{const $=ue[0]??new Te;if(!($ instanceof nA||$ instanceof Te))throw new Error("sep argument must be a string or null");const me=ue[1]??new aA(-1);if(!(me instanceof aA))throw new Error("maxsplit argument must be a number");let Se=[];if($ instanceof Te){const qe=this.value.trimStart();for(const{0:dA,index:oA}of qe.matchAll(/\S+/g)){if(me.value!==-1&&Se.length>=me.value&&oA!==void 0){Se.push(dA+qe.slice(oA+dA.length));break}Se.push(dA)}}else{if($.value==="")throw new Error("empty separator");Se=this.value.split($.value),me.value!==-1&&Se.length>me.value&&Se.push(Se.splice(me.value).join($.value))}return new Ze(Se.map(qe=>new nA(qe)))})]])},EA=class extends kA{type="BooleanValue"},iA=class extends kA{type="ObjectValue";__bool__(){return new EA(this.value.size>0)}builtins=new Map([["get",new CA(([ue,$])=>{if(!(ue instanceof nA))throw new Error(`Object key must be a string: got ${ue.type}`);return this.value.get(ue.value)??$??new Te})],["items",new CA(()=>new Ze(Array.from(this.value.entries()).map(([ue,$])=>new Ze([new nA(ue),$]))))]])},Fe=class extends iA{type="KeywordArgumentsValue"},Ze=class extends kA{type="ArrayValue";builtins=new Map([["length",new aA(this.value.length)]]);__bool__(){return new EA(this.value.length>0)}},mA=class extends Ze{type="TupleValue"},CA=class extends kA{type="FunctionValue"},Te=class extends kA{type="NullValue"},pA=class extends kA{type="UndefinedValue"},vA=class{constructor(ue){this.parent=ue}variables=new Map([["namespace",new CA(ue=>{if(ue.length===0)return new iA(new Map);if(ue.length!==1||!(ue[0]instanceof iA))throw new Error("`namespace` expects either zero arguments or a single object argument");return ue[0]})]]);tests=new Map([["boolean",ue=>ue.type==="BooleanValue"],["callable",ue=>ue instanceof CA],["odd",ue=>{if(ue.type!=="NumericValue")throw new Error(`Cannot apply test "odd" to type: ${ue.type}`);return ue.value%2!=0}],["even",ue=>{if(ue.type!=="NumericValue")throw new Error(`Cannot apply test "even" to type: ${ue.type}`);return ue.value%2==0}],["false",ue=>ue.type==="BooleanValue"&&!ue.value],["true",ue=>ue.type==="BooleanValue"&&ue.value],["none",ue=>ue.type==="NullValue"],["string",ue=>ue.type==="StringValue"],["number",ue=>ue.type==="NumericValue"],["integer",ue=>ue.type==="NumericValue"&&Number.isInteger(ue.value)],["iterable",ue=>ue.type==="ArrayValue"||ue.type==="StringValue"],["mapping",ue=>ue.type==="ObjectValue"],["lower",ue=>{const $=ue.value;return ue.type==="StringValue"&&$===$.toLowerCase()}],["upper",ue=>{const $=ue.value;return ue.type==="StringValue"&&$===$.toUpperCase()}],["none",ue=>ue.type==="NullValue"],["defined",ue=>ue.type!=="UndefinedValue"],["undefined",ue=>ue.type==="UndefinedValue"],["equalto",(ue,$)=>ue.value===$.value],["eq",(ue,$)=>ue.value===$.value]]);set(ue,$){return this.declareVariable(ue,YA($))}declareVariable(ue,$){if(this.variables.has(ue))throw new SyntaxError(`Variable already declared: ${ue}`);return this.variables.set(ue,$),$}setVariable(ue,$){return this.variables.set(ue,$),$}resolve(ue){if(this.variables.has(ue))return this;if(this.parent)return this.parent.resolve(ue);throw new Error(`Unknown variable: ${ue}`)}lookupVariable(ue){try{return this.resolve(ue).variables.get(ue)??new pA}catch{return new pA}}},SA=class{global;constructor(ue){this.global=ue??new vA}run(ue){return this.evaluate(ue,this.global)}evaluateBinaryExpression(ue,$){const me=this.evaluate(ue.left,$);switch(ue.operator.value){case"and":return me.__bool__().value?this.evaluate(ue.right,$):me;case"or":return me.__bool__().value?me:this.evaluate(ue.right,$)}const Se=this.evaluate(ue.right,$);switch(ue.operator.value){case"==":return new EA(me.value==Se.value);case"!=":return new EA(me.value!=Se.value)}if(me instanceof pA||Se instanceof pA)throw new Error("Cannot perform operation on undefined values");if(me instanceof Te||Se instanceof Te)throw new Error("Cannot perform operation on null values");if(me instanceof aA&&Se instanceof aA)switch(ue.operator.value){case"+":return new aA(me.value+Se.value);case"-":return new aA(me.value-Se.value);case"*":return new aA(me.value*Se.value);case"/":return new aA(me.value/Se.value);case"%":return new aA(me.value%Se.value);case"<":return new EA(me.value":return new EA(me.value>Se.value);case">=":return new EA(me.value>=Se.value);case"<=":return new EA(me.value<=Se.value)}else if(me instanceof Ze&&Se instanceof Ze){if(ue.operator.value==="+")return new Ze(me.value.concat(Se.value))}else if(Se instanceof Ze){const qe=Se.value.find(dA=>dA.value===me.value)!==void 0;switch(ue.operator.value){case"in":return new EA(qe);case"not in":return new EA(!qe)}}if((me instanceof nA||Se instanceof nA)&&ue.operator.value==="+")return new nA(me.value.toString()+Se.value.toString());if(me instanceof nA&&Se instanceof nA)switch(ue.operator.value){case"in":return new EA(Se.value.includes(me.value));case"not in":return new EA(!Se.value.includes(me.value))}if(me instanceof nA&&Se instanceof iA)switch(ue.operator.value){case"in":return new EA(Se.value.has(me.value));case"not in":return new EA(!Se.value.has(me.value))}throw new SyntaxError(`Unknown operator "${ue.operator.value}" between ${me.type} and ${Se.type}`)}evaluateArguments(ue,$){const me=[],Se=new Map;for(const qe of ue)if(qe.type==="KeywordArgumentExpression"){const dA=qe;Se.set(dA.key.value,this.evaluate(dA.value,$))}else{if(Se.size>0)throw new Error("Positional arguments must come before keyword arguments");me.push(this.evaluate(qe,$))}return[me,Se]}evaluateFilterExpression(ue,$){const me=this.evaluate(ue.operand,$);if(ue.filter.type==="Identifier"){const Se=ue.filter;if(Se.value==="tojson")return new nA(J(me));if(me instanceof Ze)switch(Se.value){case"list":return me;case"first":return me.value[0];case"last":return me.value[me.value.length-1];case"length":return new aA(me.value.length);case"reverse":return new Ze(me.value.reverse());case"sort":return new Ze(me.value.sort((qe,dA)=>{if(qe.type!==dA.type)throw new Error(`Cannot compare different types: ${qe.type} and ${dA.type}`);switch(qe.type){case"NumericValue":return qe.value-dA.value;case"StringValue":return qe.value.localeCompare(dA.value);default:throw new Error(`Cannot compare type: ${qe.type}`)}}));case"join":return new nA(me.value.map(qe=>qe.value).join(""));default:throw new Error(`Unknown ArrayValue filter: ${Se.value}`)}else if(me instanceof nA)switch(Se.value){case"length":return new aA(me.value.length);case"upper":return new nA(me.value.toUpperCase());case"lower":return new nA(me.value.toLowerCase());case"title":return new nA(Pe(me.value));case"capitalize":return new nA(me.value.charAt(0).toUpperCase()+me.value.slice(1));case"trim":return new nA(me.value.trim());case"indent":return new nA(me.value.split(` +`).map((qe,dA)=>dA===0||qe.length===0?qe:" "+qe).join(` +`));case"join":case"string":return me;default:throw new Error(`Unknown StringValue filter: ${Se.value}`)}else{if(me instanceof aA){if(Se.value==="abs")return new aA(Math.abs(me.value));throw new Error(`Unknown NumericValue filter: ${Se.value}`)}if(me instanceof iA)switch(Se.value){case"items":return new Ze(Array.from(me.value.entries()).map(([qe,dA])=>new Ze([new nA(qe),dA])));case"length":return new aA(me.value.size);default:throw new Error(`Unknown ObjectValue filter: ${Se.value}`)}}throw new Error(`Cannot apply filter "${Se.value}" to type: ${me.type}`)}if(ue.filter.type==="CallExpression"){const Se=ue.filter;if(Se.callee.type!=="Identifier")throw new Error(`Unknown filter: ${Se.callee.type}`);const qe=Se.callee.value;if(qe==="tojson"){const[,dA]=this.evaluateArguments(Se.args,$),oA=dA.get("indent")??new Te;if(!(oA instanceof aA||oA instanceof Te))throw new Error("If set, indent must be a number");return new nA(J(me,oA.value))}if(qe==="join"){let dA;if(me instanceof nA)dA=Array.from(me.value);else{if(!(me instanceof Ze))throw new Error(`Cannot apply filter "${qe}" to type: ${me.type}`);dA=me.value.map(TA=>TA.value)}const[oA,BA]=this.evaluateArguments(Se.args,$),QA=oA.at(0)??BA.get("separator")??new nA("");if(!(QA instanceof nA))throw new Error("separator must be a string");return new nA(dA.join(QA.value))}if(me instanceof Ze){switch(qe){case"selectattr":case"rejectattr":{const dA=qe==="selectattr";if(me.value.some(Tt=>!(Tt instanceof iA)))throw new Error(`\`${qe}\` can only be applied to array of objects`);if(Se.args.some(Tt=>Tt.type!=="StringLiteral"))throw new Error(`arguments of \`${qe}\` must be strings`);const[oA,BA,QA]=Se.args.map(Tt=>this.evaluate(Tt,$));let TA;if(BA){const Tt=$.tests.get(BA.value);if(!Tt)throw new Error(`Unknown test: ${BA.value}`);TA=Tt}else TA=(...Tt)=>Tt[0].__bool__().value;const Mt=me.value.filter(Tt=>{const gt=Tt.value.get(oA.value),Ct=!!gt&&TA(gt,QA);return dA?Ct:!Ct});return new Ze(Mt)}case"map":{const[,dA]=this.evaluateArguments(Se.args,$);if(dA.has("attribute")){const oA=dA.get("attribute");if(!(oA instanceof nA))throw new Error("attribute must be a string");const BA=dA.get("default"),QA=me.value.map(TA=>{if(!(TA instanceof iA))throw new Error("items in map must be an object");return TA.value.get(oA.value)??BA??new pA});return new Ze(QA)}throw new Error("`map` expressions without `attribute` set are not currently supported.")}}throw new Error(`Unknown ArrayValue filter: ${qe}`)}if(me instanceof nA){if(qe==="indent"){const[dA,oA]=this.evaluateArguments(Se.args,$),BA=dA.at(0)??oA.get("width")??new aA(4);if(!(BA instanceof aA))throw new Error("width must be a number");const QA=dA.at(1)??oA.get("first")??new EA(!1),TA=dA.at(2)??oA.get("blank")??new EA(!1),Mt=me.value.split(` +`),Tt=" ".repeat(BA.value),gt=Mt.map((Ct,$t)=>!QA.value&&$t===0||!TA.value&&Ct.length===0?Ct:Tt+Ct);return new nA(gt.join(` +`))}throw new Error(`Unknown StringValue filter: ${qe}`)}throw new Error(`Cannot apply filter "${qe}" to type: ${me.type}`)}throw new Error(`Unknown filter: ${ue.filter.type}`)}evaluateTestExpression(ue,$){const me=this.evaluate(ue.operand,$),Se=$.tests.get(ue.test.value);if(!Se)throw new Error(`Unknown test: ${ue.test.value}`);const qe=Se(me);return new EA(ue.negate?!qe:qe)}evaluateUnaryExpression(ue,$){const me=this.evaluate(ue.argument,$);if(ue.operator.value==="not")return new EA(!me.value);throw new SyntaxError(`Unknown operator: ${ue.operator.value}`)}evalProgram(ue,$){return this.evaluateBlock(ue.body,$)}evaluateBlock(ue,$){let me="";for(const Se of ue){const qe=this.evaluate(Se,$);qe.type!=="NullValue"&&qe.type!=="UndefinedValue"&&(me+=qe.value)}return new nA(me)}evaluateIdentifier(ue,$){return $.lookupVariable(ue.value)}evaluateCallExpression(ue,$){const[me,Se]=this.evaluateArguments(ue.args,$);Se.size>0&&me.push(new Fe(Se));const qe=this.evaluate(ue.callee,$);if(qe.type!=="FunctionValue")throw new Error(`Cannot call something that is not a function: got ${qe.type}`);return qe.value(me,$)}evaluateSliceExpression(ue,$,me){if(!(ue instanceof Ze||ue instanceof nA))throw new Error("Slice object must be an array or string");const Se=this.evaluate($.start,me),qe=this.evaluate($.stop,me),dA=this.evaluate($.step,me);if(!(Se instanceof aA||Se instanceof pA))throw new Error("Slice start must be numeric or undefined");if(!(qe instanceof aA||qe instanceof pA))throw new Error("Slice stop must be numeric or undefined");if(!(dA instanceof aA||dA instanceof pA))throw new Error("Slice step must be numeric or undefined");return ue instanceof Ze?new Ze(Ue(ue.value,Se.value,qe.value,dA.value)):new nA(Ue(Array.from(ue.value),Se.value,qe.value,dA.value).join(""))}evaluateMemberExpression(ue,$){const me=this.evaluate(ue.object,$);let Se,qe;if(ue.computed){if(ue.property.type==="SliceExpression")return this.evaluateSliceExpression(me,ue.property,$);Se=this.evaluate(ue.property,$)}else Se=new nA(ue.property.value);if(me instanceof iA){if(!(Se instanceof nA))throw new Error(`Cannot access property with non-string: got ${Se.type}`);qe=me.value.get(Se.value)??me.builtins.get(Se.value)}else if(me instanceof Ze||me instanceof nA)if(Se instanceof aA)qe=me.value.at(Se.value),me instanceof nA&&(qe=new nA(me.value.at(Se.value)));else{if(!(Se instanceof nA))throw new Error(`Cannot access property with non-string/non-number: got ${Se.type}`);qe=me.builtins.get(Se.value)}else{if(!(Se instanceof nA))throw new Error(`Cannot access property with non-string: got ${Se.type}`);qe=me.builtins.get(Se.value)}return qe instanceof kA?qe:new pA}evaluateSet(ue,$){const me=this.evaluate(ue.value,$);if(ue.assignee.type==="Identifier"){const Se=ue.assignee.value;$.setVariable(Se,me)}else{if(ue.assignee.type!=="MemberExpression")throw new Error(`Invalid LHS inside assignment expression: ${JSON.stringify(ue.assignee)}`);{const Se=ue.assignee,qe=this.evaluate(Se.object,$);if(!(qe instanceof iA))throw new Error("Cannot assign to member of non-object");if(Se.property.type!=="Identifier")throw new Error("Cannot assign to member with non-identifier property");qe.value.set(Se.property.value,me)}}return new Te}evaluateIf(ue,$){const me=this.evaluate(ue.test,$);return this.evaluateBlock(me.__bool__().value?ue.body:ue.alternate,$)}evaluateFor(ue,$){const me=new vA($);let Se,qe;if(ue.iterable.type==="SelectExpression"){const TA=ue.iterable;qe=this.evaluate(TA.iterable,me),Se=TA.test}else qe=this.evaluate(ue.iterable,me);if(!(qe instanceof Ze))throw new Error(`Expected iterable type in for loop: got ${qe.type}`);const dA=[],oA=[];for(let TA=0;TACt.setVariable(ue.loopvar.value,Tt);else{if(ue.loopvar.type!=="TupleLiteral")throw new Error(`Invalid loop variable(s): ${ue.loopvar.type}`);{const Ct=ue.loopvar;if(Tt.type!=="ArrayValue")throw new Error(`Cannot unpack non-iterable type: ${Tt.type}`);const $t=Tt;if(Ct.value.length!==$t.value.length)throw new Error(`Too ${Ct.value.length>$t.value.length?"few":"many"} items to unpack`);gt=Qr=>{for(let tr=0;tr0?dA[TA-1]:new pA],["nextitem",TA{const qe=new vA(Se);let dA;me=me.slice(),me.at(-1)?.type==="KeywordArgumentsValue"&&(dA=me.pop());for(let oA=0;oAthis.evaluate(me,$)));case"TupleLiteral":return new mA(ue.value.map(me=>this.evaluate(me,$)));case"ObjectLiteral":{const me=new Map;for(const[Se,qe]of ue.value){const dA=this.evaluate(Se,$);if(!(dA instanceof nA))throw new Error(`Object keys must be strings: got ${dA.type}`);me.set(dA.value,this.evaluate(qe,$))}return new iA(me)}case"Identifier":return this.evaluateIdentifier(ue,$);case"CallExpression":return this.evaluateCallExpression(ue,$);case"MemberExpression":return this.evaluateMemberExpression(ue,$);case"UnaryExpression":return this.evaluateUnaryExpression(ue,$);case"BinaryExpression":return this.evaluateBinaryExpression(ue,$);case"FilterExpression":return this.evaluateFilterExpression(ue,$);case"TestExpression":return this.evaluateTestExpression(ue,$);default:throw new SyntaxError(`Unknown node type: ${ue.type}`)}}};function YA(ue){switch(typeof ue){case"number":return new aA(ue);case"string":return new nA(ue);case"boolean":return new EA(ue);case"undefined":return new pA;case"object":return ue===null?new Te:Array.isArray(ue)?new Ze(ue.map(YA)):new iA(new Map(Object.entries(ue).map(([$,me])=>[$,YA(me)])));case"function":return new CA(($,me)=>{const Se=ue(...$.map(qe=>qe.value))??null;return YA(Se)});default:throw new Error(`Cannot convert to runtime value: ${ue}`)}}function J(ue,$,me){const Se=me??0;switch(ue.type){case"NullValue":case"UndefinedValue":return"null";case"NumericValue":case"StringValue":case"BooleanValue":return JSON.stringify(ue.value);case"ArrayValue":case"ObjectValue":{const qe=$?" ".repeat($):"",dA=` +`+qe.repeat(Se),oA=dA+qe;if(ue.type==="ArrayValue"){const BA=ue.value.map(QA=>J(QA,$,Se+1));return $?`[${oA}${BA.join(`,${oA}`)}${dA}]`:`[${BA.join(", ")}]`}{const BA=Array.from(ue.value.entries()).map(([QA,TA])=>{const Mt=`"${QA}": ${J(TA,$,Se+1)}`;return $?`${oA}${Mt}`:Mt});return $?`{${BA.join(",")}${dA}}`:`{${BA.join(", ")}}`}}default:throw new Error(`Cannot convert to JSON: ${ue.type}`)}}var OA=class{parsed;constructor(ue){const $=S(ue,{lstrip_blocks:!0,trim_blocks:!0});this.parsed=Ie($)}render(ue){const $=new vA;if($.set("false",!1),$.set("true",!0),$.set("raise_exception",me=>{throw new Error(me)}),$.set("range",ze),ue)for(const[me,Se]of Object.entries(ue))$.set(me,Se);return new SA($).run(this.parsed).value}}},"./node_modules/onnxruntime-common/dist/esm/backend-impl.js":(x,C,d)=>{d.r(C),d.d(C,{registerBackend:()=>K,resolveBackendAndExecutionProviders:()=>j});const k=new Map,z=[],K=(q,W,S)=>{if(!W||typeof W.init!="function"||typeof W.createInferenceSessionHandler!="function")throw new TypeError("not a valid backend");{const X=k.get(q);if(X===void 0)k.set(q,{backend:W,priority:S});else{if(X.priority>S)return;if(X.priority===S&&X.backend!==W)throw new Error(`cannot register backend "${q}" using priority ${S}`)}if(S>=0){const R=z.indexOf(q);R!==-1&&z.splice(R,1);for(let ae=0;ae{const W=k.get(q);if(!W)return"backend not found.";if(W.initialized)return W.backend;if(W.aborted)return W.error;{const S=!!W.initPromise;try{return S||(W.initPromise=W.backend.init(q)),await W.initPromise,W.initialized=!0,W.backend}catch(X){return S||(W.error=`${X}`,W.aborted=!0),W.error}finally{delete W.initPromise}}},j=async q=>{const W=q.executionProviders||[],S=W.map(Ee=>typeof Ee=="string"?Ee:Ee.name),X=S.length===0?z:S;let R;const ae=[],be=new Set;for(const Ee of X){const se=await L(Ee);typeof se=="string"?ae.push({name:Ee,err:se}):(R||(R=se),R===se&&be.add(Ee))}if(!R)throw new Error(`no available backend found. ERR: ${ae.map(Ee=>`[${Ee.name}] ${Ee.err}`).join(", ")}`);for(const{name:Ee,err:se}of ae)S.includes(Ee)&&console.warn(`removing requested execution provider "${Ee}" from session options because it is not available: ${se}`);const xe=W.filter(Ee=>be.has(typeof Ee=="string"?Ee:Ee.name));return[R,new Proxy(q,{get:(Ee,se)=>se==="executionProviders"?xe:Reflect.get(Ee,se)})]}},"./node_modules/onnxruntime-common/dist/esm/backend.js":(x,C,d)=>{d.r(C),d.d(C,{registerBackend:()=>k.registerBackend});var k=d("./node_modules/onnxruntime-common/dist/esm/backend-impl.js")},"./node_modules/onnxruntime-common/dist/esm/env-impl.js":(x,C,d)=>{d.r(C),d.d(C,{env:()=>K});var k=d("./node_modules/onnxruntime-common/dist/esm/version.js");let z="warning";const K={wasm:{},webgl:{},webgpu:{},versions:{common:k.version},set logLevel(L){if(L!==void 0){if(typeof L!="string"||["verbose","info","warning","error","fatal"].indexOf(L)===-1)throw new Error(`Unsupported logging level: ${L}`);z=L}},get logLevel(){return z}};Object.defineProperty(K,"logLevel",{enumerable:!0})},"./node_modules/onnxruntime-common/dist/esm/env.js":(x,C,d)=>{d.r(C),d.d(C,{env:()=>k});const k=d("./node_modules/onnxruntime-common/dist/esm/env-impl.js").env},"./node_modules/onnxruntime-common/dist/esm/index.js":(x,C,d)=>{d.r(C),d.d(C,{InferenceSession:()=>K.InferenceSession,TRACE:()=>j.TRACE,TRACE_FUNC_BEGIN:()=>j.TRACE_FUNC_BEGIN,TRACE_FUNC_END:()=>j.TRACE_FUNC_END,Tensor:()=>L.Tensor,TrainingSession:()=>q.TrainingSession,env:()=>z.env,registerBackend:()=>k.registerBackend});var k=d("./node_modules/onnxruntime-common/dist/esm/backend.js"),z=d("./node_modules/onnxruntime-common/dist/esm/env.js"),K=d("./node_modules/onnxruntime-common/dist/esm/inference-session.js"),L=d("./node_modules/onnxruntime-common/dist/esm/tensor.js");d("./node_modules/onnxruntime-common/dist/esm/tensor-conversion.js"),d("./node_modules/onnxruntime-common/dist/esm/tensor-factory.js");var j=d("./node_modules/onnxruntime-common/dist/esm/trace.js");d("./node_modules/onnxruntime-common/dist/esm/onnx-model.js"),d("./node_modules/onnxruntime-common/dist/esm/onnx-value.js");var q=d("./node_modules/onnxruntime-common/dist/esm/training-session.js")},"./node_modules/onnxruntime-common/dist/esm/inference-session-impl.js":(x,C,d)=>{d.r(C),d.d(C,{InferenceSession:()=>L});var k=d("./node_modules/onnxruntime-common/dist/esm/backend-impl.js"),z=d("./node_modules/onnxruntime-common/dist/esm/tensor.js"),K=d("./node_modules/onnxruntime-common/dist/esm/trace.js");class L{constructor(q){this.handler=q}async run(q,W,S){(0,K.TRACE_FUNC_BEGIN)();const X={};let R={};if(typeof q!="object"||q===null||q instanceof z.Tensor||Array.isArray(q))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let ae=!0;if(typeof W=="object"){if(W===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(W instanceof z.Tensor)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(W)){if(W.length===0)throw new TypeError("'fetches' cannot be an empty array.");ae=!1;for(const Ee of W){if(typeof Ee!="string")throw new TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(Ee)===-1)throw new RangeError(`'fetches' contains invalid output name: ${Ee}.`);X[Ee]=null}if(typeof S=="object"&&S!==null)R=S;else if(S!==void 0)throw new TypeError("'options' must be an object.")}else{let Ee=!1;const se=Object.getOwnPropertyNames(W);for(const ie of this.outputNames)if(se.indexOf(ie)!==-1){const we=W[ie];(we===null||we instanceof z.Tensor)&&(Ee=!0,ae=!1,X[ie]=we)}if(Ee){if(typeof S=="object"&&S!==null)R=S;else if(S!==void 0)throw new TypeError("'options' must be an object.")}else R=W}}else if(W!==void 0)throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(const Ee of this.inputNames)if(q[Ee]===void 0)throw new Error(`input '${Ee}' is missing in 'feeds'.`);if(ae)for(const Ee of this.outputNames)X[Ee]=null;const be=await this.handler.run(q,X,R),xe={};for(const Ee in be)if(Object.hasOwnProperty.call(be,Ee)){const se=be[Ee];se instanceof z.Tensor?xe[Ee]=se:xe[Ee]=new z.Tensor(se.type,se.data,se.dims)}return(0,K.TRACE_FUNC_END)(),xe}async release(){return this.handler.dispose()}static async create(q,W,S,X){let R;(0,K.TRACE_FUNC_BEGIN)();let ae={};if(typeof q=="string"){if(R=q,typeof W=="object"&&W!==null)ae=W;else if(W!==void 0)throw new TypeError("'options' must be an object.")}else if(q instanceof Uint8Array){if(R=q,typeof W=="object"&&W!==null)ae=W;else if(W!==void 0)throw new TypeError("'options' must be an object.")}else{if(!(q instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&q instanceof SharedArrayBuffer))throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");{const se=q;let ie=0,we=q.byteLength;if(typeof W=="object"&&W!==null)ae=W;else if(typeof W=="number"){if(ie=W,!Number.isSafeInteger(ie))throw new RangeError("'byteOffset' must be an integer.");if(ie<0||ie>=se.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${se.byteLength}).`);if(we=q.byteLength-ie,typeof S=="number"){if(we=S,!Number.isSafeInteger(we))throw new RangeError("'byteLength' must be an integer.");if(we<=0||ie+we>se.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${se.byteLength-ie}].`);if(typeof X=="object"&&X!==null)ae=X;else if(X!==void 0)throw new TypeError("'options' must be an object.")}else if(S!==void 0)throw new TypeError("'byteLength' must be a number.")}else if(W!==void 0)throw new TypeError("'options' must be an object.");R=new Uint8Array(se,ie,we)}}const[be,xe]=await(0,k.resolveBackendAndExecutionProviders)(ae),Ee=await be.createInferenceSessionHandler(R,xe);return(0,K.TRACE_FUNC_END)(),new L(Ee)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}}},"./node_modules/onnxruntime-common/dist/esm/inference-session.js":(x,C,d)=>{d.r(C),d.d(C,{InferenceSession:()=>k});const k=d("./node_modules/onnxruntime-common/dist/esm/inference-session-impl.js").InferenceSession},"./node_modules/onnxruntime-common/dist/esm/onnx-model.js":(x,C,d)=>{d.r(C)},"./node_modules/onnxruntime-common/dist/esm/onnx-value.js":(x,C,d)=>{d.r(C)},"./node_modules/onnxruntime-common/dist/esm/tensor-conversion-impl.js":(x,C,d)=>{d.r(C),d.d(C,{tensorToDataURL:()=>k,tensorToImageData:()=>z});const k=(K,L)=>{const j=typeof document<"u"?document.createElement("canvas"):new OffscreenCanvas(1,1);j.width=K.dims[3],j.height=K.dims[2];const q=j.getContext("2d");if(q!=null){let W,S;L?.tensorLayout!==void 0&&L.tensorLayout==="NHWC"?(W=K.dims[2],S=K.dims[3]):(W=K.dims[3],S=K.dims[2]);const X=L?.format!==void 0?L.format:"RGB",R=L?.norm;let ae,be;R===void 0||R.mean===void 0?ae=[255,255,255,255]:typeof R.mean=="number"?ae=[R.mean,R.mean,R.mean,R.mean]:(ae=[R.mean[0],R.mean[1],R.mean[2],0],R.mean[3]!==void 0&&(ae[3]=R.mean[3])),R===void 0||R.bias===void 0?be=[0,0,0,0]:typeof R.bias=="number"?be=[R.bias,R.bias,R.bias,R.bias]:(be=[R.bias[0],R.bias[1],R.bias[2],0],R.bias[3]!==void 0&&(be[3]=R.bias[3]));const xe=S*W;let Ee=0,se=xe,ie=2*xe,we=-1;X==="RGBA"?(Ee=0,se=xe,ie=2*xe,we=3*xe):X==="RGB"?(Ee=0,se=xe,ie=2*xe):X==="RBG"&&(Ee=0,ie=xe,se=2*xe);for(let u=0;u{const j=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d");let q;if(j==null)throw new Error("Can not access image data");{let W,S,X;L?.tensorLayout!==void 0&&L.tensorLayout==="NHWC"?(W=K.dims[2],S=K.dims[1],X=K.dims[3]):(W=K.dims[3],S=K.dims[2],X=K.dims[1]);const R=L!==void 0&&L.format!==void 0?L.format:"RGB",ae=L?.norm;let be,xe;ae===void 0||ae.mean===void 0?be=[255,255,255,255]:typeof ae.mean=="number"?be=[ae.mean,ae.mean,ae.mean,ae.mean]:(be=[ae.mean[0],ae.mean[1],ae.mean[2],255],ae.mean[3]!==void 0&&(be[3]=ae.mean[3])),ae===void 0||ae.bias===void 0?xe=[0,0,0,0]:typeof ae.bias=="number"?xe=[ae.bias,ae.bias,ae.bias,ae.bias]:(xe=[ae.bias[0],ae.bias[1],ae.bias[2],0],ae.bias[3]!==void 0&&(xe[3]=ae.bias[3]));const Ee=S*W;if(L!==void 0&&(L.format!==void 0&&X===4&&L.format!=="RGBA"||X===3&&L.format!=="RGB"&&L.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");const se=4;let ie=0,we=1,u=2,b=3,e=0,l=Ee,M=2*Ee,ge=-1;R==="RGBA"?(e=0,l=Ee,M=2*Ee,ge=3*Ee):R==="RGB"?(e=0,l=Ee,M=2*Ee):R==="RBG"&&(e=0,M=Ee,l=2*Ee),q=j.createImageData(W,S);for(let D=0;D{d.r(C)},"./node_modules/onnxruntime-common/dist/esm/tensor-factory-impl.js":(x,C,d)=>{d.r(C),d.d(C,{bufferToTensor:()=>z,tensorFromGpuBuffer:()=>j,tensorFromImage:()=>K,tensorFromMLTensor:()=>q,tensorFromPinnedBuffer:()=>W,tensorFromTexture:()=>L});var k=d("./node_modules/onnxruntime-common/dist/esm/tensor-impl.js");const z=(S,X)=>{if(S===void 0)throw new Error("Image buffer must be defined");if(X.height===void 0||X.width===void 0)throw new Error("Image height and width must be defined");if(X.tensorLayout==="NHWC")throw new Error("NHWC Tensor layout is not supported yet");const{height:R,width:ae}=X,be=X.norm??{mean:255,bias:0};let xe,Ee;xe=typeof be.mean=="number"?[be.mean,be.mean,be.mean,be.mean]:[be.mean[0],be.mean[1],be.mean[2],be.mean[3]??255],Ee=typeof be.bias=="number"?[be.bias,be.bias,be.bias,be.bias]:[be.bias[0],be.bias[1],be.bias[2],be.bias[3]??0];const se=X.format!==void 0?X.format:"RGBA",ie=X.tensorFormat!==void 0&&X.tensorFormat!==void 0?X.tensorFormat:"RGB",we=R*ae,u=ie==="RGBA"?new Float32Array(4*we):new Float32Array(3*we);let b=4,e=0,l=1,M=2,ge=3,D=0,P=we,Re=2*we,Ne=-1;se==="RGB"&&(b=3,e=0,l=1,M=2,ge=-1),ie==="RGBA"?Ne=3*we:ie==="RBG"?(D=0,Re=we,P=2*we):ie==="BGR"&&(Re=0,P=we,D=2*we);for(let Ye=0;Ye{const R=typeof HTMLImageElement<"u"&&S instanceof HTMLImageElement,ae=typeof ImageData<"u"&&S instanceof ImageData,be=typeof ImageBitmap<"u"&&S instanceof ImageBitmap,xe=typeof S=="string";let Ee,se=X??{};const ie=()=>{if(typeof document<"u")return document.createElement("canvas");if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(1,1);throw new Error("Canvas is not supported")},we=u=>typeof HTMLCanvasElement<"u"&&u instanceof HTMLCanvasElement||u instanceof OffscreenCanvas?u.getContext("2d"):null;if(R){const u=ie();u.width=S.width,u.height=S.height;const b=we(u);if(b==null)throw new Error("Can not access image data");{let e=S.height,l=S.width;if(X!==void 0&&X.resizedHeight!==void 0&&X.resizedWidth!==void 0&&(e=X.resizedHeight,l=X.resizedWidth),X!==void 0){if(se=X,X.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");se.tensorFormat="RGBA",se.height=e,se.width=l}else se.tensorFormat="RGBA",se.height=e,se.width=l;b.drawImage(S,0,0),Ee=b.getImageData(0,0,l,e).data}}else{if(!ae){if(be){if(X===void 0)throw new Error("Please provide image config with format for Imagebitmap");const u=ie();u.width=S.width,u.height=S.height;const b=we(u);if(b!=null){const e=S.height,l=S.width;return b.drawImage(S,0,0,l,e),Ee=b.getImageData(0,0,l,e).data,se.height=e,se.width=l,z(Ee,se)}throw new Error("Can not access image data")}if(xe)return new Promise((u,b)=>{const e=ie(),l=we(e);if(!S||!l)return b();const M=new Image;M.crossOrigin="Anonymous",M.src=S,M.onload=()=>{e.width=M.width,e.height=M.height,l.drawImage(M,0,0,e.width,e.height);const ge=l.getImageData(0,0,e.width,e.height);se.height=e.height,se.width=e.width,u(z(ge.data,se))}});throw new Error("Input data provided is not supported - aborted tensor creation")}{let u,b;if(X!==void 0&&X.resizedWidth!==void 0&&X.resizedHeight!==void 0?(u=X.resizedHeight,b=X.resizedWidth):(u=S.height,b=S.width),X!==void 0&&(se=X),se.format="RGBA",se.height=u,se.width=b,X!==void 0){const e=ie();e.width=b,e.height=u;const l=we(e);if(l==null)throw new Error("Can not access image data");l.putImageData(S,0,0),Ee=l.getImageData(0,0,b,u).data}else Ee=S.data}}if(Ee!==void 0)return z(Ee,se);throw new Error("Input data provided is not supported - aborted tensor creation")},L=(S,X)=>{const{width:R,height:ae,download:be,dispose:xe}=X,Ee=[1,ae,R,4];return new k.Tensor({location:"texture",type:"float32",texture:S,dims:Ee,download:be,dispose:xe})},j=(S,X)=>{const{dataType:R,dims:ae,download:be,dispose:xe}=X;return new k.Tensor({location:"gpu-buffer",type:R??"float32",gpuBuffer:S,dims:ae,download:be,dispose:xe})},q=(S,X)=>{const{dataType:R,dims:ae,download:be,dispose:xe}=X;return new k.Tensor({location:"ml-tensor",type:R??"float32",mlTensor:S,dims:ae,download:be,dispose:xe})},W=(S,X,R)=>new k.Tensor({location:"cpu-pinned",type:S,data:X,dims:R??[X.length]})},"./node_modules/onnxruntime-common/dist/esm/tensor-factory.js":(x,C,d)=>{d.r(C)},"./node_modules/onnxruntime-common/dist/esm/tensor-impl-type-mapping.js":(x,C,d)=>{d.r(C),d.d(C,{NUMERIC_TENSOR_TYPEDARRAY_TO_TYPE_MAP:()=>z,NUMERIC_TENSOR_TYPE_TO_TYPEDARRAY_MAP:()=>k,checkTypedArray:()=>L});const k=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),z=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]);let K=!1;const L=()=>{if(!K){K=!0;const j=typeof BigInt64Array<"u"&&BigInt64Array.from,q=typeof BigUint64Array<"u"&&BigUint64Array.from,W=typeof Float16Array<"u"&&Float16Array.from;j&&(k.set("int64",BigInt64Array),z.set(BigInt64Array,"int64")),q&&(k.set("uint64",BigUint64Array),z.set(BigUint64Array,"uint64")),W?(k.set("float16",Float16Array),z.set(Float16Array,"float16")):k.set("float16",Uint16Array)}}},"./node_modules/onnxruntime-common/dist/esm/tensor-impl.js":(x,C,d)=>{d.r(C),d.d(C,{Tensor:()=>j});var k=d("./node_modules/onnxruntime-common/dist/esm/tensor-conversion-impl.js"),z=d("./node_modules/onnxruntime-common/dist/esm/tensor-factory-impl.js"),K=d("./node_modules/onnxruntime-common/dist/esm/tensor-impl-type-mapping.js"),L=d("./node_modules/onnxruntime-common/dist/esm/tensor-utils-impl.js");class j{constructor(W,S,X){let R,ae;if((0,K.checkTypedArray)(),typeof W=="object"&&"location"in W)switch(this.dataLocation=W.location,R=W.type,ae=W.dims,W.location){case"cpu-pinned":{const xe=K.NUMERIC_TENSOR_TYPE_TO_TYPEDARRAY_MAP.get(R);if(!xe)throw new TypeError(`unsupported type "${R}" to create tensor from pinned buffer`);if(!(W.data instanceof xe))throw new TypeError(`buffer should be of type ${xe.name}`);this.cpuData=W.data;break}case"texture":if(R!=="float32")throw new TypeError(`unsupported type "${R}" to create tensor from texture`);this.gpuTextureData=W.texture,this.downloader=W.download,this.disposer=W.dispose;break;case"gpu-buffer":if(R!=="float32"&&R!=="float16"&&R!=="int32"&&R!=="int64"&&R!=="uint32"&&R!=="uint8"&&R!=="bool"&&R!=="uint4"&&R!=="int4")throw new TypeError(`unsupported type "${R}" to create tensor from gpu buffer`);this.gpuBufferData=W.gpuBuffer,this.downloader=W.download,this.disposer=W.dispose;break;case"ml-tensor":if(R!=="float32"&&R!=="float16"&&R!=="int32"&&R!=="int64"&&R!=="uint32"&&R!=="uint64"&&R!=="int8"&&R!=="uint8"&&R!=="bool")throw new TypeError(`unsupported type "${R}" to create tensor from MLTensor`);this.mlTensorData=W.mlTensor,this.downloader=W.download,this.disposer=W.dispose;break;default:throw new Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let xe,Ee;if(typeof W=="string")if(R=W,Ee=X,W==="string"){if(!Array.isArray(S))throw new TypeError("A string tensor's data must be a string array.");xe=S}else{const se=K.NUMERIC_TENSOR_TYPE_TO_TYPEDARRAY_MAP.get(W);if(se===void 0)throw new TypeError(`Unsupported tensor type: ${W}.`);if(Array.isArray(S)){if(W==="float16"&&se===Uint16Array||W==="uint4"||W==="int4")throw new TypeError(`Creating a ${W} tensor from number array is not supported. Please use ${se.name} as data.`);xe=W==="uint64"||W==="int64"?se.from(S,BigInt):se.from(S)}else if(S instanceof se)xe=S;else{if(!(S instanceof Uint8ClampedArray))throw new TypeError(`A ${R} tensor's data must be type of ${se}`);if(W!=="uint8")throw new TypeError("A Uint8ClampedArray tensor's data must be type of uint8");xe=Uint8Array.from(S)}}else if(Ee=S,Array.isArray(W)){if(W.length===0)throw new TypeError("Tensor type cannot be inferred from an empty array.");const se=typeof W[0];if(se==="string")R="string",xe=W;else{if(se!=="boolean")throw new TypeError(`Invalid element type of data array: ${se}.`);R="bool",xe=Uint8Array.from(W)}}else if(W instanceof Uint8ClampedArray)R="uint8",xe=Uint8Array.from(W);else{const se=K.NUMERIC_TENSOR_TYPEDARRAY_TO_TYPE_MAP.get(W.constructor);if(se===void 0)throw new TypeError(`Unsupported type for tensor data: ${W.constructor}.`);R=se,xe=W}if(Ee===void 0)Ee=[xe.length];else if(!Array.isArray(Ee))throw new TypeError("A tensor's dims must be a number array");ae=Ee,this.cpuData=xe,this.dataLocation="cpu"}const be=(0,L.calculateSize)(ae);if(this.cpuData&&be!==this.cpuData.length&&(R!=="uint4"&&R!=="int4"||Math.ceil(be/2)!==this.cpuData.length))throw new Error(`Tensor's size(${be}) does not match data length(${this.cpuData.length}).`);this.type=R,this.dims=ae,this.size=be}static async fromImage(W,S){return(0,z.tensorFromImage)(W,S)}static fromTexture(W,S){return(0,z.tensorFromTexture)(W,S)}static fromGpuBuffer(W,S){return(0,z.tensorFromGpuBuffer)(W,S)}static fromMLTensor(W,S){return(0,z.tensorFromMLTensor)(W,S)}static fromPinnedBuffer(W,S,X){return(0,z.tensorFromPinnedBuffer)(W,S,X)}toDataURL(W){return(0,k.tensorToDataURL)(this,W)}toImageData(W){return(0,k.tensorToImageData)(this,W)}get data(){if(this.ensureValid(),!this.cpuData)throw new Error("The data is not on CPU. Use `getData()` to download GPU data to CPU, or use `texture` or `gpuBuffer` property to access the GPU data directly.");return this.cpuData}get location(){return this.dataLocation}get texture(){if(this.ensureValid(),!this.gpuTextureData)throw new Error("The data is not stored as a WebGL texture.");return this.gpuTextureData}get gpuBuffer(){if(this.ensureValid(),!this.gpuBufferData)throw new Error("The data is not stored as a WebGPU buffer.");return this.gpuBufferData}get mlTensor(){if(this.ensureValid(),!this.mlTensorData)throw new Error("The data is not stored as a WebNN MLTensor.");return this.mlTensorData}async getData(W){switch(this.ensureValid(),this.dataLocation){case"cpu":case"cpu-pinned":return this.data;case"texture":case"gpu-buffer":case"ml-tensor":if(!this.downloader)throw new Error("The current tensor is not created with a specified data downloader.");if(this.isDownloading)throw new Error("The current tensor is being downloaded.");try{this.isDownloading=!0;const S=await this.downloader();return this.downloader=void 0,this.dataLocation="cpu",this.cpuData=S,W&&this.disposer&&(this.disposer(),this.disposer=void 0),S}finally{this.isDownloading=!1}default:throw new Error(`cannot get data from location: ${this.dataLocation}`)}}dispose(){if(this.isDownloading)throw new Error("The current tensor is being downloaded.");this.disposer&&(this.disposer(),this.disposer=void 0),this.cpuData=void 0,this.gpuTextureData=void 0,this.gpuBufferData=void 0,this.mlTensorData=void 0,this.downloader=void 0,this.isDownloading=void 0,this.dataLocation="none"}ensureValid(){if(this.dataLocation==="none")throw new Error("The tensor is disposed.")}reshape(W){if(this.ensureValid(),this.downloader||this.disposer)throw new Error("Cannot reshape a tensor that owns GPU resource.");return(0,L.tensorReshape)(this,W)}}},"./node_modules/onnxruntime-common/dist/esm/tensor-utils-impl.js":(x,C,d)=>{d.r(C),d.d(C,{calculateSize:()=>z,tensorReshape:()=>K});var k=d("./node_modules/onnxruntime-common/dist/esm/tensor-impl.js");const z=L=>{let j=1;for(let q=0;q{switch(L.location){case"cpu":return new k.Tensor(L.type,L.data,j);case"cpu-pinned":return new k.Tensor({location:"cpu-pinned",data:L.data,type:L.type,dims:j});case"texture":return new k.Tensor({location:"texture",texture:L.texture,type:L.type,dims:j});case"gpu-buffer":return new k.Tensor({location:"gpu-buffer",gpuBuffer:L.gpuBuffer,type:L.type,dims:j});case"ml-tensor":return new k.Tensor({location:"ml-tensor",mlTensor:L.mlTensor,type:L.type,dims:j});default:throw new Error(`tensorReshape: tensor location ${L.location} is not supported`)}}},"./node_modules/onnxruntime-common/dist/esm/tensor.js":(x,C,d)=>{d.r(C),d.d(C,{Tensor:()=>k});const k=d("./node_modules/onnxruntime-common/dist/esm/tensor-impl.js").Tensor},"./node_modules/onnxruntime-common/dist/esm/trace.js":(x,C,d)=>{d.r(C),d.d(C,{TRACE:()=>z,TRACE_FUNC_BEGIN:()=>L,TRACE_FUNC_END:()=>j});var k=d("./node_modules/onnxruntime-common/dist/esm/env-impl.js");const z=(q,W)=>{(k.env.trace===void 0?k.env.wasm.trace:k.env.trace)&&console.timeStamp(`${q}::ORT::${W}`)},K=(q,W)=>{const S=new Error().stack?.split(/\r\n|\r|\n/g)||[];let X=!1;for(let R=0;R{(k.env.trace===void 0?k.env.wasm.trace:k.env.trace)&&K("BEGIN",q)},j=q=>{(k.env.trace===void 0?k.env.wasm.trace:k.env.trace)&&K("END",q)}},"./node_modules/onnxruntime-common/dist/esm/training-session-impl.js":(x,C,d)=>{d.r(C),d.d(C,{TrainingSession:()=>K});var k=d("./node_modules/onnxruntime-common/dist/esm/backend-impl.js"),z=d("./node_modules/onnxruntime-common/dist/esm/tensor.js");class K{constructor(j,q,W){this.handler=j,this.hasOptimizerModel=q,this.hasEvalModel=W}get trainingInputNames(){return this.handler.inputNames}get trainingOutputNames(){return this.handler.outputNames}get evalInputNames(){if(this.hasEvalModel)return this.handler.evalInputNames;throw new Error("This training session has no evalModel loaded.")}get evalOutputNames(){if(this.hasEvalModel)return this.handler.evalOutputNames;throw new Error("This training session has no evalModel loaded.")}static async create(j,q){const W=j.evalModel||"",S=j.optimizerModel||"",X=q||{},[R,ae]=await(0,k.resolveBackendAndExecutionProviders)(X);if(R.createTrainingSessionHandler){const be=await R.createTrainingSessionHandler(j.checkpointState,j.trainModel,W,S,ae);return new K(be,!!j.optimizerModel,!!j.evalModel)}throw new Error("Training backend could not be resolved. Make sure you're using the correct configuration & WebAssembly files.")}typeNarrowingForRunStep(j,q,W,S,X){const R={};let ae={};if(typeof W!="object"||W===null||W instanceof z.Tensor||Array.isArray(W))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let be=!0;if(typeof S=="object"){if(S===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(S instanceof z.Tensor)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(S)){if(S.length===0)throw new TypeError("'fetches' cannot be an empty array.");be=!1;for(const xe of S){if(typeof xe!="string")throw new TypeError("'fetches' must be a string array or an object.");if(q.indexOf(xe)===-1)throw new RangeError(`'fetches' contains invalid output name: ${xe}.`);R[xe]=null}if(typeof X=="object"&&X!==null)ae=X;else if(X!==void 0)throw new TypeError("'options' must be an object.")}else{let xe=!1;const Ee=Object.getOwnPropertyNames(S);for(const se of q)if(Ee.indexOf(se)!==-1){const ie=S[se];(ie===null||ie instanceof z.Tensor)&&(xe=!0,be=!1,R[se]=ie)}if(xe){if(typeof X=="object"&&X!==null)ae=X;else if(X!==void 0)throw new TypeError("'options' must be an object.")}else ae=S}}else if(S!==void 0)throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(const xe of j)if(W[xe]===void 0)throw new Error(`input '${xe}' is missing in 'feeds'.`);if(be)for(const xe of q)R[xe]=null;return[R,ae]}convertHandlerReturnTypeToMapOfTensors(j){const q={};for(const W in j)if(Object.hasOwnProperty.call(j,W)){const S=j[W];S instanceof z.Tensor?q[W]=S:q[W]=new z.Tensor(S.type,S.data,S.dims)}return q}async lazyResetGrad(){await this.handler.lazyResetGrad()}async runTrainStep(j,q,W){const[S,X]=this.typeNarrowingForRunStep(this.trainingInputNames,this.trainingOutputNames,j,q,W),R=await this.handler.runTrainStep(j,S,X);return this.convertHandlerReturnTypeToMapOfTensors(R)}async runOptimizerStep(j){if(!this.hasOptimizerModel)throw new Error("This TrainingSession has no OptimizerModel loaded.");await this.handler.runOptimizerStep(j||{})}async runEvalStep(j,q,W){if(this.hasEvalModel){const[S,X]=this.typeNarrowingForRunStep(this.evalInputNames,this.evalOutputNames,j,q,W),R=await this.handler.runEvalStep(j,S,X);return this.convertHandlerReturnTypeToMapOfTensors(R)}throw new Error("This TrainingSession has no EvalModel loaded.")}async getParametersSize(j=!0){return this.handler.getParametersSize(j)}async loadParametersBuffer(j,q=!0){const W=await this.getParametersSize(q);if(j.length!==4*W)throw new Error("Size of the buffer passed into loadParametersBuffer must match the number of parameters in the model. Please use getParametersSize method to check.");return this.handler.loadParametersBuffer(j,q)}async getContiguousParameters(j=!0){return this.handler.getContiguousParameters(j)}async release(){return this.handler.dispose()}}},"./node_modules/onnxruntime-common/dist/esm/training-session.js":(x,C,d)=>{d.r(C),d.d(C,{TrainingSession:()=>k});const k=d("./node_modules/onnxruntime-common/dist/esm/training-session-impl.js").TrainingSession},"./node_modules/onnxruntime-common/dist/esm/version.js":(x,C,d)=>{d.r(C),d.d(C,{version:()=>k});const k="1.20.1"},"./node_modules/onnxruntime-web/dist/ort.bundle.min.mjs?3a96":(x,C,d)=>{d.r(C),d.d(C,{InferenceSession:()=>xA,TRACE:()=>Re,TRACE_FUNC_BEGIN:()=>Ye,TRACE_FUNC_END:()=>Je,Tensor:()=>P,default:()=>pf,env:()=>X,registerBackend:()=>K});var k,z,K,L,j,q,W,S,X,R,ae,be,xe,Ee,se,ie,we,u,b,e,l,M,ge,D,P,Re,Ne,Ye,Je,AA,xA,GA=Object.defineProperty,Ge=Object.getOwnPropertyDescriptor,Ie=Object.getOwnPropertyNames,ze=Object.prototype.hasOwnProperty,Ue=(i=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(i,{get:(g,h)=>(typeof require<"u"?require:g)[h]}):i)(function(i){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+i+'" is not supported')}),Pe=(i,g)=>()=>(i&&(g=i(i=0)),g),kA=(i,g)=>{for(var h in g)GA(i,h,{get:g[h],enumerable:!0})},aA=i=>((g,h,w,B)=>{if(h&&typeof h=="object"||typeof h=="function")for(let y of Ie(h))!ze.call(g,y)&&y!==w&&GA(g,y,{get:()=>h[y],enumerable:!(B=Ge(h,y))||B.enumerable});return g})(GA({},"__esModule",{value:!0}),i),nA=Pe(()=>{k=new Map,z=[],K=(i,g,h)=>{if(!g||typeof g.init!="function"||typeof g.createInferenceSessionHandler!="function")throw new TypeError("not a valid backend");{let w=k.get(i);if(w===void 0)k.set(i,{backend:g,priority:h});else{if(w.priority>h)return;if(w.priority===h&&w.backend!==g)throw new Error(`cannot register backend "${i}" using priority ${h}`)}if(h>=0){let B=z.indexOf(i);B!==-1&&z.splice(B,1);for(let y=0;y{let g=k.get(i);if(!g)return"backend not found.";if(g.initialized)return g.backend;if(g.aborted)return g.error;{let h=!!g.initPromise;try{return h||(g.initPromise=g.backend.init(i)),await g.initPromise,g.initialized=!0,g.backend}catch(w){return h||(g.error=`${w}`,g.aborted=!0),g.error}finally{delete g.initPromise}}},j=async i=>{let g,h=i.executionProviders||[],w=h.map(N=>typeof N=="string"?N:N.name),B=w.length===0?z:w,y=[],E=new Set;for(let N of B){let Y=await L(N);typeof Y=="string"?y.push({name:N,err:Y}):(g||(g=Y),g===Y&&E.add(N))}if(!g)throw new Error(`no available backend found. ERR: ${y.map(N=>`[${N.name}] ${N.err}`).join(", ")}`);for(let{name:N,err:Y}of y)w.includes(N)&&console.warn(`removing requested execution provider "${N}" from session options because it is not available: ${Y}`);let F=h.filter(N=>E.has(typeof N=="string"?N:N.name));return[g,new Proxy(i,{get:(N,Y)=>Y==="executionProviders"?F:Reflect.get(N,Y)})]}}),EA=Pe(()=>{nA()}),iA=Pe(()=>{q="1.21.0-dev.20250206-d981b153d3"}),Fe=Pe(()=>{iA(),W="warning",S={wasm:{},webgl:{},webgpu:{},versions:{common:q},set logLevel(i){if(i!==void 0){if(typeof i!="string"||["verbose","info","warning","error","fatal"].indexOf(i)===-1)throw new Error(`Unsupported logging level: ${i}`);W=i}},get logLevel(){return W}},Object.defineProperty(S,"logLevel",{enumerable:!0})}),Ze=Pe(()=>{Fe(),X=S}),mA=Pe(()=>{R=(i,g)=>{let h=typeof document<"u"?document.createElement("canvas"):new OffscreenCanvas(1,1);h.width=i.dims[3],h.height=i.dims[2];let w=h.getContext("2d");if(w!=null){let B,y;g?.tensorLayout!==void 0&&g.tensorLayout==="NHWC"?(B=i.dims[2],y=i.dims[3]):(B=i.dims[3],y=i.dims[2]);let E,F,N=g?.format!==void 0?g.format:"RGB",Y=g?.norm;Y===void 0||Y.mean===void 0?E=[255,255,255,255]:typeof Y.mean=="number"?E=[Y.mean,Y.mean,Y.mean,Y.mean]:(E=[Y.mean[0],Y.mean[1],Y.mean[2],0],Y.mean[3]!==void 0&&(E[3]=Y.mean[3])),Y===void 0||Y.bias===void 0?F=[0,0,0,0]:typeof Y.bias=="number"?F=[Y.bias,Y.bias,Y.bias,Y.bias]:(F=[Y.bias[0],Y.bias[1],Y.bias[2],0],Y.bias[3]!==void 0&&(F[3]=Y.bias[3]));let te=y*B,Q=0,ne=te,oe=2*te,de=-1;N==="RGBA"?(Q=0,ne=te,oe=2*te,de=3*te):N==="RGB"?(Q=0,ne=te,oe=2*te):N==="RBG"&&(Q=0,oe=te,ne=2*te);for(let fe=0;fe{let h,w=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d");if(w==null)throw new Error("Can not access image data");{let B,y,E;g?.tensorLayout!==void 0&&g.tensorLayout==="NHWC"?(B=i.dims[2],y=i.dims[1],E=i.dims[3]):(B=i.dims[3],y=i.dims[2],E=i.dims[1]);let F,N,Y=g!==void 0&&g.format!==void 0?g.format:"RGB",te=g?.norm;te===void 0||te.mean===void 0?F=[255,255,255,255]:typeof te.mean=="number"?F=[te.mean,te.mean,te.mean,te.mean]:(F=[te.mean[0],te.mean[1],te.mean[2],255],te.mean[3]!==void 0&&(F[3]=te.mean[3])),te===void 0||te.bias===void 0?N=[0,0,0,0]:typeof te.bias=="number"?N=[te.bias,te.bias,te.bias,te.bias]:(N=[te.bias[0],te.bias[1],te.bias[2],0],te.bias[3]!==void 0&&(N[3]=te.bias[3]));let Q=y*B;if(g!==void 0&&(g.format!==void 0&&E===4&&g.format!=="RGBA"||E===3&&g.format!=="RGB"&&g.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");let ne=4,oe=0,de=1,fe=2,ke=3,Me=0,De=Q,Le=2*Q,Xe=-1;Y==="RGBA"?(Me=0,De=Q,Le=2*Q,Xe=3*Q):Y==="RGB"?(Me=0,De=Q,Le=2*Q):Y==="RBG"&&(Me=0,Le=Q,De=2*Q),h=w.createImageData(B,y);for(let _e=0;_e{vA(),be=(i,g)=>{if(i===void 0)throw new Error("Image buffer must be defined");if(g.height===void 0||g.width===void 0)throw new Error("Image height and width must be defined");if(g.tensorLayout==="NHWC")throw new Error("NHWC Tensor layout is not supported yet");let h,w,{height:B,width:y}=g,E=g.norm??{mean:255,bias:0};h=typeof E.mean=="number"?[E.mean,E.mean,E.mean,E.mean]:[E.mean[0],E.mean[1],E.mean[2],E.mean[3]??255],w=typeof E.bias=="number"?[E.bias,E.bias,E.bias,E.bias]:[E.bias[0],E.bias[1],E.bias[2],E.bias[3]??0];let F=g.format!==void 0?g.format:"RGBA",N=g.tensorFormat!==void 0&&g.tensorFormat!==void 0?g.tensorFormat:"RGB",Y=B*y,te=N==="RGBA"?new Float32Array(4*Y):new Float32Array(3*Y),Q=4,ne=0,oe=1,de=2,fe=3,ke=0,Me=Y,De=2*Y,Le=-1;F==="RGB"&&(Q=3,ne=0,oe=1,de=2,fe=-1),N==="RGBA"?Le=3*Y:N==="RBG"?(ke=0,De=Y,Me=2*Y):N==="BGR"&&(De=0,Me=Y,ke=2*Y);for(let Xe=0;Xe{let h,w=typeof HTMLImageElement<"u"&&i instanceof HTMLImageElement,B=typeof ImageData<"u"&&i instanceof ImageData,y=typeof ImageBitmap<"u"&&i instanceof ImageBitmap,E=typeof i=="string",F=g??{},N=()=>{if(typeof document<"u")return document.createElement("canvas");if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(1,1);throw new Error("Canvas is not supported")},Y=te=>typeof HTMLCanvasElement<"u"&&te instanceof HTMLCanvasElement||te instanceof OffscreenCanvas?te.getContext("2d"):null;if(w){let te=N();te.width=i.width,te.height=i.height;let Q=Y(te);if(Q==null)throw new Error("Can not access image data");{let ne=i.height,oe=i.width;if(g!==void 0&&g.resizedHeight!==void 0&&g.resizedWidth!==void 0&&(ne=g.resizedHeight,oe=g.resizedWidth),g!==void 0){if(F=g,g.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");F.tensorFormat="RGBA",F.height=ne,F.width=oe}else F.tensorFormat="RGBA",F.height=ne,F.width=oe;Q.drawImage(i,0,0),h=Q.getImageData(0,0,oe,ne).data}}else{if(!B){if(y){if(g===void 0)throw new Error("Please provide image config with format for Imagebitmap");let te=N();te.width=i.width,te.height=i.height;let Q=Y(te);if(Q!=null){let ne=i.height,oe=i.width;return Q.drawImage(i,0,0,oe,ne),h=Q.getImageData(0,0,oe,ne).data,F.height=ne,F.width=oe,be(h,F)}throw new Error("Can not access image data")}if(E)return new Promise((te,Q)=>{let ne=N(),oe=Y(ne);if(!i||!oe)return Q();let de=new Image;de.crossOrigin="Anonymous",de.src=i,de.onload=()=>{ne.width=de.width,ne.height=de.height,oe.drawImage(de,0,0,ne.width,ne.height);let fe=oe.getImageData(0,0,ne.width,ne.height);F.height=ne.height,F.width=ne.width,te(be(fe.data,F))}});throw new Error("Input data provided is not supported - aborted tensor creation")}{let te,Q;if(g!==void 0&&g.resizedWidth!==void 0&&g.resizedHeight!==void 0?(te=g.resizedHeight,Q=g.resizedWidth):(te=i.height,Q=i.width),g!==void 0&&(F=g),F.format="RGBA",F.height=te,F.width=Q,g!==void 0){let ne=N();ne.width=Q,ne.height=te;let oe=Y(ne);if(oe==null)throw new Error("Can not access image data");oe.putImageData(i,0,0),h=oe.getImageData(0,0,Q,te).data}else h=i.data}}if(h!==void 0)return be(h,F);throw new Error("Input data provided is not supported - aborted tensor creation")},Ee=(i,g)=>{let{width:h,height:w,download:B,dispose:y}=g;return new D({location:"texture",type:"float32",texture:i,dims:[1,w,h,4],download:B,dispose:y})},se=(i,g)=>{let{dataType:h,dims:w,download:B,dispose:y}=g;return new D({location:"gpu-buffer",type:h??"float32",gpuBuffer:i,dims:w,download:B,dispose:y})},ie=(i,g)=>{let{dataType:h,dims:w,download:B,dispose:y}=g;return new D({location:"ml-tensor",type:h??"float32",mlTensor:i,dims:w,download:B,dispose:y})},we=(i,g,h)=>new D({location:"cpu-pinned",type:i,data:g,dims:h??[g.length]})}),Te=Pe(()=>{u=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),b=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),e=!1,l=()=>{if(!e){e=!0;let i=typeof BigInt64Array<"u"&&BigInt64Array.from,g=typeof BigUint64Array<"u"&&BigUint64Array.from,h=typeof Float16Array<"u"&&Float16Array.from;i&&(u.set("int64",BigInt64Array),b.set(BigInt64Array,"int64")),g&&(u.set("uint64",BigUint64Array),b.set(BigUint64Array,"uint64")),h?(u.set("float16",Float16Array),b.set(Float16Array,"float16")):u.set("float16",Uint16Array)}}}),pA=Pe(()=>{vA(),M=i=>{let g=1;for(let h=0;h{switch(i.location){case"cpu":return new D(i.type,i.data,g);case"cpu-pinned":return new D({location:"cpu-pinned",data:i.data,type:i.type,dims:g});case"texture":return new D({location:"texture",texture:i.texture,type:i.type,dims:g});case"gpu-buffer":return new D({location:"gpu-buffer",gpuBuffer:i.gpuBuffer,type:i.type,dims:g});case"ml-tensor":return new D({location:"ml-tensor",mlTensor:i.mlTensor,type:i.type,dims:g});default:throw new Error(`tensorReshape: tensor location ${i.location} is not supported`)}}}),vA=Pe(()=>{mA(),CA(),Te(),pA(),D=class{constructor(i,g,h){let w,B;if(l(),typeof i=="object"&&"location"in i)switch(this.dataLocation=i.location,w=i.type,B=i.dims,i.location){case"cpu-pinned":{let E=u.get(w);if(!E)throw new TypeError(`unsupported type "${w}" to create tensor from pinned buffer`);if(!(i.data instanceof E))throw new TypeError(`buffer should be of type ${E.name}`);this.cpuData=i.data;break}case"texture":if(w!=="float32")throw new TypeError(`unsupported type "${w}" to create tensor from texture`);this.gpuTextureData=i.texture,this.downloader=i.download,this.disposer=i.dispose;break;case"gpu-buffer":if(w!=="float32"&&w!=="float16"&&w!=="int32"&&w!=="int64"&&w!=="uint32"&&w!=="uint8"&&w!=="bool"&&w!=="uint4"&&w!=="int4")throw new TypeError(`unsupported type "${w}" to create tensor from gpu buffer`);this.gpuBufferData=i.gpuBuffer,this.downloader=i.download,this.disposer=i.dispose;break;case"ml-tensor":if(w!=="float32"&&w!=="float16"&&w!=="int32"&&w!=="int64"&&w!=="uint32"&&w!=="uint64"&&w!=="int8"&&w!=="uint8"&&w!=="bool"&&w!=="uint4"&&w!=="int4")throw new TypeError(`unsupported type "${w}" to create tensor from MLTensor`);this.mlTensorData=i.mlTensor,this.downloader=i.download,this.disposer=i.dispose;break;default:throw new Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let E,F;if(typeof i=="string")if(w=i,F=h,i==="string"){if(!Array.isArray(g))throw new TypeError("A string tensor's data must be a string array.");E=g}else{let N=u.get(i);if(N===void 0)throw new TypeError(`Unsupported tensor type: ${i}.`);if(Array.isArray(g)){if(i==="float16"&&N===Uint16Array||i==="uint4"||i==="int4")throw new TypeError(`Creating a ${i} tensor from number array is not supported. Please use ${N.name} as data.`);E=i==="uint64"||i==="int64"?N.from(g,BigInt):N.from(g)}else if(g instanceof N)E=g;else{if(!(g instanceof Uint8ClampedArray))throw new TypeError(`A ${w} tensor's data must be type of ${N}`);if(i!=="uint8")throw new TypeError("A Uint8ClampedArray tensor's data must be type of uint8");E=Uint8Array.from(g)}}else if(F=g,Array.isArray(i)){if(i.length===0)throw new TypeError("Tensor type cannot be inferred from an empty array.");let N=typeof i[0];if(N==="string")w="string",E=i;else{if(N!=="boolean")throw new TypeError(`Invalid element type of data array: ${N}.`);w="bool",E=Uint8Array.from(i)}}else if(i instanceof Uint8ClampedArray)w="uint8",E=Uint8Array.from(i);else{let N=b.get(i.constructor);if(N===void 0)throw new TypeError(`Unsupported type for tensor data: ${i.constructor}.`);w=N,E=i}if(F===void 0)F=[E.length];else if(!Array.isArray(F))throw new TypeError("A tensor's dims must be a number array");B=F,this.cpuData=E,this.dataLocation="cpu"}let y=M(B);if(this.cpuData&&y!==this.cpuData.length&&(w!=="uint4"&&w!=="int4"||Math.ceil(y/2)!==this.cpuData.length))throw new Error(`Tensor's size(${y}) does not match data length(${this.cpuData.length}).`);this.type=w,this.dims=B,this.size=y}static async fromImage(i,g){return xe(i,g)}static fromTexture(i,g){return Ee(i,g)}static fromGpuBuffer(i,g){return se(i,g)}static fromMLTensor(i,g){return ie(i,g)}static fromPinnedBuffer(i,g,h){return we(i,g,h)}toDataURL(i){return R(this,i)}toImageData(i){return ae(this,i)}get data(){if(this.ensureValid(),!this.cpuData)throw new Error("The data is not on CPU. Use `getData()` to download GPU data to CPU, or use `texture` or `gpuBuffer` property to access the GPU data directly.");return this.cpuData}get location(){return this.dataLocation}get texture(){if(this.ensureValid(),!this.gpuTextureData)throw new Error("The data is not stored as a WebGL texture.");return this.gpuTextureData}get gpuBuffer(){if(this.ensureValid(),!this.gpuBufferData)throw new Error("The data is not stored as a WebGPU buffer.");return this.gpuBufferData}get mlTensor(){if(this.ensureValid(),!this.mlTensorData)throw new Error("The data is not stored as a WebNN MLTensor.");return this.mlTensorData}async getData(i){switch(this.ensureValid(),this.dataLocation){case"cpu":case"cpu-pinned":return this.data;case"texture":case"gpu-buffer":case"ml-tensor":if(!this.downloader)throw new Error("The current tensor is not created with a specified data downloader.");if(this.isDownloading)throw new Error("The current tensor is being downloaded.");try{this.isDownloading=!0;let g=await this.downloader();return this.downloader=void 0,this.dataLocation="cpu",this.cpuData=g,i&&this.disposer&&(this.disposer(),this.disposer=void 0),g}finally{this.isDownloading=!1}default:throw new Error(`cannot get data from location: ${this.dataLocation}`)}}dispose(){if(this.isDownloading)throw new Error("The current tensor is being downloaded.");this.disposer&&(this.disposer(),this.disposer=void 0),this.cpuData=void 0,this.gpuTextureData=void 0,this.gpuBufferData=void 0,this.mlTensorData=void 0,this.downloader=void 0,this.isDownloading=void 0,this.dataLocation="none"}ensureValid(){if(this.dataLocation==="none")throw new Error("The tensor is disposed.")}reshape(i){if(this.ensureValid(),this.downloader||this.disposer)throw new Error("Cannot reshape a tensor that owns GPU resource.");return ge(this,i)}}}),SA=Pe(()=>{vA(),P=D}),YA=Pe(()=>{Fe(),Re=(i,g)=>{(typeof S.trace>"u"?!S.wasm.trace:!S.trace)||console.timeStamp(`${i}::ORT::${g}`)},Ne=(i,g)=>{let h=new Error().stack?.split(/\r\n|\r|\n/g)||[],w=!1;for(let B=0;B{(typeof S.trace>"u"?!S.wasm.trace:!S.trace)||Ne("BEGIN",i)},Je=i=>{(typeof S.trace>"u"?!S.wasm.trace:!S.trace)||Ne("END",i)}}),J=Pe(()=>{nA(),SA(),YA(),AA=class Xg{constructor(g){this.handler=g}async run(g,h,w){Ye();let B={},y={};if(typeof g!="object"||g===null||g instanceof P||Array.isArray(g))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let E=!0;if(typeof h=="object"){if(h===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(h instanceof P)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(h)){if(h.length===0)throw new TypeError("'fetches' cannot be an empty array.");E=!1;for(let Y of h){if(typeof Y!="string")throw new TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(Y)===-1)throw new RangeError(`'fetches' contains invalid output name: ${Y}.`);B[Y]=null}if(typeof w=="object"&&w!==null)y=w;else if(typeof w<"u")throw new TypeError("'options' must be an object.")}else{let Y=!1,te=Object.getOwnPropertyNames(h);for(let Q of this.outputNames)if(te.indexOf(Q)!==-1){let ne=h[Q];(ne===null||ne instanceof P)&&(Y=!0,E=!1,B[Q]=ne)}if(Y){if(typeof w=="object"&&w!==null)y=w;else if(typeof w<"u")throw new TypeError("'options' must be an object.")}else y=h}}else if(typeof h<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(let Y of this.inputNames)if(typeof g[Y]>"u")throw new Error(`input '${Y}' is missing in 'feeds'.`);if(E)for(let Y of this.outputNames)B[Y]=null;let F=await this.handler.run(g,B,y),N={};for(let Y in F)if(Object.hasOwnProperty.call(F,Y)){let te=F[Y];N[Y]=te instanceof P?te:new P(te.type,te.data,te.dims)}return Je(),N}async release(){return this.handler.dispose()}static async create(g,h,w,B){Ye();let y,E={};if(typeof g=="string"){if(y=g,typeof h=="object"&&h!==null)E=h;else if(typeof h<"u")throw new TypeError("'options' must be an object.")}else if(g instanceof Uint8Array){if(y=g,typeof h=="object"&&h!==null)E=h;else if(typeof h<"u")throw new TypeError("'options' must be an object.")}else{if(!(g instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&g instanceof SharedArrayBuffer))throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");{let te=g,Q=0,ne=g.byteLength;if(typeof h=="object"&&h!==null)E=h;else if(typeof h=="number"){if(Q=h,!Number.isSafeInteger(Q))throw new RangeError("'byteOffset' must be an integer.");if(Q<0||Q>=te.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${te.byteLength}).`);if(ne=g.byteLength-Q,typeof w=="number"){if(ne=w,!Number.isSafeInteger(ne))throw new RangeError("'byteLength' must be an integer.");if(ne<=0||Q+ne>te.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${te.byteLength-Q}].`);if(typeof B=="object"&&B!==null)E=B;else if(typeof B<"u")throw new TypeError("'options' must be an object.")}else if(typeof w<"u")throw new TypeError("'byteLength' must be a number.")}else if(typeof h<"u")throw new TypeError("'options' must be an object.");y=new Uint8Array(te,Q,ne)}}let[F,N]=await j(E),Y=await F.createInferenceSessionHandler(y,N);return Je(),new Xg(Y)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}}}),OA=Pe(()=>{J(),xA=AA}),ue=Pe(()=>{}),$=Pe(()=>{}),me=Pe(()=>{}),Se=Pe(()=>{}),qe={};kA(qe,{InferenceSession:()=>xA,TRACE:()=>Re,TRACE_FUNC_BEGIN:()=>Ye,TRACE_FUNC_END:()=>Je,Tensor:()=>P,env:()=>X,registerBackend:()=>K});var dA=Pe(()=>{EA(),Ze(),OA(),SA(),ue(),$(),YA(),me(),Se()}),oA=Pe(()=>{}),BA={};kA(BA,{default:()=>Mt});var QA,TA,Mt,Tt=Pe(()=>{hu(),ti(),Zo(),QA="ort-wasm-proxy-worker",(TA=globalThis.self?.name===QA)&&(self.onmessage=i=>{let{type:g,in:h}=i.data;try{switch(g){case"init-wasm":va(h.wasm).then(()=>{Gr(h).then(()=>{postMessage({type:g})},w=>{postMessage({type:g,err:w})})},w=>{postMessage({type:g,err:w})});break;case"init-ep":{let{epName:w,env:B}=h;oa(B,w).then(()=>{postMessage({type:g})},y=>{postMessage({type:g,err:y})});break}case"copy-from":{let{buffer:w}=h,B=zn(w);postMessage({type:g,out:B});break}case"create":{let{model:w,options:B}=h;N0(w,B).then(y=>{postMessage({type:g,out:y})},y=>{postMessage({type:g,err:y})});break}case"release":eo(h),postMessage({type:g});break;case"run":{let{sessionId:w,inputIndices:B,inputs:y,outputIndices:E,options:F}=h;to(w,B,y,E,new Array(E.length).fill(null),F).then(N=>{N.some(Y=>Y[3]!=="cpu")?postMessage({type:g,err:"Proxy does not support non-cpu tensor location."}):postMessage({type:g,out:N},ro([...y,...N]))},N=>{postMessage({type:g,err:N})});break}case"end-profiling":f1(h),postMessage({type:g})}}catch(w){postMessage({type:g,err:w})}}),Mt=TA?null:i=>new Worker(i??da,{type:"module",name:QA})}),gt={};kA(gt,{default:()=>Qr});var Ct,$t,Qr,tr,da,bt,Ka,Oa,Ia,ZA,$A,PA,qt,cs,Za,zs,ws,ks,Fs,$r,xt,va,Tr,Hr,us,Kt,Xa,gs,mn,_s,$s,Cn,Ur,ts,ds,en,qa,xs,kr,Ss,Ns,bn,Os,Bs,Ls,ys,wt,Pt,wa,An,Es,Ys,rs,Hs,tA,_,Be,Oe,Ve,$e,fA,NA,He,VA,bA,Yt,Vt,cr,sr,jt,jA,KA,Jt,La,fa,nr,rt,dr,uA,JA,pa,Nr,Rr,Pr,Cr,Ut,xr,tn,Ya,Sn,Ma,Nn,Gt,ea,Wa,s0,n0,i0,o0,rn,Rs,l0,On,Qa,Kr,qA,Ga,di,Ln,fi,c0,u0,pi,j0,Ta,rr,In,wn,ka,Ws,as,hi,mi,Vs,Ci,bi,Ii,DA,js,RA,wi,Yn,xa,Pa,an,kn,ki,zr,g0,d0,vs,sn,f0,Hn,nn,HA,Ja,xi,xn,fs,Bi,p0,h0,Rn,m0,C0,Or,b0,I0,It,Ht,yi,ss,w0,Aa,ps,ta,hs,Wn,Ei,k0,Vn,yr,Bn,vi,ra,on,ms,Mi,Gi,Di,jn,ns,Un,x0,Qi,Ti,Cs,Kn,Lr,Pi,Zn,yn,za,En,zi,_a,Fi,Xn,Si,ln,Ni,B0,y0,aa,vn,ha,Oi,qn,Va,fr,Li,Ms,cn,E0,Yi,Hi,v0,Gs,$a,Ri,Mn,Zr,ar,un,M0,Ds,Qs,Us,Wi,ma,G0,Vi,gn,Gn,sa,ji,Jn,Ks,D0,dn,ct,A,t,r,a,s,n,o,c,f,m,p,I,v,T,O,Z,ee,ce,he,ye,Qe,We,Ke,rA,cA,MA,zA,et,at,dt,Ft,Zt,er,pr,hr,Er,vr,Fr,Wr,na,Xr,ia,Ba,es,is,os,Ts,Dn,fn,pn,Qn,Ui,Q0,T0,_n,l2,c2,u2,g2,d2,uo,f2,p2,go,h2,m2,C2,b2,fo,I2,w2,po,k2,x2,ho,B2,Zs,Xs,$n,ei,y2,E2,mo,v2,M2,G2,D2,Q2,T2,Ha,P2,z2,U0,F2,P0,Tn,S2,N2,O2,L2,K0,Y2,H2,R2,W2,z0,V2,Co,j2,F0,U2,K2,Z2,X2,Z0,q2,J2,_2,B1,$2,el,Al,Ki,tl,rl,al,sl,nl,il,ol,Ai,ll,bo,Io,wo,cl,ul,X0,ko,gl,xo,Bo,dl,yo,Eo,fl,q0,pl,hl,ml,Cl,vo,J0,y1,bl,Il,Mo,wl,kl,Go,xl,Bl,Do,yl,E1,Qo,To,El,vl,Po,Ml,Gl,_0,Dl,Ql,zo,Tl,Pl,zl,Fl,Sl,Nl,Ol,Ll,Yl,Fo,Hl,S0,So,No,Rl,br,v1,M1,G1,Oo,Wl,Vl,Lo,jl,Yo,Ho,D1,Ul,Kl,Ro,Q1,T1,Zl,Xl,ql,Jl,_l,$l,Wo,e1,Vo,jo,Uo,A1,P1,Ko,t1,r1,z1=Pe(()=>{Ct=import.meta.url,$t=async function(i={}){function g(){return lt.buffer!=At.buffer&&ca(),At}function h(){return lt.buffer!=At.buffer&&ca(),Et}function w(){return lt.buffer!=At.buffer&&ca(),ur}function B(){return lt.buffer!=At.buffer&&ca(),la}function y(){return lt.buffer!=At.buffer&&ca(),Fn}function E(){return lt.buffer!=At.buffer&&ca(),$i}function F(){return lt.buffer!=At.buffer&&ca(),Jo}function N(){return lt.buffer!=At.buffer&&ca(),ao}var Y,te,Q=Object.assign({},i),ne=new Promise((G,H)=>{Y=G,te=H}),oe=typeof window=="object",de=typeof importScripts=="function",fe=de&&self.name=="em-pthread";Q.mountExternalData=(G,H)=>{G.startsWith("./")&&(G=G.substring(2)),(Q.Fb||(Q.Fb=new Map)).set(G,H)},Q.unmountExternalData=()=>{delete Q.Fb};var ke=globalThis.SharedArrayBuffer??new WebAssembly.Memory({initial:0,maximum:0,shared:!0}).buffer.constructor;let Me=()=>{let G=(Ae,le,Ce)=>(...je)=>{let IA=ui,yA=le?.();je=Ae(...je);let nt=le?.();return yA!==nt&&(Ae=nt,Ce(yA),le=Ce=null),ui!=IA?new Promise((it,vt)=>{Lc={resolve:it,reject:vt}}):je},H=Ae=>async(...le)=>{try{if(Q.Gb)throw Error("Session already started");let Ce=Q.Gb={hc:le[0],errors:[]},je=await Ae(...le);if(Q.Gb!==Ce)throw Error("Session mismatch");Q.Hb?.flush();let IA=Ce.errors;if(0nt),0Q._OrtCreateSession,Ae=>Q._OrtCreateSession=Ae),Q._OrtRun=H(G(Q._OrtRun,()=>Q._OrtRun,Ae=>Q._OrtRun=Ae)),Q._OrtRunWithBinding=H(G(Q._OrtRunWithBinding,()=>Q._OrtRunWithBinding,Ae=>Q._OrtRunWithBinding=Ae)),Q._OrtBindInput=G(Q._OrtBindInput,()=>Q._OrtBindInput,Ae=>Q._OrtBindInput=Ae),Me=void 0};Q.jsepInit=(G,H)=>{if(Me?.(),G==="webgpu"){[Q.Hb,Q.Vb,Q.Zb,Q.Ob,Q.Yb,Q.kb,Q.$b,Q.cc,Q.Wb,Q.Xb,Q.ac]=H;let Ae=Q.Hb;Q.jsepRegisterBuffer=(le,Ce,je,IA)=>Ae.registerBuffer(le,Ce,je,IA),Q.jsepGetBuffer=le=>Ae.getBuffer(le),Q.jsepCreateDownloader=(le,Ce,je)=>Ae.createDownloader(le,Ce,je),Q.jsepOnCreateSession=le=>{Ae.onCreateSession(le)},Q.jsepOnReleaseSession=le=>{Ae.onReleaseSession(le)},Q.jsepOnRunStart=le=>Ae.onRunStart(le),Q.dc=(le,Ce)=>{Ae.upload(le,Ce)}}else if(G==="webnn"){[Q.Hb,Q.bc,Q.Pb,Q.jsepEnsureTensor,Q.ec,Q.jsepDownloadTensor]=H,Q.jsepReleaseTensorId=Q.Pb;let Ae=Q.Hb;Q.jsepOnRunStart=le=>Ae.onRunStart(le),Q.jsepRegisterMLContext=(le,Ce)=>{Ae.registerMLContext(le,Ce)},Q.jsepOnReleaseSession=le=>{Ae.onReleaseSession(le)},Q.jsepCreateMLTensorDownloader=(le,Ce)=>Ae.createMLTensorDownloader(le,Ce),Q.jsepRegisterMLTensor=(le,Ce,je)=>Ae.registerMLTensor(le,Ce,je),Q.jsepCreateMLContext=le=>Ae.createMLContext(le),Q.jsepRegisterMLConstant=(le,Ce,je,IA,yA)=>Ae.registerMLConstant(le,Ce,je,IA,yA,Q.Fb)}};var De,Le,Xe=Object.assign({},Q),_e=(G,H)=>{throw H},lA="";(oe||de)&&(de?lA=self.location.href:typeof document<"u"&&document.currentScript&&(lA=document.currentScript.src),Ct&&(lA=Ct),lA=lA.startsWith("blob:")?"":lA.substr(0,lA.replace(/[?#].*/,"").lastIndexOf("/")+1),de&&(Le=G=>{var H=new XMLHttpRequest;return H.open("GET",G,!1),H.responseType="arraybuffer",H.send(null),new Uint8Array(H.response)}),De=(G,H,Ae)=>{var le=new XMLHttpRequest;le.open("GET",G,!0),le.responseType="arraybuffer",le.onload=()=>{le.status==200||le.status==0&&le.response?H(le.response):Ae()},le.onerror=Ae,le.send(null)});var LA,st=console.log.bind(console),ht=console.error.bind(console),pt=st,mt=ht;if(Object.assign(Q,Xe),Xe=null,fe){let G=function(H){try{var Ae=H.data,le=Ae.cmd;if(le==="load"){let Ce=[];self.onmessage=je=>Ce.push(je),self.startWorker=()=>{postMessage({cmd:"loaded"});for(let je of Ce)G(je);self.onmessage=G};for(let je of Ae.handlers)Q[je]&&!Q[je].proxy||(Q[je]=(...IA)=>{postMessage({Nb:"callHandler",pc:je,args:IA})},je=="print"&&(pt=Q[je]),je=="printErr"&&(mt=Q[je]));lt=Ae.wasmMemory,ca(),yt(Ae.wasmModule)}else if(le==="run"){Wc(Ae.pthread_ptr,0,0,1,0,0),Nc(Ae.pthread_ptr),Cf(),Du(),tt||(vg(),tt=!0);try{bf(Ae.start_routine,Ae.arg)}catch(Ce){if(Ce!="unwind")throw Ce}}else le==="cancel"?e2()&&_1(-1):Ae.target!=="setimmediate"&&(le==="checkMailbox"?tt&&R1():le&&(mt(`worker: received unknown command ${le}`),mt(Ae)))}catch(Ce){throw Mg(),Ce}};var yt,tt=!1;mt=function(...H){H=H.join(" "),console.error(H)},self.alert=function(...H){postMessage({Nb:"alert",text:H.join(" "),rc:e2()})},Q.instantiateWasm=(H,Ae)=>new Promise(le=>{yt=Ce=>{Ce=new WebAssembly.Instance(Ce,yu()),Ae(Ce),le()}}),self.onunhandledrejection=H=>{throw H.reason||H},self.onmessage=G}Q.wasmBinary&&(LA=Q.wasmBinary);var lt,wA,UA,At,Et,ur,la,Fn,$i,Jo,Na,oi,ao,Sr=!1;function ca(){var G=lt.buffer;Q.HEAP8=At=new Int8Array(G),Q.HEAP16=ur=new Int16Array(G),Q.HEAPU8=Et=new Uint8Array(G),Q.HEAPU16=la=new Uint16Array(G),Q.HEAP32=Fn=new Int32Array(G),Q.HEAPU32=$i=new Uint32Array(G),Q.HEAPF32=Jo=new Float32Array(G),Q.HEAPF64=ao=new Float64Array(G),Q.HEAP64=Na=new BigInt64Array(G),Q.HEAPU64=oi=new BigUint64Array(G)}if(!fe){if(!((lt=new WebAssembly.Memory({initial:256,maximum:65536,shared:!0})).buffer instanceof ke))throw mt("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),Error("bad memory");ca()}var O0=[],h1=[],Bc=[],m1=0,C1=null;function Iu(){if(--m1==0&&C1){var G=C1;C1=null,G()}}function L0(G){throw mt(G="Aborted("+G+")"),Sr=!0,UA=1,G=new WebAssembly.RuntimeError(G+". Build with -sASSERTIONS for more info."),te(G),G}var yc,wu=G=>G.startsWith("data:application/octet-stream;base64,"),ku=G=>G.startsWith("file://");function xu(G){if(G==yc&&LA)return new Uint8Array(LA);if(Le)return Le(G);throw"both async and sync fetching of the wasm failed"}function Bu(G,H,Ae){return function(le){if(!LA&&(oe||de)){if(typeof fetch=="function"&&!ku(le))return fetch(le,{credentials:"same-origin"}).then(Ce=>{if(!Ce.ok)throw`failed to load wasm binary file at '${le}'`;return Ce.arrayBuffer()}).catch(()=>xu(le));if(De)return new Promise((Ce,je)=>{De(le,IA=>Ce(new Uint8Array(IA)),je)})}return Promise.resolve().then(()=>xu(le))}(G).then(le=>WebAssembly.instantiate(le,H)).then(Ae,le=>{mt(`failed to asynchronously prepare wasm: ${le}`),L0(le)})}function yu(){return{a:{O:mf,Aa:hf,b:wf,aa:zu,B:Nu,qa:Ou,Y:Yu,_:Hu,ra:Ru,oa:Wu,ha:Vu,na:ju,L:Uu,Z:Ku,W:Zu,pa:Xu,X:qu,va:kf,F:xf,Q:Bf,P:Ef,E:Mf,u:Gf,q:Df,G:Qf,A:Of,R:Lf,ua:Yf,ka:Hf,U:Rf,ba:Wf,H:Vf,ja:Nc,ta:jf,t:Uf,Ba:Kf,x:qf,o:Jf,m:$f,c:Fc,n:ep,k:rp,w:ap,p:sp,f:np,s:ip,l:op,e:lp,j:cp,i:up,g:gp,d:dp,ea:fp,fa:pp,ga:hp,ca:cg,da:ug,T:mp,h:Cp,D:bp,I:Ip,M:wp,y:kp,sa:xp,V:Bp,v:dg,z:yp,N:Ep,S:vp,za:Mp,ya:Gp,la:hg,ma:mg,$:Dc,C:Cg,K:bg,ia:Ig,J:wg,a:lt,xa:Gc,wa:Bg,r:Tp}}}var Ec={916868:(G,H,Ae,le,Ce)=>{if(Q===void 0||!Q.Fb)return 1;if((G=ya(Number(G>>>0))).startsWith("./")&&(G=G.substring(2)),!(G=Q.Fb.get(G)))return 2;if(H=Number(H>>>0),Ae=Number(Ae>>>0),le=Number(le>>>0),H+Ae>G.byteLength)return 3;try{let je=G.subarray(H,H+Ae);switch(Ce){case 0:h().set(je,le>>>0);break;case 1:Q.dc(le,je);break;default:return 4}return 0}catch{return 4}},917583:(G,H,Ae)=>{Q.ec(G,h().subarray(H>>>0,H+Ae>>>0))},917646:()=>Q.bc(),917687:G=>{Q.Pb(G)},917723:()=>{Q.Wb()},917754:()=>{Q.Xb()},917783:()=>{Q.ac()},917808:G=>Q.Vb(G),917841:G=>Q.Zb(G),917873:(G,H,Ae)=>{Q.Ob(Number(G),Number(H),Number(Ae),!0)},917936:(G,H,Ae)=>{Q.Ob(Number(G),Number(H),Number(Ae))},917993:()=>typeof wasmOffsetConverter<"u",918050:G=>{Q.kb("Abs",G,void 0)},918101:G=>{Q.kb("Neg",G,void 0)},918152:G=>{Q.kb("Floor",G,void 0)},918205:G=>{Q.kb("Ceil",G,void 0)},918257:G=>{Q.kb("Reciprocal",G,void 0)},918315:G=>{Q.kb("Sqrt",G,void 0)},918367:G=>{Q.kb("Exp",G,void 0)},918418:G=>{Q.kb("Erf",G,void 0)},918469:G=>{Q.kb("Sigmoid",G,void 0)},918524:(G,H,Ae)=>{Q.kb("HardSigmoid",G,{alpha:H,beta:Ae})},918603:G=>{Q.kb("Log",G,void 0)},918654:G=>{Q.kb("Sin",G,void 0)},918705:G=>{Q.kb("Cos",G,void 0)},918756:G=>{Q.kb("Tan",G,void 0)},918807:G=>{Q.kb("Asin",G,void 0)},918859:G=>{Q.kb("Acos",G,void 0)},918911:G=>{Q.kb("Atan",G,void 0)},918963:G=>{Q.kb("Sinh",G,void 0)},919015:G=>{Q.kb("Cosh",G,void 0)},919067:G=>{Q.kb("Asinh",G,void 0)},919120:G=>{Q.kb("Acosh",G,void 0)},919173:G=>{Q.kb("Atanh",G,void 0)},919226:G=>{Q.kb("Tanh",G,void 0)},919278:G=>{Q.kb("Not",G,void 0)},919329:(G,H,Ae)=>{Q.kb("Clip",G,{min:H,max:Ae})},919398:G=>{Q.kb("Clip",G,void 0)},919450:(G,H)=>{Q.kb("Elu",G,{alpha:H})},919508:G=>{Q.kb("Gelu",G,void 0)},919560:G=>{Q.kb("Relu",G,void 0)},919612:(G,H)=>{Q.kb("LeakyRelu",G,{alpha:H})},919676:(G,H)=>{Q.kb("ThresholdedRelu",G,{alpha:H})},919746:(G,H)=>{Q.kb("Cast",G,{to:H})},919804:G=>{Q.kb("Add",G,void 0)},919855:G=>{Q.kb("Sub",G,void 0)},919906:G=>{Q.kb("Mul",G,void 0)},919957:G=>{Q.kb("Div",G,void 0)},920008:G=>{Q.kb("Pow",G,void 0)},920059:G=>{Q.kb("Equal",G,void 0)},920112:G=>{Q.kb("Greater",G,void 0)},920167:G=>{Q.kb("GreaterOrEqual",G,void 0)},920229:G=>{Q.kb("Less",G,void 0)},920281:G=>{Q.kb("LessOrEqual",G,void 0)},920340:(G,H,Ae,le,Ce)=>{Q.kb("ReduceMean",G,{keepDims:!!H,noopWithEmptyAxes:!!Ae,axes:le?Array.from(y().subarray(Number(le)>>>0,Number(Ce)>>>0)):[]})},920515:(G,H,Ae,le,Ce)=>{Q.kb("ReduceMax",G,{keepDims:!!H,noopWithEmptyAxes:!!Ae,axes:le?Array.from(y().subarray(Number(le)>>>0,Number(Ce)>>>0)):[]})},920689:(G,H,Ae,le,Ce)=>{Q.kb("ReduceMin",G,{keepDims:!!H,noopWithEmptyAxes:!!Ae,axes:le?Array.from(y().subarray(Number(le)>>>0,Number(Ce)>>>0)):[]})},920863:(G,H,Ae,le,Ce)=>{Q.kb("ReduceProd",G,{keepDims:!!H,noopWithEmptyAxes:!!Ae,axes:le?Array.from(y().subarray(Number(le)>>>0,Number(Ce)>>>0)):[]})},921038:(G,H,Ae,le,Ce)=>{Q.kb("ReduceSum",G,{keepDims:!!H,noopWithEmptyAxes:!!Ae,axes:le?Array.from(y().subarray(Number(le)>>>0,Number(Ce)>>>0)):[]})},921212:(G,H,Ae,le,Ce)=>{Q.kb("ReduceL1",G,{keepDims:!!H,noopWithEmptyAxes:!!Ae,axes:le?Array.from(y().subarray(Number(le)>>>0,Number(Ce)>>>0)):[]})},921385:(G,H,Ae,le,Ce)=>{Q.kb("ReduceL2",G,{keepDims:!!H,noopWithEmptyAxes:!!Ae,axes:le?Array.from(y().subarray(Number(le)>>>0,Number(Ce)>>>0)):[]})},921558:(G,H,Ae,le,Ce)=>{Q.kb("ReduceLogSum",G,{keepDims:!!H,noopWithEmptyAxes:!!Ae,axes:le?Array.from(y().subarray(Number(le)>>>0,Number(Ce)>>>0)):[]})},921735:(G,H,Ae,le,Ce)=>{Q.kb("ReduceSumSquare",G,{keepDims:!!H,noopWithEmptyAxes:!!Ae,axes:le?Array.from(y().subarray(Number(le)>>>0,Number(Ce)>>>0)):[]})},921915:(G,H,Ae,le,Ce)=>{Q.kb("ReduceLogSumExp",G,{keepDims:!!H,noopWithEmptyAxes:!!Ae,axes:le?Array.from(y().subarray(Number(le)>>>0,Number(Ce)>>>0)):[]})},922095:G=>{Q.kb("Where",G,void 0)},922148:(G,H,Ae)=>{Q.kb("Transpose",G,{perm:H?Array.from(y().subarray(Number(H)>>>0,Number(Ae)>>>0)):[]})},922272:(G,H,Ae,le)=>{Q.kb("DepthToSpace",G,{blocksize:H,mode:ya(Ae),format:le?"NHWC":"NCHW"})},922405:(G,H,Ae,le)=>{Q.kb("DepthToSpace",G,{blocksize:H,mode:ya(Ae),format:le?"NHWC":"NCHW"})},922538:(G,H,Ae,le,Ce,je,IA,yA,nt,it,vt,ir,wr,hA,lr)=>{Q.kb("ConvTranspose",G,{format:nt?"NHWC":"NCHW",autoPad:H,dilations:[Ae],group:le,kernelShape:[Ce],pads:[je,IA],strides:[yA],wIsConst:()=>!!g()[it>>>0],outputPadding:vt?Array.from(y().subarray(Number(vt)>>>0,Number(ir)>>>0)):[],outputShape:wr?Array.from(y().subarray(Number(wr)>>>0,Number(hA)>>>0)):[],activation:ya(lr)})},922971:(G,H,Ae,le,Ce,je,IA,yA,nt,it,vt,ir,wr,hA)=>{Q.kb("ConvTranspose",G,{format:yA?"NHWC":"NCHW",autoPad:H,dilations:Array.from(y().subarray(Number(Ae)>>>0,2+(Number(Ae)>>>0)>>>0)),group:le,kernelShape:Array.from(y().subarray(Number(Ce)>>>0,2+(Number(Ce)>>>0)>>>0)),pads:Array.from(y().subarray(Number(je)>>>0,4+(Number(je)>>>0)>>>0)),strides:Array.from(y().subarray(Number(IA)>>>0,2+(Number(IA)>>>0)>>>0)),wIsConst:()=>!!g()[nt>>>0],outputPadding:it?Array.from(y().subarray(Number(it)>>>0,Number(vt)>>>0)):[],outputShape:ir?Array.from(y().subarray(Number(ir)>>>0,Number(wr)>>>0)):[],activation:ya(hA)})},923632:(G,H,Ae,le,Ce,je,IA,yA,nt,it,vt,ir,wr,hA,lr)=>{Q.kb("ConvTranspose",G,{format:nt?"NHWC":"NCHW",autoPad:H,dilations:[Ae],group:le,kernelShape:[Ce],pads:[je,IA],strides:[yA],wIsConst:()=>!!g()[it>>>0],outputPadding:vt?Array.from(y().subarray(Number(vt)>>>0,Number(ir)>>>0)):[],outputShape:wr?Array.from(y().subarray(Number(wr)>>>0,Number(hA)>>>0)):[],activation:ya(lr)})},924065:(G,H,Ae,le,Ce,je,IA,yA,nt,it,vt,ir,wr,hA)=>{Q.kb("ConvTranspose",G,{format:yA?"NHWC":"NCHW",autoPad:H,dilations:Array.from(y().subarray(Number(Ae)>>>0,2+(Number(Ae)>>>0)>>>0)),group:le,kernelShape:Array.from(y().subarray(Number(Ce)>>>0,2+(Number(Ce)>>>0)>>>0)),pads:Array.from(y().subarray(Number(je)>>>0,4+(Number(je)>>>0)>>>0)),strides:Array.from(y().subarray(Number(IA)>>>0,2+(Number(IA)>>>0)>>>0)),wIsConst:()=>!!g()[nt>>>0],outputPadding:it?Array.from(y().subarray(Number(it)>>>0,Number(vt)>>>0)):[],outputShape:ir?Array.from(y().subarray(Number(ir)>>>0,Number(wr)>>>0)):[],activation:ya(hA)})},924726:(G,H)=>{Q.kb("GlobalAveragePool",G,{format:H?"NHWC":"NCHW"})},924817:(G,H,Ae,le,Ce,je,IA,yA,nt,it,vt,ir,wr,hA)=>{Q.kb("AveragePool",G,{format:hA?"NHWC":"NCHW",auto_pad:H,ceil_mode:Ae,count_include_pad:le,storage_order:Ce,dilations:je?Array.from(y().subarray(Number(je)>>>0,Number(IA)>>>0)):[],kernel_shape:yA?Array.from(y().subarray(Number(yA)>>>0,Number(nt)>>>0)):[],pads:it?Array.from(y().subarray(Number(it)>>>0,Number(vt)>>>0)):[],strides:ir?Array.from(y().subarray(Number(ir)>>>0,Number(wr)>>>0)):[]})},925296:(G,H)=>{Q.kb("GlobalAveragePool",G,{format:H?"NHWC":"NCHW"})},925387:(G,H,Ae,le,Ce,je,IA,yA,nt,it,vt,ir,wr,hA)=>{Q.kb("AveragePool",G,{format:hA?"NHWC":"NCHW",auto_pad:H,ceil_mode:Ae,count_include_pad:le,storage_order:Ce,dilations:je?Array.from(y().subarray(Number(je)>>>0,Number(IA)>>>0)):[],kernel_shape:yA?Array.from(y().subarray(Number(yA)>>>0,Number(nt)>>>0)):[],pads:it?Array.from(y().subarray(Number(it)>>>0,Number(vt)>>>0)):[],strides:ir?Array.from(y().subarray(Number(ir)>>>0,Number(wr)>>>0)):[]})},925866:(G,H)=>{Q.kb("GlobalMaxPool",G,{format:H?"NHWC":"NCHW"})},925953:(G,H,Ae,le,Ce,je,IA,yA,nt,it,vt,ir,wr,hA)=>{Q.kb("MaxPool",G,{format:hA?"NHWC":"NCHW",auto_pad:H,ceil_mode:Ae,count_include_pad:le,storage_order:Ce,dilations:je?Array.from(y().subarray(Number(je)>>>0,Number(IA)>>>0)):[],kernel_shape:yA?Array.from(y().subarray(Number(yA)>>>0,Number(nt)>>>0)):[],pads:it?Array.from(y().subarray(Number(it)>>>0,Number(vt)>>>0)):[],strides:ir?Array.from(y().subarray(Number(ir)>>>0,Number(wr)>>>0)):[]})},926428:(G,H)=>{Q.kb("GlobalMaxPool",G,{format:H?"NHWC":"NCHW"})},926515:(G,H,Ae,le,Ce,je,IA,yA,nt,it,vt,ir,wr,hA)=>{Q.kb("MaxPool",G,{format:hA?"NHWC":"NCHW",auto_pad:H,ceil_mode:Ae,count_include_pad:le,storage_order:Ce,dilations:je?Array.from(y().subarray(Number(je)>>>0,Number(IA)>>>0)):[],kernel_shape:yA?Array.from(y().subarray(Number(yA)>>>0,Number(nt)>>>0)):[],pads:it?Array.from(y().subarray(Number(it)>>>0,Number(vt)>>>0)):[],strides:ir?Array.from(y().subarray(Number(ir)>>>0,Number(wr)>>>0)):[]})},926990:(G,H,Ae,le,Ce)=>{Q.kb("Gemm",G,{alpha:H,beta:Ae,transA:le,transB:Ce})},927094:G=>{Q.kb("MatMul",G,void 0)},927148:(G,H,Ae,le)=>{Q.kb("ArgMax",G,{keepDims:!!H,selectLastIndex:!!Ae,axis:le})},927256:(G,H,Ae,le)=>{Q.kb("ArgMin",G,{keepDims:!!H,selectLastIndex:!!Ae,axis:le})},927364:(G,H)=>{Q.kb("Softmax",G,{axis:H})},927427:(G,H)=>{Q.kb("Concat",G,{axis:H})},927487:(G,H,Ae,le,Ce)=>{Q.kb("Split",G,{axis:H,numOutputs:Ae,splitSizes:le?Array.from(y().subarray(Number(le)>>>0,Number(Ce)>>>0)):[]})},927643:G=>{Q.kb("Expand",G,void 0)},927697:(G,H)=>{Q.kb("Gather",G,{axis:Number(H)})},927768:(G,H)=>{Q.kb("GatherElements",G,{axis:Number(H)})},927847:(G,H)=>{Q.kb("GatherND",G,{batch_dims:Number(H)})},927926:(G,H,Ae,le,Ce,je,IA,yA,nt,it,vt)=>{Q.kb("Resize",G,{antialias:H,axes:Ae?Array.from(y().subarray(Number(Ae)>>>0,Number(le)>>>0)):[],coordinateTransformMode:ya(Ce),cubicCoeffA:je,excludeOutside:IA,extrapolationValue:yA,keepAspectRatioPolicy:ya(nt),mode:ya(it),nearestMode:ya(vt)})},928288:(G,H,Ae,le,Ce,je,IA)=>{Q.kb("Slice",G,{starts:H?Array.from(y().subarray(Number(H)>>>0,Number(Ae)>>>0)):[],ends:le?Array.from(y().subarray(Number(le)>>>0,Number(Ce)>>>0)):[],axes:je?Array.from(y().subarray(Number(je)>>>0,Number(IA)>>>0)):[]})},928552:G=>{Q.kb("Tile",G,void 0)},928604:(G,H,Ae)=>{Q.kb("InstanceNormalization",G,{epsilon:H,format:Ae?"NHWC":"NCHW"})},928718:(G,H,Ae)=>{Q.kb("InstanceNormalization",G,{epsilon:H,format:Ae?"NHWC":"NCHW"})},928832:G=>{Q.kb("Range",G,void 0)},928885:(G,H)=>{Q.kb("Einsum",G,{equation:ya(H)})},928966:(G,H,Ae,le,Ce)=>{Q.kb("Pad",G,{mode:H,value:Ae,pads:le?Array.from(y().subarray(Number(le)>>>0,Number(Ce)>>>0)):[]})},929109:(G,H,Ae,le,Ce,je)=>{Q.kb("BatchNormalization",G,{epsilon:H,momentum:Ae,spatial:!!Ce,trainingMode:!!le,format:je?"NHWC":"NCHW"})},929278:(G,H,Ae,le,Ce,je)=>{Q.kb("BatchNormalization",G,{epsilon:H,momentum:Ae,spatial:!!Ce,trainingMode:!!le,format:je?"NHWC":"NCHW"})},929447:(G,H,Ae)=>{Q.kb("CumSum",G,{exclusive:Number(H),reverse:Number(Ae)})},929544:(G,H,Ae)=>{Q.kb("DequantizeLinear",G,{axis:H,blockSize:Ae})},929634:(G,H,Ae,le,Ce)=>{Q.kb("GridSample",G,{align_corners:H,mode:ya(Ae),padding_mode:ya(le),format:Ce?"NHWC":"NCHW"})},929804:(G,H,Ae,le,Ce)=>{Q.kb("GridSample",G,{align_corners:H,mode:ya(Ae),padding_mode:ya(le),format:Ce?"NHWC":"NCHW"})},929974:(G,H,Ae,le,Ce,je,IA,yA,nt)=>{Q.kb("Attention",G,{numHeads:H,isUnidirectional:Ae,maskFilterValue:le,scale:Ce,doRotary:je,qkvHiddenSizes:IA?Array.from(y().subarray(Number(yA)>>>0,Number(yA)+IA>>>0)):[],pastPresentShareBuffer:!!nt})},930246:G=>{Q.kb("BiasAdd",G,void 0)},930301:G=>{Q.kb("BiasSplitGelu",G,void 0)},930362:G=>{Q.kb("FastGelu",G,void 0)},930418:(G,H,Ae,le,Ce,je,IA,yA,nt,it,vt,ir,wr,hA,lr,ba)=>{Q.kb("Conv",G,{format:ir?"NHWC":"NCHW",auto_pad:H,dilations:Ae?Array.from(y().subarray(Number(Ae)>>>0,Number(le)>>>0)):[],group:Ce,kernel_shape:je?Array.from(y().subarray(Number(je)>>>0,Number(IA)>>>0)):[],pads:yA?Array.from(y().subarray(Number(yA)>>>0,Number(nt)>>>0)):[],strides:it?Array.from(y().subarray(Number(it)>>>0,Number(vt)>>>0)):[],w_is_const:()=>!!g()[Number(wr)>>>0],activation:ya(hA),activation_params:lr?Array.from(F().subarray(Number(lr)>>>0,Number(ba)>>>0)):[]})},931002:G=>{Q.kb("Gelu",G,void 0)},931054:(G,H,Ae,le,Ce,je,IA,yA,nt)=>{Q.kb("GroupQueryAttention",G,{numHeads:H,kvNumHeads:Ae,scale:le,softcap:Ce,doRotary:je,rotaryInterleaved:IA,smoothSoftmax:yA,localWindowSize:nt})},931271:(G,H,Ae,le)=>{Q.kb("LayerNormalization",G,{axis:H,epsilon:Ae,simplified:!!le})},931382:(G,H,Ae,le)=>{Q.kb("LayerNormalization",G,{axis:H,epsilon:Ae,simplified:!!le})},931493:(G,H,Ae,le,Ce,je)=>{Q.kb("MatMulNBits",G,{k:H,n:Ae,accuracyLevel:le,bits:Ce,blockSize:je})},931620:(G,H,Ae,le,Ce,je)=>{Q.kb("MultiHeadAttention",G,{numHeads:H,isUnidirectional:Ae,maskFilterValue:le,scale:Ce,doRotary:je})},931779:(G,H)=>{Q.kb("QuickGelu",G,{alpha:H})},931843:(G,H,Ae,le,Ce)=>{Q.kb("RotaryEmbedding",G,{interleaved:!!H,numHeads:Ae,rotaryEmbeddingDim:le,scale:Ce})},931982:(G,H,Ae)=>{Q.kb("SkipLayerNormalization",G,{epsilon:H,simplified:!!Ae})},932084:(G,H,Ae)=>{Q.kb("SkipLayerNormalization",G,{epsilon:H,simplified:!!Ae})},932186:(G,H,Ae,le)=>{Q.kb("GatherBlockQuantized",G,{gatherAxis:H,quantizeAxis:Ae,blockSize:le})},932307:G=>{Q.$b(G)},932341:(G,H)=>Q.cc(Number(G),Number(H),Q.Gb.hc,Q.Gb.errors)};function hf(G,H,Ae){return sg(async()=>{await Q.Yb(Number(G),Number(H),Number(Ae))})}function mf(){return typeof wasmOffsetConverter<"u"}function vc(G){this.name="ExitStatus",this.message=`Program terminated with exit(${G})`,this.status=G}var Mc=G=>{G.terminate(),G.onmessage=()=>{}},Eu=G=>{Y0.length==0&&(Tu(),Qu(Y0[0]));var H=Y0.pop();if(!H)return 6;no.push(H),li[G.Bb]=H,H.Bb=G.Bb;var Ae={cmd:"run",start_routine:G.ic,arg:G.Rb,pthread_ptr:G.Bb};return H.postMessage(Ae,G.nc),0},so=0,ua=(G,H,...Ae)=>{for(var le=2*Ae.length,Ce=Uc(),je=jc(8*le),IA=je>>>3,yA=0;yA>>0]=nt)}return G=Gg(G,0,le,je,H),$1(Ce),G};function Gc(G){if(fe)return ua(0,1,G);if(UA=G,!(0{if(UA=G,fe)throw vu(G),"unwind";Gc(G)},Y0=[],no=[],Mu=[],li={},Gu=G=>{var H=G.Bb;delete li[H],Y0.push(G),no.splice(no.indexOf(G),1),G.Bb=0,Vc(H)};function Du(){Mu.forEach(G=>G())}var Qu=G=>new Promise(H=>{G.onmessage=Ce=>{var je=(Ce=Ce.data).cmd;if(Ce.targetThread&&Ce.targetThread!=e2()){var IA=li[Ce.targetThread];IA?IA.postMessage(Ce,Ce.transferList):mt(`Internal error! Worker sent a message "${je}" to target pthread ${Ce.targetThread}, but that thread no longer exists!`)}else je==="checkMailbox"?R1():je==="spawnThread"?Eu(Ce):je==="cleanupThread"?Gu(li[Ce.thread]):je==="killThread"?(Ce=Ce.thread,je=li[Ce],delete li[Ce],Mc(je),Vc(Ce),no.splice(no.indexOf(je),1),je.Bb=0):je==="cancelThread"?li[Ce.thread].postMessage({cmd:"cancel"}):je==="loaded"?(G.loaded=!0,H(G)):je==="alert"?alert(`Thread ${Ce.threadId}: ${Ce.text}`):Ce.target==="setimmediate"?G.postMessage(Ce):je==="callHandler"?Q[Ce.handler](...Ce.args):je&&mt(`worker sent an unknown command ${je}`)},G.onerror=Ce=>{throw mt(`worker sent an error! ${Ce.filename}:${Ce.lineno}: ${Ce.message}`),Ce};var Ae,le=[];for(Ae of[])Q.hasOwnProperty(Ae)&&le.push(Ae);G.postMessage({cmd:"load",handlers:le,wasmMemory:lt,wasmModule:wA})});function Tu(){var G=new Worker(import.meta.url.startsWith("file:")?new URL(d("./node_modules/onnxruntime-web/dist/ort.bundle.min.mjs?46eb"),d.b):new URL(import.meta.url),{type:"module",workerData:"em-pthread",name:"em-pthread"});Y0.push(G)}var H1=G=>{for(;0{var G=e2(),H=E()[G+52>>>2>>>0];G=E()[G+56>>>2>>>0],Qg(H,H-G),$1(H)},bf=(G,H)=>{so=0,G=Tg(G,H),0>>=0);throw H>>>=0,Ae>>>=0,E()[le.Kb+16>>>2>>>0]=0,E()[le.Kb+4>>>2>>>0]=H,E()[le.Kb+8>>>2>>>0]=Ae,G}function Pu(G,H,Ae,le){return fe?ua(2,1,G,H,Ae,le):zu(G,H,Ae,le)}function zu(G,H,Ae,le){if(G>>>=0,H>>>=0,Ae>>>=0,le>>>=0,ke===void 0)return mt("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var Ce=[];return fe&&Ce.length===0?Pu(G,H,Ae,le):(G={ic:Ae,Bb:G,Rb:le,nc:Ce},fe?(G.Nb="spawnThread",postMessage(G,Ce),0):Eu(G))}var Fu=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0,Su=(G,H,Ae)=>{var le=(H>>>=0)+Ae;for(Ae=H;G[Ae]&&!(Ae>=le);)++Ae;if(16(Ce=(240&Ce)==224?(15&Ce)<<12|je<<6|IA:(7&Ce)<<18|je<<12|IA<<6|63&G[H++])?le+=String.fromCharCode(Ce):(Ce-=65536,le+=String.fromCharCode(55296|Ce>>10,56320|1023&Ce))}}else le+=String.fromCharCode(Ce)}return le},ya=(G,H)=>(G>>>=0)?Su(h(),G,H):"";function Nu(G,H,Ae){return fe?ua(3,1,G,H,Ae):0}function Ou(G,H){if(fe)return ua(4,1,G,H)}var Qc=G=>{for(var H=0,Ae=0;Ae=le?H++:2047>=le?H+=2:55296<=le&&57343>=le?(H+=4,++Ae):H+=3}return H},Lu=(G,H,Ae,le)=>{if(!(0>>=0;le=Ae+le-1;for(var je=0;je=IA&&(IA=65536+((1023&IA)<<10)|1023&G.charCodeAt(++je)),127>=IA){if(Ae>=le)break;H[Ae++>>>0]=IA}else{if(2047>=IA){if(Ae+1>=le)break;H[Ae++>>>0]=192|IA>>6}else{if(65535>=IA){if(Ae+2>=le)break;H[Ae++>>>0]=224|IA>>12}else{if(Ae+3>=le)break;H[Ae++>>>0]=240|IA>>18,H[Ae++>>>0]=128|IA>>12&63}H[Ae++>>>0]=128|IA>>6&63}H[Ae++>>>0]=128|63&IA}}return H[Ae>>>0]=0,Ae-Ce},_o=(G,H,Ae)=>Lu(G,h(),H,Ae);function Yu(G,H){if(fe)return ua(5,1,G,H)}function Hu(G,H,Ae){if(fe)return ua(6,1,G,H,Ae)}function Ru(G,H,Ae){return fe?ua(7,1,G,H,Ae):0}function Wu(G,H){if(fe)return ua(8,1,G,H)}function Vu(G,H,Ae){if(fe)return ua(9,1,G,H,Ae)}function ju(G,H,Ae,le){if(fe)return ua(10,1,G,H,Ae,le)}function Uu(G,H,Ae,le){if(fe)return ua(11,1,G,H,Ae,le)}function Ku(G,H,Ae,le){if(fe)return ua(12,1,G,H,Ae,le)}function Zu(G){if(fe)return ua(13,1,G)}function Xu(G,H){if(fe)return ua(14,1,G,H)}function qu(G,H,Ae){if(fe)return ua(15,1,G,H,Ae)}var Ju,H0,kf=()=>{L0("")},ci=G=>{for(var H="";h()[G>>>0];)H+=Ju[h()[G++>>>0]];return H},Tc={},Pc={};function e0(G,H,Ae={}){if(!("argPackAdvance"in H))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(le,Ce,je={}){var IA=Ce.name;if(!le)throw new H0(`type "${IA}" must have a positive integer typeid pointer`);if(Pc.hasOwnProperty(le)){if(je.Tb)return;throw new H0(`Cannot register type '${IA}' twice`)}Pc[le]=Ce,Tc.hasOwnProperty(le)&&(Ce=Tc[le],delete Tc[le],Ce.forEach(yA=>yA()))}(G,H,Ae)}var _u=(G,H,Ae)=>{switch(H){case 1:return Ae?le=>g()[le>>>0]:le=>h()[le>>>0];case 2:return Ae?le=>w()[le>>>1>>>0]:le=>B()[le>>>1>>>0];case 4:return Ae?le=>y()[le>>>2>>>0]:le=>E()[le>>>2>>>0];case 8:return Ae?le=>Na[le>>>3]:le=>oi[le>>>3];default:throw new TypeError(`invalid integer width (${H}): ${G}`)}};function xf(G,H,Ae){Ae>>>=0,e0(G>>>=0,{name:H=ci(H>>>0),fromWireType:le=>le,toWireType:function(le,Ce){if(typeof Ce!="bigint"&&typeof Ce!="number")throw Ce=Ce===null?"null":(le=typeof Ce)=="object"||le==="array"||le==="function"?Ce.toString():""+Ce,new TypeError(`Cannot convert "${Ce}" to ${this.name}`);return typeof Ce=="number"&&(Ce=BigInt(Ce)),Ce},argPackAdvance:R0,readValueFromPointer:_u(H,Ae,H.indexOf("u")==-1),Eb:null})}var R0=8;function Bf(G,H,Ae,le){e0(G>>>=0,{name:H=ci(H>>>0),fromWireType:function(Ce){return!!Ce},toWireType:function(Ce,je){return je?Ae:le},argPackAdvance:R0,readValueFromPointer:function(Ce){return this.fromWireType(h()[Ce>>>0])},Eb:null})}var zc=[],A0=[];function Fc(G){9<(G>>>=0)&&--A0[G+1]==0&&(A0[G]=void 0,zc.push(G))}var Js=G=>{if(!G)throw new H0("Cannot use deleted val. handle = "+G);return A0[G]},hn=G=>{switch(G){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:let H=zc.pop()||A0.length;return A0[H]=G,A0[H+1]=1,H}};function Sc(G){return this.fromWireType(E()[G>>>2>>>0])}var yf={name:"emscripten::val",fromWireType:G=>{var H=Js(G);return Fc(G),H},toWireType:(G,H)=>hn(H),argPackAdvance:R0,readValueFromPointer:Sc,Eb:null};function Ef(G){return e0(G>>>0,yf)}var vf=(G,H)=>{switch(H){case 4:return function(Ae){return this.fromWireType(F()[Ae>>>2>>>0])};case 8:return function(Ae){return this.fromWireType(N()[Ae>>>3>>>0])};default:throw new TypeError(`invalid float width (${H}): ${G}`)}};function Mf(G,H,Ae){Ae>>>=0,e0(G>>>=0,{name:H=ci(H>>>0),fromWireType:le=>le,toWireType:(le,Ce)=>Ce,argPackAdvance:R0,readValueFromPointer:vf(H,Ae),Eb:null})}function Gf(G,H,Ae,le,Ce){if(G>>>=0,Ae>>>=0,H=ci(H>>>0),Ce===-1&&(Ce=4294967295),Ce=yA=>yA,le===0){var je=32-8*Ae;Ce=yA=>yA<>>je}var IA=H.includes("unsigned")?function(yA,nt){return nt>>>0}:function(yA,nt){return nt};e0(G,{name:H,fromWireType:Ce,toWireType:IA,argPackAdvance:R0,readValueFromPointer:_u(H,Ae,le!==0),Eb:null})}function Df(G,H,Ae){function le(je){var IA=E()[je>>>2>>>0];return je=E()[je+4>>>2>>>0],new Ce(g().buffer,je,IA)}var Ce=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][H];e0(G>>>=0,{name:Ae=ci(Ae>>>0),fromWireType:le,argPackAdvance:R0,readValueFromPointer:le},{Tb:!0})}function Qf(G,H){G>>>=0;var Ae=(H=ci(H>>>0))==="std::string";e0(G,{name:H,fromWireType:function(le){var Ce=E()[le>>>2>>>0],je=le+4;if(Ae)for(var IA=je,yA=0;yA<=Ce;++yA){var nt=je+yA;if(yA==Ce||h()[nt>>>0]==0){if(IA=ya(IA,nt-IA),it===void 0)var it=IA;else it+="\0",it+=IA;IA=nt+1}}else{for(it=Array(Ce),yA=0;yA>>0]);it=it.join("")}return gi(le),it},toWireType:function(le,Ce){Ce instanceof ArrayBuffer&&(Ce=new Uint8Array(Ce));var je=typeof Ce=="string";if(!(je||Ce instanceof Uint8Array||Ce instanceof Uint8ClampedArray||Ce instanceof Int8Array))throw new H0("Cannot pass non-string to std::string");var IA=Ae&&je?Qc(Ce):Ce.length,yA=J1(4+IA+1),nt=yA+4;if(E()[yA>>>2>>>0]=IA,Ae&&je)_o(Ce,nt,IA+1);else if(je)for(je=0;je>>0]=it}else for(je=0;je>>0]=Ce[je];return le!==null&&le.push(gi,yA),yA},argPackAdvance:R0,readValueFromPointer:Sc,Eb(le){gi(le)}})}var $u=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0,Tf=(G,H)=>{for(var Ae=G>>1,le=Ae+H/2;!(Ae>=le)&&B()[Ae>>>0];)++Ae;if(32<(Ae<<=1)-G&&$u)return $u.decode(h().slice(G,Ae));for(Ae="",le=0;!(le>=H/2);++le){var Ce=w()[G+2*le>>>1>>>0];if(Ce==0)break;Ae+=String.fromCharCode(Ce)}return Ae},Pf=(G,H,Ae)=>{if(Ae??=2147483647,2>Ae)return 0;var le=H;Ae=(Ae-=2)<2*G.length?Ae/2:G.length;for(var Ce=0;Ce>>1>>>0]=je,H+=2}return w()[H>>>1>>>0]=0,H-le},zf=G=>2*G.length,Ff=(G,H)=>{for(var Ae=0,le="";!(Ae>=H/4);){var Ce=y()[G+4*Ae>>>2>>>0];if(Ce==0)break;++Ae,65536<=Ce?(Ce-=65536,le+=String.fromCharCode(55296|Ce>>10,56320|1023&Ce)):le+=String.fromCharCode(Ce)}return le},Sf=(G,H,Ae)=>{if(H>>>=0,Ae??=2147483647,4>Ae)return 0;var le=H;Ae=le+Ae-4;for(var Ce=0;Ce=je&&(je=65536+((1023&je)<<10)|1023&G.charCodeAt(++Ce)),y()[H>>>2>>>0]=je,(H+=4)+4>Ae)break}return y()[H>>>2>>>0]=0,H-le},Nf=G=>{for(var H=0,Ae=0;Ae=le&&++Ae,H+=4}return H};function Of(G,H,Ae){if(G>>>=0,H>>>=0,Ae=ci(Ae>>>=0),H===2)var le=Tf,Ce=Pf,je=zf,IA=yA=>B()[yA>>>1>>>0];else H===4&&(le=Ff,Ce=Sf,je=Nf,IA=yA=>E()[yA>>>2>>>0]);e0(G,{name:Ae,fromWireType:yA=>{for(var nt,it=E()[yA>>>2>>>0],vt=yA+4,ir=0;ir<=it;++ir){var wr=yA+4+ir*H;ir!=it&&IA(wr)!=0||(vt=le(vt,wr-vt),nt===void 0?nt=vt:(nt+="\0",nt+=vt),vt=wr+H)}return gi(yA),nt},toWireType:(yA,nt)=>{if(typeof nt!="string")throw new H0(`Cannot pass non-string to C++ string type ${Ae}`);var it=je(nt),vt=J1(4+it+H);return E()[vt>>>2>>>0]=it/H,Ce(nt,vt+4,it+H),yA!==null&&yA.push(gi,vt),vt},argPackAdvance:R0,readValueFromPointer:Sc,Eb(yA){gi(yA)}})}function Lf(G,H){e0(G>>>=0,{Ub:!0,name:H=ci(H>>>0),argPackAdvance:0,fromWireType:()=>{},toWireType:()=>{}})}var Yf=()=>1;function Hf(G){Wc(G>>>0,!de,1,!oe,131072,!1),Du()}var eg=G=>{if(!Sr)try{if(G(),!(0>>=0,typeof Atomics.oc=="function"&&(Atomics.oc(y(),G>>>2,G).value.then(R1),G+=128,Atomics.store(y(),G>>>2,1))}var R1=()=>{var G=e2();G&&(Nc(G),eg(Dg))};function Rf(G,H){(G>>>=0)==H>>>0?setTimeout(R1):fe?postMessage({targetThread:G,cmd:"checkMailbox"}):(G=li[G])&&G.postMessage({cmd:"checkMailbox"})}var Oc=[];function Wf(G,H,Ae,le,Ce){for(H>>>=0,le/=2,Oc.length=le,Ae=Ce>>>0>>>3,Ce=0;Ce>>0];return(H?Ec[H]:Pp[G])(...Oc)}function Vf(G){G>>>=0,fe?postMessage({cmd:"cleanupThread",thread:G}):Gu(li[G])}function jf(G){}var W1=(G,H)=>{var Ae=Pc[G];if(Ae===void 0)throw G=Eg(G),Ae=ci(G),gi(G),new H0(`${H} has unknown type ${Ae}`);return Ae},Ag=(G,H,Ae)=>{var le=[];return G=G.toWireType(le,Ae),le.length&&(E()[H>>>2>>>0]=hn(le)),G};function Uf(G,H,Ae){return H>>>=0,Ae>>>=0,G=Js(G>>>0),H=W1(H,"emval::as"),Ag(H,Ae,G)}function Kf(G,H){return H>>>=0,G=Js(G>>>0),(H=W1(H,"emval::as")).toWireType(null,G)}var V1=G=>{try{G()}catch(H){L0(H)}},W0=0,ui=null,tg=0,j1=[],rg={},ag={},Zf=0,Lc=null,Xf=[];function sg(G){return function(){if(!Sr){if(W0===0){var H=!1,Ae=!1;(le=>{G().then(le)})((le=0)=>{if(!Sr&&(tg=le,H=!0,Ae)){W0=2,V1(()=>Fg(ui)),typeof Browser<"u"&&Browser.Lb.Sb&&Browser.Lb.resume(),le=!1;try{var Ce=function(){var yA=y()[ui+8>>>2>>>0];return yA=kt[ag[yA]],--so,yA()}()}catch(yA){Ce=yA,le=!0}var je=!1;if(!ui){var IA=Lc;IA&&(Lc=null,(le?IA.reject:IA.resolve)(Ce),je=!0)}if(le&&!je)throw Ce}}),Ae=!0,H||(W0=1,ui=function(){var le=J1(65548),Ce=le+12;E()[le>>>2>>>0]=Ce,E()[le+4>>>2>>>0]=Ce+65536,Ce=j1[0];var je=rg[Ce];return je===void 0&&(je=Zf++,rg[Ce]=je,ag[je]=Ce),Ce=je,y()[le+8>>>2>>>0]=Ce,le}(),typeof Browser<"u"&&Browser.Lb.Sb&&Browser.Lb.pause(),V1(()=>Pg(ui)))}else W0===2?(W0=0,V1(Sg),gi(ui),ui=null,Xf.forEach(eg)):L0(`invalid state: ${W0}`);return tg}}()}function qf(G){return G>>>=0,sg(()=>(G=Js(G)).then(hn))}var U1=[];function Jf(G,H,Ae,le){return Ae>>>=0,le>>>=0,(G=U1[G>>>0])(null,H=Js(H>>>0),Ae,le)}var _f={},K1=G=>{var H=_f[G];return H===void 0?ci(G):H};function $f(G,H,Ae,le,Ce){return Ae>>>=0,le>>>=0,Ce>>>=0,(G=U1[G>>>0])(H=Js(H>>>0),H[Ae=K1(Ae)],le,Ce)}var ng=()=>typeof globalThis=="object"?globalThis:Function("return this")();function ep(G){return(G>>>=0)==0?hn(ng()):(G=K1(G),hn(ng()[G]))}var Ap=G=>{var H=U1.length;return U1.push(G),H},tp=(G,H)=>{for(var Ae=Array(G),le=0;le>>2>>>0],"parameter "+le);return Ae},ig=(G,H)=>Object.defineProperty(H,"name",{value:G});function rp(G,H,Ae){var le=(H=tp(G,H>>>0)).shift();G--;var Ce=`return function (obj, func, destructorsRef, args) { +`,je=0,IA=[];Ae===0&&IA.push("obj");for(var yA=["retType"],nt=[le],it=0;itvt.name).join(", ")}) => ${le.name}>`,Ap(ig(Ae,G))}function ap(G){return G=K1(G>>>0),hn(Q[G])}function sp(G,H){return H>>>=0,G=Js(G>>>0),H=Js(H),hn(G[H])}function np(G){9<(G>>>=0)&&(A0[G+1]+=1)}function ip(){return hn([])}function op(G){G=Js(G>>>0);for(var H=Array(G.length),Ae=0;Ae>>0))}function cp(){return hn({})}function up(G){for(var H=Js(G>>>=0);H.length;){var Ae=H.pop();H.pop()(Ae)}Fc(G)}function gp(G,H,Ae){H>>>=0,Ae>>>=0,G=Js(G>>>0),H=Js(H),Ae=Js(Ae),G[H]=Ae}function dp(G,H){return H>>>=0,G=(G=W1(G>>>0,"_emval_take_value")).readValueFromPointer(H),hn(G)}function fp(G,H){G=-9007199254740992>G||9007199254740992>>=0,G=new Date(1e3*G),y()[H>>>2>>>0]=G.getUTCSeconds(),y()[H+4>>>2>>>0]=G.getUTCMinutes(),y()[H+8>>>2>>>0]=G.getUTCHours(),y()[H+12>>>2>>>0]=G.getUTCDate(),y()[H+16>>>2>>>0]=G.getUTCMonth(),y()[H+20>>>2>>>0]=G.getUTCFullYear()-1900,y()[H+24>>>2>>>0]=G.getUTCDay(),G=(G.getTime()-Date.UTC(G.getUTCFullYear(),0,1,0,0,0,0))/864e5|0,y()[H+28>>>2>>>0]=G}var $o=G=>G%4==0&&(G%100!=0||G%400==0),og=[0,31,60,91,121,152,182,213,244,274,305,335],lg=[0,31,59,90,120,151,181,212,243,273,304,334];function pp(G,H){G=-9007199254740992>G||9007199254740992>>=0,G=new Date(1e3*G),y()[H>>>2>>>0]=G.getSeconds(),y()[H+4>>>2>>>0]=G.getMinutes(),y()[H+8>>>2>>>0]=G.getHours(),y()[H+12>>>2>>>0]=G.getDate(),y()[H+16>>>2>>>0]=G.getMonth(),y()[H+20>>>2>>>0]=G.getFullYear()-1900,y()[H+24>>>2>>>0]=G.getDay();var Ae=($o(G.getFullYear())?og:lg)[G.getMonth()]+G.getDate()-1|0;y()[H+28>>>2>>>0]=Ae,y()[H+36>>>2>>>0]=-60*G.getTimezoneOffset(),Ae=new Date(G.getFullYear(),6,1).getTimezoneOffset();var le=new Date(G.getFullYear(),0,1).getTimezoneOffset();G=0|(Ae!=le&&G.getTimezoneOffset()==Math.min(le,Ae)),y()[H+32>>>2>>>0]=G}function hp(G){G>>>=0;var H=new Date(y()[G+20>>>2>>>0]+1900,y()[G+16>>>2>>>0],y()[G+12>>>2>>>0],y()[G+8>>>2>>>0],y()[G+4>>>2>>>0],y()[G>>>2>>>0],0),Ae=y()[G+32>>>2>>>0],le=H.getTimezoneOffset(),Ce=new Date(H.getFullYear(),6,1).getTimezoneOffset(),je=new Date(H.getFullYear(),0,1).getTimezoneOffset(),IA=Math.min(je,Ce);return 0>Ae?y()[G+32>>>2>>>0]=+(Ce!=je&&IA==le):0>>2>>>0]=H.getDay(),Ae=($o(H.getFullYear())?og:lg)[H.getMonth()]+H.getDate()-1|0,y()[G+28>>>2>>>0]=Ae,y()[G>>>2>>>0]=H.getSeconds(),y()[G+4>>>2>>>0]=H.getMinutes(),y()[G+8>>>2>>>0]=H.getHours(),y()[G+12>>>2>>>0]=H.getDate(),y()[G+16>>>2>>>0]=H.getMonth(),y()[G+20>>>2>>>0]=H.getYear(),G=H.getTime(),BigInt(isNaN(G)?-1:G/1e3)}function cg(G,H,Ae,le,Ce,je,IA){return fe?ua(16,1,G,H,Ae,le,Ce,je,IA):-52}function ug(G,H,Ae,le,Ce,je){if(fe)return ua(17,1,G,H,Ae,le,Ce,je)}function mp(G,H,Ae,le){G>>>=0,H>>>=0,Ae>>>=0,le>>>=0;var Ce=new Date().getFullYear(),je=new Date(Ce,0,1),IA=new Date(Ce,6,1);Ce=je.getTimezoneOffset();var yA=IA.getTimezoneOffset(),nt=Math.max(Ce,yA);E()[G>>>2>>>0]=60*nt,y()[H>>>2>>>0]=+(Ce!=yA),je=(G=it=>it.toLocaleTimeString(void 0,{hour12:!1,timeZoneName:"short"}).split(" ")[1])(je),IA=G(IA),yA{Yc.length=0;for(var Ae;Ae=h()[G++>>>0];){var le=Ae!=105;H+=(le&=Ae!=112)&&H%8?4:0,Yc.push(Ae==112?E()[H>>>2>>>0]:Ae==106?Na[H>>>3]:Ae==105?y()[H>>>2>>>0]:N()[H>>>3>>>0]),H+=le?8:4}return Yc};function Cp(G,H,Ae){return G>>>=0,H=gg(H>>>0,Ae>>>0),Ec[G](...H)}function bp(G,H,Ae){return G>>>=0,H=gg(H>>>0,Ae>>>0),Ec[G](...H)}var Ip=()=>{},wp=()=>Date.now();function kp(G,H){return mt(ya(G>>>0,H>>>0))}var dg,xp=()=>{throw so+=1,"unwind"};function Bp(){return 4294901760}dg=()=>performance.timeOrigin+performance.now();var yp=()=>navigator.hardwareConcurrency;function Ep(){return L0("Cannot use emscripten_pc_get_function without -sUSE_OFFSET_CONVERTER"),0}function vp(G){G>>>=0;var H=h().length;if(G<=H||4294901760=Ae;Ae*=2){var le=H*(1+.2/Ae);le=Math.min(le,G+100663296);var Ce=Math;le=Math.max(G,le);e:{Ce=(Ce.min.call(Ce,4294901760,le+(65536-le%65536)%65536)-lt.buffer.byteLength+65535)/65536;try{lt.grow(Ce),ca();var je=1;break e}catch{}je=void 0}if(je)return!0}return!1}var Z1=()=>(L0("Cannot use convertFrameToPC (needed by __builtin_return_address) without -sUSE_OFFSET_CONVERTER"),0),b1={},fg=G=>{G.forEach(H=>{Z1()})};function Mp(){var G=Error().stack.toString().split(` +`);return G[0]=="Error"&&G.shift(),fg(G),b1.Qb=Z1(),b1.fc=G,b1.Qb}function Gp(G,H,Ae){if(G>>>=0,H>>>=0,b1.Qb==G)var le=b1.fc;else(le=Error().stack.toString().split(` +`))[0]=="Error"&&le.shift(),fg(le);for(var Ce=3;le[Ce]&&Z1()!=G;)++Ce;for(G=0;G>>2>>>0]=Z1();return G}var Hc,Rc={},pg=()=>{if(!Hc){var G,H={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:"./this.program"};for(G in Rc)Rc[G]===void 0?delete H[G]:H[G]=Rc[G];var Ae=[];for(G in H)Ae.push(`${G}=${H[G]}`);Hc=Ae}return Hc};function hg(G,H){if(fe)return ua(18,1,G,H);G>>>=0,H>>>=0;var Ae=0;return pg().forEach((le,Ce)=>{var je=H+Ae;for(Ce=E()[G+4*Ce>>>2>>>0]=je,je=0;je>>0]=le.charCodeAt(je);g()[Ce>>>0]=0,Ae+=le.length+1}),0}function mg(G,H){if(fe)return ua(19,1,G,H);G>>>=0,H>>>=0;var Ae=pg();E()[G>>>2>>>0]=Ae.length;var le=0;return Ae.forEach(Ce=>le+=Ce.length+1),E()[H>>>2>>>0]=le,0}function Cg(G){return fe?ua(20,1,G):52}function bg(G,H,Ae,le){return fe?ua(21,1,G,H,Ae,le):52}function Ig(G,H,Ae,le){return fe?ua(22,1,G,H,Ae,le):70}var Dp=[null,[],[]];function wg(G,H,Ae,le){if(fe)return ua(23,1,G,H,Ae,le);H>>>=0,Ae>>>=0,le>>>=0;for(var Ce=0,je=0;je>>2>>>0],yA=E()[H+4>>>2>>>0];H+=8;for(var nt=0;nt>>0],vt=Dp[G];it===0||it===10?((G===1?pt:mt)(Su(vt,0)),vt.length=0):vt.push(it)}Ce+=yA}return E()[le>>>2>>>0]=Ce,0}var kg=[31,29,31,30,31,30,31,31,30,31,30,31],xg=[31,28,31,30,31,30,31,31,30,31,30,31],Qp=(G,H)=>{g().set(G,H>>>0)};function Bg(G,H,Ae,le){function Ce(hA,lr,ba){for(hA=typeof hA=="number"?hA.toString():hA||"";hA.lengthOg?-1:0io-hA.getDate())){hA.setDate(hA.getDate()+lr);break}lr-=io-hA.getDate()+1,hA.setDate(1),11>ba?hA.setMonth(ba+1):(hA.setMonth(0),hA.setFullYear(hA.getFullYear()+1))}return ba=new Date(hA.getFullYear()+1,0,4),lr=yA(new Date(hA.getFullYear(),0,4)),ba=yA(ba),0>=IA(lr,hA)?0>=IA(ba,hA)?hA.getFullYear()+1:hA.getFullYear():hA.getFullYear()-1}G>>>=0,H>>>=0,Ae>>>=0,le>>>=0;var it=E()[le+40>>>2>>>0];for(var vt in le={lc:y()[le>>>2>>>0],kc:y()[le+4>>>2>>>0],Ib:y()[le+8>>>2>>>0],Mb:y()[le+12>>>2>>>0],Jb:y()[le+16>>>2>>>0],Db:y()[le+20>>>2>>>0],vb:y()[le+24>>>2>>>0],Cb:y()[le+28>>>2>>>0],sc:y()[le+32>>>2>>>0],jc:y()[le+36>>>2>>>0],mc:it?ya(it):""},Ae=ya(Ae),it={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"})Ae=Ae.replace(new RegExp(vt,"g"),it[vt]);var ir="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),wr="January February March April May June July August September October November December".split(" ");for(vt in it={"%a":hA=>ir[hA.vb].substring(0,3),"%A":hA=>ir[hA.vb],"%b":hA=>wr[hA.Jb].substring(0,3),"%B":hA=>wr[hA.Jb],"%C":hA=>je((hA.Db+1900)/100|0,2),"%d":hA=>je(hA.Mb,2),"%e":hA=>Ce(hA.Mb,2," "),"%g":hA=>nt(hA).toString().substring(2),"%G":nt,"%H":hA=>je(hA.Ib,2),"%I":hA=>((hA=hA.Ib)==0?hA=12:12{for(var lr=0,ba=0;ba<=hA.Jb-1;lr+=($o(hA.Db+1900)?kg:xg)[ba++]);return je(hA.Mb+lr,3)},"%m":hA=>je(hA.Jb+1,2),"%M":hA=>je(hA.kc,2),"%n":()=>` +`,"%p":hA=>0<=hA.Ib&&12>hA.Ib?"AM":"PM","%S":hA=>je(hA.lc,2),"%t":()=>" ","%u":hA=>hA.vb||7,"%U":hA=>je(Math.floor((hA.Cb+7-hA.vb)/7),2),"%V":hA=>{var lr=Math.floor((hA.Cb+7-(hA.vb+6)%7)/7);if(2>=(hA.vb+371-hA.Cb-2)%7&&lr++,lr)lr==53&&((ba=(hA.vb+371-hA.Cb)%7)==4||ba==3&&$o(hA.Db)||(lr=1));else{lr=52;var ba=(hA.vb+7-hA.Cb-1)%7;(ba==4||ba==5&&$o(hA.Db%400-1))&&lr++}return je(lr,2)},"%w":hA=>hA.vb,"%W":hA=>je(Math.floor((hA.Cb+7-(hA.vb+6)%7)/7),2),"%y":hA=>(hA.Db+1900).toString().substring(2),"%Y":hA=>hA.Db+1900,"%z":hA=>(0<=(hA=hA.jc)?"+":"-")+("0000"+((hA=Math.abs(hA)/60)/60*100+hA%60)).slice(-4),"%Z":hA=>hA.mc,"%%":()=>"%"},Ae=Ae.replace(/%%/g,"\0\0"),it)Ae.includes(vt)&&(Ae=Ae.replace(new RegExp(vt,"g"),it[vt](le)));return vt=function(hA){var lr=Array(Qc(hA)+1);return Lu(hA,lr,0,lr.length),lr}(Ae=Ae.replace(/\0\0/g,"%")),vt.length>H?0:(Qp(vt,G),vt.length-1)}function Tp(G,H,Ae,le){return Bg(G>>>0,H>>>0,Ae>>>0,le>>>0)}fe||function(){for(var G=Q.numThreads-1;G--;)Tu();O0.unshift(()=>{m1++,function(H){fe?H():Promise.all(Y0.map(Qu)).then(H)}(()=>Iu())})}();for(var yg=Array(256),X1=0;256>X1;++X1)yg[X1]=String.fromCharCode(X1);Ju=yg,H0=Q.BindingError=class extends Error{constructor(G){super(G),this.name="BindingError"}},Q.InternalError=class extends Error{constructor(G){super(G),this.name="InternalError"}},A0.push(0,1,void 0,1,null,1,!0,1,!1,1),Q.count_emval_handles=()=>A0.length/2-5-zc.length;var Pp=[Gc,vu,Pu,Nu,Ou,Yu,Hu,Ru,Wu,Vu,ju,Uu,Ku,Zu,Xu,qu,cg,ug,hg,mg,Cg,bg,Ig,wg],kt=function(){function G(Ae,le){return kt=Ae.exports,kt=function(){var Ce=kt,je={};for(let[IA,yA]of Object.entries(Ce))je[IA]=typeof yA=="function"?(...nt)=>{j1.push(IA);try{return yA(...nt)}finally{Sr||(j1.pop(),ui&&W0===1&&j1.length===0&&(W0=0,so+=1,V1(zg),typeof Fibers<"u"&&Fibers.tc()))}}:yA;return je}(),kt=function(){var Ce=kt,je=yA=>nt=>yA(nt)>>>0,IA=yA=>()=>yA()>>>0;return(Ce=Object.assign({},Ce)).Da=je(Ce.Da),Ce.gb=IA(Ce.gb),Ce.ib=je(Ce.ib),Ce.emscripten_main_runtime_thread_id=IA(Ce.emscripten_main_runtime_thread_id),Ce.tb=je(Ce.tb),Ce.ub=IA(Ce.ub),Ce}(),Mu.push(kt.jb),h1.unshift(kt.Ca),wA=le,Iu(),kt}var H=yu();if(m1++,Q.instantiateWasm)try{return Q.instantiateWasm(H,G)}catch(Ae){mt(`Module.instantiateWasm callback failed with error: ${Ae}`),te(Ae)}return yc||=Q.locateFile?wu("ort-wasm-simd-threaded.jsep.wasm")?"ort-wasm-simd-threaded.jsep.wasm":Q.locateFile?Q.locateFile("ort-wasm-simd-threaded.jsep.wasm",lA):lA+"ort-wasm-simd-threaded.jsep.wasm":new URL(d("./node_modules/onnxruntime-web/dist/ort-wasm-simd-threaded.jsep.wasm"),d.b).href,function(Ae,le){var Ce=yc;return LA||typeof WebAssembly.instantiateStreaming!="function"||wu(Ce)||ku(Ce)||typeof fetch!="function"?Bu(Ce,Ae,le):fetch(Ce,{credentials:"same-origin"}).then(je=>WebAssembly.instantiateStreaming(je,Ae).then(le,function(IA){return mt(`wasm streaming compile failed: ${IA}`),mt("falling back to ArrayBuffer instantiation"),Bu(Ce,Ae,le)}))}(H,function(Ae){G(Ae.instance,Ae.module)}).catch(te),{}}(),Eg=G=>(Eg=kt.Da)(G),vg=()=>(vg=kt.Ea)();Q._OrtInit=(G,H)=>(Q._OrtInit=kt.Fa)(G,H),Q._OrtGetLastError=(G,H)=>(Q._OrtGetLastError=kt.Ga)(G,H),Q._OrtCreateSessionOptions=(G,H,Ae,le,Ce,je,IA,yA,nt,it)=>(Q._OrtCreateSessionOptions=kt.Ha)(G,H,Ae,le,Ce,je,IA,yA,nt,it),Q._OrtAppendExecutionProvider=(G,H)=>(Q._OrtAppendExecutionProvider=kt.Ia)(G,H),Q._OrtAddFreeDimensionOverride=(G,H,Ae)=>(Q._OrtAddFreeDimensionOverride=kt.Ja)(G,H,Ae),Q._OrtAddSessionConfigEntry=(G,H,Ae)=>(Q._OrtAddSessionConfigEntry=kt.Ka)(G,H,Ae),Q._OrtReleaseSessionOptions=G=>(Q._OrtReleaseSessionOptions=kt.La)(G),Q._OrtCreateSession=(G,H,Ae)=>(Q._OrtCreateSession=kt.Ma)(G,H,Ae),Q._OrtReleaseSession=G=>(Q._OrtReleaseSession=kt.Na)(G),Q._OrtGetInputOutputCount=(G,H,Ae)=>(Q._OrtGetInputOutputCount=kt.Oa)(G,H,Ae),Q._OrtGetInputName=(G,H)=>(Q._OrtGetInputName=kt.Pa)(G,H),Q._OrtGetOutputName=(G,H)=>(Q._OrtGetOutputName=kt.Qa)(G,H),Q._OrtFree=G=>(Q._OrtFree=kt.Ra)(G),Q._OrtCreateTensor=(G,H,Ae,le,Ce,je)=>(Q._OrtCreateTensor=kt.Sa)(G,H,Ae,le,Ce,je),Q._OrtGetTensorData=(G,H,Ae,le,Ce)=>(Q._OrtGetTensorData=kt.Ta)(G,H,Ae,le,Ce),Q._OrtReleaseTensor=G=>(Q._OrtReleaseTensor=kt.Ua)(G),Q._OrtCreateRunOptions=(G,H,Ae,le)=>(Q._OrtCreateRunOptions=kt.Va)(G,H,Ae,le),Q._OrtAddRunConfigEntry=(G,H,Ae)=>(Q._OrtAddRunConfigEntry=kt.Wa)(G,H,Ae),Q._OrtReleaseRunOptions=G=>(Q._OrtReleaseRunOptions=kt.Xa)(G),Q._OrtCreateBinding=G=>(Q._OrtCreateBinding=kt.Ya)(G),Q._OrtBindInput=(G,H,Ae)=>(Q._OrtBindInput=kt.Za)(G,H,Ae),Q._OrtBindOutput=(G,H,Ae,le)=>(Q._OrtBindOutput=kt._a)(G,H,Ae,le),Q._OrtClearBoundOutputs=G=>(Q._OrtClearBoundOutputs=kt.$a)(G),Q._OrtReleaseBinding=G=>(Q._OrtReleaseBinding=kt.ab)(G),Q._OrtRunWithBinding=(G,H,Ae,le,Ce)=>(Q._OrtRunWithBinding=kt.bb)(G,H,Ae,le,Ce),Q._OrtRun=(G,H,Ae,le,Ce,je,IA,yA)=>(Q._OrtRun=kt.cb)(G,H,Ae,le,Ce,je,IA,yA),Q._OrtEndProfiling=G=>(Q._OrtEndProfiling=kt.db)(G),Q._JsepOutput=(G,H,Ae)=>(Q._JsepOutput=kt.eb)(G,H,Ae),Q._JsepGetNodeName=G=>(Q._JsepGetNodeName=kt.fb)(G);var q1,e2=()=>(e2=kt.gb)(),gi=Q._free=G=>(gi=Q._free=kt.hb)(G),J1=Q._malloc=G=>(J1=Q._malloc=kt.ib)(G),Wc=(G,H,Ae,le,Ce,je)=>(Wc=kt.lb)(G,H,Ae,le,Ce,je),Mg=()=>(Mg=kt.mb)(),Gg=(G,H,Ae,le,Ce)=>(Gg=kt.nb)(G,H,Ae,le,Ce),Vc=G=>(Vc=kt.ob)(G),_1=G=>(_1=kt.pb)(G),Dg=()=>(Dg=kt.qb)(),Qg=(G,H)=>(Qg=kt.rb)(G,H),$1=G=>($1=kt.sb)(G),jc=G=>(jc=kt.tb)(G),Uc=()=>(Uc=kt.ub)(),Tg=Q.dynCall_ii=(G,H)=>(Tg=Q.dynCall_ii=kt.wb)(G,H),Pg=G=>(Pg=kt.xb)(G),zg=()=>(zg=kt.yb)(),Fg=G=>(Fg=kt.zb)(G),Sg=()=>(Sg=kt.Ab)();function Ng(){0Uc(),Q.stackRestore=G=>$1(G),Q.stackAlloc=G=>jc(G),Q.setValue=function(G,H,Ae="i8"){switch(Ae.endsWith("*")&&(Ae="*"),Ae){case"i1":case"i8":g()[G>>>0]=H;break;case"i16":w()[G>>>1>>>0]=H;break;case"i32":y()[G>>>2>>>0]=H;break;case"i64":Na[G>>>3]=BigInt(H);break;case"float":F()[G>>>2>>>0]=H;break;case"double":N()[G>>>3>>>0]=H;break;case"*":E()[G>>>2>>>0]=H;break;default:L0(`invalid type for setValue: ${Ae}`)}},Q.getValue=function(G,H="i8"){switch(H.endsWith("*")&&(H="*"),H){case"i1":case"i8":return g()[G>>>0];case"i16":return w()[G>>>1>>>0];case"i32":return y()[G>>>2>>>0];case"i64":return Na[G>>>3];case"float":return F()[G>>>2>>>0];case"double":return N()[G>>>3>>>0];case"*":return E()[G>>>2>>>0];default:L0(`invalid type for getValue: ${H}`)}},Q.UTF8ToString=ya,Q.stringToUTF8=_o,Q.lengthBytesUTF8=Qc,C1=function G(){q1||Ng(),q1||(C1=G)},Ng(),Q.PTR_SIZE=4,ne},Qr=$t,globalThis.self?.name==="em-pthread"&&$t()}),Zo=Pe(()=>{oA(),tr=typeof location>"u"?void 0:location.origin,da=import.meta.url?.startsWith("file:")?new URL(new URL(d("./node_modules/onnxruntime-web/dist/ort.bundle.min.mjs?46eb"),d.b).href,tr).href:import.meta.url,bt=()=>{if(da&&!da.startsWith("blob:"))return da.substring(0,da.lastIndexOf("/")+1)},Ka=(i,g)=>{try{let h=g??da;return(h?new URL(i,h):new URL(i)).origin===tr}catch{return!1}},Oa=(i,g)=>{let h=g??da;try{return(h?new URL(i,h):new URL(i)).href}catch{return}},Ia=(i,g)=>`${g??"./"}${i}`,ZA=async i=>{let g=await(await fetch(i,{credentials:"same-origin"})).blob();return URL.createObjectURL(g)},$A=async i=>(await import(i)).default,PA=(Tt(),aA(BA)).default,qt=async()=>{if(!da)throw new Error("Failed to load proxy worker: cannot determine the script source URL.");if(Ka(da))return[void 0,PA()];let i=await ZA(da);return[i,PA(i)]},cs=(z1(),aA(gt)).default,Za=async(i,g,h)=>{if(!i&&!g&&cs&&da&&Ka(da))return[void 0,cs];{let w="ort-wasm-simd-threaded.jsep.mjs",B=i??Oa(w,g),y=h&&B&&!Ka(B,g),E=y?await ZA(B):B??Ia(w,g);return[y?E:void 0,await $A(E)]}}}),ti=Pe(()=>{Zo(),ws=!1,ks=!1,Fs=!1,$r=()=>{if(typeof SharedArrayBuffer>"u")return!1;try{return typeof MessageChannel<"u"&&new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch{return!1}},xt=()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,30,1,28,0,65,0,253,15,253,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,253,186,1,26,11]))}catch{return!1}},va=async i=>{if(ws)return Promise.resolve();if(ks)throw new Error("multiple calls to 'initializeWebAssembly()' detected.");if(Fs)throw new Error("previous call to 'initializeWebAssembly()' failed.");ks=!0;let g=i.initTimeout,h=i.numThreads;if(!xt())throw new Error("WebAssembly SIMD is not supported in the current environment.");let w=$r();h>1&&!w&&(typeof self<"u"&&!self.crossOriginIsolated&&console.warn("env.wasm.numThreads is set to "+h+", but this will not work unless you enable crossOriginIsolated mode. See https://web.dev/cross-origin-isolation-guide/ for more info."),console.warn("WebAssembly multi-threading is not supported in the current environment. Falling back to single-threading."),i.numThreads=h=1);let B=i.wasmPaths,y=typeof B=="string"?B:void 0,E=B?.mjs,F=E?.href??E,N=B?.wasm,Y=N?.href??N,te=i.wasmBinary,[Q,ne]=await Za(F,y,h>1),oe=!1,de=[];if(g>0&&de.push(new Promise(fe=>{setTimeout(()=>{oe=!0,fe()},g)})),de.push(new Promise((fe,ke)=>{let Me={numThreads:h};if(te)Me.wasmBinary=te;else if(Y||y)Me.locateFile=De=>Y??y+De;else if(F&&F.indexOf("blob:")!==0)Me.locateFile=De=>new URL(De,F).href;else if(Q){let De=bt();De&&(Me.locateFile=Le=>De+Le)}ne(Me).then(De=>{ks=!1,ws=!0,zs=De,fe(),Q&&URL.revokeObjectURL(Q)},De=>{ks=!1,Fs=!0,ke(De)})})),await Promise.race(de),oe)throw new Error(`WebAssembly backend initializing failed due to timeout: ${g}ms`)},Tr=()=>{if(ws&&zs)return zs;throw new Error("WebAssembly is not initialized yet.")}}),a1=Pe(()=>{ti(),Hr=(i,g)=>{let h=Tr(),w=h.lengthBytesUTF8(i)+1,B=h._malloc(w);return h.stringToUTF8(i,B,w),g.push(B),B},us=(i,g,h,w)=>{if(typeof i=="object"&&i!==null){if(h.has(i))throw new Error("Circular reference in options");h.add(i)}Object.entries(i).forEach(([B,y])=>{let E=g?g+B:B;if(typeof y=="object")us(y,E+".",h,w);else if(typeof y=="string"||typeof y=="number")w(E,y.toString());else{if(typeof y!="boolean")throw new Error("Can't handle extra config type: "+typeof y);w(E,y?"1":"0")}})},Kt=i=>{let g=Tr(),h=g.stackSave();try{let w=g.PTR_SIZE,B=g.stackAlloc(2*w);g._OrtGetLastError(B,B+w);let y=Number(g.getValue(B,w===4?"i32":"i64")),E=g.getValue(B+w,"*"),F=E?g.UTF8ToString(E):"";throw new Error(`${i} ERROR_CODE: ${y}, ERROR_MESSAGE: ${F}`)}finally{g.stackRestore(h)}}}),nc=Pe(()=>{ti(),a1(),Xa=i=>{let g=Tr(),h=0,w=[],B=i||{};try{if(i?.logSeverityLevel===void 0)B.logSeverityLevel=2;else if(typeof i.logSeverityLevel!="number"||!Number.isInteger(i.logSeverityLevel)||i.logSeverityLevel<0||i.logSeverityLevel>4)throw new Error(`log serverity level is not valid: ${i.logSeverityLevel}`);if(i?.logVerbosityLevel===void 0)B.logVerbosityLevel=0;else if(typeof i.logVerbosityLevel!="number"||!Number.isInteger(i.logVerbosityLevel))throw new Error(`log verbosity level is not valid: ${i.logVerbosityLevel}`);i?.terminate===void 0&&(B.terminate=!1);let y=0;return i?.tag!==void 0&&(y=Hr(i.tag,w)),h=g._OrtCreateRunOptions(B.logSeverityLevel,B.logVerbosityLevel,!!B.terminate,y),h===0&&Kt("Can't create run options."),i?.extra!==void 0&&us(i.extra,"",new WeakSet,(E,F)=>{let N=Hr(E,w),Y=Hr(F,w);g._OrtAddRunConfigEntry(h,N,Y)!==0&&Kt(`Can't set a run config entry: ${E} - ${F}.`)}),[h,w]}catch(y){throw h!==0&&g._OrtReleaseRunOptions(h),w.forEach(E=>g._free(E)),y}}}),ic=Pe(()=>{ti(),a1(),gs=i=>{switch(i){case"disabled":return 0;case"basic":return 1;case"extended":return 2;case"all":return 99;default:throw new Error(`unsupported graph optimization level: ${i}`)}},mn=i=>{switch(i){case"sequential":return 0;case"parallel":return 1;default:throw new Error(`unsupported execution mode: ${i}`)}},_s=i=>{i.extra||(i.extra={}),i.extra.session||(i.extra.session={});let g=i.extra.session;g.use_ort_model_bytes_directly||(g.use_ort_model_bytes_directly="1"),i.executionProviders&&i.executionProviders.some(h=>(typeof h=="string"?h:h.name)==="webgpu")&&(i.enableMemPattern=!1)},$s=(i,g,h)=>{for(let w of g){let B=typeof w=="string"?w:w.name;switch(B){case"webnn":if(B="WEBNN",typeof w!="string"){let E=w?.deviceType;if(E){let F=Hr("deviceType",h),N=Hr(E,h);Tr()._OrtAddSessionConfigEntry(i,F,N)!==0&&Kt(`Can't set a session config entry: 'deviceType' - ${E}.`)}}break;case"webgpu":if(B="JS",typeof w!="string"){let E=w;if(E?.preferredLayout){if(E.preferredLayout!=="NCHW"&&E.preferredLayout!=="NHWC")throw new Error(`preferredLayout must be either 'NCHW' or 'NHWC': ${E.preferredLayout}`);let F=Hr("preferredLayout",h),N=Hr(E.preferredLayout,h);Tr()._OrtAddSessionConfigEntry(i,F,N)!==0&&Kt(`Can't set a session config entry: 'preferredLayout' - ${E.preferredLayout}.`)}}break;case"wasm":case"cpu":continue;default:throw new Error(`not supported execution provider: ${B}`)}let y=Hr(B,h);Tr()._OrtAppendExecutionProvider(i,y)!==0&&Kt(`Can't append execution provider: ${B}.`)}},Cn=i=>{let g=Tr(),h=0,w=[],B=i||{};_s(B);try{let y=gs(B.graphOptimizationLevel??"all"),E=mn(B.executionMode??"sequential"),F=typeof B.logId=="string"?Hr(B.logId,w):0,N=B.logSeverityLevel??2;if(!Number.isInteger(N)||N<0||N>4)throw new Error(`log serverity level is not valid: ${N}`);let Y=B.logVerbosityLevel??0;if(!Number.isInteger(Y)||Y<0||Y>4)throw new Error(`log verbosity level is not valid: ${Y}`);let te=typeof B.optimizedModelFilePath=="string"?Hr(B.optimizedModelFilePath,w):0;if(h=g._OrtCreateSessionOptions(y,!!B.enableCpuMemArena,!!B.enableMemPattern,E,!!B.enableProfiling,0,F,N,Y,te),h===0&&Kt("Can't create session options."),B.executionProviders&&$s(h,B.executionProviders,w),B.enableGraphCapture!==void 0){if(typeof B.enableGraphCapture!="boolean")throw new Error(`enableGraphCapture must be a boolean value: ${B.enableGraphCapture}`);let Q=Hr("enableGraphCapture",w),ne=Hr(B.enableGraphCapture.toString(),w);g._OrtAddSessionConfigEntry(h,Q,ne)!==0&&Kt(`Can't set a session config entry: 'enableGraphCapture' - ${B.enableGraphCapture}.`)}if(B.freeDimensionOverrides)for(let[Q,ne]of Object.entries(B.freeDimensionOverrides)){if(typeof Q!="string")throw new Error(`free dimension override name must be a string: ${Q}`);if(typeof ne!="number"||!Number.isInteger(ne)||ne<0)throw new Error(`free dimension override value must be a non-negative integer: ${ne}`);let oe=Hr(Q,w);g._OrtAddFreeDimensionOverride(h,oe,ne)!==0&&Kt(`Can't set a free dimension override: ${Q} - ${ne}.`)}return B.extra!==void 0&&us(B.extra,"",new WeakSet,(Q,ne)=>{let oe=Hr(Q,w),de=Hr(ne,w);g._OrtAddSessionConfigEntry(h,oe,de)!==0&&Kt(`Can't set a session config entry: ${Q} - ${ne}.`)}),[h,w]}catch(y){throw h!==0&&g._OrtReleaseSessionOptions(h)!==0&&Kt("Can't release session options."),w.forEach(E=>g._free(E)),y}}}),Dt=Pe(()=>{Ur=i=>{switch(i){case"int8":return 3;case"uint8":return 2;case"bool":return 9;case"int16":return 5;case"uint16":return 4;case"int32":return 6;case"uint32":return 12;case"float16":return 10;case"float32":return 1;case"float64":return 11;case"string":return 8;case"int64":return 7;case"uint64":return 13;case"int4":return 22;case"uint4":return 21;default:throw new Error(`unsupported data type: ${i}`)}},ts=i=>{switch(i){case 3:return"int8";case 2:return"uint8";case 9:return"bool";case 5:return"int16";case 4:return"uint16";case 6:return"int32";case 12:return"uint32";case 10:return"float16";case 1:return"float32";case 11:return"float64";case 8:return"string";case 7:return"int64";case 13:return"uint64";case 22:return"int4";case 21:return"uint4";default:throw new Error(`unsupported data type: ${i}`)}},ds=(i,g)=>{let h=[-1,4,1,1,2,2,4,8,-1,1,2,8,4,8,-1,-1,-1,-1,-1,-1,-1,.5,.5][i],w=typeof g=="number"?g:g.reduce((B,y)=>B*y,1);return h>0?Math.ceil(w*h):void 0},en=i=>{switch(i){case"float16":return typeof Float16Array<"u"&&Float16Array.from?Float16Array:Uint16Array;case"float32":return Float32Array;case"uint8":case"bool":return Uint8Array;case"int8":return Int8Array;case"uint16":return Uint16Array;case"int16":return Int16Array;case"int32":return Int32Array;case"float64":return Float64Array;case"uint32":return Uint32Array;case"int64":return BigInt64Array;case"uint64":return BigUint64Array;default:throw new Error(`unsupported type: ${i}`)}},qa=i=>{switch(i){case"verbose":return 0;case"info":return 1;case"warning":return 2;case"error":return 3;case"fatal":return 4;default:throw new Error(`unsupported logging level: ${i}`)}},xs=i=>i==="float32"||i==="float16"||i==="int32"||i==="int64"||i==="uint32"||i==="uint8"||i==="bool"||i==="uint4"||i==="int4",kr=i=>i==="float32"||i==="float16"||i==="int32"||i==="int64"||i==="uint32"||i==="uint64"||i==="int8"||i==="uint8"||i==="bool"||i==="uint4"||i==="int4",Ss=i=>{switch(i){case"none":return 0;case"cpu":return 1;case"cpu-pinned":return 2;case"texture":return 3;case"gpu-buffer":return 4;case"ml-tensor":return 5;default:throw new Error(`unsupported data location: ${i}`)}}}),F1=Pe(()=>{oA(),Ns=async i=>{if(typeof i=="string"){let g=await fetch(i);if(!g.ok)throw new Error(`failed to load external data file: ${i}`);let h=g.headers.get("Content-Length"),w=h?parseInt(h,10):0;if(w<1073741824)return new Uint8Array(await g.arrayBuffer());{if(!g.body)throw new Error(`failed to load external data file: ${i}, no response body.`);let B,y=g.body.getReader();try{B=new ArrayBuffer(w)}catch(F){if(!(F instanceof RangeError))throw F;{let N=Math.ceil(w/65536);B=new WebAssembly.Memory({initial:N,maximum:N}).buffer}}let E=0;for(;;){let{done:F,value:N}=await y.read();if(F)break;let Y=N.byteLength;new Uint8Array(B,E,Y).set(N),E+=Y}return new Uint8Array(B,0,w)}}return i instanceof Blob?new Uint8Array(await i.arrayBuffer()):i instanceof Uint8Array?i:new Uint8Array(i)}}),Pn=Pe(()=>{Dt(),bn=["V","I","W","E","F"],Os=(i,g)=>{console.log(`[${bn[i]},${new Date().toISOString()}]${g}`)},ys=(i,g)=>{Bs=i,Ls=g},wt=(i,g)=>{let h=qa(i);h>=qa(Bs)&&Os(h,typeof g=="function"?g():g)},Pt=(...i)=>{Ls&&wt(...i)}}),S1=Pe(()=>{Dt(),wa=(i,g)=>new(en(g))(i)}),s1=Pe(()=>{}),oc=Pe(()=>{Pn(),s1(),An=new Map([[64,250],[128,200],[256,200],[512,200],[2048,230],[4096,200],[8192,50],[16384,50],[32768,50],[65536,50],[131072,50],[262144,50],[524288,50],[1048576,50],[2097152,30],[4194304,20],[8388608,10],[12582912,10],[16777216,10],[26214400,15],[33554432,22],[44236800,2],[58982400,6],[67108864,6],[134217728,6],[167772160,6]]),Es=[],Ys=i=>16*Math.ceil(Number(i)/16),rs=i=>{for(let g=0;gHs++,_=async(i,g,h,w)=>{let B=Ys(h),y=i.device.createBuffer({size:B,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ});try{let E=i.getCommandEncoder();i.endComputePass(),E.copyBufferToBuffer(g,0,y,0,B),i.flush(),await y.mapAsync(GPUMapMode.READ);let F=y.getMappedRange();if(w){let N=w();return N.set(new Uint8Array(F,0,h)),N}return new Uint8Array(F.slice(0,h))}finally{y.destroy()}},Be=class{constructor(i){this.backend=i,this.storageCache=new Map,this.freeBuffers=new Map,this.freeUniformBuffers=new Map,this.buffersPending=[],this.capturedPendingBuffers=new Map;for(let[g]of An)Es.push(g),this.freeBuffers.set(g,[]),this.freeUniformBuffers.set(g,[]);this.sessionCount=0}upload(i,g){let h=g.buffer,w=g.byteOffset,B=g.byteLength,y=Ys(B),E=this.storageCache.get(i);if(!E)throw new Error("gpu data for uploading does not exist");if(Number(E.originalSize)!==B)throw new Error(`inconsistent data size. gpu data size=${E.originalSize}, data size=${B}`);let F=this.backend.device.createBuffer({mappedAtCreation:!0,size:y,usage:GPUBufferUsage.MAP_WRITE|GPUBufferUsage.COPY_SRC}),N=F.getMappedRange();new Uint8Array(N).set(new Uint8Array(h,w,B)),F.unmap();let Y=this.backend.device.createCommandEncoder();Y.copyBufferToBuffer(F,0,E.gpuData.buffer,0,y),this.backend.device.queue.submit([Y.finish()]),F.destroy(),Pt("verbose",()=>`[WebGPU] GpuDataManager.upload(id=${i})`)}memcpy(i,g){let h=this.storageCache.get(i);if(!h)throw new Error("source gpu data for memcpy does not exist");let w=this.storageCache.get(g);if(!w)throw new Error("destination gpu data for memcpy does not exist");if(h.originalSize!==w.originalSize)throw new Error("inconsistent source and destination gpu data size");let B=Ys(h.originalSize),y=this.backend.getCommandEncoder();this.backend.endComputePass(),y.copyBufferToBuffer(h.gpuData.buffer,0,w.gpuData.buffer,0,B)}registerExternalBuffer(i,g,h){let w;if(h){if(w=h[0],i===h[1])return Pt("verbose",()=>`[WebGPU] GpuDataManager.registerExternalBuffer(size=${g}) => id=${w}, buffer is the same, skip.`),w;if(this.backend.capturedCommandList.has(this.backend.currentSessionId))throw new Error(`Registering a different external buffer under graph capture mode is not supported yet. + Please use the previous external buffer!`)}else w=tA();return this.storageCache.set(w,{gpuData:{id:w,type:0,buffer:i},originalSize:g}),Pt("verbose",()=>`[WebGPU] GpuDataManager.registerExternalBuffer(size=${g}) => id=${w}, registered.`),w}unregisterExternalBuffer(i){i!==void 0&&(this.storageCache.delete(i),Pt("verbose",()=>`[WebGPU] GpuDataManager.unregisterExternalBuffer() => id=${i}`))}create(i,g=GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_SRC|GPUBufferUsage.COPY_DST){let h,w=rs(i),B=(g&GPUBufferUsage.STORAGE)===GPUBufferUsage.STORAGE,y=(g&GPUBufferUsage.UNIFORM)===GPUBufferUsage.UNIFORM;if(B||y){let F=(B?this.freeBuffers:this.freeUniformBuffers).get(w);h=F&&F.length>0?F.pop():this.backend.device.createBuffer({size:w,usage:g})}else h=this.backend.device.createBuffer({size:w,usage:g});let E={id:tA(),type:0,buffer:h};return this.storageCache.set(E.id,{gpuData:E,originalSize:Number(i)}),Pt("verbose",()=>`[WebGPU] GpuDataManager.create(size=${i}) => id=${E.id}`),E}get(i){return this.storageCache.get(i)?.gpuData}release(i){let g=typeof i=="bigint"?Number(i):i,h=this.storageCache.get(g);if(!h){if(this.storageCache.size===0)return 0;throw new Error("releasing data does not exist")}return Pt("verbose",()=>`[WebGPU] GpuDataManager.release(id=${g}), gpuDataId=${h.gpuData.id}`),this.storageCache.delete(g),this.buffersPending.push(h.gpuData.buffer),h.originalSize}async download(i,g){let h=this.storageCache.get(Number(i));if(!h)throw new Error("data does not exist");await _(this.backend,h.gpuData.buffer,h.originalSize,g)}refreshPendingBuffers(){if(this.buffersPending.length!==0)if(this.backend.sessionStatus==="default"){for(let i of this.buffersPending){let g=An.get(i.size);if((i.usage&GPUBufferUsage.STORAGE)===GPUBufferUsage.STORAGE){let h=this.freeBuffers.get(i.size)||[];g===void 0||h.length>=g?i.destroy():h.push(i)}else if((i.usage&GPUBufferUsage.UNIFORM)===GPUBufferUsage.UNIFORM){let h=this.freeUniformBuffers.get(i.size)||[];g===void 0||h.length>=g?i.destroy():h.push(i)}else i.destroy()}this.buffersPending=[]}else{let i=this.capturedPendingBuffers.get(this.backend.currentSessionId);i||(i=[],this.capturedPendingBuffers.set(this.backend.currentSessionId,i));for(let g of this.buffersPending)i.push(g);this.buffersPending=[]}}dispose(){this.freeBuffers.forEach(i=>{i.forEach(g=>{g.destroy()})}),this.freeUniformBuffers.forEach(i=>{i.forEach(g=>{g.destroy()})}),this.storageCache.forEach(i=>{i.gpuData.buffer.destroy()}),this.capturedPendingBuffers.forEach(i=>{i.forEach(g=>{g.destroy()})}),this.storageCache=new Map,this.freeBuffers=new Map,this.freeUniformBuffers=new Map,this.capturedPendingBuffers=new Map}onCreateSession(){this.sessionCount+=1}onReleaseSession(i){let g=this.capturedPendingBuffers.get(i);g&&(g.forEach(h=>{h.destroy()}),this.capturedPendingBuffers.delete(i)),this.sessionCount-=1,this.sessionCount===0&&(Pt("warning",()=>"[WebGPU] Clearing webgpu buffer cache"),this.storageCache.forEach(h=>{h.gpuData.buffer.destroy()}),this.storageCache=new Map)}},Oe=(...i)=>new Be(...i)}),qr=Pe(()=>{Ve=class{constructor(i){Object.assign(this,i)}get cacheKey(){return this.key||(this.key=Object.getOwnPropertyNames(this).sort().map(i=>`${this[i]}`).join(";")),this.key}},$e=i=>new Ve(i)}),St=Pe(()=>{fA=class{static calcMatMulShape(i,g){return i[1]!==g[0]?void 0:[i[0],g[1]]}},NA=class{static calcShape(i,g,h=!1){let w=i.length,B=g.length;if(w===0)return g;if(B===0)return i;let y=Math.max(i.length,g.length),E=new Array(y);if(h){if(w<2||B<2)return;let F=fA.calcMatMulShape([i[w-2],i[w-1]],[g[B-2],g[B-1]]);if(F===void 0)return;[E[y-2],E[y-1]]=F}for(let F=h?3:1;F<=y;F++){let N=w-F<0?1:i[w-F],Y=B-F<0?1:g[B-F];if(N!==Y&&N>1&&Y>1)return;let te=Math.max(N,Y);if(N&&Y)E[y-F]=Math.max(N,Y);else{if(te>1)return;E[y-F]=0}}return E}static isValidBroadcast(i,g){let h=i.length,w=g.length;if(h>w)return!1;for(let B=1;B<=h;B++)if(i[h-B]!==1&&i[h-B]!==g[w-B])return!1;return!0}},He=class ec{static size(g){return ec.getSizeFromDimensionRange(g,0,g.length)}static convertShape(g,h=4){let w=g.length;if(w===0)return[];let B=new Array(w),y=w-1;for(;y>=0;){if(g[y]%h==0){B[y]=g[y]/h;break}if(h%g[y]!=0)throw new Error("cannot convert shape");B[y]=1,h/=g[y],y--}for(y--;y>=0;y--)B[y]=g[y];return B}static sizeFromDimension(g,h){if(h<0||h>g.length)throw new Error(`invalid dimension of ${h} for sizeFromDimension as Tensor has ${g.length} dimensions.`);return ec.getSizeFromDimensionRange(g,h,g.length)}static sizeToDimension(g,h){if(h<0||h>g.length)throw new Error(`invalid dimension of ${h} for sizeToDimension as Tensor has ${g.length} dimensions.`);return ec.getSizeFromDimensionRange(g,0,h)}static getSizeFromDimensionRange(g,h,w){let B=1;for(let y=h;y=0;--B)w[B]=w[B+1]*g[B+1];return w}static normalizeAxis(g,h){if(g<-h&&g>=h)throw new Error("unsupported axis for this operation.");return g<0?g+h:g}static normalizeAxes(g,h){return g.map(w=>this.normalizeAxis(w,h??g.length))}static sortBasedOnPerm(g,h){return h?h.map(w=>g[w]):g.slice().reverse()}static padShape(g,h){let w=g.length;return g.map((B,y)=>B+h[y]+h[y+w])}static areEqual(g,h){return g.length===h.length&&g.every((w,B)=>w===h[B])}},VA=class w1{static adjustPoolAttributes(g,h,w,B,y,E){if(!g&&w.length!==h.length-2)throw new Error("length of specified kernel shapes should be 2 less than length of input dimensions");if(g)for(let F=0;F=w.length?w.push(h[F+2]):w[F]=h[F+2];for(let F=0;F=w[F]||E[F+w.length]>=w[F])throw new Error("pads should be smaller than kernel")}}static adjustPadsBasedOnAutoPad(g,h,w,B,y,E,F){if(F){if(y.length!==2*(g.length-2))throw new Error("length of pads should be twice the length of data dimensions");if(h.length!==g.length-2)throw new Error("length of strides should be the length of data dimensions");if(B.length!==g.length-2)throw new Error("length of kernel shapes should be the length of data dimensions");for(let N=0;N{Dt(),St(),cr=64,sr=(i,g)=>{if(g===3)throw new Error("vec3 has same alignment as vec4, use vec4 instead");switch(Number(i)){case 10:return g>1?`vec${g}`:"f16";case 1:return g>1?`vec${g}`:"f32";case 6:return g>1?`vec${g}`:"i32";case 12:return g>1?`vec${g}`:"u32";case 7:if(g>1)throw new Error("currently not supported vecX of uint64 yet");return["vec2","i32"];case 13:if(g>1)throw new Error("currently not supported vecX of uint64 yet");return["vec2","u32"];case 9:if(g!==4)throw new Error("bool must be vec4");return["u32","vec4"];case 22:return"i32";case 21:return"u32";default:throw new Error(`Unknown data type: ${i}`)}},jt=(i,g=1)=>{let h=sr(i,g);return typeof h=="string"?h:h[0]},jA=(i,g=1)=>{let h=sr(i,g);return typeof h=="string"?h:h[1]},KA=(...i)=>{let g=[];return i.forEach(h=>{h.length!==0&&g.push({type:12,data:h},{type:12,data:He.computeStrides(h)})}),g},Jt=i=>i%4==0?4:i%2==0?2:1,La=(i="f32",g,h="0")=>g&&g!==1?`vec${g}<${i}>(${h})`:`${i}(${h})`,fa=(i,g,h)=>i==="f32"?h:g===1?`f32(${h})`:`vec${g}(${h})`,nr=(i,g)=>g===4?`(${i}.x + ${i}.y + ${i}.z + ${i}.w)`:g===2?`(${i}.x + ${i}.y)`:g===3?`(${i}.x + ${i}.y + ${i}.z)`:i,rt=(i,g,h,w)=>i.startsWith("uniforms.")&&h>4?typeof g=="string"?w==="f16"?`${i}[(${g}) / 8][(${g}) % 8 / 4][(${g}) % 8 % 4]`:`${i}[(${g}) / 4][(${g}) % 4]`:w==="f16"?`${i}[${Math.floor(g/8)}][${Math.floor(g%8/4)}][${g%8%4}]`:`${i}[${Math.floor(g/4)}][${g%4}]`:h>1?`${i}[${g}]`:i,dr=(i,g,h,w,B)=>{let y=typeof h=="number",E=y?h:h.length,F=[...new Array(E).keys()],N=E<2?"u32":E<=4?`vec${E}`:`array`,Y=sr(g,B),te=typeof Y=="string"?Y:Y[1],Q=typeof Y=="string"?Y:Y[0],ne={indices:N,value:te,storage:Q,tensor:g},oe=wA=>typeof wA=="string"?wA:`${wA}u`,de={offsetToIndices:!1,indicesToOffset:!1,broadcastedIndicesToOffset:!1,set:!1,setByIndices:!1,get:!1,getByIndices:!1},fe=y?"uniforms.":"",ke=`${fe}${i}_shape`,Me=`${fe}${i}_strides`,De="";for(let wA=0;wA ${ne.indices} { + var indices: ${ne.indices}; + var current = offset; + ${De} + return indices; + }`,Xe=[];if(E>=2)for(let wA=E-1;wA>=0;wA--)Xe.push(`${rt(Me,wA,E)} * (indices[${wA}])`);let _e=E<2?"":` + fn i2o_${i}(indices: ${ne.indices}) -> u32 { + return ${Xe.join("+")}; + }`,lA=(...wA)=>E===0?"0u":`${ne.indices}(${wA.map(oe).join(",")})`,LA=(wA,UA)=>E<2?`${wA}`:`${rt(wA,UA,E)}`,st={},ht=(wA,UA)=>(()=>{if(ne.storage===ne.value)return`${i}[${wA}]=${UA};`;if(ne.storage==="vec2"&&ne.value==="i32")return`${i}[${wA}]=vec2(u32(${UA}), select(0u, 0xFFFFFFFFu, ${UA} < 0));`;if(ne.storage==="vec2"&&ne.value==="u32")return`${i}[${wA}]=vec2(u32(${UA}), 0u);`;if(ne.storage==="u32"&&ne.value==="vec4")return`${i}[${wA}]=dot(vec4(0x1, 0x100, 0x10000, 0x1000000), vec4(${UA}));`;throw new Error(`not supported combination of storage type ${ne.storage} and value type ${ne.value} yet`)})(),pt=wA=>(()=>{if(ne.storage===ne.value)return`${i}[${wA}]`;if(ne.storage==="vec2"&&ne.value==="i32")return`i32(${i}[${wA}].x)`;if(ne.storage==="vec2"&&ne.value==="u32")return`u32(${i}[${wA}].x)`;if(ne.storage==="u32"&&ne.value==="vec4")return`vec4(bool(${i}[${wA}] & 0xFFu), bool(${i}[${wA}] & 0xFF00u), bool(${i}[${wA}] & 0xFF0000u), bool(${i}[${wA}] & 0xFF000000u))`;throw new Error(`not supported combination of storage type ${ne.storage} and value type ${ne.value} yet`)})(),mt=E<2?"":` + fn get_${i}ByIndices(indices: ${ne.indices}) -> ${te} { + return ${pt(`i2o_${i}(indices)`)}; + }`,yt=E<2?"":(()=>{let wA=F.map(At=>`d${At}: u32`).join(", "),UA=F.map(At=>`d${At}`).join(", ");return` + fn get_${i}(${wA}) -> ${te} { + return get_${i}ByIndices(${lA(UA)}); + }`})(),tt=E<2?"":` + fn set_${i}ByIndices(indices: ${ne.indices}, value: ${te}) { + ${ht(`i2o_${i}(indices)`,"value")} + }`,lt=E<2?"":(()=>{let wA=F.map(At=>`d${At}: u32`).join(", "),UA=F.map(At=>`d${At}`).join(", ");return` + fn set_${i}(${wA}, value: ${te}) { + set_${i}ByIndices(${lA(UA)}, value); + }`})();return{impl:()=>{let wA=[],UA=!1;return de.offsetToIndices&&(wA.push(Le),UA=!0),de.indicesToOffset&&(wA.push(_e),UA=!0),de.broadcastedIndicesToOffset&&(Object.values(st).forEach(At=>wA.push(At)),UA=!0),de.set&&(wA.push(lt),UA=!0),de.setByIndices&&(wA.push(tt),UA=!0),de.get&&(wA.push(yt),UA=!0),de.getByIndices&&(wA.push(mt),UA=!0),!y&&UA&&wA.unshift(`const ${ke} = ${ne.indices}(${h.join(",")});`,`const ${Me} = ${ne.indices}(${He.computeStrides(h).join(",")});`),wA.join(` +`)},type:ne,offsetToIndices:wA=>(de.offsetToIndices=!0,E<2?wA:`o2i_${i}(${wA})`),indicesToOffset:wA=>(de.indicesToOffset=!0,E<2?wA:`i2o_${i}(${wA})`),broadcastedIndicesToOffset:(wA,UA)=>{de.broadcastedIndicesToOffset=!0;let At=`${UA.name}broadcastedIndicesTo${i}Offset`;if(At in st)return`${At}(${wA})`;let Et=[];for(let ur=E-1;ur>=0;ur--){let la=UA.indicesGet("outputIndices",ur+UA.rank-E);Et.push(`${LA(Me,ur)} * (${la} % ${LA(ke,ur)})`)}return st[At]=`fn ${At}(outputIndices: ${UA.type.indices}) -> u32 { + return ${Et.length>0?Et.join("+"):"0u"}; + }`,`${At}(${wA})`},indices:lA,indicesGet:LA,indicesSet:(wA,UA,At)=>E<2?`${wA}=${At};`:`${rt(wA,UA,E)}=${At};`,set:(...wA)=>{if(wA.length!==E+1)throw new Error(`indices length must be ${E}`);let UA=wA[E];if(typeof UA!="string")throw new Error("value must be string");let At=wA.slice(0,E).map(oe).join(",");return E===0?ht("0u",UA):E===1?ht(At[0],UA):(de.set=!0,de.setByIndices=!0,de.indicesToOffset=!0,`set_${i}(${At}, ${UA})`)},setByOffset:ht,setByIndices:(wA,UA)=>E<2?ht(wA,UA):(de.setByIndices=!0,de.indicesToOffset=!0,`set_${i}ByIndices(${wA}, ${UA});`),get:(...wA)=>{if(wA.length!==E)throw new Error(`indices length must be ${E}`);let UA=wA.map(oe).join(",");return E===0?pt("0u"):E===1?pt(UA[0]):(de.get=!0,de.getByIndices=!0,de.indicesToOffset=!0,`get_${i}(${UA})`)},getByOffset:pt,getByIndices:wA=>E<2?pt(wA):(de.getByIndices=!0,de.indicesToOffset=!0,`get_${i}ByIndices(${wA})`),usage:w,name:i,strides:Me,shape:ke,rank:E}},uA=(i,g,h,w=1)=>dr(i,g,h,"input",w),JA=(i,g,h,w=1)=>dr(i,g,h,"output",w),pa=(i,g,h)=>dr(i,g,h,"atomicOutput",1),Nr=(i,g,h,w=1)=>dr(i,g,h,"internal",w),Rr=class{constructor(i,g){this.normalizedDispatchGroup=i,this.limits=g,this.internalVariables=[],this.variables=[],this.uniforms=[],this.variableIndex=0}guardAgainstOutOfBoundsWorkgroupSizes(i){return`if (global_idx >= ${typeof i=="number"?`${i}u`:i}) { return; }`}mainStart(i=cr){let g=typeof i=="number"?i:i[0],h=typeof i=="number"?1:i[1],w=typeof i=="number"?1:i[2];if(g>this.limits.maxComputeWorkgroupSizeX||h>this.limits.maxComputeWorkgroupSizeY||w>this.limits.maxComputeWorkgroupSizeZ)throw new Error(`workgroup size [${g}, ${h}, ${w}] exceeds the maximum workgroup size [${this.limits.maxComputeWorkgroupSizeX}, ${this.limits.maxComputeWorkgroupSizeY}, ${this.limits.maxComputeWorkgroupSizeZ}].`);if(g*h*w>this.limits.maxComputeInvocationsPerWorkgroup)throw new Error(`workgroup size [${g}, ${h}, ${w}] exceeds the maximum workgroup invocations ${this.limits.maxComputeInvocationsPerWorkgroup}.`);let B=this.normalizedDispatchGroup[1]===1&&this.normalizedDispatchGroup[2]===1;return`@compute @workgroup_size(${g}, ${h}, ${w}) + fn main(${B?`@builtin(global_invocation_id) global_id : vec3, + @builtin(workgroup_id) workgroup_id : vec3, + @builtin(local_invocation_index) local_idx : u32, + @builtin(local_invocation_id) local_id : vec3`:`@builtin(global_invocation_id) global_id : vec3, + @builtin(local_invocation_id) local_id : vec3, + @builtin(local_invocation_index) local_idx : u32, + @builtin(workgroup_id) workgroup_id : vec3, + @builtin(num_workgroups) num_workgroups : vec3`}) { + ${B?`let global_idx = global_id.x; + let workgroup_index = workgroup_id.x;`:`let workgroup_index = workgroup_id.z * num_workgroups[0] * num_workgroups[1] + + workgroup_id.y * num_workgroups[0] + workgroup_id.x; + let global_idx = workgroup_index * ${g*h*w}u + local_idx;`} + `}appendVariableUniforms(i){i.rank!==0&&(i.shape.startsWith("uniforms.")&&this.uniforms.push({name:i.shape.replace("uniforms.",""),type:"u32",length:i.rank}),i.strides.startsWith("uniforms.")&&this.uniforms.push({name:i.strides.replace("uniforms.",""),type:"u32",length:i.rank}))}declareVariable(i,g){if(i.usage==="internal")throw new Error("cannot use internal variable with declareVariable(). use registerInternalVariables() instead.");this.variables.push(i),this.appendVariableUniforms(i);let h=i.usage==="input"?"read":"read_write",w=i.usage==="atomicOutput"?"atomic":i.type.storage;return`@group(0) @binding(${g}) var ${i.name}: array<${w}>;`}declareVariables(...i){return i.map(g=>this.declareVariable(g,this.variableIndex++)).join(` +`)}registerInternalVariable(i){if(i.usage!=="internal")throw new Error("cannot use input or output variable with registerInternalVariable(). use declareVariables() instead.");this.internalVariables.push(i),this.appendVariableUniforms(i)}registerInternalVariables(...i){return i.forEach(g=>this.registerInternalVariable(g)),this}registerUniform(i,g,h=1){return this.uniforms.push({name:i,type:g,length:h}),this}registerUniforms(i){return this.uniforms=this.uniforms.concat(i),this}uniformDeclaration(){if(this.uniforms.length===0)return"";let i=[];for(let{name:g,type:h,length:w}of this.uniforms)if(w&&w>4)h==="f16"?i.push(`@align(16) ${g}:array, ${Math.ceil(w/8)}>`):i.push(`${g}:array, ${Math.ceil(w/4)}>`);else{let B=w==null||w===1?h:`vec${w}<${h}>`;i.push(`${g}:${B}`)}return` + struct Uniforms { ${i.join(", ")} }; + @group(0) @binding(${this.variableIndex}) var uniforms: Uniforms;`}get additionalImplementations(){return this.uniformDeclaration()+this.variables.map(i=>i.impl()).join(` +`)+this.internalVariables.map(i=>i.impl()).join(` +`)}get variablesInfo(){if(this.uniforms.length===0)return;let i=g=>[12,10,1,6][["u32","f16","f32","i32"].indexOf(g)];return this.uniforms.map(g=>[i(g.type),g.length??1])}},Pr=(i,g)=>new Rr(i,g)}),ri=Pe(()=>{Dt(),St(),qr(),Rt(),Cr=(i,g)=>{if(!i||i.length!==1)throw new Error("Transpose requires 1 input.");if(g.length!==0&&g.length!==i[0].dims.length)throw new Error(`perm size ${g.length} does not match input rank ${i[0].dims.length}`)},Ut=(i,g)=>g.length!==0?g:[...new Array(i).keys()].reverse(),xr=(i,g)=>He.sortBasedOnPerm(i,Ut(i.length,g)),tn=(i,g,h,w)=>{let B=`fn perm(i: ${w.type.indices}) -> ${h.type.indices} { + var a: ${h.type.indices};`;for(let y=0;y{let h=[],w=[];for(let B=0;B{let h=0;for(let w=0;w{let h,w=i.dataType,B=i.dims.length,y=Ut(B,g),E=xr(i.dims,y),F=i.dims,N=E;if(B<2||Sn(y,i.dims))return h=oe=>{let de=uA("input",w,F,4),fe=JA("output",w,N,4);return` + ${oe.registerUniform("output_size","u32").declareVariables(de,fe)} + ${oe.mainStart()} + ${oe.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + output[global_idx] = input[global_idx]; + }`},{name:"TransposeCopy",shaderCache:{inputDependencies:["type"]},getRunData:()=>{let oe=He.size(E);return{outputs:[{dims:E,dataType:i.dataType}],dispatchGroup:{x:Math.ceil(oe/64/4)},programUniforms:[{type:12,data:Math.ceil(oe/4)}]}},getShaderSource:h};let{newShape:Y,newPerm:te}=Ya(i.dims,y),Q=He.areEqual(te,[2,3,1]),ne=He.areEqual(te,[3,1,2]);if(Y.length===2||Q||ne){F=Q?[Y[0],Y[1]*Y[2]]:ne?[Y[0]*Y[1],Y[2]]:Y,N=[F[1],F[0]];let oe=16;return h=de=>{let fe=uA("a",w,F.length),ke=JA("output",w,N.length);return` + ${de.registerUniform("output_size","u32").declareVariables(fe,ke)} + var tile : array, ${oe}>; + ${de.mainStart([oe,oe,1])} + let stride = (uniforms.output_shape[1] - 1) / ${oe} + 1; + let workgroup_id_x = workgroup_index % stride; + let workgroup_id_y = workgroup_index / stride; + let input_col = workgroup_id_y * ${oe}u + local_id.x; + let input_row = workgroup_id_x * ${oe}u + local_id.y; + if (input_row < uniforms.a_shape[0] && input_col < uniforms.a_shape[1]) { + tile[local_id.y][local_id.x] = ${fe.getByIndices(`${fe.type.indices}(input_row, input_col)`)}; + } + workgroupBarrier(); + + let output_col = workgroup_id_x * ${oe}u + local_id.x; + let output_row = workgroup_id_y * ${oe}u + local_id.y; + if (output_row < uniforms.output_shape[0] && output_col < uniforms.output_shape[1]) { + ${ke.setByIndices(`${ke.type.indices}(output_row, output_col)`,"tile[local_id.x][local_id.y]")} + } + }`},{name:"TransposeShared",shaderCache:{inputDependencies:["type"]},getRunData:()=>{let de=He.size(E);return{outputs:[{dims:E,dataType:i.dataType}],dispatchGroup:{x:Math.ceil(N[1]/oe),y:Math.ceil(N[0]/oe)},programUniforms:[{type:12,data:de},...KA(F,N)]}},getShaderSource:h}}return h=oe=>{let de=uA("a",w,F.length),fe=JA("output",w,N.length);return` + ${oe.registerUniform("output_size","u32").declareVariables(de,fe)} + + ${tn(y,B,de,fe)} + + ${oe.mainStart()} + ${oe.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + + let indices = ${fe.offsetToIndices("global_idx")}; + let aIndices = perm(indices); + + ${fe.setByOffset("global_idx",de.getByIndices("aIndices"))} + }`},{name:"Transpose",shaderCache:{hint:`${g}`,inputDependencies:["rank"]},getRunData:()=>{let oe=He.size(E);return{outputs:[{dims:E,dataType:i.dataType}],dispatchGroup:{x:Math.ceil(oe/64)},programUniforms:[{type:12,data:oe},...KA(F,N)]}},getShaderSource:h}},Nn=(i,g)=>{Cr(i.inputs,g.perm),i.compute(Ma(i.inputs[0],g.perm))},Gt=i=>$e({perm:i.perm})}),lc=Pe(()=>{Dt(),St(),Rt(),n1(),ri(),ea={max:"select(bestValue, candidate, candidate > bestValue)",min:"select(bestValue, candidate, candidate < bestValue)",mean:"bestValue + candidate",sum:"bestValue + candidate",prod:"bestValue * candidate",sumSquare:"bestValue + candidate * candidate",logSumExp:"bestValue + exp(candidate)",l1:"bestValue + abs(candidate)",l2:"bestValue + candidate * candidate",logSum:"bestValue + candidate"},Wa={max:"select(bestValue, candidate, candidate > bestValue)",min:"select(bestValue, candidate, candidate < bestValue)",mean:"bestValue + candidate",sum:"bestValue + candidate",prod:"bestValue * candidate",sumSquare:"bestValue + candidate",logSumExp:"bestValue + candidate",l1:"bestValue + candidate",l2:"bestValue + candidate",logSum:"bestValue + candidate"},s0={max:"_A[offset]",min:"_A[offset]",mean:"0",sum:"0",prod:"1",sumSquare:"0",logSumExp:"0",l1:"0",l2:"0",logSum:"0"},n0={max:"bestValue",min:"bestValue",sum:"bestValue",prod:"bestValue",sumSquare:"bestValue",logSumExp:"log(bestValue)",l1:"bestValue",l2:"sqrt(bestValue)",logSum:"log(bestValue)"},i0=(i,g)=>{let h=[];for(let w=g-i;w{let h=[],w=i.length;for(let y=0;yi[y]);return[h,B]},rn=(i,g)=>{let h=i.length+g.length,w=[],B=0;for(let y=0;y{for(let h=0;h{let h=[];if(!Rs(i,g)){for(let w=0;wh.push(w))}return h},On=(i,g,h,w,B,y,E)=>{let F=h[0].dims,N=He.size(y),Y=He.size(E),te=uA("_A",h[0].dataType,F),Q=JA("output",B,y),ne=64;N===1&&(ne=256);let oe=` + var aBestValues : array; + `;return{name:i,shaderCache:{hint:`${g};${ne}`,inputDependencies:["type"]},getShaderSource:de=>` + ${de.registerUniform("reduceSize","u32").declareVariables(te,Q)} + ${oe} + fn DIV_CEIL(a : u32, b : u32) -> u32 { + return ((a - 1u) / b + 1u); + } + ${de.mainStart(ne)} + + let outputIndex = global_idx / ${ne}; + let offset = outputIndex * uniforms.reduceSize; + + var bestValue = f32(${s0[w]}); + let Length = uniforms.reduceSize; + for (var k = local_idx; k < Length; k = k + ${ne}) { + let candidate = f32(${te.getByOffset("offset + k")}); + bestValue = ${ea[w]}; + } + aBestValues[local_idx] = bestValue; + workgroupBarrier(); + + var reduceSize = min(Length, ${ne}u); + for (var currentSize = reduceSize / 2u; reduceSize > 1u; + currentSize = reduceSize / 2u) { + let interval = DIV_CEIL(reduceSize, 2u); + if (local_idx < currentSize) { + let candidate = aBestValues[local_idx + interval]; + bestValue = ${Wa[w]}; + aBestValues[local_idx] = bestValue; + } + reduceSize = interval; + workgroupBarrier(); + } + + if (local_idx == 0u) { + ${Q.setByOffset("outputIndex",w==="mean"?`${Q.type.storage}(bestValue / f32(uniforms.reduceSize))`:`${Q.type.storage}(${n0[w]})`)}; + } + }`,getRunData:()=>({outputs:[{dims:y,dataType:B}],dispatchGroup:{x:N},programUniforms:[{type:12,data:Y}]})}},Qa=(i,g,h,w)=>{let B=i.inputs.length===1?h:wn(i.inputs,h),y=B.axes;y.length===0&&!B.noopWithEmptyAxes&&(y=i.inputs[0].dims.map((oe,de)=>de));let E=He.normalizeAxes(y,i.inputs[0].dims.length),F=E,N=i.inputs[0],Y=l0(F,i.inputs[0].dims.length);Y.length>0&&(N=i.compute(Ma(i.inputs[0],Y),{inputs:[0],outputs:[-1]})[0],F=i0(F.length,N.dims.length));let[te,Q]=o0(N.dims,F),ne=te;B.keepDims&&(ne=rn(te,E)),i.compute(On(g,B.cacheKey,[N],w,i.inputs[0].dataType,ne,Q),{inputs:[N]})},Kr=(i,g)=>{Qa(i,"ReduceMeanShared",g,"mean")},qA=(i,g)=>{Qa(i,"ReduceL1Shared",g,"l1")},Ga=(i,g)=>{Qa(i,"ReduceL2Shared",g,"l2")},di=(i,g)=>{Qa(i,"ReduceLogSumExpShared",g,"logSumExp")},Ln=(i,g)=>{Qa(i,"ReduceMaxShared",g,"max")},fi=(i,g)=>{Qa(i,"ReduceMinShared",g,"min")},c0=(i,g)=>{Qa(i,"ReduceProdShared",g,"prod")},u0=(i,g)=>{Qa(i,"ReduceSumShared",g,"sum")},pi=(i,g)=>{Qa(i,"ReduceSumSquareShared",g,"sumSquare")},j0=(i,g)=>{Qa(i,"ReduceLogSumShared",g,"logSum")}}),n1=Pe(()=>{Dt(),St(),qr(),Rt(),lc(),Ta=i=>{if(!i||i.length===0||i.length>2)throw new Error("Reduce op requires 1 or 2 inputs.");if(i.length===2&&i[1].dims.length!==1)throw new Error("Invalid axes input dims.")},rr=i=>["","",`var value = ${i.getByIndices("input_indices")};`,""],In=(i,g,h,w,B,y,E=!1,F=!1)=>{let N=[],Y=h[0].dims,te=Y.length,Q=He.normalizeAxes(B,te),ne=!F&&Q.length===0;Y.forEach((fe,ke)=>{ne||Q.indexOf(ke)>=0?E&&N.push(1):N.push(fe)});let oe=N.length,de=He.size(N);return{name:i,shaderCache:g,getShaderSource:fe=>{let ke=[],Me=uA("_A",h[0].dataType,te),De=JA("output",y,oe),Le=w(Me,De,Q),Xe=Le[2];for(let _e=0,lA=0;_e=0?(E&&lA++,Xe=`for(var j${_e}: u32 = 0; j${_e} < ${Y[_e]}; j${_e}++) { + ${Le[2].includes("last_index")?`let last_index = j${_e};`:""} + ${Me.indicesSet("input_indices",_e,`j${_e}`)} + ${Xe} + }`):(ke.push(`${Me.indicesSet("input_indices",_e,De.indicesGet("output_indices",lA))};`),lA++);return` + + ${fe.registerUniform("output_size","u32").declareVariables(Me,De)} + + ${fe.mainStart()} + ${fe.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + var input_indices: ${Me.type.indices}; + let output_indices = ${De.offsetToIndices("global_idx")}; + + ${ke.join(` +`)} + ${Le[0]} // init ops for reduce max/min + ${Le[1]} + ${Xe} + ${Le[3]} + ${Le.length===4?De.setByOffset("global_idx","value"):Le.slice(4).join(` +`)} + }`},getRunData:()=>({outputs:[{dims:N,dataType:y}],dispatchGroup:{x:Math.ceil(de/64)},programUniforms:[{type:12,data:de},...KA(Y,N)]})}},wn=(i,g)=>{let h=[];return i[1].dims[0]>0&&i[1].getBigInt64Array().forEach(w=>h.push(Number(w))),$e({axes:h,keepDims:g.keepDims,noopWithEmptyAxes:g.noopWithEmptyAxes})},ka=(i,g,h,w)=>{let B=i.inputs,y=B.length===1?h:wn(B,h);i.compute(In(g,{hint:y.cacheKey,inputDependencies:["rank"]},[B[0]],y.noopWithEmptyAxes&&y.axes.length===0?rr:w,y.axes,B[0].dataType,y.keepDims,y.noopWithEmptyAxes),{inputs:[0]})},Ws=(i,g)=>{Ta(i.inputs),ka(i,"ReduceLogSum",g,(h,w)=>[`var value = ${w.type.storage}(0);`,"",`value += ${h.getByIndices("input_indices")};`,"value = log(value);"])},as=(i,g)=>{Ta(i.inputs),ka(i,"ReduceL1",g,(h,w)=>[`var value = ${w.type.storage}(0);`,"",`value += abs(${h.getByIndices("input_indices")});`,""])},hi=(i,g)=>{Ta(i.inputs),ka(i,"ReduceL2",g,(h,w)=>[`var t = ${w.type.value}(0); var value = ${w.type.value}(0);`,"",`t = ${h.getByIndices("input_indices")}; value += (t * t);`,"value = sqrt(value);"])},mi=(i,g)=>{Ta(i.inputs),ka(i,"ReduceLogSumExp",g,(h,w)=>[`var value = ${w.type.storage}(0);`,"",`value += exp(${h.getByIndices("input_indices")});`,"value = log(value);"])},Vs=(i,g)=>{Ta(i.inputs),ka(i,"ReduceMax",g,(h,w,B)=>{let y=[];for(let E=0;E=0||B.length===0)&&y.push(h.indicesSet("input_indices",E,0));return[`${y.join(` +`)}`,`var value = ${h.getByIndices("input_indices")};`,`value = max(value, ${h.getByIndices("input_indices")});`,""]})},Ci=(i,g)=>{Ta(i.inputs),ka(i,"ReduceMean",g,(h,w,B)=>{let y=1;for(let E=0;E=0||B.length===0)&&(y*=i.inputs[0].dims[E]);return["var sum = f32(0);","",`sum += f32(${h.getByIndices("input_indices")});`,`let value = ${w.type.value}(sum / ${y});`]})},bi=(i,g)=>{Ta(i.inputs),ka(i,"ReduceMin",g,(h,w,B)=>{let y=[];for(let E=0;E=0||B.length===0)&&y.push(`input_indices[${E}] = 0;`);return[`${y.join(` +`)}`,`var value = ${h.getByIndices("input_indices")};`,`value = min(value, ${h.getByIndices("input_indices")});`,""]})},Ii=(i,g)=>{Ta(i.inputs),ka(i,"ReduceProd",g,(h,w)=>[`var value = ${w.type.storage}(1);`,"",`value *= ${h.getByIndices("input_indices")};`,""])},DA=(i,g)=>{Ta(i.inputs),ka(i,"ReduceSum",g,(h,w)=>[`var value = ${w.type.storage}(0);`,"",`value += ${h.getByIndices("input_indices")};`,""])},js=(i,g)=>{Ta(i.inputs),ka(i,"ReduceSumSquare",g,(h,w)=>[`var t = ${w.type.value}(0); var value = ${w.type.value}(0);`,"",`t = ${h.getByIndices("input_indices")}; value += t * t;`,""])},RA=(i,g,h)=>{if(g.length===0)return h;let w=1,B=1;for(let y=0;y1024},wi=(i,g)=>{RA(i.inputs[0].dims,g.axes,g.noopWithEmptyAxes)?Ci(i,g):Kr(i,g)},Yn=(i,g)=>{RA(i.inputs[0].dims,g.axes,g.noopWithEmptyAxes)?as(i,g):qA(i,g)},xa=(i,g)=>{RA(i.inputs[0].dims,g.axes,g.noopWithEmptyAxes)?hi(i,g):Ga(i,g)},Pa=(i,g)=>{RA(i.inputs[0].dims,g.axes,g.noopWithEmptyAxes)?mi(i,g):di(i,g)},an=(i,g)=>{RA(i.inputs[0].dims,g.axes,g.noopWithEmptyAxes)?Vs(i,g):Ln(i,g)},kn=(i,g)=>{RA(i.inputs[0].dims,g.axes,g.noopWithEmptyAxes)?bi(i,g):fi(i,g)},ki=(i,g)=>{RA(i.inputs[0].dims,g.axes,g.noopWithEmptyAxes)?Ii(i,g):c0(i,g)},zr=(i,g)=>{RA(i.inputs[0].dims,g.axes,g.noopWithEmptyAxes)?DA(i,g):u0(i,g)},g0=(i,g)=>{RA(i.inputs[0].dims,g.axes,g.noopWithEmptyAxes)?js(i,g):pi(i,g)},d0=(i,g)=>{RA(i.inputs[0].dims,g.axes,g.noopWithEmptyAxes)?Ws(i,g):j0(i,g)}}),cc=Pe(()=>{Dt(),qr(),n1(),vs=i=>{if(!i||i.length===0||i.length>2)throw new Error("ArgMinMaxOp op requires 1 or 2 inputs.");if(i[0].dataType!==1)throw new Error("Invalid input type.")},sn=(i,g)=>{vs(i.inputs),i.compute(In("ArgMin",{hint:g.cacheKey,inputDependencies:["rank"]},[i.inputs[0]],(h,w,B)=>{let y=[];for(let E=0;E=0||B.length===0)&&y.push(`input_indices[${E}] = 0;`);return[`${y.join(` +`)}`,`var value = ${h.getByIndices("input_indices")}; +var best_index : i32 = 0;`,`if (${h.getByIndices("input_indices")} ${g.selectLastIndex>0?"<=":"<"} value) { + value = ${h.getByIndices("input_indices")}; + best_index = i32(last_index); + }`,"",w.setByOffset("global_idx","best_index")]},[g.axis],7,g.keepDims),{inputs:[0]})},f0=(i,g)=>{vs(i.inputs),i.compute(In("argMax",{hint:g.cacheKey,inputDependencies:["rank"]},[i.inputs[0]],(h,w,B)=>{let y=[];for(let E=0;E=0||B.length===0)&&y.push(`input_indices[${E}] = 0;`);return[`${y.join(` +`)}`,`var value = ${h.getByIndices("input_indices")}; +var best_index : i32 = 0;`,`if (${h.getByIndices("input_indices")} ${g.selectLastIndex>0?">=":">"} value) { + value = ${h.getByIndices("input_indices")}; + best_index = i32(last_index); + }`,"",w.setByOffset("global_idx","best_index")]},[g.axis],7,g.keepDims),{inputs:[0]})},Hn=i=>$e(i)}),i1=Pe(()=>{Dt(),St(),s1(),Rt(),nn=(i,g)=>{let h=i[0],w=i[1],B=i[2],y=i[3],E=i[4],F=i[5];if(E&&F)throw new Error("Attention cannot have both past and attention_bias");if(h.dims.length!==3)throw new Error('Input "input" must have 3 dimensions');let N=h.dims[0],Y=h.dims[1],te=h.dims[2];if(B.dims.length!==1)throw new Error('Input "bias" is expected to have 1 dimensions');if(w.dims.length!==2)throw new Error('Input "weights" is expected to have 2 dimensions');if(w.dims[0]!==te)throw new Error("Input 1 dimension 0 should have same length as dimension 2 of input 0");if(B.dims[0]!==w.dims[1])throw new Error('Input "bias" dimension 0 should have same length as dimension 1 of input "weights"');let Q=B.dims[0]/3,ne=Q,oe=ne;if(g.qkvHiddenSizes.length>0){if(g.qkvHiddenSizes.length!==3)throw new Error("qkv_hidden_sizes attribute should have 3 elements");for(let Me of g.qkvHiddenSizes)if(Me%g.numHeads!=0)throw new Error("qkv_hidden_sizes should be divisible by num_heads");Q=g.qkvHiddenSizes[0],ne=g.qkvHiddenSizes[1],oe=g.qkvHiddenSizes[2]}let de=Y;if(Q!==ne)throw new Error("qkv_hidden_sizes first element should be same as the second");if(B.dims[0]!==Q+ne+oe)throw new Error('Input "bias" dimension 0 should have same length as sum of Q/K/V hidden sizes');let fe=0;if(E){if(ne!==oe)throw new Error('Input "past" expect k_hidden_size == v_hidden_size');if(E.dims.length!==5)throw new Error('Input "past" must have 5 dimensions');if(E.dims[0]!==2)throw new Error('Input "past" first dimension must be 2');if(E.dims[1]!==N)throw new Error('Input "past" second dimension must be batch_size');if(E.dims[2]!==g.numHeads)throw new Error('Input "past" third dimension must be num_heads');if(E.dims[4]!==ne/g.numHeads)throw new Error('Input "past" fifth dimension must be k_hidden_size / num_heads');g.pastPresentShareBuffer||(fe=E.dims[3])}let ke=de+fe;if(y)throw new Error("Mask not supported");if(E)throw new Error("past is not supported");if(F){if(F.dims.length!==4)throw new Error('Input "attention_bias" must have 4 dimensions');if(F.dims[0]!==N||F.dims[1]!==g.numHeads||F.dims[2]!==Y||F.dims[3]!==ke)throw new Error('Expect "attention_bias" shape (batch_size, num_heads, sequence_length, total_sequence_length)')}return{batchSize:N,sequenceLength:Y,pastSequenceLength:fe,kvSequenceLength:de,totalSequenceLength:ke,maxSequenceLength:-1,inputHiddenSize:te,hiddenSize:Q,vHiddenSize:oe,headSize:Math.floor(Q/g.numHeads),vHeadSize:Math.floor(oe/g.numHeads),numHeads:g.numHeads,isUnidirectional:!1,pastPresentShareBuffer:!1,maskFilterValue:g.maskFilterValue,maskType:0,scale:g.scale,broadcastResPosBias:!1,passPastInKv:!1,qkvFormat:1}},HA=(i,g,h)=>g&&i?` + let total_sequence_length_input = u32(${g.getByOffset("0")}); + let present_sequence_length = max(total_sequence_length_input, uniforms.past_sequence_length); + let is_subsequent_prompt: bool = sequence_length > 1 && sequence_length != total_sequence_length_input; + let is_first_prompt: bool = is_subsequent_prompt == false && sequence_length == total_sequence_length_input; + total_sequence_length = u32(${i?.getByOffset("batchIdx")}) + 1; + var past_sequence_length: u32 = 0; + if (is_first_prompt == false) { + past_sequence_length = total_sequence_length - sequence_length; + } + `:` + ${h?"let past_sequence_length = uniforms.past_sequence_length":""}; + let present_sequence_length = total_sequence_length; + `,Ja=(i,g,h,w,B,y,E,F)=>{let N=Jt(E?1:y),Y=64,te=y/N;te{let Me=JA("x",i.dataType,i.dims,N),De=[Me],Le=E?uA("seq_lens",E.dataType,E.dims):void 0;Le&&De.push(Le);let Xe=F?uA("total_sequence_length_input",F.dataType,F.dims):void 0;Xe&&De.push(Xe);let _e=jA(i.dataType);return` + var thread_max: array; + var thread_sum: array; + ${ke.registerUniforms([{name:"batch_size",type:"u32"},{name:"num_heads",type:"u32"},{name:"past_sequence_length",type:"u32"},{name:"sequence_length",type:"u32"},{name:"total_sequence_length",type:"u32"},{name:"elements_per_thread",type:"u32"}]).declareVariables(...De)} + ${ke.mainStart([Y,1,1])} + let batchIdx = workgroup_id.z / uniforms.num_heads; + let headIdx = workgroup_id.z % uniforms.num_heads; + let sequence_length = uniforms.sequence_length; + var total_sequence_length = uniforms.total_sequence_length; + ${HA(Le,Xe,!1)} + let local_offset = local_idx * uniforms.elements_per_thread; + let offset = (global_idx / ${Y}) * uniforms.total_sequence_length + local_offset; + let seq_causal_length = ${E?"u32(past_sequence_length + workgroup_id.y + 1)":"total_sequence_length"}; + var thread_max_vector = ${de}(-3.402823e+38f); + for (var i: u32 = 0; i < uniforms.elements_per_thread && i + local_offset < seq_causal_length; i++) { + thread_max_vector = max(${de}(x[offset + i]), thread_max_vector); + } + thread_max[local_idx] = ${(()=>{switch(N){case 1:return"thread_max_vector";case 2:return"max(thread_max_vector.x, thread_max_vector.y)";case 4:return"max(max(thread_max_vector.x, thread_max_vector.y), max(thread_max_vector.z, thread_max_vector.w))";default:throw new Error(`Unsupported components: ${N}`)}})()}; + workgroupBarrier(); + + var max_value = f32(-3.402823e+38f); + for (var i = 0u; i < ${Y}; i++) { + max_value = max(thread_max[i], max_value); + } + + var sum_vector = ${de}(0); + for (var i: u32 = 0; i < uniforms.elements_per_thread && i + local_offset < seq_causal_length; i++) { + sum_vector += exp(${de}(x[offset + i]) - max_value); + } + thread_sum[local_idx] = ${(()=>{switch(N){case 1:return"sum_vector";case 2:return"sum_vector.x + sum_vector.y";case 4:return"sum_vector.x + sum_vector.y + sum_vector.z + sum_vector.w";default:throw new Error(`Unsupported components: ${N}`)}})()}; + workgroupBarrier(); + + var sum: f32 = 0; + for (var i = 0u; i < ${Y}; i++) { + sum += thread_sum[i]; + } + + if (sum == 0) { + for (var i: u32 = 0; i < uniforms.elements_per_thread && i + local_offset < seq_causal_length; i++) { + x[offset + i] = ${Me.type.value}(${_e}(1.0) / ${_e}(seq_causal_length)); + } + } else { + for (var i: u32 = 0; i < uniforms.elements_per_thread && i + local_offset < seq_causal_length; i++) { + var f32input = ${de}(x[offset + i]); + x[offset + i] = ${Me.type.value}(exp(f32input - max_value) / sum); + } + } + ${E?` + for (var total_seq_id: u32 = seq_causal_length; total_seq_id + local_offset < uniforms.total_sequence_length; total_seq_id++) { + x[offset + total_seq_id] = ${Me.type.value}(${_e}(0)); + }`:""}; + }`},getRunData:()=>({outputs:[],dispatchGroup:{x:Math.ceil(y/Y),y:B,z:g*h},programUniforms:ne})}},xi=(i,g,h,w,B,y,E,F,N)=>{let Y=E+y.kvSequenceLength,te=[y.batchSize,y.numHeads,y.sequenceLength,Y],Q=i>1&&w,ne=y.kvNumHeads?y.kvNumHeads:y.numHeads,oe=Q?[y.batchSize,ne,Y,y.headSize]:void 0,de=y.nReps?y.nReps:1,fe=y.scale===0?1/Math.sqrt(y.headSize):y.scale,ke=Jt(y.headSize),Me=y.headSize/ke,De=12,Le={x:Math.ceil(Y/De),y:Math.ceil(y.sequenceLength/De),z:y.batchSize*y.numHeads},Xe=[{type:12,data:y.sequenceLength},{type:12,data:Me},{type:12,data:Y},{type:12,data:y.numHeads},{type:12,data:y.headSize},{type:1,data:fe},{type:12,data:E},{type:12,data:y.kvSequenceLength},{type:12,data:de}],_e=Q&&w&&He.size(w.dims)>0,lA=["type","type"];_e&&lA.push("type"),B&&lA.push("type"),F&&lA.push("type"),N&&lA.push("type");let LA=[{dims:te,dataType:g.dataType,gpuDataType:0}];return Q&&LA.push({dims:oe,dataType:g.dataType,gpuDataType:0}),{name:"AttentionProbs",shaderCache:{hint:`${ke};${B!==void 0};${w!==void 0};${i}`,inputDependencies:lA},getRunData:()=>({outputs:LA,dispatchGroup:Le,programUniforms:Xe}),getShaderSource:st=>{let ht=uA("q",g.dataType,g.dims,ke),pt=[ht,uA("key",h.dataType,h.dims,ke)];if(_e){let UA=uA("past_key",w.dataType,w.dims,ke);pt.push(UA)}B&&pt.push(uA("attention_bias",B.dataType,B.dims));let mt=F?uA("seq_lens",F.dataType,F.dims):void 0;mt&&pt.push(mt);let yt=N?uA("total_sequence_length_input",N.dataType,N.dims):void 0;yt&&pt.push(yt);let tt=JA("output",g.dataType,te),lt=[tt];Q&<.push(JA("present_key",g.dataType,oe,ke));let wA=jA(1,ke);return` + const TILE_SIZE = 12u; + + var tileQ: array<${ht.type.storage}, 144>; + var tileK: array<${ht.type.storage}, 144>; + ${st.registerUniforms([{name:"M",type:"u32"},{name:"K",type:"u32"},{name:"N",type:"u32"},{name:"num_heads",type:"u32"},{name:"head_size",type:"u32"},{name:"alpha",type:"f32"},{name:"past_sequence_length",type:"u32"},{name:"kv_sequence_length",type:"u32"},{name:"n_reps",type:"u32"}]).declareVariables(...pt,...lt)} + ${st.mainStart([De,De,1])} + // x holds the N and y holds the M + let headIdx = workgroup_id.z % uniforms.num_heads; + let kvHeadIdx = ${de===1?"headIdx":"headIdx / uniforms.n_reps"}; + let kv_num_heads = ${de===1?"uniforms.num_heads":"uniforms.num_heads / uniforms.n_reps"}; + let batchIdx = workgroup_id.z / uniforms.num_heads; + let m = workgroup_id.y * TILE_SIZE; + let n = workgroup_id.x * TILE_SIZE; + let sequence_length = uniforms.M; + var total_sequence_length = uniforms.N; + ${HA(mt,yt,!0)} + let absKvHeadIdx = batchIdx * kv_num_heads + kvHeadIdx; + let qOffset = workgroup_id.z * uniforms.M * uniforms.K + m * uniforms.K; + ${_e&&Q?"let pastKeyOffset = absKvHeadIdx * uniforms.past_sequence_length * uniforms.K;":""}; + let kOffset = absKvHeadIdx * uniforms.kv_sequence_length * uniforms.K; + ${Q?"let presentKeyOffset = absKvHeadIdx * uniforms.N * uniforms.K;":""} + var value = ${wA}(0); + for (var w: u32 = 0u; w < uniforms.K; w += TILE_SIZE) { + if (global_id.y < uniforms.M && w + local_id.x < uniforms.K) { + tileQ[TILE_SIZE * local_id.y + local_id.x] = q[qOffset + local_id.y * uniforms.K + w + local_id.x]; + } + if (n + local_id.y < uniforms.N && w + local_id.x < uniforms.K) { + var idx = TILE_SIZE * local_id.y + local_id.x; + ${_e&&Q?` + if (n + local_id.y < past_sequence_length) { + tileK[idx] = past_key[pastKeyOffset + (n + local_id.y) * uniforms.K + w + local_id.x]; + } else if (n + local_id.y - past_sequence_length < uniforms.kv_sequence_length) { + tileK[idx] = key[kOffset + (n + local_id.y - past_sequence_length) * uniforms.K + w + local_id.x]; + }`:` + if (n + local_id.y < uniforms.kv_sequence_length) { + tileK[idx] = key[kOffset + (n + local_id.y) * uniforms.K + w + local_id.x]; + }`} + ${Q?`if (n + local_id.y < present_sequence_length) { + present_key[presentKeyOffset + (n + local_id.y) * uniforms.K + w + local_id.x] = tileK[idx]; + }`:""} + } + workgroupBarrier(); + + for (var k: u32 = 0u; k < TILE_SIZE && w+k < uniforms.K; k++) { + value += ${wA}(tileQ[TILE_SIZE * local_id.y + k] * tileK[TILE_SIZE * local_id.x + k]); + } + + workgroupBarrier(); + } + + if (global_id.y < uniforms.M && global_id.x < total_sequence_length) { + let headOffset = workgroup_id.z * uniforms.M * uniforms.N; + let outputIdx = headOffset + global_id.y * uniforms.N + global_id.x; + var sum: f32 = ${(()=>{switch(ke){case 1:return"value";case 2:return"value.x + value.y";case 4:return"value.x + value.y + value.z + value.w";default:throw new Error(`Unsupported components: ${ke}`)}})()}; + output[outputIdx] = ${tt.type.value} (sum * uniforms.alpha) + ${B?"attention_bias[outputIdx]":"0.0"}; + } + }`}}},xn=(i,g,h,w,B,y,E=void 0,F=void 0)=>{let N=y+B.kvSequenceLength,Y=B.nReps?B.nReps:1,te=B.vHiddenSize*Y,Q=i>1&&w,ne=B.kvNumHeads?B.kvNumHeads:B.numHeads,oe=Q?[B.batchSize,ne,N,B.headSize]:void 0,de=[B.batchSize,B.sequenceLength,te],fe=12,ke={x:Math.ceil(B.vHeadSize/fe),y:Math.ceil(B.sequenceLength/fe),z:B.batchSize*B.numHeads},Me=[{type:12,data:B.sequenceLength},{type:12,data:N},{type:12,data:B.vHeadSize},{type:12,data:B.numHeads},{type:12,data:B.headSize},{type:12,data:te},{type:12,data:y},{type:12,data:B.kvSequenceLength},{type:12,data:Y}],De=Q&&w&&He.size(w.dims)>0,Le=["type","type"];De&&Le.push("type"),E&&Le.push("type"),F&&Le.push("type");let Xe=[{dims:de,dataType:g.dataType,gpuDataType:0}];return Q&&Xe.push({dims:oe,dataType:g.dataType,gpuDataType:0}),{name:"AttentionScore",shaderCache:{hint:`${w!==void 0};${i}`,inputDependencies:Le},getRunData:()=>({outputs:Xe,dispatchGroup:ke,programUniforms:Me}),getShaderSource:_e=>{let lA=uA("probs",g.dataType,g.dims),LA=[lA,uA("v",h.dataType,h.dims)];De&&LA.push(uA("past_value",w.dataType,w.dims));let st=E?uA("seq_lens",E.dataType,E.dims):void 0;E&&LA.push(st);let ht=F?uA("total_sequence_length_input",F.dataType,F.dims):void 0;F&&LA.push(ht);let pt=[JA("output",g.dataType,de)];return Q&&pt.push(JA("present_value",g.dataType,oe)),` + const TILE_SIZE = 12u; + var tileQ: array<${lA.type.value}, 144>; + var tileV: array<${lA.type.value}, 144>; + ${_e.registerUniforms([{name:"M",type:"u32"},{name:"K",type:"u32"},{name:"N",type:"u32"},{name:"num_heads",type:"u32"},{name:"head_size",type:"u32"},{name:"v_hidden_size",type:"u32"},{name:"past_sequence_length",type:"u32"},{name:"kv_sequence_length",type:"u32"},{name:"n_reps",type:"u32"}]).declareVariables(...LA,...pt)} + ${_e.mainStart([fe,fe,1])} + let headIdx = workgroup_id.z % uniforms.num_heads; + let batchIdx = workgroup_id.z / uniforms.num_heads; + let kvHeadIdx = ${Y===1?"headIdx":"headIdx / uniforms.n_reps"}; + let kv_num_heads = ${Y===1?"uniforms.num_heads":"uniforms.num_heads / uniforms.n_reps"}; + let m = global_id.y; + let n = global_id.x; + let sequence_length = uniforms.M; + var total_sequence_length = uniforms.K; + ${HA(st,ht,!0)} + let offsetA = workgroup_id.z * uniforms.M * uniforms.K + m * uniforms.K; + let absKvHeadIdx = batchIdx * kv_num_heads + kvHeadIdx; // kvHeadIdx is relative to the batch + ${De&&Q?"let pastValueOffset = absKvHeadIdx * uniforms.N * uniforms.past_sequence_length + n;":""}; + let vOffset = absKvHeadIdx * uniforms.N * uniforms.kv_sequence_length + n; + ${Q?"let presentValueOffset = absKvHeadIdx * uniforms.N * uniforms.K + n;":""} + var value = ${lA.type.storage}(0); + for (var w: u32 = 0u; w < uniforms.K; w += TILE_SIZE) { + if (m < uniforms.M && w + local_id.x < uniforms.K) { + tileQ[TILE_SIZE * local_id.y + local_id.x] = probs[offsetA + w + local_id.x]; + } + if (n < uniforms.N && w + local_id.y < uniforms.K) { + var idx = TILE_SIZE * local_id.y + local_id.x; + ${De&&Q?` + if (w + local_id.y < past_sequence_length) { + tileV[idx] = past_value[pastValueOffset + (w + local_id.y) * uniforms.N]; + } else if (w + local_id.y - past_sequence_length < uniforms.kv_sequence_length) { + tileV[idx] = v[vOffset + (w + local_id.y - past_sequence_length) * uniforms.N]; + } + `:` + if (w + local_id.y < uniforms.kv_sequence_length) { + tileV[idx] = v[vOffset + (w + local_id.y) * uniforms.N]; + }`} + ${Q?` + if (w + local_id.y < present_sequence_length) { + present_value[presentValueOffset + (w + local_id.y) * uniforms.N] = tileV[idx]; + }`:""} + } + workgroupBarrier(); + for (var k: u32 = 0u; k < TILE_SIZE && w+k < total_sequence_length; k++) { + value += tileQ[TILE_SIZE * local_id.y + k] * tileV[TILE_SIZE * k + local_id.x]; + } + workgroupBarrier(); + } + + // we need to transpose output from BNSH_v to BSND_v + if (m < uniforms.M && n < uniforms.N) { + let outputIdx = batchIdx * uniforms.M * uniforms.v_hidden_size + m * uniforms.v_hidden_size + + headIdx * uniforms.N + n; + output[outputIdx] = value; + } + }`}}},fs=(i,g,h,w,B,y,E,F,N,Y,te=void 0,Q=void 0)=>{let ne=Math.min(i.outputCount,1+(E?1:0)+(F?1:0)),oe=ne>1?Y.pastSequenceLength:0,de=oe+Y.kvSequenceLength,fe=N&&He.size(N.dims)>0?N:void 0,ke=[g,h];ne>1&&E&&He.size(E.dims)>0&&ke.push(E),fe&&ke.push(fe),te&&ke.push(te),Q&&ke.push(Q);let Me=i.compute(xi(ne,g,h,E,fe,Y,oe,te,Q),{inputs:ke,outputs:ne>1?[-1,1]:[-1]})[0];i.compute(Ja(Me,Y.batchSize,Y.numHeads,oe,Y.sequenceLength,de,te,Q),{inputs:te&&Q?[Me,te,Q]:[Me],outputs:[]});let De=[Me,w];ne>1&&F&&He.size(F.dims)>0&&De.push(F),te&&De.push(te),Q&&De.push(Q),i.compute(xn(ne,Me,w,F,Y,oe,te,Q),{inputs:De,outputs:ne>1?[0,2]:[0]})},Bi=(i,g)=>{let h=[g.batchSize,g.numHeads,g.sequenceLength,g.headSize],w=g.sequenceLength,B=g.inputHiddenSize,y=g.headSize,E=12,F={x:Math.ceil(g.headSize/E),y:Math.ceil(g.sequenceLength/E),z:g.batchSize*g.numHeads},N=[i.inputs[0],i.inputs[1],i.inputs[2]],Y=[{type:12,data:w},{type:12,data:B},{type:12,data:y},{type:12,data:g.numHeads},{type:12,data:g.headSize},{type:12,data:g.hiddenSize},{type:12,data:g.hiddenSize+g.hiddenSize+g.vHiddenSize}];return i.compute({name:"AttentionPrepare",shaderCache:{inputDependencies:["type","type","type"]},getRunData:()=>({outputs:[{dims:h,dataType:i.inputs[0].dataType,gpuDataType:0},{dims:h,dataType:i.inputs[0].dataType,gpuDataType:0},{dims:h,dataType:i.inputs[0].dataType,gpuDataType:0}],dispatchGroup:F,programUniforms:Y}),getShaderSource:te=>{let Q=JA("output_q",N[0].dataType,h),ne=JA("output_k",N[0].dataType,h),oe=JA("output_v",N[0].dataType,h),de=uA("input",N[0].dataType,N[0].dims),fe=uA("weight",N[1].dataType,N[1].dims),ke=uA("bias",N[2].dataType,N[2].dims),Me=de.type.storage;return` + const TILE_SIZE = 12u; + var tileInput: array<${Me}, 144>; + var tileWeightQ: array<${Me}, 144>; + var tileWeightK: array<${Me}, 144>; + var tileWeightV: array<${Me}, 144>; + ${te.registerUniforms([{name:"M",type:"u32"},{name:"K",type:"u32"},{name:"N",type:"u32"},{name:"num_heads",type:"u32"},{name:"head_size",type:"u32"},{name:"hidden_size",type:"u32"},{name:"ldb",type:"u32"}]).declareVariables(de,fe,ke,Q,ne,oe)} + ${te.mainStart([E,E,1])} + let batchIndex = workgroup_id.z / uniforms.num_heads; + let headNumber = workgroup_id.z % uniforms.num_heads; + let m = global_id.y; + let n = global_id.x; + + let inputOffset = batchIndex * (uniforms.M * uniforms.K) + m * uniforms.K; + let biasOffsetQ = headNumber * uniforms.head_size; + let biasOffsetK = uniforms.hidden_size + biasOffsetQ; + let biasOffsetV = uniforms.hidden_size + biasOffsetK; + + var valueQ = ${Me}(0); + var valueK = ${Me}(0); + var valueV = ${Me}(0); + for (var w: u32 = 0u; w < uniforms.K; w += TILE_SIZE) { + if (m < uniforms.M && w + local_id.x < uniforms.K) { + tileInput[TILE_SIZE * local_id.y + local_id.x] = input[inputOffset + w + local_id.x]; + } + if (n < uniforms.N && w + local_id.y < uniforms.K) { + let offset = n + (w + local_id.y) * uniforms.ldb; + tileWeightQ[TILE_SIZE * local_id.y + local_id.x] = weight[biasOffsetQ + offset]; + tileWeightK[TILE_SIZE * local_id.y + local_id.x] = weight[biasOffsetK + offset]; + tileWeightV[TILE_SIZE * local_id.y + local_id.x] = weight[biasOffsetV + offset]; + } + workgroupBarrier(); + for (var k: u32 = 0u; k{let h=nn(i.inputs,g),[w,B,y]=Bi(i,h);return fs(i,w,B,y,i.inputs[4],void 0,void 0,void 0,i.inputs[5],h)}}),uc=Pe(()=>{dA(),Dt(),St(),qr(),Rt(),h0=(i,g)=>{if(!i||i.length!==5)throw new Error("BatchNormalization requires 5 inputs");let h=(w,B,y)=>{let E=B.length;if(E!==w.length)throw new Error(`${y}: num dimensions != ${E}`);B.forEach((F,N)=>{if(F!==w[N])throw new Error(`${y}: dim[${N}] do not match`)})};if(i[0].dims.length>1){let w=g.format==="NHWC"?g.spatial?i[0].dims.slice(-1):i[0].dims.slice(-1).concat(i[0].dims.slice(1,i[0].dims.length-1)):i[0].dims.slice(1,g.spatial?2:void 0);h(i[1].dims,w,"Invalid input scale"),h(i[2].dims,w,"Invalid input B"),h(i[3].dims,w,"Invalid input mean"),h(i[4].dims,w,"Invalid input var")}else h(i[1].dims,[1],"Invalid input scale"),h(i[2].dims,[1],"Invalid input B"),h(i[3].dims,[1],"Invalid input mean"),h(i[4].dims,[1],"Invalid input var")},Rn=(i,g)=>{let{epsilon:h,spatial:w,format:B}=g,y=i[0].dims,E=w?Jt(y[y.length-1]):1,F=B==="NHWC"&&y.length>1?E:1,N=He.size(y)/E,Y=w,te=Y?y.length:y,Q=uA("x",i[0].dataType,i[0].dims,E),ne=uA("scale",i[1].dataType,i[1].dims,F),oe=uA("bias",i[2].dataType,i[2].dims,F),de=uA("inputMean",i[3].dataType,i[3].dims,F),fe=uA("inputVar",i[4].dataType,i[4].dims,F),ke=JA("y",i[0].dataType,te,E);return{name:"BatchNormalization",shaderCache:{hint:`${g.epsilon}_${g.format}_${w}_${E}`,inputDependencies:Y?["rank","type","type","type","type"]:void 0},getShaderSource:Me=>` + const epsilon = ${h}; + ${Me.registerUniform("outputSize","u32").declareVariables(Q,ne,oe,de,fe,ke)} + ${Me.mainStart()} + ${Me.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + var outputIndices = ${ke.offsetToIndices(`global_idx * ${E}`)}; + ${(()=>{let De="";if(w)De=`let cOffset = ${y.length===1?"0u":B==="NHWC"?`outputIndices[${y.length-1}] / ${E}`:"outputIndices[1]"};`;else if(B==="NCHW")De=` + ${ke.indicesSet("outputIndices","0","0")} + let cOffset = ${ke.indicesToOffset("outputIndices")};`;else{De=`var cIndices = ${ne.type.indices}(0); + cIndices[0] = outputIndices[${y.length-1}];`;for(let Le=1;Le({outputs:[{dims:i[0].dims,dataType:i[0].dataType}],dispatchGroup:{x:Math.ceil(N/64)},programUniforms:Y?[{type:12,data:N},...KA(y)]:[{type:12,data:N}]})}},m0=i=>$e(i),C0=(i,g)=>{let{inputs:h,outputCount:w}=i,B=m0({...g,outputCount:w});if(X.webgpu.validateInputContent&&h0(h,B),g.trainingMode)throw new Error("BatchNormalization trainingMode is not supported yet.");i.compute(Rn(h,B))}}),gc=Pe(()=>{St(),Rt(),Or=i=>{if(i[0].dims.length!==3)throw new Error("input should have 3 dimensions");if(![320,640,1280].includes(i[0].dims[2]))throw new Error("number of channels should be 320, 640 or 1280");if(i[1].dims.length!==1)throw new Error("bias is expected to have 1 dimensions");if(i[0].dims[2]!==i[1].dims[0])throw new Error("last dimension of input and bias are not the same")},b0=i=>{let g=i[0].dims,h=i[0].dims[2],w=He.size(g)/4,B=i[0].dataType,y=uA("input",B,g,4),E=uA("bias",B,[h],4),F=uA("residual",B,g,4),N=JA("output",B,g,4);return{name:"BiasAdd",getRunData:()=>({outputs:[{dims:g,dataType:i[0].dataType}],dispatchGroup:{x:Math.ceil(w/64)}}),getShaderSource:Y=>` + const channels = ${h}u / 4; + ${Y.declareVariables(y,E,F,N)} + + ${Y.mainStart()} + ${Y.guardAgainstOutOfBoundsWorkgroupSizes(w)} + let value = ${y.getByOffset("global_idx")} + + ${E.getByOffset("global_idx % channels")} + ${F.getByOffset("global_idx")}; + ${N.setByOffset("global_idx","value")} + }`}},I0=i=>{Or(i.inputs),i.compute(b0(i.inputs))}}),o1=Pe(()=>{Dt(),St(),qr(),Rt(),It=(i,g,h,w,B,y,E)=>{let F=Math.ceil(g/4),N="";N=typeof B=="string"?`${B}(a)`:B("a");let Y=uA("inputData",h,[F],4),te=JA("outputData",w,[F],4),Q=[{name:"vec_size",type:"u32"}];return E&&Q.push(...E),` + ${i.registerUniforms(Q).declareVariables(Y,te)} + + ${y??""} + + ${i.mainStart()} + ${i.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")} + + let a = ${Y.getByOffset("global_idx")}; + ${te.setByOffset("global_idx",N)} + }`},Ht=(i,g,h,w,B,y=i.dataType,E,F)=>{let N=[{type:12,data:Math.ceil(He.size(i.dims)/4)}];return E&&N.push(...E),{name:g,shaderCache:{hint:B,inputDependencies:["type"]},getShaderSource:Y=>It(Y,He.size(i.dims),i.dataType,y,h,w,F),getRunData:Y=>({outputs:[{dims:i.dims,dataType:y}],dispatchGroup:{x:Math.ceil(He.size(Y[0].dims)/64/4)},programUniforms:N})}},yi=i=>{i.compute(Ht(i.inputs[0],"Abs","abs"))},ss=i=>{i.compute(Ht(i.inputs[0],"Acos","acos"))},w0=i=>{i.compute(Ht(i.inputs[0],"Acosh","acosh"))},Aa=i=>{i.compute(Ht(i.inputs[0],"Asin","asin"))},ps=i=>{i.compute(Ht(i.inputs[0],"Asinh","asinh"))},ta=i=>{i.compute(Ht(i.inputs[0],"Atan","atan"))},hs=i=>{i.compute(Ht(i.inputs[0],"Atanh","atanh"))},Wn=i=>$e(i),Ei=(i,g)=>{let h;switch(g.to){case 10:h="vec4";break;case 1:h="vec4";break;case 12:h="vec4";break;case 6:h="vec4";break;case 9:h="vec4";break;default:throw new RangeError(`not supported type (specified in attribute 'to' from 'Cast' operator): ${g.to}`)}i.compute(Ht(i.inputs[0],"Cast",h,void 0,g.cacheKey,g.to))},k0=i=>{let g,h,w=i.length>=2&&i[1].data!==0,B=i.length>=3&&i[2].data!==0;switch(i[0].dataType){case 1:g=w?i[1].getFloat32Array()[0]:-34028234663852886e22,h=B?i[2].getFloat32Array()[0]:34028234663852886e22;break;case 10:g=w?i[1].getUint16Array()[0]:64511,h=B?i[2].getUint16Array()[0]:31743;break;default:throw new Error("Unsupport data type")}return $e({min:g,max:h})},Vn=(i,g)=>{let h=g||k0(i.inputs),w=jA(i.inputs[0].dataType);i.compute(Ht(i.inputs[0],"Clip",B=>`clamp(${B}, vec4<${w}>(uniforms.min), vec4<${w}>(uniforms.max))`,void 0,h.cacheKey,void 0,[{type:i.inputs[0].dataType,data:h.min},{type:i.inputs[0].dataType,data:h.max}],[{name:"min",type:w},{name:"max",type:w}]),{inputs:[0]})},yr=i=>{i.compute(Ht(i.inputs[0],"Ceil","ceil"))},Bn=i=>{i.compute(Ht(i.inputs[0],"Cos","cos"))},vi=i=>{i.compute(Ht(i.inputs[0],"Cosh","cosh"))},ra=i=>$e(i),on=(i,g)=>{let h=jA(i.inputs[0].dataType);i.compute(Ht(i.inputs[0],"Elu",w=>`elu_vf32(${w})`,` + const elu_alpha_ = ${h}(${g.alpha}); + + fn elu_f32(a: ${h}) -> ${h} { + return select((exp(a) - 1.0) * elu_alpha_, a, a >= 0.0); + } + + fn elu_vf32(v: vec4<${h}>) -> vec4<${h}> { + return vec4(elu_f32(v.x), elu_f32(v.y), elu_f32(v.z), elu_f32(v.w)); + }`,g.cacheKey))},ms=(i="f32")=>` +const r0: ${i} = 0.3275911; +const r1: ${i} = 0.254829592; +const r2: ${i} = -0.284496736; +const r3: ${i} = 1.421413741; +const r4: ${i} = -1.453152027; +const r5: ${i} = 1.061405429; + +fn erf_vf32(v: vec4<${i}>) -> vec4<${i}> { + let absv = abs(v); + let x = 1.0 / (1.0 + r0 * absv); + return sign(v) * (1.0 - ((((r5 * x + r4) * x + r3) * x + r2) * x + r1) * x * exp(-absv * absv)); +}`,Mi=i=>{let g=jA(i.inputs[0].dataType);i.compute(Ht(i.inputs[0],"Erf",h=>`erf_vf32(${h})`,ms(g)))},Gi=i=>{i.compute(Ht(i.inputs[0],"Exp","exp"))},Di=i=>{i.compute(Ht(i.inputs[0],"Floor","floor"))},jn=i=>{let g=jA(i.inputs[0].dataType);i.compute(Ht(i.inputs[0],"Gelu",h=>`0.5 * ${h} * (1.0 + erf_vf32(${h} * 0.7071067811865475))`,ms(g)))},ns=(i,g)=>{let h=jA(i.inputs[0].dataType);i.compute(Ht(i.inputs[0],"LeakyRelu",w=>`select(leaky_relu_alpha_ * ${w}, ${w}, ${w} >= vec4<${h}>(0.0))`,`const leaky_relu_alpha_ = ${h}(${g.alpha});`,g.cacheKey))},Un=i=>{i.compute(Ht(i.inputs[0],"Not",g=>`!${g}`))},x0=i=>{i.compute(Ht(i.inputs[0],"Neg",g=>`-${g}`))},Qi=i=>{i.compute(Ht(i.inputs[0],"Reciprocal",g=>`1.0/${g}`))},Ti=i=>{let g=jA(i.inputs[0].dataType);i.compute(Ht(i.inputs[0],"Relu",h=>`select(vec4<${g}>(0.0), ${h}, ${h} > vec4<${g}>(0.0))`))},Cs=i=>{i.compute(Ht(i.inputs[0],"Sigmoid",g=>`(1.0 / (1.0 + exp(-${g})))`))},Kn=i=>$e(i),Lr=(i,g)=>{let h=jA(i.inputs[0].dataType);i.compute(Ht(i.inputs[0],"HardSigmoid",w=>`max(vec4<${h}>(0.0), min(vec4<${h}>(1.0), ${g.alpha} * ${w} + vec4<${h}>(${g.beta})))`,void 0,g.cacheKey))},Pi=i=>{i.compute(Ht(i.inputs[0],"Sin","sin"))},Zn=i=>{i.compute(Ht(i.inputs[0],"Sinh","sinh"))},yn=i=>{i.compute(Ht(i.inputs[0],"Sqrt","sqrt"))},za=i=>{i.compute(Ht(i.inputs[0],"Tan","tan"))},En=i=>`sign(${i}) * (1 - exp(-2 * abs(${i}))) / (1 + exp(-2 * abs(${i})))`,zi=i=>{i.compute(Ht(i.inputs[0],"Tanh",En))},_a=(i="f32")=>` +const fast_gelu_a: ${i} = 0.5; +const fast_gelu_b: ${i} = 0.7978845608028654; +const fast_gelu_c: ${i} = 0.035677408136300125; + +fn tanh_v(v: vec4<${i}>) -> vec4<${i}> { + return ${En("v")}; +} +`,Fi=i=>`(fast_gelu_a + fast_gelu_a * tanh_v(${i} * (fast_gelu_c * ${i} * ${i} + fast_gelu_b))) * ${i}`,Xn=i=>{let g=jA(i.inputs[0].dataType);i.compute(Ht(i.inputs[0],"FastGelu",Fi,_a(g),void 0,i.inputs[0].dataType))},Si=(i,g)=>{let h=jA(i.inputs[0].dataType);return i.compute(Ht(i.inputs[0],"ThresholdedRelu",w=>`select(vec4<${h}>(0.0), ${w}, ${w} > thresholded_relu_alpha_)`,`const thresholded_relu_alpha_ = vec4<${h}>(${g.alpha});`,g.cacheKey)),0},ln=i=>{i.compute(Ht(i.inputs[0],"Log","log"))},Ni=(i,g)=>` +const alpha = vec4<${i}>(${g}); +const one = ${i}(1.0); +const zero = ${i}(0.0); + +fn quick_gelu_impl(x: vec4<${i}>) -> vec4<${i}> { + let v = x *alpha; + var x1 : vec4<${i}>; + for (var i = 0; i < 4; i = i + 1) { + if (v[i] >= zero) { + x1[i] = one / (one + exp(-v[i])); + } else { + x1[i] = one - one / (one + exp(v[i])); + } + } + return x * x1; +} +`,B0=i=>`quick_gelu_impl(${i})`,y0=(i,g)=>{let h=jA(i.inputs[0].dataType);i.compute(Ht(i.inputs[0],"QuickGelu",B0,Ni(h,g.alpha),g.cacheKey,i.inputs[0].dataType))}}),dc=Pe(()=>{St(),Rt(),o1(),aa=i=>{if(i[0].dims.length!==3)throw new Error("input should have 3 dimensions");if(![2560,5120,10240].includes(i[0].dims[2]))throw new Error("hidden state should be 2560, 5120 or 10240");if(i[1].dims.length!==1)throw new Error("bias is expected to have 1 dimensions");if(i[0].dims[2]!==i[1].dims[0])throw new Error("last dimension of input and bias are not the same")},vn=i=>{let g=i[0].dims.slice();g[2]=g[2]/2;let h=uA("input",i[0].dataType,i[0].dims,4),w=uA("bias",i[0].dataType,[i[0].dims[2]],4),B=JA("output",i[0].dataType,g,4),y=He.size(g)/4,E=jt(i[0].dataType);return{name:"BiasSplitGelu",getRunData:()=>({outputs:[{dims:g,dataType:i[0].dataType}],dispatchGroup:{x:Math.ceil(y/64)}}),getShaderSource:F=>` + const M_SQRT2 = sqrt(2.0); + const halfChannels = ${i[0].dims[2]/4/2}u; + + ${F.declareVariables(h,w,B)} + + ${ms(E)} + + ${F.mainStart()} + ${F.guardAgainstOutOfBoundsWorkgroupSizes(y)} + let biasIdx = global_idx % halfChannels; + let batchIndex = global_idx / halfChannels; + let inputOffset = biasIdx + batchIndex * halfChannels * 2; + let valueLeft = input[inputOffset] + bias[biasIdx]; + let valueRight = input[inputOffset + halfChannels] + bias[biasIdx + halfChannels]; + let geluRight = valueRight * 0.5 * (erf_vf32(valueRight / M_SQRT2) + 1); + + ${B.setByOffset("global_idx","valueLeft * geluRight")} + }`}},ha=i=>{aa(i.inputs),i.compute(vn(i.inputs))}}),fc=Pe(()=>{Dt(),St(),Rt(),Oi=(i,g,h,w,B,y,E,F,N,Y,te,Q)=>{let ne,oe;typeof F=="string"?ne=oe=(De,Le)=>`${F}((${De}),(${Le}))`:typeof F=="function"?ne=oe=F:(ne=F.scalar,oe=F.vector);let de,fe=JA("outputData",te,w.length,4),ke=uA("aData",N,g.length,4),Me=uA("bData",Y,h.length,4);if(B)if(y){let De=He.size(g)===1,Le=He.size(h)===1,Xe=g.length>0&&g[g.length-1]%4==0,_e=h.length>0&&h[h.length-1]%4==0;de=De||Le?fe.setByOffset("global_idx",oe(De?`${ke.type.value}(${ke.getByOffset("0")}.x)`:ke.getByOffset("global_idx"),Le?`${Me.type.value}(${Me.getByOffset("0")}.x)`:Me.getByOffset("global_idx"))):` + let outputIndices = ${fe.offsetToIndices("global_idx * 4u")}; + let offsetA = ${ke.broadcastedIndicesToOffset("outputIndices",fe)}; + let offsetB = ${Me.broadcastedIndicesToOffset("outputIndices",fe)}; + ${fe.setByOffset("global_idx",oe(E||Xe?ke.getByOffset("offsetA / 4u"):`${ke.type.value}(${ke.getByOffset("offsetA / 4u")}[offsetA % 4u])`,E||_e?Me.getByOffset("offsetB / 4u"):`${Me.type.value}(${Me.getByOffset("offsetB / 4u")}[offsetB % 4u])`))} + `}else de=fe.setByOffset("global_idx",oe(ke.getByOffset("global_idx"),Me.getByOffset("global_idx")));else{if(!y)throw new Error("no necessary to use scalar implementation for element-wise binary op implementation.");let De=(Le,Xe,_e="")=>{let lA=`aData[indexA${Xe}][componentA${Xe}]`,LA=`bData[indexB${Xe}][componentB${Xe}]`;return` + let outputIndices${Xe} = ${fe.offsetToIndices(`global_idx * 4u + ${Xe}u`)}; + let offsetA${Xe} = ${ke.broadcastedIndicesToOffset(`outputIndices${Xe}`,fe)}; + let offsetB${Xe} = ${Me.broadcastedIndicesToOffset(`outputIndices${Xe}`,fe)}; + let indexA${Xe} = offsetA${Xe} / 4u; + let indexB${Xe} = offsetB${Xe} / 4u; + let componentA${Xe} = offsetA${Xe} % 4u; + let componentB${Xe} = offsetB${Xe} % 4u; + ${Le}[${Xe}] = ${_e}(${ne(lA,LA)}); + `};de=te===9?` + var data = vec4(0); + ${De("data",0,"u32")} + ${De("data",1,"u32")} + ${De("data",2,"u32")} + ${De("data",3,"u32")} + outputData[global_idx] = dot(vec4(0x1, 0x100, 0x10000, 0x1000000), vec4(data));`:` + ${De("outputData[global_idx]",0)} + ${De("outputData[global_idx]",1)} + ${De("outputData[global_idx]",2)} + ${De("outputData[global_idx]",3)} + `}return` + ${i.registerUniform("vec_size","u32").declareVariables(ke,Me,fe)} + + ${Q??""} + + ${i.mainStart()} + ${i.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")} + ${de} + }`},qn=(i,g,h,w,B,y,E=h.dataType)=>{let F=h.dims.map(fe=>Number(fe)??1),N=w.dims.map(fe=>Number(fe)??1),Y=!He.areEqual(F,N),te=F,Q=He.size(F),ne=!1,oe=!1,de=[Y];if(Y){let fe=NA.calcShape(F,N,!1);if(!fe)throw new Error("Can't perform binary op on the given tensors");te=fe.slice(),Q=He.size(te);let ke=He.size(F)===1,Me=He.size(N)===1,De=F.length>0&&F[F.length-1]%4==0,Le=N.length>0&&N[N.length-1]%4==0;de.push(ke),de.push(Me),de.push(De),de.push(Le);let Xe=1;for(let _e=1;_efe.toString()).join("_"),inputDependencies:["rank","rank"]},getShaderSource:fe=>Oi(fe,F,N,te,ne,Y,oe,B,h.dataType,w.dataType,E,y),getRunData:()=>({outputs:[{dims:te,dataType:E}],dispatchGroup:{x:Math.ceil(Q/64/4)},programUniforms:[{type:12,data:Math.ceil(He.size(te)/4)},...KA(F,N,te)]})}},Va=(i,g,h,w,B,y)=>{i.compute(qn(g,B??"",i.inputs[0],i.inputs[1],h,w,y))},fr=i=>{Va(i,"Add",(g,h)=>`${g}+${h}`)},Li=i=>{Va(i,"Div",(g,h)=>`${g}/${h}`)},Ms=i=>{Va(i,"Equal",{scalar:(g,h)=>`u32(${g}==${h})`,vector:(g,h)=>`vec4(${g}==${h})`},void 0,void 0,9)},cn=i=>{Va(i,"Mul",(g,h)=>`${g}*${h}`)},E0=i=>{let g=uA("input",i.inputs[0].dataType,i.inputs[0].dims).type.value;Va(i,"Pow",{scalar:(h,w)=>`pow_custom(${h},${w})`,vector:(h,w)=>`pow_vector_custom(${h},${w})`},` + fn pow_custom(a : ${g}, b : ${g}) -> ${g} { + if (b == ${g}(0.0)) { + return ${g}(1.0); + } else if (a < ${g}(0.0) && f32(b) != floor(f32(b))) { + return ${g}(pow(f32(a), f32(b))); // NaN + } + return select(sign(a), ${g}(1.0), round(f32(abs(b) % ${g}(2.0))) != 1.0) * ${g}(${g==="i32"?"round":""}(pow(f32(abs(a)), f32(b)))); + } + fn pow_vector_custom(a : vec4<${g}>, b : vec4<${g}>) -> vec4<${g}> { + // TODO: implement vectorized pow + return vec4<${g}>(pow_custom(a.x, b.x), pow_custom(a.y, b.y), pow_custom(a.z, b.z), pow_custom(a.w, b.w)); + } + `)},Yi=i=>{Va(i,"Sub",(g,h)=>`${g}-${h}`)},Hi=i=>{Va(i,"Greater",{scalar:(g,h)=>`u32(${g}>${h})`,vector:(g,h)=>`vec4(${g}>${h})`},void 0,void 0,9)},v0=i=>{Va(i,"Less",{scalar:(g,h)=>`u32(${g}<${h})`,vector:(g,h)=>`vec4(${g}<${h})`},void 0,void 0,9)},Gs=i=>{Va(i,"GreaterOrEqual",{scalar:(g,h)=>`u32(${g}>=${h})`,vector:(g,h)=>`vec4(${g}>=${h})`},void 0,void 0,9)},$a=i=>{Va(i,"LessOrEqual",{scalar:(g,h)=>`u32(${g}<=${h})`,vector:(g,h)=>`vec4(${g}<=${h})`},void 0,void 0,9)}}),pc=Pe(()=>{Dt(),St(),qr(),Rt(),Ri=(i,g)=>{if(!i||i.length<1)throw new Error("too few inputs");let h=i[0],w=h.dataType,B=h.dims.length;i.forEach((y,E)=>{if(E!==0){if(y.dataType!==w)throw new Error("input tensors should be one type");if(y.dims.length!==B)throw new Error("input tensors should have the same shape");y.dims.forEach((F,N)=>{if(N!==g&&F!==h.dims[N])throw new Error("non concat dimensions must match")})}})},Mn=(i,g)=>` + fn calculateInputIndex(index: u32) -> u32 { + let sizeInConcatAxis = array(${g}); + for (var i: u32 = 0u; i < ${i}; i += 1u ) { + if (index < sizeInConcatAxis[i]) { + return i; + } + } + return ${i}u; + }`,Zr=(i,g)=>{let h=i.length,w=[];for(let B=0;B{let B=He.size(h),y=new Array(i.length),E=new Array(i.length),F=0,N=[],Y=[],te=[{type:12,data:B}];for(let de=0;de`uniforms.sizeInConcatAxis${de}`).join(",");return{name:"Concat",shaderCache:{hint:`${g}`,inputDependencies:N},getRunData:()=>({outputs:[{dims:h,dataType:w}],dispatchGroup:{x:Math.ceil(B/64)},programUniforms:te}),getShaderSource:de=>` + + ${(()=>{de.registerUniform("outputSize","u32");for(let fe=0;fe(${oe}); + ${ne} -= sizeInConcatAxis[inputIndex - 1u]; + } + + ${Zr(E,Q)} + }`}},un=(i,g)=>{let h=i.inputs,w=h[0].dims,B=He.normalizeAxis(g.axis,w.length);Ri(h,B);let y=w.slice();y[B]=h.reduce((F,N)=>F+(N.dims.length>B?N.dims[B]:0),0);let E=h.filter(F=>He.size(F.dims)>0);i.compute(ar(E,B,y,h[0].dataType),{inputs:E})},M0=i=>$e({axis:i.axis})}),Zi=Pe(()=>{Dt(),St(),Ds=(i,g,h="f32")=>{switch(i.activation){case"Relu":return`value = max(value, ${g}(0.0));`;case"Sigmoid":return`value = (${g}(1.0) / (${g}(1.0) + exp(-value)));`;case"Clip":return`value = clamp(value, ${g}(${h}(uniforms.clip_min)), ${g}(${h}(uniforms.clip_max)));`;case"HardSigmoid":return`value = max(${g}(0.0), min(${g}(1.0), ${h}(uniforms.alpha) * value + ${h}(uniforms.beta)));`;case"LeakyRelu":return`value = select(${h}(uniforms.alpha) * value, value, value >= ${g}(0.0));`;case"Tanh":return`let e2x = exp(-2.0 * abs(value)); + value = sign(value) * (1.0 - e2x) / (1.0 + e2x); + `;case"":return"";default:throw new Error(`Unsupported activation ${i.activation}`)}},Qs=(i,g)=>{i.activation==="Clip"?g.push({type:1,data:i.clipMax},{type:1,data:i.clipMin}):i.activation==="HardSigmoid"?g.push({type:1,data:i.alpha},{type:1,data:i.beta}):i.activation==="LeakyRelu"&&g.push({type:1,data:i.alpha})},Us=(i,g)=>{i.activation==="Clip"?g.push({name:"clip_max",type:"f32"},{name:"clip_min",type:"f32"}):i.activation==="HardSigmoid"?g.push({name:"alpha",type:"f32"},{name:"beta",type:"f32"}):i.activation==="LeakyRelu"&&g.push({name:"alpha",type:"f32"})},Wi=i=>{let g=i?.activation||"";if(g==="HardSigmoid"){let[h,w]=i?.activation_params||[.2,.5];return{activation:g,alpha:h,beta:w}}if(g==="Clip"){let[h,w]=i?.activation_params||[Yt,Vt];return{activation:g,clipMax:w,clipMin:h}}if(g==="LeakyRelu"){let[h]=i?.activation_params||[.01];return{activation:g,alpha:h}}return{activation:g}}}),l1=Pe(()=>{ma=(i,g)=>{switch(i){case 1:return g;case 2:return`vec2<${g}>`;case 3:return`vec3<${g}>`;case 4:return`vec4<${g}>`;default:throw new Error(`${i}-component is not supported.`)}},G0=i=>` + ${i?"value = value + getBiasByOutputCoords(coords);":""} + `}),hc=Pe(()=>{Vi=i=>` +fn getIndexFromCoords4D(coords : vec4, shape : vec4) -> i32 { + return dot(coords, vec4( + shape.y * shape.z * shape.w, shape.z * shape.w, shape.w, 1)); +} +fn getOutputIndexFromCoords(coords : vec4) -> i32 { + return dot(coords, vec4( + i32(${i}.x), i32(${i}.y), i32(${i}.z), 1)); +} +`}),c1=Pe(()=>{Dt(),St(),Rt(),Zi(),gn=(i,g,h,w,B)=>{let y=w-h;return` + ${Array.from({length:h}).map((E,F)=>` + if (${rt(g.shape,F,g.rank)} != 1) { + ${g.indicesSet(i,F,rt(B,F+y,w))} + } else { + ${g.indicesSet(i,F,0)} + }`).join("")} +`},Gn=(i,g,h,w,B=!1,y)=>{let E=i[0].dims,F=i[1].dims,N=E[E.length-2],Y=F[F.length-1],te=E[E.length-1],Q=Jt(Y),ne=Jt(te),oe=Jt(N),de=He.size(h)/Q/oe,fe=i.length>2,ke=w?w.slice(0,-2):h.slice(0,-2),Me=[He.size(ke),N,Y],De=[{type:12,data:de},{type:12,data:N},{type:12,data:Y},{type:12,data:te}];return Qs(g,De),De.push(...KA(ke,E,F)),fe&&De.push(...KA(i[2].dims)),De.push(...KA(Me)),{name:"MatMulNaive",shaderCache:{hint:`${g.activation};${Q};${ne};${oe};${B}`,inputDependencies:fe?["rank","rank","rank"]:["rank","rank"]},getRunData:()=>({outputs:[{dims:y?y(h):h,dataType:i[0].dataType}],dispatchGroup:{x:Math.ceil(de/64)},programUniforms:De}),getShaderSource:Le=>{let Xe=Nr("batch_dims",i[0].dataType,ke.length),_e=uA("a",i[0].dataType,E.length,ne),lA=uA("b",i[1].dataType,F.length,Q),LA=JA("output",i[0].dataType,Me.length,Q),st=jt(LA.type.tensor),ht=Ds(g,LA.type.value,st),pt=[_e,lA],mt="";if(fe){let tt=B?Q:1;pt.push(uA("bias",i[2].dataType,i[2].dims.length,tt)),mt=B?`value += bias[col / ${tt}];`:`value += ${LA.type.value}(bias[row + i]);`}let yt=[{name:"output_size",type:"u32"},{name:"M",type:"u32"},{name:"N",type:"u32"},{name:"K",type:"u32"}];return Us(g,yt),` + ${Le.registerUniforms(yt).registerInternalVariables(Xe).declareVariables(...pt,LA)} + ${Le.mainStart()} + ${Le.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let col = (global_idx % (uniforms.N / ${Q})) * ${Q}; + var index1 = global_idx / (uniforms.N / ${Q}); + let stride1 = uniforms.M / ${oe}; + let row = (index1 % stride1) * ${oe}; + let batch = index1 / stride1; + + ${h.length===2?"":`let batch_indices = ${Xe.offsetToIndices("batch")};`} + + var a_indices: ${_e.type.indices}; + ${gn("a_indices",_e,_e.rank-2,Xe.rank,"batch_indices")} + ${_e.indicesSet("a_indices",_e.rank-2,0)} + ${_e.indicesSet("a_indices",_e.rank-1,0)} + let a_offset = ${_e.indicesToOffset("a_indices")}; + + var b_indices: ${lA.type.indices}; + ${gn("b_indices",lA,lA.rank-2,Xe.rank,"batch_indices")} + ${lA.indicesSet("b_indices",lA.rank-2,0)} + ${lA.indicesSet("b_indices",lA.rank-1,0)} + let b_offset = ${lA.indicesToOffset("b_indices")}; + var values: array<${LA.type.value}, ${oe}>; + for (var k: u32 = 0u; k < uniforms.K; k = k + ${ne}) { + ${(()=>{let tt=`var a_data: ${_e.type.value};`;for(let lt=0;lt{Dt(),St(),Rt(),Zi(),c1(),l1(),sa=(i,g)=>i?` + mm_Asub[inputRow][inputCol] = mm_readA(batch, + kStart + inputRow, + globalRowStart / innerElementSize + inputCol${g?", batchIndices":""}); + `:` + mm_Asub[inputRow][inputCol] = mm_readA(batch, + globalRow + innerRow, + kStart / innerElementSize + inputCol${g?", batchIndices":""}); + `,ji=(i,g)=>i?` + let ACached0 = mm_Asub[k * innerElementSize][localRow]; + let ACached1 = mm_Asub[k * innerElementSize + 1][localRow]; + let ACached2 = mm_Asub[k * innerElementSize + 2][localRow]; + ${g===3?"":"let ACached3 = mm_Asub[k * innerElementSize + 3][localRow];"} + for (var i = 0; i < rowPerThread; i = i + 1) { + acc[i] = BCached0 * ACached0[i] + acc[i]; + acc[i] = BCached1 * ACached1[i] + acc[i]; + acc[i] = BCached2 * ACached2[i] + acc[i]; + ${g===3?"":"acc[i] = BCached3 * ACached3[i] + acc[i];"} + }`:` + for (var i = 0; i < rowPerThread; i = i + 1) { + let ACached = mm_Asub[tileRow + i][k]; + acc[i] = BCached0 * ACached.x + acc[i]; + acc[i] = BCached1 * ACached.y + acc[i]; + acc[i] = BCached2 * ACached.z + acc[i]; + ${g===3?"":"acc[i] = BCached3 * ACached.w + acc[i];"} + }`,Jn=(i,g,h="f32",w,B=!1,y=32,E=!1,F=32)=>{let N=g[1]*i[1],Y=g[0]*i[0],te=B?N:y,Q=B?y:N,ne=te/g[0],oe=y/g[1];if((!B||ne!==4||i[1]!==4)&&(B||ne!==3&&ne!==4)||te%g[0]!=0||y%g[1]!=0||i[0]!==4)throw new Error(`If transposeA ${B} is true, innerElementSize ${ne} and workPerThread[1] ${i[1]} must be 4. + Otherwise, innerElementSize ${ne} must be 3 or 4. + tileAWidth ${te} must be divisible by workgroupSize[0]${g[0]}. tileInner ${y} must be divisible by workgroupSize[1] ${g[1]}. colPerThread ${i[0]} must be 4.`);return` +var mm_Asub: array, ${te/ne}>, ${Q}>; +var mm_Bsub: array, ${Y/i[0]}>, ${y}>; + +const rowPerThread = ${i[1]}; +const colPerThread = ${i[0]}; +const innerElementSize = ${ne}; +const tileInner = ${y}; + +@compute @workgroup_size(${g[0]}, ${g[1]}, ${g[2]}) +fn main(@builtin(local_invocation_id) localId : vec3, + @builtin(global_invocation_id) globalId : vec3, + @builtin(workgroup_id) workgroupId : vec3) { + let localRow = i32(localId.y); + let tileRow = localRow * rowPerThread; + let tileCol = i32(localId.x); + + let globalRow =i32(globalId.y) * rowPerThread; + let globalCol = i32(globalId.x); + let batch = ${E?"0":"i32(globalId.z)"}; + ${w?`let batchIndices = ${w.offsetToIndices("u32(batch)")};`:""} + let globalRowStart = i32(workgroupId.y) * ${N}; + + let num_tiles = ${E?`${Math.ceil(F/y)}`:"(uniforms.dim_inner - 1) / tileInner + 1"}; + var kStart = ${E?`i32(globalId.z) * ${F}`:"0"}; + + var acc: array, rowPerThread>; + + // Loop over shared dimension. + let tileRowB = localRow * ${oe}; + for (var t = 0; t < num_tiles; t = t + 1) { + // Load one tile of A into local memory. + for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) { + let inputRow = tileRow + innerRow; + let inputCol = tileCol; + ${sa(B,w)} + } + + // Load one tile of B into local memory. + for (var innerRow = 0; innerRow < ${oe}; innerRow = innerRow + 1) { + let inputRow = tileRowB + innerRow; + let inputCol = tileCol; + mm_Bsub[inputRow][inputCol] = mm_readB(batch, kStart + inputRow, globalCol${w?", batchIndices":""}); + } + kStart = kStart + tileInner; + workgroupBarrier(); + + // Compute acc values for a single thread. + for (var k = 0; k < tileInner / innerElementSize; k = k + 1) { + let BCached0 = mm_Bsub[k * innerElementSize][tileCol]; + let BCached1 = mm_Bsub[k * innerElementSize + 1][tileCol]; + let BCached2 = mm_Bsub[k * innerElementSize + 2][tileCol]; + ${ne===3?"":"let BCached3 = mm_Bsub[k * innerElementSize + 3][tileCol];"} + + ${ji(B,ne)} + } + + workgroupBarrier(); + } + + for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) { + mm_write(batch, globalRow + innerRow, globalCol, acc[innerRow]); + } +}`},Ks=(i,g)=>i?` + mm_Asub[inputRow][inputCol] = mm_readA(batch, + kStart + inputRow, + globalRowStart + inputCol${g?", batchIndices":""}); + `:` + mm_Asub[inputRow][inputCol] = mm_readA(batch, + globalRowStart + inputRow, + kStart + inputCol${g?", batchIndices":""}); + `,D0=i=>i?"let ACached = mm_Asub[k][tileRow + innerRow];":"let ACached = mm_Asub[tileRow + innerRow][k];",dn=(i,g,h="f32",w,B=!1,y=32,E=!1,F=32,N=!1)=>{let Y=i[1]*g[1],te=i[0]*g[0],Q=B?Y:y,ne=B?y:Y;if(ne%g[1]!=0||Q%g[0]!=0||y%g[1]!=0)throw new Error(`tileAHight ${ne} must be divisible by workgroupSize[1]${g[1]}, tileAWidth ${Q} must be divisible by workgroupSize[0]${g[0]}, tileInner ${y} must be divisible by workgroupSize[1]${g[1]}`);let oe=ne/g[1],de=Q/g[0],fe=y/g[1],ke=N?` + let localRow = i32(localId.y); + let localCol = i32(localId.x); + let globalRowStart = i32(workgroupId.y) * ${Y}; + let globalColStart = i32(workgroupId.x) * ${te}; + + // Loop over shared dimension. + for (var t = 0; t < num_tiles; t = t + 1) { + // Load one tile of A into local memory. + for (var inputRow = localRow; inputRow < ${ne}; inputRow = inputRow + ${g[1]}) { + for (var inputCol = localCol; inputCol < ${Q}; inputCol = inputCol + ${g[0]}) { + ${Ks(B,w)} + } + } + // Load one tile of B into local memory. + for (var inputRow = localRow; inputRow < ${y}; inputRow = inputRow + ${g[1]}) { + for (var inputCol = localCol; inputCol < ${te}; inputCol = inputCol + ${g[0]}) { + mm_Bsub[inputRow][inputCol] = mm_readB(batch, + kStart + inputRow, + globalColStart + inputCol${w?", batchIndices":""}); + } + } + kStart = kStart + tileInner; + workgroupBarrier(); + + // Compute acc values for a single thread. + var BCached : array<${h}, colPerThread>; + for (var k = 0; k < tileInner; k = k + 1) { + for (var inner = 0; inner < colPerThread; inner = inner + 1) { + BCached[inner] = mm_Bsub[k][localCol + inner * ${g[0]}]; + } + for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) { + let ACached = ${B?`mm_Asub[k][localRow + innerRow * ${g[1]}];`:`mm_Asub[localRow + innerRow * ${g[1]}][k];`} + for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) { + acc[innerRow][innerCol] = acc[innerRow][innerCol] + + ACached * BCached[innerCol]; + } + } + } + workgroupBarrier(); + } + for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) { + let gRow = globalRowStart + localRow + innerRow * ${g[1]}; + for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) { + let gCol = globalColStart + localCol + innerCol * ${g[0]}; + mm_write(batch, gRow, gCol, acc[innerRow][innerCol]); + } + } + `:` +let tileRow = i32(localId.y) * rowPerThread; +let tileCol = i32(localId.x) * colPerThread; + +let globalRow = i32(globalId.y) * rowPerThread; +let globalCol = i32(globalId.x) * colPerThread; +let globalRowStart = i32(workgroupId.y) * ${Y}; + +let tileRowA = i32(localId.y) * ${oe}; +let tileColA = i32(localId.x) * ${de}; +let tileRowB = i32(localId.y) * ${fe}; +// Loop over shared dimension. +for (var t = 0; t < num_tiles; t = t + 1) { + // Load one tile of A into local memory. + for (var innerRow = 0; innerRow < ${oe}; innerRow = innerRow + 1) { + for (var innerCol = 0; innerCol < ${de}; innerCol = innerCol + 1) { + let inputRow = tileRowA + innerRow; + let inputCol = tileColA + innerCol; + ${Ks(B,w)} + } + } + + // Load one tile of B into local memory. + for (var innerRow = 0; innerRow < ${fe}; innerRow = innerRow + 1) { + for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) { + let inputRow = tileRowB + innerRow; + let inputCol = tileCol + innerCol; + mm_Bsub[inputRow][inputCol] = mm_readB(batch, + kStart + inputRow, + globalCol + innerCol${w?", batchIndices":""}); + } + } + kStart = kStart + tileInner; + workgroupBarrier(); + + // Compute acc values for a single thread. + var BCached : array<${h}, colPerThread>; + for (var k = 0; k < tileInner; k = k + 1) { + for (var inner = 0; inner < colPerThread; inner = inner + 1) { + BCached[inner] = mm_Bsub[k][tileCol + inner]; + } + + for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) { + ${D0(B)} + for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) { + acc[innerRow][innerCol] = acc[innerRow][innerCol] + ACached * BCached[innerCol]; + } + } + } + + workgroupBarrier(); +} + +for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) { + for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) { + mm_write(batch, globalRow + innerRow, globalCol + innerCol, + acc[innerRow][innerCol]); + } +} +`;return` + var mm_Asub : array, ${ne}>; + var mm_Bsub : array, ${y}>; + const rowPerThread = ${i[1]}; + const colPerThread = ${i[0]}; + const tileInner = ${y}; + +@compute @workgroup_size(${g[0]}, ${g[1]}, ${g[2]}) +fn main(@builtin(local_invocation_id) localId : vec3, + @builtin(global_invocation_id) globalId : vec3, + @builtin(workgroup_id) workgroupId : vec3) { + let batch = ${E?"0":"i32(globalId.z)"}; + ${w?`let batchIndices = ${w.offsetToIndices("u32(batch)")};`:""} + let num_tiles = ${E?`${Math.ceil(F/y)}`:"(uniforms.dim_inner - 1) / tileInner + 1"}; + var kStart = ${E?`i32(globalId.z) * ${F}`:"0"}; + + var acc : array, rowPerThread>; + ${ke} + } +`},ct=(i,g,h,w,B=!1)=>{let[y,E,F,N]=w,Y=jt(w[0].type.tensor);return` + fn mm_readA(batch: i32, row: i32, colIn: i32, batchIndices: ${y.type.indices}) -> ${ma(i,Y)} { + var value = ${ma(i,Y)}(0.0); + let col = colIn * ${i}; + if(row < uniforms.dim_a_outer && col < uniforms.dim_inner) + { + var aIndices: ${E.type.indices}; + ${gn("aIndices",E,E.rank-2,y.rank,"batchIndices")} + ${E.indicesSet("aIndices",E.rank-2,"u32(row)")} + ${E.indicesSet("aIndices",E.rank-1,"u32(colIn)")} + value = ${E.getByIndices("aIndices")}; + } + return value; + } + + fn mm_readB(batch: i32, row: i32, colIn: i32, batchIndices: ${y.type.indices}) -> ${ma(i,Y)} { + var value = ${ma(i,Y)}(0.0); + let col = colIn * ${i}; + if(row < uniforms.dim_inner && col < uniforms.dim_b_outer) + { + var bIndices: ${F.type.indices}; + ${gn("bIndices",F,F.rank-2,y.rank,"batchIndices")} + ${F.indicesSet("bIndices",F.rank-2,"u32(row)")} + ${F.indicesSet("bIndices",F.rank-1,"u32(colIn)")} + value = ${F.getByIndices("bIndices")}; + } + return value; + } + + fn mm_write(batch: i32, row: i32, colIn: i32, valueIn: ${ma(i,Y)}) { + let col = colIn * ${i}; + if (row < uniforms.dim_a_outer && col < uniforms.dim_b_outer) { + var value = valueIn; + let coords = vec3(batch, row, colIn); + ${g?`value = value + ${B?"bias[colIn]":`${ma(i,Y)}(bias[row])`};`:""} + ${h} + ${N.setByIndices("vec3(coords)","value")} + } + } + `},A=(i,g,h,w,B=!1,y)=>{let E=i[0].dims,F=i[1].dims,N=E.slice(0,-2),Y=F.slice(0,-2),te=w?w.slice(0,-2):h.slice(0,-2),Q=He.size(te),ne=E[E.length-2],oe=E[E.length-1],de=F[F.length-1],fe=oe%4==0&&de%4==0,ke=ne<=8?[4,1,1]:[4,4,1],Me=[8,8,1],De=[Math.ceil(de/Me[0]/ke[0]),Math.ceil(ne/Me[1]/ke[1]),Math.ceil(Q/Me[2]/ke[2])],Le=fe?4:1,Xe=[...N,ne,oe/Le],_e=Xe.length,lA=[...Y,oe,de/Le],LA=lA.length,st=[Q,ne,de/Le],ht=[{type:6,data:ne},{type:6,data:de},{type:6,data:oe}];Qs(g,ht),ht.push(...KA(te,Xe,lA));let pt=["rank","rank"],mt=i.length>2;return mt&&(ht.push(...KA(i[2].dims)),pt.push("rank")),ht.push(...KA(st)),{name:"MatMul",shaderCache:{hint:`${ke};${g.activation};${fe};${B}`,inputDependencies:pt},getRunData:()=>({outputs:[{dims:y?y(h):h,dataType:i[0].dataType}],dispatchGroup:{x:De[0],y:De[1],z:De[2]},programUniforms:ht}),getShaderSource:yt=>{let tt=te.length,lt=Nr("batchDims",i[0].dataType,tt,1),wA=jt(i[0].dataType),UA=uA("a",i[0].dataType,_e,Le),At=uA("b",i[1].dataType,LA,Le),Et=JA("result",i[0].dataType,st.length,Le),ur=[UA,At];if(mt){let Na=B?Le:1;ur.push(uA("bias",i[2].dataType,i[2].dims.length,Na))}let la=[{name:"dim_a_outer",type:"i32"},{name:"dim_b_outer",type:"i32"},{name:"dim_inner",type:"i32"}];Us(g,la);let Fn=jt(Et.type.tensor),$i=Ds(g,Et.type.value,Fn),Jo=ct(Le,mt,$i,[lt,UA,At,Et],B);return` + ${yt.registerUniforms(la).registerInternalVariables(lt).declareVariables(...ur,Et)} + ${Jo} + ${fe?Jn(ke,Me,wA,lt):dn(ke,Me,wA,lt)} + `}}}}),mc=Pe(()=>{Dt(),Pn(),Rt(),Zi(),l1(),hc(),u1(),t=(i,g,h,w,B=!1,y,E=4,F=4,N=4,Y="f32")=>{let te=st=>{switch(st){case 1:return"return w[row * i32(uniforms.w_shape[3]) + colIn];";case 4:return"return w[row * i32(uniforms.w_shape[3]) / 4 + colIn];";default:throw new Error(`innerElementSize ${st} is not supported.`)}},Q=i?` + let coord = vec4(batch, xRow, xCol, xCh); + `:` + let coord = vec4(batch, xCh, xRow, xCol); + `,ne=i?` + let coords = vec4( + batch, + row / outWidth, + row % outWidth, + col); + `:` + let coords = vec4( + batch, + row, + col / outWidth, + col % outWidth); + `,oe=i?"i32(uniforms.x_shape[1])":"i32(uniforms.x_shape[2])",de=i?"i32(uniforms.x_shape[2])":"i32(uniforms.x_shape[3])",fe=i?"row":"col",ke=i?"col":"row",Me=` + let inChannels = i32(uniforms.w_shape[2]); + let outWidth = ${i?"i32(uniforms.result_shape[2])":"i32(uniforms.result_shape[3])"}; + let outRow = ${fe} / outWidth; + let outCol = ${fe} % outWidth; + + let WRow = ${ke} / (i32(uniforms.w_shape[1]) * inChannels); + let WCol = ${ke} / inChannels % i32(uniforms.w_shape[1]); + let xRow = outRow * uniforms.stride[0] + uniforms.dilation[0] * WRow - uniforms.pad[0]; + let xCol = outCol * uniforms.stride[1] + uniforms.dilation[1] * WCol - uniforms.pad[1]; + let xCh = ${ke} % inChannels; + var resData = ${ma(E,Y)}(0.0); + // The bounds checking is always needed since we use it to pad zero for + // the 'same' padding type. + if (xRow >= 0 && xRow < ${oe} && xCol >= 0 && xCol < ${de}) { + ${Q} + let xIndex = getIndexFromCoords4D(coord, vec4(uniforms.x_shape)); + ${(st=>{switch(st){case 1:return"resData = x[xIndex];";case 3:return`resData = vec3<${Y}>(x[xIndex], x[xIndex + 1], x[xIndex + 2]);`;case 4:return"resData = x[xIndex / 4];";default:throw new Error(`innerElementSize ${st} is not supported.`)}})(E)} + } + return resData;`,De=i?g&&w?` + let col = colIn * ${E}; + ${Me}`:` + let col = colIn * ${E}; + if (row < uniforms.dim_a_outer && col < uniforms.dim_inner) { + ${Me} + } + return ${ma(E,Y)}(0.0);`:w&&h?` + let col = colIn * ${E}; + ${Me}`:` + let col = colIn * ${E}; + if (row < uniforms.dim_inner && col < uniforms.dim_b_outer) { + ${Me} + } + return ${ma(E,Y)}(0.0);`,Le=i?w&&h?te(F):` + let col = colIn * ${F}; + if (row < uniforms.dim_inner && col < uniforms.dim_b_outer) { + ${te(F)} + } + return ${ma(F,Y)}(0.0);`:` + let col = colIn * ${F}; + if (row < uniforms.dim_inner && col < uniforms.dim_a_outer) { + ${te(F)} + } + return ${ma(F,Y)}(0.0);`,Xe=ma(N,Y),_e=ma(i?E:F,Y),lA=ma(i?F:E,Y),LA=Ds(y,Xe,Y);return` + fn mm_readA(batch: i32, row : i32, colIn : i32) -> ${_e} { + ${i?De:Le} + } + + fn mm_readB(batch: i32, row : i32, colIn : i32) -> ${lA} { + ${i?Le:De} + } + + fn mm_write(batch: i32, row : i32, colIn : i32, valueIn : ${Xe}) { + let col = colIn * ${N}; + if (row < uniforms.dim_a_outer && col < uniforms.dim_b_outer) + { + var value = valueIn; + let outWidth = ${i?"i32(uniforms.result_shape[2])":"i32(uniforms.result_shape[3])"}; + ${ne} + ${G0(B)} + ${LA} + setOutputAtCoords(coords[0], coords[1], coords[2], coords[3], value); + } + }`},r=(i,g,h,w,B,y,E,F,N)=>{let Y=g.format==="NHWC",te=Y?i[0].dims[3]:i[0].dims[1],Q=h[0],ne=Y?h[2]:h[3],oe=Y?h[1]:h[2],de=Y?h[3]:h[1],fe=Y&&(te%4==0||te%3==0)&&de%4==0,ke=Y?de:ne*oe,Me=Y?ne*oe:de,De=[8,8,1],Le=w<=8?[4,1,1]:[4,4,1],Xe=[Math.ceil(ke/De[0]/Le[0]),Math.ceil(Me/De[1]/Le[1]),Math.ceil(Q/De[2]/Le[2])];Pt("verbose",()=>`[conv2d_mm_webgpu] dispatch = ${Xe}`);let _e=fe?Y&&te%4!=0?3:4:1,lA=De[1]*Le[1],LA=De[0]*Le[0],st=Math.max(De[0]*_e,De[1]),ht=w%lA==0,pt=B%LA==0,mt=y%st==0,yt=fe?[_e,4,4]:[1,1,1],tt=[{type:6,data:w},{type:6,data:B},{type:6,data:y},{type:6,data:[g.pads[0],g.pads[1]]},{type:6,data:g.strides},{type:6,data:g.dilations}];Qs(g,tt),tt.push(...KA(i[0].dims,i[1].dims));let lt=["rank","rank"];return E&&(tt.push(...KA(i[2].dims)),lt.push("rank")),tt.push(...KA(h)),{name:"Conv2DMatMul",shaderCache:{hint:`${g.cacheKey};${_e};${fe};${ht};${pt};${mt};${lA};${LA};${st}`,inputDependencies:lt},getRunData:()=>({outputs:[{dims:N?N(h):h,dataType:i[0].dataType}],dispatchGroup:{x:Xe[0],y:Xe[1],z:Xe[2]},programUniforms:tt}),getShaderSource:wA=>{let UA=[{name:"dim_a_outer",type:"i32"},{name:"dim_b_outer",type:"i32"},{name:"dim_inner",type:"i32"},{name:"pad",type:"i32",length:2},{name:"stride",type:"i32",length:2},{name:"dilation",type:"i32",length:2}];Us(g,UA);let At=fe?4:1,Et=jt(i[0].dataType),ur=` + fn setOutputAtIndex(flatIndex : i32, value : ${fe?`vec4<${Et}>`:Et}) { + result[flatIndex] = ${fe?`vec4<${Et}>`:Et}(value); + } + fn setOutputAtCoords(d0 : i32, d1 : i32, d2 : i32, d3 : i32, value : ${fe?`vec4<${Et}>`:Et}) { + let flatIndex = getOutputIndexFromCoords(vec4(d0, d1, d2, d3)); + setOutputAtIndex(flatIndex ${fe?"/ 4":""}, value); + }`,la=[uA("x",i[0].dataType,i[0].dims.length,_e===3?1:_e),uA("w",i[1].dataType,i[1].dims.length,At)],Fn=JA("result",i[0].dataType,h.length,At);if(E){let $i=uA("bias",i[2].dataType,i[2].dims.length,At);la.push($i),ur+=` + fn getBiasByOutputCoords(coords : vec4) -> ${fe?`vec4<${Et}>`:Et} { + return bias[coords.${Y?"w":"y"}${fe?"/ 4":""}]; + }`}return` + ${Vi("uniforms.result_strides")} + //struct Uniforms { xShape : vec4, wShape : vec4, outShape : vec4, + // outShapeStrides: vec3, filterDims : vec2, pad : vec2, stride : vec2, + // dilation : vec2, dimAOuter : i32, dimBOuter : i32, dimInner : i32 }; + ${wA.registerUniforms(UA).declareVariables(...la,Fn)} + ${ur} + ${t(Y,ht,pt,mt,E,g,yt[0],yt[1],yt[2],Et)} + ${fe?Jn(Le,De,Et,void 0,!Y,st):dn(Le,De,Et,void 0,!Y,st,!1,void 0,F)}`}}}}),Cc=Pe(()=>{Dt(),Pn(),St(),Rt(),Zi(),l1(),a=i=>{let g=1;for(let h=0;htypeof i=="number"?[i,i,i]:i,n=(i,g)=>g<=1?i:i+(i-1)*(g-1),o=(i,g,h,w=1)=>{let B=n(g,w);return Math.floor((i[0]*(h-1)-h+B)/2)},c=(i,g,h,w,B)=>{B==null&&(B=o(i,g[0],w[0]));let y=[0,0,0,h];for(let E=0;E<3;E++)i[E]+2*B>=g[E]&&(y[E]=Math.trunc((i[E]-g[E]+2*B)/w[E]+1));return y},f=(i,g,h,w,B,y,E,F,N,Y)=>{let te,Q,ne,oe;if(i==="VALID"&&(i=0),typeof i=="number"){te={top:i,bottom:i,left:i,right:i,front:i,back:i};let de=c([g,h,w,1],[F,N,Y],1,[B,y,E],i);Q=de[0],ne=de[1],oe=de[2]}else if(Array.isArray(i)){if(!i.every((fe,ke,Me)=>fe===Me[0]))throw Error(`Unsupported padding parameter: ${i}`);te={top:i[0],bottom:i[1],left:i[2],right:i[3],front:i[4],back:i[5]};let de=c([g,h,w,1],[F,N,Y],1,[B,y,E],i[0]);Q=de[0],ne=de[1],oe=de[2]}else{if(i!=="SAME_UPPER")throw Error(`Unknown padding parameter: ${i}`);{Q=Math.ceil(g/B),ne=Math.ceil(h/y),oe=Math.ceil(w/E);let de=(Q-1)*B+F-g,fe=(ne-1)*y+N-h,ke=(oe-1)*E+Y-w,Me=Math.floor(de/2),De=de-Me,Le=Math.floor(fe/2),Xe=fe-Le,_e=Math.floor(ke/2);te={top:Le,bottom:Xe,left:_e,right:ke-_e,front:Me,back:De}}}return{padInfo:te,outDepth:Q,outHeight:ne,outWidth:oe}},m=(i,g,h,w,B,y=!1,E="channelsLast")=>{let F,N,Y,te,Q;if(E==="channelsLast")[F,N,Y,te,Q]=i;else{if(E!=="channelsFirst")throw new Error(`Unknown dataFormat ${E}`);[F,Q,N,Y,te]=i}let[ne,,oe,de,fe]=g,[ke,Me,De]=s(h),[Le,Xe,_e]=s(w),lA=n(oe,Le),LA=n(de,Xe),st=n(fe,_e),{padInfo:ht,outDepth:pt,outHeight:mt,outWidth:yt}=f(B,N,Y,te,ke,Me,De,lA,LA,st),tt=y?ne*Q:ne,lt=[0,0,0,0,0];return E==="channelsFirst"?lt=[F,tt,pt,mt,yt]:E==="channelsLast"&&(lt=[F,pt,mt,yt,tt]),{batchSize:F,dataFormat:E,inDepth:N,inHeight:Y,inWidth:te,inChannels:Q,outDepth:pt,outHeight:mt,outWidth:yt,outChannels:tt,padInfo:ht,strideDepth:ke,strideHeight:Me,strideWidth:De,filterDepth:oe,filterHeight:de,filterWidth:fe,effectiveFilterDepth:lA,effectiveFilterHeight:LA,effectiveFilterWidth:st,dilationDepth:Le,dilationHeight:Xe,dilationWidth:_e,inShape:i,outShape:lt,filterShape:g}},p=(i,g,h,w,B,y)=>{let E=y==="channelsLast";E?i[0].dims[3]:i[0].dims[1];let F={x:h.map((ne,oe)=>oe)},N=[Math.ceil(a(F.x.map(ne=>h[ne]))/64),1,1];Pt("verbose",()=>`[conv3d_naive_webgpu] dispatch = ${N}`);let Y=[{type:12,data:He.size(h)},{type:12,data:w},{type:12,data:B},{type:12,data:g.strides},{type:12,data:g.dilations}];Qs(g,Y),Y.push(...KA(i[0].dims,i[1].dims));let te=["rank","rank"],Q=i.length===3;return Q&&(Y.push(...KA(i[2].dims)),te.push("rank")),Y.push(...KA(h)),{name:"Conv3DNaive",shaderCache:{hint:`${g.cacheKey};${E};1;${Q}`,inputDependencies:te},getRunData:()=>({outputs:[{dims:h,dataType:i[0].dataType}],dispatchGroup:{x:N[0],y:N[1],z:N[2]},programUniforms:Y}),getShaderSource:ne=>{let oe=[{name:"output_size",type:"u32"},{name:"filter_dims",type:"u32",length:w.length},{name:"pads",type:"u32",length:B.length},{name:"strides",type:"u32",length:g.strides.length},{name:"dilations",type:"u32",length:g.dilations.length}];Us(g,oe);let de=jt(i[0].dataType),fe=uA("x",i[0].dataType,i[0].dims.length,1),ke=uA("W",i[1].dataType,i[1].dims.length,1),Me=[fe,ke],De=JA("result",i[0].dataType,h.length,1),Le="";if(Q){let lA=uA("bias",i[2].dataType,i[2].dims.length,1);Me.push(lA),Le+=` + fn getBiasByOutputCoords(coords : array) -> ${de} { + return bias[${rt("coords",E?4:1,5)}]; + }`}let Xe=ma(1,de),_e=Ds(g,Xe,de);return` + ${Le} + fn getX(d0 : u32, d1 : u32, d2 : u32, d3 : u32, d4 : u32) -> f32 { + let aIndices = array(d0, d1, d2, d3, d4); + return ${fe.getByIndices("aIndices")}; + } + fn getW(d0 : u32, d1 : u32, d2 : u32, d3 : u32, d4 : u32) -> f32 { + let aIndices = array(d0, d1, d2, d3, d4); + return ${ke.getByIndices("aIndices")}; + } + ${ne.registerUniforms(oe).declareVariables(...Me,De)} + ${ne.mainStart()} + ${ne.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let coords = ${De.offsetToIndices("global_idx")}; + let batch = ${rt("coords",0,fe.rank)}; + let d2 = ${rt("coords",E?fe.rank-1:1,fe.rank)}; + let xFRCCorner = vec3(${rt("coords",E?1:2,fe.rank)}, + ${rt("coords",E?2:3,fe.rank)}, + ${rt("coords",E?3:4,fe.rank)}) * uniforms.strides - uniforms.pads; + let xFCorner = xFRCCorner.x; + let xRCorner = xFRCCorner.y; + let xCCorner = xFRCCorner.z; + let xShapeY = ${rt("uniforms.x_shape",E?1:2,fe.rank)}; + let xShapeZ = ${rt("uniforms.x_shape",E?2:3,fe.rank)}; + let xShapeW = ${rt("uniforms.x_shape",E?3:4,fe.rank)}; + let xShapeU = ${rt("uniforms.x_shape",E?4:1,fe.rank)}; + let inputDepthNearestVec4 = (xShapeU / 4) * 4; + let inputDepthVec4Remainder = xShapeU % 4; + + var value = 0.0; + for (var wF = 0u; wF < uniforms.filter_dims[0]; wF++) { + let xF = xFCorner + wF * uniforms.dilations[0]; + if (xF < 0 || xF >= xShapeY) { + continue; + } + + for (var wR = 0u; wR < uniforms.filter_dims[1]; wR++) { + let xR = xRCorner + wR * uniforms.dilations[1]; + if (xR < 0 || xR >= xShapeZ) { + continue; + } + + for (var wC = 0u; wC < uniforms.filter_dims[2]; wC++) { + let xC = xCCorner + wC * uniforms.dilations[2]; + if (xC < 0 || xC >= xShapeW) { + continue; + } + + for (var d1 = 0u; d1 < inputDepthNearestVec4; d1 += 4) { + ${E?`let xValues = vec4( + getX(batch, xF, xR, xC, d1), + getX(batch, xF, xR, xC, d1 + 1), + getX(batch, xF, xR, xC, d1 + 2), + getX(batch, xF, xR, xC, d1 + 3)); + `:`let xValues = vec4( + getX(batch, d1, xF, xR, xC), + getX(batch, d1 + 1, xF, xR, xC), + getX(batch, d1 + 2, xF, xR, xC), + getX(batch, d1 + 3, xF, xR, xC)); + `} + let wValues = vec4( + getW(d2, d1, wF, wR, wC), + getW(d2, d1 + 1, wF, wR, wC), + getW(d2, d1 + 2, wF, wR, wC), + getW(d2, d1 + 3, wF, wR, wC)); + value += dot(xValues, wValues); + } + if (inputDepthVec4Remainder == 1) { + ${E?`value += getX(batch, xF, xR, xC, inputDepthNearestVec4) + * getW(d2, inputDepthNearestVec4, wF, wR, wC);`:`value += getX(batch, inputDepthNearestVec4, xF, xR, xC) + * getW(d2, inputDepthNearestVec4, wF, wR, wC);`} + } else if (inputDepthVec4Remainder == 2) { + ${E?`let xValues = vec2( + getX(batch, xF, xR, xC, inputDepthNearestVec4), + getX(batch, xF, xR, xC, inputDepthNearestVec4 + 1)); + `:`let xValues = vec2( + getX(batch, inputDepthNearestVec4, xF, xR, xC), + getX(batch, inputDepthNearestVec4 + 1, xF, xR, xC)); + `} + let wValues = vec2( + getW(d2, inputDepthNearestVec4, wF, wR, wC), + getW(d2, inputDepthNearestVec4 + 1, wF, wR, wC)); + value += dot(xValues, wValues); + } else if (inputDepthVec4Remainder == 3) { + ${E?`let xValues = vec3( + getX(batch, xF, xR, xC, inputDepthNearestVec4), + getX(batch, xF, xR, xC, inputDepthNearestVec4 + 1), + getX(batch, xF, xR, xC, inputDepthNearestVec4 + 2)); + `:`let xValues = vec3( + getX(batch, inputDepthNearestVec4, xF, xR, xC), + getX(batch, inputDepthNearestVec4 + 1, xF, xR, xC), + getX(batch, inputDepthNearestVec4 + 2, xF, xR, xC)); + `} + let wValues = vec3( + getW(d2, inputDepthNearestVec4, wF, wR, wC), + getW(d2, inputDepthNearestVec4 + 1, wF, wR, wC), + getW(d2, inputDepthNearestVec4 + 2, wF, wR, wC)); + value += dot(xValues, wValues); + } + } + } + } + ${Q?"value = value + getBiasByOutputCoords(coords)":""}; + ${_e} + result[global_idx] = f32(value); + }`}}}}),bc=Pe(()=>{Dt(),St(),Rt(),Zi(),I=(i,g,h,w)=>{let B=i.length>2,y=B?"value += b[output_channel];":"",E=i[0].dims,F=i[1].dims,N=g.format==="NHWC",Y=N?h[3]:h[1],te=Y/g.group,Q=N&&te>=4?Jt(Y):1,ne=He.size(h)/Q,oe=[{type:12,data:ne},{type:12,data:g.dilations},{type:12,data:[g.strides[0],g.strides[1]]},{type:12,data:[g.pads[0],g.pads[1]]},{type:12,data:te}];Qs(g,oe),oe.push(...KA(E,[F[0],F[1],F[2],F[3]/Q]));let de=B?["rank","rank","rank"]:["rank","rank"];return oe.push(...KA([h[0],h[1],h[2],h[3]/Q])),{name:"GroupedConv",shaderCache:{hint:`${g.cacheKey}_${Q}`,inputDependencies:de},getRunData:()=>({outputs:[{dims:w?w(h):h,dataType:i[0].dataType}],dispatchGroup:{x:Math.ceil(ne/64)},programUniforms:oe}),getShaderSource:fe=>{let ke=JA("output",i[0].dataType,h.length,Q),Me=jt(ke.type.tensor),De=Ds(g,ke.type.value,Me),Le=uA("x",i[0].dataType,E.length),Xe=uA("w",i[1].dataType,F.length,Q),_e=[Le,Xe];B&&_e.push(uA("b",i[2].dataType,i[2].dims,Q));let lA=[{name:"output_size",type:"u32"},{name:"dilations",type:"u32",length:g.dilations.length},{name:"strides",type:"u32",length:2},{name:"pads",type:"u32",length:2},{name:"output_channels_per_group",type:"u32"}];Us(g,lA);let LA=N?` + for (var wHeight: u32 = 0u; wHeight < uniforms.w_shape[0]; wHeight++) { + let xHeight = xRCCorner.x + wHeight * uniforms.dilations[0]; + + if (xHeight < 0u || xHeight >= uniforms.x_shape[1]) { + continue; + } + + for (var wWidth: u32 = 0u; wWidth < uniforms.w_shape[1]; wWidth++) { + let xWidth = xRCCorner.y + wWidth * uniforms.dilations[1]; + if (xWidth < 0u || xWidth >= uniforms.x_shape[2]) { + continue; + } + + for (var wInChannel: u32 = 0u; wInChannel < uniforms.w_shape[2]; wInChannel++) { + let input_channel = in_channel_offset + wInChannel; + let xVal = ${Le.get("batch","xHeight","xWidth","input_channel")}; + let wVal = ${Xe.get("wHeight","wWidth","wInChannel","output_channel")}; + value += xVal * wVal; + } + } + } + `:` + for (var wInChannel: u32 = 0u; wInChannel < uniforms.w_shape[1]; wInChannel++) { + let input_channel = in_channel_offset + wInChannel; + for (var wHeight: u32 = 0u; wHeight < uniforms.w_shape[2]; wHeight++) { + let xHeight = xRCCorner.x + wHeight * uniforms.dilations[0]; + + if (xHeight < 0u || xHeight >= uniforms.x_shape[2]) { + continue; + } + + for (var wWidth: u32 = 0u; wWidth < uniforms.w_shape[3]; wWidth++) { + let xWidth = xRCCorner.y + wWidth * uniforms.dilations[1]; + if (xWidth < 0u || xWidth >= uniforms.x_shape[3]) { + continue; + } + + let xVal = ${Le.get("batch","input_channel","xHeight","xWidth")}; + let wVal = ${Xe.get("output_channel","wInChannel","wHeight","wWidth")}; + value += xVal * wVal; + } + } + } + `;return` + ${fe.registerUniforms(lA).declareVariables(..._e,ke)} + + ${fe.mainStart()} + ${fe.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + + let outputIndices = ${ke.offsetToIndices("global_idx")}; + let batch: u32 = outputIndices[0]; + let output_channel: u32 = outputIndices[${N?3:1}]; + let xRCCorner: vec2 = vec2(outputIndices[${N?1:2}], outputIndices[${N?2:3}]) * uniforms.strides - uniforms.pads; + let group_id: u32 = output_channel * ${Q} / uniforms.output_channels_per_group; + var in_channel_offset = group_id * uniforms.w_shape[${N?2:1}]; + + var value: ${ke.type.value} = ${ke.type.value}(0); + ${LA} + ${y} + ${De} + ${ke.setByOffset("global_idx","value")} + }`}}},v=(i,g,h,w)=>{let B=i.length>2,y=Jt(h[3]),E=Jt(h[2]),F=He.size(h)/y/E,N=[i[0].dims[0],i[0].dims[1],i[0].dims[2],i[0].dims[3]/y],Y=[i[1].dims[0],i[1].dims[1],i[1].dims[2],i[1].dims[3]/y],te=[h[0],h[1],h[2],h[3]/y],Q=[{type:12,data:F},{type:6,data:[g.strides[0],g.strides[1]]},{type:6,data:[g.pads[0],g.pads[1]]}];Qs(g,Q),Q.push(...KA(N,Y,te));let ne=(E-1)*g.strides[1]+Y[1];return{name:"GroupedConv-Vectorize",shaderCache:{hint:`${g.cacheKey};${y};${E};${ne};${Y[0]};${Y[1]}`,inputDependencies:B?["rank","rank","type"]:["rank","rank"]},getRunData:()=>({outputs:[{dims:w?w(h):h,dataType:i[0].dataType}],dispatchGroup:{x:Math.ceil(F/64)},programUniforms:Q}),getShaderSource:oe=>{let de=JA("output",i[0].dataType,te.length,y),fe=jt(de.type.tensor),ke=Ds(g,de.type.value,fe),Me=uA("x",i[0].dataType,N.length,y),De=uA("w",i[1].dataType,Y.length,y),Le=[Me,De];B&&Le.push(uA("b",i[2].dataType,i[2].dims,y));let Xe=B?"value += b[output_channel];":"",_e=[{name:"output_size",type:"u32"},{name:"strides",type:"i32",length:2},{name:"pads",type:"i32",length:2}];return Us(g,_e),` + ${oe.registerUniforms(_e).declareVariables(...Le,de)} + ${oe.mainStart()} + ${oe.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let width0 = uniforms.output_shape[3]; + let output_channel = global_idx % width0; + var index1 = global_idx / width0; + let width1 = uniforms.output_shape[2] / ${E}u; + let col = (index1 % width1) * ${E}u; + index1 = index1 / width1; + let row = index1 % uniforms.output_shape[1]; + let batch = index1 / uniforms.output_shape[1]; + + let x_corner = vec2(i32(row), i32(col)) * uniforms.strides - uniforms.pads; + + var x_vals: array<${Me.type.value}, ${ne}>; + var values: array<${de.type.value}, ${E}>; + let input_channel = output_channel; + // Use constant instead of uniform can give better performance for w's height/width. + for (var w_height: u32 = 0u; w_height < ${Y[0]}; w_height++) { + let x_height = x_corner.x + i32(w_height); + if (x_height >= 0 && u32(x_height) < uniforms.x_shape[1]) { + for (var i = 0; i < ${ne}; i++) { + let x_width = x_corner.y + i; + if (x_width >= 0 && u32(x_width) < uniforms.x_shape[2]) { + x_vals[i] = ${Me.get("batch","u32(x_height)","u32(x_width)","input_channel")}; + } else { + x_vals[i] = ${Me.type.value}(0); + } + } + for (var w_width: u32 = 0u; w_width < ${Y[1]}; w_width++) { + let w_val = ${De.get("w_height","w_width","0","output_channel")}; + for (var i = 0u; i < ${E}u; i++) { + values[i] = fma(x_vals[i * u32(uniforms.strides[1]) + w_width], w_val, values[i]); + } + } + } + } + + for (var i = 0u; i < ${E}u; i++) { + var value = values[i]; + ${Xe} + ${ke} + ${de.set("batch","row","col + i","output_channel","value")}; + } + }`}}}}),Nt=Pe(()=>{St(),mc(),Cc(),u1(),bc(),Zi(),c1(),ri(),T=(i,g,h,w,B,y)=>{let E=i[0],F=i.slice(y?1:2,y?3:4),N=F.length,Y=g[0],te=g.slice(2).map((ne,oe)=>ne+(ne-1)*(h[oe]-1)),Q=F.map((ne,oe)=>ne+w[oe]+w[oe+N]).map((ne,oe)=>Math.floor((ne-te[oe]+B[oe])/B[oe]));return Q.splice(0,0,E),Q.splice(y?3:1,0,Y),Q},O=[2,3,1,0],Z=(i,g)=>{if(!i||i.length!==2&&i.length!==3)throw new Error("Conv requires 2 or 3 inputs");if(i[0].dims.length>5)throw new Error("greater than 5D is not supported");if(i[0].dims.length!==i[1].dims.length)throw new Error("filter does not have same dimension as input");if(i[0].dims[g.format==="NHWC"?i[0].dims.length-1:1]!==i[1].dims[1]*g.group)throw new Error("FILTER_IN_CHANNEL should be equal to DATA_CHANNEL");if(i.length===3&&(i[2].dims.length!==1||i[1].dims[0]!==i[2].dims[0]))throw new Error("invalid bias");let h=i[0].dims.length-2;if(g.dilations.length!==h)throw new Error(`dilations should be ${h}D`);if(g.strides.length!==h)throw new Error(`strides should be ${h}D`);if(g.pads.length!==2*h)throw new Error(`pads should be ${2*h}D`);if(g.kernelShape.length!==0&&g.kernelShape.length!==i[1].dims.length-2)throw new Error("invalid kernel shape")},ee=(i,g)=>{let h=i.kernelShape.slice();h.length{let g=Wi(i),h=i.format;return{autoPad:["NOTSET","VALID","SAME_UPPER","SAME_LOWER"][i.auto_pad],format:h,dilations:i.dilations,group:i.group,kernelShape:i.kernel_shape,pads:i.pads,strides:i.strides,wIsConst:i.w_is_const(),...g,cacheKey:`${i.format};${g.activation};`}},he=(i,g,h,w)=>{let B=h.format==="NHWC",y=T(g[0].dims,g[1].dims,h.dilations,h.pads,h.strides,B);if(h.group!==1){let _e=[g[0]];if(B){let lA=i.kernelCustomData.wT??i.compute(Ma(g[1],O),{inputs:[1],outputs:[h.wIsConst?-2:-1]})[0];h.wIsConst&&!i.kernelCustomData.wT&&(i.kernelCustomData.wT=lA),_e.push(lA)}else _e.push(g[1]);return g.length===3&&_e.push(g[2]),void(!i.adapterInfo.isArchitecture("ampere")&&B&&g[1].dims[0]===h.group&&g[1].dims[1]===1&&h.dilations[0]===1&&h.dilations[1]===1?i.compute(v(_e,h,y,w),{inputs:_e}):i.compute(I(_e,h,y,w),{inputs:_e}))}let E=g.length===3,F=g[0].dims[B?1:2],N=g[0].dims[B?2:3],Y=g[0].dims[B?3:1],te=g[1].dims[2],Q=g[1].dims[3],ne=y[B?1:2],oe=y[B?2:3],de=y[B?3:1],fe=B&&te===F&&Q===N&&h.pads[0]===0&&h.pads[1]===0;if(fe||te===1&&Q===1&&h.dilations[0]===1&&h.dilations[1]===1&&h.strides[0]===1&&h.strides[1]===1&&h.pads[0]===0&&h.pads[1]===0){let _e,lA,LA,st=y[0],ht=[];if(B){let yt=i.kernelCustomData.wT??i.compute(Ma(g[1],O),{inputs:[1],outputs:[h.wIsConst?-2:-1]})[0];if(h.wIsConst&&!i.kernelCustomData.wT&&(i.kernelCustomData.wT=yt),fe){let tt=F*N*Y;_e=g[0].reshape([1,st,tt]),lA=yt.reshape([1,tt,de]),LA=[1,st,de]}else _e=g[0].reshape([st,F*N,Y]),lA=yt.reshape([1,Y,de]),LA=[st,ne*oe,de];ht.push(_e),ht.push(lA)}else _e=g[0].reshape([st,Y,F*N]),lA=g[1].reshape([1,de,Y]),LA=[st,de,ne*oe],ht.push(lA),ht.push(_e);E&&ht.push(g[2]);let pt=LA[2],mt=ht[0].dims[ht[0].dims.length-1];return void(pt<8&&mt<8?i.compute(Gn(ht,h,y,LA,B,w),{inputs:ht}):i.compute(A(ht,h,y,LA,B,w),{inputs:ht}))}let ke=i.kernelCustomData.wT??i.compute(Ma(g[1],O),{inputs:[1],outputs:[h.wIsConst?-2:-1]})[0];h.wIsConst&&!i.kernelCustomData.wT&&(i.kernelCustomData.wT=ke);let Me=[g[0],ke];E&&Me.push(g[2]);let De=B?ne*oe:de,Le=B?de:ne*oe,Xe=te*Q*Y;i.compute(r(Me,h,y,De,Le,Xe,E,!0,w),{inputs:Me})},ye=(i,g)=>{let h=g.format==="NHWC",w=[i.inputs[0].reshape(h?[i.inputs[0].dims[0],1,i.inputs[0].dims[1],i.inputs[0].dims[2]]:[i.inputs[0].dims[0],i.inputs[0].dims[1],1,i.inputs[0].dims[2]]),i.inputs[1].reshape([i.inputs[1].dims[0],i.inputs[1].dims[1],1,i.inputs[1].dims[2]])];i.inputs.length===3&&w.push(i.inputs[2]);let B=[0,g.pads[0],0,g.pads[1]],y=[1].concat(g.strides),E=[1].concat(g.dilations),F=[1].concat(g.kernelShape),N=ee({...g,pads:B,strides:y,dilations:E,kernelShape:F},w);he(i,w,N,Y=>h?[Y[0],Y[2],Y[3]]:[Y[0],Y[1],Y[3]])},Qe=(i,g,h)=>{let w=h.format==="NHWC"?"channelsLast":"channelsFirst",B=ee(h,g),y=h.autoPad==="NOTSET"?h.pads:h.autoPad,E=m(g[0].dims,g[1].dims,h.strides,h.dilations,y,!1,w);i.compute(p(g,B,E.outShape,[E.filterDepth,E.filterHeight,E.filterWidth],[E.padInfo.front,E.padInfo.top,E.padInfo.left],w))},We=(i,g)=>{if(Z(i.inputs,g),i.inputs[0].dims.length===3)ye(i,g);else if(i.inputs[0].dims.length===5)Qe(i,i.inputs,g);else{let h=ee(g,i.inputs);he(i,i.inputs,h)}}}),N1=Pe(()=>{Dt(),Pn(),St(),Rt(),Ke=(i,g,h)=>{let w=i.length>2,B=g.outputShape,y=g.format==="NHWC",E=g.group,F=i[1].dims,N=F[2]/E,Y=F[3],te=y?Jt(N):1,Q=y?Jt(Y):1,ne=y?Y===1?te:Q:1,oe=He.size(B)/Q,de=[Math.ceil(oe/64),1,1];Pt("verbose",()=>`[conv2d_backprop_webgpu] dispatch = ${de}`);let fe=["rank","rank"],ke=[g.strides[0],g.strides[1]],Me=[g.kernelShape[y?1:2],g.kernelShape[y?2:3]],De=[g.dilations[0],g.dilations[1]],Le=[Me[0]+(g.dilations[0]<=1?0:(g.kernelShape[y?1:2]-1)*(g.dilations[0]-1)),Me[1]+(g.dilations[1]<=1?0:(g.kernelShape[y?2:3]-1)*(g.dilations[1]-1))],Xe=[Le[0]-1-Math.floor((g.pads[0]+g.pads[2])/2),Le[1]-1-Math.floor((g.pads[1]+g.pads[3])/2)],_e=[{type:12,data:oe},{type:12,data:ke},{type:12,data:Me},{type:12,data:De},{type:12,data:Le},{type:6,data:Xe},{type:12,data:N},{type:12,data:Y},...KA(i[0].dims,i[1].dims)];return w&&(_e.push(...KA(i[2].dims)),fe.push("rank")),_e.push(...KA(B)),{name:"ConvTranspose2D",shaderCache:{hint:`${g.cacheKey};${te}${ne}${Q}${Y===1}`,inputDependencies:fe},getRunData:()=>({dispatchGroup:{x:de[0],y:de[1],z:de[2]},outputs:[{dims:h?h(B):B,dataType:i[0].dataType}],programUniforms:_e}),getShaderSource:lA=>{let LA=[{name:"output_size",type:"u32"},{name:"strides",type:"u32",length:ke.length},{name:"filter_dims",type:"u32",length:Me.length},{name:"dilations",type:"u32",length:Me.length},{name:"effective_filter_dims",type:"u32",length:Le.length},{name:"pads",type:"i32",length:Xe.length},{name:"input_channels_per_group",type:"u32"},{name:"output_channels_per_group",type:"u32"}],st=jt(i[0].dataType),ht=y?1:2,pt=y?2:3,mt=y?3:1,yt=uA("W",i[1].dataType,i[1].dims.length,ne),tt=uA("Dy",i[0].dataType,i[0].dims.length,te),lt=[tt,yt];w&<.push(uA("bias",i[2].dataType,[B[mt]].length,Q));let wA=JA("result",i[0].dataType,B.length,Q),UA=` + let outputIndices = ${wA.offsetToIndices(`global_idx * ${Q}`)}; + let batch = ${wA.indicesGet("outputIndices",0)}; + let d1 = ${wA.indicesGet("outputIndices",mt)}; + let r = ${wA.indicesGet("outputIndices",ht)}; + let c = ${wA.indicesGet("outputIndices",pt)}; + let dyCorner = vec2(i32(r), i32(c)) - uniforms.pads; + let dyRCorner = dyCorner.x; + let dyCCorner = dyCorner.y; + let groupId = d1 / uniforms.output_channels_per_group; + let wOutChannel = d1 - groupId * uniforms.output_channels_per_group; + // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1). + // ? = to be determined. : = across all values in that axis. + var dotProd = ${wA.type.value}(0.0); + var wR: u32 = 0; + if (uniforms.dilations.x == 1) { + // Minimum wR >= 0 that satisfies (dyRCorner + wR) % (uniforms.strides.x) == 0 + wR = u32(((dyRCorner + i32(uniforms.strides.x) - 1) / i32(uniforms.strides.x)) * i32(uniforms.strides.x) - dyRCorner); + } + for (; wR < uniforms.effective_filter_dims.x; wR = wR + 1) { + if (wR % uniforms.dilations.x != 0) { + continue; + } + let dyR = (${st}(dyRCorner) + ${st}(wR)) / ${st}(uniforms.strides[0]); + let wRPerm = uniforms.filter_dims.x - 1 - wR / uniforms.dilations.x; + if (dyR < 0.0 || dyR >= ${st}(uniforms.Dy_shape[${ht}]) || fract(dyR) > 0.0 || + wRPerm < 0) { + continue; + } + let idyR: u32 = u32(dyR); + var wC: u32 = 0; + if (uniforms.dilations.y == 1) { + // Minimum wC >= 0 that satisfies (dyCCorner + wC) % (uniforms.strides.y) == 0 + wC = u32(((dyCCorner + i32(uniforms.strides.y) - 1) / i32(uniforms.strides.y)) * i32(uniforms.strides.y) - dyCCorner); + } + + for (; wC < uniforms.effective_filter_dims.y; wC = wC + 1) { + if (wC % uniforms.dilations.y != 0) { + continue; + } + let dyC = (${st}(dyCCorner) + ${st}(wC)) / ${st}(uniforms.strides.y); + let wCPerm = uniforms.filter_dims.y - 1 - wC / uniforms.dilations.y; + if (dyC < 0.0 || dyC >= ${st}(uniforms.Dy_shape[${pt}]) || + fract(dyC) > 0.0 || wCPerm < 0) { + continue; + } + let idyC: u32 = u32(dyC); + var inputChannel = groupId * uniforms.input_channels_per_group; + for (var d2: u32 = 0; d2 < uniforms.input_channels_per_group; d2 = d2 + ${te}) { + let xValue = ${y?tt.getByOffset(`${tt.indicesToOffset(`${tt.type.indices}(batch, idyR, idyC, inputChannel)`)} / ${te}`):tt.get("batch","inputChannel","idyR","idyC")}; + ${(()=>{let At="";if(te===1)At+=` + let w_offset = ${yt.indicesToOffset(`${yt.type.indices}(u32(wRPerm), u32(wCPerm), inputChannel, wOutChannel)`)}; + let wValue = ${yt.getByOffset(`w_offset / ${ne}`)}; + dotProd = dotProd + xValue * wValue;`;else if(Y===1)At+=` + let wValue = ${yt.getByOffset(`${yt.indicesToOffset(`${yt.type.indices}(u32(wRPerm), u32(wCPerm), inputChannel, wOutChannel)`)} / ${ne}`)}; + dotProd = dotProd + dot(xValue, wValue);`;else for(let Et=0;Et{N1(),Zi(),ri(),rA=(i,g,h,w,B,y)=>(i-1)*g+h+(w-1)*B+1-y,cA=(i,g,h,w,B)=>{let y=Math.floor(i/2);g==="SAME_UPPER"?(h[w]=y,h[B]=i-y):g==="SAME_LOWER"&&(h[w]=i-y,h[B]=y)},MA=(i,g,h,w,B,y,E,F,N,Y)=>{let te=i.length-2,Q=Y.length===0;N.length{let h=i.kernelShape.slice();if(i.kernelShape.length===0||i.kernelShape.reduce((Q,ne)=>Q*ne,1)===0){h.length=0;for(let Q=2;QQ+ne,0)===0){let Q=g[0].dims.length-2;N=new Array(Q).fill(1)}let Y=i.strides.slice();if(Y.reduce((Q,ne)=>Q+ne,0)===0){let Q=g[0].dims.length-2;Y=new Array(Q).fill(1)}MA(F,h,N,i.autoPad,i.group,B,Y,w,E,y);let te=Object.assign({},i);return Object.assign(te,{kernelShape:h,pads:B,outputPadding:E,outputShape:y,dilations:N,strides:Y}),te},et=i=>{let g=Wi(i),h=i.format,w=["NOTSET","VALID","SAME_UPPER","SAME_LOWER"][typeof i.autoPad>"u"?0:i.autoPad],B=i.dilations,y=i.group,E=i.kernelShape,F=i.pads,N=i.strides,Y=i.wIsConst();return{autoPad:w,format:h,dilations:B,group:y,kernelShape:E,outputPadding:i.outputPadding,outputShape:i.outputShape,pads:F,strides:N,wIsConst:Y,...g,cacheKey:`${i.format};${g.activation};`}},at=(i,g)=>{if(!i||i.length!==2&&i.length!==3)throw new Error("Conv requires 2 or 3 inputs");if(i[0].dims.length!==4&&i[0].dims.length!==3)throw new Error("currently only support 2-dimensional conv");if(i[0].dims.length!==i[1].dims.length)throw new Error("filter does not have same dimension as input");if(i[0].dims[g.format==="NHWC"?i[0].dims.length-1:1]!==i[1].dims[0])throw new Error("FILTER_IN_CHANNEL should be equal to DATA_CHANNEL");let h=i[1].dims[1]*g.group;if(i.length===3&&(i[2].dims.length!==1||i[2].dims[0]!==h))throw new Error("invalid bias");let w=i[0].dims.length-2;if(g.dilations.reduce((B,y)=>B+y,0)>0&&g.dilations.length!==w)throw new Error(`dilations should be ${w}D`);if(g.strides.reduce((B,y)=>B+y,0)>0&&g.strides.length!==w)throw new Error(`strides should be ${w}D`);if(g.pads.reduce((B,y)=>B+y,0)>0&&g.pads.length!==2*w)throw new Error(`pads should be ${2*w}D`);if(g.outputPadding.length!==w&&g.outputPadding.length!==0)throw new Error(`output_padding should be ${w}D`);if(g.kernelShape.reduce((B,y)=>B+y,0)>0&&g.kernelShape.length!==0&&g.kernelShape.length!==i[1].dims.length-2)throw new Error("invalid kernel shape");if(g.outputShape.length!==0&&g.outputShape.length!==i[0].dims.length-2)throw new Error("invalid output shape")},dt=(i,g,h,w)=>{let B=i.kernelCustomData.wT??i.compute(Ma(g[1],[2,3,0,1]),{inputs:[1],outputs:[h.wIsConst?-2:-1]})[0];h.wIsConst&&!i.kernelCustomData.wT&&(i.kernelCustomData.wT=B);let y=[g[0],B];g.length===3&&y.push(g[2]),i.compute(Ke(y,h,w),{inputs:y})},Ft=(i,g)=>{let h=g.format==="NHWC",w=[i.inputs[0].reshape(h?[i.inputs[0].dims[0],1,i.inputs[0].dims[1],i.inputs[0].dims[2]]:[i.inputs[0].dims[0],i.inputs[0].dims[1],1,i.inputs[0].dims[2]]),i.inputs[1].reshape([i.inputs[1].dims[0],i.inputs[1].dims[1],1,i.inputs[1].dims[2]])];i.inputs.length===3&&w.push(i.inputs[2]);let B=g.kernelShape;(B.length===0||B[0]===0)&&(B=[i.inputs[1].dims[2]]);let y=g.dilations;(y.length===0||y[0]===0)&&(y=[1]);let E=g.strides;(E.length===0||E[0]===0)&&(E=[1]);let F=g.pads;F.length===0&&(F=[0,0]),F=[0,F[0],0,F[1]],E=[1].concat(E),y=[1].concat(y),B=[1].concat(B);let N=g.outputPadding;N=[0].concat(N);let Y=zA({...g,pads:F,strides:E,dilations:y,kernelShape:B,outputPadding:N},w);dt(i,w,Y,te=>h?[te[0],te[2],te[3]]:[te[0],te[1],te[3]])},Zt=(i,g)=>{if(at(i.inputs,g),i.inputs[0].dims.length===3)Ft(i,g);else{let h=zA(g,i.inputs);dt(i,i.inputs,h)}}}),Fa=Pe(()=>{Dt(),St(),qr(),Rt(),er=(i,g,h,w)=>{let B=He.size(g),y=g.length,E=uA("input",i,y),F=JA("output",i,y),N=h.dataType===6?h.getInt32Array()[0]:Number(h.getBigInt64Array()[0]),Y=He.normalizeAxis(N,y);return{name:"CumSum",shaderCache:{hint:w.cacheKey,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:g,dataType:i}],dispatchGroup:{x:Math.ceil(B/64)},programUniforms:[{type:12,data:B},{type:12,data:Y},...KA(g,g)]}),getShaderSource:te=>{let Q=` i32(${E.indicesGet("inputIndices","uniforms.axis")}) `,ne=rt("uniforms.input_shape","uniforms.axis",y),oe=w.reverse?Q+(w.exclusive?" + 1":""):"0",de=w.reverse?ne:Q+(w.exclusive?"":" + 1");return` + ${te.registerUniform("outputSize","u32").registerUniform("axis","u32").declareVariables(E,F)} + ${te.mainStart()} + ${te.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + var inputIndices = ${F.offsetToIndices("global_idx")}; + var sum = ${F.type.value}(0); + let first : i32 = ${oe}; + let last : i32 = ${de}; + for (var i : i32 = first; i < last; i++) { + ${E.indicesSet("inputIndices","uniforms.axis","u32(i)")}; + sum = sum + ${E.getByIndices("inputIndices")}; + } + ${F.setByOffset("global_idx","sum")}; + }`}}},pr=(i,g)=>{let h=i.inputs[0].dims,w=i.inputs[0].dataType,B=i.inputs[1];i.compute(er(w,h,B,g),{inputs:[0]})},hr=i=>{let g=i.exclusive===1,h=i.reverse===1;return $e({exclusive:g,reverse:h})}}),ja=Pe(()=>{Dt(),St(),qr(),Rt(),Er=i=>{if(!i||i.length!==1)throw new Error("DepthToSpace requires 1 input.");if(i[0].dims.length!==4)throw new Error("DepthToSpace requires 4D input.")},vr=(i,g,h,w)=>{let B=[];B.push(`fn perm(i: ${w.type.indices}) -> ${h.type.indices} { + var a: ${h.type.indices};`);for(let y=0;y{let h,w,B,y,E,F,N=g.format==="NHWC",Y=g.blocksize,te=g.mode==="DCR";N?([h,w,B,y]=i.dims,E=te?[h,w,B,Y,Y,y/Y**2]:[h,w,B,y/Y**2,Y,Y],F=te?[0,1,3,2,4,5]:[0,1,4,2,5,3]):([h,w,B,y]=[i.dims[0],i.dims[2],i.dims[3],i.dims[1]],E=te?[h,Y,Y,y/Y**2,w,B]:[h,y/Y**2,Y,Y,w,B],F=te?[0,3,4,1,5,2]:[0,1,4,2,5,3]);let Q=i.reshape(E),ne=Q.dims.length,oe=i.dataType,de=uA("a",oe,ne),fe=JA("output",oe,ne);return{name:"DepthToSpace",shaderCache:{hint:`${i.dims};${g.blocksize};${g.mode}`,inputDependencies:["rank"]},getRunData:ke=>{let Me=N?[h,w*Y,B*Y,y/Y**2]:[h,y/Y**2,w*Y,B*Y],De=He.size(Me),Le=Q.dims,Xe=He.sortBasedOnPerm(Le,F);return{outputs:[{dims:Me,dataType:ke[0].dataType}],dispatchGroup:{x:Math.ceil(De/64)},programUniforms:[{type:12,data:De},...KA(Le,Xe)]}},getShaderSource:ke=>` + ${ke.registerUniform("output_size","u32").declareVariables(de,fe)} + + ${vr(F,ne,de,fe)} + + ${ke.mainStart()} + ${ke.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + + let indices = ${fe.offsetToIndices("global_idx")}; + let aIndices = perm(indices); + + ${fe.setByOffset("global_idx",de.getByIndices("aIndices"))} + }`}},Wr=(i,g)=>{Er(i.inputs),i.compute(Fr(i.inputs[0],g))},na=i=>$e({blocksize:i.blocksize,mode:i.mode,format:i.format})}),Xi=Pe(()=>{Dt(),St(),qr(),Rt(),Ba="^"+(ia="("+(Xr="[a-zA-Z]|\\.\\.\\.")+")+")+"$",es="^"+("("+ia+",)*"+ia)+"$",is=class{constructor(i=-1){this.symbolToIndices=new Map,this.inputIndex=i}addSymbol(i,g){let h=this.symbolToIndices.get(i);h===void 0?h=[g]:h.push(g),this.symbolToIndices.set(i,h)}},os=class{constructor(i,g){this.equation=g,this.hasEllipsis=!1,this.symbolToInfo=new Map,this.lhs=new Array,this.outputDims=[];let[h,w]=g.includes("->")?g.split("->",2):[g,""];if(!h.match(RegExp(es)))throw new Error("Invalid LHS term");if(h.split(",").forEach((B,y)=>{let E=i[y].dims.slice();if(!B.match(RegExp(Ba)))throw new Error("Invalid LHS term");let F=this.processTerm(B,!0,E,y);this.lhs.push(F)}),w==="")w+=[...this.symbolToInfo.entries()].filter(([B,y])=>y.count===1||B==="...").map(([B])=>B).join("");else if(!w.match(RegExp(ia)))throw new Error("Invalid RHS");w.match(RegExp(Xr,"g"))?.forEach(B=>{if(B==="...")this.outputDims=this.outputDims.concat(this.ellipsisDims);else{let y=this.symbolToInfo.get(B);if(y===void 0)throw new Error("Invalid RHS symbol");this.outputDims.push(y.dimValue)}}),this.rhs=this.processTerm(w,!1,this.outputDims)}addSymbol(i,g,h){let w=this.symbolToInfo.get(i);if(w!==void 0){if(w.dimValue!==g&&w.count!==1)throw new Error("Dimension mismatch");w.count++,w.inputIndices.push(h)}else w={count:1,dimValue:g,inputIndices:[h]};this.symbolToInfo.set(i,w)}processTerm(i,g,h,w=-1){let B=h.length,y=!1,E=[],F=0;if(!i.match(RegExp(Ba))&&!g&&i!=="")throw new Error("Invalid LHS term");let N=i.match(RegExp(Xr,"g")),Y=new is(w);return N?.forEach((te,Q)=>{if(te==="..."){if(y)throw new Error("Only one ellipsis is allowed per input term");y=!0;let ne=B-N.length+1;if(ne<0)throw new Error("Ellipsis out of bounds");if(E=h.slice(F,F+ne),this.hasEllipsis){if(this.ellipsisDims.length!==E.length||this.ellipsisDims.toString()!==E.toString())throw new Error("Ellipsis dimensions mismatch")}else{if(!g)throw new Error("Ellipsis must be specified in the LHS");this.hasEllipsis=!0,this.ellipsisDims=E}for(let oe=0;oei+"_max",Dn=(i,g,h,w)=>{let B=i.map(N=>N.length).map((N,Y)=>uA(`input${Y}`,g,N)),y=He.size(w),E=JA("output",g,w.length),F=[...h.symbolToInfo.keys()].filter(N=>!h.rhs.symbolToIndices.has(N));return{name:"Einsum",shaderCache:{hint:h.equation,inputDependencies:i.map(()=>"rank")},getRunData:()=>{let N=F.filter(te=>h.symbolToInfo.has(te)).map(te=>({type:12,data:h.symbolToInfo.get(te)?.dimValue||0}));N.push({type:12,data:y});let Y=i.map((te,Q)=>[...KA(te)]).reduce((te,Q)=>te.concat(Q),N);return Y.push(...KA(w)),{outputs:[{dims:w,dataType:g}],dispatchGroup:{x:Math.ceil(y/64)},programUniforms:Y}},getShaderSource:N=>{let Y=[],te=[],Q=[],ne=[],oe=[],de=h.symbolToInfo.size===h.rhs.symbolToIndices.size;h.symbolToInfo.forEach((ke,Me)=>{if(h.rhs.symbolToIndices.has(Me)){let De=h.rhs.symbolToIndices.get(Me)?.[0];De!==void 0&&h.lhs.forEach((Le,Xe)=>{if(ke.inputIndices.includes(Xe)){let _e=Le.symbolToIndices.get(Me);if(_e===void 0)throw new Error("Invalid symbol error");_e.forEach(lA=>{Y.push(`${B[Xe].indicesSet(`input${Xe}Indices`,lA,E.indicesGet("outputIndices",De))}`)})}})}else h.lhs.forEach((De,Le)=>{if(ke.inputIndices.includes(Le)){let Xe=De.symbolToIndices.get(Me);if(Xe===void 0)throw new Error("Invalid symbol error");Xe.forEach(_e=>{te.push(`${B[Le].indicesSet(`input${Le}Indices`,_e,`${Me}`)}`)}),oe.push(`prod *= ${B[Le].getByIndices(`input${Le}Indices`)};`)}}),Q.push(`for(var ${Me}: u32 = 0; ${Me} < uniforms.${Ts(Me)}; ${Me}++) {`),ne.push("}")});let fe=de?[...Y,`let sum = ${B.map((ke,Me)=>ke.getByIndices(`input${Me}Indices`)).join(" * ")};`]:[...Y,"var sum = 0.0;",...Q,...te,"var prod = 1.0;",...oe,"sum += prod;",...ne];return` + ${N.registerUniforms(F.map(ke=>({name:`${Ts(ke)}`,type:"u32"}))).registerUniform("outputSize","u32").declareVariables(...B,E)} + + ${N.mainStart()} + ${N.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + var outputIndices = ${E.offsetToIndices("global_idx")}; + ${B.map((ke,Me)=>`var input${Me}Indices: ${B[Me].type.indices};`).join(` +`)} + ${fe.join(` +`)}; + ${E.setByOffset("global_idx","sum")}; + }`}}},fn=(i,g)=>{let h=new os(i.inputs,g.equation),w=h.outputDims,B=i.inputs.map((y,E)=>y.dims);i.compute(Dn(B,i.inputs[0].dataType,h,w))},pn=i=>{let g=i.equation.replace(/\s+/g,"");return $e({equation:g})}}),Ic=Pe(()=>{Dt(),St(),Rt(),Qn=i=>{if(!i||i.length!==2)throw new Error("Expand requires 2 input.");let g=i[0].dims,h=Array.from(i[1].getBigInt64Array(),Number),w=h.length{let h=i.length-g.length,w=[];for(let B=0;Bi.length>g.length?Ui(i,g):Ui(g,i),T0=i=>{let g=i[0].dims,h=Array.from(i[1].getBigInt64Array(),Number),w=Q0(g,h),B=i[0].dataType,y=B===9||He.size(g)===1,E=B===9||g.length>0&&g[g.length-1]%4==0?4:1,F=y||w.length>0&&w[w.length-1]%4==0?4:1,N=Math.ceil(He.size(w)/F),Y=[{type:12,data:N},...KA(g,w)];return{name:"Expand",shaderCache:{hint:`${w.length};${E}${F}`,inputDependencies:["rank"]},getShaderSource:te=>{let Q,ne=uA("input",B,g.length,E),oe=JA("output",B,w.length,F);if(B===9){let de=(fe,ke,Me="")=>` + let outputIndices${ke} = ${oe.offsetToIndices(`outputOffset + ${ke}u`)}; + let offset${ke} = ${ne.broadcastedIndicesToOffset(`outputIndices${ke}`,oe)}; + let index${ke} = offset${ke} / 4u; + let component${ke} = offset${ke} % 4u; + ${fe}[${ke}] = ${Me}(${ne.getByOffset(`index${ke}`)}[component${ke}]); + `;Q=` + let outputOffset = global_idx * ${F}; + var data = vec4(0); + ${de("data",0,"u32")} + ${de("data",1,"u32")} + ${de("data",2,"u32")} + ${de("data",3,"u32")} + ${oe.setByOffset("global_idx","data")} + }`}else Q=` + let outputIndices = ${oe.offsetToIndices(`global_idx * ${F}`)}; + let inputOffset = ${ne.broadcastedIndicesToOffset("outputIndices",oe)}; + let data = ${oe.type.value}(${ne.getByOffset(`inputOffset / ${E}`)}); + ${oe.setByOffset("global_idx","data")} + }`;return` + ${te.registerUniform("vec_size","u32").declareVariables(ne,oe)} + ${te.mainStart()} + ${te.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")} + ${Q}`},getRunData:()=>({outputs:[{dims:w,dataType:i[0].dataType}],dispatchGroup:{x:Math.ceil(N/64)},programUniforms:Y})}},_n=i=>{Qn(i.inputs),i.compute(T0(i.inputs),{inputs:[0]})}}),O1=Pe(()=>{Dt(),St(),Rt(),o1(),l2=i=>{let g=i[0].dataType,h=He.size(i[0].dims),w=He.size(i[1].dims),B=w%4==0;return{name:"FastGeluWithBias",shaderCache:{hint:`${B}`,inputDependencies:["type","type"]},getShaderSource:y=>{let E=uA("x",g,[1],4),F=uA("bias",g,[1],4),N=JA("y",g,[1],4),Y=Q=>` + let bias${Q}_offset: u32 = (global_idx * 4 + ${Q}) % uniforms.bias_size; + let bias${Q} = ${F.getByOffset(`bias${Q}_offset / 4`)}[bias${Q}_offset % 4];`,te=B?` + let bias = ${F.getByOffset("global_idx % (uniforms.bias_size / 4)")};`:`${Y(0)}${Y(1)}${Y(2)}${Y(3)} + let bias = ${E.type.value}(bias0, bias1, bias2, bias3);`;return`${y.registerUniforms([{name:"output_vec_size",type:"u32"},{name:"bias_size",type:"u32"}]).declareVariables(E,F,N)} + + ${_a(jA(g))} + + ${y.mainStart(cr)} + ${y.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_vec_size")} + + let x = ${E.getByOffset("global_idx")}; + ${te} + let x_in = x + bias; + ${N.setByOffset("global_idx",Fi("x_in"))} + }`},getRunData:y=>({outputs:[{dims:y[0].dims,dataType:y[0].dataType}],programUniforms:[{type:12,data:Math.ceil(h/4)},{type:12,data:w}],dispatchGroup:{x:Math.ceil(h/cr/4)}})}},c2=i=>{i.inputs.length<2||He.size(i.inputs[1].dims)===0?Xn(i):i.compute(l2(i.inputs))}}),L1=Pe(()=>{Dt(),St(),qr(),Rt(),u2=i=>{if(!i||i.length!==2)throw new Error("Gather requires 2 inputs.")},g2=(i,g)=>{let h=i[0].dims,w=i[1].dims,B=h.length,y=He.normalizeAxis(g.axis,B),E=h.slice(0);E.splice(y,1,...w);let F=h[y],N=i[0].dataType===9?4:1,Y=Math.ceil(He.size(E)/N),te=[{type:12,data:Y},{type:6,data:F},{type:12,data:y},...KA(i[0].dims,i[1].dims,E)];return{name:"Gather",shaderCache:{hint:g.cacheKey,inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:E,dataType:i[0].dataType}],dispatchGroup:{x:Math.ceil(Y/64)},programUniforms:te}),getShaderSource:Q=>{let ne,oe=uA("data",i[0].dataType,i[0].dims.length,N),de=uA("inputIndices",i[1].dataType,i[1].dims.length),fe=JA("output",i[0].dataType,E.length,N),ke=Me=>{let De=w.length,Le=`var indicesIndices${Me} = ${de.type.indices}(0);`;for(let Xe=0;Xe1?`indicesIndices${Me}[${Xe}]`:`indicesIndices${Me}`} = ${E.length>1?`outputIndices${Me}[uniforms.axis + ${Xe}]`:`outputIndices${Me}`};`;Le+=` + var idx${Me} = ${de.getByIndices(`indicesIndices${Me}`)}; + if (idx${Me} < 0) { + idx${Me} = idx${Me} + uniforms.axisDimLimit; + } + var dataIndices${Me} : ${oe.type.indices}; + `;for(let Xe=0,_e=0;Xe1?`dataIndices${Me}[${Xe}]`:`dataIndices${Me}`} = u32(idx${Me});`,_e+=De):(Le+=`${B>1?`dataIndices${Me}[${Xe}]`:`dataIndices${Me}`} = ${E.length>1?`outputIndices${Me}[${_e}]`:`outputIndices${Me}`};`,_e++);return Le};if(i[0].dataType===9){let Me=(De,Le,Xe="")=>` + let outputIndices${Le} = ${fe.offsetToIndices(`outputOffset + ${Le}u`)}; + ${ke(Le)}; + let offset${Le} = ${oe.indicesToOffset(`dataIndices${Le}`)}; + let index${Le} = offset${Le} / 4u; + let component${Le} = offset${Le} % 4u; + ${De}[${Le}] = ${Xe}(${oe.getByOffset(`index${Le}`)}[component${Le}]); + `;ne=` + let outputOffset = global_idx * ${N}; + var value = vec4(0); + ${Me("value",0,"u32")} + ${Me("value",1,"u32")} + ${Me("value",2,"u32")} + ${Me("value",3,"u32")} + ${fe.setByOffset("global_idx","value")} + `}else ne=` + let outputIndices = ${fe.offsetToIndices("global_idx")}; + ${ke("")}; + let value = ${oe.getByIndices("dataIndices")}; + ${fe.setByOffset("global_idx","value")}; + `;return` + ${Q.registerUniform("outputSize","u32").registerUniform("axisDimLimit","i32").registerUniform("axis","u32").declareVariables(oe,de,fe)} + ${Q.mainStart()} + ${Q.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + ${ne} + }`}}},d2=i=>$e({axis:i.axis}),uo=(i,g)=>{let h=i.inputs;u2(h),i.compute(g2(i.inputs,g))}}),U=Pe(()=>{Dt(),St(),Rt(),f2=(i,g,h,w,B,y,E,F,N)=>{let Y=[{type:12,data:y},{type:12,data:w},{type:12,data:B},{type:12,data:h},{type:12,data:E},{type:12,data:F},{type:12,data:N}],te=[y];return Y.push(...KA(g.dims,te)),i.compute({name:"computeSliceOffsets",shaderCache:{hint:`${B.length}_${h.length}`,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:te,dataType:i.inputs[1].dataType}],dispatchGroup:{x:Math.ceil(y/64)},programUniforms:Y}),getShaderSource:Q=>{let ne=[uA("indices_data",g.dataType,g.dims.length),JA("input_slice_offsets_data",12,1,1)],oe=[{name:"output_size",type:"u32"},{name:"batch_dims",type:"u32"},{name:"input_dims",type:"u32",length:B.length},{name:"sizes_from_slice_dims_data",type:"u32",length:h.length},{name:"num_slices_per_batch",type:"u32"},{name:"input_batch_stride",type:"u32"},{name:"num_slice_dims",type:"u32"}];return` + ${Q.registerUniforms(oe).declareVariables(...ne)} + ${Q.mainStart()} + ${Q.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let batch_idx = global_idx / uniforms.num_slices_per_batch; + let base_offset = batch_idx * uniforms.input_batch_stride; + + let slice_indices_base_offset = global_idx * uniforms.num_slice_dims; + var relative_slice_offset = 0; + for (var dim_idx = 0u; dim_idx < uniforms.num_slice_dims; dim_idx ++) { + var index = i32(indices_data[dim_idx + slice_indices_base_offset].x); + let input_dim_idx = uniforms.batch_dims + dim_idx; + if (index < 0) { + ${B.length===1?"index += i32(uniforms.input_dims);":"index += i32(uniforms.input_dims[input_dim_idx]);"} + } + ${h.length===1?"relative_slice_offset += index * i32(uniforms.sizes_from_slice_dims_data);":"relative_slice_offset += index * i32(uniforms.sizes_from_slice_dims_data[dim_idx]);"} + } + + input_slice_offsets_data[global_idx] = base_offset + u32(relative_slice_offset); + }`}},{inputs:[g],outputs:[-1]})[0]},p2=(i,g)=>{let h=i.inputs,w=h[0].dims,B=h[0].dataType,y=h[1].dims,E=y[y.length-1],F=He.sizeToDimension(y,y.length-1),N=He.sizeFromDimension(w,g.batchDims+E),Y=He.sizeToDimension(w,g.batchDims),te=He.sizeFromDimension(w,g.batchDims),Q=F/Y,ne=new Array(E),oe=N;for(let Le=0;Lew.length)throw new Error("last dimension of indices must not be larger than rank of input tensor");let ke=y.slice(0,-1).concat(w.slice(fe)),Me=He.size(ke),De=[{type:12,data:Me},{type:12,data:N},...KA(h[0].dims,de.dims,ke)];i.compute({name:"GatherND",shaderCache:{hint:g.cacheKey,inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:ke,dataType:B}],dispatchGroup:{x:Math.ceil(Me/64)},programUniforms:De}),getShaderSource:Le=>{let Xe=uA("data",h[0].dataType,h[0].dims.length),_e=uA("slice_offsets",12,de.dims.length),lA=JA("output",h[0].dataType,ke.length);return` + ${Le.registerUniform("output_size","u32").registerUniform("slice_size","u32").declareVariables(Xe,_e,lA)} + ${Le.mainStart()} + ${Le.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let slice_offset = slice_offsets[global_idx / uniforms.slice_size]; + output[global_idx] = data[u32(slice_offset) + global_idx % uniforms.slice_size]; + }`}},{inputs:[h[0],de]})},go=i=>({batchDims:i.batch_dims,cacheKey:""})}),V=Pe(()=>{Dt(),St(),qr(),Rt(),h2=(i,g)=>{if(i.length<3||i.length>4)throw new Error("GatherBlockQuantized requires 3 or 4 inputs.");let h=He.normalizeAxis(g.quantizeAxis,i[0].dims.length),w=g.blockSize,B=i[0],y=i[2],E=i.length===4?i[3]:void 0;if(y.dims.length!==B.dims.length||!B.dims.map((F,N)=>N===h?Math.ceil(F/w)===y.dims[N]:F===y.dims[N]).reduce((F,N)=>F&&N,!0))throw new Error("Scales must have the same rank as the input tensor and the dims should match except on gatherAxis.");if(E){if(E.dataType!==B.dataType)throw new Error("Zero point must have the same data type as the input tensor.");if(E.dims.length!==y.dims.length||!E.dims.map((F,N)=>F===y.dims[N]).reduce((F,N)=>F&&N,!0))throw new Error("Zero point must have the same rank as the input tensor and the dims should match except on quantizeAxis.")}},m2=(i,g)=>{let h=i[0].dims,w=i[1].dims,B=h.length,y=He.normalizeAxis(g.gatherAxis,B),E=He.normalizeAxis(g.quantizeAxis,B),F=h.slice(0);F.splice(y,1,...w);let N=He.size(F),Y=i[2].dataType,te=i[0].dataType===22,Q=[{type:12,data:N},{type:12,data:E},{type:12,data:y},{type:12,data:g.blockSize},...KA(...i.map((ne,oe)=>ne.dims),F)];return{name:"GatherBlockQuantized",shaderCache:{hint:`${g.cacheKey};${i.filter((ne,oe)=>oe!==1).map(ne=>ne.dims.join("_")).join(";")}`,inputDependencies:Array.from({length:i.length},(ne,oe)=>"rank")},getRunData:()=>({outputs:[{dims:F,dataType:Y}],dispatchGroup:{x:Math.ceil(N/64)},programUniforms:Q}),getShaderSource:ne=>{let oe=uA("data",i[0].dataType,i[0].dims.length),de=uA("inputIndices",i[1].dataType,i[1].dims.length),fe=uA("scales",i[2].dataType,i[2].dims.length),ke=i.length>3?uA("zeroPoint",i[3].dataType,i[3].dims.length):void 0,Me=JA("output",Y,F.length),De=[oe,de,fe];return ke&&De.push(ke),` + ${ne.registerUniforms([{name:"output_size",type:"u32"},{name:"quantize_axis",type:"u32"},{name:"gather_axis",type:"u32"},{name:"block_size",type:"u32"}]).declareVariables(...De,Me)} + ${ne.mainStart()} + let output_indices = ${Me.offsetToIndices("global_idx")}; + var indices_indices = ${de.type.indices}(0); + ${w.length>1?` + for (var i: u32 = 0; i < ${w.length}; i++) { + let index = ${Me.indicesGet("output_indices","uniforms.gather_axis + i")}; + ${de.indicesSet("indices_indices","i","index")}; + }`:`indices_indices = ${Me.indicesGet("output_indices","uniforms.gather_axis")};`}; + var data_indices = ${oe.type.indices}(0); + for (var i: u32 = 0; i < uniforms.gather_axis; i++) { + let index = ${Me.indicesGet("output_indices","i")}; + ${oe.indicesSet("data_indices","i","index")}; + } + var index_from_indices = ${de.getByIndices("indices_indices")}; + if (index_from_indices < 0) { + index_from_indices += ${h[y]}; + } + ${oe.indicesSet("data_indices","uniforms.gather_axis","u32(index_from_indices)")}; + for (var i = uniforms.gather_axis + 1; i < ${F.length}; i++) { + let index = ${Me.indicesGet("output_indices",`i + ${w.length} - 1`)}; + ${oe.indicesSet("data_indices","i","index")}; + } + let data_offset = ${oe.indicesToOffset("data_indices")}; + let data_index = data_offset % 8; + // Convert 4-bit packed data to 8-bit packed data. + let packed_4bit_quantized_data = ${oe.getByOffset("data_offset / 8")}; + let packed_8bit_quantized_data = (packed_4bit_quantized_data >> (4 * (data_index % 2))) & 0x0f0f0f0f; + let quantized_data_vec = ${te?"unpack4xI8":"unpack4xU8"}(u32(packed_8bit_quantized_data)); + let quantized_data = quantized_data_vec[data_index / 2]; + var scale_indices = data_indices; + let quantize_axis_index = ${fe.indicesGet("data_indices","uniforms.quantize_axis")} / uniforms.block_size; + ${fe.indicesSet("scale_indices","uniforms.quantize_axis","quantize_axis_index")}; + var scale = ${fe.getByIndices("scale_indices")}; + ${ke?` + let zero_point_indices = scale_indices; + let zero_point_offset = ${ke.indicesToOffset("zero_point_indices")}; + let zero_point_index = zero_point_offset % 8; + let packed_4bit_zero_points = ${ke.getByOffset("zero_point_offset / 8")}; + let packed_8bit_zero_points = (packed_4bit_zero_points >> (4 * (zero_point_index % 2))) & 0x0f0f0f0f; + let zero_point_vec = ${te?"unpack4xI8":"unpack4xU8"}(u32(packed_8bit_zero_points)); + let zero_point = zero_point_vec[zero_point_index / 2];`:"var zero_point = 0"}; + let dequantized_data = ${jA(Y)}(quantized_data - zero_point) * scale; + ${Me.setByOffset("global_idx","dequantized_data")}; + }`}}},C2=(i,g)=>{let h=i.inputs;h2(h,g),i.compute(m2(i.inputs,g))},b2=i=>$e({blockSize:i.blockSize,gatherAxis:i.gatherAxis,quantizeAxis:i.quantizeAxis})}),ve=Pe(()=>{Dt(),St(),qr(),Rt(),fo=i=>{if(!i||i.length!==2)throw new Error("GatherElements requires 2 inputs.");if(i[0].dims.length<1)throw new Error("GatherElements requires that the data input be rank >= 1.");if(i[0].dims.length!==i[1].dims.length)throw new Error(`GatherElements requires that the data input and + indices input tensors be of same rank.`)},I2=(i,g)=>{let h=i[0].dims,w=i[0].dataType,B=h.length,y=i[1].dims,E=i[1].dataType,F=He.normalizeAxis(g.axis,B),N=h[F],Y=y.slice(0),te=He.size(Y),Q=uA("input",w,B),ne=uA("indicesInput",E,y.length),oe=JA("output",w,Y.length),de=[{type:12,data:te},{type:6,data:N},{type:12,data:F}];return de.push(...KA(h,y,Y)),{name:"GatherElements",shaderCache:{inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:Y,dataType:i[0].dataType}],dispatchGroup:{x:Math.ceil(te/64)},programUniforms:de}),getShaderSource:fe=>` + ${fe.registerUniform("outputSize","u32").registerUniform("axisDimLimit","i32").registerUniform("axis","u32").declareVariables(Q,ne,oe)} + ${fe.mainStart()} + ${fe.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + + let outputIndices = ${oe.offsetToIndices("global_idx")}; + + var idx = ${ne.getByOffset("global_idx")}; + if (idx < 0) { + idx = idx + uniforms.axisDimLimit; + } + var inputIndices = ${Q.type.indices}(outputIndices); + ${Q.indicesSet("inputIndices","uniforms.axis","u32(idx)")}; + let value = ${Q.getByIndices("inputIndices")}; + + ${oe.setByOffset("global_idx","value")}; + }`}},w2=i=>$e({axis:i.axis}),po=(i,g)=>{let h=i.inputs;fo(h),i.compute(I2(i.inputs,g))}}),eA=Pe(()=>{Dt(),St(),Rt(),k2=i=>{if(!i)throw new Error("Input is missing");if(i.length<2||i.length>3)throw new Error("Invaid input number.");if(i.length===3&&i[2].dims.length>2)throw new Error("Invalid input shape of C");if(i[0].dataType!==i[1].dataType||i.length===3&&i[0].dataType!==i[2].dataType)throw new Error("Input types are mismatched")},x2=(i,g)=>{let h=i[0].dims.slice(),w=i[1].dims.slice(),[B,y,E]=bA.getShapeOfGemmResult(h,g.transA,w,g.transB,i.length===3?i[2].dims:void 0),F=[B,y];if(!F)throw new Error("Can't use gemm on the given tensors");let N=16,Y=Math.ceil(y/N),te=Math.ceil(B/N),Q=(He.size(F),[{type:12,data:Y},{type:12,data:B},{type:12,data:y},{type:12,data:E},{type:1,data:g.alpha},{type:1,data:g.beta}]),ne=["type","type"];return i.length===3&&(Q.push(...KA(i[2].dims)),ne.push("rank")),Q.push(...KA(F)),{name:"GemmShared",shaderCache:{hint:`${g.cacheKey}`,inputDependencies:ne},getRunData:()=>({outputs:[{dims:F,dataType:i[0].dataType}],dispatchGroup:{x:Y*te},programUniforms:Q}),getShaderSource:oe=>{let de=uA("a",i[0].dataType,i[0].dims),fe=uA("b",i[1].dataType,i[1].dims),ke=null,Me=[de,fe];i.length===3&&(ke=uA("c",i[2].dataType,i[2].dims.length),Me.push(ke));let De=JA("output",i[0].dataType,F.length);Me.push(De);let Le="",Xe="";g.transA&&g.transB?(Xe=` + var col = tile_row_start + local_id.x; + var row = k_start + local_id.y; + if (col < uniforms.M && row < uniforms.K) { + tile_a[local_id.y][local_id.x] = a[row * uniforms.M + col]; + } else { + tile_a[local_id.y][local_id.x] = ${de.type.value}(0); + } + + col = k_start + local_id.x; + row = tile_col_start + local_id.y; + if (col < uniforms.K && row < uniforms.N) { + tile_b[local_id.y][local_id.x] = b[row * uniforms.K + col]; + } else { + tile_b[local_id.y][local_id.x] = ${fe.type.value}(0); + } + `,Le="value += tile_a[k][local_id.y] * tile_b[local_id.x][k];"):g.transA&&!g.transB?(Xe=` + var col = tile_row_start + local_id.x; + var row = k_start + local_id.y; + if (col < uniforms.M && row < uniforms.K) { + tile_a[local_id.y][local_id.x] = a[row * uniforms.M + col]; + } else { + tile_a[local_id.y][local_id.x] = ${de.type.value}(0); + } + + col = tile_col_start + local_id.x; + row = k_start + local_id.y; + if (col < uniforms.N && row < uniforms.K) { + tile_b[local_id.y][local_id.x] = b[row * uniforms.N + col]; + } else { + tile_b[local_id.y][local_id.x] = ${fe.type.value}(0); + } + `,Le="value += tile_a[k][local_id.y] * tile_b[k][local_id.x];"):!g.transA&&g.transB?(Xe=` + var col = k_start + local_id.x; + var row = tile_row_start + local_id.y; + if (col < uniforms.K && row < uniforms.M) { + tile_a[local_id.y][local_id.x] = a[row * uniforms.K + col]; + } else { + tile_a[local_id.y][local_id.x] = ${de.type.value}(0); + } + + col = k_start + local_id.x; + row = tile_col_start + local_id.y; + if (col < uniforms.K && row < uniforms.N) { + tile_b[local_id.y][local_id.x] = b[row * uniforms.K + col]; + } else { + tile_b[local_id.y][local_id.x] = ${fe.type.value}(0); + } + `,Le="value += tile_a[local_id.y][k] * tile_b[local_id.x][k];"):!g.transA&&!g.transB&&(Xe=` + var col = k_start + local_id.x; + var row = tile_row_start + local_id.y; + if (col < uniforms.K && row < uniforms.M) { + tile_a[local_id.y][local_id.x] = a[row * uniforms.K + col]; + } else { + tile_a[local_id.y][local_id.x] = ${de.type.value}(0); + } + + col = tile_col_start + local_id.x; + row = k_start + local_id.y; + if (col < uniforms.N && row < uniforms.K) { + tile_b[local_id.y][local_id.x] = b[row * uniforms.N + col]; + } else { + tile_b[local_id.y][local_id.x] = ${fe.type.value}(0); + } + `,Le="value += tile_a[local_id.y][k] * tile_b[k][local_id.x];");let _e=g.alpha===1?"":"value *= uniforms.alpha;";return` + ${oe.registerUniforms([{name:"num_tile_n",type:"u32"},{name:"M",type:"u32"},{name:"N",type:"u32"},{name:"K",type:"u32"},{name:"alpha",type:"f32"},{name:"beta",type:"f32"}]).declareVariables(...Me)} + var tile_a: array, 16>; + var tile_b: array, 16>; + ${oe.mainStart([N,N,1])} + let tile_col_start = (workgroup_index % uniforms.num_tile_n) * 16; + let tile_row_start = (workgroup_index / uniforms.num_tile_n) * 16; + let num_tiles = (uniforms.K - 1) / 16 + 1; + var k_start = 0u; + var value = ${De.type.value}(0); + for (var t: u32 = 0u; t < num_tiles; t++) { + ${Xe} + k_start = k_start + 16; + workgroupBarrier(); + + for (var k: u32 = 0u; k < 16; k++) { + ${Le} + } + workgroupBarrier(); + } + + ${_e} + let m = tile_row_start + local_id.y; + let n = tile_col_start + local_id.x; + ${ke!=null?`let cOffset = ${ke.broadcastedIndicesToOffset("vec2(m, n)",De)}; value += ${De.type.value}(uniforms.beta) * ${ke.getByOffset("cOffset")};`:""} + if (m < uniforms.M && n < uniforms.N) { + output[m * uniforms.N + n] = value; + } + }`}}},ho=i=>({transA:i.transA,transB:i.transB,alpha:i.alpha,beta:i.beta,cacheKey:`${i.transA};${i.transB};${i.alpha===1}`}),B2=(i,g)=>{k2(i.inputs),i.compute(x2(i.inputs,g))}}),sA=Pe(()=>{Dt(),St(),qr(),Rt(),[Zs,Xs,$n,ei]=[0,1,2,3],y2=i=>{if(i[0].dims.length!==4)throw new Error("only 4-D tensor is supported.");if(i[0].dims.length!==i[1].dims.length)throw new Error("input dimensions must be equal to grid dimensions");if(i[0].dims.length-2!==i[1].dims[i[1].dims.length-1])throw new Error("last dimension of grid must be equal to "+(i[0].dims.length-2));if(i[0].dims[0]!==i[1].dims[0])throw new Error("grid batch size must match input batch size")},E2=i=>` + fn gs_bicubic_interpolate(p: mat4x4<${i}>, x: f32, y: f32) -> ${i} { + var v: vec4; + var coeffs = gs_get_cubic_coeffs(x); + for (var i = 0; i < 4; i++) { + v[i] = coeffs[0] * p[i][0] + coeffs[1] * p[i][1] + coeffs[2] * p[i][2] + coeffs[3] * p[i][3]; + } + coeffs = gs_get_cubic_coeffs(y); + let pixel = ${i}(coeffs[0] * v[0] + coeffs[1] * v[1] + coeffs[2] * v[2] + coeffs[3] * v[3]); + return pixel; + } +`,mo=i=>` + fn gs_denormalize(n: f32, length: i32) -> f32 { + ${i.alignCorners===0?` + // alignCorners: false => [-1, 1] to [-0.5, length - 0.5] + return ((n + 1.0) * f32(length) - 1.0) / 2.0; + `:` + // alignCorners: true => [-1, 1] to [0, length - 1] + return (n + 1.0) / 2.0 * (f32(length - 1)); + `} + } +`,v2=i=>` + ${i.paddingMode==="reflection"?` + fn gs_reflect(x: i32, x_min: f32, x_max: f32) -> u32 { + var dx = 0.0; + var fx = f32(x); + let range = x_max - x_min; + if (fx < x_min) { + dx = x_min - fx; + let n = u32(dx / range); + let r = dx - f32(n) * range; + if (n % 2 == 0) { + fx = x_min + r; + } else { + fx = x_max - r; + } + } else if (fx > x_max) { + dx = fx - x_max; + let n = u32(dx / range); + let r = dx - f32(n) * range; + if (n % 2 == 0) { + fx = x_max - r; + } else { + fx = x_min + r; + } + } + return u32(fx); + }`:""} +`,M2=(i,g,h)=>` + fn pixel_at_grid(r: i32, c: i32, H: i32, W: i32, batch: u32, channel: u32, border: vec4) -> ${g} { + var pixel = ${g}(0); + var indices = vec4(0); + indices[${Zs}] = batch; + indices[${Xs}] = channel;`+(()=>{switch(h.paddingMode){case"zeros":return` + if (r >= 0 && r < H && c >=0 && c < W) { + indices[${$n}] = u32(r); + indices[${ei}] = u32(c); + } + `;case"border":return` + indices[${$n}] = u32(clamp(r, 0, H - 1)); + indices[${ei}] = u32(clamp(c, 0, W - 1)); + `;case"reflection":return` + indices[${$n}] = gs_reflect(r, border[1], border[3]); + indices[${ei}] = gs_reflect(c, border[0], border[2]); + `;default:throw new Error(`padding mode ${h.paddingMode} is not supported`)}})()+` + return ${i.getByIndices("indices")}; + } +`,G2=(i,g,h)=>(()=>{switch(h.mode){case"nearest":return` + let result = pixel_at_grid(i32(round(y)), i32(round(x)), H_in, W_in, indices[${Zs}], indices[${Xs}], border); + `;case"bilinear":return` + let x1 = i32(floor(x)); + let y1 = i32(floor(y)); + let x2 = x1 + 1; + let y2 = y1 + 1; + + let p11 = pixel_at_grid(y1, x1, H_in, W_in, indices[${Zs}], indices[${Xs}], border); + let p12 = pixel_at_grid(y1, x2, H_in, W_in, indices[${Zs}], indices[${Xs}], border); + let p21 = pixel_at_grid(y2, x1, H_in, W_in, indices[${Zs}], indices[${Xs}], border); + let p22 = pixel_at_grid(y2, x2, H_in, W_in, indices[${Zs}], indices[${Xs}], border); + + let dx2 = ${g}(f32(x2) - x); + let dx1 = ${g}(x - f32(x1)); + let dy2 = ${g}(f32(y2) - y); + let dy1 = ${g}(y - f32(y1)); + let result = dy2 * (dx2 * p11 + dx1 * p12) + dy1 * (dx2 * p21 + dx1 * p22); + `;case"bicubic":return` + let x0 = i32(floor(x)) - 1; + let y0 = i32(floor(y)) - 1; + var p: mat4x4<${g}>; + for (var h = 0; h < 4; h++) { + for (var w = 0; w < 4; w++) { + p[h][w] = pixel_at_grid(h + y0, w + x0, H_in, W_in, indices[${Zs}], indices[${Xs}], border); + } + } + + let dx = x - f32(x0 + 1); + let dy = y - f32(y0 + 1); + let result = gs_bicubic_interpolate(p, dx, dy); + `;default:throw new Error(`mode ${h.mode} is not supported`)}})()+`${i.setByOffset("global_idx","result")}`,D2=(i,g)=>{let h=uA("x",i[0].dataType,i[0].dims.length),w=[i[1].dims[0],i[1].dims[1],i[1].dims[2]],B=uA("grid",i[1].dataType,w.length,2),y=[i[0].dims[0],i[0].dims[1],i[1].dims[1],i[1].dims[2]];g.format==="NHWC"&&(y=[i[0].dims[0],i[1].dims[1],i[1].dims[2],i[0].dims[3]],[Zs,Xs,$n,ei]=[0,3,1,2]);let E=JA("output",i[0].dataType,y.length),F=h.type.value,N=[{type:12,data:He.size(y)},...KA(i[0].dims,w,y)];return{name:"GridSample",shaderCache:{hint:`${g.cacheKey}`,inputDependencies:["type","type"]},getRunData:Y=>{let te=He.size(y);return{outputs:[{dims:y,dataType:Y[0].dataType}],dispatchGroup:{x:Math.ceil(te/64)},programUniforms:N}},getShaderSource:Y=>` + ${Y.registerUniform("output_size","u32").declareVariables(h,B,E)} + + fn gs_get_cubic_coeffs(x: f32) -> vec4 { + let cubic_alpha = -0.75f; + let x_abs = abs(x); + var coeffs: vec4; + coeffs[0] = (((cubic_alpha * (x_abs + 1) - 5 * cubic_alpha) * (x_abs + 1) + 8 * cubic_alpha) * (x_abs + 1) - 4 * cubic_alpha); + coeffs[1] = (((cubic_alpha + 2) * x_abs - (cubic_alpha + 3)) * x_abs * x_abs + 1); + coeffs[2] = (((cubic_alpha + 2) * (1 - x_abs) - (cubic_alpha + 3)) * (1 - x_abs) * (1 - x_abs) + 1); + coeffs[3] = (((cubic_alpha * (2 - x_abs) - 5 * cubic_alpha) * (2 - x_abs) + 8 * cubic_alpha) * (2 - x_abs) - 4 * cubic_alpha); + return coeffs; + } + + ${E2(F)} + ${mo(g)} + ${v2(g)} + ${M2(h,F,g)} + + ${Y.mainStart()} + ${Y.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let H_in = i32(uniforms.x_shape[${$n}]); + let W_in = i32(uniforms.x_shape[${ei}]); + + ${g.alignCorners===0?` + let x_min = -0.5; + let x_max = f32(W_in) - 0.5; + let y_min = -0.5; + let y_max = f32(H_in) - 0.5; + `:` + let x_min = 0.0; + let x_max = f32(W_in) - 1.0; + let y_min = 0.0; + let y_max = f32(H_in) - 1.0; + `}; + let border = vec4(x_min, y_min, x_max, y_max); + + let indices = ${E.offsetToIndices("global_idx")}; + var grid_indices = vec3(indices[${Zs}], indices[${$n}], indices[${ei}]); + let nxy = ${B.getByIndices("grid_indices")}; + var x = gs_denormalize(f32(nxy[0]), W_in); + var y = gs_denormalize(f32(nxy[1]), H_in); + + ${G2(E,F,g)} + }`}},Q2=(i,g)=>{y2(i.inputs),i.compute(D2(i.inputs,g))},T2=i=>$e({alignCorners:i.align_corners,mode:i.mode,paddingMode:i.padding_mode,format:i.format})}),gA=Pe(()=>{Dt(),St(),qr(),s1(),i1(),Rt(),ri(),Ha=(i,g)=>i.length>g&&i[g].dims.length>0?i[g]:void 0,P2=(i,g)=>{let h=i[0],w=Ha(i,1),B=Ha(i,2),y=Ha(i,3),E=Ha(i,4),F=Ha(i,5),N=Ha(i,6),Y=Ha(i,7);if(h.dims.length!==3&&h.dims.length!==5)throw new Error("Input query is expected to have 3 or 5 dimensions");let te,Q=h.dims[0],ne=h.dims[1],oe=h.dims.length===3?h.dims[2]:g.numHeads*h.dims[4],de=ne,fe=0,ke=0,Me=Math.floor(oe/g.numHeads);if(N&&Y&&He.size(N.dims)&&He.size(Y.dims)){if(N.dims.length!==4)throw new Error('Input "past_key" is expected to have 4 dimensions');if(N.dims[0]!==Q||N.dims[1]!==g.numHeads||N.dims[3]!==Me)throw new Error('Input "past_key" shape (batch_size, num_heads, past_sequence_length, head_size)');if(Y.dims[0]!==Q||Y.dims[1]!==g.numHeads||Y.dims[3]!==Me)throw new Error('Input "past_value" shape (batch_size, num_heads, past_sequence_length, head_size)');if(N.dims[2]!==Y.dims[2])throw new Error('Input "past_key" and "past_value" shall have same dim 2 (past_sequence_length)');if(Y.dims.length!==4)throw new Error('Input "past_value" is expected to have 4 dimensions');fe=N.dims[2],ke=N.dims[2]}else if(N&&He.size(N.dims)||Y&&He.size(Y.dims))throw new Error('Input "past_key" and "past_value" shall be both present or both absent');if(w&&He.size(w.dims)>0){if(h.dims.length!==3)throw new Error('Input "query" is expected to have 3 dimensions when key is given');if(w.dims.length<3||w.dims.length>5)throw new Error('Input "key" is expected to have 3, 4, or 5 dimensions');if(h.dims[0]!==w.dims[0])throw new Error('Input "query" and "key" shall have same dim 0 (batch size)');if(w.dims.length===3){if(w.dims[2]!==h.dims[2])throw new Error('Input "query" and "key" shall have same dim 2 (hidden_size)');te=2,de=w.dims[1]}else if(w.dims.length===5){if(w.dims[2]!==g.numHeads||w.dims[3]!==2||w.dims[4]!==Me)throw new Error('Expect "key" shape (batch_size, kv_sequence_length, num_heads, 2, head_size) for packed kv');if(B)throw new Error('Expect "value" be none when "key" has packed kv format.');te=5,de=w.dims[1]}else{if(w.dims[1]!==g.numHeads||w.dims[3]!==Me)throw new Error('Expect "key" shape (batch_size, num_heads, kv_sequence_length, head_size) for past_key');te=0,de=w.dims[2]}}else{if(h.dims.length!==5)throw new Error('Input "query" is expected to have 5 dimensions when key is empty');if(h.dims[2]!==g.numHeads||h.dims[3]!==3)throw new Error('Expect "query" shape (batch_size, kv_sequence_length, num_heads, 3, head_size) for packed kv');te=3}if(y&&He.size(y.dims)>0){if(y.dims.length!==1)throw new Error('Input "bias" is expected to have 1 dimension');if(w&&w.dims.length===5&&w.dims[3]===2)throw new Error("bias is not allowed for packed kv.")}let De=fe+de,Le=0;if(E&&He.size(E.dims)>0){Le=8;let lA=E.dims;throw lA.length===1?lA[0]===Q?Le=1:lA[0]===3*Q+2&&(Le=3):lA.length===2&&lA[0]===Q&&lA[1]===De&&(Le=5),Le===8?new Error('Input "key_padding_mask" shape shall be (batch_size) or (batch_size, total_sequence_length)'):new Error("Mask not supported")}let Xe=!1,_e=oe;if(B&&He.size(B.dims)>0){if(B.dims.length!==3&&B.dims.length!==4)throw new Error('Input "value" is expected to have 3 or 4 dimensions');if(h.dims[0]!==B.dims[0])throw new Error('Input "query" and "value" shall have same dim 0 (batch_size)');if(B.dims.length===3){if(de!==B.dims[1])throw new Error('Input "key" and "value" shall have the same dim 1 (kv_sequence_length)');_e=B.dims[2]}else{if(de!==B.dims[2])throw new Error('Input "key" and "value" shall have the same dim 2 (kv_sequence_length)');_e=B.dims[1]*B.dims[3],Xe=!0}}if(E&&He.size(E.dims)>0)throw new Error("Key padding mask is not supported");if(F&&He.size(F.dims)>0){if(F.dims.length!==4)throw new Error('Input "attention_bias" is expected to have 4 dimensions');if(F.dims[0]!==Q||F.dims[1]!==g.numHeads||F.dims[2]!==ne||F.dims[3]!==De)throw new Error('Expect "attention_bias" shape (batch_size, num_heads, sequence_length, total_sequence_length)')}return{batchSize:Q,sequenceLength:ne,pastSequenceLength:fe,kvSequenceLength:de,totalSequenceLength:De,maxSequenceLength:ke,inputHiddenSize:0,hiddenSize:oe,vHiddenSize:_e,headSize:Me,vHeadSize:Math.floor(_e/g.numHeads),numHeads:g.numHeads,isUnidirectional:!1,pastPresentShareBuffer:!1,maskFilterValue:g.maskFilterValue,maskType:Le,scale:g.scale,broadcastResPosBias:!1,passPastInKv:Xe,qkvFormat:te}},z2=i=>$e({...i}),U0=$e({perm:[0,2,1,3]}),F2=(i,g,h,w,B,y,E)=>{let F=[w,B,y],N=He.size(F),Y=[{type:12,data:N},{type:12,data:E},{type:12,data:y}];return i.compute({name:"MultiHeadAttentionAddBias",shaderCache:{inputDependencies:["type","type"]},getRunData:()=>({outputs:[{dims:F,dataType:g.dataType,gpuDataType:0}],dispatchGroup:{x:Math.ceil(N/64)},programUniforms:Y}),getShaderSource:te=>{let Q=JA("qkv_with_bias",g.dataType,F),ne=uA("qkv",g.dataType,F),oe=uA("bias",h.dataType,F);return` + ${te.registerUniforms([{name:"output_size",type:"u32"},{name:"bias_offset",type:"u32"},{name:"hidden_size",type:"u32"}]).declareVariables(ne,oe,Q)} + ${te.mainStart()} + ${te.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let bias_offset_idx = (global_idx % uniforms.hidden_size) + uniforms.bias_offset; + + qkv_with_bias[global_idx] = qkv[global_idx] + bias[bias_offset_idx]; + }`}},{inputs:[g,h],outputs:[-1]})[0]},P0=(i,g,h,w,B,y,E,F)=>{let N=y;if(E&&He.size(E.dims)>0){if(w===1)throw new Error("AddBiasReshape is not implemented. Please export your model with packed QKV or KV");return N=F2(i,y,E,g,w,h*B,F),N=N.reshape([g,w,h,B]),h===1||w===1?N:i.compute(Ma(N,U0.perm),{inputs:[N],outputs:[-1]})[0]}return y.dims.length===3&&(N=y.reshape([g,w,h,B])),h===1||w===1?N:i.compute(Ma(N,U0.perm),{inputs:[N],outputs:[-1]})[0]},Tn=(i,g)=>{let h=P2(i.inputs,g),w=i.inputs[0],B=Ha(i.inputs,1),y=Ha(i.inputs,2),E=Ha(i.inputs,3),F=Ha(i.inputs,4),N=Ha(i.inputs,5),Y=Ha(i.inputs,6),te=Ha(i.inputs,7);if(w.dims.length===5)throw new Error("Packed QKV is not implemented");if(B?.dims.length===5)throw new Error("Packed KV is not implemented");let Q=B&&y&&B.dims.length===4&&y.dims.length===4,ne=P0(i,h.batchSize,h.numHeads,h.sequenceLength,h.headSize,w,E,0);if(Q)return fs(i,ne,B,y,F,void 0,Y,te,N,h);if(!B||!y)throw new Error("key and value must be provided");let oe=P0(i,h.batchSize,h.numHeads,h.kvSequenceLength,h.headSize,B,E,h.hiddenSize),de=P0(i,h.batchSize,h.numHeads,h.kvSequenceLength,h.vHeadSize,y,E,2*h.hiddenSize);fs(i,ne,oe,de,F,void 0,Y,te,N,h)}}),FA=Pe(()=>{Dt(),St(),qr(),Rt(),S2=i=>{if(!i||i.length<1)throw new Error("too few inputs")},N2=(i,g)=>{let h=[],w=g.numOutputs;return i[1].dims[0]>0&&(i[1].getBigInt64Array().forEach(B=>h.push(Number(B))),w=h.length),$e({numOutputs:w,axis:g.axis,splitSizes:h})},O2=i=>` +fn calculateOutputIndex(index: u32) -> u32 { + for (var i: u32 = 0u; i < ${i}u; i += 1u ) { + if (index < ${rt("uniforms.size_in_split_axis","i",i)}) { + return i; + } + } + return ${i}u; +}`,L2=i=>{let g=i.length,h=[];for(let w=0;w{let h=i[0].dims,w=He.size(h),B=i[0].dataType,y=He.normalizeAxis(g.axis,h.length),E=new Array(g.numOutputs),F=uA("input",B,h.length),N=new Array(g.numOutputs),Y=[],te=[],Q=0,ne=[{type:12,data:w}];for(let oe=0;oe` + ${oe.registerUniform("input_size","u32").registerUniform("size_in_split_axis","u32",N.length).declareVariables(F,...E)} + ${O2(N.length)} + ${L2(E)} + + ${oe.mainStart()} + ${oe.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.input_size")} + + var indices = ${F.offsetToIndices("global_idx")}; + var index = ${F.indicesGet("indices",y)}; + let output_number = calculateOutputIndex(index); + if (output_number != 0) { + index -= ${rt("uniforms.size_in_split_axis","output_number - 1u",N.length)}; + ${F.indicesSet("indices",y,"index")}; + } + writeBufferData(output_number, indices, global_idx); + }`,getRunData:()=>({outputs:Y,dispatchGroup:{x:Math.ceil(w/64)},programUniforms:ne})}},Y2=(i,g)=>{S2(i.inputs);let h=i.inputs.length===1?g:N2(i.inputs,g);i.compute(K0(i.inputs,h),{inputs:[0]})},H2=i=>{let g=i.axis,h=i.splitSizes,w=i.numOutputs<0?h.length:i.numOutputs;if(w!==h.length)throw new Error("numOutputs and splitSizes lengh must be equal");return $e({axis:g,numOutputs:w,splitSizes:h})}}),XA=Pe(()=>{qr(),i1(),gA(),FA(),ri(),R2=(i,g)=>{if(g.doRotary)throw new Error("GroupQuerryAttention do_rotary attribute is not supported");if(g.doRotary&&i.length<=7)throw new Error("cos_cache and sin_cache inputs are required if do_rotary is specified");let h=i[0],w=i[1],B=i[2],y=i[3],E=i[4];if(g.localWindowSize!==-1)throw new Error("Local attention is not supported");if(g.softcap!==0)throw new Error("Softcap is not supported");if(g.rotaryInterleaved!==0)throw new Error("Rotary interleaved is not supported");if(g.smoothSoftmax)throw new Error("Smooth softmax is not supported");if(h.dims.length!==3&&h.dims.length!==5)throw new Error("Input query is expected to have 3 or 5 dimensions");let F=h.dims[0],N=h.dims[1],Y=h.dims.length===3?h.dims[2]:g.numHeads*h.dims[4],te=N,Q=0,ne=!w||w.dims.length===0,oe=Math.floor(ne?Y/(g.numHeads+2*g.kvNumHeads):Y/g.numHeads);ne&&(Y=oe*g.numHeads);let de=y&&y.dims.length!==0,fe=E&&E.dims.length!==0;if(de&&y.dims.length===4&&y.dims[0]===F&&y.dims[1]!==g.kvNumHeads&&y.dims[2]===g.kvNumHeads&&y.dims[3]===oe)throw new Error("BSNH pastKey/pastValue is not supported");if(de&&fe){if(y.dims.length!==4)throw new Error('Input "past_key" is expected to have 4 dimensions');if(E.dims.length!==4)throw new Error('Input "past_value" is expected to have 4 dimensions');Q=y.dims[2]}else if(de||fe)throw new Error('Input "past_key" and "past_value" shall be both present or both absent');let ke=1;if(w&&w.dims.length>0){if(h.dims.length!==3)throw new Error('Input "query" is expected to have 3 dimensions when key is given');if(w.dims.length<3||w.dims.length>5)throw new Error('Input "key" is expected to have 3, 4, or 5 dimensions');if(h.dims[0]!==w.dims[0])throw new Error('Input "query" and "key" shall have same dim 0 (batch size)');if(w.dims.length===3){if(h.dims[2]%w.dims[2]!=0)throw new Error('Dimension 2 of "query" should be a multiple of "key"');te=w.dims[1]}else if(w.dims.length===5){if(w.dims[2]!==g.numHeads||w.dims[3]!==2||w.dims[4]!==oe)throw new Error('Expect "key" shape (batch_size, kv_sequence_length, num_heads, 2, head_size) for packed kv');if(B)throw new Error('Expect "value" be none when "key" has packed kv format.');te=w.dims[1]}else{if(w.dims[1]!==g.numHeads||w.dims[3]!==oe)throw new Error('Expect "key" shape (batch_size, num_heads, kv_sequence_length, head_size) for past_key');te=w.dims[2]}}else{if(h.dims.length!==3&&h.dims.length!==5)throw new Error('Input "query" is expected to have 3 or 5 dimensions when key is empty');if(h.dims.length===5&&(h.dims[2]!==g.numHeads||h.dims[3]!==3))throw new Error('Expect "query" shape (batch_size, kv_sequence_length, num_heads, 3, head_size) for packed kv');ke=3}let Me=!1,De=g.kvNumHeads?oe*g.kvNumHeads:Y;if(B&&B.dims.length>0){if(B.dims.length!==3&&B.dims.length!==4)throw new Error('Input "value" is expected to have 3 or 4 dimensions');if(h.dims[0]!==B.dims[0])throw new Error('Input "query" and "value" shall have same dim 0 (batch_size)');if(B.dims.length===3){if(te!==B.dims[1])throw new Error('Input "key" and "value" shall have the same dim 1 (kv_sequence_length)');De=B.dims[2]}else{if(te!==B.dims[2])throw new Error('Input "past_key" and "past_value" shall have the same dim 2 (kv_sequence_length)');De=B.dims[1]*B.dims[3],Me=!0}}let Le=i.length>4?i[5]:void 0;if(Le&&Le.dims.length!==1&&Le.dims[0]!==F)throw new Error('Input "seqlens" is expected to have 1 dimension and the same dim 0 as batch_size');return{batchSize:F,sequenceLength:N,pastSequenceLength:Q,kvSequenceLength:te,totalSequenceLength:-1,maxSequenceLength:-1,inputHiddenSize:0,hiddenSize:Y,vHiddenSize:De,headSize:oe,vHeadSize:Math.floor(De/g.kvNumHeads),numHeads:g.numHeads,kvNumHeads:g.kvNumHeads,nReps:g.numHeads/g.kvNumHeads,pastPresentShareBuffer:!1,maskType:0,scale:g.scale,broadcastResPosBias:!1,passPastInKv:Me,qkvFormat:ke}},W2=$e({perm:[0,2,1,3]}),z0=(i,g,h)=>{let w=g,B=h.kvNumHeads;return g.dims.length===3&&h.kvSequenceLength!==0&&(w=g.reshape([h.batchSize,h.kvSequenceLength,B,h.headSize]),w=i.compute(Ma(w,W2.perm),{inputs:[w],outputs:[-1]})[0]),w},V2=(i,g)=>{let h=R2(i.inputs,g);if(i.inputs[0].dims.length===5)throw new Error("Packed QKV is not implemented");if(i.inputs[1]?.dims.length===5)throw new Error("Packed KV is not implemented");let w=i.inputs[0],B=i.inputs[1]&&i.inputs[1].dims.length>0?i.inputs[1]:void 0,y=i.inputs[2]&&i.inputs[2].dims.length>0?i.inputs[2]:void 0,E=i.inputs[3]&&i.inputs[3].dims.length!==0?i.inputs[3]:void 0,F=i.inputs[4]&&i.inputs[4].dims.length!==0?i.inputs[4]:void 0,N=i.inputs.length>4?i.inputs[5]:void 0,Y=i.inputs.length>5?i.inputs[6]:void 0,te=h.kvNumHeads?h.kvNumHeads:h.numHeads,Q=$e({axis:2,numOutputs:3,splitSizes:[h.numHeads*h.headSize,te*h.headSize,te*h.headSize]}),[ne,oe,de]=B||y?[w,B,y]:i.compute(K0([w],Q),{inputs:[w],outputs:[-1,-1,-1]}),fe=P0(i,h.batchSize,h.numHeads,h.sequenceLength,h.headSize,ne,void 0,0);fs(i,fe,z0(i,oe,h),z0(i,de,h),void 0,void 0,E,F,void 0,h,N,Y)}}),WA=Pe(()=>{Dt(),St(),ri(),Rt(),Co=(i,g,h,w,B,y,E,F)=>{let N=Jt(y),Y=N===1?"f32":`vec${N}f`,te=N===1?"vec2f":`mat2x${N}f`,Q=B*E,ne=64;Q===1&&(ne=256);let oe=[B,E,y/N],de=[B,E,2],fe=[];return fe.push(...KA(oe,de)),i.compute({name:"InstanceNormComputeChannelScaleShift",shaderCache:{hint:`${N};${F};${ne}`,inputDependencies:["rank","type","type"]},getRunData:()=>({outputs:[{dims:de,dataType:1}],dispatchGroup:{x:Q},programUniforms:fe}),getShaderSource:ke=>{let Me=uA("x",g.dataType,3,N),De=[Me,uA("scale",h.dataType,h.dims),uA("bias",w.dataType,w.dims),JA("output",1,3,2)];return` + var workgroup_shared : array<${te}, ${ne}>; + const workgroup_size = ${ne}u; + ${ke.declareVariables(...De)} + ${ke.mainStart(ne)} + let batch = workgroup_index / uniforms.x_shape[1]; + let channel = workgroup_index % uniforms.x_shape[1]; + let hight = uniforms.x_shape[2]; + // initialize workgroup memory + var sum = ${Y}(0); + var squared_sum = ${Y}(0); + for (var h = local_idx; h < hight; h += workgroup_size) { + let value = ${Y}(${Me.get("batch","channel","h")}); + sum += value; + squared_sum += value * value; + } + workgroup_shared[local_idx] = ${te}(sum, squared_sum); + workgroupBarrier(); + + for (var currSize = workgroup_size >> 1; currSize > 0; currSize = currSize >> 1) { + if (local_idx < currSize) { + workgroup_shared[local_idx] = workgroup_shared[local_idx] + workgroup_shared[local_idx + currSize]; + } + workgroupBarrier(); + } + if (local_idx == 0) { + let sum_final = ${nr("workgroup_shared[0][0]",N)} / f32(hight * ${N}); + let squared_sum_final = ${nr("workgroup_shared[0][1]",N)} / f32(hight * ${N}); + + let inv_std_dev = inverseSqrt(squared_sum_final - sum_final * sum_final + f32(${F})); + let channel_scale = inv_std_dev * f32(scale[channel]); + let channel_shift = f32(bias[channel]) - sum_final * channel_scale; + output[workgroup_index] = vec2f(channel_scale, channel_shift); + } + }`}},{inputs:[g,h,w],outputs:[-1]})[0]},j2=(i,g,h)=>{let w=g[0].dims,B=w,y=w[0],E=w[1],F=He.sizeFromDimension(w,2),N=Jt(F),Y=He.size(B)/N,te=Co(i,g[0],g[1],g[2],y,F,E,h.epsilon),Q=[y,E,F/N],ne=[y,E];i.compute({name:"InstanceNormalization",shaderCache:{hint:`${N}`,inputDependencies:["type","none"]},getRunData:()=>({outputs:[{dims:B,dataType:g[0].dataType}],dispatchGroup:{x:Math.ceil(Y/64)},programUniforms:[{type:12,data:Y},...KA(Q,ne,Q)]}),getShaderSource:oe=>{let de=uA("x",g[0].dataType,Q.length,N),fe=uA("scale_shift",1,ne.length,2),ke=JA("output",g[0].dataType,Q.length,N),Me=[de,fe,ke];return` + ${oe.registerUniform("output_size","u32").declareVariables(...Me)} + ${oe.mainStart()} + ${oe.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let outputIndices = ${ke.offsetToIndices("global_idx")}; + let batch = outputIndices[0]; + let channel = outputIndices[1]; + let scale_shift = ${fe.getByIndices("vec2(batch, channel)")}; + let value = ${de.getByOffset("global_idx")} * ${ke.type.value}(scale_shift.x) + ${ke.type.value}(scale_shift.y); + ${ke.setByOffset("global_idx","value")}; + }`}},{inputs:[g[0],te]})},F0=(i,g,h)=>{let w=g[0].dims,B=w,y=w[0],E=w[w.length-1],F=He.sizeFromDimension(w,1)/E,N=Jt(E),Y=He.size(B)/N,te=[{type:12,data:F},{type:12,data:Math.floor(E/N)}],Q=!1,ne=[0,w.length-1];for(let fe=0;few[ne[ke]])),de=Co(i,oe,g[1],g[2],y,F,E,h.epsilon);i.compute({name:"InstanceNormalizationNHWC",shaderCache:{hint:`${N}`,inputDependencies:["type","type"]},getRunData:()=>({outputs:[{dims:B,dataType:g[0].dataType}],dispatchGroup:{x:Math.ceil(Y/64)},programUniforms:te}),getShaderSource:fe=>{let ke=jt(g[0].dataType),Me=N===1?"vec2f":`mat${N}x2f`,De=_e=>{let lA=_e===0?"x":"y",LA=N===1?"f32":`vec${N}f`;switch(N){case 1:return`${ke}(${LA}(scale.${lA}))`;case 2:return`vec2<${ke}>(${LA}(scale[0].${lA}, scale[1].${lA}))`;case 4:return`vec4<${ke}>(${LA}(scale[0].${lA}, scale[1].${lA}, scale[2].${lA}, scale[3].${lA}))`;default:throw new Error(`Not supported compoents ${N}`)}},Le=uA("input",g[0].dataType,g[0].dims,N),Xe=JA("output",g[0].dataType,B,N);return` + @group(0) @binding(0) var input : array<${Le.type.storage}>; + @group(0) @binding(1) var scale_input : array<${Me}>; + @group(0) @binding(2) var output : array<${Xe.type.storage}>; + struct Uniforms {H: u32, C : u32}; + @group(0) @binding(3) var uniforms: Uniforms; + + ${fe.mainStart()} + let current_image_number = global_idx / (uniforms.C * uniforms.H); + let current_channel_number = global_idx % uniforms.C; + + let scale_offset = current_image_number * uniforms.C + current_channel_number; + let scale = scale_input[scale_offset]; + output[global_idx] = fma(input[global_idx], ${De(0)}, ${De(1)}); + }`}},{inputs:[g[0],de]})},U2=(i,g)=>{g.format==="NHWC"?F0(i,i.inputs,g):j2(i,i.inputs,g)}}),_A=Pe(()=>{Dt(),St(),Rt(),K2=i=>{if(!i||i.length<2)throw new Error("layerNorm requires at least 2 inputs.")},Z2=(i,g,h)=>{let w=g.simplified,B=i[0].dims,y=i[1],E=!w&&i[2],F=B,N=He.normalizeAxis(g.axis,B.length),Y=He.sizeToDimension(B,N),te=He.sizeFromDimension(B,N),Q=He.size(y.dims),ne=E?He.size(E.dims):0;if(Q!==te||E&&ne!==te)throw new Error(`Size of X.shape()[axis:] == ${te}. + Size of scale and bias (if provided) must match this. + Got scale size of ${Q} and bias size of ${ne}`);let oe=[];for(let Xe=0;Xe1,De=h>2,Le=[{dims:F,dataType:i[0].dataType}];return Me&&Le.push({dims:oe,dataType:1}),De&&Le.push({dims:oe,dataType:1}),{name:"LayerNormalization",shaderCache:{hint:`${de};${h};${w}`,inputDependencies:fe},getRunData:()=>({outputs:Le,dispatchGroup:{x:Math.ceil(Y/64)},programUniforms:ke}),getShaderSource:Xe=>{let _e=jt(i[0].dataType),lA=[uA("x",i[0].dataType,i[0].dims,de),uA("scale",y.dataType,y.dims,de)];return E&&lA.push(uA("bias",E.dataType,E.dims,de)),lA.push(JA("output",i[0].dataType,F,de)),Me&&lA.push(JA("mean_data_output",1,oe)),De&&lA.push(JA("inv_std_output",1,oe)),` + ${Xe.registerUniforms([{name:"norm_count",type:"u32"},{name:"norm_size",type:"f32"},{name:"norm_size_vectorized",type:"u32"},{name:"epsilon",type:"f32"}]).declareVariables(...lA)} + ${Xe.mainStart()} + ${Xe.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.norm_count")} + let offset = global_idx * uniforms.norm_size_vectorized; + var mean_vector = ${La("f32",de)}; + var mean_square_vector = ${La("f32",de)}; + + for (var h: u32 = 0u; h < uniforms.norm_size_vectorized; h++) { + let value = ${fa(_e,de,"x[h + offset]")}; + mean_vector += value; + mean_square_vector += value * value; + } + let mean = ${nr("mean_vector",de)} / uniforms.norm_size; + let inv_std_dev = inverseSqrt(${nr("mean_square_vector",de)} / uniforms.norm_size ${w?"":"- mean * mean"} + uniforms.epsilon); + + for (var j: u32 = 0; j < uniforms.norm_size_vectorized; j++) { + let f32input = ${fa(_e,de,"x[j + offset]")}; + let f32scale = ${fa(_e,de,"scale[j]")}; + output[j + offset] = ${lA[0].type.value}((f32input ${w?"":"- mean"}) * inv_std_dev * f32scale + ${E?`+ ${fa(_e,de,"bias[j]")}`:""} + ); + } + + ${Me?"mean_data_output[global_idx] = mean":""}; + ${De?"inv_std_output[global_idx] = inv_std_dev":""}; + }`}}},X2=(i,g)=>{K2(i.inputs),i.compute(Z2(i.inputs,g,i.outputCount))}}),ft=Pe(()=>{St(),c1(),u1(),Z0=i=>{if(!i||i.length!==2)throw new Error("MatMul requires 2 inputs.");if(i[0].dims[i[0].dims.length-1]!==i[1].dims[i[1].dims.length-2])throw new Error("shared dimension does not match.")},q2=i=>{Z0(i.inputs);let g=NA.calcShape(i.inputs[0].dims,i.inputs[1].dims,!0);if(!g)throw new Error("Can't use matmul on the given tensors");let h=g[g.length-1],w=i.inputs[0].dims[i.inputs[0].dims.length-1];if(h<8&&w<8)i.compute(Gn(i.inputs,{activation:""},g));else{let B=g[g.length-2],y=He.size(i.inputs[0].dims.slice(0,-2)),E=He.size(i.inputs[1].dims.slice(0,-2));if(y!==1&&B===1&&E===1){let F=[1,y,h],N=[i.inputs[0].reshape([1,y,w]),i.inputs[1].reshape([1,w,h])];i.compute(A(N,{activation:""},g,F),{inputs:N})}else i.compute(A(i.inputs,{activation:""},g))}}}),ut=Pe(()=>{Dt(),St(),qr(),Rt(),J2=(i,g)=>{if(i.length<3||i.length>4)throw new Error("MatMulNBits requires 3 or 4 inputs");let h=i[0],w=h.dims.length;if(h.dims[w-1]!==g.k)throw new Error("The last dim of input shape does not match the k value");let B=Math.floor((g.k+g.blockSize-1)/g.blockSize),y=g.blockSize/8*g.bits,E=i[1];if(!He.areEqual(E.dims,[g.n,B,y]))throw new Error("The second inputs must be 3D tensor with shape N X nBlocksPerCol X blobSize");let F=i[2].dims;if(He.size(F)!==g.n*B)throw new Error("scales input size error.");if(i.length===4){let N=i[3].dims,Y=g.bits>4?g.n*B:g.n*Math.floor((B+1)/2);if(He.size(N)!==Y)throw new Error("zeroPoints input size error.")}},_2=(i,g)=>{let h=i[0].dims,w=h.length,B=h[w-2],y=g.k,E=g.n,F=h.slice(0,w-2),N=He.size(F),Y=i[1].dims[2]/4,te=i[0].dataType,Q=Jt(g.k),ne=Jt(Y),oe=Jt(E),de=F.concat([B,E]),fe=B>1&&E/oe%2==0?2:1,ke=He.size(de)/oe/fe,Me=64,De=[],Le=[N,B,y/Q],Xe=He.convertShape(i[1].dims).slice();Xe.splice(-1,1,Y/ne),De.push(...KA(Le)),De.push(...KA(Xe)),De.push(...KA(i[2].dims)),i.length===4&&De.push(...KA(He.convertShape(i[3].dims)));let _e=[N,B,E/oe];return De.push(...KA(_e)),{name:"MatMulNBits",shaderCache:{hint:`${g.blockSize};${g.bits};${Q};${ne};${oe};${fe};64`,inputDependencies:Array(i.length).fill("rank")},getRunData:()=>({outputs:[{dims:de,dataType:te}],dispatchGroup:{x:ke},programUniforms:De}),getShaderSource:lA=>{let LA=Le.length,st=uA("a",i[0].dataType,LA,Q),ht=uA("b",12,Xe.length,ne),pt=uA("scales",i[2].dataType,i[2].dims.length),mt=[st,ht,pt],yt=i.length===4?uA("zero_points",12,i[3].dims.length):void 0;yt&&mt.push(yt);let tt=_e.length,lt=JA("output",i[0].dataType,tt,oe),wA=jt(i[0].dataType),UA=(()=>{switch(Q){case 1:return`array<${wA}, 8>`;case 2:return`mat4x2<${wA}>`;case 4:return`mat2x4<${wA}>`;default:throw new Error(`${Q}-component is not supported.`)}})();return` + var workgroup_shared: array<${lt.type.value}, ${fe*Me}>; + ${lA.declareVariables(...mt,lt)} + ${lA.mainStart([Me,1,1])} + let output_indices = ${lt.offsetToIndices(`(global_idx / 64) * ${fe}`)}; + let col = output_indices[2]; + let row = output_indices[1]; + let batch = output_indices[0]; + let nBlocksPerCol = uniforms.b_shape[1]; + + for (var block = local_id.x; block < nBlocksPerCol; block += 64) { + //process one block + var word_offset: u32 = block * ${g.blockSize/Q}; + ${(()=>{let At=` + var col_index = col * ${oe}; + ${yt?` + let zero_point_bytes_per_col = (nBlocksPerCol + 1) / 2; + var zero_point_byte_count: u32; + var zero_point_word_index: u32; + var zero_point_byte_offset: u32; + let zero_point_nibble_offset: u32 = block & 0x1u; + var zero_point_bits_offset: u32; + var zero_point_word: u32;`:` + // The default zero point is 8 for unsigned 4-bit quantization. + let zero_point = ${wA}(8);`} + `;for(let Et=0;Et> 0x1u); + zero_point_word_index = zero_point_byte_count >> 0x2u; + zero_point_byte_offset = zero_point_byte_count & 0x3u; + zero_point_bits_offset = (zero_point_byte_offset << 3) + (zero_point_nibble_offset << 2); + zero_point_word = ${yt.getByOffset("zero_point_word_index")} >> zero_point_bits_offset; + let zero_point${Et} = ${wA}((zero_point_word) & 0xFu);`:""} + col_index += 1;`;return At})()} + for (var word: u32 = 0; word < ${Y}; word += ${ne}) { + ${(()=>{let At=`col_index = col * ${oe};`;for(let Et=0;Et; + var b_value_upper: vec4; + var b_quantized_values: ${UA}; + var b_dequantized_values: ${UA};`,At})()} + for (var i: u32 = 0; i < ${ne}; i++) { + ${(()=>{let At=` + // reuse a data + var input_offset = ${st.indicesToOffset(`${st.type.indices}(batch, row, word_offset)`)}; + var a_data: ${UA}; + for (var j: u32 = 0; j < ${8/Q}; j++) { + a_data[j] = ${st.getByOffset("input_offset")}; + input_offset++; + } + `;for(let Et=0;Et> 4) & b_mask); + b_quantized_values = ${UA}(${Array.from({length:4},(ur,la)=>`${wA}(b_value_lower[${la}]), ${wA}(b_value_upper[${la}])`).join(", ")}); + b_dequantized_values = ${Q===1?`${UA}(${Array.from({length:8},(ur,la)=>`(b_quantized_values[${la}] - ${yt?`zero_point${Et}`:"zero_point"}) * scale${Et}`).join(", ")});`:`(b_quantized_values - ${UA}(${Array(8).fill(yt?`zero_point${Et}`:"zero_point").join(",")})) * scale${Et};`}; + workgroup_shared[local_id.x * ${fe} + ${Math.floor(Et/oe)}]${oe>1?`[${Et%oe}]`:""} += ${Array.from({length:8/Q},(ur,la)=>Q===1?`a_data[${la}] * b_dequantized_values[${la}]`:`dot(a_data[${la}], b_dequantized_values[${la}])`).join(" + ")}; + `;return At})()} + word_offset += ${8/Q}; + } + } + } + workgroupBarrier(); + + if (local_id.x < ${fe}) { + var output_value: ${lt.type.value} = ${lt.type.value}(0); + var workgroup_shared_offset: u32 = local_id.x; + for (var b: u32 = 0u; b < 64u; b++) { + output_value += workgroup_shared[workgroup_shared_offset]; + workgroup_shared_offset += ${fe}; + } + ${lt.setByIndices(`${lt.type.indices}(batch, row, col + local_id.x)`,"output_value")}; + } + }`}}},B1=(i,g)=>{let h=i[0].dims,w=h.length,B=h[w-2],y=g.k,E=g.n,F=h.slice(0,w-2),N=He.size(F),Y=i[1].dims[2]/4,te=i[0].dataType,Q=Jt(g.k),ne=Jt(Y),oe=F.concat([B,E]),de=E%8==0?8:E%4==0?4:1,fe=128/de,ke=fe*ne*8,Me=ke/Q,De=ke/g.blockSize,Le=He.size(oe)/de,Xe=[],_e=[N,B,y/Q],lA=He.convertShape(i[1].dims).slice();lA.splice(-1,1,Y/ne),Xe.push(...KA(_e)),Xe.push(...KA(lA)),Xe.push(...KA(i[2].dims)),i.length===4&&Xe.push(...KA(He.convertShape(i[3].dims)));let LA=[N,B,E];return Xe.push(...KA(LA)),{name:"BlockwiseMatMulNBits32",shaderCache:{hint:`${g.blockSize};${Q};${ne};${fe};${de}`,inputDependencies:Array(i.length).fill("rank")},getRunData:()=>({outputs:[{dims:oe,dataType:te}],dispatchGroup:{x:Le},programUniforms:Xe}),getShaderSource:st=>{let ht=_e.length,pt=uA("a",i[0].dataType,ht,Q),mt=uA("b",12,lA.length,ne),yt=uA("scales",i[2].dataType,i[2].dims.length),tt=[pt,mt,yt],lt=i.length===4?uA("zero_points",12,i[3].dims.length):void 0;lt&&tt.push(lt);let wA=LA.length,UA=JA("output",i[0].dataType,wA),At=jt(i[0].dataType);return` + var sub_a: array<${pt.type.value}, ${Me}>; + var inter_results: array, ${de}>; + ${st.declareVariables(...tt,UA)} + ${st.mainStart([fe,de,1])} + let output_indices = ${UA.offsetToIndices(`workgroup_index * ${de}`)}; + let col = output_indices[2]; + let row = output_indices[1]; + let batch = output_indices[0]; + let n_blocks_per_col = uniforms.b_shape[1]; + let num_tiles = (n_blocks_per_col - 1) / ${De} + 1; + + // Loop over shared dimension. + for (var tile: u32 = 0; tile < num_tiles; tile += 1) { + let a_col_start = tile * ${Me}; + // load one tile A data into shared memory. + for (var a_offset = local_idx; a_offset < ${Me}; a_offset += 128) + { + let a_col = a_col_start + a_offset; + if (a_col < uniforms.a_shape[2]) + { + sub_a[a_offset] = ${pt.getByIndices(`${pt.type.indices}(batch, row, a_col)`)}; + } else { + sub_a[a_offset] = ${pt.type.value}(0); + } + } + workgroupBarrier(); + + // each thread process one block + let b_row = col + local_id.y; + let block = tile * ${De} + local_id.x; + ${lt?` + let zero_point_bytes_per_col = (n_blocks_per_col + 1) / 2; + let zero_point_byte_count = b_row * zero_point_bytes_per_col + (block >> 0x1u); + let zero_point_word_index = zero_point_byte_count >> 0x2u; + let zero_point_byte_offset = zero_point_byte_count & 0x3u; + let zero_point_nibble_offset: u32 = block & 0x1u; + let zero_point_bits_offset = (zero_point_byte_offset << 3) + (zero_point_nibble_offset << 2); + let zero_point_word = ${lt.getByOffset("zero_point_word_index")} >> zero_point_bits_offset; + let zero_point = ${At}((zero_point_word) & 0xFu);`:` + // The default zero point is 8 for unsigned 4-bit quantization. + let zero_point = ${At}(8);`} + let scale = ${yt.getByOffset("b_row * n_blocks_per_col + block")}; + let b_data = ${mt.getByIndices(`${mt.type.indices}(b_row, block, 0)`)}; + var word_offset = local_id.x * ${g.blockSize/Q}; + for (var i: u32 = 0; i < ${ne}; i++) { + ${(()=>{switch(Q){case 1:return` + let a_data0 = vec4<${At}>(sub_a[word_offset], sub_a[word_offset + 1], sub_a[word_offset + 2], sub_a[word_offset + 3]); + let a_data1 = vec4<${At}>(sub_a[word_offset + 4], sub_a[word_offset + 5], sub_a[word_offset + 6], sub_a[word_offset + 7]);`;case 2:return` + let a_data0 = vec4<${At}>(sub_a[word_offset], sub_a[word_offset + 1]); + let a_data1 = vec4<${At}>(sub_a[word_offset + 2], sub_a[word_offset + 3]);`;case 4:return` + let a_data0 = sub_a[word_offset]; + let a_data1 = sub_a[word_offset + 1];`;default:throw new Error(`${Q}-component is not supported.`)}})()} + let b_value = ${ne===1?"b_data":"b_data[i]"}; + let b_value_lower = unpack4xU8(b_value & 0x0F0F0F0Fu); + let b_value_upper = unpack4xU8((b_value >> 4) & 0x0F0F0F0Fu); + let b_quantized_values = mat2x4<${At}>(${Array.from({length:4},(Et,ur)=>`${At}(b_value_lower[${ur}]), ${At}(b_value_upper[${ur}])`).join(", ")}); + let b_dequantized_values = (b_quantized_values - mat2x4<${At}>(${Array(8).fill("zero_point").join(",")})) * scale; + inter_results[local_id.y][local_id.x] += ${Array.from({length:2},(Et,ur)=>`dot(a_data${ur}, b_dequantized_values[${ur}])`).join(" + ")}; + word_offset += ${8/Q}; + } + workgroupBarrier(); + } + + if (local_idx < ${de}) { + var output_value: ${UA.type.value} = ${UA.type.value}(0); + for (var b = 0u; b < ${fe}; b++) { + output_value += inter_results[local_idx][b]; + } + if (col + local_idx < uniforms.output_shape[2]) + { + ${UA.setByIndices(`${UA.type.indices}(batch, row, col + local_idx)`,"output_value")} + } + } + }`}}},$2=(i,g)=>{J2(i.inputs,g),g.blockSize===32&&i.adapterInfo.isVendor("intel")&&i.adapterInfo.isArchitecture("gen-12lp")?i.compute(B1(i.inputs,g)):i.compute(_2(i.inputs,g))},el=i=>$e(i)}),zt=Pe(()=>{Dt(),St(),Rt(),Al=i=>{if(!i||i.length<1)throw new Error("Too few inputs");if(i[0].dataType!==1&&i[0].dataType!==10)throw new Error("Input type must be float or float16.");if(i.length>=2){let g=2*i[0].dims.length===i[1].dims[0];if(i.length===4&&(g=2*i[3].dims[0]===i[1].dims[0]),!g)throw new Error("The pads should be a 1D tensor of shape [2 * input_rank] or [2 * num_axes].")}},Ki=(i,g,h)=>{let w="";for(let B=g-1;B>=0;--B)w+=` + k = i32(${i.indicesGet("indices",B)}) - ${rt("uniforms.pads",B,h)}; + if (k < 0) { + break; + } + if (k >= i32(${rt("uniforms.x_shape",B,g)})) { + break; + } + offset += k * i32(${rt("uniforms.x_strides",B,g)}); + `;return` + value = ${i.type.value}(uniforms.constant_value); + for (var i = 0; i < 1; i++) { + var offset = 0; + var k = 0; + ${w} + value = x[offset]; + } + `},tl=(i,g,h)=>{let w="";for(let B=g-1;B>=0;--B)w+=` + k = i32(${i.indicesGet("indices",B)}) - ${rt("uniforms.pads",B,h)}; + if (k < 0) { + k = -k; + } + { + let _2n_1 = 2 * (i32(${rt("uniforms.x_shape",B,g)}) - 1); + k = k % _2n_1; + if(k >= i32(${rt("uniforms.x_shape",B,g)})) { + k = _2n_1 - k; + } + } + offset += k * i32(${rt("uniforms.x_strides",B,g)}); + `;return` + var offset = 0; + var k = 0; + ${w} + value = x[offset]; + `},rl=(i,g,h)=>{let w="";for(let B=g-1;B>=0;--B)w+=` + k = i32(${i.indicesGet("indices",B)}) - ${rt("uniforms.pads",B,h)}; + if (k < 0) { + k = 0; + } + if (k >= i32(${rt("uniforms.x_shape",B,g)})) { + k = i32(${rt("uniforms.x_shape",B,g)}) - 1; + } + offset += k * i32(${rt("uniforms.x_strides",B,g)}); + `;return` + var offset = 0; + var k = 0; + ${w} + value = x[offset]; + `},al=(i,g,h)=>{let w="";for(let B=g-1;B>=0;--B)w+=` + k = i32(${i.indicesGet("indices",B)}) - ${rt("uniforms.pads",B,h)}; + if (k < 0) { + k += i32(${rt("uniforms.x_shape",B,g)}]); + } + if (k >= i32(${rt("uniforms.x_shape",B,g)})) { + k -= i32(${rt("uniforms.x_shape",B,g)}); + } + offset += k * i32(${rt("uniforms.x_strides",B,g)}); + `;return` + var offset = 0; + var k = 0; + ${w} + value = x[offset]; + `},sl=(i,g,h)=>{switch(h.mode){case 0:return Ki(i,g,h.pads.length);case 1:return tl(i,g,h.pads.length);case 2:return rl(i,g,h.pads.length);case 3:return al(i,g,h.pads.length);default:throw new Error("Invalid mode")}},nl=(i,g)=>{let h=He.padShape(i[0].dims.slice(),g.pads),w=i[0].dims,B=[{type:12,data:He.size(h)},{type:6,data:g.pads}],y=i.length>=3&&i[2].data;return g.mode===0&&B.push({type:y?i[2].dataType:1,data:g.value}),B.push(...KA(i[0].dims,h)),{name:"Pad",shaderCache:{hint:`${g.mode}${y}`,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:h,dataType:i[0].dataType}],dispatchGroup:{x:Math.ceil(He.size(h)/64)},programUniforms:B}),getShaderSource:E=>{let F=JA("output",i[0].dataType,h.length),N=uA("x",i[0].dataType,w.length),Y=N.type.value,te=sl(F,w.length,g),Q=[{name:"output_size",type:"u32"},{name:"pads",type:"i32",length:g.pads.length}];return g.mode===0&&Q.push({name:"constant_value",type:y?Y:"f32"}),` + ${E.registerUniforms(Q).declareVariables(N,F)} + ${E.mainStart()} + ${E.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + + let indices = ${F.offsetToIndices("global_idx")}; + + var value = ${Y}(0); + ${te} + output[global_idx] = value; + }`}}},il=(i,g)=>{if(i.length>1){let h=i[1].getBigInt64Array(),w=i.length>=3&&i[2].data?i[2].dataType===10?i[2].getUint16Array()[0]:i[2].getFloat32Array()[0]:0,B=i[0].dims.length,y=new Int32Array(2*B).fill(0);if(i.length>=4){let F=i[3].getBigInt64Array();for(let N=0;Ny[Number(N)]=Number(F));let E=[];return y.forEach(F=>E.push(F)),{mode:g.mode,value:w,pads:E}}return g},ol=(i,g)=>{Al(i.inputs);let h=il(i.inputs,g);i.compute(nl(i.inputs,h),{inputs:[0]})}}),Qt=Pe(()=>{dA(),Dt(),St(),Rt(),Ai=i=>{if(X.webgpu.validateInputContent&&(!i||i.length!==1))throw new Error("Pool ops requires 1 input.")},ll=(i,g,h)=>{let w=g.format==="NHWC",B=i.dims.slice();w&&B.splice(1,0,B.pop());let y=Object.hasOwnProperty.call(g,"dilations"),E=g.kernelShape.slice(),F=g.strides.slice(),N=y?g.dilations.slice():[],Y=g.pads.slice();VA.adjustPoolAttributes(h,B,E,F,N,Y);let te=VA.computePoolOutputShape(h,B,F,N,E,Y,g.autoPad),Q=Object.assign({},g);y?Object.assign(Q,{kernelShape:E,strides:F,pads:Y,dilations:N,cacheKey:g.cacheKey}):Object.assign(Q,{kernelShape:E,strides:F,pads:Y,cacheKey:g.cacheKey});let ne=te.slice();return ne.push(ne.splice(1,1)[0]),[Q,w?ne:te]},bo=(i,g)=>{let h=g.format==="NHWC",w=[{type:12,data:He.size(i)},{type:12,data:He.size(g.kernelShape)}],B=[{name:"outputSize",type:"u32"},{name:"kernelSize",type:"u32"}];if(g.kernelShape.length<=2){let y=g.kernelShape[g.kernelShape.length-1],E=g.strides[g.strides.length-1],F=g.pads[g.pads.length/2-1],N=g.pads[g.pads.length-1],Y=!!(F+N);w.push({type:12,data:y},{type:12,data:E},{type:12,data:F},{type:12,data:N}),B.push({name:"kw",type:"u32"},{name:"sw",type:"u32"},{name:"pwStart",type:"u32"},{name:"pwEnd",type:"u32"});let te=!1;if(g.kernelShape.length===2){let Q=g.kernelShape[g.kernelShape.length-2],ne=g.strides[g.strides.length-2],oe=g.pads[g.pads.length/2-2],de=g.pads[g.pads.length-2];te=!!(oe+de),w.push({type:12,data:Q},{type:12,data:ne},{type:12,data:oe},{type:12,data:de}),B.push({name:"kh",type:"u32"},{name:"sh",type:"u32"},{name:"phStart",type:"u32"},{name:"phEnd",type:"u32"})}return[w,B,!0,Y,te]}{if(h)throw new Error("Pooling with kernelShape.length > 2 is not supported for NHWC format.");let y=He.computeStrides(g.kernelShape);w.push({type:12,data:y},{type:12,data:g.pads},{type:12,data:g.strides}),B.push({name:"kernelStrides",type:"u32",length:y.length},{name:"pads",type:"u32",length:g.pads.length},{name:"strides",type:"u32",length:g.strides.length});let E=g.pads.reduce((F,N)=>F+N);return[w,B,!!E,!1,!1]}},Io=(i,g,h,w,B,y,E,F,N,Y,te,Q)=>{let ne=B.format==="NHWC",oe=g.type.value,de=JA("output",g.type.tensor,w);if(B.kernelShape.length<=2){let fe="",ke="",Me="",De=h-(ne?2:1);if(fe=te?` + for (var i: u32 = 0u; i < uniforms.kw; i++) { + xIndices[${De}] = indices[${De}] * uniforms.sw - uniforms.pwStart + i; + if (xIndices[${De}] < 0 || xIndices[${De}] + >= uniforms.x_shape[${De}]) { + pad++; + continue; + } + let x_val = x[${g.indicesToOffset("xIndices")}]; + ${y} + }`:` + for (var i: u32 = 0u; i < uniforms.kw; i++) { + xIndices[${De}] = indices[${De}] * uniforms.sw - uniforms.pwStart + i; + let x_val = x[${g.indicesToOffset("xIndices")}]; + ${y} + }`,B.kernelShape.length===2){let Le=h-(ne?3:2);ke=Q?` + for (var j: u32 = 0u; j < uniforms.kh; j++) { + xIndices[${Le}] = indices[${Le}] * uniforms.sh - uniforms.phStart + j; + if (xIndices[${Le}] < 0 || xIndices[${Le}] >= uniforms.x_shape[${Le}]) { + pad += i32(uniforms.kw); + continue; + } + `:` + for (var j: u32 = 0u; j < uniforms.kh; j++) { + xIndices[${Le}] = indices[${Le}] * uniforms.sh - uniforms.phStart + j; + `,Me=` + } + `}return` + ${i.registerUniforms(N).declareVariables(g,de)} + + ${i.mainStart()} + ${i.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + + let indices = ${de.offsetToIndices("global_idx")}; + var xIndices = ${de.offsetToIndices("global_idx")}; + + var value = ${oe}(${F}); + var pad = 0; + ${ke} + ${fe} + ${Me} + ${E} + + output[global_idx] = value; + }`}{if(ne)throw new Error("Pooling with kernelShape.length > 2 is not supported for NHWC format.");let fe=B.kernelShape.length,ke=B.pads.length,Me="";return Me=Y?` + if (xIndices[j] >= uniforms.x_shape[j]) { + pad++; + isPad = true; + break; + } + } + if (!isPad) { + let x_val = x[${g.indicesToOffset("xIndices")}]; + ${y} + }`:` + } + let x_val = x[${g.indicesToOffset("xIndices")}]; + ${y} + `,` + ${i.registerUniforms(N).declareVariables(g,de)} + + ${i.mainStart()} + ${i.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + let indices = ${de.offsetToIndices("global_idx")}; + var xIndices = ${de.offsetToIndices("global_idx")}; + + var offsets: array; + + var value = ${oe}(${F}); + var pad = 0; + var isPad = false; + + for (var i: u32 = 0u; i < uniforms.kernelSize; i++) { + var offset = i; + for (var j = 0u; j < ${fe-1}u; j++) { + offsets[j] = offset / ${rt("uniforms.kernelStrides","j",fe)}; + offset -= offsets[j] * ${rt("uniforms.kernelStrides","j",fe)}; + } + offsets[${fe-1}] = offset; + + isPad = false; + for (var j = ${h-fe}u; j < ${h}u; j++) { + xIndices[j] = indices[j] * ${rt("uniforms.strides",`j - ${h-fe}u`,fe)} + + offsets[j - ${h-fe}u] - ${rt("uniforms.pads","j - 2u",ke)}; + ${Me} + } + ${E} + + output[global_idx] = value; + }`}},wo=i=>`${i.format};${i.ceilMode};${i.autoPad};${i.kernelShape.length}`,cl=i=>`${wo(i)};${i.countIncludePad}`,ul=i=>`${wo(i)};${i.storageOrder};${i.dilations}`,X0=i=>({format:i.format,autoPad:["NOTSET","VALID","SAME_UPPER","SAME_LOWER"][i.auto_pad],ceilMode:i.ceil_mode,kernelShape:i.kernel_shape,strides:i.strides,pads:i.pads}),ko=(i,g,h,w)=>{let[B,y]=ll(g,w,h),E=uA("x",g.dataType,g.dims.length),F=E.type.value,N="";B.countIncludePad?N+=`value /= ${F}(uniforms.kernelSize);`:N+=`value /= ${F}(i32(uniforms.kernelSize) - pad);`;let[Y,te,Q,ne,oe]=bo(y,B);return Y.push(...KA(g.dims,y)),{name:i,shaderCache:{hint:`${w.cacheKey};${Q};${ne};${oe}`,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:y,dataType:g.dataType}],dispatchGroup:{x:Math.ceil(He.size(y)/64)},programUniforms:Y}),getShaderSource:de=>Io(de,E,g.dims.length,y.length,B,"value += x_val;",N,0,te,Q,ne,oe)}},gl=i=>{let g=i.count_include_pad!==0,h=X0(i);if(h.ceilMode!==0)throw new Error("using ceil() in shape computation is not yet supported for AveragePool");let w={countIncludePad:g,...h,cacheKey:""};return{...w,cacheKey:cl(w)}},xo=(i,g)=>{Ai(i.inputs),i.compute(ko("AveragePool",i.inputs[0],!1,g))},Bo={autoPad:"",ceilMode:0,countIncludePad:!1,kernelShape:[],strides:[],pads:[],storageOrder:0,dilations:[]},dl=i=>{let g=i.format;return{format:g,...Bo,cacheKey:g}},yo=(i,g)=>{Ai(i.inputs),i.compute(ko("GlobalAveragePool",i.inputs[0],!0,g))},Eo=(i,g,h,w)=>{let[B,y]=ll(g,w,h),E=uA("x",g.dataType,g.dims.length),[F,N,Y,te,Q]=bo(y,B);return F.push(...KA(g.dims,y)),{name:i,shaderCache:{hint:`${w.cacheKey};${Y};${te};${Q}`,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:y,dataType:g.dataType}],dispatchGroup:{x:Math.ceil(He.size(y)/64)},programUniforms:F}),getShaderSource:ne=>Io(ne,E,g.dims.length,y.length,B,` + value = max(x_val, value); + `,"",g.dataType===10?-65504:-1e5,N,Y,te,Q)}},fl=(i,g)=>{Ai(i.inputs),i.compute(Eo("MaxPool",i.inputs[0],!1,g))},q0=i=>{let g=i.storage_order,h=i.dilations,w=X0(i);if(g!==0)throw new Error("column major storage order is not yet supported for MaxPool");if(w.ceilMode!==0)throw new Error("using ceil() in shape computation is not yet supported for MaxPool");let B={storageOrder:g,dilations:h,...w,cacheKey:""};return{...B,cacheKey:ul(B)}},pl=i=>{let g=i.format;return{format:g,...Bo,cacheKey:g}},hl=(i,g)=>{Ai(i.inputs),i.compute(Eo("GlobalMaxPool",i.inputs[0],!0,g))}}),or=Pe(()=>{Dt(),St(),qr(),Rt(),ml=(i,g)=>{if(i.length<2||i.length>3)throw new Error("DequantizeLinear requires 2 or 3 inputs.");if(i.length===3&&i[1].dims===i[2].dims)throw new Error("x-scale and x-zero-point must have the same shape.");if(i.length===3&&i[0].dataType!==i[2].dataType)throw new Error("x and x-zero-point must have the same data type.");if(i[0].dataType===6&&i.length>2)throw new Error("In the case of dequantizing int32 there is no zero point.");if(i[1].dims.length!==0&&i[1].dims.length!==1&&i[1].dims.length!==i[0].dims.length)throw new Error("scale input must be a scalar, a 1D tensor, or have the same rank as the input tensor.");if(i.length>2){if(i[0].dataType!==i[2].dataType)throw new Error("x and x-zero-point must have the same data type.");if(i[1].dims.length!==i[2].dims.length)throw new Error("scale and zero-point inputs must have the same rank.");if(!i[1].dims.map((h,w)=>h===i[2].dims[w]).reduce((h,w)=>h&&w,!0))throw new Error("scale and zero-point inputs must have the same shape.")}if(g.blockSize>0){if(i[1].dims.length===0||i[1].dims.length===1&&i[1].dims[0]===1)throw new Error("blockSize must be set only for block quantization.");if(!i[1].dims.map((B,y)=>y===g.axis||B===i[0].dims[y]).reduce((B,y)=>B&&y,!0))throw new Error("For block qunatization, scale input shape to match the input shape except for the axis");if(i[1].dims.length!==i[0].dims.length)throw new Error("For block qunatization the scale input rank must be the same as the x rank.");let h=i[0].dims[g.axis],w=i[1].dims[g.axis];if(g.blockSizeMath.ceil(h/(w-1)-1))throw new Error("blockSize must be with in the range [ceil(dI / Si), ceil(dI / (Si - 1) - 1)].")}},Cl=(i,g)=>{let h=He.normalizeAxis(g.axis,i[0].dims.length),w=i[0].dataType,B=w===3,y=i[0].dims,E=i[1].dataType,F=He.size(y),N=w===3||w===2,Y=N?[Math.ceil(He.size(i[0].dims)/4)]:i[0].dims,te=i[1].dims,Q=i.length>2?i[2]:void 0,ne=Q?N?[Math.ceil(He.size(Q.dims)/4)]:Q.dims:void 0,oe=te.length===0||te.length===1&&te[0]===1,de=oe===!1&&te.length===1,fe=Jt(F),ke=oe&&(!N||fe===4),Me=ke?fe:1,De=ke&&!N?fe:1,Le=uA("input",N?12:w,Y.length,De),Xe=uA("scale",E,te.length),_e=Q?uA("zero_point",N?12:w,ne.length):void 0,lA=JA("output",E,y.length,Me),LA=[Le,Xe];_e&&LA.push(_e);let st=[Y,te];Q&&st.push(ne);let ht=[{type:12,data:F/Me},{type:12,data:h},{type:12,data:g.blockSize},...KA(...st,y)];return{name:"DequantizeLinear",shaderCache:{hint:g.cacheKey,inputDependencies:_e?["rank","rank","rank"]:["rank","rank"]},getShaderSource:pt=>` + ${pt.registerUniforms([{name:"output_size",type:"u32"},{name:"axis",type:"u32"},{name:"block_size",type:"u32"}]).declareVariables(...LA,lA)} + ${pt.mainStart()} + ${pt.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let output_indices = ${lA.offsetToIndices("global_idx")}; + + // Set input x + ${N?` + let input = ${Le.getByOffset("global_idx / 4")}; + let x_vec = ${B?"unpack4xI8(input)":"unpack4xU8(input)"}; + let x_value = ${Me===1?"x_vec[global_idx % 4]":"x_vec"};`:`let x_value = ${Le.getByOffset("global_idx")};`}; + + // Set scale input + ${oe?`let scale_value= ${Xe.getByOffset("0")}`:de?` + let scale_index = ${lA.indicesGet("output_indices","uniforms.axis")}; + let scale_value= ${Xe.getByOffset("scale_index")};`:` + var scale_indices: ${Xe.type.indices} = output_indices; + let index = ${Xe.indicesGet("scale_indices","uniforms.axis")} / uniforms.block_size; + ${Xe.indicesSet("scale_indices","uniforms.axis","index")}; + let scale_value= ${Xe.getByIndices("scale_indices")};`}; + + // Set zero-point input + ${_e?oe?N?` + let zero_point_input = ${_e.getByOffset("0")}; + let zero_point_vec = ${B?"unpack4xI8(zero_point_input)":"unpack4xU8(zero_point_input)"}; + let zero_point_value= zero_point_vec[0]`:`let zero_point_value = ${_e.getByOffset("0")}`:de?N?` + let zero_point_index = ${lA.indicesGet("output_indices","uniforms.axis")}; + let zero_point_input = ${_e.getByOffset("zero_point_index / 4")}; + let zero_point_vec = ${B?"unpack4xI8(zero_point_input)":"unpack4xU8(zero_point_input)"}; + let zero_point_value = zero_point_vec[zero_point_index % 4]`:` + let zero_point_index = ${lA.indicesGet("output_indices","uniforms.axis")}; + let zero_point_value = ${_e.getByOffset("zero_point_index")};`:N?` + let zero_point_offset = ${Xe.indicesToOffset("scale_indices")}; + let zero_point_input = ${_e.getByOffset("zero_point_offset / 4")}; + let zero_point_vec = ${B?"unpack4xI8(zero_point_input)":"unpack4xU8(zero_point_input)"}; + let zero_point_value = zero_point_vec[zero_point_offset % 4];`:`let zero_point_value = ${_e.getByIndices("scale_indices")};`:`let zero_point_value = ${N?B?"i32":"u32":Le.type.value}(0);`}; + // Compute and write output + ${lA.setByOffset("global_idx",`${lA.type.value}(x_value - zero_point_value) * scale_value`)}; + }`,getRunData:()=>({outputs:[{dims:y,dataType:E}],dispatchGroup:{x:Math.ceil(F/Me/64),y:1,z:1},programUniforms:ht})}},vo=(i,g)=>{ml(i.inputs,g),i.compute(Cl(i.inputs,g))},J0=i=>$e({axis:i.axis,blockSize:i.blockSize})}),Bt=Pe(()=>{dA(),Dt(),Rt(),y1=(i,g,h)=>{if(i===g||ig&&h>0)throw new Error("Range these inputs' contents are invalid.")},bl=(i,g,h,w)=>{let B=Math.abs(Math.ceil((g-i)/h)),y=[B],E=B,F=[{type:12,data:E},{type:w,data:i},{type:w,data:h},...KA(y)];return{name:"Range",shaderCache:{hint:`${w}`},getShaderSource:N=>{let Y=JA("output",w,y.length),te=Y.type.value,Q=[{name:"outputSize",type:"u32"},{name:"start",type:te},{name:"delta",type:te}];return` + ${N.registerUniforms(Q).declareVariables(Y)} + ${N.mainStart()} + ${N.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + output[global_idx] = uniforms.start + ${te}(global_idx) * uniforms.delta; + }`},getRunData:()=>({outputs:[{dims:y,dataType:w}],dispatchGroup:{x:Math.ceil(E/64)},programUniforms:F})}},Il=i=>{let g=0,h=0,w=0;i.inputs[0].dataType===6?(g=i.inputs[0].getInt32Array()[0],h=i.inputs[1].getInt32Array()[0],w=i.inputs[2].getInt32Array()[0]):i.inputs[0].dataType===1&&(g=i.inputs[0].getFloat32Array()[0],h=i.inputs[1].getFloat32Array()[0],w=i.inputs[2].getFloat32Array()[0]),X.webgpu.validateInputContent&&y1(g,h,w),i.compute(bl(g,h,w,i.inputs[0].dataType),{inputs:[]})}}),Ot=Pe(()=>{Dt(),St(),qr(),Rt(),Mo=(i,g,h,w)=>{if(i!=="none"&&w!=="i32"&&w!=="u32"&&w!=="f32")throw new Error(`Input ${w} is not supported with reduction ${i}.`);let B=`{ + var oldValue = 0; + loop { + let newValueF32 =`,y=`; + let newValue = bitcast(newValueF32); + let res = atomicCompareExchangeWeak(&${g}, oldValue, newValue); + if res.exchanged { + break; + } + oldValue = res.old_value; + } + }`;switch(i){case"none":return`${g}=${h};`;case"add":return w==="i32"||w==="u32"?`atomicAdd(&${g}, bitcast<${w}>(${h}));`:` + ${B}bitcast<${w}>(oldValue) + (${h})${y}`;case"max":return w==="i32"||w==="u32"?`atomicMax(&${g}, bitcast<${w}>(${h}));`:` + ${B}max(bitcast(oldValue), (${h}))${y}`;case"min":return w==="i32"||w==="u32"?`atomicMin(&${g}, bitcast<${w}>(${h}));`:`${B}min(bitcast<${w}>(oldValue), (${h}))${y}`;case"mul":return`${B}(bitcast<${w}>(oldValue) * (${h}))${y}`;default:throw new Error(`Reduction ${i} is not supported.`)}},wl=(i,g)=>{let h=i[0].dims,w=i[1].dims,B=h,y=Math.ceil(He.size(w)/1),E=w[w.length-1],F=He.sizeFromDimension(h,E),N=[{type:12,data:y},{type:12,data:E},{type:12,data:F},...KA(i[1].dims,i[2].dims,B)];return{name:"ScatterND",shaderCache:{hint:`${g.cacheKey}_${g.reduction}`,inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:B,dataType:i[0].dataType}],dispatchGroup:{x:Math.ceil(y/64)},programUniforms:N}),getShaderSource:Y=>{let te=uA("indices",i[1].dataType,i[1].dims.length),Q=uA("updates",i[2].dataType,i[2].dims.length,1),ne=g.reduction!=="none"&&g.reduction!==""?pa("output",i[0].dataType,B.length):JA("output",i[0].dataType,B.length,1);return` + ${Y.registerUniform("output_size","u32").registerUniform("last_index_dimension","u32").registerUniform("num_updates_elements","u32").declareVariables(te,Q,ne)} + ${Y.mainStart()} + ${Y.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + var data_offset = 0u; + let indices_start = uniforms.last_index_dimension * global_idx; + let indices_end = indices_start + uniforms.last_index_dimension; + for (var i = indices_start; i < indices_end; i++) { + var index = i32(indices[i].x); + ${i[0].dims.length===1?` + let element_count_dim = uniforms.output_strides; + let dim_value = uniforms.output_shape;`:` + let element_count_dim = uniforms.output_strides[i - indices_start]; + let dim_value = uniforms.output_shape[i - indices_start + uniforms.last_index_dimension];`} + if (index >= 0) { + if (index >= i32(dim_value)) { + index = i32(dim_value - 1); + } + } else { + if (index < -i32(dim_value)) { + index = 0; + } else { + index += i32(dim_value); + } + } + data_offset += u32((u32(index) * element_count_dim)); + } + + for (var i = 0u; i < uniforms.num_updates_elements; i++) { + let value = updates[uniforms.num_updates_elements * global_idx + i]; + ${Mo(g.reduction,"output[data_offset + i]","value",ne.type.value)} + } + + }`}}},kl=i=>$e({reduction:i.reduction}),Go=(i,g)=>{i.compute(wl(i.inputs,g),{inputs:[i.inputs[1],i.inputs[2]],outputs:[]})}}),Ir=Pe(()=>{Dt(),St(),qr(),Rt(),xl=(i,g)=>{if(i.every(h=>h>0||(()=>{throw new Error("Resize requires scales input values to be positive")})),i.length>0){if(g.mode==="linear"){if(!(i.length===2||i.length===3||i.length===4&&i[0]===1&&i[1]===1||i.length===4&&i[0]===1&&i[3]===1||i.length===5&&i[0]===1&&i[1]===1))throw new Error(`For linear mode, Resize requires scales to be 2D, 3D, 4D with either two outermost or one innermost and + one outermost scale values equal to 1, or 5D with two outermost scale values equal to 1`)}else if(g.mode==="cubic"&&!(i.length===2||i.length===4&&i[0]===1&&i[1]===1||i.length===4&&i[0]===1&&i[3]===1))throw new Error("Resize requires scales input size to be 2 or 4 for cubic mode")}},Bl=(i,g,h)=>{g.every(B=>B>=0&&B{throw new Error("Resize requires axes input values to be positive and less than rank")}));let w=new Array(h).fill(1);return g.forEach((B,y)=>w[B]=i[y]),w},Do=(i,g,h,w,B,y)=>{let[E,F,N]=h>10?[1,2,3]:[-1,i.length>1?1:-1,-1],Y=i[0].dims.length;if(E>0&&i.length>E&&i[E].dims.length>0)i[E].getFloat32Array().forEach(te=>y.push(te));else if(g.coordinateTransformMode==="tf_crop_and_resize")throw new Error("Resize requires RoI input to be specified when coordinateTransformMode is tfCropAndResize");if(F>0&&i.length>F&&i[F].dims.length===1&&i[F].dims[0]>0){if(i[F].getFloat32Array().forEach(te=>w.push(te)),w.length!==0&&w.length!==Y&&h>=18&&w.length!==g.axes.length)throw new Error("Resize requires scales input size to be same as input rank or axes size for opset 18 and up");xl(w,g),g.axes.length>0&&Bl(w,g.axes,Y).forEach((te,Q)=>w[Q]=te)}if(N>0&&i.length>N&&i[N].dims.length===1&&i[N].dims[0]>0&&(i[N].getBigInt64Array().forEach(te=>B.push(Number(te))),B.length!==0&&B.length!==Y&&h>=18&&B.length!==g.axes.length))throw new Error("Resize requires sizes input size to be same as input rank or axes size for opset 18 and up");if(g.axes.length>0){if(w.length!==0&&w.length!==g.axes.length)throw new Error('Resize requires "scales" input size to be of axes rank when axes attributes is specified');if(B.length!==0&&B.length!==g.axes.length)throw new Error('Resize requires "sizes" input size to be of rank axes rank when axes attributes is specified')}if(typeof w<"u"&&typeof B<"u"&&w.length>0&&B.length>Y)throw new Error("Resize requires only of scales or sizes to be specified")},yl=(i,g,h,w)=>` + // The whole part and the fractional part are calculated separately due to inaccuracy of floating + // point division. As an example, f32(21) / f32(7) may evaluate to 2.99... instead of 3, causing an + // offset-by-one error later in floor(). + let big = (${i}) * (${g}); + let whole = ${w}(big / (${h})); + let fract = ${w}(big % (${h})) / ${w}(${h}); + return whole + fract; +`,E1=(i,g)=>`fn getOriginalCoordinateFromResizedCoordinate(xResized: u32, xScale: f32, lengthResized: u32, + lengthOriginal: u32, roiStart: f32, roiEnd: f32) -> ${g} { `+(()=>{switch(i){case"asymmetric":return` + if (xScale < 1.0 || floor(xScale) != xScale) { + return ${g}(xResized) / ${g}(xScale); + } else { + ${yl("xResized","lengthOriginal","lengthResized",g)} + } + `;case"pytorch_half_pixel":return`if (lengthResized > 1) { + return (${g}(xResized) + 0.5) / ${g}(xScale) - 0.5; + } else { + return 0.0; + }`;case"tf_half_pixel_for_nn":return`return (${g}(xResized) + 0.5) / ${g}(xScale);`;case"align_corners":return`if (lengthResized == 1) { + return 0.0; + } else { + ${yl("xResized","lengthOriginal - 1","lengthResized - 1",g)} + }`;case"tf_crop_and_resize":return`if (lengthResized > 1) { + return ${g}(roiStart) * ${g}(lengthOriginal - 1) + + (${g}(xResized) * ${g}(roiEnd - roiStart) * ${g}(lengthOriginal - 1)) / + ${g}(lengthResized - 1); + } else { + return 0.5 * ${g}(roiStart + roiEnd) * ${g}(lengthOriginal - 1); + }`;case"half_pixel_symmetric":return`const outputWidth = ${g}xScale * ${g}(lengthResized); + const adjustment = ${g}(lengthResized) / outputWidth; + const center = ${g}(lengthOriginal) / 2; + const offset = center * (1 - adjustment); + return offset + ((${g}(xResized) + 0.5) / ${g}(xScale)) - 0.5;`;case"half_pixel":return`return ((${g}(xResized) + 0.5) / ${g}(xScale)) - 0.5;`;default:throw new Error(`Coordinate transform mode ${i} is not supported`)}})()+"}",Qo=(i,g,h)=>`fn getNearestPixelFromOriginal(xOriginal: ${h}, isDownSample: bool) -> ${h} {`+(()=>{switch(i){case"round_prefer_ceil":return"if (fract(xOriginal) == 0.5) { return ceil(xOriginal); } else { return round(xOriginal); }";case"floor":return"return floor(xOriginal);";case"ceil":return"return ceil(xOriginal);";case"round_prefer_floor":return"if (fract(xOriginal) == 0.5) { return floor(xOriginal); } else { return round(xOriginal); }";default:if(g<11)return"if (isDownSample) { return ceil(xOriginal); } else { return xOriginal; }";throw new Error(`Nearest mode ${i} is not supported`)}})()+"}",To=(i,g,h)=>{let w=new Array(h).fill(0).concat(new Array(h).fill(1)),B=i.length===0?w:i.slice();return g.length>0?(g.forEach((y,E)=>{w[y]=B[E],w[E+h]=B[g.length+E]}),w):B},El=(i,g,h,w)=>{let B=[];if(h.length>0)if(w.length>0){if(i.forEach(y=>B.push(y)),Math.max(...w)>i.length)throw new Error("axes is out of bound");w.forEach((y,E)=>B[y]=h[E])}else h.forEach(y=>B.push(y));else{if(g.length===0)throw new Error("Resize requires either scales or sizes.");B=i.map((y,E)=>Math.round(y*g[E]))}return B},vl=(i,g,h)=>{let w=(()=>{switch(h.keepAspectRatioPolicy){case"not_larger":return h.axes.length>0?Math.min(...h.axes.map(y=>g[y]),Number.MAX_VALUE):Math.min(...g,Number.MAX_VALUE);case"not_smaller":return h.axes.length>0?Math.max(...h.axes.map(y=>g[y]),Number.MIN_VALUE):Math.max(...g,Number.MIN_VALUE);default:throw new Error(`Keep aspect ratio policy ${h.keepAspectRatioPolicy} is not supported`)}})();g.fill(1,0,g.length);let B=i.slice();return h.axes.length>0?(h.axes.forEach(y=>g[y]=w),h.axes.forEach(y=>B[y]=Math.round(i[y]*g[y]))):(g.fill(w,0,g.length),B.forEach((y,E)=>B[E]=Math.round(y*g[E]))),B},Po=(i,g,h,w,B)=>` + fn calculateOriginalIndicesFromOutputIndices(output_indices: ${i.type.indices}) -> array<${i.type.value}, ${h.length}> { + var original_indices: array<${i.type.value}, ${h.length}>; + for (var i:u32 = 0; i < ${h.length}; i++) { + var output_index = ${i.indicesGet("output_indices","i")}; + var scale = ${rt("uniforms.scales","i",w)}; + var roi_low = ${rt("uniforms.roi","i",B)}; + var roi_hi = ${rt("uniforms.roi",`i + ${g.length}`,B)}; + if (scale == 1.0) { + original_indices[i] = ${i.type.value}(output_index); + } else { + var input_shape_i = ${rt("uniforms.input_shape","i",g.length)}; + var output_shape_i = ${rt("uniforms.output_shape","i",h.length)}; + original_indices[i] = getOriginalCoordinateFromResizedCoordinate(output_index, scale, output_shape_i, + input_shape_i, roi_low, roi_hi); + } + } + return original_indices; + }`,Ml=(i,g,h,w,B,y,E)=>` + fn calculateInputIndicesFromOutputIndices(output_indices: ${g.type.indices}) -> ${i.type.indices} { + var input_indices: ${i.type.indices}; + for (var i:u32 = 0; i < ${w.length}; i++) { + var output_index = ${g.indicesGet("output_indices","i")}; + var input_index: u32; + var scale = ${rt("uniforms.scales","i",B)}; + if (scale == 1.0) { + input_index = output_index; + } else { + var roi_low = ${rt("uniforms.roi","i",y)}; + var roi_hi = ${rt("uniforms.roi",`i + ${h.length}`,y)}; + var input_shape_i = ${rt("uniforms.input_shape","i",h.length)}; + var output_shape_i = ${rt("uniforms.output_shape","i",w.length)}; + var original_idx = getOriginalCoordinateFromResizedCoordinate(output_index, scale, output_shape_i, + input_shape_i, roi_low, roi_hi); + if (!${E} || (original_idx >= 0 && original_idx < ${g.type.value}(input_shape_i))) { + if (original_idx < 0) { + input_index = 0; + } else if (original_idx > ${g.type.value}(input_shape_i - 1)) { + input_index = input_shape_i - 1; + } else { + input_index = u32(getNearestPixelFromOriginal(original_idx, scale < 1)); + } + } else { + input_index = u32(original_idx); + } + } + ${i.indicesSet("input_indices","i","input_index")} + } + return input_indices; + }`,Gl=(i,g)=>` + fn checkInputIndices(input_indices: ${i.type.indices}) -> bool { + for (var i:u32 = 0; i < ${g.length}; i++) { + var input_index = ${i.indicesGet("input_indices","i")}; + if (input_index < 0 || input_index >= ${rt("uniforms.input_shape","i",g.length)}) { + return false; + } + } + return true; + }`,_0=(i,g,h,w)=>i.rank>w?` + ${i.indicesSet("input_indices",g,"channel")}; + ${i.indicesSet("input_indices",h,"batch")}; +`:"",Dl=(i,g,h,w,B)=>{let[y,E,F,N]=h.length===2?[-1,0,1,-1]:[0,2,3,1],Y=i.type.value;return` + fn getInputValue(batch: u32, channel: u32, row: u32, col: u32) -> ${Y} { + var input_indices: ${i.type.indices}; + ${i.indicesSet("input_indices",E,`max(0, min(row, ${h[E]} - 1))`)}; + ${i.indicesSet("input_indices",F,`max(0, min(col, ${h[F]} - 1))`)}; + ${_0(i,N,y,2)} + return ${i.getByIndices("input_indices")}; + } + + fn bilinearInterpolation(output_indices: ${g.type.indices}) -> ${Y} { + var originalIndices = calculateOriginalIndicesFromOutputIndices(output_indices); + var row:${Y} = originalIndices[${E}]; + var col:${Y} = originalIndices[${F}]; + ${w?`if (row < 0 || row > (${h[E]} - 1) || col < 0 || col > (${h[F]} - 1)) { + return ${B}; + }`:""}; + row = max(0, min(row, ${h[E]} - 1)); + col = max(0, min(col, ${h[F]} - 1)); + var row1: u32 = u32(row); + var col1: u32 = u32(col); + var row2: u32 = u32(row + 1); + var col2: u32 = u32(col + 1); + var channel: u32 = ${h.length>2?`u32(originalIndices[${N}])`:"0"}; + var batch: u32 = ${h.length>2?`u32(originalIndices[${y}])`:"0"}; + var x11: ${Y} = getInputValue(batch, channel, row1, col1); + var x12: ${Y} = getInputValue(batch, channel, row1, col2); + var x21: ${Y} = getInputValue(batch, channel, row2, col1); + var x22: ${Y} = getInputValue(batch, channel, row2, col2); + var dx1: ${Y} = abs(row - ${Y}(row1)); + var dx2: ${Y} = abs(${Y}(row2) - row); + var dy1: ${Y} = abs(col - ${Y}(col1)); + var dy2: ${Y} = abs(${Y}(col2) - col); + if (row1 == row2) { + dx1 = 0.5; + dx2 = 0.5; + } + if (col1 == col2) { + dy1 = 0.5; + dy2 = 0.5; + } + return (x11 * dx2 * dy2 + x12 * dx2 * dy1 + x21 * dx1 * dy2 + x22 * dx1 * dy1); + }`},Ql=(i,g,h,w,B,y,E,F,N,Y)=>{let te=h.length===2,[Q,ne]=te?[0,1]:[2,3],oe=i.type.value,de=fe=>{let ke=fe===Q?"row":"col";return` + fn ${ke}CubicInterpolation(input_indices: ${i.type.indices}, output_indices: ${g.type.indices}) -> ${oe} { + var output_index = ${g.indicesGet("output_indices",fe)}; + var originalIdx: ${oe} = getOriginalCoordinateFromResizedCoordinate(output_index, ${B[fe]}, + ${w[fe]}, ${h[fe]}, ${y[fe]}, ${y[fe]} + ${h.length}); + var fractOriginalIdx: ${oe} = originalIdx - floor(originalIdx); + var coefs = getCubicInterpolationCoefs(fractOriginalIdx); + + if (${F} && (originalIdx < 0 || originalIdx > (${h[fe]} - 1))) { + return ${N}; + } + var data: array<${oe}, 4> = array<${oe}, 4>(0.0, 0.0, 0.0, 0.0); + for (var i: i32 = -1; i < 3; i++) { + var ${ke}: ${oe} = originalIdx + ${oe}(i); + if (${ke} < 0 || ${ke} >= ${h[fe]}) { + ${Y?`coefs[i + 1] = 0.0; + continue;`:F?`return ${N};`:`${ke} = max(0, min(${ke}, ${h[fe]} - 1));`}; + } + var input_indices_copy: ${i.type.indices} = input_indices; + ${i.indicesSet("input_indices_copy",fe,`u32(${ke})`)}; + data[i + 1] = ${fe===Q?i.getByIndices("input_indices_copy"):"rowCubicInterpolation(input_indices_copy, output_indices)"}; + } + return cubicInterpolation1D(data, coefs); + }`};return` + ${de(Q)}; + ${de(ne)}; + fn getCubicInterpolationCoefs(s: ${oe}) -> array<${oe}, 4> { + var absS = abs(s); + var coeffs: array<${oe}, 4> = array<${oe}, 4>(0.0, 0.0, 0.0, 0.0); + var oneMinusAbsS: ${oe} = 1.0 - absS; + var twoMinusAbsS: ${oe} = 2.0 - absS; + var onePlusAbsS: ${oe} = 1.0 + absS; + coeffs[0] = ((${E} * onePlusAbsS - 5 * ${E}) * onePlusAbsS + 8 * ${E}) * onePlusAbsS - 4 * ${E}; + coeffs[1] = ((${E} + 2) * absS - (${E} + 3)) * absS * absS + 1; + coeffs[2] = ((${E} + 2) * oneMinusAbsS - (${E} + 3)) * oneMinusAbsS * oneMinusAbsS + 1; + coeffs[3] = ((${E} * twoMinusAbsS - 5 * ${E}) * twoMinusAbsS + 8 * ${E}) * twoMinusAbsS - 4 * ${E}; + return coeffs; + } + + fn cubicInterpolation1D(x: array<${oe}, 4>, coefs: array<${oe}, 4>) -> ${oe} { + var coefsSum: ${oe} = coefs[0] + coefs[1] + coefs[2] + coefs[3]; + return (x[0] * coefs[0] + x[1] * coefs[1]+ x[2] * coefs[2]+ x[3] * coefs[3]) / coefsSum; + } + + fn bicubicInterpolation(output_indices: ${g.type.indices}) -> ${oe} { + var input_indices: ${i.type.indices} = output_indices; + return colCubicInterpolation(input_indices, output_indices); + } + `},zo=(i,g,h,w,B)=>{let[y,E,F,N,Y]=h.length===3?[-1,0,1,2,-1]:[0,2,3,4,1],te=i.type.value;return` + fn getInputValue(batch: u32, channel: u32, depth:u32, height: u32, width: u32) -> ${te} { + var input_indices: ${i.type.indices}; + ${i.indicesSet("input_indices",E,`max(0, min(depth, ${h[E]} - 1))`)}; + ${i.indicesSet("input_indices",F,`max(0, min(height, ${h[F]} - 1))`)}; + ${i.indicesSet("input_indices",N,`max(0, min(width, ${h[N]} - 1))`)}; + ${_0(i,Y,y,3)} + return ${i.getByIndices("input_indices")}; + } + + fn trilinearInterpolation(output_indices: ${g.type.indices}) -> ${te} { + var originalIndices = calculateOriginalIndicesFromOutputIndices(output_indices); + var depth:${te} = originalIndices[${E}]; + var height:${te} = originalIndices[${F}]; + var width:${te} = originalIndices[${N}]; + ${w?`if (depth < 0 || depth > (${h[E]} - 1) || height < 0 || height > (${h[F]} - 1) || width < 0 || (width > ${h[N]} - 1)) { + return ${B}; + }`:""}; + + depth = max(0, min(depth, ${h[E]} - 1)); + height = max(0, min(height, ${h[F]} - 1)); + width = max(0, min(width, ${h[N]} - 1)); + var depth1: u32 = u32(depth); + var height1: u32 = u32(height); + var width1: u32 = u32(width); + var depth2: u32 = u32(depth + 1); + var height2: u32 = u32(height + 1); + var width2: u32 = u32(width + 1); + var channel: u32 = ${h.length>3?`u32(originalIndices[${Y}])`:"0"}; + var batch: u32 = ${h.length>3?`u32(originalIndices[${y}])`:"0"}; + + var x111: ${te} = getInputValue(batch, channel, depth1, height1, width1); + var x112: ${te} = getInputValue(batch, channel, depth1, height1, width2); + var x121: ${te} = getInputValue(batch, channel, depth1, height2, width1); + var x122: ${te} = getInputValue(batch, channel, depth1, height2, width2); + var x211: ${te} = getInputValue(batch, channel, depth2, height1, width1); + var x212: ${te} = getInputValue(batch, channel, depth2, height1, width2); + var x221: ${te} = getInputValue(batch, channel, depth2, height2, width1); + var x222: ${te} = getInputValue(batch, channel, depth2, height2, width2); + var dx1: ${te} = abs(depth - ${te}(depth1)); + var dx2: ${te} = abs(${te}(depth2) - depth); + var dy1: ${te} = abs(height - ${te}(height1)); + var dy2: ${te} = abs(${te}(height2) - height); + var dz1: ${te} = abs(width - ${te}(width1)); + var dz2: ${te} = abs(${te}(width2) - width); + if (depth1 == depth2) { + dx1 = 0.5; + dx2 = 0.5; + } + if (height1 == height2) { + dy1 = 0.5; + dy2 = 0.5; + } + if (width1 == width2) { + dz1 = 0.5; + dz2 = 0.5; + } + return (x111 * dx2 * dy2 * dz2 + x112 * dx2 * dy2 * dz1 + x121 * dx2 * dy1 *dz2 + x122 * dx2 * dy1 * dz1 + + x211 * dx1 * dy2 * dz2 + x212 * dx1 * dy2 * dz1 + x221 * dx1 * dy1 *dz2 + x222 * dx1 * dy1 * dz1); + }`},Tl=(i,g,h,w,B,y)=>{let E=i.dims,F=To(y,g.axes,E.length),N=El(E,w,B,g.axes),Y=w.slice();w.length===0&&(Y=E.map((Me,De)=>Me===0?1:N[De]/Me),g.keepAspectRatioPolicy!=="stretch"&&(N=vl(E,Y,g)));let te=JA("output",i.dataType,N.length),Q=uA("input",i.dataType,E.length),ne=He.size(N),oe=E.length===N.length&&E.every((Me,De)=>Me===N[De]),de=g.coordinateTransformMode==="tf_crop_and_resize",fe=g.extrapolationValue,ke=Q.type.value;return{name:"Resize",shaderCache:{hint:`${g.cacheKey}|${h}|${Y.length>0?g.mode==="cubic"?Y:Y.length:""}|${B.length>0?B:""}|${F.length>0?F:""}|${oe}|${g.mode==="nearest"?E.length:E}`,inputDependencies:["rank"]},getShaderSource:Me=>` + ${oe?"":` + ${E1(g.coordinateTransformMode,ke)}; + ${(()=>{switch(g.mode){case"nearest":return` + ${Gl(Q,E)}; + ${Qo(g.nearestMode,h,ke)}; + ${Ml(Q,te,E,N,Y.length,F.length,de)}; + `;case"linear":return` + ${Po(te,E,N,Y.length,F.length)}; + ${(()=>{if(E.length===2||E.length===4)return`${Dl(Q,te,E,de,fe)}`;if(E.length===3||E.length===5)return`${zo(Q,te,E,de,fe)}`;throw Error("Linear mode only supports input dims 2, 3, 4 and 5 are supported in linear mode.")})()}; + `;case"cubic":return` + ${(()=>{if(E.length===2||E.length===4)return`${Ql(Q,te,E,N,Y,F,g.cubicCoeffA,de,g.extrapolationValue,g.excludeOutside)}`;throw Error("Cubic mode only supports input dims 2 and 4 are supported in linear mode.")})()}; + `;default:throw Error("Invalid resize mode")}})()}; + `} + ${Me.registerUniform("output_size","u32").registerUniform("scales","f32",Y.length).registerUniform("roi","f32",F.length).declareVariables(Q,te)} + ${Me.mainStart()} + ${Me.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + ${oe?"output[global_idx] = input[global_idx];":` + let output_indices = ${te.offsetToIndices("global_idx")}; + var input_indices: ${Q.type.indices}; + ${(()=>{switch(g.mode){case"nearest":return`input_indices = calculateInputIndicesFromOutputIndices(output_indices); + if (checkInputIndices(input_indices)) { + output[global_idx] = ${Q.getByIndices("input_indices")}; + } else { + output[global_idx] = ${g.extrapolationValue}; + }`;case"linear":return`output[global_idx] = ${E.length===2||E.length===4?"bilinearInterpolation":"trilinearInterpolation"}(output_indices);`;case"cubic":return"output[global_idx] = bicubicInterpolation(output_indices);";default:throw Error(`Unsupported resize mode: ${g.mode}`)}})()}; +`} + }`,getRunData:()=>({outputs:[{dims:N,dataType:i.dataType}],dispatchGroup:{x:Math.ceil(ne/64)},programUniforms:[{type:12,data:ne},{type:1,data:Y},{type:1,data:F},...KA(E,N)]})}},Pl=i=>{let g=i.customDataBuffer;return new Uint32Array(g,g.byteOffset,1)[0]},zl=(i,g)=>{let h=[],w=[],B=[],y=Pl(i);if(g.antialias!==0)throw Error("Only default value (0) for Antialias attribute is supported");Do(i.inputs,g,y,h,w,B),i.compute(Tl(i.inputs[0],g,y,h,w,B),{inputs:[0]})},Fl=i=>{let g=i.antialias,h=i.axes,w=i.coordinateTransformMode,B=i.cubicCoeffA,y=i.excludeOutside!==0,E=i.extrapolationValue,F=i.keepAspectRatioPolicy,N=i.mode,Y=i.nearestMode===""?"simple":i.nearestMode;return $e({antialias:g,axes:h,coordinateTransformMode:w,cubicCoeffA:B,excludeOutside:y,extrapolationValue:E,keepAspectRatioPolicy:F,mode:N,nearestMode:Y})}}),Mr=Pe(()=>{Dt(),St(),qr(),Rt(),Sl=(i,g)=>{let[h,w,B,y]=i,{numHeads:E,rotaryEmbeddingDim:F}=g;if(h.dims.length!==3&&h.dims.length!==4)throw new Error(`Input 'x' is expected to have 3 or 4 dimensions, got ${h.dims.length}`);if(!He.areEqual(w.dims,[])&&!He.areEqual(w.dims,[1])&&w.dims.length!==2)throw new Error(`Input 'position_ids' is expected to have 0, 1, or 2 dimensions, got ${w.dims.length}`);if(B.dims.length!==2)throw new Error(`Input 'cos_cache' is expected to have 2 dimensions, got ${B.dims.length}`);if(y.dims.length!==2)throw new Error(`Input 'sin_cache' is expected to have 2 dimensions, got ${y.dims.length}`);if(!He.areEqual(B.dims,y.dims))throw new Error("Inputs 'cos_cache' and 'sin_cache' are expected to have the same shape");if(F>0&&E===0)throw new Error("num_heads must be provided if rotary_embedding_dim is specified");let N=h.dims[0],Y=h.dims[h.dims.length-2],te=B.dims[0],Q=He.sizeFromDimension(h.dims,1)/Y,ne=F===0?2*B.dims[1]:Q/E;if(F>ne)throw new Error("rotary_embedding_dim must be less than or equal to head_size");if(w.dims.length===2){if(N!==w.dims[0])throw new Error(`Input 'position_ids' dimension 0 should be of size batch_size, got ${w.dims[0]}`);if(Y!==w.dims[1])throw new Error(`Input 'position_ids' dimension 1 should be of size sequence_length, got ${w.dims[1]}`)}if(ne/2!==B.dims[1]&&F/2!==B.dims[1])throw new Error(`Input 'cos_cache' dimension 1 should be same as head_size / 2 or rotary_embedding_dim / 2, got ${B.dims[1]}`);if(Y>te)throw new Error("Updating cos_cache and sin_cache in RotaryEmbedding is not currently supported")},Nl=(i,g)=>{let{interleaved:h,numHeads:w,rotaryEmbeddingDim:B,scale:y}=g,E=i[0].dims[0],F=He.sizeFromDimension(i[0].dims,1),N=i[0].dims[i[0].dims.length-2],Y=F/N,te=i[2].dims[1],Q=B===0?2*te:Y/w,ne=new Array(E,N,Y/Q,Q-te),oe=He.computeStrides(ne),de=[{type:1,data:y},{type:12,data:ne},{type:12,data:oe},...i[0].dims.length===3?new Array({type:12,data:[F,Y,Q,1]}):[],...i[0].dims.length===4?new Array({type:12,data:[F,Q,N*Q,1]}):[],...KA(i[0].dims,i[1].dims,i[2].dims,i[3].dims,i[0].dims)];return{name:"RotaryEmbedding",shaderCache:{hint:$e({interleaved:h}).cacheKey,inputDependencies:["rank","rank","rank","rank"]},getShaderSource:fe=>{let ke=uA("input",i[0].dataType,i[0].dims.length),Me=uA("position_ids",i[1].dataType,i[1].dims.length),De=uA("cos_cache",i[2].dataType,i[2].dims.length),Le=uA("sin_cache",i[3].dataType,i[3].dims.length),Xe=JA("output",i[0].dataType,i[0].dims.length);return fe.registerUniforms([{name:"scale",type:"f32"},{name:"global_shape",type:"u32",length:ne.length},{name:"global_strides",type:"u32",length:oe.length},{name:"input_output_strides",type:"u32",length:oe.length}]),` + ${fe.declareVariables(ke,Me,De,Le,Xe)} + + ${fe.mainStart(cr)} + let half_rotary_emb_dim = uniforms.${De.name}_shape[1]; + let bsnh = global_idx / uniforms.global_strides % uniforms.global_shape; + let size = uniforms.global_shape[0] * uniforms.global_strides[0]; + ${fe.guardAgainstOutOfBoundsWorkgroupSizes("size")} + + if (bsnh[3] < half_rotary_emb_dim) { + let position_ids_idx = + ${Me.broadcastedIndicesToOffset("bsnh.xy",JA("",Me.type.tensor,2))}; + let position_id = + u32(${Me.getByOffset("position_ids_idx")}) + select(0, bsnh[1], position_ids_idx == 0); + let i = dot(bsnh, uniforms.input_output_strides) + select(0, bsnh[3], ${h}); + let j = i + select(half_rotary_emb_dim, 1, ${h}); + let re = ${ke.getByOffset("i")} * ${De.get("position_id","bsnh[3]")} - + ${ke.getByOffset("j")} * ${Le.get("position_id","bsnh[3]")}; + ${Xe.setByOffset("i","re")} + let im = ${ke.getByOffset("i")} * ${Le.get("position_id","bsnh[3]")} + + ${ke.getByOffset("j")} * ${De.get("position_id","bsnh[3]")}; + ${Xe.setByOffset("j","im")} + } else { + let k = dot(bsnh, uniforms.input_output_strides) + half_rotary_emb_dim; + ${Xe.setByOffset("k",ke.getByOffset("k"))} + } + }`},getRunData:()=>({outputs:[{dims:i[0].dims,dataType:i[0].dataType}],dispatchGroup:{x:Math.ceil(He.size(ne)/cr)},programUniforms:de})}},Ol=(i,g)=>{Sl(i.inputs,g),i.compute(Nl(i.inputs,g))}}),Vr=Pe(()=>{Dt(),St(),Rt(),Ll=i=>{if(!i||i.length<3)throw new Error("layerNorm requires at least 3 inputs.");let g=i[0],h=i[1],w=i[2];if(g.dataType!==h.dataType||g.dataType!==w.dataType)throw new Error("All inputs must have the same data type");if(g.dims.length!==3&&g.dims.length!==2)throw new Error("Input must be 2D or 3D");if(h.dims.length!==3&&h.dims.length!==2)throw new Error("Skip must be 2D or 3D");let B=g.dims[g.dims.length-1],y=g.dims[g.dims.length-2];if(h.dims[h.dims.length-1]!==B)throw new Error("Skip must have the same hidden size as input");if(h.dims[h.dims.length-2]!==y)throw new Error("Skip must have the same sequence length as input");if(w.dims.length!==1)throw new Error("Gamma must be 1D");if(w.dims[w.dims.length-1]!==B)throw new Error("Gamma must have the same hidden size as input");if(i.length>3){let E=i[3];if(E.dims.length!==1)throw new Error("Beta must be 1D");if(E.dims[E.dims.length-1]!==B)throw new Error("Beta must have the same hidden size as input")}if(i.length>4){let E=i[4];if(E.dims.length!==1)throw new Error("Bias must be 1D");if(E.dims[E.dims.length-1]!==B)throw new Error("Bias must have the same hidden size as input")}},Yl=(i,g,h,w)=>{let B=g.simplified,y=i[0].dims,E=He.size(y),F=y,N=E,Y=y.slice(-1)[0],te=w?y.slice(0,-1).concat(1):[],Q=!B&&i.length>3,ne=i.length>4,oe=w&&h>1,de=w&&h>2,fe=h>3,ke=64,Me=Jt(Y),De=[{type:12,data:N},{type:12,data:Me},{type:12,data:Y},{type:1,data:g.epsilon}],Le=[{dims:F,dataType:i[0].dataType}];return h>1&&Le.push({dims:te,dataType:1}),h>2&&Le.push({dims:te,dataType:1}),h>3&&Le.push({dims:y,dataType:i[0].dataType}),{name:"SkipLayerNormalization",shaderCache:{hint:`${Me};${oe};${de};${fe}`,inputDependencies:i.map((Xe,_e)=>"type")},getShaderSource:Xe=>{let _e=[uA("x",i[0].dataType,i[0].dims,Me),uA("skip",i[1].dataType,i[1].dims,Me),uA("gamma",i[2].dataType,i[2].dims,Me)];Q&&_e.push(uA("beta",i[3].dataType,i[3].dims,Me)),ne&&_e.push(uA("bias",i[4].dataType,i[4].dims,Me)),_e.push(JA("output",i[0].dataType,F,Me)),oe&&_e.push(JA("mean_output",1,te)),de&&_e.push(JA("inv_std_output",1,te)),fe&&_e.push(JA("input_skip_bias_sum",i[0].dataType,F,Me));let lA=jt(i[0].dataType),LA=jt(1,Me);return` + + ${Xe.registerUniforms([{name:"output_size",type:"u32"},{name:"components",type:"u32"},{name:"hidden_size",type:"u32"},{name:"epsilon",type:"f32"}]).declareVariables(..._e)} + var sum_shared : array<${LA}, 64>; + var sum_squared_shared : array<${LA}, 64>; + + ${Xe.mainStart([ke,1,1])} + let ix = local_id.x; + let iy = global_id.x / 64; + + let hidden_size_vectorized: u32 = uniforms.hidden_size / uniforms.components; + var stride = hidden_size_vectorized / 64; + let offset = ix * stride + iy * hidden_size_vectorized; + let offset1d = stride * ix; + if (ix == 63) { + stride = hidden_size_vectorized - stride * ix; + } + for (var i: u32 = 0; i < stride; i++) { + let skip_value = skip[offset + i]; + let bias_value = ${ne?"bias[offset1d + i]":lA+"(0.0)"}; + let input_value = x[offset + i]; + let value = input_value + skip_value + bias_value; + ${fe?"input_skip_bias_sum[offset + i] = value;":""} + output[offset + i] = value; + let f32_value = ${fa(lA,Me,"value")}; + sum_shared[ix] += f32_value; + sum_squared_shared[ix] += f32_value * f32_value; + } + workgroupBarrier(); + + var reduce_size : u32 = 64; + for (var curr_size = reduce_size >> 1; curr_size > 0; curr_size = reduce_size >> 1) { + reduce_size = curr_size + (reduce_size & 1); + if (ix < curr_size) { + sum_shared[ix] += sum_shared[ix + reduce_size]; + sum_squared_shared[ix] += sum_squared_shared[ix + reduce_size]; + } + workgroupBarrier(); + } + + let sum = sum_shared[0]; + let square_sum = sum_squared_shared[0]; + let mean = ${nr("sum",Me)} / f32(uniforms.hidden_size); + let inv_std_dev = inverseSqrt(${nr("square_sum",Me)} / f32(uniforms.hidden_size) ${B?"":"- mean * mean"} + uniforms.epsilon); + ${oe?"mean_output[global_idx] = mean;":""} + ${de?"inv_std_output[global_idx] = inv_std_dev;":""} + + for (var i: u32 = 0; i < stride; i++) { + output[offset + i] = (output[offset + i] ${B?"":`- ${lA}(mean)`}) * + ${lA}(inv_std_dev) * gamma[offset1d + i] + ${Q?"+ beta[offset1d + i]":""}; + } + }`},getRunData:()=>({outputs:Le,dispatchGroup:{x:Math.ceil(N/Y)},programUniforms:De})}},Fo=(i,g)=>{Ll(i.inputs);let h=[0];i.outputCount>1&&h.push(-3),i.outputCount>2&&h.push(-3),i.outputCount>3&&h.push(3),i.compute(Yl(i.inputs,g,i.outputCount,!1),{outputs:h})}}),Jr=Pe(()=>{Dt(),St(),qr(),Rt(),Hl=(i,g)=>{if(!i||i.length<1)throw new Error("too few inputs");if(g.axes.length!==0){if(g.axes.length!==g.starts.length||g.axes.length!==g.ends.length)throw new Error("axes, starts and ends must have the same length")}else if(g.starts.length!==g.ends.length)throw new Error("starts and ends must have the same length");i.slice(1).forEach((h,w)=>{if(i[w+1].dataType!==6&&i[w+1].dataType!==7)throw new Error(`Input ${w} must be an array of int32 or int64`)})},S0=(i,g)=>{let h=[];if(i.length>g)if(i[g].dataType===7)i[g].getBigInt64Array().forEach(w=>h.push(Number(w)));else{if(i[g].dataType!==6)throw new Error(`Input ${g} must be an array of int32 or int64`);i[g].getInt32Array().forEach(w=>h.push(Number(w)))}return h},So=(i,g)=>{if(i.length>1){let h=S0(i,1),w=S0(i,2),B=S0(i,3);return B.length===0&&(B=[...Array(i[0].dims.length).keys()]),$e({starts:h,ends:w,axes:B})}return g},No=(i,g,h,w,B)=>{let y=i;return i<0&&(y+=h[w[g]]),B[g]<0?Math.max(0,Math.min(y,h[w[g]]-1)):Math.max(0,Math.min(y,h[w[g]]))},Rl=(i,g,h)=>`fn calculateInputIndices(output_indices: ${g.type.indices}) -> ${i.type.indices} { + var input_indices: ${i.type.indices}; + var carry = 0u; + for (var i = ${h.length}; i >= 0; i--) { + let input_shape_i = ${rt("uniforms.input_shape","i",h.length)}; + let steps_i = ${rt("uniforms.steps","i",h.length)}; + let signs_i = ${rt("uniforms.signs","i",h.length)}; + let starts_i = ${rt("uniforms.starts","i",h.length)}; + var output_index = ${g.indicesGet("output_indices","i")}; + var input_index = output_index * steps_i + starts_i + carry; + carry = input_index / input_shape_i; + input_index = input_index % input_shape_i; + if (signs_i < 0) { + input_index = input_shape_i - input_index - 1u + starts_i; + } + ${i.indicesSet("input_indices","i","input_index")}; + } + return input_indices; + }`,br=(i,g)=>{let h=i[0].dims,w=He.size(h),B=g.axes.length>0?He.normalizeAxes(g.axes,h.length):[...Array(h.length).keys()],y=S0(i,4);y.forEach(ke=>ke!==0||(()=>{throw new Error("step cannot be 0")})),y.length===0&&(y=Array(B.length).fill(1));let E=g.starts.map((ke,Me)=>No(ke,Me,h,B,y)),F=g.ends.map((ke,Me)=>No(ke,Me,h,B,y));if(B.length!==E.length||B.length!==F.length)throw new Error("start, ends and axes should have the same number of elements");if(B.length!==h.length)for(let ke=0;keMath.sign(ke));y.forEach((ke,Me,De)=>{if(ke<0){let Le=(F[Me]-E[Me])/ke,Xe=E[Me],_e=Xe+Le*y[Me];E[Me]=_e,F[Me]=Xe,De[Me]=-ke}});let Y=h.slice(0);B.forEach((ke,Me)=>{Y[ke]=Math.ceil((F[ke]-E[ke])/y[ke])});let te={dims:Y,dataType:i[0].dataType},Q=JA("output",i[0].dataType,Y.length),ne=uA("input",i[0].dataType,i[0].dims.length),oe=He.size(Y),de=[{name:"outputSize",type:"u32"},{name:"starts",type:"u32",length:E.length},{name:"signs",type:"i32",length:N.length},{name:"steps",type:"u32",length:y.length}],fe=[{type:12,data:oe},{type:12,data:E},{type:6,data:N},{type:12,data:y},...KA(i[0].dims,Y)];return{name:"Slice",shaderCache:{hint:`${N.length}_${E.length}_${y.length}`,inputDependencies:["rank"]},getShaderSource:ke=>` + ${ke.registerUniforms(de).declareVariables(ne,Q)} + ${Rl(ne,Q,h)} + ${ke.mainStart()} + ${ke.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + let output_indices = ${Q.offsetToIndices("global_idx")}; + let input_indices = calculateInputIndices(output_indices); + ${Q.setByOffset("global_idx",ne.getByIndices("input_indices"))} + }`,getRunData:()=>({outputs:[te],dispatchGroup:{x:Math.ceil(w/64)},programUniforms:fe})}},v1=(i,g)=>{Hl(i.inputs,g);let h=So(i.inputs,g);i.compute(br(i.inputs,h),{inputs:[0]})},M1=i=>{let g=i.starts,h=i.ends,w=i.axes;return $e({starts:g,ends:h,axes:w})}}),Sa=Pe(()=>{Dt(),St(),qr(),ri(),Rt(),G1=i=>{if(!i||i.length!==1)throw new Error("Softmax op requires 1 input.")},Oo=(i,g)=>{let h,w=i.inputs[0],B=w.dims,y=He.size(B),E=B.length,F=He.normalizeAxis(g.axis,E),N=FlA),Y[F]=E-1,Y[E-1]=F,h=i.compute(Ma(w,Y),{inputs:[w],outputs:[-1]})[0]):h=w;let te=h.dims,Q=te[E-1],ne=y/Q,oe=Jt(Q),de=Q/oe,fe=64;ne===1&&(fe=256);let ke=uA("x",h.dataType,h.dims,oe),Me=JA("result",h.dataType,h.dims,oe),De=ke.type.value,Le=jt(h.dataType)==="f32"?`var threadMax = ${De}(-3.402823e+38f);`:`var threadMax = ${De}(-65504.0h);`,Xe=i.compute({name:"Softmax",shaderCache:{hint:`${oe};${fe}`,inputDependencies:["type"]},getRunData:()=>({outputs:[{dims:te,dataType:h.dataType}],dispatchGroup:{x:ne},programUniforms:[{type:6,data:de}]}),getShaderSource:_e=>` + var rowMaxShared : ${De}; + var rowSumShared : ${De}; + var threadShared : array<${De}, ${fe}>; + + fn getValue(row: i32, col: i32, row_stride: i32) -> ${De} { + let index = row * row_stride + col; + return x[index]; + } + + fn setValue(row: i32, col: i32, row_stride: i32, value: ${De}) { + let index = row * row_stride + col; + result[index] = value; + } + ${_e.registerUniform("packedCols","i32").declareVariables(ke,Me)} + ${_e.mainStart(fe)} + let gindex = i32(global_idx); + let lindex = i32(local_idx); + const wg = ${fe}; + let row = gindex / wg; + let cols = uniforms.packedCols; + let row_stride : i32 = uniforms.packedCols; + + // find the rows max + ${Le} + for (var col = lindex; col < cols; col += wg) { + let value = getValue(row, col, row_stride); + threadMax = max(threadMax, value); + } + if (lindex < cols) { + threadShared[lindex] = threadMax; + } + workgroupBarrier(); + + var reduceSize = min(cols, wg); + for (var currSize = reduceSize >> 1; currSize > 0; currSize = reduceSize >> 1) { + reduceSize = currSize + (reduceSize & 1); + if (lindex < currSize) { + threadShared[lindex] = max(threadShared[lindex], threadShared[lindex + reduceSize]); + } + workgroupBarrier(); + } + if (lindex == 0) { + rowMaxShared = ${De}(${((lA,LA)=>LA===4?`max(max(${lA}.x, ${lA}.y), max(${lA}.z, ${lA}.w))`:LA===2?`max(${lA}.x, ${lA}.y)`:LA===3?`max(max(${lA}.x, ${lA}.y), ${lA}.z)`:lA)("threadShared[0]",oe)}); + } + workgroupBarrier(); + + // find the rows sum + var threadSum = ${De}(0.0); + for (var col = lindex; col < cols; col += wg) { + let subExp = exp(getValue(row, col, row_stride) - rowMaxShared); + threadSum += subExp; + } + threadShared[lindex] = threadSum; + workgroupBarrier(); + + for (var currSize = wg >> 1; currSize > 0; currSize = currSize >> 1) { + if (lindex < currSize) { + threadShared[lindex] = threadShared[lindex] + threadShared[lindex + currSize]; + } + workgroupBarrier(); + } + if (lindex == 0) { + rowSumShared = ${De}(${nr("threadShared[0]",oe)}); + } + workgroupBarrier(); + + // calculate final value for each element in the row + for (var col = lindex; col < cols; col += wg) { + let value = exp(getValue(row, col, row_stride) - rowMaxShared) / rowSumShared; + setValue(row, col, row_stride, value); + } + }`},{inputs:[h],outputs:[N?-1:0]})[0];N&&i.compute(Ma(Xe,Y),{inputs:[Xe]})},Wl=(i,g)=>{G1(i.inputs),Oo(i,g)},Vl=i=>$e({axis:i.axis})}),_r=Pe(()=>{Dt(),St(),Rt(),Lo=i=>Array.from(i.getBigInt64Array(),Number),jl=i=>{if(!i||i.length!==2)throw new Error("Tile requires 2 inputs.");if(i[0].dataType!==1&&i[0].dataType!==10&&i[0].dataType!==6&&i[0].dataType!==12)throw new Error("Tile only support float, float16, int32, and uint32 data types");if(i[1].dataType!==7)throw new Error("Tile `repeats` input should be of int64 data type");if(i[1].dims.length!==1)throw new Error("Tile `repeats` input should be 1-D");if(Lo(i[1]).length!==i[0].dims.length)throw new Error("Tile `repeats` input should have same number of elements as rank of input data tensor")},Yo=(i,g)=>{let h=[];for(let w=0;w{let h=i[0].dims,w=g??Lo(i[1]),B=Yo(h,w),y=He.size(B),E=i[0].dataType,F=uA("input",E,h.length),N=JA("output",E,B.length);return{name:"Tile",shaderCache:{hint:`${w}`,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:B,dataType:i[0].dataType}],dispatchGroup:{x:Math.ceil(y/64)},programUniforms:[{type:12,data:y},...KA(i[0].dims,B)]}),getShaderSource:Y=>` + const inputShape = ${F.indices(...h)}; + ${Y.registerUniform("output_size","u32").declareVariables(F,N)} + ${Y.mainStart()} + ${Y.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let output_indices = ${N.offsetToIndices("global_idx")}; + var input_indices: ${F.type.indices}; + for (var i = 0; i < ${h.length}; i++) { + let input_dim_i = ${F.indicesGet("uniforms.input_shape","i")}; + let input_dim_value = ${N.indicesGet("output_indices","i")} % input_dim_i; + + ${F.indicesSet("input_indices","i","input_dim_value")} + } + ${N.setByOffset("global_idx",F.getByIndices("input_indices"))} + }`}},D1=i=>{jl(i.inputs),i.compute(Ho(i.inputs),{inputs:[0]})}}),Yr=Pe(()=>{Dt(),St(),Rt(),Ul=(i,g,h,w,B)=>{let y,E=JA("output_data",B,h.length,4),F=uA("a_data",g[1].dataType,g[1].dims.length,4),N=uA("b_data",g[2].dataType,g[2].dims.length,4),Y=uA("c_data",g[0].dataType,g[0].dims.length,4),te=(Q,ne,oe)=>`select(${ne}, ${Q}, ${oe})`;if(w){let Q=(ne,oe,de="")=>{let fe=`a_data[index_a${oe}][component_a${oe}]`,ke=`b_data[index_b${oe}][component_b${oe}]`,Me=`bool(c_data[index_c${oe}] & (0xffu << (component_c${oe} * 8)))`;return` + let output_indices${oe} = ${E.offsetToIndices(`global_idx * 4u + ${oe}u`)}; + let offset_a${oe} = ${F.broadcastedIndicesToOffset(`output_indices${oe}`,E)}; + let offset_b${oe} = ${N.broadcastedIndicesToOffset(`output_indices${oe}`,E)}; + let offset_c${oe} = ${Y.broadcastedIndicesToOffset(`output_indices${oe}`,E)}; + let index_a${oe} = offset_a${oe} / 4u; + let index_b${oe} = offset_b${oe} / 4u; + let index_c${oe} = offset_c${oe} / 4u; + let component_a${oe} = offset_a${oe} % 4u; + let component_b${oe} = offset_b${oe} % 4u; + let component_c${oe} = offset_c${oe} % 4u; + ${ne}[${oe}] = ${de}(${te(fe,ke,Me)}); + `};y=B===9?` + var data = vec4(0); + ${Q("data",0,"u32")} + ${Q("data",1,"u32")} + ${Q("data",2,"u32")} + ${Q("data",3,"u32")} + output_data[global_idx] = dot(vec4(0x1, 0x100, 0x10000, 0x1000000), vec4(data));`:` + ${Q("output_data[global_idx]",0)} + ${Q("output_data[global_idx]",1)} + ${Q("output_data[global_idx]",2)} + ${Q("output_data[global_idx]",3)} + `}else y=E.setByOffset("global_idx",te(F.getByOffset("global_idx"),N.getByOffset("global_idx"),Y.getByOffset("global_idx")));return` + ${i.registerUniform("vec_size","u32").declareVariables(Y,F,N,E)} + ${i.mainStart()} + ${i.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")} + ${y} + }`},Kl=i=>{let g=i[1].dims,h=i[2].dims,w=i[0].dims,B=i[1].dataType,y=!(He.areEqual(g,h)&&He.areEqual(h,w)),E=g,F=He.size(g);if(y){let Y=NA.calcShape(NA.calcShape(g,h,!1),w,!1);if(!Y)throw new Error("Can't perform where op on the given tensors");E=Y,F=He.size(E)}let N=Math.ceil(F/4);return{name:"Where",shaderCache:{inputDependencies:["rank","rank","rank"]},getShaderSource:Y=>Ul(Y,i,E,y,B),getRunData:()=>({outputs:[{dims:E,dataType:B}],dispatchGroup:{x:Math.ceil(F/64/4)},programUniforms:[{type:12,data:N},...KA(w,g,h,E)]})}},Ro=i=>{i.compute(Kl(i.inputs))}}),Ca=Pe(()=>{cc(),i1(),uc(),gc(),dc(),fc(),pc(),Nt(),Da(),Fa(),ja(),Xi(),Ic(),O1(),L1(),U(),V(),ve(),eA(),sA(),XA(),WA(),_A(),ft(),ut(),gA(),zt(),Qt(),or(),Bt(),Ot(),n1(),Ir(),Mr(),Vr(),Jr(),Sa(),FA(),_r(),ri(),o1(),Yr(),Q1=new Map([["Abs",[yi]],["Acos",[ss]],["Acosh",[w0]],["Add",[fr]],["ArgMax",[f0,Hn]],["ArgMin",[sn,Hn]],["Asin",[Aa]],["Asinh",[ps]],["Atan",[ta]],["Atanh",[hs]],["Attention",[p0]],["AveragePool",[xo,gl]],["BatchNormalization",[C0]],["BiasAdd",[I0]],["BiasSplitGelu",[ha]],["Cast",[Ei,Wn]],["Ceil",[yr]],["Clip",[Vn]],["Concat",[un,M0]],["Conv",[We,ce]],["ConvTranspose",[Zt,et]],["Cos",[Bn]],["Cosh",[vi]],["CumSum",[pr,hr]],["DepthToSpace",[Wr,na]],["DequantizeLinear",[vo,J0]],["Div",[Li]],["Einsum",[fn,pn]],["Elu",[on,ra]],["Equal",[Ms]],["Erf",[Mi]],["Exp",[Gi]],["Expand",[_n]],["FastGelu",[c2]],["Floor",[Di]],["FusedConv",[We,ce]],["Gather",[uo,d2]],["GatherElements",[po,w2]],["GatherBlockQuantized",[C2,b2]],["GatherND",[p2,go]],["Gelu",[jn]],["Gemm",[B2,ho]],["GlobalAveragePool",[yo,dl]],["GlobalMaxPool",[hl,pl]],["Greater",[Hi]],["GreaterOrEqual",[Gs]],["GridSample",[Q2,T2]],["GroupQueryAttention",[V2]],["HardSigmoid",[Lr,Kn]],["InstanceNormalization",[U2]],["LayerNormalization",[X2]],["LeakyRelu",[ns,ra]],["Less",[v0]],["LessOrEqual",[$a]],["Log",[ln]],["MatMul",[q2]],["MatMulNBits",[$2,el]],["MaxPool",[fl,q0]],["Mul",[cn]],["MultiHeadAttention",[Tn,z2]],["Neg",[x0]],["Not",[Un]],["Pad",[ol]],["Pow",[E0]],["QuickGelu",[y0,ra]],["Range",[Il]],["Reciprocal",[Qi]],["ReduceMin",[kn]],["ReduceMean",[wi]],["ReduceMax",[an]],["ReduceSum",[zr]],["ReduceProd",[ki]],["ReduceL1",[Yn]],["ReduceL2",[xa]],["ReduceLogSum",[d0]],["ReduceLogSumExp",[Pa]],["ReduceSumSquare",[g0]],["Relu",[Ti]],["Resize",[zl,Fl]],["RotaryEmbedding",[Ol]],["ScatterND",[Go,kl]],["Sigmoid",[Cs]],["Sin",[Pi]],["Sinh",[Zn]],["Slice",[v1,M1]],["SkipLayerNormalization",[Fo]],["Split",[Y2,H2]],["Sqrt",[yn]],["Softmax",[Wl,Vl]],["Sub",[Yi]],["Tan",[za]],["Tanh",[zi]],["ThresholdedRelu",[Si,ra]],["Tile",[D1]],["Transpose",[Nn,Gt]],["Where",[Ro]]])}),_t=Pe(()=>{dA(),Pn(),Rt(),T1=class{constructor(i){this.backend=i,this.repo=new Map,this.attributesBound=!1}getArtifact(i){return this.repo.get(i)}setArtifact(i,g){this.repo.set(i,g)}run(i,g,h,w,B){Ye(i.programInfo.name);let y=this.backend.device,E=this.backend.getComputePassEncoder();this.backend.writeTimestamp(2*this.backend.pendingDispatchNumber);let F=[];for(let Y of g)F.push({binding:F.length,resource:{buffer:Y.buffer}});for(let Y of h)F.push({binding:F.length,resource:{buffer:Y.buffer}});B&&F.push({binding:F.length,resource:B});let N=y.createBindGroup({layout:i.computePipeline.getBindGroupLayout(0),entries:F,label:i.programInfo.name});if(this.backend.sessionStatus==="capturing"){let Y={kernelId:this.backend.currentKernelId,computePipeline:i.computePipeline,bindGroup:N,dispatchGroup:w};this.backend.capturedCommandList.get(this.backend.currentSessionId).push(Y)}E.setPipeline(i.computePipeline),E.setBindGroup(0,N),E.dispatchWorkgroups(...w),this.backend.writeTimestamp(2*this.backend.pendingDispatchNumber+1),this.backend.pendingDispatchNumber++,(this.backend.pendingDispatchNumber>=this.backend.maxDispatchNumber||this.backend.queryType==="at-passes")&&this.backend.endComputePass(),this.backend.pendingDispatchNumber>=this.backend.maxDispatchNumber&&this.backend.flush(),Je(i.programInfo.name)}dispose(){}build(i,g){Ye(i.name);let h=this.backend.device,w=[];[{feature:"shader-f16",extension:"f16"},{feature:"subgroups",extension:"subgroups"},{feature:"subgroups-f16",extension:"subgroups_f16"}].forEach(Y=>{h.features.has(Y.feature)&&w.push(`enable ${Y.extension};`)});let B=Pr(g,this.backend.device.limits),y=i.getShaderSource(B),E=`${w.join(` +`)} +${B.additionalImplementations} +${y}`,F=h.createShaderModule({code:E,label:i.name});Pt("verbose",()=>`[WebGPU] ${i.name} shader code: ${E}`);let N=h.createComputePipeline({compute:{module:F,entryPoint:"main"},layout:"auto",label:i.name});return Je(i.name),{programInfo:i,computePipeline:N,uniformVariablesInfo:B.variablesInfo}}normalizeDispatchGroupSize(i){let g=typeof i=="number"?i:i.x,h=typeof i=="number"?1:i.y||1,w=typeof i=="number"?1:i.z||1,B=this.backend.device.limits.maxComputeWorkgroupsPerDimension;if(g<=B&&h<=B&&w<=B)return[g,h,w];let y=g*h*w,E=Math.ceil(Math.sqrt(y));if(E>B){if(E=Math.ceil(Math.cbrt(y)),E>B)throw new Error("Total dispatch size exceeds WebGPU maximum.");return[E,E,E]}return[E,E,1]}}}),Ua=Pe(()=>{dA(),Dt(),Pn(),S1(),oc(),Ca(),_t(),Zl=(i,g)=>{if(g.length!==i.length)throw new Error(`inputDependencies length ${g.length} is not equal to inputTensors length ${i.length}.`);let h=[];for(let w=0;w{let w=i.name;return i.shaderCache?.hint&&(w+="["+i.shaderCache.hint+"]"),w+=":"+h+`:${Zl(g,i.shaderCache?.inputDependencies??new Array(g.length).fill("dims"))}`,w},ql=class{constructor(i){i&&(this.architecture=i.architecture,this.vendor=i.vendor)}isArchitecture(i){return this.architecture===i}isVendor(i){return this.vendor===i}},Jl=class{constructor(i){this.subgroupsSupported=i.features.has("subgroups"),this.subgroupsF16Supported=i.features.has("subgroups");let g=i.limits;this.subgroupsSupported&&g.minSubgroupSize&&g.maxSubgroupSize?this.subgroupSizeRange=[g.minSubgroupSize,g.maxSubgroupSize]:this.subgroupSizeRange=void 0}},_l=class{constructor(){this.currentSessionId=null,this.currentKernelId=null,this.commandEncoder=null,this.computePassEncoder=null,this.maxDispatchNumber=16,this.pendingDispatchNumber=0,this.pendingKernels=[],this.pendingQueries=new Map,this.sessionStatus="default",this.capturedCommandList=new Map,this.capturedPendingKernels=new Map,this.sessionExternalDataMapping=new Map}get currentKernelCustomData(){if(this.currentKernelId===null)throw new Error("currentKernelCustomData(): currentKernelId is null. (should not happen)");let i=this.kernelCustomData.get(this.currentKernelId);return i||(i={},this.kernelCustomData.set(this.currentKernelId,i)),i}async initialize(i,g){this.env=i;let h=[],w={requiredLimits:{maxComputeWorkgroupStorageSize:g.limits.maxComputeWorkgroupStorageSize,maxComputeWorkgroupsPerDimension:g.limits.maxComputeWorkgroupsPerDimension,maxStorageBufferBindingSize:g.limits.maxStorageBufferBindingSize,maxBufferSize:g.limits.maxBufferSize,maxComputeInvocationsPerWorkgroup:g.limits.maxComputeInvocationsPerWorkgroup,maxComputeWorkgroupSizeX:g.limits.maxComputeWorkgroupSizeX,maxComputeWorkgroupSizeY:g.limits.maxComputeWorkgroupSizeY,maxComputeWorkgroupSizeZ:g.limits.maxComputeWorkgroupSizeZ},requiredFeatures:h},B=y=>g.features.has(y)&&h.push(y)&&!0;B("chromium-experimental-timestamp-query-inside-passes")||B("timestamp-query"),B("shader-f16"),B("subgroups")&&B("subgroups-f16"),this.device=await g.requestDevice(w),this.deviceInfo=new Jl(this.device),this.adapterInfo=new ql(g.info||await g.requestAdapterInfo()),this.gpuDataManager=Oe(this),this.programManager=new T1(this),this.kernels=new Map,this.kernelPersistentData=new Map,this.kernelCustomData=new Map,ys(i.logLevel,!!i.debug),this.device.onuncapturederror=y=>{y.error instanceof GPUValidationError&&console.error(`An uncaught WebGPU validation error was raised: ${y.error.message}`)},Object.defineProperty(this.env.webgpu,"device",{value:this.device,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(this.env.webgpu,"adapter",{value:g,writable:!1,enumerable:!0,configurable:!1}),this.setQueryType()}dispose(){typeof this.querySet<"u"&&this.querySet.destroy(),this.gpuDataManager.dispose()}getCommandEncoder(){return this.commandEncoder||(this.commandEncoder=this.device.createCommandEncoder()),this.commandEncoder}getComputePassEncoder(){if(!this.computePassEncoder){let i=this.getCommandEncoder(),g={};this.queryType==="at-passes"&&(g.timestampWrites={querySet:this.querySet,beginningOfPassWriteIndex:2*this.pendingDispatchNumber,endOfPassWriteIndex:2*this.pendingDispatchNumber+1}),this.computePassEncoder=i.beginComputePass(g)}return this.computePassEncoder}endComputePass(){this.computePassEncoder&&(this.computePassEncoder.end(),this.computePassEncoder=null)}flush(){if(!this.commandEncoder)return;let i;Ye(),this.endComputePass(),this.queryType!=="none"&&(this.commandEncoder.resolveQuerySet(this.querySet,0,2*this.pendingDispatchNumber,this.queryResolveBuffer,0),i=this.device.createBuffer({size:2*this.pendingDispatchNumber*8,usage:GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST}),this.pendingQueries.set(i,this.pendingKernels),this.pendingKernels=[],this.commandEncoder.copyBufferToBuffer(this.queryResolveBuffer,0,i,0,2*this.pendingDispatchNumber*8)),this.device.queue.submit([this.commandEncoder.finish()]),this.gpuDataManager.refreshPendingBuffers(),this.commandEncoder=null,this.pendingDispatchNumber=0,this.queryType!=="none"&&i.mapAsync(GPUMapMode.READ).then(()=>{let g=new BigUint64Array(i.getMappedRange()),h=this.pendingQueries.get(i);for(let w=0;w"u"&&(this.queryTimeBase=ne);let de=Number(ne-this.queryTimeBase),fe=Number(oe-this.queryTimeBase);if(!Number.isSafeInteger(de)||!Number.isSafeInteger(fe))throw new RangeError("incorrect timestamp range");if(this.env.webgpu.profiling?.ondata)this.env.webgpu.profiling.ondata({version:1,inputsMetadata:te.map(ke=>({dims:ke.dims,dataType:ts(ke.dataType)})),outputsMetadata:Q.map(ke=>({dims:ke.dims,dataType:ts(ke.dataType)})),kernelId:y,kernelType:F,kernelName:N,programName:Y,startTime:de,endTime:fe});else{let ke="";te.forEach((De,Le)=>{ke+=`input[${Le}]: [${De.dims}] | ${ts(De.dataType)}, `});let Me="";Q.forEach((De,Le)=>{Me+=`output[${Le}]: [${De.dims}] | ${ts(De.dataType)}, `}),console.log(`[profiling] kernel "${y}|${F}|${N}|${Y}" ${ke}${Me}execution time: ${fe-de} ns`)}Re("GPU",`${Y}::${ne}::${oe}`)}i.unmap(),this.pendingQueries.delete(i)}),Je()}run(i,g,h,w,B,y){Ye(i.name);let E=[];for(let De=0;DeLe):h;if(te.length!==F.length)throw new Error(`Output size ${te.length} must be equal to ${F.length}.`);let Q,ne=[],oe=[];for(let De=0;De=y)throw new Error(`Invalid output index: ${te[De]}`);if(te[De]===-3)continue;let Le=te[De]===-1,Xe=te[De]===-2,_e=Le||Xe?B(F[De].dataType,F[De].dims):w(te[De],F[De].dataType,F[De].dims);if(ne.push(_e),_e.data===0)continue;let lA=this.gpuDataManager.get(_e.data);if(!lA)throw new Error(`no GPU data for output: ${_e.data}`);if(Le&&this.temporaryData.push(lA),Xe){let LA=this.kernelPersistentData.get(this.currentKernelId);LA||(LA=[],this.kernelPersistentData.set(this.currentKernelId,LA)),LA.push(lA)}oe.push(lA)}if(E.length!==g.length||oe.length!==ne.length){if(oe.length===0)return Je(i.name),ne;throw new Error(`Program ${i.name} has zero-sized tensor(s) in inputs or outputs. This is not supported now.`)}if(Y){let De=0,Le=[];Y.forEach(LA=>{let st=typeof LA.data=="number"?[LA.data]:LA.data;if(st.length===0)return;let ht,pt,mt=LA.type===10?2:4;LA.type===10?(pt=st.length>4?16:st.length>2?8:st.length*mt,ht=st.length>4?16:mt*st.length):(pt=st.length<=2?st.length*mt:16,ht=16),De=Math.ceil(De/pt)*pt,Le.push(De);let yt=LA.type===10?8:4;De+=st.length>4?Math.ceil(st.length/yt)*ht:st.length*mt});let Xe=16;De=Math.ceil(De/Xe)*Xe;let _e=new ArrayBuffer(De);Y.forEach((LA,st)=>{let ht=Le[st],pt=typeof LA.data=="number"?[LA.data]:LA.data;if(LA.type===6)new Int32Array(_e,ht,pt.length).set(pt);else if(LA.type===12)new Uint32Array(_e,ht,pt.length).set(pt);else if(LA.type===10)new Uint16Array(_e,ht,pt.length).set(pt);else{if(LA.type!==1)throw new Error(`Unsupported uniform type: ${ts(LA.type)}`);new Float32Array(_e,ht,pt.length).set(pt)}});let lA=this.gpuDataManager.create(De,GPUBufferUsage.COPY_DST|GPUBufferUsage.UNIFORM);this.device.queue.writeBuffer(lA.buffer,0,_e,0,De),this.gpuDataManager.release(lA.id),Q={offset:0,size:De,buffer:lA.buffer}}let de=this.programManager.normalizeDispatchGroupSize(N),fe=de[1]===1&&de[2]===1,ke=Xl(i,g,fe),Me=this.programManager.getArtifact(ke);if(Me||(Me=this.programManager.build(i,de),this.programManager.setArtifact(ke,Me),Pt("info",()=>`[artifact] key: ${ke}, programName: ${i.name}`)),Y&&Me.uniformVariablesInfo){if(Y.length!==Me.uniformVariablesInfo.length)throw new Error(`Uniform variables count mismatch: expect ${Me.uniformVariablesInfo.length}, got ${Y.length} in program "${Me.programInfo.name}".`);for(let De=0;De`[ProgramManager] run "${i.name}" (key=${ke}) with ${de[0]}x${de[1]}x${de[2]}`),this.queryType!=="none"||this.sessionStatus==="capturing"){let De={kernelId:this.currentKernelId,programName:Me.programInfo.name,inputTensorViews:g,outputTensorViews:ne};this.pendingKernels.push(De),this.sessionStatus==="capturing"&&this.capturedPendingKernels.get(this.currentSessionId).push(De)}return this.programManager.run(Me,E,oe,de,Q),Je(i.name),ne}upload(i,g){this.gpuDataManager.upload(i,g)}memcpy(i,g){this.gpuDataManager.memcpy(i,g)}async download(i,g){await this.gpuDataManager.download(i,g)}alloc(i){return this.gpuDataManager.create(i).id}free(i){return this.gpuDataManager.release(i)}createKernel(i,g,h,w){let B=Q1.get(i);if(!B)throw new Error(`kernel not implemented: ${i}`);let y={kernelType:i,kernelName:w,kernelEntry:B[0],attributes:[B[1],h]};this.kernels.set(g,y)}releaseKernel(i){let g=this.kernelPersistentData.get(i);if(g){for(let h of g)this.gpuDataManager.release(h.id);this.kernelPersistentData.delete(i)}this.kernelCustomData.delete(i),this.kernels.delete(i)}computeKernel(i,g,h){let w=this.kernels.get(i);if(!w)throw new Error(`kernel not created: ${i}`);let B=w.kernelType,y=w.kernelName,E=w.kernelEntry,F=w.attributes;if(this.currentKernelId!==null)throw new Error(`kernel "[${B}] ${y}" is not allowed to be called recursively`);this.currentKernelId=i,F[0]&&(F[1]=F[0](F[1]),F[0]=void 0),Pt("info",()=>`[WebGPU] Start to run kernel "[${B}] ${y}"...`);let N=this.env.debug;this.temporaryData=[];try{return N&&this.device.pushErrorScope("validation"),E(g,F[1]),0}catch(Y){return h.push(Promise.resolve(`[WebGPU] Kernel "[${B}] ${y}" failed. ${Y}`)),1}finally{N&&h.push(this.device.popErrorScope().then(Y=>Y?`GPU validation error for kernel "[${B}] ${y}": ${Y.message}`:null));for(let Y of this.temporaryData)this.gpuDataManager.release(Y.id);this.temporaryData=[],this.currentKernelId=null}}registerBuffer(i,g,h,w){let B=this.sessionExternalDataMapping.get(i);B||(B=new Map,this.sessionExternalDataMapping.set(i,B));let y=B.get(g),E=this.gpuDataManager.registerExternalBuffer(h,w,y);return B.set(g,[E,h]),E}unregisterBuffers(i){let g=this.sessionExternalDataMapping.get(i);g&&(g.forEach(h=>this.gpuDataManager.unregisterExternalBuffer(h[0])),this.sessionExternalDataMapping.delete(i))}getBuffer(i){let g=this.gpuDataManager.get(i);if(!g)throw new Error(`no GPU data for buffer: ${i}`);return g.buffer}createDownloader(i,g,h){return async()=>{let w=await _(this,i,g);return wa(w.buffer,h)}}writeTimestamp(i){this.queryType==="inside-passes"&&this.computePassEncoder.writeTimestamp(this.querySet,i)}setQueryType(){this.queryType="none",(this.env.webgpu.profiling?.mode==="default"||(typeof this.env.trace>"u"?this.env.wasm.trace:this.env.trace))&&(this.device.features.has("chromium-experimental-timestamp-query-inside-passes")?this.queryType="inside-passes":this.device.features.has("timestamp-query")&&(this.queryType="at-passes"),this.queryType!=="none"&&typeof this.querySet>"u"&&(this.querySet=this.device.createQuerySet({type:"timestamp",count:2*this.maxDispatchNumber}),this.queryResolveBuffer=this.device.createBuffer({size:2*this.maxDispatchNumber*8,usage:GPUBufferUsage.COPY_SRC|GPUBufferUsage.QUERY_RESOLVE})))}captureBegin(){Pt("info","captureBegin"),this.capturedCommandList.get(this.currentSessionId)||this.capturedCommandList.set(this.currentSessionId,[]),this.capturedPendingKernels.get(this.currentSessionId)||this.capturedPendingKernels.set(this.currentSessionId,[]),this.flush(),this.sessionStatus="capturing"}captureEnd(){Pt("info","captureEnd"),this.flush(),this.sessionStatus="default"}replay(){Pt("info","replay"),this.sessionStatus="replaying";let i=this.capturedCommandList.get(this.currentSessionId),g=this.capturedPendingKernels.get(this.currentSessionId),h=i.length;this.pendingKernels=[];for(let w=0;w=this.maxDispatchNumber||this.queryType==="at-passes")&&this.endComputePass(),this.pendingDispatchNumber>=this.maxDispatchNumber&&this.flush()}this.flush(),this.sessionStatus="default"}onCreateSession(){this.gpuDataManager.onCreateSession()}onReleaseSession(i){this.unregisterBuffers(i),this.capturedCommandList.has(i)&&this.capturedCommandList.delete(i),this.capturedPendingKernels.has(i)&&this.capturedPendingKernels.delete(i),this.gpuDataManager.onReleaseSession(i)}onRunStart(i){this.currentSessionId=i,this.setQueryType()}}}),ai=Pe(()=>{Pn(),$l=1,Wo=()=>$l++,e1=new Map([["float32",32],["float16",16],["int32",32],["uint32",32],["int64",64],["uint64",64],["int8",8],["uint8",8],["int4",4],["uint4",4]]),Vo=(i,g)=>{let h=e1.get(i);if(!h)throw new Error("Unsupported data type.");return g.length>0?Math.ceil(g.reduce((w,B)=>w*B)*h/8):0},jo=class{constructor(i){this.sessionId=i.sessionId,this.mlContext=i.context,this.mlTensor=i.tensor,this.dataType=i.dataType,this.tensorShape=i.shape}get tensor(){return this.mlTensor}get type(){return this.dataType}get shape(){return this.tensorShape}get byteLength(){return Vo(this.dataType,this.tensorShape)}destroy(){Pt("verbose",()=>"[WebNN] TensorWrapper.destroy"),this.mlTensor.destroy()}write(i){this.mlContext.writeTensor(this.mlTensor,i)}async read(i){return i?this.mlContext.readTensor(this.mlTensor,i):this.mlContext.readTensor(this.mlTensor)}canReuseTensor(i,g,h){return this.mlContext===i&&this.dataType===g&&this.tensorShape.length===h.length&&this.tensorShape.every((w,B)=>w===h[B])}},Uo=class{constructor(i,g){this.tensorManager=i,this.wrapper=g}get tensorWrapper(){return this.wrapper}releaseTensor(){this.tensorWrapper&&(this.tensorManager.releaseTensor(this.tensorWrapper),this.wrapper=void 0)}async ensureTensor(i,g,h,w){if(this.wrapper){if(this.wrapper.canReuseTensor(i,g,h))return this.wrapper.tensor;if(w){if(this.wrapper.byteLength!==Vo(g,h))throw new Error("Unable to copy data to tensor with different size.");this.activeUpload=new Uint8Array(await this.wrapper.read())}this.tensorManager.releaseTensor(this.wrapper)}let B=typeof MLTensorUsage>"u"?void 0:MLTensorUsage.READ|MLTensorUsage.WRITE;return this.wrapper=await this.tensorManager.getCachedTensor(g,h,B,!0,!0),w&&this.activeUpload&&(this.wrapper.write(this.activeUpload),this.activeUpload=void 0),this.wrapper.tensor}upload(i){if(this.wrapper){if(i.byteLength===this.wrapper.byteLength)return void this.wrapper.write(i);Pt("verbose",()=>"Data size does not match tensor size. Releasing tensor."),this.releaseTensor()}this.activeUpload?this.activeUpload.set(i):this.activeUpload=new Uint8Array(i)}async download(i){if(this.activeUpload)return i?void(i instanceof ArrayBuffer?new Uint8Array(i).set(this.activeUpload):new Uint8Array(i.buffer,i.byteOffset,i.byteLength).set(this.activeUpload)):this.activeUpload.buffer;if(!this.wrapper)throw new Error("Tensor has not been created.");return i?this.wrapper.read(i):this.wrapper.read()}},A1=class{constructor(i){this.backend=i,this.tensorTrackersById=new Map,this.freeTensors=[],this.externalTensors=new Set}reserveTensorId(){let i=Wo();return this.tensorTrackersById.set(i,new Uo(this)),i}releaseTensorId(i){let g=this.tensorTrackersById.get(i);g&&(this.tensorTrackersById.delete(i),g.tensorWrapper&&this.releaseTensor(g.tensorWrapper))}async ensureTensor(i,g,h,w){Pt("verbose",()=>`[WebNN] TensorManager.ensureTensor {tensorId: ${i}, dataType: ${g}, shape: ${h}, copyOld: ${w}}`);let B=this.tensorTrackersById.get(i);if(!B)throw new Error("Tensor not found.");return B.ensureTensor(this.backend.currentContext,g,h,w)}upload(i,g){let h=this.tensorTrackersById.get(i);if(!h)throw new Error("Tensor not found.");h.upload(g)}async download(i,g){Pt("verbose",()=>`[WebNN] TensorManager.download {tensorId: ${i}, dstBuffer: ${g?.byteLength}}`);let h=this.tensorTrackersById.get(i);if(!h)throw new Error("Tensor not found.");return h.download(g)}releaseTensorsForSession(i){for(let g of this.freeTensors)g.sessionId===i&&g.destroy();this.freeTensors=this.freeTensors.filter(g=>g.sessionId!==i)}registerTensor(i,g,h,w){let B=Wo(),y=new jo({sessionId:this.backend.currentSessionId,context:i,tensor:g,dataType:h,shape:w});return this.tensorTrackersById.set(B,new Uo(this,y)),this.externalTensors.add(y),B}async getCachedTensor(i,g,h,w,B){let y=this.backend.currentSessionId,E=this.backend.currentContext;for(let[N,Y]of this.freeTensors.entries())if(Y.canReuseTensor(E,i,g)){Pt("verbose",()=>`[WebNN] Reusing tensor {dataType: ${i}, shape: ${g}}`);let te=this.freeTensors.splice(N,1)[0];return te.sessionId=y,te}Pt("verbose",()=>`[WebNN] MLContext.createTensor {dataType: ${i}, shape: ${g}}`);let F=await E.createTensor({dataType:i,shape:g,dimensions:g,usage:h,writable:w,readable:B});return new jo({sessionId:y,context:E,tensor:F,dataType:i,shape:g})}releaseTensor(i){this.externalTensors.has(i)&&this.externalTensors.delete(i),this.freeTensors.push(i)}},P1=(...i)=>new A1(...i)}),$0=Pe(()=>{Dt(),ti(),S1(),ai(),Pn(),Ko=new Map([[1,"float32"],[10,"float16"],[6,"int32"],[12,"uint32"],[7,"int64"],[13,"uint64"],[22,"int4"],[21,"uint4"],[3,"int8"],[2,"uint8"],[9,"uint8"]]),t1=(i,g)=>{if(i===g)return!0;if(i===void 0||g===void 0)return!1;let h=Object.keys(i).sort(),w=Object.keys(g).sort();return h.length===w.length&&h.every((B,y)=>B===w[y]&&i[B]===g[B])},r1=class{constructor(i){this.tensorManager=P1(this),this.mlContextBySessionId=new Map,this.sessionIdsByMLContext=new Map,this.mlContextCache=[],ys(i.logLevel,!!i.debug)}get currentSessionId(){if(this.activeSessionId===void 0)throw new Error("No active session");return this.activeSessionId}onRunStart(i){this.activeSessionId=i}async createMLContext(i){if(i instanceof GPUDevice){let h=this.mlContextCache.findIndex(w=>w.gpuDevice===i);if(h!==-1)return this.mlContextCache[h].mlContext;{let w=await navigator.ml.createContext(i);return this.mlContextCache.push({gpuDevice:i,mlContext:w}),w}}if(i===void 0){let h=this.mlContextCache.findIndex(w=>w.options===void 0&&w.gpuDevice===void 0);if(h!==-1)return this.mlContextCache[h].mlContext;{let w=await navigator.ml.createContext();return this.mlContextCache.push({mlContext:w}),w}}let g=this.mlContextCache.findIndex(h=>t1(h.options,i));if(g!==-1)return this.mlContextCache[g].mlContext;{let h=await navigator.ml.createContext(i);return this.mlContextCache.push({options:i,mlContext:h}),h}}get currentContext(){let i=this.getMLContext(this.currentSessionId);if(!i)throw new Error(`No MLContext found for session ${this.currentSessionId}`);return i}registerMLContext(i,g){this.mlContextBySessionId.set(i,g);let h=this.sessionIdsByMLContext.get(g);h||(h=new Set,this.sessionIdsByMLContext.set(g,h)),h.add(i)}onReleaseSession(i){let g=this.mlContextBySessionId.get(i);if(!g)return;this.tensorManager.releaseTensorsForSession(i),this.mlContextBySessionId.delete(i);let h=this.sessionIdsByMLContext.get(g);if(h.delete(i),h.size===0){this.sessionIdsByMLContext.delete(g);let w=this.mlContextCache.findIndex(B=>B.mlContext===g);w!==-1&&this.mlContextCache.splice(w,1)}}getMLContext(i){return this.mlContextBySessionId.get(i)}reserveTensorId(){return this.tensorManager.reserveTensorId()}releaseTensorId(i){Pt("verbose",()=>`[WebNN] releaseTensorId {tensorId: ${i}}`),this.tensorManager.releaseTensorId(i)}async ensureTensor(i,g,h,w){let B=Ko.get(g);if(!B)throw new Error(`Unsupported ONNX data type: ${g}`);return this.tensorManager.ensureTensor(i,B,h,w)}uploadTensor(i,g){if(!Tr().shouldTransferToMLTensor)throw new Error("Trying to upload to a MLTensor while shouldTransferToMLTensor is false");Pt("verbose",()=>`[WebNN] uploadTensor {tensorId: ${i}, data: ${g.byteLength}}`),this.tensorManager.upload(i,g)}async downloadTensor(i,g){return this.tensorManager.download(i,g)}createMLTensorDownloader(i,g){return async()=>{let h=await this.tensorManager.download(i);return wa(h,g)}}registerMLTensor(i,g,h){let w=Ko.get(g);if(!w)throw new Error(`Unsupported ONNX data type: ${g}`);let B=this.tensorManager.registerTensor(this.currentContext,i,w,h);return Pt("verbose",()=>`[WebNN] registerMLTensor {tensor: ${i}, dataType: ${w}, dimensions: ${h}} -> {tensorId: ${B}}`),B}registerMLConstant(i,g,h,w,B,y){if(!y)throw new Error("External mounted files are not available.");let E=i;i.startsWith("./")&&(E=i.substring(2));let F=y.get(E);if(!F)throw new Error(`File with name ${E} not found in preloaded files.`);if(g+h>F.byteLength)throw new Error("Out of bounds: data offset and length exceed the external file data size.");let N,Y=F.slice(g,g+h).buffer;switch(B.dataType){case"float32":N=new Float32Array(Y);break;case"float16":N=new Uint16Array(Y);break;case"int32":N=new Int32Array(Y);break;case"uint32":N=new Uint32Array(Y);break;case"int64":N=new BigInt64Array(Y);break;case"uint64":N=new BigUint64Array(Y);break;case"int8":N=new Int8Array(Y);break;case"int4":case"uint4":case"uint8":N=new Uint8Array(Y);break;default:throw new Error(`Unsupported data type: ${B.dataType} in creating WebNN Constant from external data.`)}return Pt("verbose",()=>`[WebNN] registerMLConstant {dataType: ${B.dataType}, shape: ${B.shape}}}`),w.constant(B,N)}flush(){}}}),si={};kA(si,{init:()=>d1});var qi,g1,d1,Y1,Gr,oa,As,ni,zn,N0,eo,Ao,to,f1,ro,qs,bs,Ji,_i,ii,Xo,p1,qo,Is,Ra,nu,iu,ou,lu,cu,uu,gu,du,wc,fu,pu,gf=Pe(()=>{Dt(),Ua(),Pn(),St(),$0(),qi=class qg{constructor(g,h,w,B){this.module=g,this.dataType=h,this.data=w,this.dims=B}getFloat32Array(){if(this.dataType!==1)throw new Error("Invalid data type");let g=He.size(this.dims);return g===0?new Float32Array:new Float32Array(this.module.HEAP8.buffer,this.data,g)}getBigInt64Array(){if(this.dataType!==7)throw new Error("Invalid data type");let g=He.size(this.dims);return g===0?new BigInt64Array:new BigInt64Array(this.module.HEAP8.buffer,this.data,g)}getInt32Array(){if(this.dataType!==6)throw new Error("Invalid data type");let g=He.size(this.dims);return g===0?new Int32Array:new Int32Array(this.module.HEAP8.buffer,this.data,g)}getUint16Array(){if(this.dataType!==10&&this.dataType!==4)throw new Error("Invalid data type");let g=He.size(this.dims);return g===0?new Uint16Array:new Uint16Array(this.module.HEAP8.buffer,this.data,g)}reshape(g){if(He.size(g)!==He.size(this.dims))throw new Error("Invalid new shape");return new qg(this.module,this.dataType,this.data,g)}},g1=class{constructor(i,g,h){this.module=i,this.backend=g,this.customDataOffset=0,this.customDataSize=0,this.adapterInfo=g.adapterInfo,this.deviceInfo=g.deviceInfo;let w=i.PTR_SIZE,B=h/i.PTR_SIZE,y=w===4?"i32":"i64";this.opKernelContext=Number(i.getValue(w*B++,y));let E=Number(i.getValue(w*B++,y));this.outputCount=Number(i.getValue(w*B++,y)),this.customDataOffset=Number(i.getValue(w*B++,"*")),this.customDataSize=Number(i.getValue(w*B++,y));let F=[];for(let N=0;Ntypeof B=="number"?this.inputs[B]:B)??this.inputs,w=g?.outputs??[];return this.backend.run(i,h,w,(B,y,E)=>new qi(this.module,y,this.output(B,E),E),(B,y)=>{let E=ds(B,y);if(!E)throw new Error(`Unsupported data type: ${B}`);let F=E>0?this.backend.gpuDataManager.create(E).id:0;return new qi(this.module,B,F,y)},this.outputCount)}output(i,g){let h=this.module.stackSave();try{let w=this.module.PTR_SIZE,B=w===4?"i32":"i64",y=this.module.stackAlloc((1+g.length)*w);this.module.setValue(y,g.length,B);for(let E=0;E{let B=g.jsepInit;if(!B)throw new Error("Failed to initialize JSEP. The WebAssembly module is not built with JSEP support.");if(i==="webgpu"){let y=new _l;await y.initialize(h,w),B("webgpu",[y,E=>y.alloc(Number(E)),E=>y.free(E),(E,F,N,Y=!1)=>{if(Y)Pt("verbose",()=>`[WebGPU] jsepCopyGpuToGpu: src=${Number(E)}, dst=${Number(F)}, size=${Number(N)}`),y.memcpy(Number(E),Number(F));else{Pt("verbose",()=>`[WebGPU] jsepCopyCpuToGpu: dataOffset=${Number(E)}, gpuDataId=${Number(F)}, size=${Number(N)}`);let te=g.HEAPU8.subarray(Number(E>>>0),Number(E>>>0)+Number(N));y.upload(Number(F),te)}},async(E,F,N)=>{Pt("verbose",()=>`[WebGPU] jsepCopyGpuToCpu: gpuDataId=${E}, dataOffset=${F}, size=${N}`),await y.download(Number(E),()=>g.HEAPU8.subarray(Number(F)>>>0,Number(F+N)>>>0))},(E,F,N)=>y.createKernel(E,Number(F),N,g.UTF8ToString(g._JsepGetNodeName(Number(F)))),E=>y.releaseKernel(E),(E,F,N,Y)=>{Pt("verbose",()=>`[WebGPU] jsepRun: sessionHandle=${N}, kernel=${E}, contextDataOffset=${F}`);let te=new g1(g,y,Number(F));return y.computeKernel(Number(E),te,Y)},()=>y.captureBegin(),()=>y.captureEnd(),()=>y.replay()])}else{let y=new r1(h);B("webnn",[y,()=>y.reserveTensorId(),E=>y.releaseTensorId(E),async(E,F,N,Y)=>y.ensureTensor(E,F,N,Y),(E,F)=>{y.uploadTensor(E,F)},async(E,F)=>y.downloadTensor(E,F)])}}}),hu=Pe(()=>{nc(),ic(),Dt(),ti(),a1(),F1(),Y1=(i,g)=>{Tr()._OrtInit(i,g)!==0&&Kt("Can't initialize onnxruntime.")},Gr=async i=>{Y1(i.wasm.numThreads,qa(i.logLevel))},oa=async(i,g)=>{{let h=(gf(),aA(si)).init;if(g==="webgpu"){if(typeof navigator>"u"||!navigator.gpu)throw new Error("WebGPU is not supported in current environment");let w=i.webgpu.adapter;if(w){if(typeof w.limits!="object"||typeof w.features!="object"||typeof w.requestDevice!="function")throw new Error("Invalid GPU adapter set in `env.webgpu.adapter`. It must be a GPUAdapter object.")}else{let B=i.webgpu.powerPreference;if(B!==void 0&&B!=="low-power"&&B!=="high-performance")throw new Error(`Invalid powerPreference setting: "${B}"`);let y=i.webgpu.forceFallbackAdapter;if(y!==void 0&&typeof y!="boolean")throw new Error(`Invalid forceFallbackAdapter setting: "${y}"`);if(w=await navigator.gpu.requestAdapter({powerPreference:B,forceFallbackAdapter:y}),!w)throw new Error('Failed to get GPU adapter. You may need to enable flag "--enable-unsafe-webgpu" if you are using Chrome.')}await h("webgpu",Tr(),i,w)}if(g==="webnn"){if(typeof navigator>"u"||!navigator.ml)throw new Error("WebNN is not supported in current environment");await h("webnn",Tr(),i)}}},As=new Map,ni=i=>{let g=Tr(),h=g.stackSave();try{let w=g.PTR_SIZE,B=g.stackAlloc(2*w);g._OrtGetInputOutputCount(i,B,B+w)!==0&&Kt("Can't get session input/output count.");let y=w===4?"i32":"i64";return[Number(g.getValue(B,y)),Number(g.getValue(B+w,y))]}finally{g.stackRestore(h)}},zn=i=>{let g=Tr(),h=g._malloc(i.byteLength);if(h===0)throw new Error(`Can't create a session. failed to allocate a buffer of size ${i.byteLength}.`);return g.HEAPU8.set(i,h),[h,i.byteLength]},N0=async(i,g)=>{let h,w,B=Tr();Array.isArray(i)?[h,w]=i:i.buffer===B.HEAPU8.buffer?[h,w]=[i.byteOffset,i.byteLength]:[h,w]=zn(i);let y=0,E=0,F=0,N=[],Y=[],te=[];try{if([E,N]=Cn(g),g?.externalData&&B.mountExternalData){let De=[];for(let Le of g.externalData){let Xe=typeof Le=="string"?Le:Le.path;De.push(Ns(typeof Le=="string"?Le:Le.data).then(_e=>{B.mountExternalData(Xe,_e)}))}await Promise.all(De)}for(let De of g?.executionProviders??[])if((typeof De=="string"?De:De.name)==="webnn"){if(B.shouldTransferToMLTensor=!1,typeof De!="string"){let Le=De,Xe=Le?.context,_e=Le?.gpuDevice,lA=Le?.deviceType,LA=Le?.powerPreference;B.currentContext=Xe||(_e?await B.jsepCreateMLContext(_e):await B.jsepCreateMLContext({deviceType:lA,powerPreference:LA}))}else B.currentContext=await B.jsepCreateMLContext();break}y=await B._OrtCreateSession(h,w,E),y===0&&Kt("Can't create a session."),B.jsepOnCreateSession?.(),B.currentContext&&(B.jsepRegisterMLContext(y,B.currentContext),B.currentContext=void 0,B.shouldTransferToMLTensor=!0);let[Q,ne]=ni(y),oe=!!g?.enableGraphCapture,de=[],fe=[],ke=[];for(let De=0;DeDe==="gpu-buffer"||De==="ml-tensor")&&(F=B._OrtCreateBinding(y),F===0&&Kt("Can't create IO binding."),Me={handle:F,outputPreferredLocations:ke,outputPreferredLocationsEncoded:ke.map(De=>Ss(De))}),As.set(y,[y,Y,te,Me,oe,!1]),[y,de,fe]}catch(Q){throw Y.forEach(ne=>B._OrtFree(ne)),te.forEach(ne=>B._OrtFree(ne)),F!==0&&B._OrtReleaseBinding(F)!==0&&Kt("Can't release IO binding."),y!==0&&B._OrtReleaseSession(y)!==0&&Kt("Can't release session."),Q}finally{B._free(h),E!==0&&B._OrtReleaseSessionOptions(E)!==0&&Kt("Can't release session options."),N.forEach(Q=>B._free(Q)),B.unmountExternalData?.()}},eo=i=>{let g=Tr(),h=As.get(i);if(!h)throw new Error(`cannot release session. invalid session id: ${i}`);let[w,B,y,E,F]=h;E&&(F&&g._OrtClearBoundOutputs(E.handle)!==0&&Kt("Can't clear bound outputs."),g._OrtReleaseBinding(E.handle)!==0&&Kt("Can't release IO binding.")),g.jsepOnReleaseSession?.(i),B.forEach(N=>g._OrtFree(N)),y.forEach(N=>g._OrtFree(N)),g._OrtReleaseSession(w)!==0&&Kt("Can't release session."),As.delete(i)},Ao=(i,g,h,w,B,y=!1)=>{if(!i)return void g.push(0);let E,F,N=Tr(),Y=N.PTR_SIZE,te=i[0],Q=i[1],ne=i[3];if(te==="string"&&(ne==="gpu-buffer"||ne==="ml-tensor"))throw new Error("String tensor is not supported on GPU.");if(y&&ne!=="gpu-buffer")throw new Error(`External buffer must be provided for input/output index ${B} when enableGraphCapture is true.`);if(ne==="gpu-buffer"){let fe=i[2].gpuBuffer;F=ds(Ur(te),Q);let ke=N.jsepRegisterBuffer;if(!ke)throw new Error('Tensor location "gpu-buffer" is not supported without using WebGPU.');E=ke(w,B,fe,F)}else if(ne==="ml-tensor"){let fe=i[2].mlTensor;F=ds(Ur(te),Q);let ke=N.jsepRegisterMLTensor;if(!ke)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');E=ke(fe,Ur(te),Q)}else{let fe=i[2];if(Array.isArray(fe)){F=Y*fe.length,E=N._malloc(F),h.push(E);for(let ke=0;keN.setValue(de+Me*Y,ke,Y===4?"i32":"i64"));let fe=N._OrtCreateTensor(Ur(te),E,F,de,Q.length,Ss(ne));fe===0&&Kt(`Can't create tensor for input/output. session=${w}, index=${B}.`),g.push(fe)}finally{N.stackRestore(oe)}},to=async(i,g,h,w,B,y)=>{let E=Tr(),F=E.PTR_SIZE,N=As.get(i);if(!N)throw new Error(`cannot run inference. invalid session id: ${i}`);let Y=N[0],te=N[1],Q=N[2],ne=N[3],oe=N[4],de=N[5],fe=g.length,ke=w.length,Me=0,De=[],Le=[],Xe=[],_e=[],lA=E.stackSave(),LA=E.stackAlloc(fe*F),st=E.stackAlloc(fe*F),ht=E.stackAlloc(ke*F),pt=E.stackAlloc(ke*F);try{E.jsepOnRunStart?.(Y),[Me,De]=Xa(y);for(let tt=0;ttSr*ca,1);wA=ts(Fn);let ao=ne?.outputPreferredLocations[w[tt]];if(wA==="string"){if(ao==="gpu-buffer"||ao==="ml-tensor")throw new Error("String tensor is not supported on GPU.");let Sr=[];for(let ca=0;ca0){let Sr=E.jsepGetBuffer;if(!Sr)throw new Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');let ca=Sr(ur),O0=ds(Fn,oi);if(O0===void 0||!xs(wA))throw new Error(`Unsupported data type: ${wA}`);Et=!0,yt.push([wA,Na,{gpuBuffer:ca,download:E.jsepCreateDownloader(ca,O0,wA),dispose:()=>{E._OrtReleaseTensor(lt)!==0&&Kt("Can't release tensor.")}},"gpu-buffer"])}else if(ao==="ml-tensor"&&oi>0){let Sr=E.jsepEnsureTensor;if(!Sr)throw new Error('preferredLocation "ml-tensor" is not supported without using WebNN.');if(ds(Fn,oi)===void 0||!kr(wA))throw new Error(`Unsupported data type: ${wA}`);let ca=await Sr(ur,Fn,Na,!1);Et=!0,yt.push([wA,Na,{mlTensor:ca,download:E.jsepCreateMLTensorDownloader(ur,wA),dispose:()=>{E.jsepReleaseTensorId(ur),E._OrtReleaseTensor(lt)}},"ml-tensor"])}else{let Sr=new(en(wA))(oi);new Uint8Array(Sr.buffer,Sr.byteOffset,Sr.byteLength).set(E.HEAPU8.subarray(ur,ur+Sr.byteLength)),yt.push([wA,Na,Sr,"cpu"])}}finally{E.stackRestore(UA),wA==="string"&&ur&&E._free(ur),Et||E._OrtReleaseTensor(lt)}}return ne&&!oe&&(E._OrtClearBoundOutputs(ne.handle)!==0&&Kt("Can't clear bound outputs."),As.set(i,[Y,te,Q,ne,oe,!1])),yt}finally{E.stackRestore(lA),Le.forEach(mt=>E._OrtReleaseTensor(mt)),Xe.forEach(mt=>E._OrtReleaseTensor(mt)),_e.forEach(mt=>E._free(mt)),Me!==0&&E._OrtReleaseRunOptions(Me),De.forEach(mt=>E._free(mt))}},f1=i=>{let g=Tr(),h=As.get(i);if(!h)throw new Error("invalid session id");let w=h[0],B=g._OrtEndProfiling(w);B===0&&Kt("Can't get an profile file name."),g._OrtFree(B)},ro=i=>{let g=[];for(let h of i){let w=h[2];!Array.isArray(w)&&"buffer"in w&&g.push(w.buffer)}return g}}),mu=Pe(()=>{dA(),hu(),ti(),Zo(),qs=()=>!!X.wasm.proxy&&typeof document<"u",Ji=!1,_i=!1,ii=!1,qo=new Map,Is=(i,g)=>{let h=qo.get(i);h?h.push(g):qo.set(i,[g])},Ra=()=>{if(Ji||!_i||ii||!bs)throw new Error("worker not ready")},nu=i=>{switch(i.data.type){case"init-wasm":Ji=!1,i.data.err?(ii=!0,p1[1](i.data.err)):(_i=!0,p1[0]()),Xo&&(URL.revokeObjectURL(Xo),Xo=void 0);break;case"init-ep":case"copy-from":case"create":case"release":case"run":case"end-profiling":{let g=qo.get(i.data.type);i.data.err?g.shift()[1](i.data.err):g.shift()[0](i.data.out);break}}},iu=async()=>{if(!_i){if(Ji)throw new Error("multiple calls to 'initWasm()' detected.");if(ii)throw new Error("previous call to 'initWasm()' failed.");if(Ji=!0,qs())return new Promise((i,g)=>{bs?.terminate(),qt().then(([h,w])=>{try{(bs=w).onerror=y=>g(y),bs.onmessage=nu,p1=[i,g];let B={type:"init-wasm",in:X};!B.in.wasm.wasmPaths&&(h||import.meta.url?.startsWith("file:"))&&(B.in.wasm.wasmPaths={wasm:new URL(d("./node_modules/onnxruntime-web/dist/ort-wasm-simd-threaded.jsep.wasm"),d.b).href}),bs.postMessage(B),Xo=h}catch(B){g(B)}},g)});try{await va(X.wasm),await Gr(X),_i=!0}catch(i){throw ii=!0,i}finally{Ji=!1}}},ou=async i=>{if(qs())return Ra(),new Promise((g,h)=>{Is("init-ep",[g,h]);let w={type:"init-ep",in:{epName:i,env:X}};bs.postMessage(w)});await oa(X,i)},lu=async i=>qs()?(Ra(),new Promise((g,h)=>{Is("copy-from",[g,h]);let w={type:"copy-from",in:{buffer:i}};bs.postMessage(w,[i.buffer])})):zn(i),cu=async(i,g)=>{if(qs()){if(g?.preferredOutputLocation)throw new Error('session option "preferredOutputLocation" is not supported for proxy.');return Ra(),new Promise((h,w)=>{Is("create",[h,w]);let B={type:"create",in:{model:i,options:{...g}}},y=[];i instanceof Uint8Array&&y.push(i.buffer),bs.postMessage(B,y)})}return N0(i,g)},uu=async i=>{if(qs())return Ra(),new Promise((g,h)=>{Is("release",[g,h]);let w={type:"release",in:i};bs.postMessage(w)});eo(i)},gu=async(i,g,h,w,B,y)=>{if(qs()){if(h.some(E=>E[3]!=="cpu"))throw new Error("input tensor on GPU is not supported for proxy.");if(B.some(E=>E))throw new Error("pre-allocated output tensor is not supported for proxy.");return Ra(),new Promise((E,F)=>{Is("run",[E,F]);let N=h,Y={type:"run",in:{sessionId:i,inputIndices:g,inputs:N,outputIndices:w,options:y}};bs.postMessage(Y,ro(N))})}return to(i,g,h,w,B,y)},du=async i=>{if(qs())return Ra(),new Promise((g,h)=>{Is("end-profiling",[g,h]);let w={type:"end-profiling",in:i};bs.postMessage(w)});f1(i)}}),df=Pe(()=>{dA(),mu(),Dt(),oA(),F1(),wc=(i,g)=>{switch(i.location){case"cpu":return[i.type,i.dims,i.data,"cpu"];case"gpu-buffer":return[i.type,i.dims,{gpuBuffer:i.gpuBuffer},"gpu-buffer"];case"ml-tensor":return[i.type,i.dims,{mlTensor:i.mlTensor},"ml-tensor"];default:throw new Error(`invalid data location: ${i.location} for ${g()}`)}},fu=i=>{switch(i[3]){case"cpu":return new P(i[0],i[2],i[1]);case"gpu-buffer":{let g=i[0];if(!xs(g))throw new Error(`not supported data type: ${g} for deserializing GPU tensor`);let{gpuBuffer:h,download:w,dispose:B}=i[2];return P.fromGpuBuffer(h,{dataType:g,dims:i[1],download:w,dispose:B})}case"ml-tensor":{let g=i[0];if(!kr(g))throw new Error(`not supported data type: ${g} for deserializing MLTensor tensor`);let{mlTensor:h,download:w,dispose:B}=i[2];return P.fromMLTensor(h,{dataType:g,dims:i[1],download:w,dispose:B})}default:throw new Error(`invalid data location: ${i[3]}`)}},pu=class{async fetchModelAndCopyToWasmMemory(i){return lu(await Ns(i))}async loadModel(i,g){let h;Ye(),h=typeof i=="string"?await this.fetchModelAndCopyToWasmMemory(i):i,[this.sessionId,this.inputNames,this.outputNames]=await cu(h,g),Je()}async dispose(){return uu(this.sessionId)}async run(i,g,h){Ye();let w=[],B=[];Object.entries(i).forEach(Q=>{let ne=Q[0],oe=Q[1],de=this.inputNames.indexOf(ne);if(de===-1)throw new Error(`invalid input '${ne}'`);w.push(oe),B.push(de)});let y=[],E=[];Object.entries(g).forEach(Q=>{let ne=Q[0],oe=Q[1],de=this.outputNames.indexOf(ne);if(de===-1)throw new Error(`invalid output '${ne}'`);y.push(oe),E.push(de)});let F=w.map((Q,ne)=>wc(Q,()=>`input "${this.inputNames[B[ne]]}"`)),N=y.map((Q,ne)=>Q?wc(Q,()=>`output "${this.outputNames[E[ne]]}"`):null),Y=await gu(this.sessionId,B,F,E,N,h),te={};for(let Q=0;Qxc,initializeFlags:()=>kc,wasmBackend:()=>bu});var kc,xc,bu,ff=Pe(()=>{dA(),mu(),df(),kc=()=>{if((typeof X.wasm.initTimeout!="number"||X.wasm.initTimeout<0)&&(X.wasm.initTimeout=0),X.wasm.simd===!1&&console.warn('Deprecated property "env.wasm.simd" is set to false. non-SIMD build is no longer provided, and this setting will be ignored.'),typeof X.wasm.proxy!="boolean"&&(X.wasm.proxy=!1),typeof X.wasm.trace!="boolean"&&(X.wasm.trace=!1),typeof X.wasm.numThreads!="number"||!Number.isInteger(X.wasm.numThreads)||X.wasm.numThreads<=0)if(typeof self<"u"&&!self.crossOriginIsolated)X.wasm.numThreads=1;else{let i=typeof navigator>"u"?Ue("node:os").cpus().length:navigator.hardwareConcurrency;X.wasm.numThreads=Math.min(4,Math.ceil((i||1)/2))}},xc=class{async init(i){kc(),await iu(),await ou(i)}async createInferenceSessionHandler(i,g){let h=new pu;return await h.loadModel(i,g),Promise.resolve(h)}},bu=new xc});dA(),dA(),dA();var pf=qe;{let i=(ff(),aA(Cu)).wasmBackend;K("webgpu",i,5),K("webnn",i,5),K("cpu",i,10),K("wasm",i,10)}Object.defineProperty(X.versions,"web",{value:"1.21.0-dev.20250206-d981b153d3",enumerable:!0})},"./src/backends/onnx.js":(x,C,d)=>{var k;d.r(C),d.d(C,{Tensor:()=>j.Tensor,createInferenceSession:()=>Ee,deviceToExecutionProviders:()=>be,isONNXProxy:()=>we,isONNXTensor:()=>se});var z=d("./src/env.js"),K=d("?2ce3"),L=d("./node_modules/onnxruntime-web/dist/ort.bundle.min.mjs?3a96"),j=d("./node_modules/onnxruntime-common/dist/esm/index.js");const q=Object.freeze({auto:null,gpu:null,cpu:"cpu",wasm:"wasm",webgpu:"webgpu",cuda:"cuda",dml:"dml",webnn:{name:"webnn",deviceType:"cpu"},"webnn-npu":{name:"webnn",deviceType:"npu"},"webnn-gpu":{name:"webnn",deviceType:"gpu"},"webnn-cpu":{name:"webnn",deviceType:"cpu"}}),W=[];let S,X;const R=Symbol.for("onnxruntime");if(R in globalThis)X=globalThis[R];else if(z.apis.IS_NODE_ENV){switch(X=K??(k||(k=d.t(K,2))),process.platform){case"win32":W.push("dml");break;case"linux":process.arch==="x64"&&W.push("cuda")}W.push("cpu"),S=["cpu"]}else X=L,z.apis.IS_WEBNN_AVAILABLE&&W.push("webnn-npu","webnn-gpu","webnn-cpu","webnn"),z.apis.IS_WEBGPU_AVAILABLE&&W.push("webgpu"),W.push("wasm"),S=["wasm"];const ae=X.InferenceSession;function be(u=null){if(!u)return S;switch(u){case"auto":return W;case"gpu":return W.filter(b=>["webgpu","cuda","dml","webnn-gpu"].includes(b))}if(W.includes(u))return[q[u]??u];throw new Error(`Unsupported device: "${u}". Should be one of: ${W.join(", ")}.`)}let xe=null;async function Ee(u,b,e){xe&&await xe;const l=ae.create(u,b);xe??=l;const M=await l;return M.config=e,M}function se(u){return u instanceof X.Tensor}const ie=X?.env;function we(){return ie?.wasm?.proxy}ie?.wasm&&(ie.wasm.wasmPaths=`https://cdn.jsdelivr.net/npm/@huggingface/transformers@${z.env.version}/dist/`,ie.wasm.proxy=!1,typeof crossOriginIsolated<"u"&&crossOriginIsolated||(ie.wasm.numThreads=1)),ie?.webgpu&&(ie.webgpu.powerPreference="high-performance"),z.env.backends.onnx=ie},"./src/base/feature_extraction_utils.js":(x,C,d)=>{d.r(C),d.d(C,{FeatureExtractor:()=>L,validate_audio_inputs:()=>j});var k=d("./src/utils/constants.js"),z=d("./src/utils/generic.js"),K=d("./src/utils/hub.js");class L extends z.Callable{constructor(W){super(),this.config=W}static async from_pretrained(W,S){return new this(await(0,K.getModelJSON)(W,k.FEATURE_EXTRACTOR_NAME,!0,S))}}function j(q,W){if(!(q instanceof Float32Array||q instanceof Float64Array))throw new Error(`${W} expects input to be a Float32Array or a Float64Array, but got ${q?.constructor?.name??typeof q} instead. If using the feature extractor directly, remember to use \`read_audio(url, sampling_rate)\` to obtain the raw audio data of the file/url.`)}},"./src/base/image_processors_utils.js":(x,C,d)=>{d.r(C),d.d(C,{ImageProcessor:()=>we,center_to_corners_format:()=>X,post_process_instance_segmentation:()=>ie,post_process_object_detection:()=>R,post_process_panoptic_segmentation:()=>se,post_process_semantic_segmentation:()=>ae});var k=d("./src/utils/generic.js"),z=d("./src/utils/tensor.js"),K=d("./src/utils/maths.js");d("./src/utils/image.js");var L=d("./src/utils/core.js"),j=d("./src/utils/hub.js"),q=d("./src/utils/constants.js");function W(u,b,e=0,l=null){const M=u/b;let ge=(0,K.bankers_round)(M)*b;return l!==null&&ge>l&&(ge=Math.floor(M)*b),geb&&Ue.push(Pe)}else{let Pe=(0,K.max)(ze.data)[1];if(Pe===Re-1||(Ie=(0,K.softmax)(ze.data),Ie[Pe]aA*Je[(nA+1)%2])),AA.boxes.push(kA),AA.classes.push(Pe),AA.scores.push(Ie[Pe])}}Ne.push(AA)}return Ne}function ae(u,b=null){const e=u.logits,l=e.dims[0];if(b!==null&&b.length!==l)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");const M=[];for(let ge=0;geJe[ze]&&(Je[ze]=Ie[ze],AA[ze]=Ge)}const xA=new Array(P.dims[0]);for(let Ge=0;GeGe!==void 0);M.push({segmentation:Ye,labels:GA})}return M}function be(u,b,e,l){const M=[],ge=[],D=[];for(let P=0;Pe&&(M.push(Ne),ge.push(Je),D.push(Ye))}return[M,ge,D]}function xe(u,b,e,l=.5,M=.8){const ge=[];let D=0,P=0;const Re=b[e].data;for(let Ye=0;Ye=l&&++P;let Ne=D>0&&P>0;return Ne&&(Ne=D/P>M),[Ne,ge]}function Ee(u,b,e,l,M,ge=null,D=null){const[P,Re]=D??u[0].dims,Ne=new z.Tensor("int32",new Int32Array(P*Re),[P,Re]),Ye=[];if(D!==null)for(let Ge=0;GeAA[Ue]&&(Je[Ue]=Ge,AA[Ue]=ze[Ue])}let xA=0;const GA=Ne.data;for(let Ge=0;Gege?Ne=Math.floor(ge*Re/M):ge>M&&(Re=Math.floor(M*Ne/ge)),await b.resize(Ne,Re,{resample:l}))}async crop_margin(b,e=200){const l=b.clone().grayscale(),M=(0,K.min)(l.data)[0],ge=(0,K.max)(l.data)[0]-M;if(ge===0)return b;const D=e/255;let P=l.width,Re=l.height,Ne=0,Ye=0;const Je=l.data;for(let AA=0;AA200)throw new Error("absolute aspect ratio must be smaller than 200, got "+Math.max(Ne,Ye)/Math.min(Ne,Ye));let GA=Math.round(Ne/Je)*Je,Ge=Math.round(Ye/Je)*Je;if(GA*Ge>xA){const Ie=Math.sqrt(Ne*Ye/xA);GA=Math.floor(Ne/Ie/Je)*Je,Ge=Math.floor(Ye/Ie/Je)*Je}else if(GA*Gethis.preprocess(ge)));return{pixel_values:(0,z.stack)(l.map(ge=>ge.pixel_values),0),original_sizes:l.map(ge=>ge.original_size),reshaped_input_sizes:l.map(ge=>ge.reshaped_input_size)}}static async from_pretrained(b,e){return new this(await(0,j.getModelJSON)(b,q.IMAGE_PROCESSOR_NAME,!0,e))}}},"./src/base/processing_utils.js":(x,C,d)=>{d.r(C),d.d(C,{Processor:()=>L});var k=d("./src/utils/constants.js"),z=d("./src/utils/generic.js"),K=d("./src/utils/hub.js");class L extends z.Callable{static classes=["image_processor_class","tokenizer_class","feature_extractor_class"];static uses_processor_config=!1;constructor(q,W){super(),this.config=q,this.components=W}get image_processor(){return this.components.image_processor}get tokenizer(){return this.components.tokenizer}get feature_extractor(){return this.components.feature_extractor}apply_chat_template(q,W={}){if(!this.tokenizer)throw new Error("Unable to apply chat template without a tokenizer.");return this.tokenizer.apply_chat_template(q,{tokenize:!1,...W})}batch_decode(...q){if(!this.tokenizer)throw new Error("Unable to decode without a tokenizer.");return this.tokenizer.batch_decode(...q)}decode(...q){if(!this.tokenizer)throw new Error("Unable to decode without a tokenizer.");return this.tokenizer.decode(...q)}async _call(q,...W){for(const S of[this.image_processor,this.feature_extractor,this.tokenizer])if(S)return S(q,...W);throw new Error("No image processor, feature extractor, or tokenizer found.")}static async from_pretrained(q,W){const[S,X]=await Promise.all([this.uses_processor_config?(0,K.getModelJSON)(q,k.PROCESSOR_NAME,!0,W):{},Promise.all(this.classes.filter(R=>R in this).map(async R=>{const ae=await this[R].from_pretrained(q,W);return[R.replace(/_class$/,""),ae]})).then(Object.fromEntries)]);return new this(S,X)}}},"./src/configs.js":(x,C,d)=>{d.r(C),d.d(C,{AutoConfig:()=>q,PretrainedConfig:()=>j,getKeyValueShapes:()=>L});var k=d("./src/utils/core.js"),z=d("./src/utils/hub.js");function K(W){const S={};let X={};switch(W.model_type){case"llava":case"paligemma":case"florence2":case"llava_onevision":case"idefics3":X=K(W.text_config);break;case"moondream1":X=K(W.phi_config);break;case"musicgen":X=K(W.decoder);break;case"multi_modality":X=K(W.language_config);break;case"gpt2":case"gptj":case"jais":case"codegen":case"gpt_bigcode":S.num_heads="n_head",S.num_layers="n_layer",S.hidden_size="n_embd";break;case"gpt_neox":case"stablelm":case"opt":case"falcon":S.num_heads="num_attention_heads",S.num_layers="num_hidden_layers",S.hidden_size="hidden_size";break;case"llama":case"olmo":case"olmo2":case"mobilellm":case"granite":case"cohere":case"mistral":case"starcoder2":case"qwen2":case"qwen2_vl":case"phi":case"phi3":case"phi3_v":S.num_heads="num_key_value_heads",S.num_layers="num_hidden_layers",S.hidden_size="hidden_size",S.num_attention_heads="num_attention_heads";break;case"gemma":case"gemma2":case"glm":case"helium":S.num_heads="num_key_value_heads",S.num_layers="num_hidden_layers",S.dim_kv="head_dim";break;case"openelm":S.num_heads="num_kv_heads",S.num_layers="num_transformer_layers",S.dim_kv="head_dim";break;case"gpt_neo":case"donut-swin":S.num_heads="num_heads",S.num_layers="num_layers",S.hidden_size="hidden_size";break;case"bloom":S.num_heads="n_head",S.num_layers="n_layer",S.hidden_size="hidden_size";break;case"mpt":S.num_heads="n_heads",S.num_layers="n_layers",S.hidden_size="d_model";break;case"exaone":S.num_heads="num_key_value_heads",S.num_layers="num_layers",S.dim_kv="head_dim",S.num_attention_heads="num_attention_heads";break;case"t5":case"mt5":case"longt5":S.num_decoder_layers="num_decoder_layers",S.num_decoder_heads="num_heads",S.decoder_dim_kv="d_kv",S.num_encoder_layers="num_layers",S.num_encoder_heads="num_heads",S.encoder_dim_kv="d_kv";break;case"bart":case"mbart":case"marian":case"whisper":case"m2m_100":case"blenderbot":case"blenderbot-small":case"florence2_language":S.num_decoder_layers="decoder_layers",S.num_decoder_heads="decoder_attention_heads",S.decoder_hidden_size="d_model",S.num_encoder_layers="encoder_layers",S.num_encoder_heads="encoder_attention_heads",S.encoder_hidden_size="d_model";break;case"speecht5":S.num_decoder_layers="decoder_layers",S.num_decoder_heads="decoder_attention_heads",S.decoder_hidden_size="hidden_size",S.num_encoder_layers="encoder_layers",S.num_encoder_heads="encoder_attention_heads",S.encoder_hidden_size="hidden_size";break;case"trocr":S.num_encoder_layers=S.num_decoder_layers="decoder_layers",S.num_encoder_heads=S.num_decoder_heads="decoder_attention_heads",S.encoder_hidden_size=S.decoder_hidden_size="d_model";break;case"musicgen_decoder":S.num_encoder_layers=S.num_decoder_layers="num_hidden_layers",S.num_encoder_heads=S.num_decoder_heads="num_attention_heads",S.encoder_hidden_size=S.decoder_hidden_size="hidden_size";break;case"moonshine":S.num_decoder_layers="decoder_num_hidden_layers",S.num_decoder_heads="decoder_num_key_value_heads",S.num_encoder_layers="encoder_num_hidden_layers",S.num_encoder_heads="encoder_num_key_value_heads",S.encoder_hidden_size=S.decoder_hidden_size="hidden_size";break;case"vision-encoder-decoder":const ae=K(W.decoder),be="num_decoder_layers"in ae,xe=(0,k.pick)(W,["model_type","is_encoder_decoder"]);return be?(xe.num_decoder_layers=ae.num_decoder_layers,xe.num_decoder_heads=ae.num_decoder_heads,xe.decoder_hidden_size=ae.decoder_hidden_size,xe.num_encoder_layers=ae.num_encoder_layers,xe.num_encoder_heads=ae.num_encoder_heads,xe.encoder_hidden_size=ae.encoder_hidden_size):(xe.num_layers=ae.num_layers,xe.num_heads=ae.num_heads,xe.hidden_size=ae.hidden_size),xe}const R={...X,...(0,k.pick)(W,["model_type","multi_query","is_encoder_decoder"])};for(const ae in S)R[ae]=W[S[ae]];return R}function L(W,{prefix:S="past_key_values",batch_size:X=1}={}){const R={},ae=W.normalized_config;if(ae.is_encoder_decoder&&"num_encoder_heads"in ae&&"num_decoder_heads"in ae){const be=ae.encoder_dim_kv??ae.encoder_hidden_size/ae.num_encoder_heads,xe=ae.decoder_dim_kv??ae.decoder_hidden_size/ae.num_decoder_heads,Ee=[X,ae.num_encoder_heads,0,be],se=[X,ae.num_decoder_heads,0,xe];for(let ie=0;ie{d.r(C),d.d(C,{apis:()=>xe,env:()=>u});var k=d("?569f"),z=d("?3f59"),K=d("?154a");const L=typeof window<"u"&&window.document!==void 0,j=typeof self<"u"&&self.constructor?.name==="DedicatedWorkerGlobalScope",q=typeof self<"u"&&"caches"in self,W=typeof navigator<"u"&&"gpu"in navigator,S=typeof navigator<"u"&&"ml"in navigator,X=typeof process<"u",R=X&&process?.release?.name==="node",ae=!b(k),be=!b(z),xe=Object.freeze({IS_BROWSER_ENV:L,IS_WEBWORKER_ENV:j,IS_WEB_CACHE_AVAILABLE:q,IS_WEBGPU_AVAILABLE:W,IS_WEBNN_AVAILABLE:S,IS_PROCESS_AVAILABLE:X,IS_NODE_ENV:R,IS_FS_AVAILABLE:ae,IS_PATH_AVAILABLE:be}),Ee=ae&&be;let se="./";if(Ee){const e=Object(import.meta).url;e?se=z.dirname(z.dirname(K.fileURLToPath(e))):typeof __dirname<"u"&&(se=z.dirname(__dirname))}const ie=Ee?z.join(se,"/.cache/"):null,we="/models/",u={version:"3.3.3",backends:{onnx:{}},allowRemoteModels:!0,remoteHost:"https://huggingface.co/",remotePathTemplate:"{model}/resolve/{revision}/",allowLocalModels:!(L||j),localModelPath:Ee?z.join(se,we):we,useFS:ae,useBrowserCache:q,useFSCache:ae,cacheDir:ie,useCustomCache:!1,customCache:null};function b(e){return Object.keys(e).length===0}},"./src/generation/configuration_utils.js":(x,C,d)=>{d.r(C),d.d(C,{GenerationConfig:()=>z});var k=d("./src/utils/core.js");class z{max_length=20;max_new_tokens=null;min_length=0;min_new_tokens=null;early_stopping=!1;max_time=null;do_sample=!1;num_beams=1;num_beam_groups=1;penalty_alpha=null;use_cache=!0;temperature=1;top_k=50;top_p=1;typical_p=1;epsilon_cutoff=0;eta_cutoff=0;diversity_penalty=0;repetition_penalty=1;encoder_repetition_penalty=1;length_penalty=1;no_repeat_ngram_size=0;bad_words_ids=null;force_words_ids=null;renormalize_logits=!1;constraints=null;forced_bos_token_id=null;forced_eos_token_id=null;remove_invalid_values=!1;exponential_decay_length_penalty=null;suppress_tokens=null;streamer=null;begin_suppress_tokens=null;forced_decoder_ids=null;guidance_scale=null;num_return_sequences=1;output_attentions=!1;output_hidden_states=!1;output_scores=!1;return_dict_in_generate=!1;pad_token_id=null;bos_token_id=null;eos_token_id=null;encoder_no_repeat_ngram_size=0;decoder_start_token_id=null;generation_kwargs={};constructor(L){Object.assign(this,(0,k.pick)(L,Object.getOwnPropertyNames(this)))}}},"./src/generation/logits_process.js":(x,C,d)=>{d.r(C),d.d(C,{ClassifierFreeGuidanceLogitsProcessor:()=>se,ForcedBOSTokenLogitsProcessor:()=>q,ForcedEOSTokenLogitsProcessor:()=>W,LogitsProcessor:()=>K,LogitsProcessorList:()=>j,LogitsWarper:()=>L,MinLengthLogitsProcessor:()=>be,MinNewTokensLengthLogitsProcessor:()=>xe,NoBadWordsLogitsProcessor:()=>Ee,NoRepeatNGramLogitsProcessor:()=>R,RepetitionPenaltyLogitsProcessor:()=>ae,SuppressTokensAtBeginLogitsProcessor:()=>S,TemperatureLogitsWarper:()=>ie,TopKLogitsWarper:()=>u,TopPLogitsWarper:()=>we,WhisperTimeStampLogitsProcessor:()=>X});var k=d("./src/utils/generic.js");d("./src/utils/tensor.js");var z=d("./src/utils/maths.js");class K extends k.Callable{_call(e,l){throw Error("`_call` should be implemented in a subclass")}}class L extends k.Callable{_call(e,l){throw Error("`_call` should be implemented in a subclass")}}class j extends k.Callable{constructor(){super(),this.processors=[]}push(e){this.processors.push(e)}extend(e){this.processors.push(...e)}_call(e,l){let M=l;for(const ge of this.processors)M=ge(e,M);return M}[Symbol.iterator](){return this.processors.values()}}class q extends K{constructor(e){super(),this.bos_token_id=e}_call(e,l){for(let M=0;M=1&&D[D.length-1]>=this.timestamp_begin,Re=D.length<2||D[D.length-2]>=this.timestamp_begin;if(P&&(Re?ge.subarray(this.timestamp_begin).fill(-1/0):ge.subarray(0,this.eos_token_id).fill(-1/0)),e[M].length===this.begin_index&&this.max_initial_timestamp_index!==null){const Je=this.timestamp_begin+this.max_initial_timestamp_index;ge.subarray(Je+1).fill(-1/0)}const Ne=(0,z.log_softmax)(ge);Math.log(Ne.subarray(this.timestamp_begin).map(Math.exp).reduce((Je,AA)=>Je+AA))>(0,z.max)(Ne.subarray(0,this.timestamp_begin))[0]&&ge.subarray(0,this.timestamp_begin).fill(-1/0)}return l}}class R extends K{constructor(e){super(),this.no_repeat_ngram_size=e}getNgrams(e){const l=e.length,M=[];for(let D=0;D1 to use the classifier free guidance processor, got guidance scale ${e}.`);this.guidance_scale=e}_call(e,l){if(l.dims[0]!==2*e.length)throw new Error(`Logits should have twice the batch size of the input ids, the first half of batches corresponding to the conditional inputs, and the second half of batches corresponding to the unconditional inputs. Got batch size ${l.dims[0]} for the logits and ${e.length} for the input ids.`);const M=e.length,ge=l.slice([0,M],null),D=l.slice([M,l.dims[0]],null);for(let P=0;P1)throw new Error(`\`top_p\` must be a float > 0 and < 1, but is ${e}`);if(!Number.isInteger(M)||M<1)throw new Error(`\`min_tokens_to_keep\` must be a positive integer, but is ${M}`);this.top_p=e,this.filter_value=l,this.min_tokens_to_keep=M}}class u extends L{constructor(e,{filter_value:l=-1/0,min_tokens_to_keep:M=1}={}){if(super(),!Number.isInteger(e)||e<0)throw new Error(`\`top_k\` must be a positive integer, but is ${e}`);this.top_k=Math.max(e,M),this.filter_value=l}}},"./src/generation/logits_sampler.js":(x,C,d)=>{d.r(C),d.d(C,{LogitsSampler:()=>L});var k=d("./src/utils/generic.js"),z=d("./src/utils/tensor.js"),K=d("./src/utils/maths.js");d("./src/generation/configuration_utils.js");class L extends k.Callable{constructor(X){super(),this.generation_config=X}async _call(X){return this.sample(X)}async sample(X){throw Error("sample should be implemented in subclasses.")}getLogits(X,R){let ae=X.dims.at(-1),be=X.data;if(R===-1)be=be.slice(-ae);else{let xe=R*ae;be=be.slice(xe,xe+ae)}return be}randomSelect(X){let R=0;for(let be=0;be1)return new W(X);if(X.num_return_sequences>1)throw Error(`num_return_sequences has to be 1 when doing greedy search, but is ${X.num_return_sequences}.`);return new j(X)}}class j extends L{async sample(X){const R=(0,K.max)(X.data)[1];return[[BigInt(R),0]]}}class q extends L{async sample(X){let R=X.dims.at(-1);this.generation_config.top_k>0&&(R=Math.min(this.generation_config.top_k,R));const[ae,be]=await(0,z.topk)(X,R),xe=(0,K.softmax)(ae.data);return Array.from({length:this.generation_config.num_beams},()=>{const Ee=this.randomSelect(xe);return[be.data[Ee],Math.log(xe[Ee])]})}}class W extends L{async sample(X){let R=X.dims.at(-1);this.generation_config.top_k>0&&(R=Math.min(this.generation_config.top_k,R));const[ae,be]=await(0,z.topk)(X,R),xe=(0,K.softmax)(ae.data);return Array.from({length:this.generation_config.num_beams},(Ee,se)=>[be.data[se],Math.log(xe[se])])}}},"./src/generation/stopping_criteria.js":(x,C,d)=>{d.r(C),d.d(C,{EosTokenCriteria:()=>j,InterruptableStoppingCriteria:()=>q,MaxLengthCriteria:()=>L,StoppingCriteria:()=>z,StoppingCriteriaList:()=>K});var k=d("./src/utils/generic.js");class z extends k.Callable{_call(S,X){throw Error("StoppingCriteria needs to be subclassed")}}class K extends k.Callable{constructor(){super(),this.criteria=[]}push(S){this.criteria.push(S)}extend(S){S instanceof K?S=S.criteria:S instanceof z&&(S=[S]),this.criteria.push(...S)}_call(S,X){const R=new Array(S.length).fill(!1);for(const ae of this.criteria){const be=ae(S,X);for(let xe=0;xeX.length>=this.max_length)}}class j extends z{constructor(S){super(),Array.isArray(S)||(S=[S]),this.eos_token_id=S}_call(S,X){return S.map(R=>{const ae=R.at(-1);return this.eos_token_id.some(be=>ae==be)})}}class q extends z{constructor(){super(),this.interrupted=!1}interrupt(){this.interrupted=!0}reset(){this.interrupted=!1}_call(S,X){return new Array(S.length).fill(this.interrupted)}}},"./src/generation/streamers.js":(x,C,d)=>{d.r(C),d.d(C,{BaseStreamer:()=>L,TextStreamer:()=>q,WhisperTextStreamer:()=>W});var k=d("./src/utils/core.js"),z=d("./src/tokenizers.js"),K=d("./src/env.js");class L{put(X){throw Error("Not implemented")}end(){throw Error("Not implemented")}}const j=K.apis.IS_PROCESS_AVAILABLE?S=>process.stdout.write(S):S=>console.log(S);class q extends L{constructor(X,{skip_prompt:R=!1,callback_function:ae=null,token_callback_function:be=null,skip_special_tokens:xe=!0,decode_kwargs:Ee={},...se}={}){super(),this.tokenizer=X,this.skip_prompt=R,this.callback_function=ae??j,this.token_callback_function=be,this.decode_kwargs={skip_special_tokens:xe,...Ee,...se},this.token_cache=[],this.print_len=0,this.next_tokens_are_prompt=!0}put(X){if(X.length>1)throw Error("TextStreamer only supports batch size of 1");if(this.skip_prompt&&this.next_tokens_are_prompt)return void(this.next_tokens_are_prompt=!1);const R=X[0];this.token_callback_function?.(R),this.token_cache=(0,k.mergeArrays)(this.token_cache,R);const ae=this.tokenizer.decode(this.token_cache,this.decode_kwargs);let be;ae.endsWith(` +`)?(be=ae.slice(this.print_len),this.token_cache=[],this.print_len=0):ae.length>0&&(0,z.is_chinese_char)(ae.charCodeAt(ae.length-1))?(be=ae.slice(this.print_len),this.print_len+=be.length):(be=ae.slice(this.print_len,ae.lastIndexOf(" ")+1),this.print_len+=be.length),this.on_finalized_text(be,!1)}end(){let X;this.token_cache.length>0?(X=this.tokenizer.decode(this.token_cache,this.decode_kwargs).slice(this.print_len),this.token_cache=[],this.print_len=0):X="",this.next_tokens_are_prompt=!0,this.on_finalized_text(X,!0)}on_finalized_text(X,R){X.length>0&&this.callback_function?.(X),R&&this.callback_function===j&&K.apis.IS_PROCESS_AVAILABLE&&this.callback_function?.(` +`)}}class W extends q{constructor(X,{skip_prompt:R=!1,callback_function:ae=null,token_callback_function:be=null,on_chunk_start:xe=null,on_chunk_end:Ee=null,on_finalize:se=null,time_precision:ie=.02,skip_special_tokens:we=!0,decode_kwargs:u={}}={}){super(X,{skip_prompt:R,skip_special_tokens:we,callback_function:ae,token_callback_function:be,decode_kwargs:u}),this.timestamp_begin=X.timestamp_begin,this.on_chunk_start=xe,this.on_chunk_end=Ee,this.on_finalize=se,this.time_precision=ie,this.waiting_for_timestamp=!1}put(X){if(X.length>1)throw Error("WhisperTextStreamer only supports batch size of 1");const R=X[0];if(R.length===1){const ae=Number(R[0])-this.timestamp_begin;if(ae>=0){const be=ae*this.time_precision;this.waiting_for_timestamp?this.on_chunk_end?.(be):this.on_chunk_start?.(be),this.waiting_for_timestamp=!this.waiting_for_timestamp,X=[[]]}}return super.put(X)}end(){super.end(),this.on_finalize?.()}}},"./src/models.js":(x,C,d)=>{d.r(C),d.d(C,{ASTForAudioClassification:()=>Ln,ASTModel:()=>di,ASTPreTrainedModel:()=>Ga,AlbertForMaskedLM:()=>VA,AlbertForQuestionAnswering:()=>He,AlbertForSequenceClassification:()=>NA,AlbertModel:()=>fA,AlbertPreTrainedModel:()=>$e,AutoModel:()=>nc,AutoModelForAudioClassification:()=>dc,AutoModelForAudioFrameClassification:()=>pc,AutoModelForCTC:()=>o1,AutoModelForCausalLM:()=>oc,AutoModelForDepthEstimation:()=>c1,AutoModelForDocumentQuestionAnswering:()=>Zi,AutoModelForImageClassification:()=>ri,AutoModelForImageFeatureExtraction:()=>Cc,AutoModelForImageMatting:()=>l1,AutoModelForImageSegmentation:()=>lc,AutoModelForImageToImage:()=>hc,AutoModelForMaskGeneration:()=>gc,AutoModelForMaskedLM:()=>qr,AutoModelForNormalEstimation:()=>u1,AutoModelForObjectDetection:()=>i1,AutoModelForPoseEstimation:()=>mc,AutoModelForQuestionAnswering:()=>St,AutoModelForSemanticSegmentation:()=>n1,AutoModelForSeq2SeqLM:()=>F1,AutoModelForSequenceClassification:()=>ic,AutoModelForSpeechSeq2Seq:()=>Pn,AutoModelForTextToSpectrogram:()=>S1,AutoModelForTextToWaveform:()=>s1,AutoModelForTokenClassification:()=>Dt,AutoModelForUniversalSegmentation:()=>cc,AutoModelForVision2Seq:()=>Rt,AutoModelForXVector:()=>fc,AutoModelForZeroShotObjectDetection:()=>uc,BartForConditionalGeneration:()=>nr,BartForSequenceClassification:()=>rt,BartModel:()=>fa,BartPretrainedModel:()=>La,BaseModelOutput:()=>vA,BeitForImageClassification:()=>ye,BeitModel:()=>he,BeitPreTrainedModel:()=>ce,BertForMaskedLM:()=>J,BertForQuestionAnswering:()=>$,BertForSequenceClassification:()=>OA,BertForTokenClassification:()=>ue,BertModel:()=>YA,BertPreTrainedModel:()=>SA,BlenderbotForConditionalGeneration:()=>Cr,BlenderbotModel:()=>Pr,BlenderbotPreTrainedModel:()=>Rr,BlenderbotSmallForConditionalGeneration:()=>tn,BlenderbotSmallModel:()=>xr,BlenderbotSmallPreTrainedModel:()=>Ut,BloomForCausalLM:()=>v0,BloomModel:()=>Hi,BloomPreTrainedModel:()=>Yi,CLIPModel:()=>RA,CLIPPreTrainedModel:()=>js,CLIPSegForImageSegmentation:()=>Ja,CLIPSegModel:()=>HA,CLIPSegPreTrainedModel:()=>nn,CLIPTextModel:()=>wi,CLIPTextModelWithProjection:()=>Yn,CLIPVisionModel:()=>xa,CLIPVisionModelWithProjection:()=>Pa,CamembertForMaskedLM:()=>ws,CamembertForQuestionAnswering:()=>$r,CamembertForSequenceClassification:()=>ks,CamembertForTokenClassification:()=>Fs,CamembertModel:()=>zs,CamembertPreTrainedModel:()=>Za,CausalLMOutput:()=>Xi,CausalLMOutputWithPast:()=>Ic,ChineseCLIPModel:()=>d0,ChineseCLIPPreTrainedModel:()=>g0,ClapAudioModelWithProjection:()=>ml,ClapModel:()=>pl,ClapPreTrainedModel:()=>q0,ClapTextModelWithProjection:()=>hl,CodeGenForCausalLM:()=>hs,CodeGenModel:()=>ta,CodeGenPreTrainedModel:()=>ps,CohereForCausalLM:()=>En,CohereModel:()=>za,CoherePreTrainedModel:()=>yn,ConvBertForMaskedLM:()=>da,ConvBertForQuestionAnswering:()=>Oa,ConvBertForSequenceClassification:()=>bt,ConvBertForTokenClassification:()=>Ka,ConvBertModel:()=>tr,ConvBertPreTrainedModel:()=>Qr,ConvNextForImageClassification:()=>w2,ConvNextModel:()=>I2,ConvNextPreTrainedModel:()=>fo,ConvNextV2ForImageClassification:()=>x2,ConvNextV2Model:()=>k2,ConvNextV2PreTrainedModel:()=>po,DPTForDepthEstimation:()=>Ui,DPTModel:()=>Qn,DPTPreTrainedModel:()=>pn,DebertaForMaskedLM:()=>Tr,DebertaForQuestionAnswering:()=>Kt,DebertaForSequenceClassification:()=>Hr,DebertaForTokenClassification:()=>us,DebertaModel:()=>va,DebertaPreTrainedModel:()=>xt,DebertaV2ForMaskedLM:()=>mn,DebertaV2ForQuestionAnswering:()=>Cn,DebertaV2ForSequenceClassification:()=>_s,DebertaV2ForTokenClassification:()=>$s,DebertaV2Model:()=>gs,DebertaV2PreTrainedModel:()=>Xa,DecisionTransformerModel:()=>Fl,DecisionTransformerPreTrainedModel:()=>zl,DeiTForImageClassification:()=>vr,DeiTModel:()=>Er,DeiTPreTrainedModel:()=>hr,DepthAnythingForDepthEstimation:()=>T0,DepthAnythingPreTrainedModel:()=>Q0,DepthProForDepthEstimation:()=>d2,DepthProPreTrainedModel:()=>g2,DetrForObjectDetection:()=>Ke,DetrForSegmentation:()=>rA,DetrModel:()=>We,DetrObjectDetectionOutput:()=>cA,DetrPreTrainedModel:()=>Qe,DetrSegmentationOutput:()=>MA,Dinov2ForImageClassification:()=>Zs,Dinov2Model:()=>B2,Dinov2PreTrainedModel:()=>ho,Dinov2WithRegistersForImageClassification:()=>ei,Dinov2WithRegistersModel:()=>$n,Dinov2WithRegistersPreTrainedModel:()=>Xs,DistilBertForMaskedLM:()=>xs,DistilBertForQuestionAnswering:()=>qa,DistilBertForSequenceClassification:()=>ds,DistilBertForTokenClassification:()=>en,DistilBertModel:()=>ts,DistilBertPreTrainedModel:()=>Ur,DonutSwinModel:()=>b2,DonutSwinPreTrainedModel:()=>C2,EfficientNetForImageClassification:()=>Bl,EfficientNetModel:()=>xl,EfficientNetPreTrainedModel:()=>Go,ElectraForMaskedLM:()=>$A,ElectraForQuestionAnswering:()=>cs,ElectraForSequenceClassification:()=>PA,ElectraForTokenClassification:()=>qt,ElectraModel:()=>ZA,ElectraPreTrainedModel:()=>Ia,EsmForMaskedLM:()=>Ns,EsmForSequenceClassification:()=>bn,EsmForTokenClassification:()=>Os,EsmModel:()=>Ss,EsmPreTrainedModel:()=>kr,ExaoneForCausalLM:()=>Gi,ExaoneModel:()=>Mi,ExaonePreTrainedModel:()=>ms,FalconForCausalLM:()=>fl,FalconModel:()=>Eo,FalconPreTrainedModel:()=>yo,FastViTForImageClassification:()=>r,FastViTModel:()=>t,FastViTPreTrainedModel:()=>A,Florence2ForConditionalGeneration:()=>hi,Florence2PreTrainedModel:()=>as,GLPNForDepthEstimation:()=>m2,GLPNModel:()=>h2,GLPNPreTrainedModel:()=>go,GPT2LMHeadModel:()=>fs,GPT2Model:()=>xn,GPT2PreTrainedModel:()=>xi,GPTBigCodeForCausalLM:()=>Aa,GPTBigCodeModel:()=>w0,GPTBigCodePreTrainedModel:()=>ss,GPTJForCausalLM:()=>yi,GPTJModel:()=>Ht,GPTJPreTrainedModel:()=>It,GPTNeoForCausalLM:()=>C0,GPTNeoModel:()=>m0,GPTNeoPreTrainedModel:()=>Rn,GPTNeoXForCausalLM:()=>I0,GPTNeoXModel:()=>b0,GPTNeoXPreTrainedModel:()=>Or,Gemma2ForCausalLM:()=>ln,Gemma2Model:()=>Si,Gemma2PreTrainedModel:()=>Xn,GemmaForCausalLM:()=>Fi,GemmaModel:()=>_a,GemmaPreTrainedModel:()=>zi,GlmForCausalLM:()=>on,GlmModel:()=>ra,GlmPreTrainedModel:()=>vi,GraniteForCausalLM:()=>Zn,GraniteModel:()=>Pi,GranitePreTrainedModel:()=>Lr,GroundingDinoForObjectDetection:()=>E2,GroundingDinoPreTrainedModel:()=>y2,GroupViTModel:()=>ct,GroupViTPreTrainedModel:()=>dn,HeliumForCausalLM:()=>Bn,HeliumModel:()=>yr,HeliumPreTrainedModel:()=>Vn,HieraForImageClassification:()=>na,HieraModel:()=>Wr,HieraPreTrainedModel:()=>Fr,HubertForCTC:()=>el,HubertForSequenceClassification:()=>Al,HubertModel:()=>$2,HubertPreTrainedModel:()=>B1,IJepaForImageClassification:()=>Wi,IJepaModel:()=>Us,IJepaPreTrainedModel:()=>Qs,Idefics3ForConditionalGeneration:()=>bi,Idefics3PreTrainedModel:()=>Ci,ImageMattingOutput:()=>O1,JAISLMHeadModel:()=>h0,JAISModel:()=>p0,JAISPreTrainedModel:()=>Bi,JinaCLIPModel:()=>sn,JinaCLIPPreTrainedModel:()=>vs,JinaCLIPTextModel:()=>f0,JinaCLIPVisionModel:()=>Hn,LlamaForCausalLM:()=>k0,LlamaModel:()=>Ei,LlamaPreTrainedModel:()=>Wn,LlavaForConditionalGeneration:()=>wn,LlavaOnevisionForConditionalGeneration:()=>ka,LlavaPreTrainedModel:()=>In,LongT5ForConditionalGeneration:()=>jt,LongT5Model:()=>sr,LongT5PreTrainedModel:()=>cr,M2M100ForConditionalGeneration:()=>P0,M2M100Model:()=>F2,M2M100PreTrainedModel:()=>U0,MBartForCausalLM:()=>Nr,MBartForConditionalGeneration:()=>JA,MBartForSequenceClassification:()=>pa,MBartModel:()=>uA,MBartPreTrainedModel:()=>dr,MPNetForMaskedLM:()=>Es,MPNetForQuestionAnswering:()=>Hs,MPNetForSequenceClassification:()=>Ys,MPNetForTokenClassification:()=>rs,MPNetModel:()=>An,MPNetPreTrainedModel:()=>wa,MT5ForConditionalGeneration:()=>Jt,MT5Model:()=>KA,MT5PreTrainedModel:()=>jA,MarianMTModel:()=>z2,MarianModel:()=>P2,MarianPreTrainedModel:()=>Ha,MaskFormerForInstanceSegmentation:()=>p2,MaskFormerModel:()=>f2,MaskFormerPreTrainedModel:()=>uo,MaskedLMOutput:()=>Fa,MgpstrForSceneTextRecognition:()=>Yl,MgpstrModelOutput:()=>Ol,MgpstrPreTrainedModel:()=>Ll,MistralForCausalLM:()=>gl,MistralModel:()=>ko,MistralPreTrainedModel:()=>X0,MobileBertForMaskedLM:()=>ys,MobileBertForQuestionAnswering:()=>Pt,MobileBertForSequenceClassification:()=>wt,MobileBertModel:()=>Ls,MobileBertPreTrainedModel:()=>Bs,MobileLLMForCausalLM:()=>ns,MobileLLMModel:()=>jn,MobileLLMPreTrainedModel:()=>Di,MobileNetV1ForImageClassification:()=>vl,MobileNetV1Model:()=>El,MobileNetV1PreTrainedModel:()=>To,MobileNetV2ForImageClassification:()=>Gl,MobileNetV2Model:()=>Ml,MobileNetV2PreTrainedModel:()=>Po,MobileNetV3ForImageClassification:()=>Ql,MobileNetV3Model:()=>Dl,MobileNetV3PreTrainedModel:()=>_0,MobileNetV4ForImageClassification:()=>Pl,MobileNetV4Model:()=>Tl,MobileNetV4PreTrainedModel:()=>zo,MobileViTForImageClassification:()=>c,MobileViTModel:()=>o,MobileViTPreTrainedModel:()=>n,MobileViTV2ForImageClassification:()=>p,MobileViTV2Model:()=>m,MobileViTV2PreTrainedModel:()=>f,ModelOutput:()=>pA,ModernBertForMaskedLM:()=>qe,ModernBertForSequenceClassification:()=>dA,ModernBertForTokenClassification:()=>oA,ModernBertModel:()=>Se,ModernBertPreTrainedModel:()=>me,Moondream1ForConditionalGeneration:()=>Ws,MoonshineForConditionalGeneration:()=>Ta,MoonshineModel:()=>j0,MoonshinePreTrainedModel:()=>pi,MptForCausalLM:()=>Ri,MptModel:()=>$a,MptPreTrainedModel:()=>Gs,MultiModalityCausalLM:()=>Nl,MultiModalityPreTrainedModel:()=>Sl,MusicgenForCausalLM:()=>E1,MusicgenForConditionalGeneration:()=>Qo,MusicgenModel:()=>yl,MusicgenPreTrainedModel:()=>Do,NomicBertModel:()=>QA,NomicBertPreTrainedModel:()=>BA,OPTForCausalLM:()=>ar,OPTModel:()=>Zr,OPTPreTrainedModel:()=>Mn,Olmo2ForCausalLM:()=>Kn,Olmo2Model:()=>Cs,Olmo2PreTrainedModel:()=>Ti,OlmoForCausalLM:()=>Qi,OlmoModel:()=>x0,OlmoPreTrainedModel:()=>Un,OpenELMForCausalLM:()=>y0,OpenELMModel:()=>B0,OpenELMPreTrainedModel:()=>Ni,OwlViTForObjectDetection:()=>T,OwlViTModel:()=>v,OwlViTPreTrainedModel:()=>I,Owlv2ForObjectDetection:()=>ee,Owlv2Model:()=>Z,Owlv2PreTrainedModel:()=>O,PaliGemmaForConditionalGeneration:()=>Vs,PaliGemmaPreTrainedModel:()=>mi,PatchTSMixerForPrediction:()=>Rl,PatchTSMixerModel:()=>No,PatchTSMixerPreTrainedModel:()=>So,PatchTSTForPrediction:()=>S0,PatchTSTModel:()=>Hl,PatchTSTPreTrainedModel:()=>Fo,Phi3ForCausalLM:()=>E0,Phi3Model:()=>cn,Phi3PreTrainedModel:()=>Ms,Phi3VForCausalLM:()=>DA,Phi3VPreTrainedModel:()=>Ii,PhiForCausalLM:()=>Li,PhiModel:()=>fr,PhiPreTrainedModel:()=>Va,PreTrainedModel:()=>Te,PretrainedMixin:()=>br,PvtForImageClassification:()=>Gn,PvtModel:()=>gn,PvtPreTrainedModel:()=>Vi,PyAnnoteForAudioFrameClassification:()=>H2,PyAnnoteModel:()=>Y2,PyAnnotePreTrainedModel:()=>K0,QuestionAnsweringModelOutput:()=>ja,Qwen2ForCausalLM:()=>ha,Qwen2Model:()=>vn,Qwen2PreTrainedModel:()=>aa,Qwen2VLForConditionalGeneration:()=>qn,Qwen2VLPreTrainedModel:()=>Oi,RTDetrForObjectDetection:()=>at,RTDetrModel:()=>et,RTDetrObjectDetectionOutput:()=>dt,RTDetrPreTrainedModel:()=>zA,ResNetForImageClassification:()=>Ba,ResNetModel:()=>ia,ResNetPreTrainedModel:()=>Xr,RoFormerForMaskedLM:()=>Tt,RoFormerForQuestionAnswering:()=>$t,RoFormerForSequenceClassification:()=>gt,RoFormerForTokenClassification:()=>Ct,RoFormerModel:()=>Mt,RoFormerPreTrainedModel:()=>TA,RobertaForMaskedLM:()=>Ma,RobertaForQuestionAnswering:()=>ea,RobertaForSequenceClassification:()=>Nn,RobertaForTokenClassification:()=>Gt,RobertaModel:()=>Sn,RobertaPreTrainedModel:()=>Ya,SamImageSegmentationOutput:()=>T2,SamModel:()=>Q2,SamPreTrainedModel:()=>D2,SapiensForDepthEstimation:()=>c2,SapiensForNormalEstimation:()=>u2,SapiensForSemanticSegmentation:()=>l2,SapiensPreTrainedModel:()=>_n,SegformerForImageClassification:()=>bl,SegformerForSemanticSegmentation:()=>Il,SegformerModel:()=>y1,SegformerPreTrainedModel:()=>J0,Seq2SeqLMOutput:()=>bc,SequenceClassifierOutput:()=>Nt,SiglipModel:()=>kn,SiglipPreTrainedModel:()=>an,SiglipTextModel:()=>ki,SiglipVisionModel:()=>zr,SpeechT5ForSpeechToText:()=>bo,SpeechT5ForTextToSpeech:()=>Io,SpeechT5HifiGan:()=>wo,SpeechT5Model:()=>ll,SpeechT5PreTrainedModel:()=>Ai,SqueezeBertForMaskedLM:()=>Be,SqueezeBertForQuestionAnswering:()=>Ve,SqueezeBertForSequenceClassification:()=>Oe,SqueezeBertModel:()=>_,SqueezeBertPreTrainedModel:()=>tA,StableLmForCausalLM:()=>kl,StableLmModel:()=>wl,StableLmPreTrainedModel:()=>Mo,Starcoder2ForCausalLM:()=>dl,Starcoder2Model:()=>Bo,Starcoder2PreTrainedModel:()=>xo,StyleTextToSpeech2Model:()=>ol,StyleTextToSpeech2PreTrainedModel:()=>il,Swin2SRForImageSuperResolution:()=>fn,Swin2SRModel:()=>Dn,Swin2SRPreTrainedModel:()=>Ts,SwinForImageClassification:()=>os,SwinModel:()=>is,SwinPreTrainedModel:()=>es,T5ForConditionalGeneration:()=>Vt,T5Model:()=>Yt,T5PreTrainedModel:()=>bA,TableTransformerForObjectDetection:()=>er,TableTransformerModel:()=>Zt,TableTransformerObjectDetectionOutput:()=>pr,TableTransformerPreTrainedModel:()=>Ft,TokenClassifierOutput:()=>Da,TrOCRForCausalLM:()=>ul,TrOCRPreTrainedModel:()=>cl,UniSpeechForCTC:()=>Co,UniSpeechForSequenceClassification:()=>j2,UniSpeechModel:()=>V2,UniSpeechPreTrainedModel:()=>z0,UniSpeechSatForAudioFrameClassification:()=>X2,UniSpeechSatForCTC:()=>K2,UniSpeechSatForSequenceClassification:()=>Z2,UniSpeechSatModel:()=>U2,UniSpeechSatPreTrainedModel:()=>F0,ViTForImageClassification:()=>Ds,ViTMAEModel:()=>ji,ViTMAEPreTrainedModel:()=>sa,ViTMSNForImageClassification:()=>D0,ViTMSNModel:()=>Ks,ViTMSNPreTrainedModel:()=>Jn,ViTModel:()=>M0,ViTPreTrainedModel:()=>un,VisionEncoderDecoderModel:()=>rr,VitMatteForImageMatting:()=>s,VitMattePreTrainedModel:()=>a,VitPoseForPoseEstimation:()=>G0,VitPosePreTrainedModel:()=>ma,VitsModel:()=>vo,VitsModelOutput:()=>L1,VitsPreTrainedModel:()=>Cl,Wav2Vec2BertForCTC:()=>J2,Wav2Vec2BertForSequenceClassification:()=>_2,Wav2Vec2BertModel:()=>q2,Wav2Vec2BertPreTrainedModel:()=>Z0,Wav2Vec2ForAudioFrameClassification:()=>L2,Wav2Vec2ForCTC:()=>N2,Wav2Vec2ForSequenceClassification:()=>O2,Wav2Vec2Model:()=>S2,Wav2Vec2PreTrainedModel:()=>Tn,WavLMForAudioFrameClassification:()=>nl,WavLMForCTC:()=>rl,WavLMForSequenceClassification:()=>al,WavLMForXVector:()=>sl,WavLMModel:()=>tl,WavLMPreTrainedModel:()=>Ki,WeSpeakerResNetModel:()=>W2,WeSpeakerResNetPreTrainedModel:()=>R2,WhisperForConditionalGeneration:()=>u0,WhisperModel:()=>c0,WhisperPreTrainedModel:()=>fi,XLMForQuestionAnswering:()=>rn,XLMForSequenceClassification:()=>i0,XLMForTokenClassification:()=>o0,XLMModel:()=>s0,XLMPreTrainedModel:()=>Wa,XLMRobertaForMaskedLM:()=>On,XLMRobertaForQuestionAnswering:()=>qA,XLMRobertaForSequenceClassification:()=>Qa,XLMRobertaForTokenClassification:()=>Kr,XLMRobertaModel:()=>l0,XLMRobertaPreTrainedModel:()=>Rs,XLMWithLMHeadModel:()=>n0,XVectorOutput:()=>N1,YolosForObjectDetection:()=>M2,YolosModel:()=>v2,YolosObjectDetectionOutput:()=>G2,YolosPreTrainedModel:()=>mo});var k=d("./src/configs.js"),z=d("./src/backends/onnx.js"),K=d("./src/utils/dtypes.js"),L=d("./src/utils/generic.js"),j=d("./src/utils/core.js"),q=d("./src/utils/hub.js"),W=d("./src/utils/constants.js"),S=d("./src/generation/logits_process.js"),X=d("./src/generation/configuration_utils.js"),R=d("./src/utils/tensor.js"),ae=d("./src/utils/image.js"),be=d("./src/utils/maths.js"),xe=d("./src/generation/stopping_criteria.js"),Ee=d("./src/generation/logits_sampler.js"),se=d("./src/env.js"),ie=d("./src/models/whisper/generation_whisper.js"),we=d("./src/models/whisper/common_whisper.js");const u=0,b=1,e=2,l=3,M=4,ge=5,D=6,P=7,Re=8,Ne=9,Ye=new Map,Je=new Map,AA=new Map;async function xA(U,V,ve){return Object.fromEntries(await Promise.all(Object.keys(V).map(async eA=>{const{buffer:sA,session_options:gA,session_config:FA}=await async function(XA,WA,_A){const ft=_A.config?.["transformers.js_config"]??{};let ut=_A.device??ft.device;ut&&typeof ut!="string"&&(ut.hasOwnProperty(WA)?ut=ut[WA]:(console.warn(`device not specified for "${WA}". Using the default device.`),ut=null));const zt=ut??(se.apis.IS_NODE_ENV?"cpu":"wasm"),Qt=(0,z.deviceToExecutionProviders)(zt);let or=_A.dtype??ft.dtype;if(typeof or!="string"&&(or&&or.hasOwnProperty(WA)?or=or[WA]:(or=K.DEFAULT_DEVICE_DTYPE_MAPPING[zt]??K.DATA_TYPES.fp32,console.warn(`dtype not specified for "${WA}". Using the default dtype (${or}) for this device (${zt}).`))),or===K.DATA_TYPES.auto){let _t=ft.dtype;typeof _t!="string"&&(_t=_t[WA]),or=_t&&_t!==K.DATA_TYPES.auto&&K.DATA_TYPES.hasOwnProperty(_t)?_t:K.DEFAULT_DEVICE_DTYPE_MAPPING[zt]??K.DATA_TYPES.fp32}const Bt=or;if(!K.DEFAULT_DTYPE_SUFFIX_MAPPING.hasOwnProperty(Bt))throw new Error(`Invalid dtype: ${Bt}. Should be one of: ${Object.keys(K.DATA_TYPES).join(", ")}`);if(Bt===K.DATA_TYPES.fp16&&zt==="webgpu"&&!await(0,K.isWebGpuFp16Supported)())throw new Error(`The device (${zt}) does not support fp16.`);const Ot=ft.kv_cache_dtype?typeof ft.kv_cache_dtype=="string"?ft.kv_cache_dtype:ft.kv_cache_dtype[Bt]??"float32":void 0;if(Ot&&!["float32","float16"].includes(Ot))throw new Error(`Invalid kv_cache_dtype: ${Ot}. Should be one of: float32, float16`);const Ir={dtype:Bt,kv_cache_dtype:Ot},Mr=K.DEFAULT_DTYPE_SUFFIX_MAPPING[Bt],Vr=`${_A.subfolder??""}/${WA}${Mr}.onnx`,Jr={..._A.session_options};Jr.executionProviders??=Qt;const Sa=ft.free_dimension_overrides;Sa?Jr.freeDimensionOverrides??=Sa:zt.startsWith("webnn")&&!Jr.freeDimensionOverrides&&console.warn('WebNN does not currently support dynamic shapes and requires `free_dimension_overrides` to be set in config.json as a field within "transformers.js_config". When `free_dimension_overrides` is not set, you may experience significant performance degradation.');const _r=(0,q.getModelFile)(XA,Vr,!0,_A),Yr=_A.use_external_data_format??ft.use_external_data_format;let Ca=[];if(Yr&&(Yr===!0||typeof Yr=="object"&&Yr.hasOwnProperty(WA)&&Yr[WA]===!0)){if(se.apis.IS_NODE_ENV)throw new Error("External data format is not yet supported in Node.js");const _t=`${WA}${Mr}.onnx_data`,Ua=`${_A.subfolder??""}/${_t}`;Ca.push(new Promise(async(ai,$0)=>{const si=await(0,q.getModelFile)(XA,Ua,!0,_A);ai({path:_t,data:si})}))}else Jr.externalData!==void 0&&(Ca=Jr.externalData.map(async _t=>{if(typeof _t.data=="string"){const Ua=await(0,q.getModelFile)(XA,_t.data,!0,_A);return{..._t,data:Ua}}return _t}));if(Ca.length>0&&(Jr.externalData=await Promise.all(Ca)),zt==="webgpu"){const _t=(0,k.getKeyValueShapes)(_A.config,{prefix:"present"});if(Object.keys(_t).length>0&&!(0,z.isONNXProxy)()){const Ua={};for(const ai in _t)Ua[ai]="gpu-buffer";Jr.preferredOutputLocation=Ua}}return{buffer:await _r,session_options:Jr,session_config:Ir}}(U,V[eA],ve);return[eA,await(0,z.createInferenceSession)(sA,gA,FA)]})))}async function GA(U,V,ve){return Object.fromEntries(await Promise.all(Object.keys(V).map(async eA=>[eA,await(0,q.getModelJSON)(U,V[eA],!1,ve)])))}async function Ge(U,V){const ve=function(eA,sA){const gA=Object.create(null),FA=[];for(const _A of eA.inputNames){const ft=sA[_A];ft instanceof R.Tensor?gA[_A]=(0,z.isONNXProxy)()?ft.clone():ft:FA.push(_A)}if(FA.length>0)throw new Error(`An error occurred during model execution: "Missing the following inputs: ${FA.join(", ")}.`);const XA=Object.keys(sA).length,WA=eA.inputNames.length;if(XA>WA){let _A=Object.keys(sA).filter(ft=>!eA.inputNames.includes(ft));console.warn(`WARNING: Too many inputs were provided (${XA} > ${WA}). The following inputs will be ignored: "${_A.join(", ")}".`)}return gA}(U,V);try{const eA=Object.fromEntries(Object.entries(ve).map(([gA,FA])=>[gA,FA.ort_tensor]));let sA=await U.run(eA);return sA=Ie(sA),sA}catch(eA){const sA=Object.fromEntries(Object.entries(ve).map(([gA,{type:FA,dims:XA,data:WA}])=>[gA,{type:FA,dims:XA,data:WA}]));throw console.error(`An error occurred during model execution: "${eA}".`),console.error("Inputs given to model:",sA),eA}}function Ie(U){for(let V in U)(0,z.isONNXTensor)(U[V])?U[V]=new R.Tensor(U[V]):typeof U[V]=="object"&&Ie(U[V]);return U}function ze(U){if(U instanceof R.Tensor)return U;if(U.length===0)throw Error("items must be non-empty");if(Array.isArray(U[0])){if(U.some(V=>V.length!==U[0].length))throw Error("Unable to create tensor, you should probably activate truncation and/or padding with 'padding=True' and/or 'truncation=True' to have batched tensors with the same length.");return new R.Tensor("int64",BigInt64Array.from(U.flat().map(V=>BigInt(V))),[U.length,U[0].length])}return new R.Tensor("int64",BigInt64Array.from(U.map(V=>BigInt(V))),[1,U.length])}function Ue(U){return new R.Tensor("bool",[U],[1])}async function Pe(U,V){let{encoder_outputs:ve,input_ids:eA,decoder_input_ids:sA,...gA}=V;if(!ve){const FA=(0,j.pick)(V,U.sessions.model.inputNames);ve=(await kA(U,FA)).last_hidden_state}return gA.input_ids=sA,gA.encoder_hidden_states=ve,U.sessions.decoder_model_merged.inputNames.includes("encoder_attention_mask")&&(gA.encoder_attention_mask=V.attention_mask),await aA(U,gA,!0)}async function kA(U,V){const ve=U.sessions.model,eA=(0,j.pick)(V,ve.inputNames);if(ve.inputNames.includes("inputs_embeds")&&!eA.inputs_embeds){if(!V.input_ids)throw new Error("Both `input_ids` and `inputs_embeds` are missing in the model inputs.");eA.inputs_embeds=await U.encode_text({input_ids:V.input_ids})}if(ve.inputNames.includes("token_type_ids")&&!eA.token_type_ids){if(!eA.input_ids)throw new Error("Both `input_ids` and `token_type_ids` are missing in the model inputs.");eA.token_type_ids=(0,R.zeros_like)(eA.input_ids)}if(ve.inputNames.includes("pixel_mask")&&!eA.pixel_mask){if(!eA.pixel_values)throw new Error("Both `pixel_values` and `pixel_mask` are missing in the model inputs.");const sA=eA.pixel_values.dims;eA.pixel_mask=(0,R.ones)([sA[0],sA[2],sA[3]])}return await Ge(ve,eA)}async function aA(U,V,ve=!1){const eA=U.sessions[ve?"decoder_model_merged":"model"],{past_key_values:sA,...gA}=V;if(eA.inputNames.includes("use_cache_branch")&&(gA.use_cache_branch=Ue(!!sA)),eA.inputNames.includes("position_ids")&&gA.attention_mask&&!gA.position_ids){const XA=U.config.model_type==="paligemma"?1:0;gA.position_ids=function(WA,_A=null,ft=0){const{input_ids:ut,inputs_embeds:zt,attention_mask:Qt}=WA,{data:or,dims:Bt}=iA(Qt,ft);let Ot=new R.Tensor("int64",or,Bt);if(_A){const Ir=-(ut??zt).dims.at(1);Ot=Ot.slice(null,[Ir,null])}return Ot}(gA,sA,XA)}U.addPastKeyValues(gA,sA);const FA=(0,j.pick)(gA,eA.inputNames);return await Ge(eA,FA)}function nA({image_token_id:U,inputs_embeds:V,image_features:ve,input_ids:eA,attention_mask:sA}){const gA=eA.tolist().map(_A=>_A.reduce((ft,ut,zt)=>(ut==U&&ft.push(zt),ft),[])),FA=gA.reduce((_A,ft)=>_A+ft.length,0),XA=ve.dims[0];if(FA!==XA)throw new Error(`Image features and image tokens do not match: tokens: ${FA}, features ${XA}`);let WA=0;for(let _A=0;_AgA.dims[1])){if(sAXA==U.config.image_token_index)){const XA=U.config.num_image_tokens;if(!XA)throw new Error("`num_image_tokens` is missing in the model configuration.");const WA=gA.dims[1]-(sA-XA);ve.input_ids=gA.slice(null,[-WA,null]),ve.attention_mask=(0,R.ones)([1,sA+WA])}}}return ve}function Ze(U,V,ve,eA){return ve.past_key_values&&(V=V.map(sA=>[sA.at(-1)])),{...ve,decoder_input_ids:ze(V)}}function mA(U,...V){return U.config.is_encoder_decoder?Ze(U,...V):Fe(U,...V)}function CA(U,V,ve,eA){const sA=!!ve.past_key_values;return eA.guidance_scale!==null&&eA.guidance_scale>1&&(sA?ve.input_ids=(0,R.cat)([ve.input_ids,ve.input_ids],0):(ve.input_ids=(0,R.cat)([ve.input_ids,(0,R.full_like)(ve.input_ids,BigInt(eA.pad_token_id))],0),ve.attention_mask=(0,R.cat)([ve.attention_mask,(0,R.full_like)(ve.attention_mask,0n)],0))),!sA&&ve.pixel_values||(ve.pixel_values=(0,R.full)([0,0,3,384,384],1)),sA&&(ve.images_seq_mask=new R.Tensor("bool",new Array(1).fill(!0).fill(!1,0,1),[1,1]),ve.images_emb_mask=new R.Tensor("bool",new Array(0).fill(!1),[1,1,0])),ve}class Te extends L.Callable{main_input_name="input_ids";forward_params=["input_ids","attention_mask"];constructor(V,ve,eA){super(),this.config=V,this.sessions=ve,this.configs=eA;const sA=AA.get(this.constructor),gA=Ye.get(sA);switch(this.can_generate=!1,this._forward=null,this._prepare_inputs_for_generation=null,gA){case M:this.can_generate=!0,this._forward=aA,this._prepare_inputs_for_generation=Fe;break;case e:case l:case P:this.can_generate=!0,this._forward=Pe,this._prepare_inputs_for_generation=Ze;break;case b:this._forward=Pe;break;case D:this.can_generate=!0,this._forward=EA,this._prepare_inputs_for_generation=mA;break;case Ne:this.can_generate=!0,this._prepare_inputs_for_generation=mA;break;case Re:this.can_generate=!0,this._prepare_inputs_for_generation=CA;break;default:this._forward=kA}this.can_generate&&this.forward_params.push("past_key_values"),this.custom_config=this.config["transformers.js_config"]??{}}async dispose(){const V=[];for(const ve of Object.values(this.sessions))ve?.handler?.dispose&&V.push(ve.handler.dispose());return await Promise.all(V)}static async from_pretrained(V,{progress_callback:ve=null,config:eA=null,cache_dir:sA=null,local_files_only:gA=!1,revision:FA="main",model_file_name:XA=null,subfolder:WA="onnx",device:_A=null,dtype:ft=null,use_external_data_format:ut=null,session_options:zt={}}={}){let Qt={progress_callback:ve,config:eA,cache_dir:sA,local_files_only:gA,revision:FA,model_file_name:XA,subfolder:WA,device:_A,dtype:ft,use_external_data_format:ut,session_options:zt};const or=AA.get(this),Bt=Ye.get(or);let Ot;if(eA=Qt.config=await k.AutoConfig.from_pretrained(V,Qt),Bt===M)Ot=await Promise.all([xA(V,{model:Qt.model_file_name??"model"},Qt),GA(V,{generation_config:"generation_config.json"},Qt)]);else if(Bt===e||Bt===l)Ot=await Promise.all([xA(V,{model:"encoder_model",decoder_model_merged:"decoder_model_merged"},Qt),GA(V,{generation_config:"generation_config.json"},Qt)]);else if(Bt===ge)Ot=await Promise.all([xA(V,{model:"vision_encoder",prompt_encoder_mask_decoder:"prompt_encoder_mask_decoder"},Qt)]);else if(Bt===b)Ot=await Promise.all([xA(V,{model:"encoder_model",decoder_model_merged:"decoder_model_merged"},Qt)]);else if(Bt===D){const Ir={embed_tokens:"embed_tokens",vision_encoder:"vision_encoder",decoder_model_merged:"decoder_model_merged"};eA.is_encoder_decoder&&(Ir.model="encoder_model"),Ot=await Promise.all([xA(V,Ir,Qt),GA(V,{generation_config:"generation_config.json"},Qt)])}else if(Bt===P)Ot=await Promise.all([xA(V,{model:"text_encoder",decoder_model_merged:"decoder_model_merged",encodec_decode:"encodec_decode"},Qt),GA(V,{generation_config:"generation_config.json"},Qt)]);else if(Bt===Re)Ot=await Promise.all([xA(V,{prepare_inputs_embeds:"prepare_inputs_embeds",model:"language_model",lm_head:"lm_head",gen_head:"gen_head",gen_img_embeds:"gen_img_embeds",image_decode:"image_decode"},Qt),GA(V,{generation_config:"generation_config.json"},Qt)]);else if(Bt===Ne)Ot=await Promise.all([xA(V,{prepare_inputs_embeds:"prepare_inputs_embeds",model:"model",vision_encoder:"vision_encoder"},Qt),GA(V,{generation_config:"generation_config.json"},Qt)]);else{if(Bt!==u){const Ir=or??eA?.model_type;Ir!=="custom"&&console.warn(`Model type for '${Ir}' not found, assuming encoder-only architecture. Please report this at ${W.GITHUB_ISSUE_URL}.`)}Ot=await Promise.all([xA(V,{model:Qt.model_file_name??"model"},Qt)])}return new this(eA,...Ot)}async _call(V){return await this.forward(V)}async forward(V){return await this._forward(this,V)}get generation_config(){return this.configs?.generation_config??null}_get_logits_warper(V){const ve=new S.LogitsProcessorList;return V.temperature!==null&&V.temperature!==1&&ve.push(new S.TemperatureLogitsWarper(V.temperature)),V.top_k!==null&&V.top_k!==0&&ve.push(new S.TopKLogitsWarper(V.top_k)),V.top_p!==null&&V.top_p<1&&ve.push(new S.TopPLogitsWarper(V.top_p)),ve}_get_logits_processor(V,ve,eA=null){const sA=new S.LogitsProcessorList;if(V.repetition_penalty!==null&&V.repetition_penalty!==1&&sA.push(new S.RepetitionPenaltyLogitsProcessor(V.repetition_penalty)),V.no_repeat_ngram_size!==null&&V.no_repeat_ngram_size>0&&sA.push(new S.NoRepeatNGramLogitsProcessor(V.no_repeat_ngram_size)),V.bad_words_ids!==null&&sA.push(new S.NoBadWordsLogitsProcessor(V.bad_words_ids,V.eos_token_id)),V.min_length!==null&&V.eos_token_id!==null&&V.min_length>0&&sA.push(new S.MinLengthLogitsProcessor(V.min_length,V.eos_token_id)),V.min_new_tokens!==null&&V.eos_token_id!==null&&V.min_new_tokens>0&&sA.push(new S.MinNewTokensLengthLogitsProcessor(ve,V.min_new_tokens,V.eos_token_id)),V.forced_bos_token_id!==null&&sA.push(new S.ForcedBOSTokenLogitsProcessor(V.forced_bos_token_id)),V.forced_eos_token_id!==null&&sA.push(new S.ForcedEOSTokenLogitsProcessor(V.max_length,V.forced_eos_token_id)),V.begin_suppress_tokens!==null){const gA=ve>1||V.forced_bos_token_id===null?ve:ve+1;sA.push(new S.SuppressTokensAtBeginLogitsProcessor(V.begin_suppress_tokens,gA))}return V.guidance_scale!==null&&V.guidance_scale>1&&sA.push(new S.ClassifierFreeGuidanceLogitsProcessor(V.guidance_scale)),eA!==null&&sA.extend(eA),sA}_prepare_generation_config(V,ve,eA=X.GenerationConfig){const sA={...this.config};for(const FA of["decoder","generator","text_config"])FA in sA&&Object.assign(sA,sA[FA]);const gA=new eA(sA);return Object.assign(gA,this.generation_config??{}),V&&Object.assign(gA,V),ve&&Object.assign(gA,(0,j.pick)(ve,Object.getOwnPropertyNames(gA))),gA}_get_stopping_criteria(V,ve=null){const eA=new xe.StoppingCriteriaList;return V.max_length!==null&&eA.push(new xe.MaxLengthCriteria(V.max_length,this.config.max_position_embeddings??null)),V.eos_token_id!==null&&eA.push(new xe.EosTokenCriteria(V.eos_token_id)),ve&&eA.extend(ve),eA}_validate_model_class(){if(!this.can_generate){const V=[Ho,Ro,Yo,Oo],ve=AA.get(this.constructor),eA=new Set,sA=this.config.model_type;for(const FA of V){const XA=FA.get(sA);XA&&eA.add(XA[0])}let gA=`The current model class (${ve}) is not compatible with \`.generate()\`, as it doesn't have a language model head.`;throw eA.size>0&&(gA+=` Please use the following class instead: ${[...eA].join(", ")}`),Error(gA)}}prepare_inputs_for_generation(...V){return this._prepare_inputs_for_generation(this,...V)}_update_model_kwargs_for_generation({generated_input_ids:V,outputs:ve,model_inputs:eA,is_encoder_decoder:sA}){return eA.past_key_values=this.getPastKeyValues(ve,eA.past_key_values),eA.input_ids=new R.Tensor("int64",V.flat(),[V.length,1]),sA||(eA.attention_mask=(0,R.cat)([eA.attention_mask,(0,R.ones)([eA.attention_mask.dims[0],1])],1)),eA.position_ids=null,eA}_prepare_model_inputs({inputs:V,bos_token_id:ve,model_kwargs:eA}){const sA=(0,j.pick)(eA,this.forward_params),gA=this.main_input_name;if(gA in sA){if(V)throw new Error("`inputs`: {inputs}` were passed alongside {input_name} which is not allowed. Make sure to either pass {inputs} or {input_name}=...")}else sA[gA]=V;return{inputs_tensor:sA[gA],model_inputs:sA,model_input_name:gA}}async _prepare_encoder_decoder_kwargs_for_generation({inputs_tensor:V,model_inputs:ve,model_input_name:eA,generation_config:sA}){if(this.sessions.model.inputNames.includes("inputs_embeds")&&!ve.inputs_embeds&&"_prepare_inputs_embeds"in this){const{input_ids:FA,pixel_values:XA,attention_mask:WA,..._A}=ve,ft=await this._prepare_inputs_embeds(ve);ve={..._A,...(0,j.pick)(ft,["inputs_embeds","attention_mask"])}}let{last_hidden_state:gA}=await kA(this,ve);if(sA.guidance_scale!==null&&sA.guidance_scale>1)gA=(0,R.cat)([gA,(0,R.full_like)(gA,0)],0),"attention_mask"in ve&&(ve.attention_mask=(0,R.cat)([ve.attention_mask,(0,R.zeros_like)(ve.attention_mask)],0));else if(ve.decoder_input_ids){const FA=ze(ve.decoder_input_ids).dims[0];if(FA!==gA.dims[0]){if(gA.dims[0]!==1)throw new Error(`The encoder outputs have a different batch size (${gA.dims[0]}) than the decoder inputs (${FA}).`);gA=(0,R.cat)(Array.from({length:FA},()=>gA),0)}}return ve.encoder_outputs=gA,ve}_prepare_decoder_input_ids_for_generation({batch_size:V,model_input_name:ve,model_kwargs:eA,decoder_start_token_id:sA,bos_token_id:gA,generation_config:FA}){let{decoder_input_ids:XA,...WA}=eA;if(!(XA instanceof R.Tensor)){if(XA)Array.isArray(XA[0])||(XA=Array.from({length:V},()=>XA));else if(sA??=gA,this.config.model_type==="musicgen")XA=Array.from({length:V*this.config.decoder.num_codebooks},()=>[sA]);else if(Array.isArray(sA)){if(sA.length!==V)throw new Error(`\`decoder_start_token_id\` expcted to have length ${V} but got ${sA.length}`);XA=sA}else XA=Array.from({length:V},()=>[sA]);XA=ze(XA)}return eA.decoder_attention_mask=(0,R.ones_like)(XA),{input_ids:XA,model_inputs:WA}}async generate({inputs:V=null,generation_config:ve=null,logits_processor:eA=null,stopping_criteria:sA=null,streamer:gA=null,...FA}){this._validate_model_class(),ve=this._prepare_generation_config(ve,FA);let{inputs_tensor:XA,model_inputs:WA,model_input_name:_A}=this._prepare_model_inputs({inputs:V,model_kwargs:FA});const ft=this.config.is_encoder_decoder;let ut;ft&&("encoder_outputs"in WA||(WA=await this._prepare_encoder_decoder_kwargs_for_generation({inputs_tensor:XA,model_inputs:WA,model_input_name:_A,generation_config:ve}))),ft?{input_ids:ut,model_inputs:WA}=this._prepare_decoder_input_ids_for_generation({batch_size:WA[_A].dims.at(0),model_input_name:_A,model_kwargs:WA,decoder_start_token_id:ve.decoder_start_token_id,bos_token_id:ve.bos_token_id,generation_config:ve}):ut=WA[_A];let zt=ut.dims.at(-1);ve.max_new_tokens!==null&&(ve.max_length=zt+ve.max_new_tokens);const Qt=this._get_logits_processor(ve,zt,eA),or=this._get_stopping_criteria(ve,sA),Bt=WA[_A].dims.at(0),Ot=Ee.LogitsSampler.getSampler(ve),Ir=new Array(Bt).fill(0),Mr=ut.tolist();let Vr;gA&&gA.put(Mr);let Jr={};for(;;){if(WA=this.prepare_inputs_for_generation(Mr,WA,ve),Vr=await this.forward(WA),ve.output_attentions&&ve.return_dict_in_generate){const _t=this.getAttentions(Vr);for(const Ua in _t)Ua in Jr||(Jr[Ua]=[]),Jr[Ua].push(_t[Ua])}const Yr=Qt(Mr,Vr.logits.slice(null,-1,null)),Ca=[];for(let _t=0;_t_t))break;WA=this._update_model_kwargs_for_generation({generated_input_ids:Ca,outputs:Vr,model_inputs:WA,is_encoder_decoder:ft})}gA&&gA.end();const Sa=this.getPastKeyValues(Vr,WA.past_key_values,!0),_r=new R.Tensor("int64",Mr.flat(),[Mr.length,Mr[0].length]);if(ve.return_dict_in_generate)return{sequences:_r,past_key_values:Sa,...Jr};for(const Yr of Object.values(Vr))Yr.location==="gpu-buffer"&&Yr.dispose();return _r}getPastKeyValues(V,ve,eA=!1){const sA=Object.create(null);for(const gA in V)if(gA.startsWith("present")){const FA=gA.replace("present","past_key_values"),XA=gA.includes("encoder");if(sA[FA]=XA&&ve?ve[FA]:V[gA],ve&&(!XA||eA)){const WA=ve[FA];WA.location==="gpu-buffer"&&WA.dispose()}}return sA}getAttentions(V){const ve={};for(const eA of["cross_attentions","encoder_attentions","decoder_attentions"])for(const sA in V)sA.startsWith(eA)&&(eA in ve||(ve[eA]=[]),ve[eA].push(V[sA]));return ve}addPastKeyValues(V,ve){if(ve)Object.assign(V,ve);else{const eA=this.sessions.decoder_model_merged??this.sessions.model,sA=eA?.config?.kv_cache_dtype??"float32",gA=sA==="float16"?new Uint16Array:[],FA=(V[this.main_input_name]??V.attention_mask)?.dims?.[0]??1,XA=(0,k.getKeyValueShapes)(this.config,{batch_size:FA});for(const WA in XA)V[WA]=new R.Tensor(sA,gA,XA[WA])}}async encode_image({pixel_values:V}){const ve=(await Ge(this.sessions.vision_encoder,{pixel_values:V})).image_features;return this.config.num_image_tokens||(console.warn(`The number of image tokens was not set in the model configuration. Setting it to the number of features detected by the vision encoder (${ve.dims[1]}).`),this.config.num_image_tokens=ve.dims[1]),ve}async encode_text({input_ids:V}){return(await Ge(this.sessions.embed_tokens,{input_ids:V})).inputs_embeds}}class pA{}class vA extends pA{constructor({last_hidden_state:V,hidden_states:ve=null,attentions:eA=null}){super(),this.last_hidden_state=V,this.hidden_states=ve,this.attentions=eA}}class SA extends Te{}class YA extends SA{}class J extends SA{async _call(V){return new Fa(await super._call(V))}}class OA extends SA{async _call(V){return new Nt(await super._call(V))}}class ue extends SA{async _call(V){return new Da(await super._call(V))}}class $ extends SA{async _call(V){return new ja(await super._call(V))}}class me extends Te{}class Se extends me{}class qe extends me{async _call(V){return new Fa(await super._call(V))}}class dA extends me{async _call(V){return new Nt(await super._call(V))}}class oA extends me{async _call(V){return new Da(await super._call(V))}}class BA extends Te{}class QA extends BA{}class TA extends Te{}class Mt extends TA{}class Tt extends TA{async _call(V){return new Fa(await super._call(V))}}class gt extends TA{async _call(V){return new Nt(await super._call(V))}}class Ct extends TA{async _call(V){return new Da(await super._call(V))}}class $t extends TA{async _call(V){return new ja(await super._call(V))}}class Qr extends Te{}class tr extends Qr{}class da extends Qr{async _call(V){return new Fa(await super._call(V))}}class bt extends Qr{async _call(V){return new Nt(await super._call(V))}}class Ka extends Qr{async _call(V){return new Da(await super._call(V))}}class Oa extends Qr{async _call(V){return new ja(await super._call(V))}}class Ia extends Te{}class ZA extends Ia{}class $A extends Ia{async _call(V){return new Fa(await super._call(V))}}class PA extends Ia{async _call(V){return new Nt(await super._call(V))}}class qt extends Ia{async _call(V){return new Da(await super._call(V))}}class cs extends Ia{async _call(V){return new ja(await super._call(V))}}class Za extends Te{}class zs extends Za{}class ws extends Za{async _call(V){return new Fa(await super._call(V))}}class ks extends Za{async _call(V){return new Nt(await super._call(V))}}class Fs extends Za{async _call(V){return new Da(await super._call(V))}}class $r extends Za{async _call(V){return new ja(await super._call(V))}}class xt extends Te{}class va extends xt{}class Tr extends xt{async _call(V){return new Fa(await super._call(V))}}class Hr extends xt{async _call(V){return new Nt(await super._call(V))}}class us extends xt{async _call(V){return new Da(await super._call(V))}}class Kt extends xt{async _call(V){return new ja(await super._call(V))}}class Xa extends Te{}class gs extends Xa{}class mn extends Xa{async _call(V){return new Fa(await super._call(V))}}class _s extends Xa{async _call(V){return new Nt(await super._call(V))}}class $s extends Xa{async _call(V){return new Da(await super._call(V))}}class Cn extends Xa{async _call(V){return new ja(await super._call(V))}}class Ur extends Te{}class ts extends Ur{}class ds extends Ur{async _call(V){return new Nt(await super._call(V))}}class en extends Ur{async _call(V){return new Da(await super._call(V))}}class qa extends Ur{async _call(V){return new ja(await super._call(V))}}class xs extends Ur{async _call(V){return new Fa(await super._call(V))}}class kr extends Te{}class Ss extends kr{}class Ns extends kr{async _call(V){return new Fa(await super._call(V))}}class bn extends kr{async _call(V){return new Nt(await super._call(V))}}class Os extends kr{async _call(V){return new Da(await super._call(V))}}class Bs extends Te{}class Ls extends Bs{}class ys extends Bs{async _call(V){return new Fa(await super._call(V))}}class wt extends Bs{async _call(V){return new Nt(await super._call(V))}}class Pt extends Bs{async _call(V){return new ja(await super._call(V))}}class wa extends Te{}class An extends wa{}class Es extends wa{async _call(V){return new Fa(await super._call(V))}}class Ys extends wa{async _call(V){return new Nt(await super._call(V))}}class rs extends wa{async _call(V){return new Da(await super._call(V))}}class Hs extends wa{async _call(V){return new ja(await super._call(V))}}class tA extends Te{}class _ extends tA{}class Be extends tA{async _call(V){return new Fa(await super._call(V))}}class Oe extends tA{async _call(V){return new Nt(await super._call(V))}}class Ve extends tA{async _call(V){return new ja(await super._call(V))}}class $e extends Te{}class fA extends $e{}class NA extends $e{async _call(V){return new Nt(await super._call(V))}}class He extends $e{async _call(V){return new ja(await super._call(V))}}class VA extends $e{async _call(V){return new Fa(await super._call(V))}}class bA extends Te{forward_params=["input_ids","attention_mask","encoder_outputs","decoder_input_ids","decoder_attention_mask","past_key_values"]}class Yt extends bA{}class Vt extends bA{}class cr extends Te{}class sr extends cr{}class jt extends cr{}class jA extends Te{}class KA extends jA{}class Jt extends jA{}class La extends Te{}class fa extends La{}class nr extends La{}class rt extends La{async _call(V){return new Nt(await super._call(V))}}class dr extends Te{}class uA extends dr{}class JA extends dr{}class pa extends dr{async _call(V){return new Nt(await super._call(V))}}class Nr extends dr{}class Rr extends Te{}class Pr extends Rr{}class Cr extends Rr{}class Ut extends Te{}class xr extends Ut{}class tn extends Ut{}class Ya extends Te{}class Sn extends Ya{}class Ma extends Ya{async _call(V){return new Fa(await super._call(V))}}class Nn extends Ya{async _call(V){return new Nt(await super._call(V))}}class Gt extends Ya{async _call(V){return new Da(await super._call(V))}}class ea extends Ya{async _call(V){return new ja(await super._call(V))}}class Wa extends Te{}class s0 extends Wa{}class n0 extends Wa{async _call(V){return new Fa(await super._call(V))}}class i0 extends Wa{async _call(V){return new Nt(await super._call(V))}}class o0 extends Wa{async _call(V){return new Da(await super._call(V))}}class rn extends Wa{async _call(V){return new ja(await super._call(V))}}class Rs extends Te{}class l0 extends Rs{}class On extends Rs{async _call(V){return new Fa(await super._call(V))}}class Qa extends Rs{async _call(V){return new Nt(await super._call(V))}}class Kr extends Rs{async _call(V){return new Da(await super._call(V))}}class qA extends Rs{async _call(V){return new ja(await super._call(V))}}class Ga extends Te{}class di extends Ga{}class Ln extends Ga{}class fi extends Te{requires_attention_mask=!1;main_input_name="input_features";forward_params=["input_features","attention_mask","decoder_input_ids","decoder_attention_mask","past_key_values"]}class c0 extends fi{}class u0 extends fi{_prepare_generation_config(V,ve){return super._prepare_generation_config(V,ve,ie.WhisperGenerationConfig)}_retrieve_init_tokens(V){const ve=[V.decoder_start_token_id];let eA=V.language;const sA=V.task;if(V.is_multilingual){eA||(console.warn("No language specified - defaulting to English (en)."),eA="en");const gA=`<|${(0,we.whisper_language_to_code)(eA)}|>`;ve.push(V.lang_to_id[gA]),ve.push(V.task_to_id[sA??"transcribe"])}else if(eA||sA)throw new Error("Cannot specify `task` or `language` for an English-only model. If the model is intended to be multilingual, pass `is_multilingual=true` to generate, or update the generation config.");return!V.return_timestamps&&V.no_timestamps_token_id&&ve.at(-1)!==V.no_timestamps_token_id?ve.push(V.no_timestamps_token_id):V.return_timestamps&&ve.at(-1)===V.no_timestamps_token_id&&(console.warn("<|notimestamps|> prompt token is removed from generation_config since `return_timestamps` is set to `true`."),ve.pop()),ve.filter(gA=>gA!=null)}async generate({inputs:V=null,generation_config:ve=null,logits_processor:eA=null,stopping_criteria:sA=null,...gA}){ve=this._prepare_generation_config(ve,gA);const FA=gA.decoder_input_ids??this._retrieve_init_tokens(ve);if(ve.return_timestamps&&(eA??=new S.LogitsProcessorList,eA.push(new S.WhisperTimeStampLogitsProcessor(ve,FA))),ve.begin_suppress_tokens&&(eA??=new S.LogitsProcessorList,eA.push(new S.SuppressTokensAtBeginLogitsProcessor(ve.begin_suppress_tokens,FA.length))),ve.return_token_timestamps){if(!ve.alignment_heads)throw new Error("Model generation config has no `alignment_heads`, token-level timestamps not available. See https://gist.github.com/hollance/42e32852f24243b748ae6bc1f985b13a on how to add this property to the generation config.");ve.task==="translate"&&console.warn("Token-level timestamps may not be reliable for task 'translate'."),ve.output_attentions=!0,ve.return_dict_in_generate=!0}const XA=await super.generate({inputs:V,generation_config:ve,logits_processor:eA,decoder_input_ids:FA,...gA});return ve.return_token_timestamps&&(XA.token_timestamps=this._extract_token_timestamps(XA,ve.alignment_heads,ve.num_frames)),XA}_extract_token_timestamps(V,ve,eA=null,sA=.02){if(!V.cross_attentions)throw new Error("Model outputs must contain cross attentions to extract timestamps. This is most likely because the model was not exported with `output_attentions=True`.");eA==null&&console.warn("`num_frames` has not been set, meaning the entire audio will be analyzed. This may lead to inaccurate token-level timestamps for short audios (< 30 seconds).");let gA=this.config.median_filter_width;gA===void 0&&(console.warn("Model config has no `median_filter_width`, using default value of 7."),gA=7);const FA=V.cross_attentions,XA=Array.from({length:this.config.decoder_layers},(Bt,Ot)=>(0,R.cat)(FA.map(Ir=>Ir[Ot]),2)),WA=(0,R.stack)(ve.map(([Bt,Ot])=>{if(Bt>=XA.length)throw new Error(`Layer index ${Bt} is out of bounds for cross attentions (length ${XA.length}).`);return eA?XA[Bt].slice(null,Ot,null,[0,eA]):XA[Bt].slice(null,Ot)})).transpose(1,0,2,3),[_A,ft]=(0,R.std_mean)(WA,-2,0,!0),ut=WA.clone();for(let Bt=0;BtIr[Yr+1]-Ir[Yr]),Jr=(0,j.mergeArrays)([1],Vr).map(_r=>!!_r),Sa=[];for(let _r=0;_rut.findIndex(zt=>zt==gA)),XA=FA.every(ut=>ut===-1),WA=FA.every(ut=>ut!==-1);if(!XA&&!WA)throw new Error("Every input should contain either 0 or 1 image token.");if(XA)return{inputs_embeds:V,attention_mask:sA};const _A=[],ft=[];for(let ut=0;utArray.from({length:V.dims[0]},Vr=>Array.from({length:V.dims[1]},Jr=>1))),or=ve?ve.tolist():[],Bt=eA?eA.tolist():[];let Ot=0,Ir=0;for(let Mr=0;Mrzt[Mr][oa]==1),Jr=Vr.reduce((Gr,oa,As)=>(oa==WA&&Gr.push(As),Gr),[]),Sa=Jr.map(Gr=>Vr[Gr+1]),_r=Sa.filter(Gr=>Gr==FA).length,Yr=Sa.filter(Gr=>Gr==XA).length;let Ca=[],_t=0,Ua=_r,ai=Yr;for(let Gr=0;GrRa>_t&&Is==FA),As=Vr.findIndex((Is,Ra)=>Ra>_t&&Is==XA),ni=Ua>0&&oa!==-1?oa:Vr.length+1,zn=ai>0&&As!==-1?As:Vr.length+1;let N0,eo,Ao,to;ni0?(0,be.max)(Ca.at(-1))[0]+1:0;Ca.push(Array.from({length:3*bs},(Is,Ra)=>Ji+Ra%bs));const _i=bs+Ji,ii=f1*ro*qs,Xo=Array.from({length:ii},(Is,Ra)=>_i+Math.floor(Ra/(ro*qs))),p1=Array.from({length:ii},(Is,Ra)=>_i+Math.floor(Ra/qs)%ro),qo=Array.from({length:ii},(Is,Ra)=>_i+Ra%qs);Ca.push([Xo,p1,qo].flat()),_t=N0+ii}if(_t0?(0,be.max)(Ca.at(-1))[0]+1:0,oa=Vr.length-_t;Ca.push(Array.from({length:3*oa},(As,ni)=>Gr+ni%oa))}const $0=Ca.reduce((Gr,oa)=>Gr+oa.length,0),si=new Array($0);let qi=0;for(let Gr=0;Gr<3;++Gr)for(let oa=0;oaut[Ot%ut.length]),or=Array.from({length:zt[0]},(Bt,Ot)=>(0,be.max)(ut.subarray(zt[1]*Ot,zt[1]*(Ot+1)))[0]+1n+BigInt(zt[1]));return[new R.Tensor("int64",Qt,[3,...zt]),new R.Tensor("int64",or,[or.length,1])]}{const[ut,zt]=V.dims,Qt=BigInt64Array.from({length:3*ut*zt},(or,Bt)=>BigInt(Math.floor(Bt%zt/ut)));return[new R.Tensor("int64",Qt,[3,...V.dims]),(0,R.zeros)([ut,1])]}}async encode_image({pixel_values:V,image_grid_thw:ve}){return(await Ge(this.sessions.vision_encoder,{pixel_values:V,grid_thw:ve})).image_features}_merge_input_ids_with_image_features(V){return nA({image_token_id:this.config.image_token_id,...V})}prepare_inputs_for_generation(V,ve,eA){if(ve.attention_mask&&!ve.position_ids)if(ve.past_key_values){ve.pixel_values=null;const sA=BigInt(Object.values(ve.past_key_values)[0].dims.at(-2)),gA=ve.rope_deltas.map(FA=>sA+FA);ve.position_ids=(0,R.stack)([gA,gA,gA],0)}else[ve.position_ids,ve.rope_deltas]=this.get_rope_index(ve.input_ids,ve.image_grid_thw,ve.video_grid_thw,ve.attention_mask);return ve}}class Va extends Te{}class fr extends Va{}class Li extends Va{}class Ms extends Te{}class cn extends Ms{}class E0 extends Ms{}class Yi extends Te{}class Hi extends Yi{}class v0 extends Yi{}class Gs extends Te{}class $a extends Gs{}class Ri extends Gs{}class Mn extends Te{}class Zr extends Mn{}class ar extends Mn{}class un extends Te{}class M0 extends un{}class Ds extends un{async _call(V){return new Nt(await super._call(V))}}class Qs extends Te{}class Us extends Qs{}class Wi extends Qs{async _call(V){return new Nt(await super._call(V))}}class ma extends Te{}class G0 extends ma{}class Vi extends Te{}class gn extends Vi{}class Gn extends Vi{async _call(V){return new Nt(await super._call(V))}}class sa extends Te{}class ji extends sa{}class Jn extends Te{}class Ks extends Jn{}class D0 extends Jn{async _call(V){return new Nt(await super._call(V))}}class dn extends Te{}class ct extends dn{}class A extends Te{}class t extends A{}class r extends A{async _call(V){return new Nt(await super._call(V))}}class a extends Te{}class s extends a{async _call(V){return new O1(await super._call(V))}}class n extends Te{}class o extends n{}class c extends n{async _call(V){return new Nt(await super._call(V))}}class f extends Te{}class m extends f{}class p extends f{async _call(V){return new Nt(await super._call(V))}}class I extends Te{}class v extends I{}class T extends I{}class O extends Te{}class Z extends O{}class ee extends O{}class ce extends Te{}class he extends ce{}class ye extends ce{async _call(V){return new Nt(await super._call(V))}}class Qe extends Te{}class We extends Qe{}class Ke extends Qe{async _call(V){return new cA(await super._call(V))}}class rA extends Qe{async _call(V){return new MA(await super._call(V))}}class cA extends pA{constructor({logits:V,pred_boxes:ve}){super(),this.logits=V,this.pred_boxes=ve}}class MA extends pA{constructor({logits:V,pred_boxes:ve,pred_masks:eA}){super(),this.logits=V,this.pred_boxes=ve,this.pred_masks=eA}}class zA extends Te{}class et extends zA{}class at extends zA{async _call(V){return new dt(await super._call(V))}}class dt extends pA{constructor({logits:V,pred_boxes:ve}){super(),this.logits=V,this.pred_boxes=ve}}class Ft extends Te{}class Zt extends Ft{}class er extends Ft{async _call(V){return new pr(await super._call(V))}}class pr extends cA{}class hr extends Te{}class Er extends hr{}class vr extends hr{async _call(V){return new Nt(await super._call(V))}}class Fr extends Te{}class Wr extends Fr{}class na extends Fr{async _call(V){return new Nt(await super._call(V))}}class Xr extends Te{}class ia extends Xr{}class Ba extends Xr{async _call(V){return new Nt(await super._call(V))}}class es extends Te{}class is extends es{}class os extends es{async _call(V){return new Nt(await super._call(V))}}class Ts extends Te{}class Dn extends Ts{}class fn extends Ts{}class pn extends Te{}class Qn extends pn{}class Ui extends pn{}class Q0 extends Te{}class T0 extends Q0{}class _n extends Te{}class l2 extends _n{}class c2 extends _n{}class u2 extends _n{}class g2 extends Te{}class d2 extends g2{}class uo extends Te{}class f2 extends uo{}class p2 extends uo{}class go extends Te{}class h2 extends go{}class m2 extends go{}class C2 extends Te{}class b2 extends C2{}class fo extends Te{}class I2 extends fo{}class w2 extends fo{async _call(V){return new Nt(await super._call(V))}}class po extends Te{}class k2 extends po{}class x2 extends po{async _call(V){return new Nt(await super._call(V))}}class ho extends Te{}class B2 extends ho{}class Zs extends ho{async _call(V){return new Nt(await super._call(V))}}class Xs extends Te{}class $n extends Xs{}class ei extends Xs{async _call(V){return new Nt(await super._call(V))}}class y2 extends Te{}class E2 extends y2{}class mo extends Te{}class v2 extends mo{}class M2 extends mo{async _call(V){return new G2(await super._call(V))}}class G2 extends pA{constructor({logits:V,pred_boxes:ve}){super(),this.logits=V,this.pred_boxes=ve}}class D2 extends Te{}class Q2 extends D2{async get_image_embeddings({pixel_values:V}){return await kA(this,{pixel_values:V})}async forward(V){if(V.image_embeddings&&V.image_positional_embeddings||(V={...V,...await this.get_image_embeddings(V)}),!V.input_labels&&V.input_points){const eA=V.input_points.dims.slice(0,-1),sA=eA.reduce((gA,FA)=>gA*FA,1);V.input_labels=new R.Tensor("int64",new BigInt64Array(sA).fill(1n),eA)}const ve={image_embeddings:V.image_embeddings,image_positional_embeddings:V.image_positional_embeddings};return V.input_points&&(ve.input_points=V.input_points),V.input_labels&&(ve.input_labels=V.input_labels),V.input_boxes&&(ve.input_boxes=V.input_boxes),await Ge(this.sessions.prompt_encoder_mask_decoder,ve)}async _call(V){return new T2(await super._call(V))}}class T2 extends pA{constructor({iou_scores:V,pred_masks:ve}){super(),this.iou_scores=V,this.pred_masks=ve}}class Ha extends Te{}class P2 extends Ha{}class z2 extends Ha{}class U0 extends Te{}class F2 extends U0{}class P0 extends U0{}class Tn extends Te{}class S2 extends Tn{}class N2 extends Tn{async _call(V){return new Xi(await super._call(V))}}class O2 extends Tn{async _call(V){return new Nt(await super._call(V))}}class L2 extends Tn{async _call(V){return new Da(await super._call(V))}}class K0 extends Te{}class Y2 extends K0{}class H2 extends K0{async _call(V){return new Da(await super._call(V))}}class R2 extends Te{}class W2 extends R2{}class z0 extends Te{}class V2 extends z0{}class Co extends z0{async _call(V){return new Xi(await super._call(V))}}class j2 extends z0{async _call(V){return new Nt(await super._call(V))}}class F0 extends Te{}class U2 extends F0{}class K2 extends F0{async _call(V){return new Xi(await super._call(V))}}class Z2 extends F0{async _call(V){return new Nt(await super._call(V))}}class X2 extends F0{async _call(V){return new Da(await super._call(V))}}class Z0 extends Te{}class q2 extends Z0{}class J2 extends Z0{async _call(V){return new Xi(await super._call(V))}}class _2 extends Z0{async _call(V){return new Nt(await super._call(V))}}class B1 extends Te{}class $2 extends Tn{}class el extends Tn{async _call(V){return new Xi(await super._call(V))}}class Al extends Tn{async _call(V){return new Nt(await super._call(V))}}class Ki extends Te{}class tl extends Ki{}class rl extends Ki{async _call(V){return new Xi(await super._call(V))}}class al extends Ki{async _call(V){return new Nt(await super._call(V))}}class sl extends Ki{async _call(V){return new N1(await super._call(V))}}class nl extends Ki{async _call(V){return new Da(await super._call(V))}}class il extends Te{}class ol extends il{}class Ai extends Te{}class ll extends Ai{}class bo extends Ai{}class Io extends Ai{async generate_speech(V,ve,{threshold:eA=.5,minlenratio:sA=0,maxlenratio:gA=20,vocoder:FA=null}={}){const XA={input_ids:V},{encoder_outputs:WA,encoder_attention_mask:_A}=await kA(this,XA),ft=WA.dims[1]/this.config.reduction_factor,ut=Math.floor(ft*gA),zt=Math.floor(ft*sA),Qt=this.config.num_mel_bins;let or=[],Bt=null,Ot=null,Ir=0;for(;;){++Ir;const Jr=Ue(!!Ot);let Sa;Sa=Ot?Ot.output_sequence_out:new R.Tensor("float32",new Float32Array(Qt),[1,1,Qt]);let _r={use_cache_branch:Jr,output_sequence:Sa,encoder_attention_mask:_A,speaker_embeddings:ve,encoder_hidden_states:WA};this.addPastKeyValues(_r,Bt),Ot=await Ge(this.sessions.decoder_model_merged,_r),Bt=this.getPastKeyValues(Ot,Bt);const{prob:Yr,spectrum:Ca}=Ot;if(or.push(Ca),Ir>=zt&&(Array.from(Yr.data).filter(_t=>_t>=eA).length>0||Ir>=ut))break}const Mr=(0,R.cat)(or),{waveform:Vr}=await Ge(FA.sessions.model,{spectrogram:Mr});return{spectrogram:Mr,waveform:Vr}}}class wo extends Te{main_input_name="spectrogram"}class cl extends Te{}class ul extends cl{}class X0 extends Te{}class ko extends X0{}class gl extends X0{}class xo extends Te{}class Bo extends xo{}class dl extends xo{}class yo extends Te{}class Eo extends yo{}class fl extends yo{}class q0 extends Te{}class pl extends q0{}class hl extends q0{static async from_pretrained(V,ve={}){return super.from_pretrained(V,{...ve,model_file_name:ve.model_file_name??"text_model"})}}class ml extends q0{static async from_pretrained(V,ve={}){return super.from_pretrained(V,{...ve,model_file_name:ve.model_file_name??"audio_model"})}}class Cl extends Te{}class vo extends Cl{async _call(V){return new L1(await super._call(V))}}class J0 extends Te{}class y1 extends J0{}class bl extends J0{}class Il extends J0{}class Mo extends Te{}class wl extends Mo{}class kl extends Mo{}class Go extends Te{}class xl extends Go{}class Bl extends Go{async _call(V){return new Nt(await super._call(V))}}class Do extends Te{}class yl extends Do{}class E1 extends Do{}class Qo extends Te{forward_params=["input_ids","attention_mask","encoder_outputs","decoder_input_ids","decoder_attention_mask","past_key_values"];_apply_and_filter_by_delay_pattern_mask(V){const[ve,eA]=V.dims,sA=this.config.decoder.num_codebooks,gA=eA-sA;let FA=0;for(let _A=0;_A0&&ft<=gA&&(V.data[FA++]=V.data[_A])}const XA=Math.floor(ve/sA),WA=FA/(XA*sA);return new R.Tensor(V.type,V.data.slice(0,FA),[XA,sA,WA])}prepare_inputs_for_generation(V,ve,eA){let sA=structuredClone(V);for(let gA=0;gA=FA&&(sA[gA][FA]=BigInt(this.config.decoder.pad_token_id));return eA.guidance_scale!==null&&eA.guidance_scale>1&&(sA=sA.concat(sA)),super.prepare_inputs_for_generation(sA,ve,eA)}async generate(V){const ve=await super.generate(V),eA=this._apply_and_filter_by_delay_pattern_mask(ve).unsqueeze_(0),{audio_values:sA}=await Ge(this.sessions.encodec_decode,{audio_codes:eA});return sA}}class To extends Te{}class El extends To{}class vl extends To{async _call(V){return new Nt(await super._call(V))}}class Po extends Te{}class Ml extends Po{}class Gl extends Po{async _call(V){return new Nt(await super._call(V))}}class _0 extends Te{}class Dl extends _0{}class Ql extends _0{async _call(V){return new Nt(await super._call(V))}}class zo extends Te{}class Tl extends zo{}class Pl extends zo{async _call(V){return new Nt(await super._call(V))}}class zl extends Te{}class Fl extends zl{}class Sl extends Te{}class Nl extends Sl{forward_params=["input_ids","pixel_values","images_seq_mask","images_emb_mask","attention_mask","position_ids","past_key_values"];constructor(...V){super(...V),this._generation_mode="text"}async forward(V){const ve=this._generation_mode??"text";let eA;if(ve!=="text"&&V.past_key_values){const WA=this.sessions.gen_img_embeds,_A=(0,j.pick)({image_ids:V.input_ids},WA.inputNames);eA=await Ge(WA,_A)}else{const WA=this.sessions.prepare_inputs_embeds,_A=(0,j.pick)(V,WA.inputNames);eA=await Ge(WA,_A)}const sA={...V,...eA},gA=await aA(this,sA),FA=this.sessions[ve==="text"?"lm_head":"gen_head"];if(!FA)throw new Error(`Unable to find "${FA}" generation head`);const XA=await Ge(FA,(0,j.pick)(gA,FA.inputNames));return{...eA,...gA,...XA}}async generate(V){return this._generation_mode="text",super.generate(V)}async generate_images(V){this._generation_mode="image";const ve=(V.inputs??V[this.main_input_name]).dims[1],eA=(await super.generate(V)).slice(null,[ve,null]),sA=this.sessions.image_decode,{decoded_image:gA}=await Ge(sA,{generated_tokens:eA}),FA=gA.add_(1).mul_(127.5).clamp_(0,255).to("uint8"),XA=[];for(const WA of FA){const _A=ae.RawImage.fromTensor(WA);XA.push(_A)}return XA}}class Ol extends pA{constructor({char_logits:V,bpe_logits:ve,wp_logits:eA}){super(),this.char_logits=V,this.bpe_logits=ve,this.wp_logits=eA}get logits(){return[this.char_logits,this.bpe_logits,this.wp_logits]}}class Ll extends Te{}class Yl extends Ll{async _call(V){return new Ol(await super._call(V))}}class Fo extends Te{}class Hl extends Fo{}class S0 extends Fo{}class So extends Te{}class No extends So{}class Rl extends So{}class br{static MODEL_CLASS_MAPPINGS=null;static BASE_IF_FAIL=!1;static async from_pretrained(V,{progress_callback:ve=null,config:eA=null,cache_dir:sA=null,local_files_only:gA=!1,revision:FA="main",model_file_name:XA=null,subfolder:WA="onnx",device:_A=null,dtype:ft=null,use_external_data_format:ut=null,session_options:zt={}}={}){const Qt={progress_callback:ve,config:eA,cache_dir:sA,local_files_only:gA,revision:FA,model_file_name:XA,subfolder:WA,device:_A,dtype:ft,use_external_data_format:ut,session_options:zt};if(Qt.config=await k.AutoConfig.from_pretrained(V,Qt),!this.MODEL_CLASS_MAPPINGS)throw new Error("`MODEL_CLASS_MAPPINGS` not implemented for this type of `AutoClass`: "+this.name);for(const or of this.MODEL_CLASS_MAPPINGS){const Bt=or.get(Qt.config.model_type);if(Bt)return await Bt[1].from_pretrained(V,Qt)}if(this.BASE_IF_FAIL)return console.warn(`Unknown model class "${Qt.config.model_type}", attempting to construct from base class.`),await Te.from_pretrained(V,Qt);throw Error(`Unsupported model type: ${Qt.config.model_type}`)}}const v1=new Map([["bert",["BertModel",YA]],["modernbert",["ModernBertModel",Se]],["nomic_bert",["NomicBertModel",QA]],["roformer",["RoFormerModel",Mt]],["electra",["ElectraModel",ZA]],["esm",["EsmModel",Ss]],["convbert",["ConvBertModel",tr]],["camembert",["CamembertModel",zs]],["deberta",["DebertaModel",va]],["deberta-v2",["DebertaV2Model",gs]],["mpnet",["MPNetModel",An]],["albert",["AlbertModel",fA]],["distilbert",["DistilBertModel",ts]],["roberta",["RobertaModel",Sn]],["xlm",["XLMModel",s0]],["xlm-roberta",["XLMRobertaModel",l0]],["clap",["ClapModel",pl]],["clip",["CLIPModel",RA]],["clipseg",["CLIPSegModel",HA]],["chinese_clip",["ChineseCLIPModel",d0]],["siglip",["SiglipModel",kn]],["jina_clip",["JinaCLIPModel",sn]],["mobilebert",["MobileBertModel",Ls]],["squeezebert",["SqueezeBertModel",_]],["wav2vec2",["Wav2Vec2Model",S2]],["wav2vec2-bert",["Wav2Vec2BertModel",q2]],["unispeech",["UniSpeechModel",V2]],["unispeech-sat",["UniSpeechSatModel",U2]],["hubert",["HubertModel",$2]],["wavlm",["WavLMModel",tl]],["audio-spectrogram-transformer",["ASTModel",di]],["vits",["VitsModel",vo]],["pyannote",["PyAnnoteModel",Y2]],["wespeaker-resnet",["WeSpeakerResNetModel",W2]],["detr",["DetrModel",We]],["rt_detr",["RTDetrModel",et]],["table-transformer",["TableTransformerModel",Zt]],["vit",["ViTModel",M0]],["ijepa",["IJepaModel",Us]],["pvt",["PvtModel",gn]],["vit_msn",["ViTMSNModel",Ks]],["vit_mae",["ViTMAEModel",ji]],["groupvit",["GroupViTModel",ct]],["fastvit",["FastViTModel",t]],["mobilevit",["MobileViTModel",o]],["mobilevitv2",["MobileViTV2Model",m]],["owlvit",["OwlViTModel",v]],["owlv2",["Owlv2Model",Z]],["beit",["BeitModel",he]],["deit",["DeiTModel",Er]],["hiera",["HieraModel",Wr]],["convnext",["ConvNextModel",I2]],["convnextv2",["ConvNextV2Model",k2]],["dinov2",["Dinov2Model",B2]],["dinov2_with_registers",["Dinov2WithRegistersModel",$n]],["resnet",["ResNetModel",ia]],["swin",["SwinModel",is]],["swin2sr",["Swin2SRModel",Dn]],["donut-swin",["DonutSwinModel",b2]],["yolos",["YolosModel",v2]],["dpt",["DPTModel",Qn]],["glpn",["GLPNModel",h2]],["hifigan",["SpeechT5HifiGan",wo]],["efficientnet",["EfficientNetModel",xl]],["decision_transformer",["DecisionTransformerModel",Fl]],["patchtst",["PatchTSTForPrediction",Hl]],["patchtsmixer",["PatchTSMixerForPrediction",No]],["mobilenet_v1",["MobileNetV1Model",El]],["mobilenet_v2",["MobileNetV2Model",Ml]],["mobilenet_v3",["MobileNetV3Model",Dl]],["mobilenet_v4",["MobileNetV4Model",Tl]],["maskformer",["MaskFormerModel",f2]],["mgp-str",["MgpstrForSceneTextRecognition",Yl]],["style_text_to_speech_2",["StyleTextToSpeech2Model",ol]]]),M1=new Map([["t5",["T5Model",Yt]],["longt5",["LongT5Model",sr]],["mt5",["MT5Model",KA]],["bart",["BartModel",fa]],["mbart",["MBartModel",uA]],["marian",["MarianModel",P2]],["whisper",["WhisperModel",c0]],["m2m_100",["M2M100Model",F2]],["blenderbot",["BlenderbotModel",Pr]],["blenderbot-small",["BlenderbotSmallModel",xr]]]),G1=new Map([["bloom",["BloomModel",Hi]],["jais",["JAISModel",p0]],["gpt2",["GPT2Model",xn]],["gptj",["GPTJModel",Ht]],["gpt_bigcode",["GPTBigCodeModel",w0]],["gpt_neo",["GPTNeoModel",m0]],["gpt_neox",["GPTNeoXModel",b0]],["codegen",["CodeGenModel",ta]],["llama",["LlamaModel",Ei]],["exaone",["ExaoneModel",Mi]],["olmo",["OlmoModel",x0]],["olmo2",["Olmo2Model",Cs]],["mobilellm",["MobileLLMModel",jn]],["granite",["GraniteModel",Pi]],["cohere",["CohereModel",za]],["gemma",["GemmaModel",_a]],["gemma2",["Gemma2Model",Si]],["helium",["HeliumModel",yr]],["glm",["GlmModel",ra]],["openelm",["OpenELMModel",B0]],["qwen2",["Qwen2Model",vn]],["phi",["PhiModel",fr]],["phi3",["Phi3Model",cn]],["mpt",["MptModel",$a]],["opt",["OPTModel",Zr]],["mistral",["MistralModel",ko]],["starcoder2",["Starcoder2Model",Bo]],["falcon",["FalconModel",Eo]],["stablelm",["StableLmModel",wl]]]),Oo=new Map([["speecht5",["SpeechT5ForSpeechToText",bo]],["whisper",["WhisperForConditionalGeneration",u0]],["moonshine",["MoonshineForConditionalGeneration",Ta]]]),Wl=new Map([["speecht5",["SpeechT5ForTextToSpeech",Io]]]),Vl=new Map([["vits",["VitsModel",vo]],["musicgen",["MusicgenForConditionalGeneration",Qo]]]),Lo=new Map([["bert",["BertForSequenceClassification",OA]],["modernbert",["ModernBertForSequenceClassification",dA]],["roformer",["RoFormerForSequenceClassification",gt]],["electra",["ElectraForSequenceClassification",PA]],["esm",["EsmForSequenceClassification",bn]],["convbert",["ConvBertForSequenceClassification",bt]],["camembert",["CamembertForSequenceClassification",ks]],["deberta",["DebertaForSequenceClassification",Hr]],["deberta-v2",["DebertaV2ForSequenceClassification",_s]],["mpnet",["MPNetForSequenceClassification",Ys]],["albert",["AlbertForSequenceClassification",NA]],["distilbert",["DistilBertForSequenceClassification",ds]],["roberta",["RobertaForSequenceClassification",Nn]],["xlm",["XLMForSequenceClassification",i0]],["xlm-roberta",["XLMRobertaForSequenceClassification",Qa]],["bart",["BartForSequenceClassification",rt]],["mbart",["MBartForSequenceClassification",pa]],["mobilebert",["MobileBertForSequenceClassification",wt]],["squeezebert",["SqueezeBertForSequenceClassification",Oe]]]),jl=new Map([["bert",["BertForTokenClassification",ue]],["modernbert",["ModernBertForTokenClassification",oA]],["roformer",["RoFormerForTokenClassification",Ct]],["electra",["ElectraForTokenClassification",qt]],["esm",["EsmForTokenClassification",Os]],["convbert",["ConvBertForTokenClassification",Ka]],["camembert",["CamembertForTokenClassification",Fs]],["deberta",["DebertaForTokenClassification",us]],["deberta-v2",["DebertaV2ForTokenClassification",$s]],["mpnet",["MPNetForTokenClassification",rs]],["distilbert",["DistilBertForTokenClassification",en]],["roberta",["RobertaForTokenClassification",Gt]],["xlm",["XLMForTokenClassification",o0]],["xlm-roberta",["XLMRobertaForTokenClassification",Kr]]]),Yo=new Map([["t5",["T5ForConditionalGeneration",Vt]],["longt5",["LongT5ForConditionalGeneration",jt]],["mt5",["MT5ForConditionalGeneration",Jt]],["bart",["BartForConditionalGeneration",nr]],["mbart",["MBartForConditionalGeneration",JA]],["marian",["MarianMTModel",z2]],["m2m_100",["M2M100ForConditionalGeneration",P0]],["blenderbot",["BlenderbotForConditionalGeneration",Cr]],["blenderbot-small",["BlenderbotSmallForConditionalGeneration",tn]]]),Ho=new Map([["bloom",["BloomForCausalLM",v0]],["gpt2",["GPT2LMHeadModel",fs]],["jais",["JAISLMHeadModel",h0]],["gptj",["GPTJForCausalLM",yi]],["gpt_bigcode",["GPTBigCodeForCausalLM",Aa]],["gpt_neo",["GPTNeoForCausalLM",C0]],["gpt_neox",["GPTNeoXForCausalLM",I0]],["codegen",["CodeGenForCausalLM",hs]],["llama",["LlamaForCausalLM",k0]],["exaone",["ExaoneForCausalLM",Gi]],["olmo",["OlmoForCausalLM",Qi]],["olmo2",["Olmo2ForCausalLM",Kn]],["mobilellm",["MobileLLMForCausalLM",ns]],["granite",["GraniteForCausalLM",Zn]],["cohere",["CohereForCausalLM",En]],["gemma",["GemmaForCausalLM",Fi]],["gemma2",["Gemma2ForCausalLM",ln]],["helium",["HeliumForCausalLM",Bn]],["glm",["GlmForCausalLM",on]],["openelm",["OpenELMForCausalLM",y0]],["qwen2",["Qwen2ForCausalLM",ha]],["phi",["PhiForCausalLM",Li]],["phi3",["Phi3ForCausalLM",E0]],["mpt",["MptForCausalLM",Ri]],["opt",["OPTForCausalLM",ar]],["mbart",["MBartForCausalLM",Nr]],["mistral",["MistralForCausalLM",gl]],["starcoder2",["Starcoder2ForCausalLM",dl]],["falcon",["FalconForCausalLM",fl]],["trocr",["TrOCRForCausalLM",ul]],["stablelm",["StableLmForCausalLM",kl]],["phi3_v",["Phi3VForCausalLM",DA]]]),D1=new Map([["multi_modality",["MultiModalityCausalLM",Nl]]]),Ul=new Map([["bert",["BertForMaskedLM",J]],["modernbert",["ModernBertForMaskedLM",qe]],["roformer",["RoFormerForMaskedLM",Tt]],["electra",["ElectraForMaskedLM",$A]],["esm",["EsmForMaskedLM",Ns]],["convbert",["ConvBertForMaskedLM",da]],["camembert",["CamembertForMaskedLM",ws]],["deberta",["DebertaForMaskedLM",Tr]],["deberta-v2",["DebertaV2ForMaskedLM",mn]],["mpnet",["MPNetForMaskedLM",Es]],["albert",["AlbertForMaskedLM",VA]],["distilbert",["DistilBertForMaskedLM",xs]],["roberta",["RobertaForMaskedLM",Ma]],["xlm",["XLMWithLMHeadModel",n0]],["xlm-roberta",["XLMRobertaForMaskedLM",On]],["mobilebert",["MobileBertForMaskedLM",ys]],["squeezebert",["SqueezeBertForMaskedLM",Be]]]),Kl=new Map([["bert",["BertForQuestionAnswering",$]],["roformer",["RoFormerForQuestionAnswering",$t]],["electra",["ElectraForQuestionAnswering",cs]],["convbert",["ConvBertForQuestionAnswering",Oa]],["camembert",["CamembertForQuestionAnswering",$r]],["deberta",["DebertaForQuestionAnswering",Kt]],["deberta-v2",["DebertaV2ForQuestionAnswering",Cn]],["mpnet",["MPNetForQuestionAnswering",Hs]],["albert",["AlbertForQuestionAnswering",He]],["distilbert",["DistilBertForQuestionAnswering",qa]],["roberta",["RobertaForQuestionAnswering",ea]],["xlm",["XLMForQuestionAnswering",rn]],["xlm-roberta",["XLMRobertaForQuestionAnswering",qA]],["mobilebert",["MobileBertForQuestionAnswering",Pt]],["squeezebert",["SqueezeBertForQuestionAnswering",Ve]]]),Ro=new Map([["vision-encoder-decoder",["VisionEncoderDecoderModel",rr]],["idefics3",["Idefics3ForConditionalGeneration",bi]]]),Q1=new Map([["llava",["LlavaForConditionalGeneration",wn]],["llava_onevision",["LlavaOnevisionForConditionalGeneration",ka]],["moondream1",["Moondream1ForConditionalGeneration",Ws]],["florence2",["Florence2ForConditionalGeneration",hi]],["qwen2-vl",["Qwen2VLForConditionalGeneration",qn]],["idefics3",["Idefics3ForConditionalGeneration",bi]],["paligemma",["PaliGemmaForConditionalGeneration",Vs]]]),T1=new Map([["vision-encoder-decoder",["VisionEncoderDecoderModel",rr]]]),Zl=new Map([["vit",["ViTForImageClassification",Ds]],["ijepa",["IJepaForImageClassification",Wi]],["pvt",["PvtForImageClassification",Gn]],["vit_msn",["ViTMSNForImageClassification",D0]],["fastvit",["FastViTForImageClassification",r]],["mobilevit",["MobileViTForImageClassification",c]],["mobilevitv2",["MobileViTV2ForImageClassification",p]],["beit",["BeitForImageClassification",ye]],["deit",["DeiTForImageClassification",vr]],["hiera",["HieraForImageClassification",na]],["convnext",["ConvNextForImageClassification",w2]],["convnextv2",["ConvNextV2ForImageClassification",x2]],["dinov2",["Dinov2ForImageClassification",Zs]],["dinov2_with_registers",["Dinov2WithRegistersForImageClassification",ei]],["resnet",["ResNetForImageClassification",Ba]],["swin",["SwinForImageClassification",os]],["segformer",["SegformerForImageClassification",bl]],["efficientnet",["EfficientNetForImageClassification",Bl]],["mobilenet_v1",["MobileNetV1ForImageClassification",vl]],["mobilenet_v2",["MobileNetV2ForImageClassification",Gl]],["mobilenet_v3",["MobileNetV3ForImageClassification",Ql]],["mobilenet_v4",["MobileNetV4ForImageClassification",Pl]]]),Xl=new Map([["detr",["DetrForObjectDetection",Ke]],["rt_detr",["RTDetrForObjectDetection",at]],["table-transformer",["TableTransformerForObjectDetection",er]],["yolos",["YolosForObjectDetection",M2]]]),ql=new Map([["owlvit",["OwlViTForObjectDetection",T]],["owlv2",["Owlv2ForObjectDetection",ee]],["grounding-dino",["GroundingDinoForObjectDetection",E2]]]),Jl=new Map([["detr",["DetrForSegmentation",rA]],["clipseg",["CLIPSegForImageSegmentation",Ja]]]),_l=new Map([["segformer",["SegformerForSemanticSegmentation",Il]],["sapiens",["SapiensForSemanticSegmentation",l2]]]),$l=new Map([["detr",["DetrForSegmentation",rA]],["maskformer",["MaskFormerForInstanceSegmentation",p2]]]),Wo=new Map([["sam",["SamModel",Q2]]]),e1=new Map([["wav2vec2",["Wav2Vec2ForCTC",N2]],["wav2vec2-bert",["Wav2Vec2BertForCTC",J2]],["unispeech",["UniSpeechForCTC",Co]],["unispeech-sat",["UniSpeechSatForCTC",K2]],["wavlm",["WavLMForCTC",rl]],["hubert",["HubertForCTC",el]]]),Vo=new Map([["wav2vec2",["Wav2Vec2ForSequenceClassification",O2]],["wav2vec2-bert",["Wav2Vec2BertForSequenceClassification",_2]],["unispeech",["UniSpeechForSequenceClassification",j2]],["unispeech-sat",["UniSpeechSatForSequenceClassification",Z2]],["wavlm",["WavLMForSequenceClassification",al]],["hubert",["HubertForSequenceClassification",Al]],["audio-spectrogram-transformer",["ASTForAudioClassification",Ln]]]),jo=new Map([["wavlm",["WavLMForXVector",sl]]]),Uo=new Map([["unispeech-sat",["UniSpeechSatForAudioFrameClassification",X2]],["wavlm",["WavLMForAudioFrameClassification",nl]],["wav2vec2",["Wav2Vec2ForAudioFrameClassification",L2]],["pyannote",["PyAnnoteForAudioFrameClassification",H2]]]),A1=new Map([["vitmatte",["VitMatteForImageMatting",s]]]),P1=new Map([["patchtst",["PatchTSTForPrediction",S0]],["patchtsmixer",["PatchTSMixerForPrediction",Rl]]]),Ko=new Map([["swin2sr",["Swin2SRForImageSuperResolution",fn]]]),t1=new Map([["dpt",["DPTForDepthEstimation",Ui]],["depth_anything",["DepthAnythingForDepthEstimation",T0]],["glpn",["GLPNForDepthEstimation",m2]],["sapiens",["SapiensForDepthEstimation",c2]],["depth_pro",["DepthProForDepthEstimation",d2]]]),r1=new Map([["sapiens",["SapiensForNormalEstimation",u2]]]),z1=new Map([["vitpose",["VitPoseForPoseEstimation",G0]]]),Zo=new Map([["clip",["CLIPVisionModelWithProjection",Pa]],["siglip",["SiglipVisionModel",zr]],["jina_clip",["JinaCLIPVisionModel",Hn]]]),ti=[[v1,u],[M1,b],[G1,M],[Lo,u],[jl,u],[Yo,e],[Oo,e],[Ho,M],[D1,Re],[Ul,u],[Kl,u],[Ro,l],[Q1,D],[Zl,u],[Jl,u],[$l,u],[_l,u],[A1,u],[P1,u],[Ko,u],[t1,u],[r1,u],[z1,u],[Xl,u],[ql,u],[Wo,ge],[e1,u],[Vo,u],[Wl,e],[Vl,u],[jo,u],[Uo,u],[Zo,u]];for(const[U,V]of ti)for(const[ve,eA]of U.values())Ye.set(ve,V),AA.set(eA,ve),Je.set(ve,eA);const a1=[["MusicgenForConditionalGeneration",Qo,P],["Phi3VForCausalLM",DA,Ne],["CLIPTextModelWithProjection",Yn,u],["SiglipTextModel",ki,u],["JinaCLIPTextModel",f0,u],["ClapTextModelWithProjection",hl,u],["ClapAudioModelWithProjection",ml,u]];for(const[U,V,ve]of a1)Ye.set(U,ve),AA.set(V,U),Je.set(U,V);class nc extends br{static MODEL_CLASS_MAPPINGS=ti.map(V=>V[0]);static BASE_IF_FAIL=!0}class ic extends br{static MODEL_CLASS_MAPPINGS=[Lo]}class Dt extends br{static MODEL_CLASS_MAPPINGS=[jl]}class F1 extends br{static MODEL_CLASS_MAPPINGS=[Yo]}class Pn extends br{static MODEL_CLASS_MAPPINGS=[Oo]}class S1 extends br{static MODEL_CLASS_MAPPINGS=[Wl]}class s1 extends br{static MODEL_CLASS_MAPPINGS=[Vl]}class oc extends br{static MODEL_CLASS_MAPPINGS=[Ho]}class qr extends br{static MODEL_CLASS_MAPPINGS=[Ul]}class St extends br{static MODEL_CLASS_MAPPINGS=[Kl]}class Rt extends br{static MODEL_CLASS_MAPPINGS=[Ro]}class ri extends br{static MODEL_CLASS_MAPPINGS=[Zl]}class lc extends br{static MODEL_CLASS_MAPPINGS=[Jl]}class n1 extends br{static MODEL_CLASS_MAPPINGS=[_l]}class cc extends br{static MODEL_CLASS_MAPPINGS=[$l]}class i1 extends br{static MODEL_CLASS_MAPPINGS=[Xl]}class uc extends br{static MODEL_CLASS_MAPPINGS=[ql]}class gc extends br{static MODEL_CLASS_MAPPINGS=[Wo]}class o1 extends br{static MODEL_CLASS_MAPPINGS=[e1]}class dc extends br{static MODEL_CLASS_MAPPINGS=[Vo]}class fc extends br{static MODEL_CLASS_MAPPINGS=[jo]}class pc extends br{static MODEL_CLASS_MAPPINGS=[Uo]}class Zi extends br{static MODEL_CLASS_MAPPINGS=[T1]}class l1 extends br{static MODEL_CLASS_MAPPINGS=[A1]}class hc extends br{static MODEL_CLASS_MAPPINGS=[Ko]}class c1 extends br{static MODEL_CLASS_MAPPINGS=[t1]}class u1 extends br{static MODEL_CLASS_MAPPINGS=[r1]}class mc extends br{static MODEL_CLASS_MAPPINGS=[z1]}class Cc extends br{static MODEL_CLASS_MAPPINGS=[Zo]}class bc extends pA{constructor({logits:V,past_key_values:ve,encoder_outputs:eA,decoder_attentions:sA=null,cross_attentions:gA=null}){super(),this.logits=V,this.past_key_values=ve,this.encoder_outputs=eA,this.decoder_attentions=sA,this.cross_attentions=gA}}class Nt extends pA{constructor({logits:V,...ve}){super(),this.logits=V;const eA=Object.values(ve);eA.length>0&&(this.attentions=eA)}}class N1 extends pA{constructor({logits:V,embeddings:ve}){super(),this.logits=V,this.embeddings=ve}}class Da extends pA{constructor({logits:V}){super(),this.logits=V}}class Fa extends pA{constructor({logits:V}){super(),this.logits=V}}class ja extends pA{constructor({start_logits:V,end_logits:ve}){super(),this.start_logits=V,this.end_logits=ve}}class Xi extends pA{constructor({logits:V}){super(),this.logits=V}}class Ic extends pA{constructor({logits:V,past_key_values:ve}){super(),this.logits=V,this.past_key_values=ve}}class O1 extends pA{constructor({alphas:V}){super(),this.alphas=V}}class L1 extends pA{constructor({waveform:V,spectrogram:ve}){super(),this.waveform=V,this.spectrogram=ve}}},"./src/models/audio_spectrogram_transformer/feature_extraction_audio_spectrogram_transformer.js":(x,C,d)=>{d.r(C),d.d(C,{ASTFeatureExtractor:()=>K});var k=d("./src/base/feature_extraction_utils.js");d("./src/utils/tensor.js");var z=d("./src/utils/audio.js");class K extends k.FeatureExtractor{constructor(j){super(j);const q=this.config.sampling_rate,W=(0,z.mel_filter_bank)(256,this.config.num_mel_bins,20,Math.floor(q/2),q,null,"kaldi",!0);for(let S=0;S{d.r(C),d.d(C,{AutoFeatureExtractor:()=>L});var k=d("./src/utils/constants.js"),z=d("./src/utils/hub.js");d("./src/base/feature_extraction_utils.js");var K=d("./src/models/feature_extractors.js");class L{static async from_pretrained(q,W={}){const S=await(0,z.getModelJSON)(q,k.FEATURE_EXTRACTOR_NAME,!0,W),X=S.feature_extractor_type,R=K[X];if(!R)throw new Error(`Unknown feature_extractor_type: '${X}'. Please report this at ${k.GITHUB_ISSUE_URL}.`);return new R(S)}}},"./src/models/auto/image_processing_auto.js":(x,C,d)=>{d.r(C),d.d(C,{AutoImageProcessor:()=>j});var k=d("./src/utils/constants.js"),z=d("./src/utils/hub.js"),K=d("./src/base/image_processors_utils.js"),L=d("./src/models/image_processors.js");class j{static async from_pretrained(W,S={}){const X=await(0,z.getModelJSON)(W,k.IMAGE_PROCESSOR_NAME,!0,S),R=X.image_processor_type??X.feature_extractor_type;let ae=L[R];return ae||(R!==void 0&&console.warn(`Image processor type '${R}' not found, assuming base ImageProcessor. Please report this at ${k.GITHUB_ISSUE_URL}.`),ae=K.ImageProcessor),new ae(X)}}},"./src/models/auto/processing_auto.js":(x,C,d)=>{d.r(C),d.d(C,{AutoProcessor:()=>W});var k=d("./src/utils/constants.js"),z=d("./src/utils/hub.js"),K=d("./src/base/processing_utils.js"),L=d("./src/models/processors.js"),j=d("./src/models/image_processors.js"),q=d("./src/models/feature_extractors.js");class W{static async from_pretrained(X,R={}){const ae=await(0,z.getModelJSON)(X,k.IMAGE_PROCESSOR_NAME,!0,R),{image_processor_type:be,feature_extractor_type:xe,processor_class:Ee}=ae;if(Ee&&L[Ee])return L[Ee].from_pretrained(X,R);if(!be&&!xe)throw new Error("No `image_processor_type` or `feature_extractor_type` found in the config.");const se={};if(be){const ie=j[be];if(!ie)throw new Error(`Unknown image_processor_type: '${be}'.`);se.image_processor=new ie(ae)}if(xe){const ie=j[xe];if(ie)se.image_processor=new ie(ae);else{const we=q[xe];if(!we)throw new Error(`Unknown feature_extractor_type: '${xe}'.`);se.feature_extractor=new we(ae)}}return new K.Processor({},se)}}},"./src/models/beit/image_processing_beit.js":(x,C,d)=>{d.r(C),d.d(C,{BeitFeatureExtractor:()=>z});var k=d("./src/base/image_processors_utils.js");class z extends k.ImageProcessor{}},"./src/models/bit/image_processing_bit.js":(x,C,d)=>{d.r(C),d.d(C,{BitImageProcessor:()=>z});var k=d("./src/base/image_processors_utils.js");class z extends k.ImageProcessor{}},"./src/models/chinese_clip/image_processing_chinese_clip.js":(x,C,d)=>{d.r(C),d.d(C,{ChineseCLIPFeatureExtractor:()=>z});var k=d("./src/base/image_processors_utils.js");class z extends k.ImageProcessor{}},"./src/models/clap/feature_extraction_clap.js":(x,C,d)=>{d.r(C),d.d(C,{ClapFeatureExtractor:()=>K});var k=d("./src/base/feature_extraction_utils.js");d("./src/utils/tensor.js");var z=d("./src/utils/audio.js");class K extends k.FeatureExtractor{constructor(j){super(j),this.mel_filters=(0,z.mel_filter_bank)(this.config.nb_frequency_bins,this.config.feature_size,this.config.frequency_min,this.config.frequency_max,this.config.sampling_rate,null,"htk"),this.mel_filters_slaney=(0,z.mel_filter_bank)(this.config.nb_frequency_bins,this.config.feature_size,this.config.frequency_min,this.config.frequency_max,this.config.sampling_rate,"slaney","slaney"),this.window=(0,z.window_function)(this.config.fft_window_size,"hann")}async _get_input_mel(j,q,W,S){let X;const R=j.length-q;if(R>0){if(W!=="rand_trunc")throw new Error(`Truncation strategy "${W}" not implemented`);{const ae=Math.floor(Math.random()*(R+1));j=j.subarray(ae,ae+q),X=await this._extract_fbank_features(j,this.mel_filters_slaney,this.config.nb_max_samples)}}else{if(R<0){let ae=new Float64Array(q);if(ae.set(j),S==="repeat")for(let be=j.length;be{d.r(C),d.d(C,{CLIPFeatureExtractor:()=>K,CLIPImageProcessor:()=>z});var k=d("./src/base/image_processors_utils.js");class z extends k.ImageProcessor{}class K extends z{}},"./src/models/convnext/image_processing_convnext.js":(x,C,d)=>{d.r(C),d.d(C,{ConvNextFeatureExtractor:()=>K,ConvNextImageProcessor:()=>z});var k=d("./src/base/image_processors_utils.js");class z extends k.ImageProcessor{constructor(j){super(j),this.crop_pct=this.config.crop_pct??.875}async resize(j){const q=this.size?.shortest_edge;if(q===void 0)throw new Error("Size dictionary must contain 'shortest_edge' key.");if(q<384){const W=Math.floor(q/this.crop_pct),[S,X]=this.get_resize_output_image_size(j,{shortest_edge:W});j=await j.resize(S,X,{resample:this.resample}),j=await j.center_crop(q,q)}else j=await j.resize(q,q,{resample:this.resample});return j}}class K extends z{}},"./src/models/deit/image_processing_deit.js":(x,C,d)=>{d.r(C),d.d(C,{DeiTFeatureExtractor:()=>K,DeiTImageProcessor:()=>z});var k=d("./src/base/image_processors_utils.js");class z extends k.ImageProcessor{}class K extends z{}},"./src/models/detr/image_processing_detr.js":(x,C,d)=>{d.r(C),d.d(C,{DetrFeatureExtractor:()=>L,DetrImageProcessor:()=>K});var k=d("./src/base/image_processors_utils.js"),z=d("./src/utils/tensor.js");class K extends k.ImageProcessor{async _call(q){const W=await super._call(q),S=[W.pixel_values.dims[0],64,64],X=(0,z.full)(S,1n);return{...W,pixel_mask:X}}post_process_object_detection(...q){return(0,k.post_process_object_detection)(...q)}post_process_panoptic_segmentation(...q){return(0,k.post_process_panoptic_segmentation)(...q)}post_process_instance_segmentation(...q){return(0,k.post_process_instance_segmentation)(...q)}}class L extends K{}},"./src/models/donut/image_processing_donut.js":(x,C,d)=>{d.r(C),d.d(C,{DonutFeatureExtractor:()=>K,DonutImageProcessor:()=>z});var k=d("./src/base/image_processors_utils.js");class z extends k.ImageProcessor{pad_image(j,q,W,S={}){const[X,R,ae]=q;let be=this.image_mean;Array.isArray(this.image_mean)||(be=new Array(ae).fill(be));let xe=this.image_std;Array.isArray(xe)||(xe=new Array(ae).fill(be));const Ee=be.map((se,ie)=>-se/xe[ie]);return super.pad_image(j,q,W,{center:!0,constant_values:Ee,...S})}}class K extends z{}},"./src/models/dpt/image_processing_dpt.js":(x,C,d)=>{d.r(C),d.d(C,{DPTFeatureExtractor:()=>K,DPTImageProcessor:()=>z});var k=d("./src/base/image_processors_utils.js");class z extends k.ImageProcessor{}class K extends z{}},"./src/models/efficientnet/image_processing_efficientnet.js":(x,C,d)=>{d.r(C),d.d(C,{EfficientNetImageProcessor:()=>z});var k=d("./src/base/image_processors_utils.js");class z extends k.ImageProcessor{constructor(L){super(L),this.include_top=this.config.include_top??!0,this.include_top&&(this.image_std=this.image_std.map(j=>j*j))}}},"./src/models/feature_extractors.js":(x,C,d)=>{d.r(C),d.d(C,{ASTFeatureExtractor:()=>k.ASTFeatureExtractor,ClapFeatureExtractor:()=>z.ClapFeatureExtractor,ImageFeatureExtractor:()=>R.ImageProcessor,MoonshineFeatureExtractor:()=>K.MoonshineFeatureExtractor,PyAnnoteFeatureExtractor:()=>L.PyAnnoteFeatureExtractor,SeamlessM4TFeatureExtractor:()=>j.SeamlessM4TFeatureExtractor,SpeechT5FeatureExtractor:()=>q.SpeechT5FeatureExtractor,Wav2Vec2FeatureExtractor:()=>W.Wav2Vec2FeatureExtractor,WeSpeakerFeatureExtractor:()=>S.WeSpeakerFeatureExtractor,WhisperFeatureExtractor:()=>X.WhisperFeatureExtractor});var k=d("./src/models/audio_spectrogram_transformer/feature_extraction_audio_spectrogram_transformer.js"),z=d("./src/models/clap/feature_extraction_clap.js"),K=d("./src/models/moonshine/feature_extraction_moonshine.js"),L=d("./src/models/pyannote/feature_extraction_pyannote.js"),j=d("./src/models/seamless_m4t/feature_extraction_seamless_m4t.js"),q=d("./src/models/speecht5/feature_extraction_speecht5.js"),W=d("./src/models/wav2vec2/feature_extraction_wav2vec2.js"),S=d("./src/models/wespeaker/feature_extraction_wespeaker.js"),X=d("./src/models/whisper/feature_extraction_whisper.js"),R=d("./src/base/image_processors_utils.js")},"./src/models/florence2/processing_florence2.js":(x,C,d)=>{d.r(C),d.d(C,{Florence2Processor:()=>L});var k=d("./src/base/processing_utils.js"),z=d("./src/models/auto/image_processing_auto.js"),K=d("./src/tokenizers.js");class L extends k.Processor{static tokenizer_class=K.AutoTokenizer;static image_processor_class=z.AutoImageProcessor;constructor(q,W){super(q,W);const{tasks_answer_post_processing_type:S,task_prompts_without_inputs:X,task_prompts_with_input:R}=this.image_processor.config;this.tasks_answer_post_processing_type=new Map(Object.entries(S??{})),this.task_prompts_without_inputs=new Map(Object.entries(X??{})),this.task_prompts_with_input=new Map(Object.entries(R??{})),this.regexes={quad_boxes:/(.+?)/gm,bboxes:/([^<]+)?/gm},this.size_per_bin=1e3}construct_prompts(q){typeof q=="string"&&(q=[q]);const W=[];for(const S of q)if(this.task_prompts_without_inputs.has(S))W.push(this.task_prompts_without_inputs.get(S));else{for(const[X,R]of this.task_prompts_with_input)if(S.includes(X)){W.push(R.replaceAll("{input}",S).replaceAll(X,""));break}W.length!==q.length&&W.push(S)}return W}post_process_generation(q,W,S){const X=this.tasks_answer_post_processing_type.get(W)??"pure_text";let R;switch(q=q.replaceAll("","").replaceAll("",""),X){case"pure_text":R=q;break;case"description_with_bboxes":case"bboxes":case"phrase_grounding":case"ocr":const ae=X==="ocr"?"quad_boxes":"bboxes",be=q.matchAll(this.regexes[ae]),xe=[],Ee=[];for(const[se,ie,...we]of be)xe.push(ie?ie.trim():xe.at(-1)??""),Ee.push(we.map((u,b)=>(Number(u)+.5)/this.size_per_bin*S[b%2]));R={labels:xe,[ae]:Ee};break;default:throw new Error(`Task "${W}" (of type "${X}") not yet implemented.`)}return{[W]:R}}async _call(q,W=null,S={}){if(!q&&!W)throw new Error("Either text or images must be provided");return{...await this.image_processor(q,S),...W?this.tokenizer(W,S):{}}}}},"./src/models/glpn/image_processing_glpn.js":(x,C,d)=>{d.r(C),d.d(C,{GLPNFeatureExtractor:()=>z});var k=d("./src/base/image_processors_utils.js");class z extends k.ImageProcessor{}},"./src/models/grounding_dino/image_processing_grounding_dino.js":(x,C,d)=>{d.r(C),d.d(C,{GroundingDinoImageProcessor:()=>K});var k=d("./src/base/image_processors_utils.js"),z=d("./src/utils/tensor.js");class K extends k.ImageProcessor{async _call(j){const q=await super._call(j),W=q.pixel_values.dims,S=(0,z.ones)([W[0],W[2],W[3]]);return{...q,pixel_mask:S}}}},"./src/models/grounding_dino/processing_grounding_dino.js":(x,C,d)=>{d.r(C),d.d(C,{GroundingDinoProcessor:()=>q});var k=d("./src/base/processing_utils.js"),z=d("./src/models/auto/image_processing_auto.js"),K=d("./src/tokenizers.js"),L=d("./src/base/image_processors_utils.js");function j(W,S){const X=W.dims.at(-1)-1,R=W.tolist();R.fill(!1,0,1),R.fill(!1,X);const ae=S.tolist();return R.map((be,xe)=>be?xe:null).filter(be=>be!==null).map(be=>ae[be])}class q extends k.Processor{static tokenizer_class=K.AutoTokenizer;static image_processor_class=z.AutoImageProcessor;async _call(S,X,R={}){const ae=S?await this.image_processor(S,R):{};return{...X?this.tokenizer(X,R):{},...ae}}post_process_grounded_object_detection(S,X,{box_threshold:R=.25,text_threshold:ae=.25,target_sizes:be=null}={}){const{logits:xe,pred_boxes:Ee}=S,se=xe.dims[0];if(be!==null&&be.length!==se)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");const ie=xe.dims.at(1),we=xe.sigmoid(),u=we.max(-1).tolist(),b=Ee.tolist().map(l=>l.map(M=>(0,L.center_to_corners_format)(M))),e=[];for(let l=0;lNe.map((Ye,Je)=>Ye*M[(Je+1)%2])));const ge=u[l],D=[],P=[],Re=[];for(let Ne=0;Ne{d.r(C),d.d(C,{Idefics3ImageProcessor:()=>K});var k=d("./src/base/image_processors_utils.js"),z=d("./src/utils/tensor.js");class K extends k.ImageProcessor{constructor(j){super(j),this.do_image_splitting=j.do_image_splitting??!0,this.max_image_size=j.max_image_size}get_resize_for_vision_encoder(j,q){let[W,S]=j.dims.slice(-2);const X=S/W;return S>=W?(S=Math.ceil(S/q)*q,W=Math.floor(S/X),W=Math.ceil(W/q)*q):(W=Math.ceil(W/q)*q,S=Math.floor(W*X),S=Math.ceil(S/q)*q),{height:W,width:S}}async _call(j,{do_image_splitting:q=null,return_row_col_info:W=!1}={}){let S;if(Array.isArray(j)){if(j.length===0||!j[0])throw new Error("No images provided.");S=Array.isArray(j[0])?j:[j]}else S=[[j]];let X=[],R=[],ae=[];const be=[],xe=[];for(const l of S){let M=await Promise.all(l.map(P=>this.preprocess(P)));be.push(...M.map(P=>P.original_size)),xe.push(...M.map(P=>P.reshaped_input_size)),M.forEach(P=>P.pixel_values.unsqueeze_(0));const{longest_edge:ge}=this.max_image_size;let D;if(q??this.do_image_splitting){let P=new Array(M.length),Re=new Array(M.length);D=await Promise.all(M.map(async(Ne,Ye)=>{const Je=this.get_resize_for_vision_encoder(Ne.pixel_values,ge),AA=await(0,z.interpolate_4d)(Ne.pixel_values,{size:[Je.height,Je.width]}),{frames:xA,num_splits_h:GA,num_splits_w:Ge}=await this.split_image(AA,this.max_image_size);return P[Ye]=GA,Re[Ye]=Ge,(0,z.cat)(xA,0)})),R.push(P),ae.push(Re)}else{const P=[ge,ge];D=await Promise.all(M.map(Re=>(0,z.interpolate_4d)(Re.pixel_values,{size:P}))),R.push(new Array(M.length).fill(0)),ae.push(new Array(M.length).fill(0))}X.push((0,z.cat)(D,0))}const Ee=X.length,[se,ie,we,u]=X[0].dims;let b,e;if(Ee===1)b=X[0].unsqueeze_(0),e=(0,z.full)([Ee,se,we,u],!0);else{const l=Math.max(...X.map(D=>D.dims.at(0)));e=(0,z.full)([Ee,l,we,u],!0);const M=e.data,ge=l*we*u;for(let D=0;DW||ae>S){be=Math.ceil(R/W),xe=Math.ceil(ae/S);const Ee=Math.ceil(R/be),se=Math.ceil(ae/xe);for(let u=0;u{d.r(C),d.d(C,{Idefics3Processor:()=>q});var k=d("./src/base/processing_utils.js"),z=d("./src/models/auto/image_processing_auto.js"),K=d("./src/tokenizers.js");d("./src/utils/image.js");var L=d("./src/utils/core.js");function j(W,S,X,R,ae,be){return W===0&&S===0?function(xe,Ee,se,ie){return`${Ee}${ie}`+se.repeat(xe)+`${Ee}`}(X,R,ae,be):function(xe,Ee,se,ie,we,u){let b="";for(let e=0;e`+we.repeat(xe);b+=` +`}return b+=` +${ie}${u}`+we.repeat(xe)+`${ie}`,b}(X,W,S,R,ae,be)}class q extends k.Processor{static image_processor_class=z.AutoImageProcessor;static tokenizer_class=K.AutoTokenizer;static uses_processor_config=!0;fake_image_token="";image_token="";global_img_token="";async _call(S,X=null,R={}){let ae;R.return_row_col_info??=!0,X&&(ae=await this.image_processor(X,R)),Array.isArray(S)||(S=[S]);const be=ae.rows??[new Array(S.length).fill(0)],xe=ae.cols??[new Array(S.length).fill(0)],Ee=this.config.image_seq_len,se=[],ie=[];for(let we=0;wej(D,e[P],Ee,this.fake_image_token,this.image_token,this.global_img_token)),M=u.split(this.image_token);if(M.length===0)throw new Error("The image token should be present in the text.");let ge=M[0];for(let D=0;D{d.r(C),d.d(C,{BeitFeatureExtractor:()=>k.BeitFeatureExtractor,BitImageProcessor:()=>z.BitImageProcessor,CLIPFeatureExtractor:()=>L.CLIPFeatureExtractor,CLIPImageProcessor:()=>L.CLIPImageProcessor,ChineseCLIPFeatureExtractor:()=>K.ChineseCLIPFeatureExtractor,ConvNextFeatureExtractor:()=>j.ConvNextFeatureExtractor,ConvNextImageProcessor:()=>j.ConvNextImageProcessor,DPTFeatureExtractor:()=>X.DPTFeatureExtractor,DPTImageProcessor:()=>X.DPTImageProcessor,DeiTFeatureExtractor:()=>q.DeiTFeatureExtractor,DeiTImageProcessor:()=>q.DeiTImageProcessor,DetrFeatureExtractor:()=>W.DetrFeatureExtractor,DetrImageProcessor:()=>W.DetrImageProcessor,DonutFeatureExtractor:()=>S.DonutFeatureExtractor,DonutImageProcessor:()=>S.DonutImageProcessor,EfficientNetImageProcessor:()=>R.EfficientNetImageProcessor,GLPNFeatureExtractor:()=>ae.GLPNFeatureExtractor,GroundingDinoImageProcessor:()=>be.GroundingDinoImageProcessor,Idefics3ImageProcessor:()=>xe.Idefics3ImageProcessor,JinaCLIPImageProcessor:()=>se.JinaCLIPImageProcessor,LlavaOnevisionImageProcessor:()=>ie.LlavaOnevisionImageProcessor,Mask2FormerImageProcessor:()=>we.Mask2FormerImageProcessor,MaskFormerFeatureExtractor:()=>u.MaskFormerFeatureExtractor,MaskFormerImageProcessor:()=>u.MaskFormerImageProcessor,MobileNetV1FeatureExtractor:()=>b.MobileNetV1FeatureExtractor,MobileNetV1ImageProcessor:()=>b.MobileNetV1ImageProcessor,MobileNetV2FeatureExtractor:()=>e.MobileNetV2FeatureExtractor,MobileNetV2ImageProcessor:()=>e.MobileNetV2ImageProcessor,MobileNetV3FeatureExtractor:()=>l.MobileNetV3FeatureExtractor,MobileNetV3ImageProcessor:()=>l.MobileNetV3ImageProcessor,MobileNetV4FeatureExtractor:()=>M.MobileNetV4FeatureExtractor,MobileNetV4ImageProcessor:()=>M.MobileNetV4ImageProcessor,MobileViTFeatureExtractor:()=>ge.MobileViTFeatureExtractor,MobileViTImageProcessor:()=>ge.MobileViTImageProcessor,NougatImageProcessor:()=>D.NougatImageProcessor,OwlViTFeatureExtractor:()=>Re.OwlViTFeatureExtractor,OwlViTImageProcessor:()=>Re.OwlViTImageProcessor,Owlv2ImageProcessor:()=>P.Owlv2ImageProcessor,Phi3VImageProcessor:()=>Ne.Phi3VImageProcessor,PvtImageProcessor:()=>Ye.PvtImageProcessor,Qwen2VLImageProcessor:()=>Je.Qwen2VLImageProcessor,RTDetrImageProcessor:()=>AA.RTDetrImageProcessor,SamImageProcessor:()=>xA.SamImageProcessor,SegformerFeatureExtractor:()=>GA.SegformerFeatureExtractor,SegformerImageProcessor:()=>GA.SegformerImageProcessor,SiglipImageProcessor:()=>Ge.SiglipImageProcessor,Swin2SRImageProcessor:()=>Ie.Swin2SRImageProcessor,VLMImageProcessor:()=>Ee.VLMImageProcessor,ViTFeatureExtractor:()=>ze.ViTFeatureExtractor,ViTImageProcessor:()=>ze.ViTImageProcessor,VitMatteImageProcessor:()=>Ue.VitMatteImageProcessor,VitPoseImageProcessor:()=>Pe.VitPoseImageProcessor,YolosFeatureExtractor:()=>kA.YolosFeatureExtractor,YolosImageProcessor:()=>kA.YolosImageProcessor});var k=d("./src/models/beit/image_processing_beit.js"),z=d("./src/models/bit/image_processing_bit.js"),K=d("./src/models/chinese_clip/image_processing_chinese_clip.js"),L=d("./src/models/clip/image_processing_clip.js"),j=d("./src/models/convnext/image_processing_convnext.js"),q=d("./src/models/deit/image_processing_deit.js"),W=d("./src/models/detr/image_processing_detr.js"),S=d("./src/models/donut/image_processing_donut.js"),X=d("./src/models/dpt/image_processing_dpt.js"),R=d("./src/models/efficientnet/image_processing_efficientnet.js"),ae=d("./src/models/glpn/image_processing_glpn.js"),be=d("./src/models/grounding_dino/image_processing_grounding_dino.js"),xe=d("./src/models/idefics3/image_processing_idefics3.js"),Ee=d("./src/models/janus/image_processing_janus.js"),se=d("./src/models/jina_clip/image_processing_jina_clip.js"),ie=d("./src/models/llava_onevision/image_processing_llava_onevision.js"),we=d("./src/models/mask2former/image_processing_mask2former.js"),u=d("./src/models/maskformer/image_processing_maskformer.js"),b=d("./src/models/mobilenet_v1/image_processing_mobilenet_v1.js"),e=d("./src/models/mobilenet_v2/image_processing_mobilenet_v2.js"),l=d("./src/models/mobilenet_v3/image_processing_mobilenet_v3.js"),M=d("./src/models/mobilenet_v4/image_processing_mobilenet_v4.js"),ge=d("./src/models/mobilevit/image_processing_mobilevit.js"),D=d("./src/models/nougat/image_processing_nougat.js"),P=d("./src/models/owlv2/image_processing_owlv2.js"),Re=d("./src/models/owlvit/image_processing_owlvit.js"),Ne=d("./src/models/phi3_v/image_processing_phi3_v.js"),Ye=d("./src/models/pvt/image_processing_pvt.js"),Je=d("./src/models/qwen2_vl/image_processing_qwen2_vl.js"),AA=d("./src/models/rt_detr/image_processing_rt_detr.js"),xA=d("./src/models/sam/image_processing_sam.js"),GA=d("./src/models/segformer/image_processing_segformer.js"),Ge=d("./src/models/siglip/image_processing_siglip.js"),Ie=d("./src/models/swin2sr/image_processing_swin2sr.js"),ze=d("./src/models/vit/image_processing_vit.js"),Ue=d("./src/models/vitmatte/image_processing_vitmatte.js"),Pe=d("./src/models/vitpose/image_processing_vitpose.js"),kA=d("./src/models/yolos/image_processing_yolos.js")},"./src/models/janus/image_processing_janus.js":(x,C,d)=>{d.r(C),d.d(C,{VLMImageProcessor:()=>z});var k=d("./src/base/image_processors_utils.js");class z extends k.ImageProcessor{constructor(L){super({do_pad:!0,pad_size:{width:L.image_size,height:L.image_size},...L}),this.constant_values=this.config.background_color.map(j=>j*this.rescale_factor)}pad_image(L,j,q,W){return super.pad_image(L,j,q,{constant_values:this.constant_values,center:!0,...W})}}},"./src/models/janus/processing_janus.js":(x,C,d)=>{d.r(C),d.d(C,{VLChatProcessor:()=>W});var k=d("./src/base/processing_utils.js"),z=d("./src/models/auto/image_processing_auto.js"),K=d("./src/tokenizers.js"),L=d("./src/utils/core.js"),j=d("./src/utils/tensor.js"),q=d("./src/utils/image.js");class W extends k.Processor{static image_processor_class=z.AutoImageProcessor;static tokenizer_class=K.AutoTokenizer;static uses_processor_config=!0;constructor(X,R){super(X,R),this.image_tag=this.config.image_tag,this.image_start_tag=this.config.image_start_tag,this.image_end_tag=this.config.image_end_tag,this.num_image_tokens=this.config.num_image_tokens}async _call(X,{images:R=null,chat_template:ae="default"}={}){R?Array.isArray(R)||(R=[R]):R=await Promise.all(X.filter(ge=>ge.images).flatMap(ge=>ge.images).map(ge=>q.RawImage.read(ge)));const be=this.tokenizer,xe=ge=>be.encode(ge,{add_special_tokens:!1}),Ee=be.apply_chat_template(X,{tokenize:!1,add_generation_prompt:!0,chat_template:ae}).split(this.image_tag),se=Ee.length-1;if(R.length!==se)throw new Error(`Number of images provided (${R.length}) does not match number of "${this.image_tag}" image tags (${se})`);const[ie,we,u]=be.model.convert_tokens_to_ids([this.image_tag,this.image_start_tag,this.image_end_tag]);let b=xe(Ee[0]),e=new Array(b.length).fill(!1);for(let ge=1;ge0){const ge=await this.image_processor(R);return ge.pixel_values.unsqueeze_(0),{...M,...ge}}return M}}},"./src/models/jina_clip/image_processing_jina_clip.js":(x,C,d)=>{d.r(C),d.d(C,{JinaCLIPImageProcessor:()=>z});var k=d("./src/base/image_processors_utils.js");class z extends k.ImageProcessor{constructor(L){const{resize_mode:j,fill_color:q,interpolation:W,size:S,...X}=L;super({...X,size:j==="squash"?{width:S,height:S}:j==="shortest"?{shortest_edge:S}:{longest_edge:S},resample:W==="bicubic"?3:2,do_center_crop:!0,crop_size:S,do_normalize:!0})}}},"./src/models/jina_clip/processing_jina_clip.js":(x,C,d)=>{d.r(C),d.d(C,{JinaCLIPProcessor:()=>L});var k=d("./src/base/processing_utils.js"),z=d("./src/models/auto/image_processing_auto.js"),K=d("./src/tokenizers.js");class L extends k.Processor{static tokenizer_class=K.AutoTokenizer;static image_processor_class=z.AutoImageProcessor;async _call(q=null,W=null,S={}){if(!q&&!W)throw new Error("Either text or images must be provided");return{...q?this.tokenizer(q,S):{},...W?await this.image_processor(W,S):{}}}}},"./src/models/llava_onevision/image_processing_llava_onevision.js":(x,C,d)=>{d.r(C),d.d(C,{LlavaOnevisionImageProcessor:()=>z});var k=d("./src/base/image_processors_utils.js");class z extends k.ImageProcessor{}},"./src/models/mask2former/image_processing_mask2former.js":(x,C,d)=>{d.r(C),d.d(C,{Mask2FormerImageProcessor:()=>z});var k=d("./src/models/maskformer/image_processing_maskformer.js");class z extends k.MaskFormerImageProcessor{}},"./src/models/maskformer/image_processing_maskformer.js":(x,C,d)=>{d.r(C),d.d(C,{MaskFormerFeatureExtractor:()=>K,MaskFormerImageProcessor:()=>z});var k=d("./src/base/image_processors_utils.js");class z extends k.ImageProcessor{post_process_panoptic_segmentation(...j){return(0,k.post_process_panoptic_segmentation)(...j)}post_process_instance_segmentation(...j){return(0,k.post_process_instance_segmentation)(...j)}}class K extends z{}},"./src/models/mgp_str/processing_mgp_str.js":(x,C,d)=>{d.r(C),d.d(C,{MgpstrProcessor:()=>q});var k=d("./src/base/processing_utils.js"),z=d("./src/models/auto/image_processing_auto.js"),K=d("./src/tokenizers.js"),L=d("./src/utils/maths.js");const j={char:["char_decode",1],bpe:["bpe_decode",2],wp:["wp_decode",102]};class q extends k.Processor{static tokenizer_class=K.AutoTokenizer;static image_processor_class=z.AutoImageProcessor;get char_tokenizer(){return this.components.char_tokenizer}get bpe_tokenizer(){return this.components.bpe_tokenizer}get wp_tokenizer(){return this.components.wp_tokenizer}_decode_helper(S,X){if(!j.hasOwnProperty(X))throw new Error(`Format ${X} is not supported.`);const[R,ae]=j[X],be=this[R].bind(this),[xe,Ee]=S.dims,se=[],ie=[],we=S.tolist();for(let u=0;u0?l.reduce((ge,D)=>ge*D,1):0;ie.push(e),se.push(M)}return[be(ie),se]}char_decode(S){return this.char_tokenizer.batch_decode(S).map(X=>X.replaceAll(" ",""))}bpe_decode(S){return this.bpe_tokenizer.batch_decode(S)}wp_decode(S){return this.wp_tokenizer.batch_decode(S).map(X=>X.replaceAll(" ",""))}batch_decode([S,X,R]){const[ae,be]=this._decode_helper(S,"char"),[xe,Ee]=this._decode_helper(X,"bpe"),[se,ie]=this._decode_helper(R,"wp"),we=[],u=[];for(let b=0;b{d.r(C),d.d(C,{MobileNetV1FeatureExtractor:()=>K,MobileNetV1ImageProcessor:()=>z});var k=d("./src/base/image_processors_utils.js");class z extends k.ImageProcessor{}class K extends z{}},"./src/models/mobilenet_v2/image_processing_mobilenet_v2.js":(x,C,d)=>{d.r(C),d.d(C,{MobileNetV2FeatureExtractor:()=>K,MobileNetV2ImageProcessor:()=>z});var k=d("./src/base/image_processors_utils.js");class z extends k.ImageProcessor{}class K extends z{}},"./src/models/mobilenet_v3/image_processing_mobilenet_v3.js":(x,C,d)=>{d.r(C),d.d(C,{MobileNetV3FeatureExtractor:()=>K,MobileNetV3ImageProcessor:()=>z});var k=d("./src/base/image_processors_utils.js");class z extends k.ImageProcessor{}class K extends z{}},"./src/models/mobilenet_v4/image_processing_mobilenet_v4.js":(x,C,d)=>{d.r(C),d.d(C,{MobileNetV4FeatureExtractor:()=>K,MobileNetV4ImageProcessor:()=>z});var k=d("./src/base/image_processors_utils.js");class z extends k.ImageProcessor{}class K extends z{}},"./src/models/mobilevit/image_processing_mobilevit.js":(x,C,d)=>{d.r(C),d.d(C,{MobileViTFeatureExtractor:()=>K,MobileViTImageProcessor:()=>z});var k=d("./src/base/image_processors_utils.js");class z extends k.ImageProcessor{}class K extends z{}},"./src/models/moonshine/feature_extraction_moonshine.js":(x,C,d)=>{d.r(C),d.d(C,{MoonshineFeatureExtractor:()=>K});var k=d("./src/base/feature_extraction_utils.js"),z=d("./src/utils/tensor.js");class K extends k.FeatureExtractor{async _call(j){(0,k.validate_audio_inputs)(j,"MoonshineFeatureExtractor"),j instanceof Float64Array&&(j=new Float32Array(j));const q=[1,j.length];return{input_values:new z.Tensor("float32",j,q)}}}},"./src/models/moonshine/processing_moonshine.js":(x,C,d)=>{d.r(C),d.d(C,{MoonshineProcessor:()=>L});var k=d("./src/models/auto/feature_extraction_auto.js"),z=d("./src/tokenizers.js"),K=d("./src/base/processing_utils.js");class L extends K.Processor{static tokenizer_class=z.AutoTokenizer;static feature_extractor_class=k.AutoFeatureExtractor;async _call(q){return await this.feature_extractor(q)}}},"./src/models/nougat/image_processing_nougat.js":(x,C,d)=>{d.r(C),d.d(C,{NougatImageProcessor:()=>z});var k=d("./src/models/donut/image_processing_donut.js");class z extends k.DonutImageProcessor{}},"./src/models/owlv2/image_processing_owlv2.js":(x,C,d)=>{d.r(C),d.d(C,{Owlv2ImageProcessor:()=>z});var k=d("./src/models/owlvit/image_processing_owlvit.js");class z extends k.OwlViTImageProcessor{}},"./src/models/owlvit/image_processing_owlvit.js":(x,C,d)=>{d.r(C),d.d(C,{OwlViTFeatureExtractor:()=>K,OwlViTImageProcessor:()=>z});var k=d("./src/base/image_processors_utils.js");class z extends k.ImageProcessor{post_process_object_detection(...j){return(0,k.post_process_object_detection)(...j)}}class K extends z{}},"./src/models/owlvit/processing_owlvit.js":(x,C,d)=>{d.r(C),d.d(C,{OwlViTProcessor:()=>L});var k=d("./src/base/processing_utils.js"),z=d("./src/models/auto/image_processing_auto.js"),K=d("./src/tokenizers.js");class L extends k.Processor{static tokenizer_class=K.AutoTokenizer;static image_processor_class=z.AutoImageProcessor}},"./src/models/paligemma/processing_paligemma.js":(x,C,d)=>{d.r(C),d.d(C,{PaliGemmaProcessor:()=>j});var k=d("./src/base/processing_utils.js"),z=d("./src/models/auto/image_processing_auto.js"),K=d("./src/tokenizers.js");const L="";class j extends k.Processor{static tokenizer_class=K.AutoTokenizer;static image_processor_class=z.AutoImageProcessor;static uses_processor_config=!1;async _call(W,S=null,X={}){S||(console.warn("You are using PaliGemma without a text prefix. It will perform as a picture-captioning model."),S=""),Array.isArray(W)||(W=[W]),Array.isArray(S)||(S=[S]);const R=this.tokenizer.bos_token,ae=this.image_processor.config.image_seq_length;let be;S.some(Ee=>Ee.includes(L))?be=S.map(Ee=>{const se=Ee.replaceAll(L,L.repeat(ae)),ie=se.lastIndexOf(L),we=ie===-1?0:ie+7;return se.slice(0,we)+R+se.slice(we)+` +`}):(console.warn("You are passing both `text` and `images` to `PaliGemmaProcessor`. The processor expects special image tokens in the text, as many tokens as there are images per each text. It is recommended to add `` tokens in the very beginning of your text. For this call, we will infer how many images each text has and add special tokens."),be=S.map(Ee=>function(se,ie,we,u,b){return`${u.repeat(we*b)}${ie}${se} +`}(Ee,R,ae,L,W.length)));const xe=this.tokenizer(be,X);return{...await this.image_processor(W,X),...xe}}}},"./src/models/phi3_v/image_processing_phi3_v.js":(x,C,d)=>{d.r(C),d.d(C,{Phi3VImageProcessor:()=>S});var k=d("./src/base/image_processors_utils.js"),z=d("./src/utils/tensor.js");const K=336,L=[2,3],{ceil:j,floor:q,sqrt:W}=Math;class S extends k.ImageProcessor{constructor(R){super({...R,do_normalize:!0,do_pad:!0,pad_size:"custom",do_convert_rgb:!0,do_resize:!0}),this._num_crops=R.num_crops}calc_num_image_tokens_from_image_size(R,ae){const{num_img_tokens:be}=this.config;return q((q(ae/K)*q(R/K)+1)*be+1+(q(ae/K)+1)*W(be))}get_resize_output_image_size(R,ae){const be=this._num_crops,[xe,Ee]=R.size;let se=xe/Ee,ie=1;for(;ie*Math.ceil(ie/se)<=be;)ie+=1;ie-=1;const we=Math.floor(336*ie);return[we,Math.floor(we/se)]}pad_image(R,ae,be,xe={}){const[Ee,se]=ae,ie=K*j(Ee/K),we=K*j(se/K),u=[1,1,1].map((b,e)=>(b-this.image_mean[e])/this.image_std[e]);return super.pad_image(R,ae,{width:we,height:ie},{center:!0,constant_values:u,...xe})}async _call(R,{num_crops:ae=null}={}){if(this._num_crops=ae??=this.config.num_crops,ae<4||W(ae)%1!=0)throw new Error("num_crops must be a square number >= 4");Array.isArray(R)||(R=[R]);const be=R.length,xe=await Promise.all(R.map(b=>this.preprocess(b))),Ee=xe.map(b=>b.original_size),se=xe.map(b=>b.reshaped_input_size),ie=[];for(const{pixel_values:b}of xe){b.unsqueeze_(0);const[e,l]=b.dims.slice(-2),M=await(0,z.interpolate_4d)(b,{size:[K,K],mode:"bicubic"});if(ae>0){const ge=[],D=W(ae),P=q(l/D),Re=q(e/D);for(let Ye=0;Yeb.map(e=>K*j(e/K)));return{pixel_values:we,original_sizes:Ee,reshaped_input_sizes:se,image_sizes:new z.Tensor("int64",u.flat(),[be,2]),num_img_tokens:u.map(([b,e])=>this.calc_num_image_tokens_from_image_size(e,b))}}}},"./src/models/phi3_v/processing_phi3_v.js":(x,C,d)=>{d.r(C),d.d(C,{Phi3VProcessor:()=>q});var k=d("./src/base/processing_utils.js"),z=d("./src/models/auto/image_processing_auto.js"),K=d("./src/tokenizers.js");d("./src/utils/image.js");const L="<|image|>",j=/<\|image_\d+\|>/g;class q extends k.Processor{static image_processor_class=z.AutoImageProcessor;static tokenizer_class=K.AutoTokenizer;async _call(S,X=null,{padding:R=!0,truncation:ae=!0,num_crops:be=null}={}){let xe,Ee;if(Array.isArray(S)||(S=[S]),X){Ee=await this.image_processor(X,{num_crops:be});const{num_img_tokens:se}=Ee,ie=S.map((u,b)=>u.split(j).join(L.repeat(se[b])));xe=this.tokenizer(ie,{padding:R,truncation:ae});const we=this.tokenizer.model.convert_tokens_to_ids([L])[0];xe.input_ids.map_(u=>u==we?-u:u)}else xe=this.tokenizer(S);return{...xe,...Ee}}}},"./src/models/processors.js":(x,C,d)=>{d.r(C),d.d(C,{Florence2Processor:()=>k.Florence2Processor,GroundingDinoProcessor:()=>z.GroundingDinoProcessor,Idefics3Processor:()=>K.Idefics3Processor,JinaCLIPProcessor:()=>j.JinaCLIPProcessor,MgpstrProcessor:()=>q.MgpstrProcessor,MoonshineProcessor:()=>W.MoonshineProcessor,OwlViTProcessor:()=>S.OwlViTProcessor,PaliGemmaProcessor:()=>R.PaliGemmaProcessor,Phi3VProcessor:()=>X.Phi3VProcessor,PyAnnoteProcessor:()=>ae.PyAnnoteProcessor,Qwen2VLProcessor:()=>be.Qwen2VLProcessor,SamProcessor:()=>xe.SamProcessor,SpeechT5Processor:()=>Ee.SpeechT5Processor,VLChatProcessor:()=>L.VLChatProcessor,Wav2Vec2Processor:()=>se.Wav2Vec2Processor,Wav2Vec2ProcessorWithLM:()=>ie.Wav2Vec2ProcessorWithLM,WhisperProcessor:()=>we.WhisperProcessor});var k=d("./src/models/florence2/processing_florence2.js"),z=d("./src/models/grounding_dino/processing_grounding_dino.js"),K=d("./src/models/idefics3/processing_idefics3.js"),L=d("./src/models/janus/processing_janus.js"),j=d("./src/models/jina_clip/processing_jina_clip.js"),q=d("./src/models/mgp_str/processing_mgp_str.js"),W=d("./src/models/moonshine/processing_moonshine.js"),S=d("./src/models/owlvit/processing_owlvit.js"),X=d("./src/models/phi3_v/processing_phi3_v.js"),R=d("./src/models/paligemma/processing_paligemma.js"),ae=d("./src/models/pyannote/processing_pyannote.js"),be=d("./src/models/qwen2_vl/processing_qwen2_vl.js"),xe=d("./src/models/sam/processing_sam.js"),Ee=d("./src/models/speecht5/processing_speecht5.js"),se=d("./src/models/wav2vec2/processing_wav2vec2.js"),ie=d("./src/models/wav2vec2_with_lm/processing_wav2vec2_with_lm.js"),we=d("./src/models/whisper/processing_whisper.js")},"./src/models/pvt/image_processing_pvt.js":(x,C,d)=>{d.r(C),d.d(C,{PvtImageProcessor:()=>z});var k=d("./src/base/image_processors_utils.js");class z extends k.ImageProcessor{}},"./src/models/pyannote/feature_extraction_pyannote.js":(x,C,d)=>{d.r(C),d.d(C,{PyAnnoteFeatureExtractor:()=>L});var k=d("./src/base/feature_extraction_utils.js"),z=d("./src/utils/tensor.js"),K=d("./src/utils/maths.js");class L extends k.FeatureExtractor{async _call(q){(0,k.validate_audio_inputs)(q,"PyAnnoteFeatureExtractor"),q instanceof Float64Array&&(q=new Float32Array(q));const W=[1,1,q.length];return{input_values:new z.Tensor("float32",q,W)}}samples_to_frames(q){return(q-this.config.offset)/this.config.step}post_process_speaker_diarization(q,W){const S=W/this.samples_to_frames(W)/this.config.sampling_rate,X=[];for(const R of q.tolist()){const ae=[];let be=-1;for(let xe=0;xe({id:xe,start:Ee*S,end:se*S,confidence:ie/(se-Ee)})))}return X}}},"./src/models/pyannote/processing_pyannote.js":(x,C,d)=>{d.r(C),d.d(C,{PyAnnoteProcessor:()=>K});var k=d("./src/base/processing_utils.js"),z=d("./src/models/pyannote/feature_extraction_pyannote.js");class K extends k.Processor{static feature_extractor_class=z.PyAnnoteFeatureExtractor;async _call(j){return await this.feature_extractor(j)}post_process_speaker_diarization(...j){return this.feature_extractor.post_process_speaker_diarization(...j)}get sampling_rate(){return this.feature_extractor.config.sampling_rate}}},"./src/models/qwen2_vl/image_processing_qwen2_vl.js":(x,C,d)=>{d.r(C),d.d(C,{Qwen2VLImageProcessor:()=>K});var k=d("./src/base/image_processors_utils.js"),z=d("./src/utils/tensor.js");class K extends k.ImageProcessor{async _call(j,...q){const{pixel_values:W,original_sizes:S,reshaped_input_sizes:X}=await super._call(j,...q);let R=W;const{temporal_patch_size:ae,merge_size:be,patch_size:xe}=this.config;R.dims[0]===1&&(R=(0,z.cat)(Array.from({length:ae},()=>R),0));const Ee=R.dims[0]/ae,se=R.dims[1],ie=Math.floor(R.dims[2]/xe),we=Math.floor(R.dims[3]/xe);return{pixel_values:R.view(Ee,ae,se,Math.floor(ie/be),be,xe,Math.floor(we/be),be,xe).permute(0,3,6,4,7,2,1,5,8).view(Ee*ie*we,se*ae*xe*xe),image_grid_thw:new z.Tensor("int64",[Ee,ie,we],[1,3]),original_sizes:S,reshaped_input_sizes:X}}}},"./src/models/qwen2_vl/processing_qwen2_vl.js":(x,C,d)=>{d.r(C),d.d(C,{Qwen2VLProcessor:()=>L});var k=d("./src/base/processing_utils.js"),z=d("./src/models/auto/image_processing_auto.js"),K=d("./src/tokenizers.js");d("./src/utils/image.js");class L extends k.Processor{static image_processor_class=z.AutoImageProcessor;static tokenizer_class=K.AutoTokenizer;async _call(q,W=null,...S){let X,R;if(Array.isArray(q)||(q=[q]),W&&(X=await this.image_processor(W),R=X.image_grid_thw),R){let ae=this.image_processor.config.merge_size**2,be=0;const xe=R.tolist();q=q.map(Ee=>{for(;Ee.includes("<|image_pad|>");){const se=Number(xe[be++].reduce((ie,we)=>ie*we,1n));Ee=Ee.replace("<|image_pad|>","<|placeholder|>".repeat(Math.floor(se/ae)))}return Ee.replaceAll("<|placeholder|>","<|image_pad|>")})}return{...this.tokenizer(q),...X}}}},"./src/models/rt_detr/image_processing_rt_detr.js":(x,C,d)=>{d.r(C),d.d(C,{RTDetrImageProcessor:()=>z});var k=d("./src/base/image_processors_utils.js");class z extends k.ImageProcessor{post_process_object_detection(...L){return(0,k.post_process_object_detection)(...L)}}},"./src/models/sam/image_processing_sam.js":(x,C,d)=>{d.r(C),d.d(C,{SamImageProcessor:()=>L});var k=d("./src/base/image_processors_utils.js"),z=d("./src/utils/core.js"),K=d("./src/utils/tensor.js");class L extends k.ImageProcessor{reshape_input_points(q,W,S,X=!1){q=structuredClone(q);let R=(0,z.calculateDimensions)(q);if(R.length===3)X||(R=[1,...R]),q=[q];else if(R.length!==4)throw Error("The input_points must be a 4D tensor of shape `batch_size`, `point_batch_size`, `nb_points_per_image`, `2`.");for(let ae=0;aeX!==W.dims[R]))throw Error(`The first ${S.length} dimensions of 'input_points' and 'input_labels' must be the same.`);return new K.Tensor("int64",q.flat(1/0).map(BigInt),S)}async _call(q,{input_points:W=null,input_labels:S=null,input_boxes:X=null}={}){const R=await super._call(q);if(W&&(R.input_points=this.reshape_input_points(W,R.original_sizes,R.reshaped_input_sizes)),S){if(!R.input_points)throw Error("`input_points` must be provided if `input_labels` are provided.");R.input_labels=this.add_input_labels(S,R.input_points)}return X&&(R.input_boxes=this.reshape_input_points(X,R.original_sizes,R.reshaped_input_sizes,!0)),R}async post_process_masks(q,W,S,{mask_threshold:X=0,binarize:R=!0,pad_size:ae=null}={}){const be=[],xe=[(ae=ae??this.pad_size).height,ae.width];for(let Ee=0;EeX&&(b[e]=1);we=new K.Tensor("bool",b,we.dims)}be.push(we)}return be}generate_crop_boxes(q,W,{crop_n_layers:S=0,overlap_ratio:X=.3413333333333333,points_per_crop:R=32,crop_n_points_downscale_factor:ae=1}={}){}}},"./src/models/sam/processing_sam.js":(x,C,d)=>{d.r(C),d.d(C,{SamProcessor:()=>K});var k=d("./src/base/processing_utils.js"),z=d("./src/models/auto/image_processing_auto.js");class K extends k.Processor{static image_processor_class=z.AutoImageProcessor;async _call(...j){return await this.image_processor(...j)}post_process_masks(...j){return this.image_processor.post_process_masks(...j)}reshape_input_points(...j){return this.image_processor.reshape_input_points(...j)}}},"./src/models/seamless_m4t/feature_extraction_seamless_m4t.js":(x,C,d)=>{d.r(C),d.d(C,{SeamlessM4TFeatureExtractor:()=>L});var k=d("./src/base/feature_extraction_utils.js"),z=d("./src/utils/tensor.js"),K=d("./src/utils/audio.js");class L extends k.FeatureExtractor{constructor(q){super(q);const W=this.config.sampling_rate,S=(0,K.mel_filter_bank)(256,this.config.num_mel_bins,20,Math.floor(W/2),W,null,"kaldi",!0);for(let X=0;X32768*S),(0,K.spectrogram)(q,this.window,400,160,{fft_length:512,power:2,center:!1,preemphasis:.97,mel_filters:this.mel_filters,log_mel:"log",mel_floor:1192092955078125e-22,remove_dc_offset:!0,max_num_frames:W,transpose:!0})}async _call(q,{padding:W=!0,pad_to_multiple_of:S=2,do_normalize_per_mel_bins:X=!0,return_attention_mask:R=!0}={}){(0,k.validate_audio_inputs)(q,"SeamlessM4TFeatureExtractor");let ae,be=await this._extract_fbank_features(q,this.config.max_length);if(X){const[u,b]=be.dims,e=be.data;for(let l=0;l0){const M=new Float32Array(b*(u+l));M.set(e),M.fill(this.config.padding_value,e.length);const ge=u+l;be=new z.Tensor(be.type,M,[ge,b]),R&&(ae=new z.Tensor("int64",new BigInt64Array(ge),[1,ge]),ae.data.fill(1n,0,u))}}const[xe,Ee]=be.dims,se=this.config.stride;if(xe%se!==0)throw new Error(`The number of frames (${xe}) must be a multiple of the stride (${se}).`);const ie=be.view(1,Math.floor(xe/se),Ee*se),we={input_features:ie};if(R){const u=ie.dims[1],b=new BigInt64Array(u);if(ae){const e=ae.data;for(let l=1,M=0;l{d.r(C),d.d(C,{SegformerFeatureExtractor:()=>K,SegformerImageProcessor:()=>z});var k=d("./src/base/image_processors_utils.js");class z extends k.ImageProcessor{post_process_semantic_segmentation(...j){return(0,k.post_process_semantic_segmentation)(...j)}}class K extends z{}},"./src/models/siglip/image_processing_siglip.js":(x,C,d)=>{d.r(C),d.d(C,{SiglipImageProcessor:()=>z});var k=d("./src/base/image_processors_utils.js");class z extends k.ImageProcessor{}},"./src/models/speecht5/feature_extraction_speecht5.js":(x,C,d)=>{d.r(C),d.d(C,{SpeechT5FeatureExtractor:()=>z});var k=d("./src/base/feature_extraction_utils.js");class z extends k.FeatureExtractor{}},"./src/models/speecht5/processing_speecht5.js":(x,C,d)=>{d.r(C),d.d(C,{SpeechT5Processor:()=>L});var k=d("./src/base/processing_utils.js"),z=d("./src/tokenizers.js"),K=d("./src/models/auto/feature_extraction_auto.js");class L extends k.Processor{static tokenizer_class=z.AutoTokenizer;static feature_extractor_class=K.AutoFeatureExtractor;async _call(q){return await this.feature_extractor(q)}}},"./src/models/swin2sr/image_processing_swin2sr.js":(x,C,d)=>{d.r(C),d.d(C,{Swin2SRImageProcessor:()=>z});var k=d("./src/base/image_processors_utils.js");class z extends k.ImageProcessor{pad_image(L,j,q,W={}){const[S,X,R]=j;return super.pad_image(L,j,{width:X+(q-X%q)%q,height:S+(q-S%q)%q},{mode:"symmetric",center:!1,constant_values:-1,...W})}}},"./src/models/vit/image_processing_vit.js":(x,C,d)=>{d.r(C),d.d(C,{ViTFeatureExtractor:()=>K,ViTImageProcessor:()=>z});var k=d("./src/base/image_processors_utils.js");class z extends k.ImageProcessor{}class K extends z{}},"./src/models/vitmatte/image_processing_vitmatte.js":(x,C,d)=>{d.r(C),d.d(C,{VitMatteImageProcessor:()=>K});var k=d("./src/base/image_processors_utils.js"),z=d("./src/utils/tensor.js");class K extends k.ImageProcessor{async _call(j,q){Array.isArray(j)||(j=[j]),Array.isArray(q)||(q=[q]);const W=await Promise.all(j.map(R=>this.preprocess(R))),S=await Promise.all(q.map(R=>this.preprocess(R,{do_normalize:!1,do_convert_rgb:!1,do_convert_grayscale:!0})));return{pixel_values:(0,z.stack)(W.map((R,ae)=>(0,z.cat)([R.pixel_values,S[ae].pixel_values],0)),0),original_sizes:W.map(R=>R.original_size),reshaped_input_sizes:W.map(R=>R.reshaped_input_size)}}}},"./src/models/vitpose/image_processing_vitpose.js":(x,C,d)=>{d.r(C),d.d(C,{VitPoseImageProcessor:()=>z});var k=d("./src/base/image_processors_utils.js");class z extends k.ImageProcessor{post_process_pose_estimation(L,j,{threshold:q=null}={}){const W=L.tolist(),[S,X,R,ae]=L.dims,be=[];for(let xe=0;xe{d.r(C),d.d(C,{Wav2Vec2FeatureExtractor:()=>K});var k=d("./src/base/feature_extraction_utils.js"),z=d("./src/utils/tensor.js");class K extends k.FeatureExtractor{_zero_mean_unit_var_norm(j){const q=j.reduce((X,R)=>X+R,0),W=q/j.length,S=j.reduce((X,R)=>X+(R-W)**2,0)/j.length;return j.map(X=>(X-W)/Math.sqrt(S+1e-7))}async _call(j){(0,k.validate_audio_inputs)(j,"Wav2Vec2FeatureExtractor"),j instanceof Float64Array&&(j=new Float32Array(j));let q=j;this.config.do_normalize&&(q=this._zero_mean_unit_var_norm(q));const W=[1,q.length];return{input_values:new z.Tensor("float32",q,W),attention_mask:new z.Tensor("int64",new BigInt64Array(q.length).fill(1n),W)}}}},"./src/models/wav2vec2/processing_wav2vec2.js":(x,C,d)=>{d.r(C),d.d(C,{Wav2Vec2Processor:()=>L});var k=d("./src/tokenizers.js"),z=d("./src/models/auto/feature_extraction_auto.js"),K=d("./src/base/processing_utils.js");class L extends K.Processor{static tokenizer_class=k.AutoTokenizer;static feature_extractor_class=z.AutoFeatureExtractor;async _call(q){return await this.feature_extractor(q)}}},"./src/models/wav2vec2_with_lm/processing_wav2vec2_with_lm.js":(x,C,d)=>{d.r(C),d.d(C,{Wav2Vec2ProcessorWithLM:()=>L});var k=d("./src/tokenizers.js"),z=d("./src/models/auto/feature_extraction_auto.js"),K=d("./src/base/processing_utils.js");class L extends K.Processor{static tokenizer_class=k.AutoTokenizer;static feature_extractor_class=z.AutoFeatureExtractor;async _call(q){return await this.feature_extractor(q)}}},"./src/models/wespeaker/feature_extraction_wespeaker.js":(x,C,d)=>{d.r(C),d.d(C,{WeSpeakerFeatureExtractor:()=>K});var k=d("./src/base/feature_extraction_utils.js");d("./src/utils/tensor.js");var z=d("./src/utils/audio.js");class K extends k.FeatureExtractor{constructor(j){super(j);const q=this.config.sampling_rate,W=(0,z.mel_filter_bank)(256,this.config.num_mel_bins,20,Math.floor(q/2),q,null,"kaldi",!0);for(let S=0;S32768*q),(0,z.spectrogram)(j,this.window,400,160,{fft_length:512,power:2,center:!1,preemphasis:.97,mel_filters:this.mel_filters,log_mel:"log",mel_floor:1192092955078125e-22,remove_dc_offset:!0,transpose:!0,min_num_frames:this.min_num_frames})}async _call(j){(0,k.validate_audio_inputs)(j,"WeSpeakerFeatureExtractor");const q=(await this._extract_fbank_features(j)).unsqueeze_(0);if(this.config.fbank_centering_span===null){const W=q.mean(1).data,S=q.data,[X,R,ae]=q.dims;for(let be=0;be{d.r(C),d.d(C,{WHISPER_LANGUAGE_MAPPING:()=>z,WHISPER_TO_LANGUAGE_CODE_MAPPING:()=>K,whisper_language_to_code:()=>L});const k=[["en","english"],["zh","chinese"],["de","german"],["es","spanish"],["ru","russian"],["ko","korean"],["fr","french"],["ja","japanese"],["pt","portuguese"],["tr","turkish"],["pl","polish"],["ca","catalan"],["nl","dutch"],["ar","arabic"],["sv","swedish"],["it","italian"],["id","indonesian"],["hi","hindi"],["fi","finnish"],["vi","vietnamese"],["he","hebrew"],["uk","ukrainian"],["el","greek"],["ms","malay"],["cs","czech"],["ro","romanian"],["da","danish"],["hu","hungarian"],["ta","tamil"],["no","norwegian"],["th","thai"],["ur","urdu"],["hr","croatian"],["bg","bulgarian"],["lt","lithuanian"],["la","latin"],["mi","maori"],["ml","malayalam"],["cy","welsh"],["sk","slovak"],["te","telugu"],["fa","persian"],["lv","latvian"],["bn","bengali"],["sr","serbian"],["az","azerbaijani"],["sl","slovenian"],["kn","kannada"],["et","estonian"],["mk","macedonian"],["br","breton"],["eu","basque"],["is","icelandic"],["hy","armenian"],["ne","nepali"],["mn","mongolian"],["bs","bosnian"],["kk","kazakh"],["sq","albanian"],["sw","swahili"],["gl","galician"],["mr","marathi"],["pa","punjabi"],["si","sinhala"],["km","khmer"],["sn","shona"],["yo","yoruba"],["so","somali"],["af","afrikaans"],["oc","occitan"],["ka","georgian"],["be","belarusian"],["tg","tajik"],["sd","sindhi"],["gu","gujarati"],["am","amharic"],["yi","yiddish"],["lo","lao"],["uz","uzbek"],["fo","faroese"],["ht","haitian creole"],["ps","pashto"],["tk","turkmen"],["nn","nynorsk"],["mt","maltese"],["sa","sanskrit"],["lb","luxembourgish"],["my","myanmar"],["bo","tibetan"],["tl","tagalog"],["mg","malagasy"],["as","assamese"],["tt","tatar"],["haw","hawaiian"],["ln","lingala"],["ha","hausa"],["ba","bashkir"],["jw","javanese"],["su","sundanese"]],z=new Map(k),K=new Map([...k.map(([j,q])=>[q,j]),["burmese","my"],["valencian","ca"],["flemish","nl"],["haitian","ht"],["letzeburgesch","lb"],["pushto","ps"],["panjabi","pa"],["moldavian","ro"],["moldovan","ro"],["sinhalese","si"],["castilian","es"]]);function L(j){j=j.toLowerCase();let q=K.get(j);if(q===void 0){if(!z.has(j)){const W=j.length===2?z.keys():z.values();throw new Error(`Language "${j}" is not supported. Must be one of: ${JSON.stringify(W)}`)}q=j}return q}},"./src/models/whisper/feature_extraction_whisper.js":(x,C,d)=>{d.r(C),d.d(C,{WhisperFeatureExtractor:()=>L});var k=d("./src/base/feature_extraction_utils.js");d("./src/utils/tensor.js");var z=d("./src/utils/audio.js"),K=d("./src/utils/maths.js");class L extends k.FeatureExtractor{constructor(q){super(q),this.config.mel_filters??=(0,z.mel_filter_bank)(Math.floor(1+this.config.n_fft/2),this.config.feature_size,0,8e3,this.config.sampling_rate,"slaney","slaney"),this.window=(0,z.window_function)(this.config.n_fft,"hann")}async _extract_fbank_features(q){const W=await(0,z.spectrogram)(q,this.window,this.config.n_fft,this.config.hop_length,{power:2,mel_filters:this.config.mel_filters,log_mel:"log10",max_num_frames:this.config.nb_max_frames}),S=W.data,X=(0,K.max)(S)[0];for(let R=0;Rthis.config.n_samples?(console.warn("Attempting to extract features for audio longer than 30 seconds. If using a pipeline to extract transcript from a long audio clip, remember to specify `chunk_length_s` and/or `stride_length_s`."),W=q.slice(0,this.config.n_samples)):(W=new Float32Array(this.config.n_samples),W.set(q)),{input_features:(await this._extract_fbank_features(W)).unsqueeze_(0)}}}},"./src/models/whisper/generation_whisper.js":(x,C,d)=>{d.r(C),d.d(C,{WhisperGenerationConfig:()=>z});var k=d("./src/generation/configuration_utils.js");class z extends k.GenerationConfig{return_timestamps=null;return_token_timestamps=null;num_frames=null;alignment_heads=null;task=null;language=null;no_timestamps_token_id=null;prompt_ids=null;is_multilingual=null;lang_to_id=null;task_to_id=null;max_initial_timestamp_index=1}},"./src/models/whisper/processing_whisper.js":(x,C,d)=>{d.r(C),d.d(C,{WhisperProcessor:()=>L});var k=d("./src/models/auto/feature_extraction_auto.js"),z=d("./src/tokenizers.js"),K=d("./src/base/processing_utils.js");class L extends K.Processor{static tokenizer_class=z.AutoTokenizer;static feature_extractor_class=k.AutoFeatureExtractor;async _call(q){return await this.feature_extractor(q)}}},"./src/models/yolos/image_processing_yolos.js":(x,C,d)=>{d.r(C),d.d(C,{YolosFeatureExtractor:()=>K,YolosImageProcessor:()=>z});var k=d("./src/base/image_processors_utils.js");class z extends k.ImageProcessor{post_process_object_detection(...j){return(0,k.post_process_object_detection)(...j)}}class K extends z{}},"./src/ops/registry.js":(x,C,d)=>{d.r(C),d.d(C,{TensorOpRegistry:()=>q});var k=d("./src/backends/onnx.js"),z=d("./src/utils/tensor.js"),K=d("./src/env.js");const L=K.apis.IS_BROWSER_ENV||K.apis.IS_WEBWORKER_ENV,j=async(W,S,X)=>{const R=await(0,k.createInferenceSession)(new Uint8Array(W),S);let ae=Promise.resolve();return async be=>{const xe=(0,k.isONNXProxy)(),Ee=Object.fromEntries(Object.entries(be).map(([ie,we])=>[ie,(xe?we.clone():we).ort_tensor])),se=await(ae=L?ae.then(()=>R.run(Ee)):R.run(Ee));return Array.isArray(X)?X.map(ie=>new z.Tensor(se[ie])):new z.Tensor(se[X])}};class q{static session_options={};static get nearest_interpolate_4d(){return this._nearest_interpolate_4d||(this._nearest_interpolate_4d=j([8,10,18,0,58,129,1,10,41,10,1,120,10,0,10,0,10,1,115,18,1,121,34,6,82,101,115,105,122,101,42,18,10,4,109,111,100,101,34,7,110,101,97,114,101,115,116,160,1,3,18,1,114,90,31,10,1,120,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,90,15,10,1,115,18,10,10,8,8,7,18,4,10,2,8,4,98,31,10,1,121,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,66,2,16,21],this.session_options,"y")),this._nearest_interpolate_4d}static get bilinear_interpolate_4d(){return this._bilinear_interpolate_4d||(this._bilinear_interpolate_4d=j([8,9,18,0,58,128,1,10,40,10,1,120,10,0,10,0,10,1,115,18,1,121,34,6,82,101,115,105,122,101,42,17,10,4,109,111,100,101,34,6,108,105,110,101,97,114,160,1,3,18,1,114,90,31,10,1,120,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,90,15,10,1,115,18,10,10,8,8,7,18,4,10,2,8,4,98,31,10,1,121,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,66,2,16,20],this.session_options,"y")),this._bilinear_interpolate_4d}static get bicubic_interpolate_4d(){return this._bicubic_interpolate_4d||(this._bicubic_interpolate_4d=j([8,9,18,0,58,127,10,39,10,1,120,10,0,10,0,10,1,115,18,1,121,34,6,82,101,115,105,122,101,42,16,10,4,109,111,100,101,34,5,99,117,98,105,99,160,1,3,18,1,114,90,31,10,1,120,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,90,15,10,1,115,18,10,10,8,8,7,18,4,10,2,8,4,98,31,10,1,121,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,66,2,16,20],this.session_options,"y")),this._bicubic_interpolate_4d}static get matmul(){return this._matmul||(this._matmul=j([8,9,18,0,58,55,10,17,10,1,97,10,1,98,18,1,99,34,6,77,97,116,77,117,108,18,1,114,90,9,10,1,97,18,4,10,2,8,1,90,9,10,1,98,18,4,10,2,8,1,98,9,10,1,99,18,4,10,2,8,1,66,2,16,20],this.session_options,"c")),this._matmul}static get stft(){return this._stft||(this._stft=j([8,7,18,0,58,148,1,10,38,10,1,115,10,1,106,10,1,119,10,1,108,18,1,111,34,4,83,84,70,84,42,15,10,8,111,110,101,115,105,100,101,100,24,1,160,1,2,18,1,115,90,26,10,1,115,18,21,10,19,8,1,18,15,10,3,18,1,98,10,3,18,1,115,10,3,18,1,99,90,11,10,1,106,18,6,10,4,8,7,18,0,90,16,10,1,119,18,11,10,9,8,1,18,5,10,3,18,1,119,90,11,10,1,108,18,6,10,4,8,7,18,0,98,31,10,1,111,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,102,10,3,18,1,100,10,3,18,1,99,66,2,16,17],this.session_options,"o")),this._stft}static get rfft(){return this._rfft||(this._rfft=j([8,9,18,0,58,97,10,33,10,1,120,10,0,10,1,97,18,1,121,34,3,68,70,84,42,15,10,8,111,110,101,115,105,100,101,100,24,1,160,1,2,18,1,100,90,21,10,1,120,18,16,10,14,8,1,18,10,10,3,18,1,115,10,3,18,1,99,90,11,10,1,97,18,6,10,4,8,7,18,0,98,21,10,1,121,18,16,10,14,8,1,18,10,10,3,18,1,115,10,3,18,1,99,66,2,16,20],this.session_options,"y")),this._rfft}static get top_k(){return this._top_k||(this._top_k=j([8,10,18,0,58,73,10,18,10,1,120,10,1,107,18,1,118,18,1,105,34,4,84,111,112,75,18,1,116,90,9,10,1,120,18,4,10,2,8,1,90,15,10,1,107,18,10,10,8,8,7,18,4,10,2,8,1,98,9,10,1,118,18,4,10,2,8,1,98,9,10,1,105,18,4,10,2,8,7,66,2,16,21],this.session_options,["v","i"])),this._top_k}static get slice(){return this._slice||(this._slice=j([8,7,18,0,58,96,10,25,10,1,120,10,1,115,10,1,101,10,1,97,10,1,116,18,1,121,34,5,83,108,105,99,101,18,1,114,90,9,10,1,120,18,4,10,2,8,1,90,9,10,1,115,18,4,10,2,8,7,90,9,10,1,101,18,4,10,2,8,7,90,9,10,1,97,18,4,10,2,8,7,90,9,10,1,116,18,4,10,2,8,7,98,9,10,1,121,18,4,10,2,8,1,66,2,16,13],this.session_options,"y")),this._slice}}},"./src/pipelines.js":(x,C,d)=>{d.r(C),d.d(C,{AudioClassificationPipeline:()=>Re,AutomaticSpeechRecognitionPipeline:()=>Ye,DepthEstimationPipeline:()=>kA,DocumentQuestionAnsweringPipeline:()=>ze,FeatureExtractionPipeline:()=>D,FillMaskPipeline:()=>we,ImageClassificationPipeline:()=>AA,ImageFeatureExtractionPipeline:()=>P,ImageSegmentationPipeline:()=>xA,ImageToImagePipeline:()=>Pe,ImageToTextPipeline:()=>Je,ObjectDetectionPipeline:()=>Ge,Pipeline:()=>xe,QuestionAnsweringPipeline:()=>ie,SummarizationPipeline:()=>b,Text2TextGenerationPipeline:()=>u,TextClassificationPipeline:()=>Ee,TextGenerationPipeline:()=>M,TextToAudioPipeline:()=>Ue,TokenClassificationPipeline:()=>se,TranslationPipeline:()=>e,ZeroShotAudioClassificationPipeline:()=>Ne,ZeroShotClassificationPipeline:()=>ge,ZeroShotImageClassificationPipeline:()=>GA,ZeroShotObjectDetectionPipeline:()=>Ie,pipeline:()=>EA});var k=d("./src/tokenizers.js"),z=d("./src/models.js"),K=d("./src/models/auto/processing_auto.js");d("./src/base/processing_utils.js");var L=d("./src/utils/generic.js"),j=d("./src/utils/core.js"),q=d("./src/utils/maths.js"),W=d("./src/utils/audio.js"),S=d("./src/utils/tensor.js"),X=d("./src/utils/image.js");async function R(iA){return Array.isArray(iA)||(iA=[iA]),await Promise.all(iA.map(Fe=>X.RawImage.read(Fe)))}async function ae(iA,Fe){return Array.isArray(iA)||(iA=[iA]),await Promise.all(iA.map(Ze=>typeof Ze=="string"||Ze instanceof URL?(0,W.read_audio)(Ze,Fe):Ze instanceof Float64Array?new Float32Array(Ze):Ze))}function be(iA,Fe){Fe&&(iA=iA.map(pA=>0|pA));const[Ze,mA,CA,Te]=iA;return{xmin:Ze,ymin:mA,xmax:CA,ymax:Te}}class xe extends L.Callable{constructor({task:Fe,model:Ze,tokenizer:mA=null,processor:CA=null}){super(),this.task=Fe,this.model=Ze,this.tokenizer=mA,this.processor=CA}async dispose(){await this.model.dispose()}}class Ee extends xe{constructor(Fe){super(Fe)}async _call(Fe,{top_k:Ze=1}={}){const mA=this.tokenizer(Fe,{padding:!0,truncation:!0}),CA=await this.model(mA),Te=this.model.config.problem_type==="multi_label_classification"?SA=>SA.sigmoid():SA=>new S.Tensor("float32",(0,q.softmax)(SA.data),SA.dims),pA=this.model.config.id2label,vA=[];for(const SA of CA.logits){const YA=Te(SA),J=await(0,S.topk)(YA,Ze),OA=J[0].tolist(),ue=J[1].tolist().map(($,me)=>({label:pA?pA[$]:`LABEL_${$}`,score:OA[me]}));Ze===1?vA.push(...ue):vA.push(ue)}return Array.isArray(Fe)||Ze===1?vA:vA[0]}}class se extends xe{constructor(Fe){super(Fe)}async _call(Fe,{ignore_labels:Ze=["O"]}={}){const mA=Array.isArray(Fe),CA=this.tokenizer(mA?Fe:[Fe],{padding:!0,truncation:!0}),Te=(await this.model(CA)).logits,pA=this.model.config.id2label,vA=[];for(let SA=0;SABA==this.tokenizer.sep_token_id);SA[OA].map((BA,QA)=>BA==1&&(QA===0||QA>$&&YA.findIndex(TA=>TA==ue[QA])===-1));const me=Te[OA].tolist(),Se=pA[OA].tolist();for(let BA=1;BAQA==ue[BA])!==-1)&&(me[BA]=-1/0,Se[BA]=-1/0);const qe=(0,q.softmax)(me).map((BA,QA)=>[BA,QA]),dA=(0,q.softmax)(Se).map((BA,QA)=>[BA,QA]);qe[0][0]=0,dA[0][0]=0;const oA=(0,j.product)(qe,dA).filter(BA=>BA[0][1]<=BA[1][1]).map(BA=>[BA[0][1],BA[1][1],BA[0][0]*BA[1][0]]).sort((BA,QA)=>QA[2]-BA[2]);for(let BA=0;BAme==this.tokenizer.mask_token_id);if(YA===-1)throw Error(`Mask token (${this.tokenizer.mask_token}) not found in text.`);const J=CA[vA][YA],OA=await(0,S.topk)(new S.Tensor("float32",(0,q.softmax)(J.data),J.dims),Ze),ue=OA[0].tolist(),$=OA[1].tolist();Te.push($.map((me,Se)=>{const qe=SA.slice();return qe[YA]=me,{score:ue[Se],token:Number(me),token_str:this.tokenizer.decode([me]),sequence:this.tokenizer.decode(qe,{skip_special_tokens:!0})}}))}return Array.isArray(Fe)?Te:Te[0]}}class u extends xe{_key="generated_text";constructor(Fe){super(Fe)}async _call(Fe,Ze={}){Array.isArray(Fe)||(Fe=[Fe]),this.model.config.prefix&&(Fe=Fe.map(SA=>this.model.config.prefix+SA));const mA=this.model.config.task_specific_params;mA&&mA[this.task]&&mA[this.task].prefix&&(Fe=Fe.map(SA=>mA[this.task].prefix+SA));const CA=this.tokenizer,Te={padding:!0,truncation:!0};let pA;pA=this instanceof e&&"_build_translation_inputs"in CA?CA._build_translation_inputs(Fe,Te,Ze):CA(Fe,Te);const vA=await this.model.generate({...pA,...Ze});return CA.batch_decode(vA,{skip_special_tokens:!0}).map(SA=>({[this._key]:SA}))}}class b extends u{_key="summary_text";constructor(Fe){super(Fe)}}class e extends u{_key="translation_text";constructor(Fe){super(Fe)}}function l(iA){return Array.isArray(iA)&&iA.every(Fe=>"role"in Fe&&"content"in Fe)}class M extends xe{constructor(Fe){super(Fe)}async _call(Fe,Ze={}){let mA,CA=!1,Te=!1;if(typeof Fe=="string")mA=Fe=[Fe];else if(Array.isArray(Fe)&&Fe.every($=>typeof $=="string"))CA=!0,mA=Fe;else{if(l(Fe))Fe=[Fe];else{if(!Array.isArray(Fe)||!Fe.every(l))throw new Error("Input must be a string, an array of strings, a Chat, or an array of Chats");CA=!0}Te=!0,mA=Fe.map($=>this.tokenizer.apply_chat_template($,{tokenize:!1,add_generation_prompt:!0}))}const pA=Ze.add_special_tokens??!1,vA=!Te&&(Ze.return_full_text??!0);this.tokenizer.padding_side="left";const SA=this.tokenizer(mA,{add_special_tokens:pA,padding:!0,truncation:!0}),YA=await this.model.generate({...SA,...Ze}),J=this.tokenizer.batch_decode(YA,{skip_special_tokens:!0});let OA;!vA&&SA.input_ids.dims.at(-1)>0&&(OA=this.tokenizer.batch_decode(SA.input_ids,{skip_special_tokens:!0}).map($=>$.length));const ue=Array.from({length:Fe.length},$=>[]);for(let $=0;$[Ze.toLowerCase(),mA])),this.entailment_id=this.label2id.entailment,this.entailment_id===void 0&&(console.warn("Could not find 'entailment' in label2id mapping. Using 2 as entailment_id."),this.entailment_id=2),this.contradiction_id=this.label2id.contradiction??this.label2id.not_entailment,this.contradiction_id===void 0&&(console.warn("Could not find 'contradiction' in label2id mapping. Using 0 as contradiction_id."),this.contradiction_id=0)}async _call(Fe,Ze,{hypothesis_template:mA="This example is {}.",multi_label:CA=!1}={}){const Te=Array.isArray(Fe);Te||(Fe=[Fe]),Array.isArray(Ze)||(Ze=[Ze]);const pA=Ze.map(YA=>mA.replace("{}",YA)),vA=CA||Ze.length===1,SA=[];for(const YA of Fe){const J=[];for(const $ of pA){const me=this.tokenizer(YA,{text_pair:$,padding:!0,truncation:!0}),Se=await this.model(me);vA?J.push([Se.logits.data[this.contradiction_id],Se.logits.data[this.entailment_id]]):J.push(Se.logits.data[this.entailment_id])}const OA=vA?J.map($=>(0,q.softmax)($)[1]):(0,q.softmax)(J),ue=OA.map(($,me)=>[$,me]).sort(($,me)=>me[0]-$[0]);SA.push({sequence:YA,labels:ue.map($=>Ze[$[1]]),scores:ue.map($=>$[0])})}return Te?SA:SA[0]}}class D extends xe{constructor(Fe){super(Fe)}async _call(Fe,{pooling:Ze="none",normalize:mA=!1,quantize:CA=!1,precision:Te="binary"}={}){const pA=this.tokenizer(Fe,{padding:!0,truncation:!0}),vA=await this.model(pA);let SA=vA.last_hidden_state??vA.logits??vA.token_embeddings;if(Ze!=="none")if(Ze==="mean")SA=(0,S.mean_pooling)(SA,pA.attention_mask);else{if(Ze!=="cls")throw Error(`Pooling method '${Ze}' not supported.`);SA=SA.slice(null,0)}return mA&&(SA=SA.normalize(2,-1)),CA&&(SA=(0,S.quantize_embeddings)(SA,Te)),SA}}class P extends xe{constructor(Fe){super(Fe)}async _call(Fe,{pool:Ze=null}={}){const mA=await R(Fe),{pixel_values:CA}=await this.processor(mA),Te=await this.model({pixel_values:CA});let pA;if(Ze){if(!("pooler_output"in Te))throw Error("No pooled output was returned. Make sure the model has a 'pooler' layer when using the 'pool' option.");pA=Te.pooler_output}else pA=Te.last_hidden_state??Te.logits??Te.image_embeds;return pA}}class Re extends xe{constructor(Fe){super(Fe)}async _call(Fe,{top_k:Ze=5}={}){const mA=this.processor.feature_extractor.config.sampling_rate,CA=await ae(Fe,mA),Te=this.model.config.id2label,pA=[];for(const vA of CA){const SA=await this.processor(vA),YA=(await this.model(SA)).logits[0],J=await(0,S.topk)(new S.Tensor("float32",(0,q.softmax)(YA.data),YA.dims),Ze),OA=J[0].tolist(),ue=J[1].tolist().map(($,me)=>({label:Te?Te[$]:`LABEL_${$}`,score:OA[me]}));pA.push(ue)}return Array.isArray(Fe)?pA:pA[0]}}class Ne extends xe{constructor(Fe){super(Fe)}async _call(Fe,Ze,{hypothesis_template:mA="This is a sound of {}."}={}){const CA=!Array.isArray(Fe);CA&&(Fe=[Fe]);const Te=Ze.map(J=>mA.replace("{}",J)),pA=this.tokenizer(Te,{padding:!0,truncation:!0}),vA=this.processor.feature_extractor.config.sampling_rate,SA=await ae(Fe,vA),YA=[];for(const J of SA){const OA=await this.processor(J),ue=await this.model({...pA,...OA}),$=(0,q.softmax)(ue.logits_per_audio.data);YA.push([...$].map((me,Se)=>({score:me,label:Ze[Se]})))}return CA?YA[0]:YA}}class Ye extends xe{constructor(Fe){super(Fe)}async _call(Fe,Ze={}){switch(this.model.config.model_type){case"whisper":return this._call_whisper(Fe,Ze);case"wav2vec2":case"wav2vec2-bert":case"unispeech":case"unispeech-sat":case"hubert":return this._call_wav2vec2(Fe,Ze);case"moonshine":return this._call_moonshine(Fe,Ze);default:throw new Error(`AutomaticSpeechRecognitionPipeline does not support model type '${this.model.config.model_type}'.`)}}async _call_wav2vec2(Fe,Ze){Ze.language&&console.warn('`language` parameter is not yet supported for `wav2vec2` models, defaulting to "English".'),Ze.task&&console.warn('`task` parameter is not yet supported for `wav2vec2` models, defaulting to "transcribe".');const mA=!Array.isArray(Fe);mA&&(Fe=[Fe]);const CA=this.processor.feature_extractor.config.sampling_rate,Te=await ae(Fe,CA),pA=[];for(const vA of Te){const SA=await this.processor(vA),YA=(await this.model(SA)).logits[0],J=[];for(const ue of YA)J.push((0,q.max)(ue.data)[1]);const OA=this.tokenizer.decode(J);pA.push({text:OA})}return mA?pA[0]:pA}async _call_whisper(Fe,Ze){const mA=Ze.return_timestamps??!1,CA=Ze.chunk_length_s??0,Te=Ze.force_full_sequences??!1;let pA=Ze.stride_length_s??null;const vA={...Ze};mA==="word"&&(vA.return_token_timestamps=!0,vA.return_timestamps=!1);const SA=!Array.isArray(Fe);SA&&(Fe=[Fe]);const YA=this.processor.feature_extractor.config.chunk_length/this.model.config.max_source_positions,J=this.processor.feature_extractor.config.hop_length,OA=this.processor.feature_extractor.config.sampling_rate,ue=await ae(Fe,OA),$=[];for(const me of ue){let Se=[];if(CA>0){if(pA===null)pA=CA/6;else if(CA<=pA)throw Error("`chunk_length_s` must be larger than `stride_length_s`.");const oA=OA*CA,BA=OA*pA,QA=oA-2*BA;let TA=0;for(;;){const Mt=TA+oA,Tt=me.subarray(TA,Mt),gt=await this.processor(Tt),Ct=TA===0,$t=Mt>=me.length;if(Se.push({stride:[Tt.length,Ct?0:BA,$t?0:BA],input_features:gt.input_features,is_last:$t}),$t)break;TA+=QA}}else Se=[{stride:[me.length,0,0],input_features:(await this.processor(me)).input_features,is_last:!0}];for(const oA of Se){vA.num_frames=Math.floor(oA.stride[0]/J);const BA=await this.model.generate({inputs:oA.input_features,...vA});mA==="word"?(oA.tokens=BA.sequences.tolist()[0],oA.token_timestamps=BA.token_timestamps.tolist()[0].map(QA=>(0,q.round)(QA,2))):oA.tokens=BA[0].tolist(),oA.stride=oA.stride.map(QA=>QA/OA)}const[qe,dA]=this.tokenizer._decode_asr(Se,{time_precision:YA,return_timestamps:mA,force_full_sequences:Te});$.push({text:qe,...dA})}return SA?$[0]:$}async _call_moonshine(Fe,Ze){const mA=!Array.isArray(Fe);mA&&(Fe=[Fe]);const CA=this.processor.feature_extractor.config.sampling_rate,Te=await ae(Fe,CA),pA=[];for(const vA of Te){const SA=await this.processor(vA),YA=6*Math.floor(vA.length/CA),J=await this.model.generate({max_new_tokens:YA,...Ze,...SA}),OA=this.processor.batch_decode(J,{skip_special_tokens:!0})[0];pA.push({text:OA})}return mA?pA[0]:pA}}class Je extends xe{constructor(Fe){super(Fe)}async _call(Fe,Ze={}){const mA=Array.isArray(Fe),CA=await R(Fe),{pixel_values:Te}=await this.processor(CA),pA=[];for(const vA of Te){vA.dims=[1,...vA.dims];const SA=await this.model.generate({inputs:vA,...Ze}),YA=this.tokenizer.batch_decode(SA,{skip_special_tokens:!0}).map(J=>({generated_text:J.trim()}));pA.push(YA)}return mA?pA:pA[0]}}class AA extends xe{constructor(Fe){super(Fe)}async _call(Fe,{top_k:Ze=5}={}){const mA=await R(Fe),{pixel_values:CA}=await this.processor(mA),Te=await this.model({pixel_values:CA}),pA=this.model.config.id2label,vA=[];for(const SA of Te.logits){const YA=await(0,S.topk)(new S.Tensor("float32",(0,q.softmax)(SA.data),SA.dims),Ze),J=YA[0].tolist(),OA=YA[1].tolist().map((ue,$)=>({label:pA?pA[ue]:`LABEL_${ue}`,score:J[$]}));vA.push(OA)}return Array.isArray(Fe)?vA:vA[0]}}class xA extends xe{constructor(Fe){super(Fe),this.subtasks_mapping={panoptic:"post_process_panoptic_segmentation",instance:"post_process_instance_segmentation",semantic:"post_process_semantic_segmentation"}}async _call(Fe,{threshold:Ze=.5,mask_threshold:mA=.5,overlap_mask_area_threshold:CA=.8,label_ids_to_fuse:Te=null,target_sizes:pA=null,subtask:vA=null}={}){if(Array.isArray(Fe)&&Fe.length!==1)throw Error("Image segmentation pipeline currently only supports a batch size of 1.");const SA=await R(Fe),YA=SA.map(qe=>[qe.height,qe.width]),{pixel_values:J,pixel_mask:OA}=await this.processor(SA),ue=await this.model({pixel_values:J,pixel_mask:OA});let $=null;if(vA!==null)$=this.subtasks_mapping[vA];else for(let[qe,dA]of Object.entries(this.subtasks_mapping))if(dA in this.processor.image_processor){$=this.processor.image_processor[dA].bind(this.processor.image_processor),vA=qe;break}const me=this.model.config.id2label,Se=[];if(vA==="panoptic"||vA==="instance"){const qe=$(ue,Ze,mA,CA,Te,pA??YA)[0],dA=qe.segmentation;for(const oA of qe.segments_info){const BA=new Uint8ClampedArray(dA.data.length);for(let TA=0;TAmA.replace("{}",ue)),vA=this.tokenizer(pA,{padding:this.model.config.model_type!=="siglip"||"max_length",truncation:!0}),{pixel_values:SA}=await this.processor(Te),YA=await this.model({...vA,pixel_values:SA}),J=this.model.config.model_type==="siglip"?ue=>ue.sigmoid().data:ue=>(0,q.softmax)(ue.data),OA=[];for(const ue of YA.logits_per_image){const $=[...J(ue)].map((me,Se)=>({score:me,label:Ze[Se]}));$.sort((me,Se)=>Se.score-me.score),OA.push($)}return CA?OA:OA[0]}}class Ge extends xe{constructor(Fe){super(Fe)}async _call(Fe,{threshold:Ze=.9,percentage:mA=!1}={}){const CA=Array.isArray(Fe);if(CA&&Fe.length!==1)throw Error("Object detection pipeline currently only supports a batch size of 1.");const Te=await R(Fe),pA=mA?null:Te.map($=>[$.height,$.width]),{pixel_values:vA,pixel_mask:SA}=await this.processor(Te),YA=await this.model({pixel_values:vA,pixel_mask:SA}),J=this.processor.image_processor.post_process_object_detection(YA,Ze,pA),OA=this.model.config.id2label,ue=J.map($=>$.boxes.map((me,Se)=>({score:$.scores[Se],label:OA[$.classes[Se]],box:be(me,!mA)})));return CA?ue:ue[0]}}class Ie extends xe{constructor(Fe){super(Fe)}async _call(Fe,Ze,{threshold:mA=.1,top_k:CA=null,percentage:Te=!1}={}){const pA=Array.isArray(Fe),vA=await R(Fe),SA=this.tokenizer(Ze,{padding:!0,truncation:!0}),YA=await this.processor(vA),J=[];for(let OA=0;OA({score:dA.scores[BA],label:dA.labels[BA],box:be(oA,!Te)}))}else{const dA=this.processor.image_processor.post_process_object_detection(Se,mA,$,!0)[0];qe=dA.boxes.map((oA,BA)=>({score:dA.scores[BA],label:Ze[dA.classes[BA]],box:be(oA,!Te)}))}qe.sort((dA,oA)=>oA.score-dA.score),CA!==null&&(qe=qe.slice(0,CA)),J.push(qe)}return pA?J:J[0]}}class ze extends xe{constructor(Fe){super(Fe)}async _call(Fe,Ze,mA={}){const CA=(await R(Fe))[0],{pixel_values:Te}=await this.processor(CA),pA=`${Ze}`,vA=this.tokenizer(pA,{add_special_tokens:!1,padding:!0,truncation:!0}).input_ids,SA=await this.model.generate({inputs:Te,max_length:this.model.config.decoder.max_position_embeddings,decoder_input_ids:vA,...mA}),YA=this.tokenizer.batch_decode(SA)[0].match(/(.*?)<\/s_answer>/);let J=null;return YA&&YA.length>=2&&(J=YA[1].trim()),[{answer:J}]}}class Ue extends xe{DEFAULT_VOCODER_ID="Xenova/speecht5_hifigan";constructor(Fe){super(Fe),this.vocoder=Fe.vocoder??null}async _call(Fe,{speaker_embeddings:Ze=null}={}){return this.processor?this._call_text_to_spectrogram(Fe,{speaker_embeddings:Ze}):this._call_text_to_waveform(Fe)}async _call_text_to_waveform(Fe){const Ze=this.tokenizer(Fe,{padding:!0,truncation:!0}),{waveform:mA}=await this.model(Ze),CA=this.model.config.sampling_rate;return new W.RawAudio(mA.data,CA)}async _call_text_to_spectrogram(Fe,{speaker_embeddings:Ze}){if(this.vocoder||(console.log("No vocoder specified, using default HifiGan vocoder."),this.vocoder=await z.AutoModel.from_pretrained(this.DEFAULT_VOCODER_ID,{dtype:"fp32"})),(typeof Ze=="string"||Ze instanceof URL)&&(Ze=new Float32Array(await(await fetch(Ze)).arrayBuffer())),Ze instanceof Float32Array)Ze=new S.Tensor("float32",Ze,[1,Ze.length]);else if(!(Ze instanceof S.Tensor))throw new Error("Speaker embeddings must be a `Tensor`, `Float32Array`, `string`, or `URL`.");const{input_ids:mA}=this.tokenizer(Fe,{padding:!0,truncation:!0}),{waveform:CA}=await this.model.generate_speech(mA,Ze,{vocoder:this.vocoder}),Te=this.processor.feature_extractor.config.sampling_rate;return new W.RawAudio(CA.data,Te)}}class Pe extends xe{constructor(Fe){super(Fe)}async _call(Fe){const Ze=await R(Fe),mA=await this.processor(Ze),CA=await this.model(mA),Te=[];for(const pA of CA.reconstruction){const vA=pA.squeeze().clamp_(0,1).mul_(255).round_().to("uint8");Te.push(X.RawImage.fromTensor(vA))}return Te.length>1?Te:Te[0]}}class kA extends xe{constructor(Fe){super(Fe)}async _call(Fe){const Ze=await R(Fe),mA=await this.processor(Ze),{predicted_depth:CA}=await this.model(mA),Te=[];for(let pA=0;pA1?Te:Te[0]}}const aA=Object.freeze({"text-classification":{tokenizer:k.AutoTokenizer,pipeline:Ee,model:z.AutoModelForSequenceClassification,default:{model:"Xenova/distilbert-base-uncased-finetuned-sst-2-english"},type:"text"},"token-classification":{tokenizer:k.AutoTokenizer,pipeline:se,model:z.AutoModelForTokenClassification,default:{model:"Xenova/bert-base-multilingual-cased-ner-hrl"},type:"text"},"question-answering":{tokenizer:k.AutoTokenizer,pipeline:ie,model:z.AutoModelForQuestionAnswering,default:{model:"Xenova/distilbert-base-cased-distilled-squad"},type:"text"},"fill-mask":{tokenizer:k.AutoTokenizer,pipeline:we,model:z.AutoModelForMaskedLM,default:{model:"Xenova/bert-base-uncased"},type:"text"},summarization:{tokenizer:k.AutoTokenizer,pipeline:b,model:z.AutoModelForSeq2SeqLM,default:{model:"Xenova/distilbart-cnn-6-6"},type:"text"},translation:{tokenizer:k.AutoTokenizer,pipeline:e,model:z.AutoModelForSeq2SeqLM,default:{model:"Xenova/t5-small"},type:"text"},"text2text-generation":{tokenizer:k.AutoTokenizer,pipeline:u,model:z.AutoModelForSeq2SeqLM,default:{model:"Xenova/flan-t5-small"},type:"text"},"text-generation":{tokenizer:k.AutoTokenizer,pipeline:M,model:z.AutoModelForCausalLM,default:{model:"Xenova/gpt2"},type:"text"},"zero-shot-classification":{tokenizer:k.AutoTokenizer,pipeline:ge,model:z.AutoModelForSequenceClassification,default:{model:"Xenova/distilbert-base-uncased-mnli"},type:"text"},"audio-classification":{pipeline:Re,model:z.AutoModelForAudioClassification,processor:K.AutoProcessor,default:{model:"Xenova/wav2vec2-base-superb-ks"},type:"audio"},"zero-shot-audio-classification":{tokenizer:k.AutoTokenizer,pipeline:Ne,model:z.AutoModel,processor:K.AutoProcessor,default:{model:"Xenova/clap-htsat-unfused"},type:"multimodal"},"automatic-speech-recognition":{tokenizer:k.AutoTokenizer,pipeline:Ye,model:[z.AutoModelForSpeechSeq2Seq,z.AutoModelForCTC],processor:K.AutoProcessor,default:{model:"Xenova/whisper-tiny.en"},type:"multimodal"},"text-to-audio":{tokenizer:k.AutoTokenizer,pipeline:Ue,model:[z.AutoModelForTextToWaveform,z.AutoModelForTextToSpectrogram],processor:[K.AutoProcessor,null],default:{model:"Xenova/speecht5_tts"},type:"text"},"image-to-text":{tokenizer:k.AutoTokenizer,pipeline:Je,model:z.AutoModelForVision2Seq,processor:K.AutoProcessor,default:{model:"Xenova/vit-gpt2-image-captioning"},type:"multimodal"},"image-classification":{pipeline:AA,model:z.AutoModelForImageClassification,processor:K.AutoProcessor,default:{model:"Xenova/vit-base-patch16-224"},type:"multimodal"},"image-segmentation":{pipeline:xA,model:[z.AutoModelForImageSegmentation,z.AutoModelForSemanticSegmentation,z.AutoModelForUniversalSegmentation],processor:K.AutoProcessor,default:{model:"Xenova/detr-resnet-50-panoptic"},type:"multimodal"},"zero-shot-image-classification":{tokenizer:k.AutoTokenizer,pipeline:GA,model:z.AutoModel,processor:K.AutoProcessor,default:{model:"Xenova/clip-vit-base-patch32"},type:"multimodal"},"object-detection":{pipeline:Ge,model:z.AutoModelForObjectDetection,processor:K.AutoProcessor,default:{model:"Xenova/detr-resnet-50"},type:"multimodal"},"zero-shot-object-detection":{tokenizer:k.AutoTokenizer,pipeline:Ie,model:z.AutoModelForZeroShotObjectDetection,processor:K.AutoProcessor,default:{model:"Xenova/owlvit-base-patch32"},type:"multimodal"},"document-question-answering":{tokenizer:k.AutoTokenizer,pipeline:ze,model:z.AutoModelForDocumentQuestionAnswering,processor:K.AutoProcessor,default:{model:"Xenova/donut-base-finetuned-docvqa"},type:"multimodal"},"image-to-image":{pipeline:Pe,model:z.AutoModelForImageToImage,processor:K.AutoProcessor,default:{model:"Xenova/swin2SR-classical-sr-x2-64"},type:"image"},"depth-estimation":{pipeline:kA,model:z.AutoModelForDepthEstimation,processor:K.AutoProcessor,default:{model:"Xenova/dpt-large"},type:"image"},"feature-extraction":{tokenizer:k.AutoTokenizer,pipeline:D,model:z.AutoModel,default:{model:"Xenova/all-MiniLM-L6-v2"},type:"text"},"image-feature-extraction":{processor:K.AutoProcessor,pipeline:P,model:[z.AutoModelForImageFeatureExtraction,z.AutoModel],default:{model:"Xenova/vit-base-patch16-224-in21k"},type:"image"}}),nA=Object.freeze({"sentiment-analysis":"text-classification",ner:"token-classification",asr:"automatic-speech-recognition","text-to-speech":"text-to-audio",embeddings:"feature-extraction"});async function EA(iA,Fe=null,{progress_callback:Ze=null,config:mA=null,cache_dir:CA=null,local_files_only:Te=!1,revision:pA="main",device:vA=null,dtype:SA=null,model_file_name:YA=null,session_options:J={}}={}){iA=nA[iA]??iA;const OA=aA[iA.split("_",1)[0]];if(!OA)throw Error(`Unsupported pipeline: ${iA}. Must be one of [${Object.keys(aA)}]`);Fe||(Fe=OA.default.model,console.log(`No model specified. Using default model: "${Fe}".`));const ue={progress_callback:Ze,config:mA,cache_dir:CA,local_files_only:Te,revision:pA,device:vA,dtype:SA,model_file_name:YA,session_options:J},$=new Map([["tokenizer",OA.tokenizer],["model",OA.model],["processor",OA.processor]]),me=await async function(Se,qe,dA){const oA=Object.create(null),BA=[];for(const[QA,TA]of Se.entries()){if(!TA)continue;let Mt;Mt=Array.isArray(TA)?new Promise(async(Tt,gt)=>{let Ct;for(const $t of TA){if($t===null)return void Tt(null);try{return void Tt(await $t.from_pretrained(qe,dA))}catch(Qr){if(Qr.message?.includes("Unsupported model type"))Ct=Qr;else{if(!Qr.message?.includes("Could not locate file"))return void gt(Qr);Ct=Qr}}}gt(Ct)}):TA.from_pretrained(qe,dA),oA[QA]=Mt,BA.push(Mt)}await Promise.all(BA);for(const[QA,TA]of Object.entries(oA))oA[QA]=await TA;return oA}($,Fe,ue);return me.task=iA,(0,j.dispatchCallback)(Ze,{status:"ready",task:iA,model:Fe}),new OA.pipeline(me)}},"./src/tokenizers.js":(x,C,d)=>{d.r(C),d.d(C,{AlbertTokenizer:()=>Oa,AutoTokenizer:()=>Hs,BartTokenizer:()=>va,BertTokenizer:()=>Ka,BlenderbotSmallTokenizer:()=>Pt,BlenderbotTokenizer:()=>wt,BloomTokenizer:()=>Kt,CLIPTokenizer:()=>Os,CamembertTokenizer:()=>ws,CodeGenTokenizer:()=>bn,CodeLlamaTokenizer:()=>mn,CohereTokenizer:()=>Ys,ConvBertTokenizer:()=>cs,DebertaTokenizer:()=>$A,DebertaV2Tokenizer:()=>PA,DistilBertTokenizer:()=>zs,ElectraTokenizer:()=>Fs,EsmTokenizer:()=>ts,FalconTokenizer:()=>Cn,GPT2Tokenizer:()=>xt,GPTNeoXTokenizer:()=>Ur,GemmaTokenizer:()=>en,Grok1Tokenizer:()=>qa,HerbertTokenizer:()=>qt,LlamaTokenizer:()=>gs,M2M100Tokenizer:()=>Ss,MBart50Tokenizer:()=>Hr,MBartTokenizer:()=>Tr,MPNetTokenizer:()=>$s,MarianTokenizer:()=>Ls,MgpstrTokenizer:()=>rs,MobileBertTokenizer:()=>Ia,NllbTokenizer:()=>kr,NougatTokenizer:()=>An,PreTrainedTokenizer:()=>bt,Qwen2Tokenizer:()=>ds,RoFormerTokenizer:()=>Za,RobertaTokenizer:()=>us,SiglipTokenizer:()=>Bs,SpeechT5Tokenizer:()=>wa,SqueezeBertTokenizer:()=>ZA,T5Tokenizer:()=>$r,TokenizerModel:()=>l,VitsTokenizer:()=>Es,Wav2Vec2CTCTokenizer:()=>ys,WhisperTokenizer:()=>Ns,XLMRobertaTokenizer:()=>_s,XLMTokenizer:()=>ks,is_chinese_char:()=>se});var k=d("./src/utils/generic.js"),z=d("./src/utils/core.js"),K=d("./src/utils/hub.js"),L=d("./src/utils/maths.js"),j=d("./src/utils/tensor.js"),q=d("./src/utils/data-structures.js"),W=d("./node_modules/@huggingface/jinja/dist/index.js"),S=d("./src/models/whisper/common_whisper.js");async function X(tA,_){const Be=await Promise.all([(0,K.getModelJSON)(tA,"tokenizer.json",!0,_),(0,K.getModelJSON)(tA,"tokenizer_config.json",!0,_)]);return _.legacy!==null&&(Be[1].legacy=_.legacy),Be}function R(tA,_=!0){if(tA.Regex!==void 0){let Be=tA.Regex.replace(/\\([#&~])/g,"$1");for(const[Oe,Ve]of b)Be=Be.replaceAll(Oe,Ve);return new RegExp(Be,"gu")}if(tA.String!==void 0){const Be=(0,z.escapeRegExp)(tA.String);return new RegExp(_?Be:`(${Be})`,"gu")}return console.warn("Unknown pattern type:",tA),null}function ae(tA){return new Map(Object.entries(tA))}function be(tA){const _=tA.dims;switch(_.length){case 1:return tA.tolist();case 2:if(_[0]!==1)throw new Error("Unable to decode tensor with `batch size !== 1`. Use `tokenizer.batch_decode(...)` for batched inputs.");return tA.tolist()[0];default:throw new Error(`Expected tensor to have 1-2 dimensions, got ${_.length}.`)}}function xe(tA){return tA.replace(/ \./g,".").replace(/ \?/g,"?").replace(/ \!/g,"!").replace(/ ,/g,",").replace(/ \' /g,"'").replace(/ n\'t/g,"n't").replace(/ \'m/g,"'m").replace(/ \'s/g,"'s").replace(/ \'ve/g,"'ve").replace(/ \'re/g,"'re")}function Ee(tA){return tA.replace(/\p{M}/gu,"")}function se(tA){return tA>=19968&&tA<=40959||tA>=13312&&tA<=19903||tA>=131072&&tA<=173791||tA>=173824&&tA<=177983||tA>=177984&&tA<=178207||tA>=178208&&tA<=183983||tA>=63744&&tA<=64255||tA>=194560&&tA<=195103}const ie="\\p{P}\\u0021-\\u002F\\u003A-\\u0040\\u005B-\\u0060\\u007B-\\u007E",we=new RegExp(`^[${ie}]+$`,"gu"),u=".,!?…。,、।۔،",b=new Map([["(?i:'s|'t|'re|'ve|'m|'ll|'d)","(?:'([sS]|[tT]|[rR][eE]|[vV][eE]|[mM]|[lL][lL]|[dD]))"],[` ?[^(\\s|[${u}])]+`,` ?[^\\s${u}]+`]]);class e{constructor(_){this.content=_.content,this.id=_.id,this.single_word=_.single_word??!1,this.lstrip=_.lstrip??!1,this.rstrip=_.rstrip??!1,this.special=_.special??!1,this.normalized=_.normalized??null}}class l extends k.Callable{constructor(_){super(),this.config=_,this.vocab=[],this.tokens_to_ids=new Map,this.unk_token_id=void 0,this.unk_token=void 0,this.end_of_word_suffix=void 0,this.fuse_unk=this.config.fuse_unk??!1}static fromConfig(_,...Be){switch(_.type){case"WordPiece":return new M(_);case"Unigram":return new ge(_,...Be);case"BPE":return new Re(_);default:if(_.vocab)return Array.isArray(_.vocab)?new ge(_,...Be):typeof _.vocab=="object"&&_.continuing_subword_prefix&&_.unk_token?new M(_):new Ne(_,...Be);throw new Error(`Unknown TokenizerModel type: ${_.type}`)}}_call(_){return _=this.encode(_),this.fuse_unk&&(_=function(Be,Oe,Ve){const $e=[];let fA=0;for(;fAthis.tokens_to_ids.get(Be)??this.unk_token_id)}convert_ids_to_tokens(_){return _.map(Be=>this.vocab[Be]??this.unk_token)}}class M extends l{constructor(_){super(_),this.tokens_to_ids=ae(_.vocab),this.unk_token_id=this.tokens_to_ids.get(_.unk_token),this.unk_token=_.unk_token,this.max_input_chars_per_word=_.max_input_chars_per_word??100,this.vocab=new Array(this.tokens_to_ids.size);for(const[Be,Oe]of this.tokens_to_ids)this.vocab[Oe]=Be}encode(_){const Be=[];for(const Oe of _){const Ve=[...Oe];if(Ve.length>this.max_input_chars_per_word){Be.push(this.unk_token);continue}let $e=!1,fA=0;const NA=[];for(;fA0&&(bA=this.config.continuing_subword_prefix+bA),this.tokens_to_ids.has(bA)){VA=bA;break}--He}if(VA===null){$e=!0;break}NA.push(VA),fA=He}$e?Be.push(this.unk_token):Be.push(...NA)}return Be}}class ge extends l{constructor(_,Be){super(_);const Oe=_.vocab.length;this.vocab=new Array(Oe),this.scores=new Array(Oe);for(let Ve=0;Ve[Ve,$e])),this.bos_token=" ",this.bos_token_id=this.tokens_to_ids.get(this.bos_token),this.eos_token=Be.eos_token,this.eos_token_id=this.tokens_to_ids.get(this.eos_token),this.unk_token=this.vocab[this.unk_token_id],this.minScore=(0,L.min)(this.scores)[0],this.unk_score=this.minScore-10,this.scores[this.unk_token_id]=this.unk_score,this.trie=new q.CharTrie,this.trie.extend(this.vocab),this.fuse_unk=!0}populateNodes(_){const Be=_.chars;let Oe=0;for(;Oe{const tA=[...Array.from({length:94},(Ve,$e)=>$e+33),...Array.from({length:12},(Ve,$e)=>$e+161),...Array.from({length:82},(Ve,$e)=>$e+174)],_=tA.slice();let Be=0;for(let Ve=0;Ve<256;++Ve)tA.includes(Ve)||(tA.push(Ve),_.push(256+Be),Be+=1);const Oe=_.map(Ve=>String.fromCharCode(Ve));return Object.fromEntries(tA.map((Ve,$e)=>[Ve,Oe[$e]]))})(),P=(0,z.reverseDictionary)(D);class Re extends l{constructor(_){super(_),this.tokens_to_ids=ae(_.vocab),this.unk_token_id=this.tokens_to_ids.get(_.unk_token),this.unk_token=_.unk_token,this.vocab=new Array(this.tokens_to_ids.size);for(const[Oe,Ve]of this.tokens_to_ids)this.vocab[Ve]=Oe;const Be=Array.isArray(_.merges[0]);this.merges=Be?_.merges:_.merges.map(Oe=>Oe.split(" ",2)),this.bpe_ranks=new Map(this.merges.map((Oe,Ve)=>[JSON.stringify(Oe),Ve])),this.end_of_word_suffix=_.end_of_word_suffix,this.continuing_subword_suffix=_.continuing_subword_suffix??null,this.byte_fallback=this.config.byte_fallback??!1,this.byte_fallback&&(this.text_encoder=new TextEncoder),this.ignore_merges=this.config.ignore_merges??!1,this.cache=new Map}bpe(_){if(_.length===0)return[];const Be=this.cache.get(_);if(Be!==void 0)return Be;const Oe=Array.from(_);this.end_of_word_suffix&&(Oe[Oe.length-1]+=this.end_of_word_suffix);let Ve=[];if(Oe.length>1){const $e=new q.PriorityQueue((He,VA)=>He.score`<0x${NA.toString(16).toUpperCase().padStart(2,"0")}>`);fA.every(NA=>this.tokens_to_ids.has(NA))?Be.push(...fA):Be.push(this.unk_token)}else Be.push(this.unk_token)}return Be}}class Ne extends l{constructor(_,Be){super(_),this.tokens_to_ids=ae(Be.target_lang?_.vocab[Be.target_lang]:_.vocab),this.bos_token=Be.bos_token,this.bos_token_id=this.tokens_to_ids.get(this.bos_token),this.eos_token=Be.eos_token,this.eos_token_id=this.tokens_to_ids.get(this.eos_token),this.pad_token=Be.pad_token,this.pad_token_id=this.tokens_to_ids.get(this.pad_token),this.unk_token=Be.unk_token,this.unk_token_id=this.tokens_to_ids.get(this.unk_token),this.vocab=new Array(this.tokens_to_ids.size);for(const[Oe,Ve]of this.tokens_to_ids)this.vocab[Ve]=Oe}encode(_){return _}}class Ye extends k.Callable{constructor(_){super(),this.config=_}static fromConfig(_){if(_===null)return null;switch(_.type){case"BertNormalizer":return new kA(_);case"Precompiled":return new Mt(_);case"Sequence":return new Pe(_);case"Replace":return new Je(_);case"NFC":return new AA(_);case"NFKC":return new xA(_);case"NFKD":return new GA(_);case"Strip":return new Ge(_);case"StripAccents":return new Ie(_);case"Lowercase":return new ze(_);case"Prepend":return new Ue(_);default:throw new Error(`Unknown Normalizer type: ${_.type}`)}}normalize(_){throw Error("normalize should be implemented in subclass.")}_call(_){return this.normalize(_)}}class Je extends Ye{normalize(_){const Be=R(this.config.pattern);return Be===null?_:_.replaceAll(Be,this.config.content)}}class AA extends Ye{normalize(_){return _=_.normalize("NFC")}}class xA extends Ye{normalize(_){return _=_.normalize("NFKC")}}class GA extends Ye{normalize(_){return _=_.normalize("NFKD")}}class Ge extends Ye{normalize(_){return this.config.strip_left&&this.config.strip_right?_=_.trim():(this.config.strip_left&&(_=_.trimStart()),this.config.strip_right&&(_=_.trimEnd())),_}}class Ie extends Ye{normalize(_){return _=Ee(_)}}class ze extends Ye{normalize(_){return _=_.toLowerCase()}}class Ue extends Ye{normalize(_){return _=this.config.prepend+_}}class Pe extends Ye{constructor(_){super(_),this.normalizers=_.normalizers.map(Be=>Ye.fromConfig(Be))}normalize(_){return this.normalizers.reduce((Be,Oe)=>Oe.normalize(Be),_)}}class kA extends Ye{_tokenize_chinese_chars(_){const Be=[];for(let Oe=0;Oe<_.length;++Oe){const Ve=_[Oe];se(Ve.charCodeAt(0))?(Be.push(" "),Be.push(Ve),Be.push(" ")):Be.push(Ve)}return Be.join("")}stripAccents(_){return _.normalize("NFD").replace(/\p{Mn}/gu,"")}_is_control(_){switch(_){case" ":case` +`:case"\r":return!1;default:return/^\p{Cc}|\p{Cf}|\p{Co}|\p{Cs}$/u.test(_)}}_clean_text(_){const Be=[];for(const Oe of _){const Ve=Oe.charCodeAt(0);Ve===0||Ve===65533||this._is_control(Oe)||(/^\s$/.test(Oe)?Be.push(" "):Be.push(Oe))}return Be.join("")}normalize(_){return this.config.clean_text&&(_=this._clean_text(_)),this.config.handle_chinese_chars&&(_=this._tokenize_chinese_chars(_)),this.config.lowercase?(_=_.toLowerCase(),this.config.strip_accents!==!1&&(_=this.stripAccents(_))):this.config.strip_accents&&(_=this.stripAccents(_)),_}}class aA extends k.Callable{static fromConfig(_){if(_===null)return null;switch(_.type){case"BertPreTokenizer":return new nA(_);case"Sequence":return new Tt(_);case"Whitespace":return new gt(_);case"WhitespaceSplit":return new Ct(_);case"Metaspace":return new QA(_);case"ByteLevel":return new EA(_);case"Split":return new iA(_);case"Punctuation":return new Fe(_);case"Digits":return new Ze(_);case"Replace":return new $t(_);default:throw new Error(`Unknown PreTokenizer type: ${_.type}`)}}pre_tokenize_text(_,Be){throw Error("pre_tokenize_text should be implemented in subclass.")}pre_tokenize(_,Be){return(Array.isArray(_)?_.map(Oe=>this.pre_tokenize_text(Oe,Be)):this.pre_tokenize_text(_,Be)).flat()}_call(_,Be){return this.pre_tokenize(_,Be)}}class nA extends aA{constructor(_){super(),this.pattern=new RegExp(`[^\\s${ie}]+|[${ie}]`,"gu")}pre_tokenize_text(_,Be){return _.trim().match(this.pattern)||[]}}class EA extends aA{constructor(_){super(),this.config=_,this.add_prefix_space=this.config.add_prefix_space,this.trim_offsets=this.config.trim_offsets,this.use_regex=this.config.use_regex??!0,this.pattern=/'s|'t|'re|'ve|'m|'ll|'d| ?\p{L}+| ?\p{N}+| ?[^\s\p{L}\p{N}]+|\s+(?!\S)|\s+/gu,this.byte_encoder=D,this.text_encoder=new TextEncoder}pre_tokenize_text(_,Be){return this.add_prefix_space&&!_.startsWith(" ")&&(_=" "+_),(this.use_regex?_.match(this.pattern)||[]:[_]).map(Oe=>Array.from(this.text_encoder.encode(Oe),Ve=>this.byte_encoder[Ve]).join(""))}}class iA extends aA{constructor(_){super(),this.config=_,this.pattern=R(this.config.pattern,this.config.invert)}pre_tokenize_text(_,Be){return this.pattern===null?[]:this.config.invert?_.match(this.pattern)||[]:this.config.behavior?.toLowerCase()==="removed"?_.split(this.pattern).filter(Oe=>Oe):function(Oe,Ve){const $e=[];let fA=0;for(const NA of Oe.matchAll(Ve)){const He=NA[0];fA0&&$e.push(He),fA=NA.index+He.length}return fAmA.fromConfig(Be))}post_process(_,Be=null,Oe={}){let Ve;for(const $e of this.processors)if($e instanceof vA)_=$e.post_process(_).tokens,Be&&(Be=$e.post_process(Be).tokens);else{const fA=$e.post_process(_,Be,Oe);_=fA.tokens,Ve=fA.token_type_ids}return{tokens:_,token_type_ids:Ve}}}class YA extends k.Callable{constructor(_){super(),this.config=_,this.added_tokens=[],this.end_of_word_suffix=null,this.trim_offsets=_.trim_offsets}static fromConfig(_){if(_===null)return null;switch(_.type){case"WordPiece":return new me(_);case"Metaspace":return new TA(_);case"ByteLevel":return new Se(_);case"Replace":return new J(_);case"ByteFallback":return new OA(_);case"Fuse":return new ue(_);case"Strip":return new $(_);case"Sequence":return new dA(_);case"CTC":return new qe(_);case"BPEDecoder":return new oA(_);default:throw new Error(`Unknown Decoder type: ${_.type}`)}}_call(_){return this.decode(_)}decode(_){return this.decode_chain(_).join("")}decode_chain(_){throw Error("`decode_chain` should be implemented in subclass.")}}class J extends YA{decode_chain(_){const Be=R(this.config.pattern);return Be===null?_:_.map(Oe=>Oe.replaceAll(Be,this.config.content))}}class OA extends YA{constructor(_){super(_),this.text_decoder=new TextDecoder}decode_chain(_){const Be=[];let Oe=[];for(const Ve of _){let $e=null;if(Ve.length===6&&Ve.startsWith("<0x")&&Ve.endsWith(">")){const fA=parseInt(Ve.slice(3,5),16);isNaN(fA)||($e=fA)}if($e!==null)Oe.push($e);else{if(Oe.length>0){const fA=this.text_decoder.decode(Uint8Array.from(Oe));Be.push(fA),Oe=[]}Be.push(Ve)}}if(Oe.length>0){const Ve=this.text_decoder.decode(Uint8Array.from(Oe));Be.push(Ve),Oe=[]}return Be}}class ue extends YA{decode_chain(_){return[_.join("")]}}class $ extends YA{constructor(_){super(_),this.content=this.config.content,this.start=this.config.start,this.stop=this.config.stop}decode_chain(_){return _.map(Be=>{let Oe=0;for(let $e=0;$e(Oe!==0&&(Be=Be.startsWith(this.config.prefix)?Be.replace(this.config.prefix,""):" "+Be),this.cleanup&&(Be=xe(Be)),Be))}}class Se extends YA{constructor(_){super(_),this.byte_decoder=P,this.text_decoder=new TextDecoder("utf-8",{fatal:!1,ignoreBOM:!0}),this.end_of_word_suffix=null}convert_tokens_to_string(_){const Be=_.join(""),Oe=new Uint8Array([...Be].map(Ve=>this.byte_decoder[Ve]));return this.text_decoder.decode(Oe)}decode_chain(_){const Be=[];let Oe=[];for(const Ve of _)this.added_tokens.find($e=>$e.content===Ve)!==void 0?(Oe.length>0&&(Be.push(this.convert_tokens_to_string(Oe)),Oe=[]),Be.push(Ve)):Oe.push(Ve);return Oe.length>0&&Be.push(this.convert_tokens_to_string(Oe)),Be}}class qe extends YA{constructor(_){super(_),this.pad_token=this.config.pad_token,this.word_delimiter_token=this.config.word_delimiter_token,this.cleanup=this.config.cleanup}convert_tokens_to_string(_){if(_.length===0)return"";const Be=[_[0]];for(let Ve=1;Ve<_.length;++Ve)_[Ve]!==Be.at(-1)&&Be.push(_[Ve]);let Oe=Be.filter(Ve=>Ve!==this.pad_token).join("");return this.cleanup&&(Oe=xe(Oe).replaceAll(this.word_delimiter_token," ").trim()),Oe}decode_chain(_){return[this.convert_tokens_to_string(_)]}}class dA extends YA{constructor(_){super(_),this.decoders=_.decoders.map(Be=>YA.fromConfig(Be))}decode_chain(_){return this.decoders.reduce((Be,Oe)=>Oe.decode_chain(Be),_)}}class oA extends YA{constructor(_){super(_),this.suffix=this.config.suffix}decode_chain(_){return _.map((Be,Oe)=>Be.replaceAll(this.suffix,Oe===_.length-1?"":" "))}}class BA extends YA{decode_chain(_){let Be="";for(let Oe=1;Oe<_.length;Oe+=2)Be+=_[Oe];return[Be]}}class QA extends aA{constructor(_){super(),this.addPrefixSpace=_.add_prefix_space,this.replacement=_.replacement,this.strRep=_.str_rep||this.replacement,this.prepend_scheme=_.prepend_scheme??"always"}pre_tokenize_text(_,{section_index:Be}={}){let Oe=_.replaceAll(" ",this.strRep);return this.addPrefixSpace&&!Oe.startsWith(this.replacement)&&(this.prepend_scheme==="always"||this.prepend_scheme==="first"&&Be===0)&&(Oe=this.strRep+Oe),[Oe]}}class TA extends YA{constructor(_){super(_),this.addPrefixSpace=_.add_prefix_space,this.replacement=_.replacement}decode_chain(_){const Be=[];for(let Oe=0;Oe<_.length;++Oe){let Ve=_[Oe].replaceAll(this.replacement," ");this.addPrefixSpace&&Oe==0&&Ve.startsWith(" ")&&(Ve=Ve.substring(1)),Be.push(Ve)}return Be}}class Mt extends Ye{constructor(_){super(_),this.charsmap=_.precompiled_charsmap}normalize(_){return(_=(_=_.replace(/[\u0001-\u0008\u000B\u000E-\u001F\u007F\u008F\u009F]/gm,"")).replace(/[\u0009\u000A\u000C\u000D\u00A0\u1680\u2000-\u200F\u2028\u2029\u202F\u205F\u2581\u3000\uFEFF\uFFFD]/gm," ")).includes("~")?_=_.split("~").map(Oe=>Oe.normalize("NFKC")).join("~"):_=_.normalize("NFKC"),_}}class Tt extends aA{constructor(_){super(),this.tokenizers=_.pretokenizers.map(Be=>aA.fromConfig(Be))}pre_tokenize_text(_,Be){return this.tokenizers.reduce((Oe,Ve)=>Ve.pre_tokenize(Oe,Be),[_])}}class gt extends aA{constructor(_){super()}pre_tokenize_text(_,Be){return _.match(/\w+|[^\w\s]+/g)||[]}}class Ct extends aA{constructor(_){super()}pre_tokenize_text(_,Be){return function(Oe){return Oe.match(/\S+/g)||[]}(_)}}class $t extends aA{constructor(_){super(),this.config=_,this.pattern=R(this.config.pattern),this.content=this.config.content}pre_tokenize_text(_,Be){return this.pattern===null?[_]:[_.replaceAll(this.pattern,this.config.content)]}}const Qr=["bos_token","eos_token","unk_token","sep_token","pad_token","cls_token","mask_token"];function tr(tA,_,Be,Oe){for(const Ve of Object.keys(tA)){const $e=_-tA[Ve].length,fA=Be(Ve),NA=new Array($e).fill(fA);tA[Ve]=Oe==="right"?(0,z.mergeArrays)(tA[Ve],NA):(0,z.mergeArrays)(NA,tA[Ve])}}function da(tA,_){for(const Be of Object.keys(tA))tA[Be].length=_}class bt extends k.Callable{return_token_type_ids=!1;padding_side="right";constructor(_,Be){super(),this._tokenizer_config=Be,this.normalizer=Ye.fromConfig(_.normalizer),this.pre_tokenizer=aA.fromConfig(_.pre_tokenizer),this.model=l.fromConfig(_.model,Be),this.post_processor=mA.fromConfig(_.post_processor),this.decoder=YA.fromConfig(_.decoder),this.special_tokens=[],this.all_special_ids=[],this.added_tokens=[];for(const Oe of _.added_tokens){const Ve=new e(Oe);this.added_tokens.push(Ve),this.model.tokens_to_ids.set(Ve.content,Ve.id),this.model.vocab[Ve.id]=Ve.content,Ve.special&&(this.special_tokens.push(Ve.content),this.all_special_ids.push(Ve.id))}if(this.additional_special_tokens=Be.additional_special_tokens??[],this.special_tokens.push(...this.additional_special_tokens),this.special_tokens=[...new Set(this.special_tokens)],this.decoder&&(this.decoder.added_tokens=this.added_tokens,this.decoder.end_of_word_suffix=this.model.end_of_word_suffix),this.added_tokens_regex=this.added_tokens.length>0?new RegExp(this.added_tokens.slice().sort((Oe,Ve)=>Ve.content.length-Oe.content.length).map(Oe=>`${Oe.lstrip?"\\s*":""}(${(0,z.escapeRegExp)(Oe.content)})${Oe.rstrip?"\\s*":""}`).join("|")):null,this.mask_token=this.getToken("mask_token"),this.mask_token_id=this.model.tokens_to_ids.get(this.mask_token),this.pad_token=this.getToken("pad_token","eos_token"),this.pad_token_id=this.model.tokens_to_ids.get(this.pad_token),this.sep_token=this.getToken("sep_token"),this.sep_token_id=this.model.tokens_to_ids.get(this.sep_token),this.unk_token=this.getToken("unk_token"),this.unk_token_id=this.model.tokens_to_ids.get(this.unk_token),this.bos_token=this.getToken("bos_token"),this.bos_token_id=this.model.tokens_to_ids.get(this.bos_token),this.eos_token=this.getToken("eos_token"),this.eos_token_id=this.model.tokens_to_ids.get(this.eos_token),this.model_max_length=Be.model_max_length,this.remove_space=Be.remove_space,this.clean_up_tokenization_spaces=Be.clean_up_tokenization_spaces??!0,this.do_lowercase_and_remove_accent=Be.do_lowercase_and_remove_accent??!1,Be.padding_side&&(this.padding_side=Be.padding_side),this.legacy=!1,this.chat_template=Be.chat_template??null,Array.isArray(this.chat_template)){const Oe=Object.create(null);for(const{name:Ve,template:$e}of this.chat_template){if(typeof Ve!="string"||typeof $e!="string")throw new Error('Chat template must be a list of objects with "name" and "template" properties');Oe[Ve]=$e}this.chat_template=Oe}this._compiled_template_cache=new Map}getToken(..._){for(const Be of _){const Oe=this._tokenizer_config[Be];if(Oe){if(typeof Oe=="object"){if(Oe.__type==="AddedToken")return Oe.content;throw Error(`Unknown token: ${Oe}`)}return Oe}}return null}static async from_pretrained(_,{progress_callback:Be=null,config:Oe=null,cache_dir:Ve=null,local_files_only:$e=!1,revision:fA="main",legacy:NA=null}={}){return new this(...await X(_,{progress_callback:Be,config:Oe,cache_dir:Ve,local_files_only:$e,revision:fA,legacy:NA}))}_call(_,{text_pair:Be=null,add_special_tokens:Oe=!0,padding:Ve=!1,truncation:$e=null,max_length:fA=null,return_tensor:NA=!0,return_token_type_ids:He=null}={}){const VA=Array.isArray(_);let bA;if(VA){if(_.length===0)throw Error("text array must be non-empty");if(Be!==null){if(!Array.isArray(Be))throw Error("text_pair must also be an array");if(_.length!==Be.length)throw Error("text and text_pair must have the same length");bA=_.map((Vt,cr)=>this._encode_plus(Vt,{text_pair:Be[cr],add_special_tokens:Oe,return_token_type_ids:He}))}else bA=_.map(Vt=>this._encode_plus(Vt,{add_special_tokens:Oe,return_token_type_ids:He}))}else{if(_==null)throw Error("text may not be null or undefined");if(Array.isArray(Be))throw Error("When specifying `text_pair`, since `text` is a string, `text_pair` must also be a string (i.e., not an array).");bA=[this._encode_plus(_,{text_pair:Be,add_special_tokens:Oe,return_token_type_ids:He})]}if(fA===null?fA=Ve==="max_length"?this.model_max_length:(0,L.max)(bA.map(Vt=>Vt.input_ids.length))[0]:$e||console.warn("Truncation was not explicitly activated but `max_length` is provided a specific value, please use `truncation=true` to explicitly truncate examples to max length."),fA=Math.min(fA,this.model_max_length??1/0),Ve||$e)for(let Vt=0;VtfA?$e&&da(bA[Vt],fA):Ve&&tr(bA[Vt],fA,cr=>cr==="input_ids"?this.pad_token_id:0,this.padding_side));const Yt={};if(NA){if((!Ve||!$e)&&bA.some(cr=>{for(const sr of Object.keys(cr))if(cr[sr].length!==bA[0][sr]?.length)return!0;return!1}))throw Error("Unable to create tensor, you should probably activate truncation and/or padding with 'padding=true' and 'truncation=true' to have batched tensors with the same length.");const Vt=[bA.length,bA[0].input_ids.length];for(const cr of Object.keys(bA[0]))Yt[cr]=new j.Tensor("int64",BigInt64Array.from(bA.flatMap(sr=>sr[cr]).map(BigInt)),Vt)}else{for(const Vt of Object.keys(bA[0]))Yt[Vt]=bA.map(cr=>cr[Vt]);if(!VA)for(const Vt of Object.keys(Yt))Yt[Vt]=Yt[Vt][0]}return Yt}_encode_text(_){return _===null?null:(this.added_tokens_regex?_.split(this.added_tokens_regex).filter(Ve=>Ve):[_]).map((Ve,$e)=>{if(this.added_tokens.find(NA=>NA.content===Ve)!==void 0)return Ve;{if(this.remove_space===!0&&(Ve=Ve.trim().split(/\s+/).join(" ")),this.do_lowercase_and_remove_accent&&(Ve=function(He){return Ee(He.toLowerCase())}(Ve)),this.normalizer!==null&&(Ve=this.normalizer(Ve)),Ve.length===0)return[];const NA=this.pre_tokenizer!==null?this.pre_tokenizer(Ve,{section_index:$e}):[Ve];return this.model(NA)}}).flat()}_encode_plus(_,{text_pair:Be=null,add_special_tokens:Oe=!0,return_token_type_ids:Ve=null}={}){const{tokens:$e,token_type_ids:fA}=this._tokenize_helper(_,{pair:Be,add_special_tokens:Oe}),NA=this.model.convert_tokens_to_ids($e),He={input_ids:NA,attention_mask:new Array(NA.length).fill(1)};return(Ve??this.return_token_type_ids)&&fA&&(He.token_type_ids=fA),He}_tokenize_helper(_,{pair:Be=null,add_special_tokens:Oe=!1}={}){const Ve=this._encode_text(_),$e=this._encode_text(Be);return this.post_processor?this.post_processor(Ve,$e,{add_special_tokens:Oe}):{tokens:(0,z.mergeArrays)(Ve??[],$e??[])}}tokenize(_,{pair:Be=null,add_special_tokens:Oe=!1}={}){return this._tokenize_helper(_,{pair:Be,add_special_tokens:Oe}).tokens}encode(_,{text_pair:Be=null,add_special_tokens:Oe=!0,return_token_type_ids:Ve=null}={}){return this._encode_plus(_,{text_pair:Be,add_special_tokens:Oe,return_token_type_ids:Ve}).input_ids}batch_decode(_,Be={}){return _ instanceof j.Tensor&&(_=_.tolist()),_.map(Oe=>this.decode(Oe,Be))}decode(_,Be={}){if(_ instanceof j.Tensor&&(_=be(_)),!Array.isArray(_)||_.length===0||!(0,z.isIntegralNumber)(_[0]))throw Error("token_ids must be a non-empty array of integers.");return this.decode_single(_,Be)}decode_single(_,{skip_special_tokens:Be=!1,clean_up_tokenization_spaces:Oe=null}){let Ve=this.model.convert_ids_to_tokens(_);Be&&(Ve=Ve.filter(fA=>!this.special_tokens.includes(fA)));let $e=this.decoder?this.decoder(Ve):Ve.join(" ");return this.decoder&&this.decoder.end_of_word_suffix&&($e=$e.replaceAll(this.decoder.end_of_word_suffix," "),Be&&($e=$e.trim())),(Oe??this.clean_up_tokenization_spaces)&&($e=xe($e)),$e}get_chat_template({chat_template:_=null,tools:Be=null}={}){if(this.chat_template&&typeof this.chat_template=="object"){const Oe=this.chat_template;if(_!==null&&Object.hasOwn(Oe,_))_=Oe[_];else if(_===null)if(Be!==null&&"tool_use"in Oe)_=Oe.tool_use;else{if(!("default"in Oe))throw Error(`This model has multiple chat templates with no default specified! Please either pass a chat template or the name of the template you wish to use to the 'chat_template' argument. Available template names are ${Object.keys(Oe).sort()}.`);_=Oe.default}}else if(_===null){if(!this.chat_template)throw Error("Cannot use apply_chat_template() because tokenizer.chat_template is not set and no template argument was passed! For information about writing templates and setting the tokenizer.chat_template attribute, please see the documentation at https://huggingface.co/docs/transformers/main/en/chat_templating");_=this.chat_template}return _}apply_chat_template(_,{tools:Be=null,documents:Oe=null,chat_template:Ve=null,add_generation_prompt:$e=!1,tokenize:fA=!0,padding:NA=!1,truncation:He=!1,max_length:VA=null,return_tensor:bA=!0,return_dict:Yt=!1,tokenizer_kwargs:Vt={},...cr}={}){if(typeof(Ve=this.get_chat_template({chat_template:Ve,tools:Be}))!="string")throw Error("chat_template must be a string, but got "+typeof Ve);let sr=this._compiled_template_cache.get(Ve);sr===void 0&&(sr=new W.Template(Ve),this._compiled_template_cache.set(Ve,sr));const jt=Object.create(null);for(const KA of Qr){const Jt=this.getToken(KA);Jt&&(jt[KA]=Jt)}const jA=sr.render({messages:_,add_generation_prompt:$e,tools:Be,documents:Oe,...jt,...cr});if(fA){const KA=this._call(jA,{add_special_tokens:!1,padding:NA,truncation:He,max_length:VA,return_tensor:bA,...Vt});return Yt?KA:KA.input_ids}return jA}}class Ka extends bt{return_token_type_ids=!0}class Oa extends bt{return_token_type_ids=!0}class Ia extends bt{return_token_type_ids=!0}class ZA extends bt{return_token_type_ids=!0}class $A extends bt{return_token_type_ids=!0}class PA extends bt{return_token_type_ids=!0}class qt extends bt{return_token_type_ids=!0}class cs extends bt{return_token_type_ids=!0}class Za extends bt{return_token_type_ids=!0}class zs extends bt{}class ws extends bt{}class ks extends bt{return_token_type_ids=!0;constructor(_,Be){super(_,Be),console.warn('WARNING: `XLMTokenizer` is not yet supported by Hugging Face\'s "fast" tokenizers library. Therefore, you may experience slightly inaccurate results.')}}class Fs extends bt{return_token_type_ids=!0}class $r extends bt{}class xt extends bt{}class va extends bt{}class Tr extends bt{constructor(_,Be){super(_,Be),this.languageRegex=/^[a-z]{2}_[A-Z]{2}$/,this.language_codes=this.special_tokens.filter(Oe=>this.languageRegex.test(Oe)),this.lang_to_token=Oe=>Oe}_build_translation_inputs(_,Be,Oe){return xs(this,_,Be,Oe)}}class Hr extends Tr{}class us extends bt{}class Kt extends bt{}const Xa="▁";class gs extends bt{padding_side="left";constructor(_,Be){super(_,Be),this.legacy=Be.legacy??!0,this.legacy||(this.normalizer=null,this.pre_tokenizer=new QA({replacement:Xa,add_prefix_space:!0,prepend_scheme:"first"}))}_encode_text(_){if(_===null)return null;if(this.legacy||_.length===0)return super._encode_text(_);let Be=super._encode_text(Xa+_.replaceAll(Xa," "));return Be.length>1&&Be[0]===Xa&&this.special_tokens.includes(Be[1])&&(Be=Be.slice(1)),Be}}class mn extends bt{}class _s extends bt{}class $s extends bt{}class Cn extends bt{}class Ur extends bt{}class ts extends bt{}class ds extends bt{}class en extends bt{}class qa extends bt{}function xs(tA,_,Be,Oe){if(!("language_codes"in tA)||!Array.isArray(tA.language_codes))throw new Error("Tokenizer must have `language_codes` attribute set and it should be an array of language ids.");if(!("languageRegex"in tA&&tA.languageRegex instanceof RegExp))throw new Error("Tokenizer must have `languageRegex` attribute set and it should be a regular expression.");if(!("lang_to_token"in tA)||typeof tA.lang_to_token!="function")throw new Error("Tokenizer must have `lang_to_token` attribute set and it should be a function.");const Ve=Oe.src_lang,$e=Oe.tgt_lang;if(!tA.language_codes.includes($e))throw new Error(`Target language code "${$e}" is not valid. Must be one of: {${tA.language_codes.join(", ")}}`);if(Ve!==void 0){if(!tA.language_codes.includes(Ve))throw new Error(`Source language code "${Ve}" is not valid. Must be one of: {${tA.language_codes.join(", ")}}`);for(const fA of tA.post_processor.config.single)if("SpecialToken"in fA&&tA.languageRegex.test(fA.SpecialToken.id)){fA.SpecialToken.id=tA.lang_to_token(Ve);break}}return Oe.forced_bos_token_id=tA.model.convert_tokens_to_ids([tA.lang_to_token($e)])[0],tA._call(_,Be)}class kr extends bt{constructor(_,Be){super(_,Be),this.languageRegex=/^[a-z]{3}_[A-Z][a-z]{3}$/,this.language_codes=this.special_tokens.filter(Oe=>this.languageRegex.test(Oe)),this.lang_to_token=Oe=>Oe}_build_translation_inputs(_,Be,Oe){return xs(this,_,Be,Oe)}}class Ss extends bt{constructor(_,Be){super(_,Be),this.languageRegex=/^__[a-z]{2,3}__$/,this.language_codes=this.special_tokens.filter(Oe=>this.languageRegex.test(Oe)).map(Oe=>Oe.slice(2,-2)),this.lang_to_token=Oe=>`__${Oe}__`}_build_translation_inputs(_,Be,Oe){return xs(this,_,Be,Oe)}}class Ns extends bt{get timestamp_begin(){return this.model.convert_tokens_to_ids(["<|notimestamps|>"])[0]+1}_decode_asr(_,{return_timestamps:Be=!1,return_language:Oe=!1,time_precision:Ve=null,force_full_sequences:$e=!0}={}){if(Ve===null)throw Error("Must specify time_precision");let fA=null;const NA=Be==="word";function He(){return{language:fA,timestamp:[null,null],text:""}}const VA=[];let bA=He(),Yt=0;const Vt=this.timestamp_begin,cr=Vt+1500;let sr=[],jt=[],jA=!1,KA=null;const Jt=new Set(this.all_special_ids);for(const nr of _){const rt=nr.tokens,dr=NA?nr.token_timestamps:null;let uA=null,JA=Vt;if("stride"in nr){const[Rr,Pr,Cr]=nr.stride;if(Yt-=Pr,KA=Rr-Cr,Pr&&(JA=Pr/Ve+Vt),Cr)for(let Ut=rt.length-1;Ut>=0;--Ut){const xr=Number(rt[Ut]);if(xr>=Vt){if(uA!==null&&(xr-Vt)*Ve=Vt&&Pr<=cr){const Cr=(Pr-Vt)*Ve+Yt,Ut=(0,L.round)(Cr,2);if(uA!==null&&Pr>=uA)jA=!0;else if(jA||sr.length>0&&Pr0?(sr.push(pa),NA&&jt.push(Nr)):sr.every(Rr=>Rr.length===0)&&(bA=He(),sr=[],pa=[],jt=[],Nr=[])}if(sr.length>0){if($e&&Be)throw new Error("Whisper did not predict an ending timestamp, which can happen if audio is cut off in the middle of a word. Also make sure WhisperTimeStampLogitsProcessor was used during generation.");const[nr,rt]=this.findLongestCommonSequence(sr,jt),dr=this.decode(nr);bA.text=dr,NA&&(bA.words=this.collateWordTimestamps(nr,rt,fA)),VA.push(bA)}let La=Object.create(null);const fa=VA.map(nr=>nr.text).join("");if(Be||Oe){for(let nr=0;nr0;let NA=fA?[]:null,He=fA?Be[0]:null;for(let VA=1;VA<_.length;++VA){const bA=_[VA];let Yt=0,Vt=[Ve,Ve,0,0];const cr=bA.length;for(let fa=1;faPr===pa[Cr]&&He[nr+Cr]<=Be[VA][uA+Cr]).length:dr.filter((Pr,Cr)=>Pr===pa[Cr]).length;const Rr=Nr/fa+fa/1e4;Nr>1&&Rr>Yt&&(Yt=Rr,Vt=[nr,rt,uA,JA])}const[sr,jt,jA,KA]=Vt,Jt=Math.floor((jt+sr)/2),La=Math.floor((KA+jA)/2);$e.push(...Oe.slice(0,Jt)),Oe=bA.slice(La),Ve=Oe.length,fA&&(NA.push(...He.slice(0,Jt)),He=Be[VA].slice(La))}return $e.push(...Oe),fA?(NA.push(...He),[$e,NA]):[$e,[]]}collateWordTimestamps(_,Be,Oe){const[Ve,$e,fA]=this.combineTokensIntoWords(_,Oe),NA=[];for(let He=0;He=Ve){const NA=((fA-Ve)*Oe).toFixed(2);$e.push(`<|${NA}|>`),$e.push([])}else $e[$e.length-1].push(fA);return $e=$e.map(fA=>typeof fA=="string"?fA:super.decode(fA,Be)),$e.join("")}splitTokensOnUnicode(_){const Be=this.decode(_,{decode_with_timestamps:!0}),Oe=[],Ve=[],$e=[];let fA=[],NA=[],He=0;for(let VA=0;VA<_.length;++VA){const bA=_[VA];fA.push(bA),NA.push(VA);const Yt=this.decode(fA,{decode_with_timestamps:!0});Yt.includes("�")&&Be[He+Yt.indexOf("�")]!=="�"||(Oe.push(Yt),Ve.push(fA),$e.push(NA),fA=[],NA=[],He+=Yt.length)}return[Oe,Ve,$e]}splitTokensOnSpaces(_){const[Be,Oe,Ve]=this.splitTokensOnUnicode(_),$e=[],fA=[],NA=[],He=new RegExp(`^[${ie}]$`,"gu");for(let VA=0;VA=this.model.tokens_to_ids.get("<|endoftext|>"),sr=bA.startsWith(" "),jt=bA.trim(),jA=He.test(jt);if(cr||sr||jA||$e.length===0)$e.push(bA),fA.push(Yt),NA.push(Vt);else{const KA=$e.length-1;$e[KA]+=bA,fA[KA].push(...Yt),NA[KA].push(...Vt)}}return[$e,fA,NA]}mergePunctuations(_,Be,Oe,Ve,$e){const fA=structuredClone(_),NA=structuredClone(Be),He=structuredClone(Oe);let VA=fA.length-2,bA=fA.length-1;for(;VA>=0;)fA[VA].startsWith(" ")&&Ve.includes(fA[VA].trim())?(fA[bA]=fA[VA]+fA[bA],NA[bA]=(0,z.mergeArrays)(NA[VA],NA[bA]),He[bA]=(0,z.mergeArrays)(He[VA],He[bA]),fA[VA]="",NA[VA]=[],He[VA]=[]):bA=VA,--VA;for(VA=0,bA=1;bAYt),NA.filter(Yt=>Yt.length>0),He.filter(Yt=>Yt.length>0)]}}class bn extends bt{}class Os extends bt{}class Bs extends bt{}class Ls extends bt{constructor(_,Be){super(_,Be),this.languageRegex=/^(>>\w+<<)\s*/g,this.supported_language_codes=this.model.vocab.filter(Oe=>this.languageRegex.test(Oe)),console.warn('WARNING: `MarianTokenizer` is not yet supported by Hugging Face\'s "fast" tokenizers library. Therefore, you may experience slightly inaccurate results.')}_encode_text(_){if(_===null)return null;const[Be,...Oe]=_.trim().split(this.languageRegex);if(Oe.length===0)return super._encode_text(Be);if(Oe.length===2){const[Ve,$e]=Oe;return this.supported_language_codes.includes(Ve)||console.warn(`Unsupported language code "${Ve}" detected, which may lead to unexpected behavior. Should be one of: ${JSON.stringify(this.supported_language_codes)}`),(0,z.mergeArrays)([Ve],super._encode_text($e))}}}class ys extends bt{}class wt extends bt{}class Pt extends bt{}class wa extends bt{}class An extends bt{}class Es extends bt{constructor(_,Be){super(_,Be),this.decoder=new BA({})}}class Ys extends bt{}class rs extends bt{}class Hs{static TOKENIZER_CLASS_MAPPING={T5Tokenizer:$r,DistilBertTokenizer:zs,CamembertTokenizer:ws,DebertaTokenizer:$A,DebertaV2Tokenizer:PA,BertTokenizer:Ka,HerbertTokenizer:qt,ConvBertTokenizer:cs,RoFormerTokenizer:Za,XLMTokenizer:ks,ElectraTokenizer:Fs,MobileBertTokenizer:Ia,SqueezeBertTokenizer:ZA,AlbertTokenizer:Oa,GPT2Tokenizer:xt,BartTokenizer:va,MBartTokenizer:Tr,MBart50Tokenizer:Hr,RobertaTokenizer:us,WhisperTokenizer:Ns,CodeGenTokenizer:bn,CLIPTokenizer:Os,SiglipTokenizer:Bs,MarianTokenizer:Ls,BloomTokenizer:Kt,NllbTokenizer:kr,M2M100Tokenizer:Ss,LlamaTokenizer:gs,CodeLlamaTokenizer:mn,XLMRobertaTokenizer:_s,MPNetTokenizer:$s,FalconTokenizer:Cn,GPTNeoXTokenizer:Ur,EsmTokenizer:ts,Wav2Vec2CTCTokenizer:ys,BlenderbotTokenizer:wt,BlenderbotSmallTokenizer:Pt,SpeechT5Tokenizer:wa,NougatTokenizer:An,VitsTokenizer:Es,Qwen2Tokenizer:ds,GemmaTokenizer:en,Grok1Tokenizer:qa,CohereTokenizer:Ys,MgpstrTokenizer:rs,PreTrainedTokenizer:bt};static async from_pretrained(_,{progress_callback:Be=null,config:Oe=null,cache_dir:Ve=null,local_files_only:$e=!1,revision:fA="main",legacy:NA=null}={}){const[He,VA]=await X(_,{progress_callback:Be,config:Oe,cache_dir:Ve,local_files_only:$e,revision:fA,legacy:NA}),bA=VA.tokenizer_class?.replace(/Fast$/,"")??"PreTrainedTokenizer";let Yt=this.TOKENIZER_CLASS_MAPPING[bA];return Yt||(console.warn(`Unknown tokenizer class "${bA}", attempting to construct from base class.`),Yt=bt),new Yt(He,VA)}}},"./src/utils/audio.js":(x,C,d)=>{d.r(C),d.d(C,{RawAudio:()=>e,hamming:()=>R,hanning:()=>X,mel_filter_bank:()=>se,read_audio:()=>W,spectrogram:()=>we,window_function:()=>u});var k=d("./src/utils/hub.js"),z=d("./src/utils/maths.js"),K=d("./src/utils/core.js"),L=d("./src/env.js"),j=d("?7a2c"),q=d("./src/utils/tensor.js");async function W(l,M){if(typeof AudioContext>"u")throw Error("Unable to load audio from path/URL since `AudioContext` is not available in your environment. Instead, audio data should be passed directly to the pipeline/processor. For more information and some example code, see https://huggingface.co/docs/transformers.js/guides/node-audio-processing.");const ge=await(await(0,k.getFile)(l)).arrayBuffer(),D=new AudioContext({sampleRate:M});M===void 0&&console.warn(`No sampling rate provided, using default of ${D.sampleRate}Hz.`);const P=await D.decodeAudioData(ge);let Re;if(P.numberOfChannels===2){const Ne=Math.sqrt(2),Ye=P.getChannelData(0),Je=P.getChannelData(1);Re=new Float32Array(Ye.length);for(let AA=0;AA2595*Math.log10(1+l/700),kaldi:l=>1127*Math.log(1+l/700),slaney:(l,M=1e3,ge=15,D=27/Math.log(6.4))=>l>=M?ge+Math.log(l/M)*D:3*l/200};function be(l,M="htk"){const ge=ae[M];if(!ge)throw new Error('mel_scale should be one of "htk", "slaney" or "kaldi".');return typeof l=="number"?ge(l):l.map(D=>ge(D))}const xe={htk:l=>700*(10**(l/2595)-1),kaldi:l=>700*(Math.exp(l/1127)-1),slaney:(l,M=1e3,ge=15,D=Math.log(6.4)/27)=>l>=ge?M*Math.exp(D*(l-ge)):200*l/3};function Ee(l,M,ge){const D=(M-l)/(ge-1);return Float64Array.from({length:ge},(P,Re)=>l+D*Re)}function se(l,M,ge,D,P,Re=null,Ne="htk",Ye=!1){if(Re!==null&&Re!=="slaney")throw new Error('norm must be one of null or "slaney"');const Je=Ee(be(ge,Ne),be(D,Ne),M+2);let AA,xA=function(Ge,Ie="htk"){const ze=xe[Ie];if(!ze)throw new Error('mel_scale should be one of "htk", "slaney" or "kaldi".');return typeof Ge=="number"?ze(Ge):Ge.map(Ue=>ze(Ue))}(Je,Ne);if(Ye){const Ge=P/(2*l);AA=be(Float64Array.from({length:l},(Ie,ze)=>ze*Ge),Ne),xA=Je}else AA=Ee(0,Math.floor(P/2),l);const GA=function(Ge,Ie){const ze=Float64Array.from({length:Ie.length-1},(aA,nA)=>Ie[nA+1]-Ie[nA]),Ue=Array.from({length:Ge.length},()=>new Array(Ie.length));for(let aA=0;aAnew Array(Ge.length));for(let aA=0;aAP)throw Error(`frame_length (${ge}) may not be larger than fft_length (${P})`);if(iA!==ge)throw new Error(`Length of the window (${iA}) must equal frame_length (${ge})`);if(D<=0)throw new Error("hop_length must be greater than zero");if(Re===null&&xA!==null)throw new Error("You have provided `mel_filters` but `power` is `None`. Mel spectrogram computation is not yet supported for complex-valued spectrogram. Specify `power` to fix this issue.");if(Ne){if(Ye!=="reflect")throw new Error(`pad_mode="${Ye}" not implemented yet.`);const ue=Math.floor((P-1)/2)+1;l=function($,me,Se){const qe=new $.constructor($.length+me+Se),dA=$.length-1;for(let oA=0;oA<$.length;++oA)qe[me+oA]=$[oA];for(let oA=1;oA<=me;++oA)qe[me-oA]=$[(0,K.calculateReflectOffset)(oA,dA)];for(let oA=1;oA<=Se;++oA)qe[dA+me+oA]=$[(0,K.calculateReflectOffset)(dA-oA,dA)];return qe}(l,ue,ue)}let Fe=Math.floor(1+Math.floor((l.length-ge)/D));kA!==null&&FeFe?nA&&(CA=aA):CA=mA=aA);const Te=new z.FFT(P),pA=new Float64Array(P),vA=new Float64Array(Te.outputBufferSize),SA=new Float32Array(Ze*CA);for(let ue=0;ue=1;--Se)pA[Se]-=AA*pA[Se-1];pA[0]*=1-AA}for(let Se=0;SeMath.pow(Ye,.85));break;default:throw new Error(`Unknown window type ${M}.`)}if(ge&&(Ne=Ne.subarray(0,l)),D===null)return Ne;if(l>D)throw new Error(`Length of the window (${l}) may not be larger than frame_length (${D})`);return Ne}function b(l,M,ge){for(let D=0;D{let Re=await P.arrayBuffer();j.writeFileSync(D,Buffer.from(Re))}}await ge(M,this.toBlob())}}},"./src/utils/constants.js":(x,C,d)=>{d.r(C),d.d(C,{CHAT_TEMPLATE_NAME:()=>q,CONFIG_NAME:()=>z,FEATURE_EXTRACTOR_NAME:()=>K,GENERATION_CONFIG_NAME:()=>W,GITHUB_ISSUE_URL:()=>k,IMAGE_PROCESSOR_NAME:()=>L,PROCESSOR_NAME:()=>j});const k="https://github.com/huggingface/transformers.js/issues/new/choose",z="config.json",K="preprocessor_config.json",L=K,j="processor_config.json",q="chat_template.json",W="generation_config.json"},"./src/utils/core.js":(x,C,d)=>{function k(ie,we){ie&&ie(we)}function z(ie){return Object.fromEntries(Object.entries(ie).map(([we,u])=>[u,we]))}function K(ie){return ie.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function L(ie){return ie?.prototype?.__proto__?.constructor?.name==="TypedArray"}function j(ie){return Number.isInteger(ie)||typeof ie=="bigint"}function q(ie){return ie==null||ie===-1}function W(ie){const we=[];let u=ie;for(;Array.isArray(u);)we.push(u.length),u=u[0];return we}function S(ie,we,u=void 0){const b=ie[we];if(b!==void 0)return delete ie[we],b;if(u===void 0)throw Error(`Key ${we} does not exist in object.`);return u}function X(...ie){return Array.prototype.concat.apply([],ie)}function R(...ie){return ie.reduce((we,u)=>we.flatMap(b=>u.map(e=>[b,e])))}function ae(ie,we){return Math.abs((ie+we)%(2*we)-we)}function be(ie,we){const u=URL.createObjectURL(we),b=document.createElement("a");b.href=u,b.download=ie,b.click(),b.remove(),URL.revokeObjectURL(u)}function xe(ie,we){return Object.assign({},...we.map(u=>{if(ie[u]!==void 0)return{[u]:ie[u]}}))}function Ee(ie){let we=0;for(const u of ie)++we;return we}function se(ie,we){let u=0;for(const b of ie)b===we&&++u;return u}d.r(C),d.d(C,{calculateDimensions:()=>W,calculateReflectOffset:()=>ae,count:()=>se,dispatchCallback:()=>k,escapeRegExp:()=>K,isIntegralNumber:()=>j,isNullishDimension:()=>q,isTypedArray:()=>L,len:()=>Ee,mergeArrays:()=>X,pick:()=>xe,pop:()=>S,product:()=>R,reverseDictionary:()=>z,saveBlob:()=>be})},"./src/utils/data-structures.js":(x,C,d)=>{d.r(C),d.d(C,{CharTrie:()=>z,PriorityQueue:()=>k,TokenLattice:()=>L});class k{constructor(W=(X,R)=>X>R,S=1/0){this._heap=[],this._comparator=W,this._maxSize=S}get size(){return this._heap.length}isEmpty(){return this.size===0}peek(){return this._heap[0]}push(...W){return this.extend(W)}extend(W){for(const S of W)if(this.size0&&this._swap(0,S),this._heap.pop(),this._siftDown(),W}replace(W){const S=this.peek();return this._heap[0]=W,this._siftDown(),S}_parent(W){return(W+1>>>1)-1}_left(W){return 1+(W<<1)}_right(W){return W+1<<1}_greater(W,S){return this._comparator(this._heap[W],this._heap[S])}_swap(W,S){const X=this._heap[W];this._heap[W]=this._heap[S],this._heap[S]=X}_siftUp(){this._siftUpFrom(this.size-1)}_siftUpFrom(W){for(;W>0&&this._greater(W,this._parent(W));)this._swap(W,this._parent(W)),W=this._parent(W)}_siftDown(){let W=0;for(;this._left(W)[]),this.endNodes=Array.from({length:this.len+1},()=>[]);const R=new j(this.bosTokenId,0,0,0,0),ae=new j(this.eosTokenId,1,this.len,0,0);this.nodes.push(R.clone()),this.nodes.push(ae.clone()),this.beginNodes[this.len].push(ae),this.endNodes[0].push(R)}insert(W,S,X,R){const ae=this.nodes.length,be=new j(R,ae,W,S,X);this.beginNodes[W].push(be),this.endNodes[W+S].push(be),this.nodes.push(be)}viterbi(){const W=this.len;let S=0;for(;S<=W;){if(this.beginNodes[S].length==0)return[];for(let be of this.beginNodes[S]){be.prev=null;let xe=0,Ee=null;for(let se of this.endNodes[S]){const ie=se.backtraceScore+be.score;(Ee===null||ie>xe)&&(Ee=se.clone(),xe=ie)}if(Ee===null)return[];be.prev=Ee,be.backtraceScore=xe}++S}const X=[],R=this.beginNodes[W][0].prev;if(R===null)return[];let ae=R.clone();for(;ae.prev!==null;)X.push(ae.clone()),ae=ae.clone().prev.clone();return X.reverse(),X}piece(W){return this.chars.slice(W.pos,W.pos+W.length).join("")}tokens(){return this.viterbi().map(W=>this.piece(W))}tokenIds(){return this.viterbi().map(W=>W.tokenId)}}class j{constructor(W,S,X,R,ae){this.tokenId=W,this.nodeId=S,this.pos=X,this.length=R,this.score=ae,this.prev=null,this.backtraceScore=0}clone(){const W=new j(this.tokenId,this.nodeId,this.pos,this.length,this.score);return W.prev=this.prev,W.backtraceScore=this.backtraceScore,W}}},"./src/utils/devices.js":(x,C,d)=>{d.r(C),d.d(C,{DEVICE_TYPES:()=>k});const k=Object.freeze({auto:"auto",gpu:"gpu",cpu:"cpu",wasm:"wasm",webgpu:"webgpu",cuda:"cuda",dml:"dml",webnn:"webnn","webnn-npu":"webnn-npu","webnn-gpu":"webnn-gpu","webnn-cpu":"webnn-cpu"})},"./src/utils/dtypes.js":(x,C,d)=>{d.r(C),d.d(C,{DATA_TYPES:()=>L,DEFAULT_DEVICE_DTYPE_MAPPING:()=>j,DEFAULT_DTYPE_SUFFIX_MAPPING:()=>q,isWebGpuFp16Supported:()=>K});var k=d("./src/env.js"),z=d("./src/utils/devices.js");const K=function(){let W;return async function(){if(W===void 0)if(k.apis.IS_WEBGPU_AVAILABLE)try{W=(await navigator.gpu.requestAdapter()).features.has("shader-f16")}catch{W=!1}else W=!1;return W}}(),L=Object.freeze({auto:"auto",fp32:"fp32",fp16:"fp16",q8:"q8",int8:"int8",uint8:"uint8",q4:"q4",bnb4:"bnb4",q4f16:"q4f16"}),j=Object.freeze({[z.DEVICE_TYPES.wasm]:L.q8}),q=Object.freeze({[L.fp32]:"",[L.fp16]:"_fp16",[L.int8]:"_int8",[L.uint8]:"_uint8",[L.q8]:"_quantized",[L.q4]:"_q4",[L.q4f16]:"_q4f16",[L.bnb4]:"_bnb4"})},"./src/utils/generic.js":(x,C,d)=>{d.r(C),d.d(C,{Callable:()=>k});const k=class{constructor(){let z=function(...K){return z._call(...K)};return Object.setPrototypeOf(z,new.target.prototype)}_call(...z){throw Error("Must implement _call method in subclass")}}},"./src/utils/hub.js":(x,C,d)=>{d.r(C),d.d(C,{getFile:()=>S,getModelFile:()=>ae,getModelJSON:()=>be});var k=d("?7a2c"),z=d("?a42a"),K=d("./src/env.js"),L=d("./src/utils/core.js");const j={txt:"text/plain",html:"text/html",css:"text/css",js:"text/javascript",json:"application/json",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif"};class q{constructor(se){if(this.filePath=se,this.headers=new Headers,this.exists=k.existsSync(se),this.exists){this.status=200,this.statusText="OK";let ie=k.statSync(se);this.headers.set("content-length",ie.size.toString()),this.updateContentType();let we=this;this.body=new ReadableStream({start(u){we.arrayBuffer().then(b=>{u.enqueue(new Uint8Array(b)),u.close()})}})}else this.status=404,this.statusText="Not Found",this.body=null}updateContentType(){const se=this.filePath.toString().split(".").pop().toLowerCase();this.headers.set("content-type",j[se]??"application/octet-stream")}clone(){let se=new q(this.filePath);return se.exists=this.exists,se.status=this.status,se.statusText=this.statusText,se.headers=new Headers(this.headers),se}async arrayBuffer(){return(await k.promises.readFile(this.filePath)).buffer}async blob(){const se=await k.promises.readFile(this.filePath);return new Blob([se],{type:this.headers.get("content-type")})}async text(){return await k.promises.readFile(this.filePath,"utf8")}async json(){return JSON.parse(await this.text())}}function W(Ee,se=null,ie=null){let we;try{we=new URL(Ee)}catch{return!1}return!(se&&!se.includes(we.protocol))&&!(ie&&!ie.includes(we.hostname))}async function S(Ee){if(K.env.useFS&&!W(Ee,["http:","https:","blob:"]))return new q(Ee);if(typeof process<"u"&&process?.release?.name==="node"){const se=!!Kc?.TESTING_REMOTELY,ie=K.env.version,we=new Headers;if(we.set("User-Agent",`transformers.js/${ie}; is_ci/${se};`),W(Ee,["http:","https:"],["huggingface.co","hf.co"])){const u=Kc?.HF_TOKEN??Kc?.HF_ACCESS_TOKEN;u&&we.set("Authorization",`Bearer ${u}`)}return fetch(Ee,{headers:we})}return fetch(Ee)}const X={400:"Bad request error occurred while trying to load file",401:"Unauthorized access to file",403:"Forbidden access to file",404:"Could not locate file",408:"Request timeout error occurred while trying to load file",500:"Internal server error error occurred while trying to load file",502:"Bad gateway error occurred while trying to load file",503:"Service unavailable error occurred while trying to load file",504:"Gateway timeout error occurred while trying to load file"};class R{constructor(se){this.path=se}async match(se){let ie=z.join(this.path,se),we=new q(ie);return we.exists?we:void 0}async put(se,ie){const we=Buffer.from(await ie.arrayBuffer());let u=z.join(this.path,se);try{await k.promises.mkdir(z.dirname(u),{recursive:!0}),await k.promises.writeFile(u,we)}catch(b){console.warn("An error occurred while writing the file to cache:",b)}}}async function ae(Ee,se,ie=!0,we={}){if(!K.env.allowLocalModels){if(we.local_files_only)throw Error("Invalid configuration detected: local models are disabled (`env.allowLocalModels=false`) but you have requested to only use local models (`local_files_only=true`).");if(!K.env.allowRemoteModels)throw Error("Invalid configuration detected: both local and remote models are disabled. Fix by setting `env.allowLocalModels` or `env.allowRemoteModels` to `true`.")}let u;if((0,L.dispatchCallback)(we.progress_callback,{status:"initiate",name:Ee,file:se}),!u&&K.env.useBrowserCache){if(typeof caches>"u")throw Error("Browser cache is not available in this environment.");try{u=await caches.open("transformers-cache")}catch(AA){console.warn("An error occurred while opening the browser cache:",AA)}}if(!u&&K.env.useFSCache&&(u=new R(we.cache_dir??K.env.cacheDir)),!u&&K.env.useCustomCache){if(!K.env.customCache)throw Error("`env.useCustomCache=true`, but `env.customCache` is not defined.");if(!K.env.customCache.match||!K.env.customCache.put)throw new Error("`env.customCache` must be an object which implements the `match` and `put` functions of the Web Cache API. For more information, see https://developer.mozilla.org/en-US/docs/Web/API/Cache");u=K.env.customCache}const b=we.revision??"main";let e,l,M=xe(Ee,se),ge=xe(K.env.localModelPath,M),D=xe(K.env.remoteHost,K.env.remotePathTemplate.replaceAll("{model}",Ee).replaceAll("{revision}",encodeURIComponent(b)),se),P=b==="main"?M:xe(Ee,b,se),Re=u instanceof R?P:D,Ne=!1;u&&(l=await async function(AA,...xA){for(let GA of xA)try{let Ge=await AA.match(GA);if(Ge)return Ge}catch{continue}}(u,ge,Re));const Ye=l!==void 0;if(l===void 0){if(K.env.allowLocalModels)if(W(M,["http:","https:"])){if(we.local_files_only)throw new Error(`\`local_files_only=true\`, but attempted to load a remote file from: ${M}.`);if(!K.env.allowRemoteModels)throw new Error(`\`env.allowRemoteModels=false\`, but attempted to load a remote file from: ${M}.`)}else try{l=await S(ge),e=ge}catch(AA){console.warn(`Unable to load from local path "${ge}": "${AA}"`)}if(l===void 0||l.status===404){if(we.local_files_only||!K.env.allowRemoteModels){if(ie)throw Error(`\`local_files_only=true\` or \`env.allowRemoteModels=false\` and file was not found locally at "${ge}".`);return null}if(l=await S(D),l.status!==200)return function(AA,xA,GA){if(!GA)return null;const Ge=X[AA]??`Error (${AA}) occurred while trying to load file`;throw Error(`${Ge}: "${xA}".`)}(l.status,D,ie);e=Re}Ne=u&&typeof Response<"u"&&l instanceof Response&&l.status===200}let Je;return(0,L.dispatchCallback)(we.progress_callback,{status:"download",name:Ee,file:se}),we.progress_callback?Ye&&typeof navigator<"u"&&/firefox/i.test(navigator.userAgent)?(Je=new Uint8Array(await l.arrayBuffer()),(0,L.dispatchCallback)(we.progress_callback,{status:"progress",name:Ee,file:se,progress:100,loaded:Je.length,total:Je.length})):Je=await async function(AA,xA){const GA=AA.headers.get("Content-Length");GA===null&&console.warn("Unable to determine content-length from response headers. Will expand buffer when needed.");let Ge=parseInt(GA??"0"),Ie=new Uint8Array(Ge),ze=0;const Ue=AA.body.getReader();async function Pe(){const{done:kA,value:aA}=await Ue.read();if(kA)return;let nA=ze+aA.length;if(nA>Ge){Ge=nA;let EA=new Uint8Array(Ge);EA.set(Ie),Ie=EA}return Ie.set(aA,ze),ze=nA,xA({progress:ze/Ge*100,loaded:ze,total:Ge}),Pe()}return await Pe(),Ie}(l,AA=>{(0,L.dispatchCallback)(we.progress_callback,{status:"progress",name:Ee,file:se,...AA})}):Je=new Uint8Array(await l.arrayBuffer()),Ne&&e&&await u.match(e)===void 0&&await u.put(e,new Response(Je,{headers:l.headers})).catch(AA=>{console.warn(`Unable to add response to browser cache: ${AA}.`)}),(0,L.dispatchCallback)(we.progress_callback,{status:"done",name:Ee,file:se}),Je}async function be(Ee,se,ie=!0,we={}){let u=await ae(Ee,se,ie,we);if(u===null)return{};let b=new TextDecoder("utf-8").decode(u);return JSON.parse(b)}function xe(...Ee){return(Ee=Ee.map((se,ie)=>(ie&&(se=se.replace(new RegExp("^/"),"")),ie!==Ee.length-1&&(se=se.replace(new RegExp("/$"),"")),se))).join("/")}},"./src/utils/image.js":(x,C,d)=>{d.r(C),d.d(C,{RawImage:()=>be,load_image:()=>xe});var k=d("./src/utils/core.js"),z=d("./src/utils/hub.js"),K=d("./src/env.js"),L=d("./src/utils/tensor.js"),j=d("?2b25");let q,W,S;const X=K.apis.IS_BROWSER_ENV||K.apis.IS_WEBWORKER_ENV;if(X)q=(Ee,se)=>{if(!self.OffscreenCanvas)throw new Error("OffscreenCanvas not supported by this browser.");return new self.OffscreenCanvas(Ee,se)},S=self.createImageBitmap,W=self.ImageData;else{if(!j)throw new Error("Unable to load image processing library.");S=async Ee=>{const se=(await Ee.metadata()).channels,{data:ie,info:we}=await Ee.rotate().raw().toBuffer({resolveWithObject:!0}),u=new be(new Uint8ClampedArray(ie),we.width,we.height,we.channels);return se!==void 0&&se!==we.channels&&u.convert(se),u}}const R={0:"nearest",1:"lanczos",2:"bilinear",3:"bicubic",4:"box",5:"hamming"},ae=new Map([["png","image/png"],["jpg","image/jpeg"],["jpeg","image/jpeg"],["gif","image/gif"]]);class be{constructor(se,ie,we,u){this.data=se,this.width=ie,this.height=we,this.channels=u}get size(){return[this.width,this.height]}static async read(se){if(se instanceof be)return se;if(typeof se=="string"||se instanceof URL)return await this.fromURL(se);throw new Error("Unsupported input type: "+typeof se)}static fromCanvas(se){if(!X)throw new Error("fromCanvas() is only supported in browser environments.");const ie=se.getContext("2d").getImageData(0,0,se.width,se.height).data;return new be(ie,se.width,se.height,4)}static async fromURL(se){const ie=await(0,z.getFile)(se);if(ie.status!==200)throw new Error(`Unable to read image from "${se}" (${ie.status} ${ie.statusText})`);const we=await ie.blob();return this.fromBlob(we)}static async fromBlob(se){if(X){const ie=await S(se),we=q(ie.width,ie.height).getContext("2d");return we.drawImage(ie,0,0),new this(we.getImageData(0,0,ie.width,ie.height).data,ie.width,ie.height,4)}{const ie=j(await se.arrayBuffer());return await S(ie)}}static fromTensor(se,ie="CHW"){if(se.dims.length!==3)throw new Error(`Tensor should have 3 dimensions, but has ${se.dims.length} dimensions.`);if(ie==="CHW")se=se.transpose(1,2,0);else if(ie!=="HWC")throw new Error(`Unsupported channel format: ${ie}`);if(!(se.data instanceof Uint8ClampedArray||se.data instanceof Uint8Array))throw new Error(`Unsupported tensor type: ${se.type}`);switch(se.dims[2]){case 1:case 2:case 3:case 4:return new be(se.data,se.dims[1],se.dims[0],se.dims[2]);default:throw new Error(`Unsupported number of channels: ${se.dims[2]}`)}}grayscale(){if(this.channels===1)return this;const se=new Uint8ClampedArray(this.width*this.height*1);switch(this.channels){case 3:case 4:for(let ie=0,we=0;ie=0?M=we:D=-we,u>=0?ge=u:P=-u,l.drawImage(e,M,ge,se,ie,D,P,se,ie),new be(l.getImageData(0,0,se,ie).data,se,ie,4).convert(b)}{let b=this.toSharp();if(we>=0&&u>=0)b=b.extract({left:Math.floor(we),top:Math.floor(u),width:se,height:ie});else if(we<=0&&u<=0){const e=Math.floor(-u),l=Math.floor(-we);b=b.extend({top:e,left:l,right:se-this.width-l,bottom:ie-this.height-e})}else{let e=[0,0],l=0;u<0?(e[0]=Math.floor(-u),e[1]=ie-this.height-e[0]):l=Math.floor(u);let M=[0,0],ge=0;we<0?(M[0]=Math.floor(-we),M[1]=se-this.width-M[0]):ge=Math.floor(we),b=b.extend({top:e[0],bottom:e[1],left:M[0],right:M[1]}).extract({left:ge,top:l,width:se,height:ie})}return await S(b)}}async toBlob(se="image/png",ie=1){if(!X)throw new Error("toBlob() is only supported in browser environments.");return await this.toCanvas().convertToBlob({type:se,quality:ie})}toTensor(se="CHW"){let ie=new L.Tensor("uint8",new Uint8Array(this.data),[this.height,this.width,this.channels]);if(se!=="HWC"){if(se!=="CHW")throw new Error(`Unsupported channel format: ${se}`);ie=ie.permute(2,0,1)}return ie}toCanvas(){if(!X)throw new Error("toCanvas() is only supported in browser environments.");const se=this.clone().rgba(),ie=q(se.width,se.height),we=new W(se.data,se.width,se.height);return ie.getContext("2d").putImageData(we,0,0),ie}split(){const{data:se,width:ie,height:we,channels:u}=this,b=se.constructor,e=se.length/u,l=Array.from({length:u},()=>new b(e));for(let M=0;Mnew be(M,ie,we,1))}_update(se,ie,we,u=null){return this.data=se,this.width=ie,this.height=we,u!==null&&(this.channels=u),this}clone(){return new be(this.data.slice(),this.width,this.height,this.channels)}convert(se){if(this.channels===se)return this;switch(se){case 1:this.grayscale();break;case 3:this.rgb();break;case 4:this.rgba();break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this}async save(se){if(!X){if(K.apis.IS_FS_AVAILABLE)return await this.toSharp().toFile(se);throw new Error("Unable to save the image because filesystem is disabled in this environment.")}{if(K.apis.IS_WEBWORKER_ENV)throw new Error("Unable to save an image from a Web Worker.");const ie=se.split(".").pop().toLowerCase(),we=ae.get(ie)??"image/png",u=await this.toBlob(we);(0,k.saveBlob)(se,u)}}toSharp(){if(X)throw new Error("toSharp() is only supported in server-side environments.");return j(this.data,{raw:{width:this.width,height:this.height,channels:this.channels}})}}const xe=be.read.bind(be)},"./src/utils/maths.js":(x,C,d)=>{function k(u,[b,e,l],[M,ge],D="bilinear",P=!1){const Re=ge/l,Ne=M/e,Ye=new u.constructor(M*ge*b),Je=e*l,AA=M*ge;for(let xA=0;xA=0;--P)M[P]=Re,l[P]=b[e[P]],Re*=l[P];const ge=e.map((P,Re)=>M[e.indexOf(Re)]),D=new u.constructor(u.length);for(let P=0;P=0;--Ne)Re+=Ye%b[Ne]*ge[Ne],Ye=Math.floor(Ye/b[Ne]);D[Re]=u[P]}return[D,l]}function K(u){const b=X(u)[0],e=u.map(ge=>Math.exp(ge-b)),l=e.reduce((ge,D)=>ge+D,0);return e.map(ge=>ge/l)}function L(u){const b=X(u)[0];let e=0;for(let ge=0;gege-b-l)}function j(u,b){let e=0;for(let l=0;lb+e*e,0))}function S(u){if(u.length===0)throw Error("Array must not be empty");let b=u[0],e=0;for(let l=1;lb&&(b=u[l],e=l);return[b,e]}function R(u){return u>0&&!(u&u-1)}d.r(C),d.d(C,{FFT:()=>xe,bankers_round:()=>ie,cos_sim:()=>q,dot:()=>j,dynamic_time_warping:()=>we,interpolate_data:()=>k,log_softmax:()=>L,magnitude:()=>W,max:()=>X,medianFilter:()=>Ee,min:()=>S,permute_data:()=>z,round:()=>se,softmax:()=>K});class ae{constructor(b){if(this.size=0|b,this.size<=1||!R(this.size))throw new Error("FFT size must be a power of two larger than 1");this._csize=b<<1,this.table=new Float64Array(2*this.size);for(let l=0;ll;l<<=1)++e;this._width=e%2==0?e-1:e,this._bitrev=new Int32Array(1<>>M&3)<>>1);for(let M=0;M>>1]=b[M];return l}toComplexArray(b,e){const l=e||this.createComplexArray();for(let M=0;M>>1],l[M+1]=0;return l}transform(b,e){if(b===e)throw new Error("Input and output buffers must be different");this._transform4(b,e,1)}realTransform(b,e){if(b===e)throw new Error("Input and output buffers must be different");this._realTransform4(b,e,1)}inverseTransform(b,e){if(b===e)throw new Error("Input and output buffers must be different");this._transform4(b,e,-1);for(let l=0;l>=2;P>=2;P>>=2){Re=M/P<<1;const Je=Re>>>2;for(ge=0;ge>>1,P>>>1)}else for(ge=0,D=0;ge>>1,P>>>1,l)}const Ye=this.table;for(P>>=2;P>=2;P>>=2){Re=M/P<<1;const AA=Re>>>1,xA=AA>>>1,GA=xA>>>1;for(ge=0;ge>>1;for(let AA=2;AA>1;++Ye){const Je=(Ye+1-b)**2/2,AA=Math.sqrt(Re**2+Ne**2)**Je,xA=Je*Math.atan2(Ne,Re),GA=2*Ye;ge[GA]=AA*Math.cos(xA),ge[GA+1]=AA*Math.sin(xA),D[GA]=ge[GA],D[GA+1]=-ge[GA+1]}this._slicedChirpBuffer=ge.subarray(e,l),this._f=new ae(M>>1),this._f.transform(this._chirpBuffer,D)}_transform(b,e,l){const M=this._buffer1,ge=this._buffer2,D=this._outBuffer1,P=this._outBuffer2,Re=this._chirpBuffer,Ne=this._slicedChirpBuffer,Ye=this._a;if(l)for(let Je=0;Je>1];M[Je]=xA*Ne[Je],M[AA]=xA*Ne[AA]}else for(let Je=0;Je=u.length&&(Re=2*(u.length-1)-Re),l[D++]=u[Re]}l.sort(),e[ge]=l[M]}return e}function se(u,b){const e=Math.pow(10,b);return Math.round(u*e)/e}function ie(u){const b=Math.round(u);return Math.abs(u)%1==.5?b%2==0?b:b-1:b}function we(u){const b=u.length,e=u[0].length,l=[b+1,e+1],M=Array.from({length:l[0]},()=>Array(l[1]).fill(1/0));M[0][0]=0;const ge=Array.from({length:l[0]},()=>Array(l[1]).fill(-1));for(let Ye=1;Ye0||P>0;)switch(Re.push(D-1),Ne.push(P-1),ge[D][P]){case 0:--D,--P;break;case 1:--D;break;case 2:--P;break;default:throw new Error(`Internal error in dynamic time warping. Unexpected trace[${D}, ${P}]. Please file a bug report.`)}return Re.reverse(),Ne.reverse(),[Re,Ne]}},"./src/utils/tensor.js":(x,C,d)=>{d.r(C),d.d(C,{Tensor:()=>j,cat:()=>b,full:()=>P,full_like:()=>Re,interpolate:()=>W,interpolate_4d:()=>S,layer_norm:()=>se,matmul:()=>X,mean:()=>ge,mean_pooling:()=>Ee,ones:()=>Ne,ones_like:()=>Ye,permute:()=>q,quantize_embeddings:()=>GA,rand:()=>xA,rfft:()=>R,slice:()=>xe,stack:()=>e,std_mean:()=>M,topk:()=>ae,zeros:()=>Je,zeros_like:()=>AA});var k=d("./src/utils/maths.js"),z=d("./src/backends/onnx.js"),K=d("./src/ops/registry.js");const L=Object.freeze({float32:Float32Array,float16:Uint16Array,float64:Float64Array,string:Array,int8:Int8Array,uint8:Uint8Array,int16:Int16Array,uint16:Uint16Array,int32:Int32Array,uint32:Uint32Array,int64:BigInt64Array,uint64:BigUint64Array,bool:Uint8Array,uint4:Uint8Array,int4:Int8Array});class j{get dims(){return this.ort_tensor.dims}set dims(Ie){this.ort_tensor.dims=Ie}get type(){return this.ort_tensor.type}get data(){return this.ort_tensor.data}get size(){return this.ort_tensor.size}get location(){return this.ort_tensor.location}ort_tensor;constructor(...Ie){return(0,z.isONNXTensor)(Ie[0])?this.ort_tensor=Ie[0]:this.ort_tensor=new z.Tensor(Ie[0],Ie[1],Ie[2]),new Proxy(this,{get:(ze,Ue)=>{if(typeof Ue=="string"){let Pe=Number(Ue);if(Number.isInteger(Pe))return ze._getitem(Pe)}return ze[Ue]},set:(ze,Ue,Pe)=>ze[Ue]=Pe})}dispose(){this.ort_tensor.dispose()}*[Symbol.iterator](){const[Ie,...ze]=this.dims;if(ze.length>0){const Ue=ze.reduce((Pe,kA)=>Pe*kA);for(let Pe=0;Pe0){const Pe=Ue.reduce((kA,aA)=>kA*aA);return this._subarray(Ie,Pe,Ue)}return new j(this.type,[this.data[Ie]],Ue)}indexOf(Ie){const ze=this.data;for(let Ue=0;UeaA*nA);if(Ue!==Pe)throw Error(`cannot reshape array of size ${Ue} into shape (${ze})`);let kA=Ie;for(let aA=ze.length-1;aA>=0;aA--)kA=kA.reduce((nA,EA)=>{let iA=nA[nA.length-1];return iA.lengthmA)throw new Error(`Invalid slice: ${Fe}`);const CA=[Math.max(Ze,0),Math.min(mA,this.dims[iA])];Ue.push(CA),ze.push(CA[1]-CA[0])}}}const Pe=Ue.map(([iA,Fe])=>Fe-iA),kA=Pe.reduce((iA,Fe)=>iA*Fe),aA=this.data,nA=new aA.constructor(kA),EA=this.stride();for(let iA=0;iA=0;--Ze){const CA=Pe[Ze];Fe+=(mA%CA+Ue[Ze][0])*EA[Ze],mA=Math.floor(mA/CA)}nA[iA]=aA[Fe]}return new j(this.type,nA,ze)}permute(...Ie){return q(this,Ie)}transpose(...Ie){return this.permute(...Ie)}sum(Ie=null,ze=!1){return this.norm(1,Ie,ze)}norm(Ie="fro",ze=null,Ue=!1){if(Ie==="fro")Ie=2;else if(typeof Ie=="string")throw Error(`Unsupported norm: ${Ie}`);const Pe=this.data,kA=(iA,Fe)=>iA+Fe**Ie;if(ze===null){const iA=Pe.reduce(kA,0)**(1/Ie);return new j(this.type,[iA],[])}const[aA,nA,EA]=l(kA,this,ze,Ue);if(Ie!==1)for(let iA=0;iA=0;--EA){const Ze=this.dims[EA];EA!==ze&&(nA+=iA%Ze*Fe,Fe*=this.dims[EA]),iA=Math.floor(iA/Ze)}Pe[aA]/=kA[nA]}return this}normalize(Ie=2,ze=1){return this.clone().normalize_(Ie,ze)}stride(){return function(Ie){const ze=new Array(Ie.length);for(let Ue=Ie.length-1,Pe=1;Ue>=0;--Ue)ze[Ue]=Pe,Pe*=Ie[Ue];return ze}(this.dims)}squeeze(Ie=null){return new j(this.type,this.data,ie(this.dims,Ie))}squeeze_(Ie=null){return this.dims=ie(this.dims,Ie),this}unsqueeze(Ie=null){return new j(this.type,this.data,we(this.dims,Ie))}unsqueeze_(Ie=null){return this.dims=we(this.dims,Ie),this}flatten_(Ie=0,ze=-1){ze=(ze+this.dims.length)%this.dims.length;let Ue=this.dims.slice(0,Ie),Pe=this.dims.slice(Ie,ze+1),kA=this.dims.slice(ze+1);return this.dims=[...Ue,Pe.reduce((aA,nA)=>aA*nA,1),...kA],this}flatten(Ie=0,ze=-1){return this.clone().flatten_(Ie,ze)}view(...Ie){let ze=-1;for(let Pe=0;PenA!==ze?kA*aA:kA,1);Ie[ze]=Ue.length/Pe}return new j(this.type,Ue,Ie)}neg_(){const Ie=this.data;for(let ze=0;zeIe?1:0;return new j("bool",ze,this.dims)}lt(Ie){const ze=new Uint8Array(this.data.length),Ue=this.data;for(let Pe=0;PeMath.min(aA,nA),this,Ie,ze,1/0);return new j(Ue,Pe,kA)}max(Ie=null,ze=!1){if(Ie===null){const aA=(0,k.max)(this.data)[0];return new j(this.type,[aA],[])}const[Ue,Pe,kA]=l((aA,nA)=>Math.max(aA,nA),this,Ie,ze,-1/0);return new j(Ue,Pe,kA)}argmin(Ie=null,ze=!1){if(Ie!==null)throw new Error("`dim !== null` not yet implemented.");const Ue=(0,k.min)(this.data)[1];return new j("int64",[BigInt(Ue)],[])}argmax(Ie=null,ze=!1){if(Ie!==null)throw new Error("`dim !== null` not yet implemented.");const Ue=(0,k.max)(this.data)[1];return new j("int64",[BigInt(Ue)],[])}to(Ie){if(this.type===Ie)return this;if(!L.hasOwnProperty(Ie))throw new Error(`Unsupported type: ${Ie}`);let ze;const Ue=["int64","uint64"].includes(this.type),Pe=["int64","uint64"].includes(Ie);return Ue&&!Pe?ze=Number:!Ue&&Pe&&(ze=BigInt),new j(Ie,L[Ie].from(this.data,ze),this.dims)}}function q(Ge,Ie){const[ze,Ue]=(0,k.permute_data)(Ge.data,Ge.dims,Ie);return new j(Ge.type,ze,Ue)}function W(Ge,[Ie,ze],Ue="bilinear",Pe=!1){const kA=Ge.dims.at(-3)??1,aA=Ge.dims.at(-2),nA=Ge.dims.at(-1);let EA=(0,k.interpolate_data)(Ge.data,[kA,aA,nA],[Ie,ze],Ue,Pe);return new j(Ge.type,EA,[kA,Ie,ze])}async function S(Ge,{size:Ie=null,mode:ze="bilinear"}={}){if(Ge.dims.length!==4)throw new Error("`interpolate_4d` currently only supports 4D input.");if(!Ie)throw new Error("`interpolate_4d` requires a `size` argument.");let Ue,Pe;if(Ie.length===2)Ue=[...Ge.dims.slice(0,2),...Ie];else if(Ie.length===3)Ue=[Ge.dims[0],...Ie];else{if(Ie.length!==4)throw new Error("`size` must be of length 2, 3, or 4.");Ue=Ie}if(ze==="nearest")Pe=await K.TensorOpRegistry.nearest_interpolate_4d;else if(ze==="bilinear")Pe=await K.TensorOpRegistry.bilinear_interpolate_4d;else{if(ze!=="bicubic")throw new Error(`Unsupported mode: ${ze}`);Pe=await K.TensorOpRegistry.bicubic_interpolate_4d}const kA=new j("int64",new BigInt64Array(Ue.map(BigInt)),[Ue.length]);return await Pe({x:Ge,s:kA})}async function X(Ge,Ie){return await(await K.TensorOpRegistry.matmul)({a:Ge,b:Ie})}async function R(Ge,Ie){return await(await K.TensorOpRegistry.rfft)({x:Ge,a:Ie})}async function ae(Ge,Ie){const ze=await K.TensorOpRegistry.top_k;return Ie=Ie==null?Ge.dims.at(-1):Math.min(Ie,Ge.dims.at(-1)),await ze({x:Ge,k:new j("int64",[BigInt(Ie)],[1])})}const be=Ge=>new j("int64",Ge,[Ge.length]);async function xe(Ge,Ie,ze,Ue,Pe){return await(await K.TensorOpRegistry.slice)({x:Ge,s:be(Ie),e:be(ze),a:be(Ue),t:be(Pe??new Array(Ue.length).fill(1))})}function Ee(Ge,Ie){const ze=Ge.data,Ue=Ie.data,Pe=[Ge.dims[0],Ge.dims[2]],kA=new ze.constructor(Pe[0]*Pe[1]),[aA,nA,EA]=Ge.dims;let iA=0;for(let Fe=0;Feze!==1):typeof Ie=="number"?Ge[Ie]===1&&Ge.splice(Ie,1):Array.isArray(Ie)&&(Ge=Ge.filter((ze,Ue)=>ze!==1||!Ie.includes(Ue))),Ge}function we(Ge,Ie){return Ie=u(Ie,Ge.length+1),(Ge=Ge.slice()).splice(Ie,0,1),Ge}function u(Ge,Ie,ze=null,Ue=!0){if(Ue&&(Ge<-Ie||Ge>=Ie))throw new Error(`IndexError: index ${Ge} is out of bounds for dimension${ze===null?"":" "+ze} with size ${Ie}`);return Ge<0&&(Ge=(Ge%Ie+Ie)%Ie),Ge}function b(Ge,Ie=0){Ie=u(Ie,Ge[0].dims.length);const ze=Ge[0].dims.slice();ze[Ie]=Ge.reduce((aA,nA)=>aA+nA.dims[Ie],0);const Ue=ze.reduce((aA,nA)=>aA*nA,1),Pe=new Ge[0].data.constructor(Ue),kA=Ge[0].type;if(Ie===0){let aA=0;for(const nA of Ge){const EA=nA.data;Pe.set(EA,aA),aA+=EA.length}}else{let aA=0;for(let nA=0;nA=0;--mA){const pA=iA[mA];let vA=CA%pA;mA===Ie&&(vA+=aA),Ze+=vA*Te,Te*=ze[mA],CA=Math.floor(CA/pA)}Pe[Ze]=EA[Fe]}aA+=iA[Ie]}}return new j(kA,Pe,ze)}function e(Ge,Ie=0){return b(Ge.map(ze=>ze.unsqueeze(Ie)),Ie)}function l(Ge,Ie,ze=null,Ue=!1,Pe=null){const kA=Ie.data,aA=Ie.dims;ze=u(ze,aA.length);const nA=aA.slice();nA[ze]=1;const EA=new kA.constructor(kA.length/aA[ze]);Pe!==null&&EA.fill(Pe);for(let iA=0;iA=0;--Ze){const Te=aA[Ze];Ze!==ze&&(Fe+=mA%Te*CA,CA*=nA[Ze]),mA=Math.floor(mA/Te)}EA[Fe]=Ge(EA[Fe],kA[iA],iA,Fe)}return Ue||nA.splice(ze,1),[Ie.type,EA,nA]}function M(Ge,Ie=null,ze=1,Ue=!1){const Pe=Ge.data,kA=Ge.dims;if(Ie===null){const Ze=Pe.reduce((pA,vA)=>pA+vA,0),mA=Ze/Pe.length,CA=Math.sqrt(Pe.reduce((pA,vA)=>pA+(vA-mA)**2,0)/(Pe.length-ze)),Te=new j(Ge.type,[mA],[]);return[new j(Ge.type,[CA],[]),Te]}const aA=ge(Ge,Ie=u(Ie,kA.length),Ue),nA=aA.data,[EA,iA,Fe]=l((Ze,mA,CA,Te)=>Ze+(mA-nA[Te])**2,Ge,Ie,Ue);for(let Ze=0;ZeiA+Fe,0);return new j(Ge.type,[EA/Pe.length],[])}Ie=u(Ie,Ue.length);const[kA,aA,nA]=l((EA,iA)=>EA+iA,Ge,Ie,ze);if(Ue[Ie]!==1)for(let EA=0;EAkA*aA,1);return new j(ze,new Ue(Pe).fill(Ie),Ge)}function P(Ge,Ie){let ze,Ue;if(typeof Ie=="number")ze="float32",Ue=Float32Array;else if(typeof Ie=="bigint")ze="int64",Ue=BigInt64Array;else{if(typeof Ie!="boolean")throw new Error("Unsupported data type: "+typeof Ie);ze="bool",Ue=Uint8Array}return D(Ge,Ie,ze,Ue)}function Re(Ge,Ie){return P(Ge.dims,Ie)}function Ne(Ge){return D(Ge,1n,"int64",BigInt64Array)}function Ye(Ge){return Ne(Ge.dims)}function Je(Ge){return D(Ge,0n,"int64",BigInt64Array)}function AA(Ge){return Je(Ge.dims)}function xA(Ge){const Ie=Ge.reduce((ze,Ue)=>ze*Ue,1);return new j("float32",Float32Array.from({length:Ie},()=>Math.random()),Ge)}function GA(Ge,Ie){if(Ge.dims.length!==2)throw new Error("The tensor must have 2 dimensions");if(Ge.dims.at(-1)%8!=0)throw new Error("The last dimension of the tensor must be a multiple of 8");if(!["binary","ubinary"].includes(Ie))throw new Error("The precision must be either 'binary' or 'ubinary'");const ze=Ie==="binary",Ue=ze?"int8":"uint8",Pe=ze?Int8Array:Uint8Array,kA=Ge.data,aA=new Pe(kA.length/8);for(let nA=0;nA0?1:0,iA=Math.floor(nA/8),Fe=nA%8;aA[iA]|=EA<<7-Fe,ze&&Fe===0&&(aA[iA]-=128)}return new j(Ue,aA,[Ge.dims[0],Ge.dims[1]/8])}}},Lg={};function gr(x){var C=Lg[x];if(C!==void 0)return C.exports;var d=Lg[x]={exports:{}};return Zg[x](d,d.exports,gr),d.exports}gr.m=Zg,A2=Object.getPrototypeOf?x=>Object.getPrototypeOf(x):x=>x.__proto__,gr.t=function(x,C){if(1&C&&(x=this(x)),8&C||typeof x=="object"&&x&&(4&C&&x.__esModule||16&C&&typeof x.then=="function"))return x;var d=Object.create(null);gr.r(d);var k={};Zc=Zc||[null,A2({}),A2([]),A2(A2)];for(var z=2&C&&x;typeof z=="object"&&!~Zc.indexOf(z);z=A2(z))Object.getOwnPropertyNames(z).forEach(K=>k[K]=()=>x[K]);return k.default=()=>x,gr.d(d,k),d},gr.d=(x,C)=>{for(var d in C)gr.o(C,d)&&!gr.o(x,d)&&Object.defineProperty(x,d,{enumerable:!0,get:C[d]})},gr.o=(x,C)=>Object.prototype.hasOwnProperty.call(x,C),gr.r=x=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(x,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(x,"__esModule",{value:!0})},(()=>{var x;if(typeof import.meta.url=="string"&&(x=import.meta.url),!x)throw new Error("Automatic publicPath is not supported in this browser");x=x.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),gr.p=x})(),gr.b=new URL(import.meta.url);var n2={};(()=>{gr.r(n2),gr.d(n2,{ASTFeatureExtractor:()=>S.ASTFeatureExtractor,ASTForAudioClassification:()=>d.ASTForAudioClassification,ASTModel:()=>d.ASTModel,ASTPreTrainedModel:()=>d.ASTPreTrainedModel,AlbertForMaskedLM:()=>d.AlbertForMaskedLM,AlbertForQuestionAnswering:()=>d.AlbertForQuestionAnswering,AlbertForSequenceClassification:()=>d.AlbertForSequenceClassification,AlbertModel:()=>d.AlbertModel,AlbertPreTrainedModel:()=>d.AlbertPreTrainedModel,AlbertTokenizer:()=>k.AlbertTokenizer,AudioClassificationPipeline:()=>C.AudioClassificationPipeline,AutoConfig:()=>z.AutoConfig,AutoFeatureExtractor:()=>X.AutoFeatureExtractor,AutoImageProcessor:()=>be.AutoImageProcessor,AutoModel:()=>d.AutoModel,AutoModelForAudioClassification:()=>d.AutoModelForAudioClassification,AutoModelForAudioFrameClassification:()=>d.AutoModelForAudioFrameClassification,AutoModelForCTC:()=>d.AutoModelForCTC,AutoModelForCausalLM:()=>d.AutoModelForCausalLM,AutoModelForDepthEstimation:()=>d.AutoModelForDepthEstimation,AutoModelForDocumentQuestionAnswering:()=>d.AutoModelForDocumentQuestionAnswering,AutoModelForImageClassification:()=>d.AutoModelForImageClassification,AutoModelForImageFeatureExtraction:()=>d.AutoModelForImageFeatureExtraction,AutoModelForImageMatting:()=>d.AutoModelForImageMatting,AutoModelForImageSegmentation:()=>d.AutoModelForImageSegmentation,AutoModelForImageToImage:()=>d.AutoModelForImageToImage,AutoModelForMaskGeneration:()=>d.AutoModelForMaskGeneration,AutoModelForMaskedLM:()=>d.AutoModelForMaskedLM,AutoModelForNormalEstimation:()=>d.AutoModelForNormalEstimation,AutoModelForObjectDetection:()=>d.AutoModelForObjectDetection,AutoModelForPoseEstimation:()=>d.AutoModelForPoseEstimation,AutoModelForQuestionAnswering:()=>d.AutoModelForQuestionAnswering,AutoModelForSemanticSegmentation:()=>d.AutoModelForSemanticSegmentation,AutoModelForSeq2SeqLM:()=>d.AutoModelForSeq2SeqLM,AutoModelForSequenceClassification:()=>d.AutoModelForSequenceClassification,AutoModelForSpeechSeq2Seq:()=>d.AutoModelForSpeechSeq2Seq,AutoModelForTextToSpectrogram:()=>d.AutoModelForTextToSpectrogram,AutoModelForTextToWaveform:()=>d.AutoModelForTextToWaveform,AutoModelForTokenClassification:()=>d.AutoModelForTokenClassification,AutoModelForUniversalSegmentation:()=>d.AutoModelForUniversalSegmentation,AutoModelForVision2Seq:()=>d.AutoModelForVision2Seq,AutoModelForXVector:()=>d.AutoModelForXVector,AutoModelForZeroShotObjectDetection:()=>d.AutoModelForZeroShotObjectDetection,AutoProcessor:()=>se.AutoProcessor,AutoTokenizer:()=>k.AutoTokenizer,AutomaticSpeechRecognitionPipeline:()=>C.AutomaticSpeechRecognitionPipeline,BartForConditionalGeneration:()=>d.BartForConditionalGeneration,BartForSequenceClassification:()=>d.BartForSequenceClassification,BartModel:()=>d.BartModel,BartPretrainedModel:()=>d.BartPretrainedModel,BartTokenizer:()=>k.BartTokenizer,BaseModelOutput:()=>d.BaseModelOutput,BaseStreamer:()=>ie.BaseStreamer,BeitFeatureExtractor:()=>ae.BeitFeatureExtractor,BeitForImageClassification:()=>d.BeitForImageClassification,BeitModel:()=>d.BeitModel,BeitPreTrainedModel:()=>d.BeitPreTrainedModel,BertForMaskedLM:()=>d.BertForMaskedLM,BertForQuestionAnswering:()=>d.BertForQuestionAnswering,BertForSequenceClassification:()=>d.BertForSequenceClassification,BertForTokenClassification:()=>d.BertForTokenClassification,BertModel:()=>d.BertModel,BertPreTrainedModel:()=>d.BertPreTrainedModel,BertTokenizer:()=>k.BertTokenizer,BitImageProcessor:()=>ae.BitImageProcessor,BlenderbotForConditionalGeneration:()=>d.BlenderbotForConditionalGeneration,BlenderbotModel:()=>d.BlenderbotModel,BlenderbotPreTrainedModel:()=>d.BlenderbotPreTrainedModel,BlenderbotSmallForConditionalGeneration:()=>d.BlenderbotSmallForConditionalGeneration,BlenderbotSmallModel:()=>d.BlenderbotSmallModel,BlenderbotSmallPreTrainedModel:()=>d.BlenderbotSmallPreTrainedModel,BlenderbotSmallTokenizer:()=>k.BlenderbotSmallTokenizer,BlenderbotTokenizer:()=>k.BlenderbotTokenizer,BloomForCausalLM:()=>d.BloomForCausalLM,BloomModel:()=>d.BloomModel,BloomPreTrainedModel:()=>d.BloomPreTrainedModel,BloomTokenizer:()=>k.BloomTokenizer,CLIPFeatureExtractor:()=>ae.CLIPFeatureExtractor,CLIPImageProcessor:()=>ae.CLIPImageProcessor,CLIPModel:()=>d.CLIPModel,CLIPPreTrainedModel:()=>d.CLIPPreTrainedModel,CLIPSegForImageSegmentation:()=>d.CLIPSegForImageSegmentation,CLIPSegModel:()=>d.CLIPSegModel,CLIPSegPreTrainedModel:()=>d.CLIPSegPreTrainedModel,CLIPTextModel:()=>d.CLIPTextModel,CLIPTextModelWithProjection:()=>d.CLIPTextModelWithProjection,CLIPTokenizer:()=>k.CLIPTokenizer,CLIPVisionModel:()=>d.CLIPVisionModel,CLIPVisionModelWithProjection:()=>d.CLIPVisionModelWithProjection,CamembertForMaskedLM:()=>d.CamembertForMaskedLM,CamembertForQuestionAnswering:()=>d.CamembertForQuestionAnswering,CamembertForSequenceClassification:()=>d.CamembertForSequenceClassification,CamembertForTokenClassification:()=>d.CamembertForTokenClassification,CamembertModel:()=>d.CamembertModel,CamembertPreTrainedModel:()=>d.CamembertPreTrainedModel,CamembertTokenizer:()=>k.CamembertTokenizer,CausalLMOutput:()=>d.CausalLMOutput,CausalLMOutputWithPast:()=>d.CausalLMOutputWithPast,ChineseCLIPFeatureExtractor:()=>ae.ChineseCLIPFeatureExtractor,ChineseCLIPModel:()=>d.ChineseCLIPModel,ChineseCLIPPreTrainedModel:()=>d.ChineseCLIPPreTrainedModel,ClapAudioModelWithProjection:()=>d.ClapAudioModelWithProjection,ClapFeatureExtractor:()=>S.ClapFeatureExtractor,ClapModel:()=>d.ClapModel,ClapPreTrainedModel:()=>d.ClapPreTrainedModel,ClapTextModelWithProjection:()=>d.ClapTextModelWithProjection,ClassifierFreeGuidanceLogitsProcessor:()=>u.ClassifierFreeGuidanceLogitsProcessor,CodeGenForCausalLM:()=>d.CodeGenForCausalLM,CodeGenModel:()=>d.CodeGenModel,CodeGenPreTrainedModel:()=>d.CodeGenPreTrainedModel,CodeGenTokenizer:()=>k.CodeGenTokenizer,CodeLlamaTokenizer:()=>k.CodeLlamaTokenizer,CohereForCausalLM:()=>d.CohereForCausalLM,CohereModel:()=>d.CohereModel,CoherePreTrainedModel:()=>d.CoherePreTrainedModel,CohereTokenizer:()=>k.CohereTokenizer,ConvBertForMaskedLM:()=>d.ConvBertForMaskedLM,ConvBertForQuestionAnswering:()=>d.ConvBertForQuestionAnswering,ConvBertForSequenceClassification:()=>d.ConvBertForSequenceClassification,ConvBertForTokenClassification:()=>d.ConvBertForTokenClassification,ConvBertModel:()=>d.ConvBertModel,ConvBertPreTrainedModel:()=>d.ConvBertPreTrainedModel,ConvBertTokenizer:()=>k.ConvBertTokenizer,ConvNextFeatureExtractor:()=>ae.ConvNextFeatureExtractor,ConvNextForImageClassification:()=>d.ConvNextForImageClassification,ConvNextImageProcessor:()=>ae.ConvNextImageProcessor,ConvNextModel:()=>d.ConvNextModel,ConvNextPreTrainedModel:()=>d.ConvNextPreTrainedModel,ConvNextV2ForImageClassification:()=>d.ConvNextV2ForImageClassification,ConvNextV2Model:()=>d.ConvNextV2Model,ConvNextV2PreTrainedModel:()=>d.ConvNextV2PreTrainedModel,DPTFeatureExtractor:()=>ae.DPTFeatureExtractor,DPTForDepthEstimation:()=>d.DPTForDepthEstimation,DPTImageProcessor:()=>ae.DPTImageProcessor,DPTModel:()=>d.DPTModel,DPTPreTrainedModel:()=>d.DPTPreTrainedModel,DebertaForMaskedLM:()=>d.DebertaForMaskedLM,DebertaForQuestionAnswering:()=>d.DebertaForQuestionAnswering,DebertaForSequenceClassification:()=>d.DebertaForSequenceClassification,DebertaForTokenClassification:()=>d.DebertaForTokenClassification,DebertaModel:()=>d.DebertaModel,DebertaPreTrainedModel:()=>d.DebertaPreTrainedModel,DebertaTokenizer:()=>k.DebertaTokenizer,DebertaV2ForMaskedLM:()=>d.DebertaV2ForMaskedLM,DebertaV2ForQuestionAnswering:()=>d.DebertaV2ForQuestionAnswering,DebertaV2ForSequenceClassification:()=>d.DebertaV2ForSequenceClassification,DebertaV2ForTokenClassification:()=>d.DebertaV2ForTokenClassification,DebertaV2Model:()=>d.DebertaV2Model,DebertaV2PreTrainedModel:()=>d.DebertaV2PreTrainedModel,DebertaV2Tokenizer:()=>k.DebertaV2Tokenizer,DecisionTransformerModel:()=>d.DecisionTransformerModel,DecisionTransformerPreTrainedModel:()=>d.DecisionTransformerPreTrainedModel,DeiTFeatureExtractor:()=>ae.DeiTFeatureExtractor,DeiTForImageClassification:()=>d.DeiTForImageClassification,DeiTImageProcessor:()=>ae.DeiTImageProcessor,DeiTModel:()=>d.DeiTModel,DeiTPreTrainedModel:()=>d.DeiTPreTrainedModel,DepthAnythingForDepthEstimation:()=>d.DepthAnythingForDepthEstimation,DepthAnythingPreTrainedModel:()=>d.DepthAnythingPreTrainedModel,DepthEstimationPipeline:()=>C.DepthEstimationPipeline,DepthProForDepthEstimation:()=>d.DepthProForDepthEstimation,DepthProPreTrainedModel:()=>d.DepthProPreTrainedModel,DetrFeatureExtractor:()=>ae.DetrFeatureExtractor,DetrForObjectDetection:()=>d.DetrForObjectDetection,DetrForSegmentation:()=>d.DetrForSegmentation,DetrImageProcessor:()=>ae.DetrImageProcessor,DetrModel:()=>d.DetrModel,DetrObjectDetectionOutput:()=>d.DetrObjectDetectionOutput,DetrPreTrainedModel:()=>d.DetrPreTrainedModel,DetrSegmentationOutput:()=>d.DetrSegmentationOutput,Dinov2ForImageClassification:()=>d.Dinov2ForImageClassification,Dinov2Model:()=>d.Dinov2Model,Dinov2PreTrainedModel:()=>d.Dinov2PreTrainedModel,Dinov2WithRegistersForImageClassification:()=>d.Dinov2WithRegistersForImageClassification,Dinov2WithRegistersModel:()=>d.Dinov2WithRegistersModel,Dinov2WithRegistersPreTrainedModel:()=>d.Dinov2WithRegistersPreTrainedModel,DistilBertForMaskedLM:()=>d.DistilBertForMaskedLM,DistilBertForQuestionAnswering:()=>d.DistilBertForQuestionAnswering,DistilBertForSequenceClassification:()=>d.DistilBertForSequenceClassification,DistilBertForTokenClassification:()=>d.DistilBertForTokenClassification,DistilBertModel:()=>d.DistilBertModel,DistilBertPreTrainedModel:()=>d.DistilBertPreTrainedModel,DistilBertTokenizer:()=>k.DistilBertTokenizer,DocumentQuestionAnsweringPipeline:()=>C.DocumentQuestionAnsweringPipeline,DonutFeatureExtractor:()=>ae.DonutFeatureExtractor,DonutImageProcessor:()=>ae.DonutImageProcessor,DonutSwinModel:()=>d.DonutSwinModel,DonutSwinPreTrainedModel:()=>d.DonutSwinPreTrainedModel,EfficientNetForImageClassification:()=>d.EfficientNetForImageClassification,EfficientNetImageProcessor:()=>ae.EfficientNetImageProcessor,EfficientNetModel:()=>d.EfficientNetModel,EfficientNetPreTrainedModel:()=>d.EfficientNetPreTrainedModel,ElectraForMaskedLM:()=>d.ElectraForMaskedLM,ElectraForQuestionAnswering:()=>d.ElectraForQuestionAnswering,ElectraForSequenceClassification:()=>d.ElectraForSequenceClassification,ElectraForTokenClassification:()=>d.ElectraForTokenClassification,ElectraModel:()=>d.ElectraModel,ElectraPreTrainedModel:()=>d.ElectraPreTrainedModel,ElectraTokenizer:()=>k.ElectraTokenizer,EosTokenCriteria:()=>we.EosTokenCriteria,EsmForMaskedLM:()=>d.EsmForMaskedLM,EsmForSequenceClassification:()=>d.EsmForSequenceClassification,EsmForTokenClassification:()=>d.EsmForTokenClassification,EsmModel:()=>d.EsmModel,EsmPreTrainedModel:()=>d.EsmPreTrainedModel,EsmTokenizer:()=>k.EsmTokenizer,ExaoneForCausalLM:()=>d.ExaoneForCausalLM,ExaoneModel:()=>d.ExaoneModel,ExaonePreTrainedModel:()=>d.ExaonePreTrainedModel,FFT:()=>q.FFT,FalconForCausalLM:()=>d.FalconForCausalLM,FalconModel:()=>d.FalconModel,FalconPreTrainedModel:()=>d.FalconPreTrainedModel,FalconTokenizer:()=>k.FalconTokenizer,FastViTForImageClassification:()=>d.FastViTForImageClassification,FastViTModel:()=>d.FastViTModel,FastViTPreTrainedModel:()=>d.FastViTPreTrainedModel,FeatureExtractionPipeline:()=>C.FeatureExtractionPipeline,FeatureExtractor:()=>W.FeatureExtractor,FillMaskPipeline:()=>C.FillMaskPipeline,Florence2ForConditionalGeneration:()=>d.Florence2ForConditionalGeneration,Florence2PreTrainedModel:()=>d.Florence2PreTrainedModel,Florence2Processor:()=>Ee.Florence2Processor,ForcedBOSTokenLogitsProcessor:()=>u.ForcedBOSTokenLogitsProcessor,ForcedEOSTokenLogitsProcessor:()=>u.ForcedEOSTokenLogitsProcessor,GLPNFeatureExtractor:()=>ae.GLPNFeatureExtractor,GLPNForDepthEstimation:()=>d.GLPNForDepthEstimation,GLPNModel:()=>d.GLPNModel,GLPNPreTrainedModel:()=>d.GLPNPreTrainedModel,GPT2LMHeadModel:()=>d.GPT2LMHeadModel,GPT2Model:()=>d.GPT2Model,GPT2PreTrainedModel:()=>d.GPT2PreTrainedModel,GPT2Tokenizer:()=>k.GPT2Tokenizer,GPTBigCodeForCausalLM:()=>d.GPTBigCodeForCausalLM,GPTBigCodeModel:()=>d.GPTBigCodeModel,GPTBigCodePreTrainedModel:()=>d.GPTBigCodePreTrainedModel,GPTJForCausalLM:()=>d.GPTJForCausalLM,GPTJModel:()=>d.GPTJModel,GPTJPreTrainedModel:()=>d.GPTJPreTrainedModel,GPTNeoForCausalLM:()=>d.GPTNeoForCausalLM,GPTNeoModel:()=>d.GPTNeoModel,GPTNeoPreTrainedModel:()=>d.GPTNeoPreTrainedModel,GPTNeoXForCausalLM:()=>d.GPTNeoXForCausalLM,GPTNeoXModel:()=>d.GPTNeoXModel,GPTNeoXPreTrainedModel:()=>d.GPTNeoXPreTrainedModel,GPTNeoXTokenizer:()=>k.GPTNeoXTokenizer,Gemma2ForCausalLM:()=>d.Gemma2ForCausalLM,Gemma2Model:()=>d.Gemma2Model,Gemma2PreTrainedModel:()=>d.Gemma2PreTrainedModel,GemmaForCausalLM:()=>d.GemmaForCausalLM,GemmaModel:()=>d.GemmaModel,GemmaPreTrainedModel:()=>d.GemmaPreTrainedModel,GemmaTokenizer:()=>k.GemmaTokenizer,GlmForCausalLM:()=>d.GlmForCausalLM,GlmModel:()=>d.GlmModel,GlmPreTrainedModel:()=>d.GlmPreTrainedModel,GraniteForCausalLM:()=>d.GraniteForCausalLM,GraniteModel:()=>d.GraniteModel,GranitePreTrainedModel:()=>d.GranitePreTrainedModel,Grok1Tokenizer:()=>k.Grok1Tokenizer,GroundingDinoForObjectDetection:()=>d.GroundingDinoForObjectDetection,GroundingDinoImageProcessor:()=>ae.GroundingDinoImageProcessor,GroundingDinoPreTrainedModel:()=>d.GroundingDinoPreTrainedModel,GroundingDinoProcessor:()=>Ee.GroundingDinoProcessor,GroupViTModel:()=>d.GroupViTModel,GroupViTPreTrainedModel:()=>d.GroupViTPreTrainedModel,HeliumForCausalLM:()=>d.HeliumForCausalLM,HeliumModel:()=>d.HeliumModel,HeliumPreTrainedModel:()=>d.HeliumPreTrainedModel,HerbertTokenizer:()=>k.HerbertTokenizer,HieraForImageClassification:()=>d.HieraForImageClassification,HieraModel:()=>d.HieraModel,HieraPreTrainedModel:()=>d.HieraPreTrainedModel,HubertForCTC:()=>d.HubertForCTC,HubertForSequenceClassification:()=>d.HubertForSequenceClassification,HubertModel:()=>d.HubertModel,HubertPreTrainedModel:()=>d.HubertPreTrainedModel,IJepaForImageClassification:()=>d.IJepaForImageClassification,IJepaModel:()=>d.IJepaModel,IJepaPreTrainedModel:()=>d.IJepaPreTrainedModel,Idefics3ForConditionalGeneration:()=>d.Idefics3ForConditionalGeneration,Idefics3ImageProcessor:()=>ae.Idefics3ImageProcessor,Idefics3PreTrainedModel:()=>d.Idefics3PreTrainedModel,Idefics3Processor:()=>Ee.Idefics3Processor,ImageClassificationPipeline:()=>C.ImageClassificationPipeline,ImageFeatureExtractionPipeline:()=>C.ImageFeatureExtractionPipeline,ImageFeatureExtractor:()=>S.ImageFeatureExtractor,ImageMattingOutput:()=>d.ImageMattingOutput,ImageProcessor:()=>R.ImageProcessor,ImageSegmentationPipeline:()=>C.ImageSegmentationPipeline,ImageToImagePipeline:()=>C.ImageToImagePipeline,ImageToTextPipeline:()=>C.ImageToTextPipeline,InterruptableStoppingCriteria:()=>we.InterruptableStoppingCriteria,JAISLMHeadModel:()=>d.JAISLMHeadModel,JAISModel:()=>d.JAISModel,JAISPreTrainedModel:()=>d.JAISPreTrainedModel,JinaCLIPImageProcessor:()=>ae.JinaCLIPImageProcessor,JinaCLIPModel:()=>d.JinaCLIPModel,JinaCLIPPreTrainedModel:()=>d.JinaCLIPPreTrainedModel,JinaCLIPProcessor:()=>Ee.JinaCLIPProcessor,JinaCLIPTextModel:()=>d.JinaCLIPTextModel,JinaCLIPVisionModel:()=>d.JinaCLIPVisionModel,LlamaForCausalLM:()=>d.LlamaForCausalLM,LlamaModel:()=>d.LlamaModel,LlamaPreTrainedModel:()=>d.LlamaPreTrainedModel,LlamaTokenizer:()=>k.LlamaTokenizer,LlavaForConditionalGeneration:()=>d.LlavaForConditionalGeneration,LlavaOnevisionForConditionalGeneration:()=>d.LlavaOnevisionForConditionalGeneration,LlavaOnevisionImageProcessor:()=>ae.LlavaOnevisionImageProcessor,LlavaPreTrainedModel:()=>d.LlavaPreTrainedModel,LogitsProcessor:()=>u.LogitsProcessor,LogitsProcessorList:()=>u.LogitsProcessorList,LogitsWarper:()=>u.LogitsWarper,LongT5ForConditionalGeneration:()=>d.LongT5ForConditionalGeneration,LongT5Model:()=>d.LongT5Model,LongT5PreTrainedModel:()=>d.LongT5PreTrainedModel,M2M100ForConditionalGeneration:()=>d.M2M100ForConditionalGeneration,M2M100Model:()=>d.M2M100Model,M2M100PreTrainedModel:()=>d.M2M100PreTrainedModel,M2M100Tokenizer:()=>k.M2M100Tokenizer,MBart50Tokenizer:()=>k.MBart50Tokenizer,MBartForCausalLM:()=>d.MBartForCausalLM,MBartForConditionalGeneration:()=>d.MBartForConditionalGeneration,MBartForSequenceClassification:()=>d.MBartForSequenceClassification,MBartModel:()=>d.MBartModel,MBartPreTrainedModel:()=>d.MBartPreTrainedModel,MBartTokenizer:()=>k.MBartTokenizer,MPNetForMaskedLM:()=>d.MPNetForMaskedLM,MPNetForQuestionAnswering:()=>d.MPNetForQuestionAnswering,MPNetForSequenceClassification:()=>d.MPNetForSequenceClassification,MPNetForTokenClassification:()=>d.MPNetForTokenClassification,MPNetModel:()=>d.MPNetModel,MPNetPreTrainedModel:()=>d.MPNetPreTrainedModel,MPNetTokenizer:()=>k.MPNetTokenizer,MT5ForConditionalGeneration:()=>d.MT5ForConditionalGeneration,MT5Model:()=>d.MT5Model,MT5PreTrainedModel:()=>d.MT5PreTrainedModel,MarianMTModel:()=>d.MarianMTModel,MarianModel:()=>d.MarianModel,MarianPreTrainedModel:()=>d.MarianPreTrainedModel,MarianTokenizer:()=>k.MarianTokenizer,Mask2FormerImageProcessor:()=>ae.Mask2FormerImageProcessor,MaskFormerFeatureExtractor:()=>ae.MaskFormerFeatureExtractor,MaskFormerForInstanceSegmentation:()=>d.MaskFormerForInstanceSegmentation,MaskFormerImageProcessor:()=>ae.MaskFormerImageProcessor,MaskFormerModel:()=>d.MaskFormerModel,MaskFormerPreTrainedModel:()=>d.MaskFormerPreTrainedModel,MaskedLMOutput:()=>d.MaskedLMOutput,MaxLengthCriteria:()=>we.MaxLengthCriteria,MgpstrForSceneTextRecognition:()=>d.MgpstrForSceneTextRecognition,MgpstrModelOutput:()=>d.MgpstrModelOutput,MgpstrPreTrainedModel:()=>d.MgpstrPreTrainedModel,MgpstrProcessor:()=>Ee.MgpstrProcessor,MgpstrTokenizer:()=>k.MgpstrTokenizer,MinLengthLogitsProcessor:()=>u.MinLengthLogitsProcessor,MinNewTokensLengthLogitsProcessor:()=>u.MinNewTokensLengthLogitsProcessor,MistralForCausalLM:()=>d.MistralForCausalLM,MistralModel:()=>d.MistralModel,MistralPreTrainedModel:()=>d.MistralPreTrainedModel,MobileBertForMaskedLM:()=>d.MobileBertForMaskedLM,MobileBertForQuestionAnswering:()=>d.MobileBertForQuestionAnswering,MobileBertForSequenceClassification:()=>d.MobileBertForSequenceClassification,MobileBertModel:()=>d.MobileBertModel,MobileBertPreTrainedModel:()=>d.MobileBertPreTrainedModel,MobileBertTokenizer:()=>k.MobileBertTokenizer,MobileLLMForCausalLM:()=>d.MobileLLMForCausalLM,MobileLLMModel:()=>d.MobileLLMModel,MobileLLMPreTrainedModel:()=>d.MobileLLMPreTrainedModel,MobileNetV1FeatureExtractor:()=>ae.MobileNetV1FeatureExtractor,MobileNetV1ForImageClassification:()=>d.MobileNetV1ForImageClassification,MobileNetV1ImageProcessor:()=>ae.MobileNetV1ImageProcessor,MobileNetV1Model:()=>d.MobileNetV1Model,MobileNetV1PreTrainedModel:()=>d.MobileNetV1PreTrainedModel,MobileNetV2FeatureExtractor:()=>ae.MobileNetV2FeatureExtractor,MobileNetV2ForImageClassification:()=>d.MobileNetV2ForImageClassification,MobileNetV2ImageProcessor:()=>ae.MobileNetV2ImageProcessor,MobileNetV2Model:()=>d.MobileNetV2Model,MobileNetV2PreTrainedModel:()=>d.MobileNetV2PreTrainedModel,MobileNetV3FeatureExtractor:()=>ae.MobileNetV3FeatureExtractor,MobileNetV3ForImageClassification:()=>d.MobileNetV3ForImageClassification,MobileNetV3ImageProcessor:()=>ae.MobileNetV3ImageProcessor,MobileNetV3Model:()=>d.MobileNetV3Model,MobileNetV3PreTrainedModel:()=>d.MobileNetV3PreTrainedModel,MobileNetV4FeatureExtractor:()=>ae.MobileNetV4FeatureExtractor,MobileNetV4ForImageClassification:()=>d.MobileNetV4ForImageClassification,MobileNetV4ImageProcessor:()=>ae.MobileNetV4ImageProcessor,MobileNetV4Model:()=>d.MobileNetV4Model,MobileNetV4PreTrainedModel:()=>d.MobileNetV4PreTrainedModel,MobileViTFeatureExtractor:()=>ae.MobileViTFeatureExtractor,MobileViTForImageClassification:()=>d.MobileViTForImageClassification,MobileViTImageProcessor:()=>ae.MobileViTImageProcessor,MobileViTModel:()=>d.MobileViTModel,MobileViTPreTrainedModel:()=>d.MobileViTPreTrainedModel,MobileViTV2ForImageClassification:()=>d.MobileViTV2ForImageClassification,MobileViTV2Model:()=>d.MobileViTV2Model,MobileViTV2PreTrainedModel:()=>d.MobileViTV2PreTrainedModel,ModelOutput:()=>d.ModelOutput,ModernBertForMaskedLM:()=>d.ModernBertForMaskedLM,ModernBertForSequenceClassification:()=>d.ModernBertForSequenceClassification,ModernBertForTokenClassification:()=>d.ModernBertForTokenClassification,ModernBertModel:()=>d.ModernBertModel,ModernBertPreTrainedModel:()=>d.ModernBertPreTrainedModel,Moondream1ForConditionalGeneration:()=>d.Moondream1ForConditionalGeneration,MoonshineFeatureExtractor:()=>S.MoonshineFeatureExtractor,MoonshineForConditionalGeneration:()=>d.MoonshineForConditionalGeneration,MoonshineModel:()=>d.MoonshineModel,MoonshinePreTrainedModel:()=>d.MoonshinePreTrainedModel,MoonshineProcessor:()=>Ee.MoonshineProcessor,MptForCausalLM:()=>d.MptForCausalLM,MptModel:()=>d.MptModel,MptPreTrainedModel:()=>d.MptPreTrainedModel,MultiModalityCausalLM:()=>d.MultiModalityCausalLM,MultiModalityPreTrainedModel:()=>d.MultiModalityPreTrainedModel,MusicgenForCausalLM:()=>d.MusicgenForCausalLM,MusicgenForConditionalGeneration:()=>d.MusicgenForConditionalGeneration,MusicgenModel:()=>d.MusicgenModel,MusicgenPreTrainedModel:()=>d.MusicgenPreTrainedModel,NllbTokenizer:()=>k.NllbTokenizer,NoBadWordsLogitsProcessor:()=>u.NoBadWordsLogitsProcessor,NoRepeatNGramLogitsProcessor:()=>u.NoRepeatNGramLogitsProcessor,NomicBertModel:()=>d.NomicBertModel,NomicBertPreTrainedModel:()=>d.NomicBertPreTrainedModel,NougatImageProcessor:()=>ae.NougatImageProcessor,NougatTokenizer:()=>k.NougatTokenizer,OPTForCausalLM:()=>d.OPTForCausalLM,OPTModel:()=>d.OPTModel,OPTPreTrainedModel:()=>d.OPTPreTrainedModel,ObjectDetectionPipeline:()=>C.ObjectDetectionPipeline,Olmo2ForCausalLM:()=>d.Olmo2ForCausalLM,Olmo2Model:()=>d.Olmo2Model,Olmo2PreTrainedModel:()=>d.Olmo2PreTrainedModel,OlmoForCausalLM:()=>d.OlmoForCausalLM,OlmoModel:()=>d.OlmoModel,OlmoPreTrainedModel:()=>d.OlmoPreTrainedModel,OpenELMForCausalLM:()=>d.OpenELMForCausalLM,OpenELMModel:()=>d.OpenELMModel,OpenELMPreTrainedModel:()=>d.OpenELMPreTrainedModel,OwlViTFeatureExtractor:()=>ae.OwlViTFeatureExtractor,OwlViTForObjectDetection:()=>d.OwlViTForObjectDetection,OwlViTImageProcessor:()=>ae.OwlViTImageProcessor,OwlViTModel:()=>d.OwlViTModel,OwlViTPreTrainedModel:()=>d.OwlViTPreTrainedModel,OwlViTProcessor:()=>Ee.OwlViTProcessor,Owlv2ForObjectDetection:()=>d.Owlv2ForObjectDetection,Owlv2ImageProcessor:()=>ae.Owlv2ImageProcessor,Owlv2Model:()=>d.Owlv2Model,Owlv2PreTrainedModel:()=>d.Owlv2PreTrainedModel,PaliGemmaForConditionalGeneration:()=>d.PaliGemmaForConditionalGeneration,PaliGemmaPreTrainedModel:()=>d.PaliGemmaPreTrainedModel,PaliGemmaProcessor:()=>Ee.PaliGemmaProcessor,PatchTSMixerForPrediction:()=>d.PatchTSMixerForPrediction,PatchTSMixerModel:()=>d.PatchTSMixerModel,PatchTSMixerPreTrainedModel:()=>d.PatchTSMixerPreTrainedModel,PatchTSTForPrediction:()=>d.PatchTSTForPrediction,PatchTSTModel:()=>d.PatchTSTModel,PatchTSTPreTrainedModel:()=>d.PatchTSTPreTrainedModel,Phi3ForCausalLM:()=>d.Phi3ForCausalLM,Phi3Model:()=>d.Phi3Model,Phi3PreTrainedModel:()=>d.Phi3PreTrainedModel,Phi3VForCausalLM:()=>d.Phi3VForCausalLM,Phi3VImageProcessor:()=>ae.Phi3VImageProcessor,Phi3VPreTrainedModel:()=>d.Phi3VPreTrainedModel,Phi3VProcessor:()=>Ee.Phi3VProcessor,PhiForCausalLM:()=>d.PhiForCausalLM,PhiModel:()=>d.PhiModel,PhiPreTrainedModel:()=>d.PhiPreTrainedModel,Pipeline:()=>C.Pipeline,PreTrainedModel:()=>d.PreTrainedModel,PreTrainedTokenizer:()=>k.PreTrainedTokenizer,PretrainedConfig:()=>z.PretrainedConfig,PretrainedMixin:()=>d.PretrainedMixin,Processor:()=>xe.Processor,PvtForImageClassification:()=>d.PvtForImageClassification,PvtImageProcessor:()=>ae.PvtImageProcessor,PvtModel:()=>d.PvtModel,PvtPreTrainedModel:()=>d.PvtPreTrainedModel,PyAnnoteFeatureExtractor:()=>S.PyAnnoteFeatureExtractor,PyAnnoteForAudioFrameClassification:()=>d.PyAnnoteForAudioFrameClassification,PyAnnoteModel:()=>d.PyAnnoteModel,PyAnnotePreTrainedModel:()=>d.PyAnnotePreTrainedModel,PyAnnoteProcessor:()=>Ee.PyAnnoteProcessor,QuestionAnsweringModelOutput:()=>d.QuestionAnsweringModelOutput,QuestionAnsweringPipeline:()=>C.QuestionAnsweringPipeline,Qwen2ForCausalLM:()=>d.Qwen2ForCausalLM,Qwen2Model:()=>d.Qwen2Model,Qwen2PreTrainedModel:()=>d.Qwen2PreTrainedModel,Qwen2Tokenizer:()=>k.Qwen2Tokenizer,Qwen2VLForConditionalGeneration:()=>d.Qwen2VLForConditionalGeneration,Qwen2VLImageProcessor:()=>ae.Qwen2VLImageProcessor,Qwen2VLPreTrainedModel:()=>d.Qwen2VLPreTrainedModel,Qwen2VLProcessor:()=>Ee.Qwen2VLProcessor,RTDetrForObjectDetection:()=>d.RTDetrForObjectDetection,RTDetrImageProcessor:()=>ae.RTDetrImageProcessor,RTDetrModel:()=>d.RTDetrModel,RTDetrObjectDetectionOutput:()=>d.RTDetrObjectDetectionOutput,RTDetrPreTrainedModel:()=>d.RTDetrPreTrainedModel,RawAudio:()=>K.RawAudio,RawImage:()=>L.RawImage,RepetitionPenaltyLogitsProcessor:()=>u.RepetitionPenaltyLogitsProcessor,ResNetForImageClassification:()=>d.ResNetForImageClassification,ResNetModel:()=>d.ResNetModel,ResNetPreTrainedModel:()=>d.ResNetPreTrainedModel,RoFormerForMaskedLM:()=>d.RoFormerForMaskedLM,RoFormerForQuestionAnswering:()=>d.RoFormerForQuestionAnswering,RoFormerForSequenceClassification:()=>d.RoFormerForSequenceClassification,RoFormerForTokenClassification:()=>d.RoFormerForTokenClassification,RoFormerModel:()=>d.RoFormerModel,RoFormerPreTrainedModel:()=>d.RoFormerPreTrainedModel,RoFormerTokenizer:()=>k.RoFormerTokenizer,RobertaForMaskedLM:()=>d.RobertaForMaskedLM,RobertaForQuestionAnswering:()=>d.RobertaForQuestionAnswering,RobertaForSequenceClassification:()=>d.RobertaForSequenceClassification,RobertaForTokenClassification:()=>d.RobertaForTokenClassification,RobertaModel:()=>d.RobertaModel,RobertaPreTrainedModel:()=>d.RobertaPreTrainedModel,RobertaTokenizer:()=>k.RobertaTokenizer,SamImageProcessor:()=>ae.SamImageProcessor,SamImageSegmentationOutput:()=>d.SamImageSegmentationOutput,SamModel:()=>d.SamModel,SamPreTrainedModel:()=>d.SamPreTrainedModel,SamProcessor:()=>Ee.SamProcessor,SapiensForDepthEstimation:()=>d.SapiensForDepthEstimation,SapiensForNormalEstimation:()=>d.SapiensForNormalEstimation,SapiensForSemanticSegmentation:()=>d.SapiensForSemanticSegmentation,SapiensPreTrainedModel:()=>d.SapiensPreTrainedModel,SeamlessM4TFeatureExtractor:()=>S.SeamlessM4TFeatureExtractor,SegformerFeatureExtractor:()=>ae.SegformerFeatureExtractor,SegformerForImageClassification:()=>d.SegformerForImageClassification,SegformerForSemanticSegmentation:()=>d.SegformerForSemanticSegmentation,SegformerImageProcessor:()=>ae.SegformerImageProcessor,SegformerModel:()=>d.SegformerModel,SegformerPreTrainedModel:()=>d.SegformerPreTrainedModel,Seq2SeqLMOutput:()=>d.Seq2SeqLMOutput,SequenceClassifierOutput:()=>d.SequenceClassifierOutput,SiglipImageProcessor:()=>ae.SiglipImageProcessor,SiglipModel:()=>d.SiglipModel,SiglipPreTrainedModel:()=>d.SiglipPreTrainedModel,SiglipTextModel:()=>d.SiglipTextModel,SiglipTokenizer:()=>k.SiglipTokenizer,SiglipVisionModel:()=>d.SiglipVisionModel,SpeechT5FeatureExtractor:()=>S.SpeechT5FeatureExtractor,SpeechT5ForSpeechToText:()=>d.SpeechT5ForSpeechToText,SpeechT5ForTextToSpeech:()=>d.SpeechT5ForTextToSpeech,SpeechT5HifiGan:()=>d.SpeechT5HifiGan,SpeechT5Model:()=>d.SpeechT5Model,SpeechT5PreTrainedModel:()=>d.SpeechT5PreTrainedModel,SpeechT5Processor:()=>Ee.SpeechT5Processor,SpeechT5Tokenizer:()=>k.SpeechT5Tokenizer,SqueezeBertForMaskedLM:()=>d.SqueezeBertForMaskedLM,SqueezeBertForQuestionAnswering:()=>d.SqueezeBertForQuestionAnswering,SqueezeBertForSequenceClassification:()=>d.SqueezeBertForSequenceClassification,SqueezeBertModel:()=>d.SqueezeBertModel,SqueezeBertPreTrainedModel:()=>d.SqueezeBertPreTrainedModel,SqueezeBertTokenizer:()=>k.SqueezeBertTokenizer,StableLmForCausalLM:()=>d.StableLmForCausalLM,StableLmModel:()=>d.StableLmModel,StableLmPreTrainedModel:()=>d.StableLmPreTrainedModel,Starcoder2ForCausalLM:()=>d.Starcoder2ForCausalLM,Starcoder2Model:()=>d.Starcoder2Model,Starcoder2PreTrainedModel:()=>d.Starcoder2PreTrainedModel,StoppingCriteria:()=>we.StoppingCriteria,StoppingCriteriaList:()=>we.StoppingCriteriaList,StyleTextToSpeech2Model:()=>d.StyleTextToSpeech2Model,StyleTextToSpeech2PreTrainedModel:()=>d.StyleTextToSpeech2PreTrainedModel,SummarizationPipeline:()=>C.SummarizationPipeline,SuppressTokensAtBeginLogitsProcessor:()=>u.SuppressTokensAtBeginLogitsProcessor,Swin2SRForImageSuperResolution:()=>d.Swin2SRForImageSuperResolution,Swin2SRImageProcessor:()=>ae.Swin2SRImageProcessor,Swin2SRModel:()=>d.Swin2SRModel,Swin2SRPreTrainedModel:()=>d.Swin2SRPreTrainedModel,SwinForImageClassification:()=>d.SwinForImageClassification,SwinModel:()=>d.SwinModel,SwinPreTrainedModel:()=>d.SwinPreTrainedModel,T5ForConditionalGeneration:()=>d.T5ForConditionalGeneration,T5Model:()=>d.T5Model,T5PreTrainedModel:()=>d.T5PreTrainedModel,T5Tokenizer:()=>k.T5Tokenizer,TableTransformerForObjectDetection:()=>d.TableTransformerForObjectDetection,TableTransformerModel:()=>d.TableTransformerModel,TableTransformerObjectDetectionOutput:()=>d.TableTransformerObjectDetectionOutput,TableTransformerPreTrainedModel:()=>d.TableTransformerPreTrainedModel,TemperatureLogitsWarper:()=>u.TemperatureLogitsWarper,Tensor:()=>j.Tensor,Text2TextGenerationPipeline:()=>C.Text2TextGenerationPipeline,TextClassificationPipeline:()=>C.TextClassificationPipeline,TextGenerationPipeline:()=>C.TextGenerationPipeline,TextStreamer:()=>ie.TextStreamer,TextToAudioPipeline:()=>C.TextToAudioPipeline,TokenClassificationPipeline:()=>C.TokenClassificationPipeline,TokenClassifierOutput:()=>d.TokenClassifierOutput,TokenizerModel:()=>k.TokenizerModel,TopKLogitsWarper:()=>u.TopKLogitsWarper,TopPLogitsWarper:()=>u.TopPLogitsWarper,TrOCRForCausalLM:()=>d.TrOCRForCausalLM,TrOCRPreTrainedModel:()=>d.TrOCRPreTrainedModel,TranslationPipeline:()=>C.TranslationPipeline,UniSpeechForCTC:()=>d.UniSpeechForCTC,UniSpeechForSequenceClassification:()=>d.UniSpeechForSequenceClassification,UniSpeechModel:()=>d.UniSpeechModel,UniSpeechPreTrainedModel:()=>d.UniSpeechPreTrainedModel,UniSpeechSatForAudioFrameClassification:()=>d.UniSpeechSatForAudioFrameClassification,UniSpeechSatForCTC:()=>d.UniSpeechSatForCTC,UniSpeechSatForSequenceClassification:()=>d.UniSpeechSatForSequenceClassification,UniSpeechSatModel:()=>d.UniSpeechSatModel,UniSpeechSatPreTrainedModel:()=>d.UniSpeechSatPreTrainedModel,VLChatProcessor:()=>Ee.VLChatProcessor,VLMImageProcessor:()=>ae.VLMImageProcessor,ViTFeatureExtractor:()=>ae.ViTFeatureExtractor,ViTForImageClassification:()=>d.ViTForImageClassification,ViTImageProcessor:()=>ae.ViTImageProcessor,ViTMAEModel:()=>d.ViTMAEModel,ViTMAEPreTrainedModel:()=>d.ViTMAEPreTrainedModel,ViTMSNForImageClassification:()=>d.ViTMSNForImageClassification,ViTMSNModel:()=>d.ViTMSNModel,ViTMSNPreTrainedModel:()=>d.ViTMSNPreTrainedModel,ViTModel:()=>d.ViTModel,ViTPreTrainedModel:()=>d.ViTPreTrainedModel,VisionEncoderDecoderModel:()=>d.VisionEncoderDecoderModel,VitMatteForImageMatting:()=>d.VitMatteForImageMatting,VitMatteImageProcessor:()=>ae.VitMatteImageProcessor,VitMattePreTrainedModel:()=>d.VitMattePreTrainedModel,VitPoseForPoseEstimation:()=>d.VitPoseForPoseEstimation,VitPoseImageProcessor:()=>ae.VitPoseImageProcessor,VitPosePreTrainedModel:()=>d.VitPosePreTrainedModel,VitsModel:()=>d.VitsModel,VitsModelOutput:()=>d.VitsModelOutput,VitsPreTrainedModel:()=>d.VitsPreTrainedModel,VitsTokenizer:()=>k.VitsTokenizer,Wav2Vec2BertForCTC:()=>d.Wav2Vec2BertForCTC,Wav2Vec2BertForSequenceClassification:()=>d.Wav2Vec2BertForSequenceClassification,Wav2Vec2BertModel:()=>d.Wav2Vec2BertModel,Wav2Vec2BertPreTrainedModel:()=>d.Wav2Vec2BertPreTrainedModel,Wav2Vec2CTCTokenizer:()=>k.Wav2Vec2CTCTokenizer,Wav2Vec2FeatureExtractor:()=>S.Wav2Vec2FeatureExtractor,Wav2Vec2ForAudioFrameClassification:()=>d.Wav2Vec2ForAudioFrameClassification,Wav2Vec2ForCTC:()=>d.Wav2Vec2ForCTC,Wav2Vec2ForSequenceClassification:()=>d.Wav2Vec2ForSequenceClassification,Wav2Vec2Model:()=>d.Wav2Vec2Model,Wav2Vec2PreTrainedModel:()=>d.Wav2Vec2PreTrainedModel,Wav2Vec2Processor:()=>Ee.Wav2Vec2Processor,Wav2Vec2ProcessorWithLM:()=>Ee.Wav2Vec2ProcessorWithLM,WavLMForAudioFrameClassification:()=>d.WavLMForAudioFrameClassification,WavLMForCTC:()=>d.WavLMForCTC,WavLMForSequenceClassification:()=>d.WavLMForSequenceClassification,WavLMForXVector:()=>d.WavLMForXVector,WavLMModel:()=>d.WavLMModel,WavLMPreTrainedModel:()=>d.WavLMPreTrainedModel,WeSpeakerFeatureExtractor:()=>S.WeSpeakerFeatureExtractor,WeSpeakerResNetModel:()=>d.WeSpeakerResNetModel,WeSpeakerResNetPreTrainedModel:()=>d.WeSpeakerResNetPreTrainedModel,WhisperFeatureExtractor:()=>S.WhisperFeatureExtractor,WhisperForConditionalGeneration:()=>d.WhisperForConditionalGeneration,WhisperModel:()=>d.WhisperModel,WhisperPreTrainedModel:()=>d.WhisperPreTrainedModel,WhisperProcessor:()=>Ee.WhisperProcessor,WhisperTextStreamer:()=>ie.WhisperTextStreamer,WhisperTimeStampLogitsProcessor:()=>u.WhisperTimeStampLogitsProcessor,WhisperTokenizer:()=>k.WhisperTokenizer,XLMForQuestionAnswering:()=>d.XLMForQuestionAnswering,XLMForSequenceClassification:()=>d.XLMForSequenceClassification,XLMForTokenClassification:()=>d.XLMForTokenClassification,XLMModel:()=>d.XLMModel,XLMPreTrainedModel:()=>d.XLMPreTrainedModel,XLMRobertaForMaskedLM:()=>d.XLMRobertaForMaskedLM,XLMRobertaForQuestionAnswering:()=>d.XLMRobertaForQuestionAnswering,XLMRobertaForSequenceClassification:()=>d.XLMRobertaForSequenceClassification,XLMRobertaForTokenClassification:()=>d.XLMRobertaForTokenClassification,XLMRobertaModel:()=>d.XLMRobertaModel,XLMRobertaPreTrainedModel:()=>d.XLMRobertaPreTrainedModel,XLMRobertaTokenizer:()=>k.XLMRobertaTokenizer,XLMTokenizer:()=>k.XLMTokenizer,XLMWithLMHeadModel:()=>d.XLMWithLMHeadModel,XVectorOutput:()=>d.XVectorOutput,YolosFeatureExtractor:()=>ae.YolosFeatureExtractor,YolosForObjectDetection:()=>d.YolosForObjectDetection,YolosImageProcessor:()=>ae.YolosImageProcessor,YolosModel:()=>d.YolosModel,YolosObjectDetectionOutput:()=>d.YolosObjectDetectionOutput,YolosPreTrainedModel:()=>d.YolosPreTrainedModel,ZeroShotAudioClassificationPipeline:()=>C.ZeroShotAudioClassificationPipeline,ZeroShotClassificationPipeline:()=>C.ZeroShotClassificationPipeline,ZeroShotImageClassificationPipeline:()=>C.ZeroShotImageClassificationPipeline,ZeroShotObjectDetectionPipeline:()=>C.ZeroShotObjectDetectionPipeline,bankers_round:()=>q.bankers_round,cat:()=>j.cat,cos_sim:()=>q.cos_sim,dot:()=>q.dot,dynamic_time_warping:()=>q.dynamic_time_warping,env:()=>x.env,full:()=>j.full,full_like:()=>j.full_like,getKeyValueShapes:()=>z.getKeyValueShapes,hamming:()=>K.hamming,hanning:()=>K.hanning,interpolate:()=>j.interpolate,interpolate_4d:()=>j.interpolate_4d,interpolate_data:()=>q.interpolate_data,is_chinese_char:()=>k.is_chinese_char,layer_norm:()=>j.layer_norm,load_image:()=>L.load_image,log_softmax:()=>q.log_softmax,magnitude:()=>q.magnitude,matmul:()=>j.matmul,max:()=>q.max,mean:()=>j.mean,mean_pooling:()=>j.mean_pooling,medianFilter:()=>q.medianFilter,mel_filter_bank:()=>K.mel_filter_bank,min:()=>q.min,ones:()=>j.ones,ones_like:()=>j.ones_like,permute:()=>j.permute,permute_data:()=>q.permute_data,pipeline:()=>C.pipeline,quantize_embeddings:()=>j.quantize_embeddings,rand:()=>j.rand,read_audio:()=>K.read_audio,rfft:()=>j.rfft,round:()=>q.round,slice:()=>j.slice,softmax:()=>q.softmax,spectrogram:()=>K.spectrogram,stack:()=>j.stack,std_mean:()=>j.std_mean,topk:()=>j.topk,window_function:()=>K.window_function,zeros:()=>j.zeros,zeros_like:()=>j.zeros_like});var x=gr("./src/env.js"),C=gr("./src/pipelines.js"),d=gr("./src/models.js"),k=gr("./src/tokenizers.js"),z=gr("./src/configs.js"),K=gr("./src/utils/audio.js"),L=gr("./src/utils/image.js"),j=gr("./src/utils/tensor.js"),q=gr("./src/utils/maths.js"),W=gr("./src/base/feature_extraction_utils.js"),S=gr("./src/models/feature_extractors.js"),X=gr("./src/models/auto/feature_extraction_auto.js"),R=gr("./src/base/image_processors_utils.js"),ae=gr("./src/models/image_processors.js"),be=gr("./src/models/auto/image_processing_auto.js"),xe=gr("./src/base/processing_utils.js"),Ee=gr("./src/models/processors.js"),se=gr("./src/models/auto/processing_auto.js"),ie=gr("./src/generation/streamers.js"),we=gr("./src/generation/stopping_criteria.js"),u=gr("./src/generation/logits_process.js")})();var zp=n2.AutoTokenizer,Fp=n2.RawAudio,Sp=n2.StyleTextToSpeech2Model,Yg=n2.Tensor,pe=pe!==void 0?pe:{};pe.expectedDataFileDownloads||(pe.expectedDataFileDownloads=0);var Np=typeof importScripts=="function",Xc=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",Hg=typeof atob=="function"?atob:function(x){var C,d,k,z,K,L,j="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",q="",W=0;x=x.replace(/[^A-Za-z0-9\+\/\=]/g,"");do C=j.indexOf(x.charAt(W++))<<2|(z=j.indexOf(x.charAt(W++)))>>4,d=(15&z)<<4|(K=j.indexOf(x.charAt(W++)))>>2,k=(3&K)<<6|(L=j.indexOf(x.charAt(W++))),q+=String.fromCharCode(C),K!==64&&(q+=String.fromCharCode(d)),L!==64&&(q+=String.fromCharCode(k));while(W1&&(ru=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),process.on("uncaughtException",function(x){if(!(x instanceof Op))throw x}),process.on("unhandledRejection",function(x){throw x}),pe.inspect=function(){return"[Emscripten Module object]"}),pe.expectedDataFileDownloads++,function(){if(pe.ENVIRONMENT_IS_PTHREAD)return;const x="/usr/share/espeak-ng-data",C=x+"/lang",d=x+"/voices";(function(k){var z=null,K=null;function L(){function j(R,ae){if(!R)throw ae+new Error().stack}function q(R,ae,be){this.start=R,this.end=ae,this.audio=be}pe.FS_createPath("/","usr",!0,!0),pe.FS_createPath("/usr","share",!0,!0),pe.FS_createPath("/usr/share","espeak-ng-data",!0,!0),pe.FS_createPath(x,"lang",!0,!0),pe.FS_createPath(C,"aav",!0,!0),pe.FS_createPath(C,"art",!0,!0),pe.FS_createPath(C,"azc",!0,!0),pe.FS_createPath(C,"bat",!0,!0),pe.FS_createPath(C,"bnt",!0,!0),pe.FS_createPath(C,"ccs",!0,!0),pe.FS_createPath(C,"cel",!0,!0),pe.FS_createPath(C,"cus",!0,!0),pe.FS_createPath(C,"dra",!0,!0),pe.FS_createPath(C,"esx",!0,!0),pe.FS_createPath(C,"gmq",!0,!0),pe.FS_createPath(C,"gmw",!0,!0),pe.FS_createPath(C,"grk",!0,!0),pe.FS_createPath(C,"inc",!0,!0),pe.FS_createPath(C,"ine",!0,!0),pe.FS_createPath(C,"ira",!0,!0),pe.FS_createPath(C,"iro",!0,!0),pe.FS_createPath(C,"itc",!0,!0),pe.FS_createPath(C,"jpx",!0,!0),pe.FS_createPath(C,"map",!0,!0),pe.FS_createPath(C,"miz",!0,!0),pe.FS_createPath(C,"myn",!0,!0),pe.FS_createPath(C,"poz",!0,!0),pe.FS_createPath(C,"roa",!0,!0),pe.FS_createPath(C,"sai",!0,!0),pe.FS_createPath(C,"sem",!0,!0),pe.FS_createPath(C,"sit",!0,!0),pe.FS_createPath(C,"tai",!0,!0),pe.FS_createPath(C,"trk",!0,!0),pe.FS_createPath(C,"urj",!0,!0),pe.FS_createPath(C,"zle",!0,!0),pe.FS_createPath(C,"zls",!0,!0),pe.FS_createPath(C,"zlw",!0,!0),pe.FS_createPath(x,"voices",!0,!0),pe.FS_createPath(d,"!v",!0,!0),pe.FS_createPath(d,"mb",!0,!0),q.prototype={requests:{},open:function(R,ae){this.name=ae,this.requests[ae]=this,pe.addRunDependency("fp "+this.name)},send:function(){},onload:function(){var R=this.byteArray.subarray(this.start,this.end);this.finish(R)},finish:function(R){pe.FS_createDataFile(this.name,null,R,!0,!0,!0),pe.removeRunDependency("fp "+this.name),this.requests[this.name]=null}};for(var W=k.files,S=0;S{const j=function(X){if(typeof Xc=="boolean"&&Xc){var R=Buffer.from(X,"base64");return new Uint8Array(R.buffer,R.byteOffset,R.byteLength)}try{for(var ae=Hg(X),be=new Uint8Array(ae.length),xe=0;xe=0;--K)z[48+K]=52+K,z[65+K]=K,z[97+K]=26+K;function L(se,ie,we){for(var u,b,e=0,l=ie,M=we.length,ge=ie+(3*M>>2)-(we[M-2]=="=")-(we[M-1]=="=");e>4,l>2),l>2]!=e[A+4>>2]){if(ha(e[e[32972]+60>>2]),Z=e[47192],ia=t+12|0,Ts=t+8|0,J=f=J-6832|0,e[f+6816>>2]=0,e[f+6808>>2]=32,e[f+6800>>2]=0,Z){e[47351]=0,e[47350]=0,e[47352]=0,u[189076]=0,A=e[33284],e[47353]=(0|A)>0?A:0,e[47355]=e[47354]+1,jA(MA=f+5184|0,0,1600),Wr=f+6800|0,J=o=J-2608|0,e[o+2156>>2]=32,e[o+2148>>2]=0,l[134760]&&(u[190280]=0,u[134760]=0),e[Z+8216>>2]=0,e[Z+8220>>2]=0,e[Z+288>>2]=0,e[f+780>>2]=0,u[189360]=0;e:if(A=e[33691])e[o+2152>>2]=A;else{A:{r:{if(!(r=e[33285])){if(A=e[33283],e[A>>2]==e[A+4>>2]){e[o+2152>>2]=0;break e}if(!(r=e[33285]))break r}e[33285]=0;break A}e[33284]=e[33284]+1,A=e[33283],r=0|ct[e[A+8>>2]](A)}e[o+2152>>2]=r}Qn=MA+2|0,Ke=32;e:{for(;;){We=Ke;A:{r:{s:{if(r=e[33691],(s=e[33285])?A=0:(s=e[33285],A=e[33283],A=e[A>>2]==e[A+4>>2]),r|!A|s||!(e[32524]<0)){if(!jn(e[o+2156>>2])){if((s=(0|(A=e[49828]))>0)&(0|(r=A))<(0|(A=e[33284])))break s;if(!((0|(r=e[49845]))<=0|(0|A)<(0|r))){e[49845]=0,u[134760]=1,e[33285]=e[o+2152>>2],a=16384;break e}}Ke=e[o+2156>>2],e[o+2156>>2]=e[o+2152>>2];n:{c:{o:{g:{l:{if((0|(r=e[32524]))>=0){if(l[r+134736|0])break l;e[32524]=-1}if(r=e[33285])break o;if(A=e[33283],e[A>>2]!=e[A+4>>2])break g;r=32;break n}e[33691]|r||(e[o+2156>>2]=u[134736],r=1),e[32524]=r+1,r=u[r+134736|0];break n}if(!(r=e[33285]))break c}e[33285]=0;break n}e[33284]=e[33284]+1,A=e[33283],r=0|ct[e[A+8>>2]](A)}e[o+2152>>2]=r,e[33691]=0;n:if(!(m|!e[47203])){c:{if((0|(A=e[o+2156>>2]))!=60){if((0|r)!=35&r-97>>>0>25|(0|A)!=38)break n;for(s=e[33285],n=0;;){o:{if(e[o+2156>>2]=r,!s){if(A=e[33283],e[A>>2]==e[A+4>>2])break o;r=e[o+2156>>2]}if(!(!((r=!!(0|jn(r)))|(0|(A=e[o+2156>>2]))==35)|n>>>0>19)){u[(o+112|0)+n|0]=A,n=n+1|0,(r=e[33285])?(e[33285]=0,s=0):(e[33284]=e[33284]+1,A=e[33283],r=0|ct[e[A+8>>2]](A),s=e[33285]);continue}}break}u[(o+112|0)+n|0]=0;o:{g:{if(!(r=e[33285])){if(r=0,A=e[33283],e[A>>2]==e[A+4>>2])break o;if(!(r=e[33285]))break g}e[33285]=0;break o}e[33284]=e[33284]+1,A=e[33283],r=0|ct[e[A+8>>2]](A)}e[o+2152>>2]=r,e[o+100>>2]=e[o+2156>>2],e[o+104>>2]=r,e[o+96>>2]=o+112,DA(134736,84252,o+96|0);o:{if(e[o+2156>>2]==59){n=o+2156|0,O=o+2152|0,J=s=J-32|0;g:if(l[0|(r=o+112|0)]!=35)A=-1,(0|(r=Cs(130752,r)))!=-1&&(e[n>>2]=r,e[O>>2]||(e[O>>2]=32),A=r);else{if(l[0|(A=r+1|0)]==120){e[s>>2]=n,A=gt(r+2|0,90005,s);break g}e[s+16>>2]=n,A=gt(A,90070,s+16|0)}if(J=s+32|0,(0|A)>0)break o}e[32524]=0,e[o+2156>>2]=38,e[o+2152>>2]=32;break n}if((0|(A=e[o+2156>>2]))>32)break n;if(!(r=e[33692]-20|0)|(0|r)==16)break c;break n}if((0|r)!=47&&!ns(r)&&(0|(A=e[o+2152>>2]))!=63&&(0|A)!=33)break n;if((0|(A=e[o+2148>>2]))>780){e[33691]=e[o+2156>>2],u[0|(A=A+189424|0)]=32,u[A+1|0]=0,e[33285]=e[o+2152>>2],a=16384;break e}for(O=e[33285],n=0,r=e[o+2152>>2];e[o+2156>>2]=r,s=0,O||(A=e[33283],s=e[A>>2]==e[A+4>>2],r=e[o+2156>>2]),!((0|r)==62|s|n>>>0>499);)e[(o+144|0)+(n<<2)>>2]=r,n=n+1|0,(r=e[33285])?(O=0,e[33285]=0):(e[33284]=e[33284]+1,A=e[33283],r=0|ct[e[A+8>>2]](A),O=e[33285]);e[(s=o+144|0)+(n<<2)>>2]=0,e[o+2152>>2]=32,rA=o+2148|0,We=e[32525],r=0,J=Qe=J-560|0;o:if(vi(s,84333,3)&&vi(s,84477,4)){for(A=(s+(B0(s)<<2)|0)-4|0,(0|(zA=e[A>>2]))==47&&(e[A>>2]=32);;){if(A=e[s+(r<<2)>>2]){if(Or(A))A=r;else if(u[(Qe+512|0)+r|0]=Ht(A<<24>>24),A=39,(0|(r=r+1|0))!=39)continue}else A=r;break}if(u[(Qe+512|0)+A|0]=0,l[Qe+512|0]!=47){if((0|(O=Cs(130480,Qe+512|0)))!=16&&(r=e[rA>>2],e[rA>>2]=r+1,u[r+189424|0]=32),(0|zA)==47&&(r=0,!(502241>>>O&1)))break o}else(0|(r=Cs(130480,Qe+512|1)))!=16&&(n=e[rA>>2],e[rA>>2]=n+1,u[n+189424|0]=32),O=r+32|0;n=s+(A<<2)|0,A=e[33708],m=P(A,76)+133076|0,r=262174;g:{l:{i:{p:switch(O-1|0){case 33:C:if(!((0|A)<=1)){for(;;){if(e[P(r=A-1|0,76)+133152>>2]==2)break C;if(e[33708]=r,s=A>>>0>2,A=r,!s)break}A=1}r=va(n,34,A);break o;case 32:C:if(!((0|A)<=1)){for(;;){if(e[P(r=A-1|0,76)+133152>>2]==1)break C;if(e[33708]=r,s=A>>>0>2,A=r,!s)break}A=1}r=va(n,33,A)+524328|0;break o;case 9:(0|(r=e[33709]))<=18&&(e[33709]=r+1),e[(A=134912+(m=r<<6)|0)>>2]=10,e[A+4>>2]=-1,e[A+8>>2]=-1,e[A+52>>2]=-1,e[A+56>>2]=-1,e[A+44>>2]=-1,e[A+48>>2]=-1,e[A+36>>2]=-1,e[A+40>>2]=-1,e[A+28>>2]=-1,e[A+32>>2]=-1,e[A+20>>2]=-1,e[A+24>>2]=-1,e[A+12>>2]=-1,e[A+16>>2]=-1,e[A+60>>2]=-1,A=Ut(n,88301),s=Ut(n,88390),Bi(A,88479)?Bi(A,88528)||(e[28+(134912+(r<<6)|0)>>2]=ka(s,130224)):e[24+(m+134912|0)>>2]=ka(s,130192),qa(rA,e[33709]);break i;case 2:for((0|(A=e[33709]))<=18&&(e[33709]=A+1),e[(A=134912+(Dn=A<<6)|0)>>2]=3,e[A+4>>2]=-1,e[A+8>>2]=-1,e[A+52>>2]=-1,e[A+56>>2]=-1,e[A+44>>2]=-1,e[A+48>>2]=-1,e[A+36>>2]=-1,e[A+40>>2]=-1,e[A+28>>2]=-1,e[A+32>>2]=-1,e[A+20>>2]=-1,e[A+24>>2]=-1,e[A+12>>2]=-1,e[A+16>>2]=-1,e[A+60>>2]=-1,er=1;;){if(s=Ut(n,e[130448+(pr=er<<2)>>2])){zA=0,A=e[pr+131072>>2];C:if(O=e[A>>2])for(;;){for(r=0;m=u[r+O|0],(We=e[(r<<2)+s>>2])&&(r=r+1|0,(0|m)==(0|We)););switch(We-34|0){case 0:case 5:if(!m)break C}if(!(O=e[A+((zA=zA+1|0)<<3)>>2]))break}Ui=pr+(Dn+134912|0)|0;C:if((0|(A=e[4+(A+(zA<<3)|0)>>2]))>=0)A=(0|P(A,e[4+(pr+134912|0)>>2]))/100|0;else{for(;s=(A=s)+4|0,Or(e[A>>2]););for(fn=e[A>>2]==43,s=((pn=e[(A=A+(fn<<2)|0)>>2]==45)<<2)+A|0,zA=Qe+96|0,J=O=(J=m=J-16|0)-224|0,jA(O+16|0,0,144),A=O+160|4,e[O+24>>2]=A,e[O+60>>2]=A,e[O+92>>2]=-1,e[O+64>>2]=60,e[O+20>>2]=A,e[O+48>>2]=19,r=s;r=(A=r)+4|0,We=(We=e[A>>2])?Lr(124960,We):0;);e[O+100>>2]=A,Ja(r=O+16|0,0,0),BA(O,r,1,1),r=e[O+8>>2],Q0=e[O+12>>2],We=e[O>>2],T0=e[O+4>>2],zA&&(_n=zA,zA=e[O+136>>2]+(e[O+20>>2]-e[O+60>>2]|0)|0,e[_n>>2]=zA?A+(zA<<2)|0:s),e[(A=m)+8>>2]=r,e[A+12>>2]=Q0,e[A>>2]=We,e[A+4>>2]=T0,J=O+224|0,ye=Es(e[A>>2],e[A+4>>2],e[A+8>>2],e[A+12>>2]),J=A+16|0;m:{r=100;b:if((0|(A=s))!=(0|(s=e[Qe+96>>2]))){r=pn?-1:fn;h:{if((0|(A=e[s>>2]))!=115){if((0|A)!=37)break h;if(Ne(ye=r?+(0|r)*ye+100:ye)<2147483648){r=~~ye;break b}r=-2147483648;break b}if(e[s+4>>2]==116){be(+(Ft=ye*+(0|r)/12)),A=0|X(1),X(0);v:{if((r=(A=A>>>20&2047)-969|0)>>>0>=63){if(ye=Ft+1,(0|r)<0)break v;if(be(+Ft),r=0|X(1),s=0|X(0),!(A>>>0<1033)){if(ye=0,!s&(0|r)==-1048576||(ye=Ft+1,A>>>0>=2047))break v;if((0|r)>0|(0|r)>=0){D[8+(A=J-16|0)>>3]=3105036184601418e216,ye=3105036184601418e216*D[A+8>>3];break v}if(!(r>>>0<3230714880)){D[8+(A=J-16|0)>>3]=12882297539194267e-247,ye=12882297539194267e-247*D[A+8>>3];break v}}m=A,A=!(s<<1)&(0|(A=r<<1|s>>>31))==-2129002496|A>>>0<2165964800?m:0}Ba=(Ft=(ye=Ft-((na=(ye=D[14416])+Ft)-ye))*ye)*Ft*(ye*D[14421]+D[14420]),Ft*=ye*D[14419]+D[14418],ye*=D[14417],be(+na),X(1),m=0|X(0),ye=Ba+(Ft+(ye+D[115376+(s=m<<4&2032)>>3])),We=e[(s=s+115384|0)>>2],O=e[s+4>>2],s=(r=We)+(We=0)|0,r=(m<<13)+O|0,r=s>>>0>>0?r+1|0:r,A?(R(0,0|s),R(1,0|r),ye=(Ft=+ae())*ye+Ft):-2147483648&m?(R(0,0|s),R(1,r+1071644672|0),(ye=(na=(Ft=+ae())*ye)+Ft)<1&&(e[8+(A=J-16|0)>>2]=0,e[A+12>>2]=1048576,D[A+8>>3]=22250738585072014e-324*D[A+8>>3],ye=(ye=(Ba=ye+1)+(na+(Ft-ye)+(ye+(1-Ba)))+-1)==0?0:ye),ye*=22250738585072014e-324):(R(0,0|s),R(1,r+-1048576|0),ye=(Ft=+ae())*ye+Ft,ye+=ye)}if(Ne(ye*=100)<2147483648){r=~~ye;break b}r=-2147483648;break b}}if((0|er)!=1)break m;if(r)r=100+(A=Ne(ye=ye*+(0|r)*100)<2147483648?~~ye:-2147483648)|0;else{if(Ne(ye*=100)<2147483648){r=~~ye;break b}r=-2147483648}}A=(0|P(r,e[pr+134848>>2]))/100|0;break C}A=Ne(ye)<2147483648?~~ye:-2147483648,r&&(A=e[pr+134848>>2]+P(A,r)|0)}e[Ui+4>>2]=A}if((0|(er=er+1|0))==5)break}qa(rA,e[33709]);break i;case 11:(0|(r=e[33709]))<=18&&(e[33709]=r+1),e[(A=134912+(r<<6)|0)>>2]=12,e[A+4>>2]=-1,e[A+8>>2]=-1,e[A+52>>2]=-1,e[A+56>>2]=-1,e[A+44>>2]=-1,e[A+48>>2]=-1,e[A+36>>2]=-1,e[A+40>>2]=-1,e[A+28>>2]=-1,e[A+32>>2]=-1,e[A+20>>2]=-1,e[A+24>>2]=-1,e[A+12>>2]=-1,e[A+16>>2]=-1,e[A+60>>2]=-1,A=(A=Ut(n,88658))?ka(A,130400):3,s=134912+(r<<6)|0,e[e[47192]+148>>2]!=1?(e[52+(134912+(r<<6)|0)>>2]=A,A=l[A+102776|0]):(e[20+(134912+(r<<6)|0)>>2]=l[A+102764|0],A=l[A+102770|0]),e[s+12>>2]=A,qa(rA,e[33709]);break i;case 34:case 41:case 43:if(!((0|(A=e[33709]))<=0)){if(n=O-32|0,O=0,s=0,r=0,A>>>0>=4)for(m=-4&A,zA=0;er=2|r,pr=1|r,s=(0|n)==e[134912+((We=3|r)<<6)>>2]?We:(0|n)==e[134912+(er<<6)>>2]?er:(0|n)==e[134912+(pr<<6)>>2]?pr:(0|n)==e[134912+(r<<6)>>2]?r:s,r=r+4|0,(0|m)!=(0|(zA=zA+4|0)););if(m=3&A)for(;s=(0|n)==e[134912+(r<<6)>>2]?r:s,r=r+1|0,(0|m)!=(0|(O=O+1|0)););(0|s)<=0||(e[33709]=s,A=s)}qa(rA,A);break i;case 7:if(A=Ut(n,88741),r=Ut(n,88860),(0|ka(A,130176))!=1)break i;A=e[rA>>2],e[rA>>2]=A+1,u[A+189424|0]=91,A=e[rA>>2],e[rA>>2]=A+1,u[A+189424|0]=91,A=Ta((A=e[rA>>2])+189424|0,r,800-A|0)+e[rA>>2]|0,e[rA>>2]=A+1,u[A+189424|0]=93,A=e[rA>>2],e[rA>>2]=A+1,u[A+189424|0]=93;break i;case 35:e[33692]==36&&(u[e[rA>>2]+189424|0]=0,(s=Cs(131104,r=(A=e[33707])+189424|0))&&(e[rA>>2]=zr(s,r)+A)),A=e[rA>>2],e[rA>>2]=A+1,u[A+189424|0]=1,A=e[rA>>2],e[rA>>2]=A+1,u[A+189424|0]=89,e[33692]=0;break i;case 8:if(!(A=Ut(n,89299)))break i;u[134824]=1,r=e[rA>>2],e[rA>>2]=Ta(r+189424|0,A,800-r|0)+e[rA>>2];break i;case 13:u[134824]=1;break i;case 40:case 45:u[134824]=0;break i;case 4:if(!(A=Ut(n,89360)))break i;if(Ta(Qe+352|0,A,160),l[Qe+352|0]&&!yr(199328,Qe+352|0)){u[134760]=1,u[199328]=0,r=16384;break o}if((0|(A=Wn(Qe+352|0)))<0)break i;e[Qe+20>>2]=A,e[Qe+16>>2]=1,DA(A=Qe+352|0,89460,Qe+16|0),qA(e[rA>>2]+189424|0,A),e[rA>>2]=e[rA>>2]+HA(A);break i;case 10:(0|(r=e[33709]))<=18&&(e[33709]=r+1),e[(A=134912+(r<<6)|0)>>2]=11,e[A+4>>2]=-1,e[A+8>>2]=-1,e[A+52>>2]=-1,e[A+56>>2]=-1,e[A+44>>2]=-1,e[A+48>>2]=-1,e[A+36>>2]=-1,e[A+40>>2]=-1,e[A+28>>2]=-1,e[A+32>>2]=-1,e[A+20>>2]=-1,e[A+24>>2]=-1,e[A+12>>2]=-1,e[A+16>>2]=-1,e[A+60>>2]=-1;C:if(A=Ut(n,89514)){if(Ta(Qe+352|0,A,160),e[34441]){if((0|(A=Wn(Qe+352|0)))<0||0|ct[e[34441]](1,A+e[33282]|0,We))break C;e[Qe+68>>2]=A,e[Qe+64>>2]=1,DA(Qe+352|0,89658,Qe- -64|0)}else{if(!We|l[Qe+352|0]==47?A=u0(Qe+352|0):(e[Qe+48>>2]=We,e[Qe+52>>2]=Qe+352,DA(A=Qe+96|0,89564,Qe+48|0),A=u0(A)),(0|A)<0)break C;e[Qe+36>>2]=A,e[Qe+32>>2]=1,DA(Qe+352|0,89623,Qe+32|0)}A=Qe+352|0,qA(e[rA>>2]+189424|0,A),e[rA>>2]=e[rA>>2]+HA(A),e[4+(134912+(r<<6)|0)>>2]=1}if(qa(rA,e[33709]),(0|zA)==47){s0(11,rA),r=16384;break o}u[134772]=1,r=16384;break o;case 42:s0(43,rA),u[134772]=0,r=16384;break o;case 12:C:{if(A=Ut(n,89714)){if(r=16384,(m=(0|(A=ka(A,130336)))<0?2:A)>>>0<=2&&(A=e[rA>>2],e[Qe+84>>2]=m,e[Qe+80>>2]=1,DA(A+189424|0,89770,Qe+80|0),e[rA>>2]=e[rA>>2]+3,r=0),A=e[102784+(m<<2)>>2],!(s=Ut(n,89907)))break C;break l}if(r=16384,s=Ut(n,89907))break l;A=21;break g}if(m>>>0<3)break i;break g;case 0:(A=Ut(n,89965))&&(Ta(r=Qe+352|0,A,160),Wn(r)),r=va(n,1,e[33708])?147456:0;break o;case 1:r=va(n,2,A)?147456:0;break o;case 5:r=0,e[m>>2]==6&&(r=va(n,38,A),A=e[33708]),r=524358+(va(n,6,A)|r)|0;break o;case 6:r=0,(0|(s=e[m>>2]))==6&&(r=va(n,38,A),s=e[m>>2]),(0|s)==7&&(r=va(n,39,e[33708])|r),r=524358+(r|va(n,7,e[33708]))|0;break o;case 37:if(r=524328,e[m>>2]!=6)break o;r=va(n,38,A)+524328|0;break o;case 38:if(r=524358,(-2&e[m>>2])!=6)break o;r=va(n,39,A)+524358|0;break o;case 14:case 46:break o;case 3:break p;default:break i}A=Ut(n,88893),r=Ut(n,88992),s=Ut(n,89153),n=ka(A,130272),r=ka(r,130320),A=C0(s,0),e[Qe>>2]=1,s=(0|A)<2?193:A- -64|0,r=(0|(A=(0|r)==1?19:n))==64?s:A,e[Qe+4>>2]=r,DA(A=Qe+352|0,89230,Qe),qA(e[rA>>2]+189424|0,A),A=e[rA>>2]+HA(A)|0,e[rA>>2]=A,e[33707]=A,e[33692]=r}r=0;break o}A=C0(s,1),s=e[33722],Gi(1,e[33713]),(0|(A=(0|(s=(0|P(A,s))/100<<8))/(0|P(e[36429],10))|0))<=199&&(A=(0|s)/(0|P(e[36428],10))|0),r=r||16384}s=A>>>5|0,n=A,r=((A=(0|A)>4095)?s>>>0>=4095?4095:s:n)+(A?8388608|r:r)|0}if(J=Qe+560|0,r){if(A=e[o+2148>>2]+189424|0,u[0|A]=32,u[A+1|0]=0,!(131072&r)){a=r;break e}qA(189360,134784),a=r;break e}e[o+2156>>2]=32;o:{g:{if(!(r=e[33285])){if(m=0,A=e[33283],e[A>>2]==e[A+4>>2])continue;if(!(r=e[33285]))break g}e[33285]=0;break o}e[33284]=e[33284]+1,A=e[33283],r=0|ct[e[A+8>>2]](A)}e[o+2152>>2]=r,m=0;continue}e[o+2156>>2]=A+57344}if(l[134824])continue;if(s=e[o+2156>>2],!((0|(A=e[o+2152>>2]))!=10|e[47268]!=-1)){(0|(a=Ls(s)))==16384?(A=e[o+2148>>2],b[MA+(A<<1)>>1]=e[33284]-e[47353],e[Wr>>2]=A,a=524328,A=zr(e[o+2156>>2],A+189424|0)+e[o+2148>>2]|0):A=e[o+2148>>2],u[0|(A=A+189424|0)]=32,u[A+1|0]=0;break e}n:if((0|s)==1){if((0|A)!=66){if((0|A)!=86)break n;for(A=e[o+2148>>2],e[o+2148>>2]=A+1,u[A+189424|0]=0;;){c:{o:{g:{if(!(r=e[33285])){if(A=e[33283],e[A>>2]==e[A+4>>2])break c;if(!(r=e[33285]))break g}e[33285]=0;break o}e[33284]=e[33284]+1,A=e[33283],r=0|ct[e[A+8>>2]](A)}if(e[o+2156>>2]=r,!(Or(r)||(0|(A=e[o+2148>>2]))>=799)){e[o+2148>>2]=A+1,u[A+189424|0]=e[o+2156>>2];continue}}break}u[e[o+2148>>2]+189424|0]=0,a=147456;break e}r=e[o+2148>>2],u[0|(A=r+189424|0)]=32,u[A+1|0]=32,u[A+2|0]=32,u[A+3|0]=0,e[o+2148>>2]=r+3;c:{o:{g:{l:{i:{p:{if(!(r=e[33285])){if(A=e[33283],e[A>>2]==e[A+4>>2])break l;if(!(r=e[33285]))break p}e[33285]=0;break i}e[33284]=e[33284]+1,A=e[33283],r=0|ct[e[A+8>>2]](A)}if(e[o+2152>>2]=r,s=0,(0|r)!=48)break g;break o}r=e[o+2152>>2]}if(e[47208]=0,e[47201]=1,(0|r)==49)break c;for(s=e[33285],n=0;;){g:{if(!s){if(A=e[33283],e[A>>2]==e[A+4>>2])break g;r=e[o+2152>>2]}if(!(Or(r)|n>>>0>58)){e[188832+(n<<2)>>2]=e[o+2152>>2],(r=e[33285])?(e[33285]=0,s=0):(e[33284]=e[33284]+1,A=e[33283],r=0|ct[e[A+8>>2]](A),s=e[33285]),n=n+1|0,e[o+2152>>2]=r,A=e[o+2148>>2],e[o+2148>>2]=A+1,u[A+189424|0]=32;continue}}break}s=2,e[188832+(n<<2)>>2]=0}e[47201]=s}c:{if(!(r=e[33285])){if(A=e[33283],e[A>>2]==e[A+4>>2])continue;if(!(r=e[33285]))break c}e[33285]=0,e[o+2152>>2]=r;continue}e[33284]=e[33284]+1,A=e[33283],e[o+2152>>2]=ct[e[A+8>>2]](A);continue}Er=Er+1|0,r=0,A=e[Z+340>>2];n:if(n=M[A>>1]){for(;;){if((65535&n)!=(0|s)){if(n=M[A+((r=r+2|0)<<1)>>1])continue;break n}break}switch(0|(A=M[A+(r<<1|2)>>1])){case 1:continue;case 0:break n}e[o+2156>>2]=A,s=A}jn(s)?(ce=1,r=e[o+2156>>2]):at?(e[33285]=e[o+2152>>2],r=1328,e[o+2156>>2]=1328,e[o+2152>>2]=32,at=0):(0|(r=e[o+2156>>2]))!=3851?(at=0,(0|r)!=3405|e[o+2152>>2]!=8205||(r=3406,e[o+2156>>2]=3406)):(r=32,e[o+2156>>2]=32,at=0);n:if(hs(r)){if(e[Z+8216>>2]=e[Z+8216>>2]+1,e[33692]|e[47200]!=2||hs(Ke)||(e[o+2544>>2]=0,e[o+2548>>2]=0,e[o+2304>>2]=84731,!kr(Z,o+2304|0,o+2160|0,o+2544|0,0,0))||($t(Z,A=o+2160|0,o+2544|0,-1,0),JA(r=A,A=o+2336|0),e[o+80>>2]=A,DA(r=o+2240|0,85451,o+80|0),A=e[o+2148>>2],(0|(r=HA(r)+A|0))>=800))break n;qA(A+189424|0,o+2240|0),e[o+2148>>2]=r}else ns(e[o+2156>>2])&&(e[Z+8220>>2]=e[Z+8220>>2]+1);if(r=e[o+2152>>2],A=e[o+2156>>2],e[47204])if((0|m)>0)m=m-1|0;else{if(!((0|A)!=91|(0|r)!=91)){s=0,m=-1;break A}m=(0|A)==93&&(0|r)==93?2:m}if((0|A)==10){for(s=e[33285],n=0;;){n:{if(!s){if(A=e[33283],e[A>>2]==e[A+4>>2])break n;r=e[o+2152>>2]}if(Or(r)){n=(e[o+2152>>2]==10)+n|0,(r=e[33285])?(e[33285]=0,s=0):(e[33284]=e[33284]+1,A=e[33283],r=0|ct[e[A+8>>2]](A),s=e[33285]),e[o+2152>>2]=r;continue}}break}if((0|n)>0){a&&jA(A=vr+189424|0,32,Gt(o+2336|0,A)),A=e[o+2148>>2]+189424|0,u[0|A]=32,u[A+1|0]=0,e[33285]=e[o+2152>>2],a=e[47203]?524358:P((0|n)>=3?3:n,30)+524328|0;break e}if(A=e[47268]<(0|Er),Er=0,!A){A=e[o+2148>>2]+189424|0,u[0|A]=32,u[A+1|0]=0,e[33285]=e[o+2152>>2],a=262174;break e}}if(s=0,e[33692]|m)break A;if(A=0,!a)break r;if(Or(e[o+2156>>2])){A=a;break r}if(rr(e[o+2156>>2])&&ms(e[o+2156>>2]))break r;e[33691]=e[o+2156>>2],u[0|(A=vr+189424|0)]=32,u[A+1|0]=0,e[33285]=e[o+2152>>2];break e}at&&(e[o+2148>>2]=zr(1328,e[o+2148>>2]+189424|0)+e[o+2148>>2]),a&&jA(A=vr+189424|0,32,Gt(o+2336|0,A)),A=e[o+2148>>2]+189424|0,u[0|A]=32,u[A+1|0]=0}a=589864;break e}if(!((0|(r=e[o+2156>>2]))!=46|e[o+2152>>2]!=46)){r:{s:{n:{if(!(r=e[33285])){if(r=e[33283],e[r>>2]==e[r+4>>2])break r;if(!(r=e[33285]))break n}e[33285]=0;break s}e[33284]=e[33284]+1,r=e[33283],r=0|ct[e[r+8>>2]](r)}if(c=r,(0|r)==46)for(e[o+2152>>2]=32,e[o+2156>>2]=8230,c=e[33285];;){s:{n:{if(!c){if(r=e[33283],e[r>>2]==e[r+4>>2]){c=46;break r}if(!(c=e[33285]))break n}e[33285]=0,r=0;break s}e[33284]=e[33284]+1,r=e[33283],c=0|ct[e[r+8>>2]](r),r=e[33285]}if((0|c)!=46)break r;e[o+2152>>2]=32,e[o+2156>>2]=8230,c=r}}(0|(r=e[o+2156>>2]))!=8230?e[33285]=c:(e[o+2152>>2]=c,r=8230)}if(zA=0,(0|(O=Ls(r)))!=16384){r:if(536621&O)for(r=e[33285];;){if(!r&&(r=e[33283],e[r>>2]==e[r+4>>2])||!(536621&Ls(e[o+2152>>2])))break r;(c=e[33285])?(e[33285]=0,r=0):(e[33284]=e[33284]+1,r=e[33283],c=0|ct[e[r+8>>2]](r),r=e[33285]),e[o+2152>>2]=c}if(1048576&O){e[f+780>>2]=O>>>12&15,at=1,m=0,a=A;continue}(Or(e[o+2152>>2])|32768&O||cn(e[o+2152>>2])||(0|(r=e[o+2152>>2]))==63||(n=0,e[33285]||(r=e[33283],n=e[r>>2]==e[r+4>>2],r=e[o+2152>>2]),n||(0|r)==1))&&(zA=1)}if((0|(r=e[o+2156>>2]))==57404&&(e[o+2156>>2]=60,r=60),e[47201]){a=0;r:if(!(1<<(n=Wa(r))&1879048255&&n>>>0<=30)){if(!((n=Wa(r))>>>0>27)){if(116672&(m=1<>2]))){e[Z+288>>2]=0,s=e[o+2156>>2],u[o+2336|0]=0,m=e[o+2152>>2],r=0;r:{s:if(!((0|(a=e[34064]))<=0))for(;;){if((0|s)==e[136272+(r<<4)>>2]){if(e[136276+(r<<4)>>2])break r;if($s(0,r))break s;break r}if((0|a)==(0|(r=r+1|0)))break}r=-1}r:if((0|r)>=0)e[o>>2]=r,DA(o+2336|0,86007,o),e[33285]=m;else if((n=!zA)|(0|s)!=46|(0|m)==46||(e[o+2600>>2]=0,e[o+2604>>2]=0,e[o+2540>>2]=86036,!kr(Z,o+2540|0,o+2544|0,o+2600|0,0,0))?r=en(o+2240|0,Z,s,0):($t(Z,r=o+2544|0,o+2600|0,-1,0),JA(a=r,r=o+2160|0),e[o+64>>2]=r,DA(r=o+2304|0,85451,o- -64|0)),a=r,n|!e[o+2148>>2]|2&l[Z+76|0]){for(r=e[33285],n=1;;){s:{n:{if(!r){if(r=e[33283],e[r>>2]==e[r+4>>2]|(0|s)==60|(0|s)!=(0|m))break s;if(n=n+1|0,m=e[33285])break n;e[33284]=e[33284]+1,r=e[33283],m=0|ct[e[r+8>>2]](r),r=e[33285];continue}if((0|s)==60|(0|s)!=(0|m))break s;m=r,n=n+1|0}r=0,e[33285]=0;continue}break}if(e[o+2152>>2]=m,zA&&(e[33285]=m),(0|n)==1){e[o+16>>2]=a,DA(o+2336|0,86219,o+16|0);break r}if((0|n)<=3){if(u[o+2336|0]=0,(0|(r=e[50786]))<=299&&(e[o+2336>>2]=l[86728]|l[86729]<<8|l[86730]<<16|l[86731]<<24,b[o+2340>>1]=l[86732]|l[86733]<<8),(0|n)>0){for(;e[o+32>>2]=a,DA(r=o+2160|0,86219,o+32|0),m=n>>>0>1,sa(o+2336|0,r),n=n-1|0,m;);r=e[50786]}if((0|r)>299)break r;e[o+2160>>2]=l[86857]|l[86858]<<8|l[86859]<<16|l[86860]<<24,r=l[86860]|l[86861]<<8|l[86862]<<16|l[86863]<<24,u[o+2163|0]=r,u[o+2164|0]=r>>>8,u[o+2165|0]=r>>>16,u[o+2166|0]=r>>>24,sa(o+2336|0,o+2160|0);break r}e[o+56>>2]=a,e[o+52>>2]=n,e[o+48>>2]=a,DA(o+2336|0,86932,o+48|0)}else e[33691]=s,e[33285]=m,b[o+2336>>1]=32;if(n=HA(a=o+2336|0),qA((r=e[o+2148>>2])+189424|0,a),e[o+2148>>2]=r+n,zA){if((0|s)==45){a=16384;break e}if(a=Ls(s),!(2&l[Z+76|0]|(0|r)<=0)){a=(-32769&a)==266270?262148:(28672&a)==4096?266244:262148;break e}if(!(524288&a)){a=(28672&a)==4096?266244:262148;break e}if((0|a)>=0)break e}s=e[o+2156>>2]}}if(s|!(2097152&O)||(r=qA(e[o+2148>>2]+189424|0,en(o+2336|0,Z,e[o+2156>>2],1)),l[0|r]?(e[o+2148>>2]=e[o+2148>>2]+HA(r),O&=-28673,s=e[o+2156>>2]):s=0),m=0,zA){r:if(Or(c=e[o+2152>>2]))for(n=e[33285],r=0;;){if(!n&&(a=e[33283],e[a>>2]==e[a+4>>2])||!Or(c))break r;r=((0|c)==10)+r|0,(c=e[33285])?(e[33285]=0,n=0):(e[33284]=e[33284]+1,a=e[33283],c=0|ct[e[a+8>>2]](a),n=e[33285])}else r=0;a=(0|(m=e[o+2156>>2]))==46&&(0|r)<2?4194304|O:O;r:{if(!r){n=1,(0|m)!=44|(0|Ke)!=46|e[Z+212>>2]!=26741|We-48>>>0>=10||c-48>>>0>=10&&!ms(c)||(e[o+2156>>2]=1367,n=0),(0|(O=e[o+2156>>2]))!=46|(0|c)!=39||(m=n,O=e[33283],(0|(Qe=e[O>>2]))==e[O+4>>2]?n=0:(n=0|ct[e[O+8>>2]](O),e[O>>2]=Qe),O=e[o+2156>>2],n=(0|n)!=115&m);s:if((0|O)!=46)n&=ce;else{n:if(1&u[Z+106|0]){if(!(Ke-48>>>0<10)&&((m=Ke-73|0)>>>0>15|!(1<>>0<=15||Or(We))))break n;n=Ke-48>>>0>=10?0:!ms(c)&(0|c)!=45&n}if(ms(c)&&(n=l[Z+208|0]!=0&n),ce){O=e[o+2156>>2];break s}O=32,e[o+2156>>2]=32,n=0}if(!(!n|(0|O)!=46|!e[47203]|(0|c)!=60)){vr=e[o+2148>>2],A=a;break r}if(!n)break r}if(A=e[o+2148>>2]+189424|0,u[0|A]=32,u[A+1|0]=0,e[33285]=c,Ke-48>>>0<10&&(a=rr(c)?a:-4194305&a),(0|r)<2)break e;a=(0|a)==536621?536656:(0|a)==532520?532555:524358;break e}(e[33285]||(m=0,r=e[33283],e[r>>2]!=e[r+4>>2]))&&(m=0,Or(e[o+2152>>2])&&(e[33285]=c))}a=A}if(e[33712]!=1){if((0|s)!=(0|(r=e[o+2156>>2])))n=e[o+2148>>2],(0|r)==57404&&(r=60,e[o+2156>>2]=60);else{A:{if(cn(s))r=57384;else{if(r=45,e[o+2156>>2]==45)break A;r=32}e[o+2156>>2]=r}n=e[o+2148>>2]}e[o+2148>>2]=zr(r,n+189424|0)+e[o+2148>>2],Or(e[o+2156>>2])||cn(e[o+2156>>2])||(A=e[o+2148>>2],b[MA+(A<<1)>>1]=e[33284]-e[47353],(0|A)<=(n+1|0)||jA(Qn+(n<<1)|0,255,A+~n<<1)),r=e[o+2148>>2],e[Wr>>2]=r;A:{r:{if((0|r)>725){if(!rr(e[o+2156>>2]))break r;r=e[o+2148>>2]}if((0|r)<796)continue;break A}if(r=e[o+2148>>2],!(e[o+2156>>2]-48>>>0>=10)&&(0|r)<796)continue}break}}u[0|(A=r+189424|0)]=32,u[A+1|0]=0,e[33285]=e[o+2152>>2],a=16384}J=o+2608|0,at=a,ia&&(A=e[f+780>>2],e[ia>>2]=A||at>>>12&7),A=(f+5184|0)+(e[f+6800>>2]<<1)|0,b[A+6>>1]=0,b[A+2>>1]=0,b[A+4>>1]=32767,O=P(4095&at,8388608&at?320:10),a=189424;e:{A:{r:if(A=l[189424]){for(;;){if(!!(255&(A=A<<24>>24))&A>>>0<33){if(A=l[0|(a=a+1|0)])continue;break r}break}if(l[0|a])break A}O=(0|(r=O-(A=e[47566])|0))>0?r:0,e[47566]=O+A,at=l[190268]?524288|at:at,e[Z+8240>>2]=at;break e}e[47566]=O,A=l[190268],e[Z+8240>>2]=at,A&&(dt=1,e[47568]=e[47568]+1,(0|(A=e[47569]))<=0||(A=A-1|0,e[47569]=A,A||(u[190280]=0)))}e[49572]=1,e[47572]=655360,e[47573]=0,e[Z+8184>>2]=0,e[Z+8188>>2]=0,A=0,e[Z+288>>2]=0,e[(r=Z- -8192|0)>>2]=0,e[r+4>>2]=0,e[Z+8200>>2]=0,e[Z+8224>>2]=0,e[Z+8228>>2]=0,e[(r=Z+8232|0)>>2]=0,e[r+4>>2]=0,u[f+786|0]=32,b[f+784>>1]=8192,e[f+6812>>2]=32,b[f+1588>>1]=3,e[f+1584>>2]=0,a=0;e:if(!((0|(r=e[f+6800>>2]))<=0)){for(;;){if(b[(f+5184|0)+(a<<1)>>1]>0)break e;if((0|r)==(0|(a=a+1|0)))break}a=r}if(r=M[(f+5184|0)+(a<<1)>>1],b[f+1592>>1]=r,r)for(;A=!!(65535&~r)+A|0,r=M[(f+5184|0)+((a=a+1|0)<<1)>>1];);for(u[f+1594|0]=A,n=3,MA=1,a=0;;){We=e[f+6808>>2],Ma(f+6808|0,(rA=(f+784|0)+n|0)-1|0),!l[Z+170|0]|e[f+6808>>2]-48>>>0>=10||rr(We)&&(e[f+6808>>2]=97),he?e[f+6812>>2]=he:I&&Ma(f+6812|0,I+189423|0),r=I;e:{A:if(a||(r=Gt(f+6816|0,I+189424|0)+I|0,a=e[f+6816>>2])){if(ce=Gt(f+6804|0,A=r+189424|0),(0|a)==1){if(s=r-1|0,he=32,Ke=0,e[f+6812>>2]!=32){r=s,A=32;break A}I=0,a=r;r:{s:switch(l[0|A]-43|0){case 0:a=r+1|0,I=64;break r;case 2:break s;default:break r}a=r+1|0,I=96}if(u[0|(A=a+189424|0)]-48>>>0>=10)c=a+1|0,ce=-1;else{for(ce=Vs(A);a=(A=a)+1|0,u[A+189424|0]-48>>>0<10;);c=a,a=A}if((0|(he=e[47350]))>247)A=0;else if(A=0,!((0|(a=u[a+189424|0]))<0)&&(a=rn(84868,255&a,14))){r=1+(A=a-84868|0)|0,(0|ce)==-1&&(ce=e[105536+(r<<2)>>2],I=0);r:{s:switch(A-8|0){case 0:e[49574]=0,e[49573]=ce;break r;case 4:break s;default:break r}u[199304]=(0|ce)>=3?1:0}A=1,e[47350]=he+1,e[198304+(he<<2)>>2]=(r+I|0)+(ce<<8),r=c}he=e[f+6812>>2],jA(s+189424|0,32,r-s|0),Xr=A+Xr|0,a=0;break e}he=0,(0|a)==32|e[49573]!=36?(Ke=0,A=a):(e[f+6812>>2]!=32|e[f+6804>>2]!=32||(e[49573]=20),Ke=0,A=vn(a,Z))}else e[f+6804>>2]=32,Ke=1,he=0,ce=0,A=32;A:if(hr){if(hr=1,MA=8,a=0,(0|A)!=93|e[f+6804>>2]!=93)break A;r=r+1|0,A=32,hr=0}else if((240&(a=e[49573]))!=64)if(hr=0,16&a)a=0;else{r:{s:{n:{c:{if(!((0|(c=(0|A)==8242||(0|A)==8217||(0|A)==146||(0|A)==180?39:A))!=8216&(0|c)!=63))if(rr(e[f+6808>>2])){if(c=A,rr(e[f+6804>>2])){c=39;break c}}else c=A;o:{if((0|c)!=1367){if((0|c)==1328){T|=1024,c=32;break c}if((A=c-44032|0)>>>0>11183)break c;if(s=((a=((m=65535&A)>>>0)/28|0)>>>0)%21|0,A=A-P(a,28)&65535,c-50500>>>0>587)break o;a=A?A+4519|0:0,s=s+4449|0;break s}T|=131072,vr=e[f+6804>>2],A=e[f+6812>>2],c=32;break n}a=50500+(A+P(s,28)|0)|0,s=(m>>>0)/588|4352;break s}if(vr=e[f+6804>>2],A=e[f+6812>>2],!((a=c-12592|0)>>>0>51)){s=4352|l[a+103296|0],a=0;break s}}o=r+189424|0;n:if(!((0|(a=e[Z+212>>2]))!=28268&(0|a)!=24934|(0|c)!=39)&&!ns(A)&&(Gt(f+6820|0,o+1|0),ln(e[f+6820>>2]))){s=601,a=0;c:switch(vr-110|0){case 6:break s;case 0:break c;default:break n}if(e[Z+212>>2]!=24934)break s;u[0|o]=32;break s}if(e[f+6824>>2]=32,(0|(A=e[49897]))>0)e[49897]=A-1,a=0;else{if(!c){a=0,s=0;break r}n:{c:{o:{g:if((zA=e[Z+180>>2])&&(m=c,(Qe=hs(c))&&(m=vn(c,Z)),!Hi(zA)))for(;;){e[f+16>>2]=0,e[f+624>>2]=m,A=Gt(f+16|0,zA)+zA|0;l:if(e[f+624>>2]==e[f+16>>2]){if(l[0|A]){for(s=1,er=0,a=o;pr=Gt(f+16|0,A),Er=Gt(f+624|0,a),Wr=vn(e[f+624>>2],Z),e[f+624>>2]=Wr,a=a+Er|0,er=(Er=(0|Wr)==e[f+16>>2])+er|0,s&=Er,l[0|(A=A+pr|0)];);if(!s)break l;e[49897]=er}if(!(A=A+1|0))break g;if(8&l[188788]&&(e[f>>2]=zA,e[f+4>>2]=A,fr(e[47195],85187,f)),A=Gt(f+6828|0,A)+A|0,l[0|A])break o;a=0;break c}for(;a=A,A=A+1|0,l[0|a];);for(;l[0|(a=(A=a)+1|0)];);if(Hi(zA=A+2|0))break}a=0,s=c;break n}Gt(f+6824|0,A),Qe&&hs(vr)&&(e[f+6824>>2]=yi(e[f+6824>>2])),a=e[f+6824>>2]}s=e[f+6828>>2],T|=2097152,Qe&&(s=yi(s))}if((0|s)!=8)break s}s=r;break e}a?e[f+6804>>2]=a:a=0}rr(s)||ln(s)||Lr(e[Z+336>>2],s)||!rr(e[f+6808>>2])|!(!l[Z+170|0]|s-48>>>0>=10)&e[f+6804>>2]-48>>>0>=10||(s=32,cA=1);r:{s:{n:{c:{o:{if(e[f+6808>>2]-48>>>0<10){if(s-48>>>0<10){A=v;break o}if(1<<(A=s-32|0)&20481&&A>>>0<=14)break c;cA=1}else if(A=0,e[f+6812>>2]!=44||(A=v,(0|s)!=44))break o;s=32;break c}if((0|s)==91&&((0|(c=e[f+6804>>2]))==2||(s=91,(0|c)==91&&e[47204])))break n;v=A}if(rr(s)){c:{o:{g:{if(rr(e[f+6808>>2])){if(!l[Z+171|0]||(A=e[f+6808>>2],!((0|s)>12352)&&(0|A)<12353))break g}else A=e[f+6808>>2];if(Fr=Lr(e[Z+336>>2],A)?Fr:0,(0|(A=e[f+6808>>2]))!=32&&!Lr(e[Z+336>>2],A)){A=32,ee=cn(e[f+6808>>2])?ee:256|ee;break o}T=hs(s)?2|T:T,e[f+6808>>2]!=32|u[rA-2|0]-48>>>0>=10|e[f+6812>>2]-48>>>0<10||(u[(f+784|0)+n|0]=32,A=1588+(P(et,12)+f|0)|0,b[A>>1]=M[A>>1]+1,n=n+1|0)}if(A=32,(0|s)==32)break c;if(Fr=Fr+1|0,(0|(c=e[Z+600>>2]))<=0){A=s;break c}if(!((0|s)<=591&(0|(m=e[f+6808>>2]))>=(0|c))){if((0|s)<(0|c)){A=s;break c}if((0|Fr)<2){A=s;break c}if(!((0|m)<=591)){A=s;break c}}if(!rr(m)){A=s;break c}T|=16384,ee|=128}cA=1}if(es=es+1|0,hs(A)){if(c=vn(A,Z),e[Z- -64>>2]){A=is?c:712,a=is?a:c,is=1;break A}if(ms(e[f+6812>>2])){if(e[f+6808>>2]==32){A=c;break A}if(A=32,e[Z+212>>2]!=26465)break r;for(s=85240,m=(f+784|0)+n|0,ce=0;;){if(o=HA(s),l[0|(We=m-o|0)]==32&&!xa(We+1|0,s,o=o-1|0)){if((0|(s=u[s+o|0]))==(0|c)){A=c;break A}if((0|s)==65&&d0(Z,c)){A=c;break A}}if(s=e[131184+((ce=ce+1|0)<<2)>>2],(0|ce)==11)break}break r}if(A=32,(0|c)==32)break A;if(!hs(e[f+6812>>2])){A=c;break A}if(!ms(e[f+6804>>2])){A=c;break A}if(Gt(f+16|0,189424+(r+ce|0)|0),!(e[Z+212>>2]!=28268|(0|Fr)!=2|(0|c)!=106|e[f+6812>>2]!=73)){A=c;break A}if(e[f+6808>>2]==32){A=c;break A}if(!rr(e[f+16>>2])){A=c;break A}ee|=256,he=32,cA=1;break A}if(!MA){MA=0;break A}if((0|Fr)<3){MA=0;break A}if((0|A)!=115){MA=0;break A}if(e[Z+212>>2]!=25966){MA=0;break A}if(e[f+6804>>2]!=32){MA=0;break A}if(MA|=4,A=32,l[783+(s=n+f|0)|0]!=39)break A;u[s+783|0]=32;break A}A=32;c:{o:{g:{l:{switch(s-39|0){default:if((0|s)==95)break A;case 1:case 2:case 3:case 4:case 5:if(s-48>>>0>=10||l[Z+170|0]&&rr(e[f+6808>>2])&&!((c=e[f+6804>>2])-48>>>0<10|c-2406>>>0<10))break c;if((0|(m=e[f+6808>>2]))==32)break o;if(c=e[f+6808>>2],m-48>>>0<10)break g;if((0|(m=c))==(0|(c=e[Z+128>>2])))break l;cA=1;break A;case 6:if(!ln(e[f+6812>>2])&&rr(e[f+6804>>2])){if(e[f+6808>>2]!=32){cA=1;break A}if(T|=128,(0|et)<=0)break A;s=1572+(P(et,12)+f|0)|0,e[s>>2]=16384|e[s>>2];break A}if(s=e[f+6804>>2],!(e[f+6812>>2]!=32|(0|s)!=32)){Zt=4;break A}if((0|s)==45){r=r+1|0,Zt=4;break A}if(A=45,e[f+6808>>2]!=32||!rr(We)||rr(e[f+6812>>2]))break A;u[(f+784|0)+n|0]=32,s=1588+(P(et,12)+f|0)|0,b[s>>1]=M[s>>1]+1,n=n+1|0;break A;case 7:if(e[f+6808>>2]==46){cA=1;break A}if(A=46,(0|et)<=0||(s=1572+(P(et,12)+f|0)|0,1&u[s+1|0])||!rr(e[f+6812>>2]))break A;e[s>>2]=65536|e[s>>2],A=(A=ln(e[f+6804>>2]))||e[f+6804>>2]==45?32:46;break A;case 0:}i:{if((0|(c=e[f+6812>>2]))!=46||(s=115,e[f+6804>>2]!=115)){if(!jn(c))break i;s=e[f+6804>>2]}if(rr(s))break s}if(1&(s=e[Z+88>>2])){if(rr(e[f+6804>>2]))break s;s=e[Z+88>>2]}if(2&s&&rr(e[f+6812>>2]))break s;if(!(!Lr(e[Z+332>>2],e[f+6812>>2])|(0|We)!=32)){r=(e[f+6804>>2]==32)+r|0;break s}if(c=(0|(s=e[f+6808>>2]))!=115|os,os=0,!(1&c))break A;os=!!(0|ln(s)),Zt=4;break A}if((0|c)==44&v){cA=1;break A}v=1;break c}if((0|c)!=32)break c}rr(We)&&(rr(e[f+6812>>2])||(u[(f+784|0)+n|0]=32,A=1588+(P(et,12)+f|0)|0,b[A>>1]=M[A>>1]+1,n=n+1|0))}A=s;break A}hr=1,s=r+1|0,v=A;break e}A=39,os=0;break A}cA=1,he=32}else{if(A-48>>>0<10){a=0,s=(0|(c=e[49574]+1|0))>(15&e[49573]),e[49574]=s?0:c,A=s?32:A,cA|=s,hr=0;break A}a=0,e[49574]=0,A=(s=e[f+6808>>2]-48>>>0<10)?32:A,cA|=s,hr=0}if(ln(A)){if(e[f+6808>>2]==32){T|=262144,s=r;break e}if(s=e[f+6816>>2]-9>>>0<2,m=1&cA){ce=0;A:if(!((0|p)>(0|(A=r-1|0))))for(;;){if(!(c=b[(f+5184|0)+(A<<1)>>1]))break A;if(ce=((0|c)>0)+ce|0,!((0|p)<=(0|(A=A-1|0))))break}u[1594+(P(et,12)+f|0)|0]=ce}if(ee=s?262144|ee:ee,u[(f+784|0)+n|0]=32,A=n+1|0,!((0|et)>298||(s=(f+1584|0)+P(et,12)|0,(0|(c=M[s+4>>1]))>=(0|A)))){if((0|Xr)<=0?p=e[s>>2]:(p=198300+(e[47350]<<2)|0,e[p>>2]=128|e[p>>2],Xr=0,p=64|e[s>>2]),o=e[47352],u[s+6|0]=o,e[s>>2]=p|(es?MA:-2&MA)|(l[199304]?2048:0)|T,(0|o)>0){for(;T=(p=f+784|0)+A|0,p=p+(A=A-1|0)|0,u[0|T]=l[0|p],(0|A)>(0|c););u[0|p]=32,b[s+4>>1]=c+1,A=n+2|0}c=(f+1584|0)+P(et=et+1|0,12)|0,e[c>>2]=0,b[c+4>>1]=A,n=r;A:if(!((0|(s=e[f+6800>>2]))<=(0|r))){for(;;){if(b[(f+5184|0)+(n<<1)>>1]>0)break A;if((0|s)==(0|(n=n+1|0)))break}n=s}if(ce=M[(f+5184|0)+(n<<1)>>1],b[c+8>>1]=ce,es=0,s=0,ce)for(;s=!!(65535&~ce)+s|0,ce=M[(f+5184|0)+((n=n+1|0)<<1)>>1];);u[c+10|0]=s,e[47352]=0,MA=1,T=ee,ee=0,is=0}cA=0,a=m?0:a,s=m?I:r}else(0|n)>795?(s=r,r=p,A=n):(A=zr(A,(f+784|0)+n|0)+n|0,s=r,r=p);e[47352]<(0|Zt)&&(e[47352]=Zt),Zt=0,p=r,n=A}if(Ke||(I=s,!((0|n)<799)))break}(0|Xr)<=0|et||(A=198300+(e[47350]<<2)|0,e[A>>2]=128|e[A>>2],e[f+1584>>2]=64|e[f+1584>>2],et=1),A=(f+784|0)+n|0,e[Z+8204>>2]=A-1,r=0,u[0|A]=0,u[f+1590|0]=0,u[1590+(P(et,12)+f|0)|0]=8;e:if((0|et)<=0)e[f+1584>>2]=512|e[f+1584>>2],n=e[49572];else{A=et-1|0;A:if((0|et)!=1)for(a=A;;){if(!cn(u[M[1588+(P(a,12)+f|0)>>1]+(f+784|0)|0])){r=a;break A}if(c=(0|a)>1,a=a-1|0,!c)break}if(r=(f+1584|0)+P(r,12)|0,e[r>>2]=16|e[r>>2],4194304&at&&(A=(f+1584|0)+P(A,12)|0,256&(r=e[A>>2])||(e[A>>2]=65536|r)),e[f+1584>>2]=512|e[f+1584>>2],!((0|et)<=0|(0|(n=e[49572]))>990))for(c=3|(A=f+624|0),m=2|A,he=f+754|0,Ke=!(4194304&at),I=0,p=0;;){e[47354]=e[47354]+1;A:{if((0|(A=e[49827]))<=0||(A=A-1|0,e[49827]=A,A)){if(l[190280])break A}else u[190280]=0;A=M[1588+(P(I,12)+f|0)>>1]+(f+784|0)|0;r:if(!(u[0|A]-48>>>0>=10)&&(r=f+624|0,a=A,e[Z+112>>2]!=1227133512)){for(;;){s:{if(u[0|a]-48>>>0<10)u[0|r]=l[0|a],r=r+1|0,a=a+1|0;else{if(e[Z+124>>2]!=u[0|a]|l[a+1|0]!=32||(n=a+2|0,l[a+3|0]==32|u[0|n]-48>>>0>=10|l[a+4|0]==32))break s;I=I+1|0,a=n}if(r>>>0>>0)continue;break r}break}jA(A+(r=r-(v=f+624|0)|0)|0,32,(a=(n=a-A|0)-r|0)>>>0<=n>>>0?a:0),wt(A,v,r)}for(r=0;a=r,r=r+1|0,u[A+a|0]-48>>>0<10;);r:if(a-5>>>0<=27){for(u[f+626|0]=32,b[f+624>>1]=8224,l[0|A]!=48&e[Z+132>>2]>=(0|a)||(r=(f+1584|0)+P(I,12)|0,e[r>>2]=524288|e[r>>2]),ee=(f+1584|0)+P(I,12)|0,ce=0,n=c;r=A,!((A=u[0|A])-48>>>0>=10&(0|A)!=e[Z+128>>2])&&(u[0|n]=A,A=n+1|0,v=a,(0|(a=a-1|0))<=0?n=A:e[Z+112>>2]>>>a&1?(o=e[ee+4>>2],T=(f+16|0)+P(ce,12)|0,e[T>>2]=e[ee>>2],e[T+4>>2]=o,e[T+8>>2]=e[ee+8>>2],ce=ce+1|0,(0|(T=e[Z+124>>2]))!=32&&(u[n+1|0]=T,A=n+2|0),u[0|A]=32,n=A+1|0,8&l[ee+2|0]||((Zt=e[Z+112>>2])>>>v-2&1&&(u[A+1|0]=48,u[A+2|0]=48,Zt=e[Z+112>>2],n=A+3|0),Zt>>>v-3&1&&(u[0|n]=48,n=n+1|0))):n=A,A=r+1|0,n>>>0>>0););if(a=e[ee+4>>2],A=(f+16|0)+P(ce,12)|0,e[A>>2]=e[ee>>2],e[A+4>>2]=a,a=e[ee+20>>2],e[A+16>>2]=e[ee+16>>2],e[A+20>>2]=a,a=e[ee+12>>2],e[A+8>>2]=e[ee+8>>2],e[A+12>>2]=a,a=1,(0|ce)>0)for(;A=(f+16|0)+P(a,12)|0,e[A>>2]=-262209&e[A>>2],(0|ce)>=(0|(a=a+1|0)););if(A=l[r+4|0]|l[r+5|0]<<8|l[r+6|0]<<16|l[r+7|0]<<24,a=l[0|r]|l[r+1|0]<<8|l[r+2|0]<<16|l[r+3|0]<<24,u[0|n]=a,u[n+1|0]=a>>>8,u[n+2|0]=a>>>16,u[n+3|0]=a>>>24,u[n+4|0]=A,u[n+5|0]=A>>>8,u[n+6|0]=A>>>16,u[n+7|0]=A>>>24,A=l[r+12|0]|l[r+13|0]<<8|l[r+14|0]<<16|l[r+15|0]<<24,r=l[r+8|0]|l[r+9|0]<<8|l[r+10|0]<<16|l[r+11|0]<<24,u[n+8|0]=r,u[n+9|0]=r>>>8,u[n+10|0]=r>>>16,u[n+11|0]=r>>>24,u[n+12|0]=A,u[n+13|0]=A>>>8,u[n+14|0]=A>>>16,u[n+15|0]=A>>>24,u[n+16|0]=0,n>>>0<=c>>>0)break r;for(A=l[ee+6|0],ce=0,a=c;;){for(p=bt(Z,a,(f+16|0)+P(ce,12)|0,255&A);A=l[0|a],a=a+1|0,(0|A)!=32;);if(A=0,u[ee+6|0]=0,ce=ce+1|0,!(a>>>0>>0))break}}else{if(e[47352]=0,p=bt(Z,A,r=(f+1584|0)+P(I,12)|0,l[r+6|0]),(0|(a=e[47352]))>l[r+18|0]&&(u[r+18|0]=a,e[47352]=0),!(!(4096&p)|l[0|A]==32))for(;jA(f+624|0,0,150),e[f+624>>2]=538976288,e[f+628>>2]=538976288,u[f+632|0]=32,bt(Z,wt(m,A,a=Gt(f+16|0,A)),r,0),l[0|(A=A+a|0)]!=32;);50331648&p&&(O=(A=Ke|(~e[33264]+et|0)!=(0|I))?O:10,A|!ia||(e[ia>>2]=4,O=10))}if(128&p&&!((0|(r=e[33264]))<=0)){if(A=0,a=r,n=3&r)for(;v=(f+1584|0)+P(a+I|0,12)|0,e[v>>2]=1048576|e[v>>2],a=a-1|0,(0|n)!=(0|(A=A+1|0)););if(r>>>0>=4)for(;A=(f+1584|0)+P(a+I|0,12)|0,e[A>>2]=1048576|e[A>>2],e[(r=A-12|0)>>2]=1048576|e[r>>2],e[(r=A-24|0)>>2]=1048576|e[r>>2],e[(A=A-36|0)>>2]=1048576|e[A>>2],a=a-4|0;);e[33264]=a}}if(n=e[49572],(0|et)<=(0|(I=I+1|0)))break e;if(!((0|n)<991))break}}if((0|(a=e[47351]))<(0|(c=e[47350]))){for(he=e[47202],Ke=e[49846],ce=e[47352];;){A=(r=e[198304+(a<<2)>>2])>>8;e:{A:switch((31&r)-9|0){case 0:he=A;break e;case 4:Ke=A;break e;case 3:break A;default:break e}ce=r>>>0>=256?A+ce|0:0}if(!(!(128&r)&(0|c)>(0|(a=a+1|0))))break}e[47352]=ce,e[47351]=a,e[49846]=Ke,e[47202]=he}e[49572]=n+2,e[(A=190288+(n<<3)|0)>>2]=589824,b[A+4>>1]=s,e[A+8>>2]=589824,b[A+12>>1]=s,r=et&&e[47199]?O:10,e[33285]?A=0:(A=e[33283],A=e[A>>2]==e[A+4>>2]),O=A?r:O,I=dt,c=0,et=0,J=m=J-32192|0,e[m+24>>2]=0,e[m+28>>2]=0,e[m+16>>2]=0,e[m+20>>2]=0,e[m+8>>2]=0,e[m+12>>2]=0,e[m>>2]=0,e[m+4>>2]=0,s=e[49572],o=M[190284+(s<<3)>>1];e:{if((0|(a=s-3|0))<0)A=a;else{for(;;){if(c=(0|(r=127&l[3+(A=190288+(a<<3)|0)|0]))<(0|c)?c:r,M[A+4>>1])A=a;else if(A=-1,r=(0|a)>0,a=a-1|0,r)continue;break}if(c>>>0>3)break e}for(;;){if((0|(A=A-1|0))<0)break e;if(64&l[0|(r=190288+(A<<3)|0)]){u[r+3|0]=4;break e}if(!(l[r+3|0]<4))break}}if(A=e[Z+292>>2],a=0,(0|s)<=0)c=0;else for(v=-1,c=0;;){r=A,e[Z+292>>2]!=(0|A)&&(b[(A=190288+(a<<3)|0)>>1]=32|M[A>>1]),(0|c)>0&&(ee=e[4+(p=190288+(a<<3)|0)>>2],e[(n=190288+(A=a-c<<3)|0)>>2]=e[p>>2],e[n+4>>2]=ee,(0|v)!=-1&&(b[4+(A+190288|0)>>1]=v),v=-1);e:{if(l[2+(190288+(n=a<<3)|0)|0]==21){if(A=l[7+(p=n+190288|0)|0],2&l[0|p])break e;A:if((0|A)!=(0|r)){if(p=l[10+(n+190288|0)|0]-9|0){if((0|p)==12)break A;break e}if(l[18+(n+190288|0)|0]!=21)break e}(0|v)==-1&&(v=(A=M[4+(n+190288|0)>>1])||-1),c=c+1|0}A=r}if((0|s)==(0|(a=a+1|0)))break}if(e[49572]=s-c,ha(A),(r=e[Z+36>>2])&&!((0|(A=(c=e[49572])-1|0))<0))for(he=256&r,T=4&r,Ke=8&r,ee=15&r,cA=16&r,dt=2&r,r=r>>>8&1,a=0;;){if(n=c,s=a,c=A,(0|(A=l[2+(p=190288+(MA=A<<3)|0)|0]))==21){e:{A:{if((0|(a=n-2|0))>=0)for(;;){if(l[2+(190288+(A=a<<3)|0)|0]==21)break A;if(A=(0|a)>0,a=a-1|0,!A)break}A=e[Z+292>>2];break e}A=l[7+(A+190288|0)|0]}ha(A),A=l[p+2|0]}if(a=s,(A=e[144464+((255&A)<<2)>>2])&&(a=r,!(32&l[0|p]))){a=l[A+11|0],v=0,dt&&((0|(n=l[0|A]))!=118&(0|n)!=82||(s=cA?0:s,v=1));e:{A:{r:{s:switch((n=253&a)-4|0){case 1:break r;case 0:break s;default:break A}if(ee&&(a=1,!s)||(0|(a=s))!=2||(a=2,!(A=l[A+13|0])))break e;u[p+2|0]=A;break e}if(ee&&(a=2,!s)||(0|(a=s))!=1||(a=1,!(A=l[A+13|0])))break e;u[p+2|0]=A;break e}a=0,Ke&&(a=n?s:0)}a=A=v?0:a,M[4+(MA+190288|0)>>1]&&(a=A=T?0:A,he&&(a=A||1))}if(!((0|(A=c-1|0))>=0))break}if(ha(e[Z+292>>2]),e[49572]<=0)cA=-2,a=0;else{for(a=-1,s=0,p=0,Ke=0;;){A=p<<3,(0|a)!=-1&&(b[4+(A+190288|0)>>1]=a),l[2+(v=A+190288|0)|0]==21&&ha(l[7+(A+190288|0)|0]),ee=e[49572];e:{if(!(32&l[0|(n=A+190288|0)])){s=(0|(r=ee-1|0))>(0|p)?e[144464+(l[10+(A+190288|0)|0]<<2)>>2]:s,!(M[n+12>>1]|(0|r)==(0|p))&&(ce=0,l[s+11|0]|!s)||(ce=1),c=l[v+2|0];A:if(!((0|(cA=e[49848]))<=0))for(r=A+190288|0,a=0;;){if(he=P(a,3),l[he+199408|0]==(255&c)&&!((T=l[2+(he+199408|0)|0])&(1^ce)|(4&l[r+3|0]?2&T:0)|(M[r+4>>1]?0:4&T))){if(c=l[1+(he+199408|0)|0],u[v+2|0]=c,!(2&l[e[144464+(c<<2)>>2]+4|0])|l[r+3|0]<2)break A;u[r+3|0]=0;break A}if((0|cA)==(0|(a=a+1|0)))break}if(!(255&c)){a=M[4+(A+190288|0)>>1];break e}}a=e[n+4>>2],A=(m+32|0)+(Ke<<5)|0,r=e[n>>2],e[A>>2]=r,e[A+4>>2]=a,r=e[144464+(r>>>14&1020)>>2],e[A+8>>2]=r,u[A+17|0]=l[r+11|0],Ke=Ke+1|0,a=-1}if(!((0|Ke)<1e3&(0|ee)>(0|(p=p+1|0))))break}if(c=0,a=0,!((0|(cA=Ke-2|0))<=0))for(;;){e:if(M[4+((m+32|0)+(c<<5)|0)>>1]){for(r=(0|c)>(0|cA)?c:cA,a=0,A=c;;){if((0|A)!=(0|r)){if(a=(0|a)>(0|(n=l[3+((s=m+32|0)+(A<<5)|0)|0]))?a:n,!M[4+(s+((A=A+1|0)<<5)|0)>>1])continue}else A=r;break}if((0|A)<=(0|c))break e;if(r=~c+A|0,s=0,n=A-c&7)for(;u[6+((m+32|0)+(c<<5)|0)|0]=a,c=c+1|0,(0|n)!=(0|(s=s+1|0)););if(r>>>0<7)break e;for(;u[6+(r=(m+32|0)+(c<<5)|0)|0]=a,u[r+38|0]=a,u[r+70|0]=a,u[r+102|0]=a,u[r+134|0]=a,u[r+166|0]=a,u[r+198|0]=a,u[r+230|0]=a,(0|(c=c+8|0))!=(0|A););}else A=c+1|0;if(c=A,!((0|cA)>(0|A)))break}}for(e[m+40>>2]=e[36125],ha(e[Z+292>>2]),We=(0|a)<4,p=1,he=1,ee=0,r=0,a=0,dt=0;;){e:{A:{r:{s:{if(r){if(s=(A=m+32|0)+((v=a-1|0)<<5)|0,ee=l[2+(A+(a<<5)|0)|0],(0|v)>0){if(A=p-(a=(0|p)>0)|0,v>>>0>=(c=a?p:2)>>>0)for(;n=(a=(m+32|0)+(c<<5)|0)-32|0,p=e[a+12>>2],e[n+8>>2]=e[a+8>>2],e[n+12>>2]=p,p=e[a+4>>2],e[n>>2]=e[a>>2],e[n+4>>2]=p,p=e[a+28>>2],e[n+24>>2]=e[a+24>>2],e[n+28>>2]=p,p=e[a+20>>2],e[n+16>>2]=e[a+16>>2],e[n+20>>2]=p,(0|v)>=(0|(c=c+1|0)););p=A}ce=e[144464+(ee<<2)>>2],e[s>>2]=0,e[s+4>>2]=0,e[s+24>>2]=0,e[s+28>>2]=0,e[s+16>>2]=0,e[s+20>>2]=0,e[s+8>>2]=0,e[s+12>>2]=0,u[s+2|0]=r,A=e[144464+(r<<2)>>2],e[s+8>>2]=A,ee=s}else{if((0|a)>=(0|cA)|(0|dt)>=997)break s;n=l[2+(s=(c=a<<5)+(m+32|0)|0)|0],A=e[144464+(n<<2)>>2],e[s+8>>2]=A,v=M[s+4>>1],(0|n)==21&&ha(l[7+(c+(m+32|0)|0)|0]),p=v?a:p,ce=e[144464+(l[s+34|0]<<2)>>2],e[s+40>>2]=ce,v=a}if(!A){r=0,a=v+1|0;continue}if(tr(Z,256,s,m+32040|0,m),(0|(a=e[m+32052>>2]))>0&&(c=(m+32|0)+(v<<5)|0,ce=e[144464+(a<<2)>>2],e[c+40>>2]=ce,u[c+34|0]=a,u[c+49|0]=l[ce+11|0]),a=0,r)r=A;else if((0|(c=e[m+32056>>2]))<=0)r=A;else{r=e[144464+(c<<2)>>2],e[s+8>>2]=r,a=l[s+2|0],u[s+2|0]=c,c=M[s>>1];n:if(l[r+11|0]!=2)b[s>>1]=65531&c;else{if(b[s>>1]=4|c,l[A+11|0]==2)break n;u[s+3|0]=0}tr(Z,256,s,m+32040|0,m)}if((0|(n=e[m+32048>>2]))<=0)c=r;else{if(c=e[144464+(n<<2)>>2],u[s+2|0]=n,e[s+8>>2]=c,A=l[c+11|0],Ke=1,(0|n)==1){MA=(0|A)==2;break A}n=M[s>>1];n:if((0|A)!=2)b[s>>1]=65531&n;else{if(b[s>>1]=4|n,l[r+11|0]==2)break n;u[s+3|0]=0}tr(Z,256,s,m+32040|0,m)}if(MA=0,(0|(A=l[c+11|0]))!=2){Ke=0;break A}if(MA=1,Ke=0,A=2,l[s+3|0]>1){et=0;break A}n=s+3|0,et=et+1|0,r=s;n:{if(8&(T=e[Z+12>>2])){for(;;){c:switch(T=r,r=r+32|0,l[T+49|0]){case 0:break A;case 2:break c;default:continue}break}if(l[0|(r=T+35|0)]>1)break A;if(l[s+6|0]<=3&&(u[0|n]=0),l[T+38|0]<4)break n;break A}if(1&et|(0|et)<2)break A;if(2&T)break r;if(We)r=n;else if(r=n,M[s+36>>1])break r}u[0|r]=0;break A}e[36423]=dt+2,b[(A=145840+(dt<<5)|0)>>1]=0,u[A+2|0]=9,u[A+20|0]=2,e[A+12>>2]=O,b[A+4>>1]=o,u[A+17|0]=0,u[A+18|0]=0,e[A+8>>2]=e[36125],b[A+32>>1]=0,u[A+34|0]=9,u[A+52|0]=0,e[A+44>>2]=0,b[A+36>>1]=0,u[A+49|0]=0,u[A+50|0]=0,e[A+40>>2]=e[36126],ha(e[Z+292>>2]),J=m+32192|0;break e}et=1}if(!(8&(r=M[s+32>>1]))|(0|v)<=0||(n=l[ce+11|0])>>>0>15|!(1<>1]=8^r),Qe=M[s+36>>1]){A:if(r=e[Z+4>>2]){switch(0|A){default:a=512&r?11:a;break;case 0:break A;case 2:}if(l[ce+11|0]==2){(n=12&r)&&(a=(0|n)!=12?23:11);r:if(MA){switch(3&r){case 2:a=10;break r;case 0:break r}a=23}l[s+35|0]<4||(a=256&r?10:a)}}if(!((0|s)==(0|ee)|(0|dt)<=0)){A:{r:{s:switch(0|(r=7&e[Z>>2])){case 0:break A;case 1:break s;default:break r}if(a-12>>>0>4294967293)break A}a=l[r+101916|0]}a=e[47205]>0?24:a}}if(e[s+72>>2]=e[144464+(l[s+66|0]<<2)>>2],r=e[m+32060>>2],r=a||r||a,!Ke){u[17+(n=145840+(T=dt<<5)|0)|0]=A,e[n+8>>2]=c,u[n+16|0]=0,b[n>>1]=M[s>>1],u[n+3|0]=15&l[s+3|0],u[n+6|0]=l[s+6|0],a=l[s+7|0],b[n+4>>1]=0,u[n+7|0]=a,Ke=l[c+10|0],u[n+2|0]=Ke;A:if(a=M[s+4>>1]){if(b[n+4>>1]=a,I=1&I?5:1,u[20+(s=T+145840|0)|0]=I,a=he,he=0,!a){I=0;break A}u[s+20|0]=8|I,I=0}else u[20+(T+145840|0)|0]=0;e[12+(a=T+145840|0)>>2]=e[m+32084>>2]<<1,!Qe|(0|Ke)!=24||(0|(s=e[47205]))<=0||(e[n+8>>2]=e[36126],e[a+12>>2]=P(s,14)),(1<>>0<=8:0)|2&l[c+7|0]&&(e[a+12>>2]=128,u[n+16|0]=0),u[21+(A=T+145840|0)|0]=255,u[A+22|0]=255,b[A+18>>1]=5120,dt=dt+1|0}a=v+1|0;continue}break}b[88922]=1,e[44462]=0,Xr&&(b[145776+(e[36423]<<5)>>1]=2,A=198304+(e[47350]<<2)|0,e[A>>2]=128,e[(A=A-4|0)>>2]=128|e[A>>2]),u[190268]=at>>>19&1,Ts&&(e[Ts>>2]=at<<14>>31&189360)}J=f+6832|0,cA=e[47192],MA=e[t+12>>2],r=0,n=0,p=0,T=0,ee=0,Zt=0,O=0,J=o=J-6e3|0;e:if(!((0|(s=(dt=e[36423])-1|0))<=0)){for(;u[2+(o+P(r,6)|0)|0]=0,4&l[145840+(A=r<<5)|0]?(a=o+P(T,6)|0,u[a+1|0]=0,A=A+145840|0,u[a+3|0]=l[A+49|0],A=l[A+3|0],u[0|a]=A,T=T+1|0,Zt=(A>>>0>3)+Zt|0):l[e[8+(A+145840|0)>>2]+10|0]!=27|(0|T)<=0||(A=(o+P(T,6)|0)-4|0,u[0|A]=4|l[0|A]),(0|s)!=(0|(r=r+1|0)););if(u[o+P(T,6)|0]=0,T)if(e[cA+148>>2]==1){if(!((0|dt)<=0)){for(A=-2&dt,a=1&dt,r=145840;p=l[r+17|0]==2&&l[r+3|0]>3?n:p,p=l[r+49|0]==2&&l[r+35|0]>3?1|n:p,r=r- -64|0,n=n+2|0,(0|A)!=(0|(ee=ee+2|0)););!a|l[r+17|0]!=2||(p=l[r+3|0]>3?n:p)}if(u[3+(c=145840+(A=p<<5)|0)|0]=7,e[cA+212>>2]==30313&&(l[7+(A=A+145840|0)|0]||(u[A+7|0]=ra(55),dt=e[36423])),!((0|dt)<=0)){for(ee=0,r=145840,A=145840,n=v=e[36125],s=0,he=1;;){if(l[r+17|0]?I=e[36125]:(I=e[36125],v=(a=l[e[r+8>>2]+14|0]>50)?I:v,he|=a),a=l[r+20|0]?I:n,4&l[0|r]){I=l[r+7|0],n=e[144464+(I<<2)>>2];A:{if((0|(T=e[cA+212>>2]))==6840683){if(e[a>>2]!=49||(T=e[n>>2]-49|0)>>>0>5|!(1<>2]}if(!((0|T)!=6516078&(0|T)!=31336)){T=0,I||(s=ra(1&(T=s|he)?13621:12593),u[r+7|0]=s,n=e[144464+(s<<2)>>2]),(0|p)!=(0|ee)|(1024|e[n>>2])!=13621||(u[c+3|0]=6),e[v>>2]==3420466&&(u[A+7|0]=ra(e[n>>2]==3420466?13619:12594));r:{if(e[a>>2]==12597){if((0|(I=e[n>>2]))!=12597)break r;u[A+7|0]=ra(13109)}I=e[n>>2]}s=T,(0|I)==12593&&((0|(I=e[v>>2]))==13621&&(u[r+7|0]=ra(12850),I=e[v>>2]),(0|I)==13619&&(u[r+7|0]=ra(13107),I=e[v>>2]),(0|I)==3420466&&(u[r+7|0]=ra(13364)),u[r+3|0]=0)}}he=0,v=n,A=r}else n=a;if(r=r+32|0,!((0|(ee=ee+1|0))<(0|(a=e[36423]))))break}if(n=0,r=145840,!((0|a)<=0))for(;4&l[0|r]&&((A=l[r+7|0])||(u[r+7|0]=17,A=17),A=e[144464+(A<<2)>>2],u[r+21|0]=l[A+12|0],u[r+22|0]=l[A+13|0]),r=r+32|0,(0|a)!=(0|(n=n+1|0)););}}else{if(A=e[cA+152>>2],A=cA+P(We=(0|A)>7?1:A,6)|0,Z=l[0|(We?A+637:cA+157)],at=l[0|(We?636+(A+MA|0):156+(cA+MA|0))],u[133068]=(0|MA)==4,!((0|T)<=0)){for(Ke=T-1|0,ce=MA-1>>>0>1,a=0,s=0;;){f=o+P(s,6)|0,O=((A=l[0|f])<<24>>24>3)+O|0;A:if((0|A)==6){A=s-3|0,r=s;r:{for(;;){if((0|r)<=(0|a)|(0|A)>=(0|r))break r;s:switch(c=o+P(r=r-1|0,6)|0,l[0|c]-4|0){case 2:break r;case 0:break s;default:continue}break}u[0|c]=3}r=s;r:{for(;;){if((0|T)<=(0|(r=r+1|0)))break r;s:switch(l[o+P(r,6)|0]-4|0){case 0:break r;case 2:break s;default:continue}break}u[f+2|0]=2,u[0|f]=5,A=a;break A}if(l[0|f]==6){u[f+2|0]=2,m=0;r:if((0|T)<=(0|(A=s+1|0)))c=s,hr=0;else if(hr=1,(0|(n=u[o+P(A,6)|0]))>4)c=s;else{for(p=(Zt-O|0)>1,c=s;;){if(r=A,(255&n)==4&&(A=p+1|0,p=1,!((0|A)<=1))){A=r;break r}if(hr=(0|T)>(0|(A=r+1|0)),(0|A)==(0|T))break;if(c=r,(0|(n=u[o+P(A,6)|0]))>4)break r}c=Ke,A=T}n=-1,I=0,p=0,he=-1,ee=0,v=-1;r:{if((0|(r=a))<(0|A)){for(;n=(Qe=(0|(v=u[o+P(r,6)|0]))>3)&&(0|n)<0?r-a|0:n,m=(ee=(0|p)>(0|v))?m:(0|p)<(0|v)?r:I,he=Qe?r:he,I=ee?I:r,Qe=(0|r)!=(0|c),p=ee?p:v,r=r+1|0,Qe;);if(ee=I,v=he,(0|n)>=0)break r}n=A,I=ee,he=v}e[33269]=c-I,e[33268]=n,e[33270]=I,e[33271]=m;r:if(l[133068])e[33270]=A,e[33271]=A;else if((0|he)>=0){if((0|A)!=(0|T))break r;u[o+P(he,6)|0]=7}else u[o+P(I,6)|0]=7;Ka(o,We,a,A,at),!hr&!!(0|MA)||(at=ce?l[cA+156|0]:l[cA+157|0])}else A=a}else A=a;if((0|A)>=(0|s))a=A;else if(4&l[f+2|0]){for(a=s+1|0,n=-1,he=0,I=0,p=0,r=A,m=-1;n=(ee=(0|(c=u[o+P(r,6)|0]))>3)&&(0|n)<0?r-A|0:n,he=(v=(0|c)<(0|p))?he:(0|c)>(0|p)?r:I,m=ee?r:m,I=v?I:r,ee=(0|r)!=(0|s),p=v?p:c,r=r+1|0,ee;);e[33269]=s-I,e[33270]=I,e[33271]=he,e[33268]=(0|n)<0?a:n,l[133068]?(e[33270]=a,e[33271]=a):(0|m)>=0?u[o+P(m,6)|0]=7:u[o+P(I,6)|0]=7,Ka(o,We,A,a,Z)}else a=A;if((0|T)==(0|(s=s+1|0)))break}if(!((0|a)>=(0|T))){for(n=-1,he=0,I=0,p=0,r=a,m=-1;n=(c=(0|(A=u[o+P(r,6)|0]))>3)&&(0|n)<0?r-a|0:n,he=(s=(0|A)<(0|p))?he:(0|A)>(0|p)?r:I,m=c?r:m,I=s?I:r,p=s?p:A,(0|T)!=(0|(r=r+1|0)););e[33270]=I,e[33271]=he,e[33269]=~I+T,e[33268]=(0|n)<0?T:n,l[133068]?(e[33270]=T,e[33271]=T):(0|m)>=0?u[o+P(m,6)|0]=7:u[o+P(I,6)|0]=7,Ka(o,We,a,T,at)}}if((0|dt)<=0)break e;for(r=0,ee=0;;){if(v=a=145840+(c=r<<5)|0,A=o+P(ee,6)|0,n=l[0|A],u[a+3|0]=n,4&l[0|a]){s=c+145840|0,a=l[A+4|0],u[s+21|0]=a,p=l[A+5|0],u[s+16|0]=0,u[s+22|0]=p;A:{if(1&(I=l[A+2|0]))A=2;else{if(n>>>0<6)break A;A=l[A+1|0]}u[s+16|0]=A}a>>>0<=(255&p)>>>0?(A=p,p=a):(u[s+21|0]=p,u[s+22|0]=a,A=a),(a=l[7+(c+145840|0)|0])&&(A=(255&A)+(255&p)>>>1|0,a=e[144464+(a<<2)>>2],u[s+22|0]=A+l[a+13|0],u[s+21|0]=A+l[a+12|0]),2&I&&(u[v+3|0]=8|n),ee=ee+1|0}if((0|dt)==(0|(r=r+1|0)))break}}}if(J=o+6e3|0,ee=e[47192],r=0,ce=0,m=0,O=0,J=o=J-160|0,e[36423]>=2)for(MA=e[30450],n=1;;){if(n=(A=n)+1|0,T=l[3+(s=145840+(p=A<<5)|0)|0],2&(I=M[s>>1])){for(;(31&(c=e[198304+(O<<2)>>2]))==2&&(Ss(127&c,c>>>8|0),e[36432]=110,e[36433]=100,e[36434]=450,e[36430]=5,I=e[50786],v=e[32972],(0|(a=e[v+84>>2]))>0&&(I=(0|P(a,I))/100|0),he=l[((0|(a=(0|I)>=359?359:I))<=80?80:a)+101856|0],a=(0|(a=(0|I)>=450?450:I))>399?6:(0|a)>379?7:he,e[32526]=(0|P(a,e[v+72>>2]))/256,e[32527]=(0|P(a,e[v+76>>2]))/256,e[32528]=(0|P(a,e[v+80>>2]))/256,a>>>0>7||(v=a-1|0,e[32528]=v,e[32526]=a,e[32527]=v)),O=O+1|0,!(128&c););I=M[s>>1]}v=n<<5,he=A-1|0,a=7&T;e:{A:{r:{s:{n:{c:{o:{g:{l:{i:switch(at=l[17+(p+145840|0)|0],0|(c=4&I?2:at)){case 2:break n;case 3:case 8:break c;case 5:break o;case 6:case 7:break g;case 4:break l;case 0:break i;default:break e}r=0;break e}if((0|(A=l[17+(145840+(he<<5)|0)|0]))!=6?(a=(0|A)==4?60:e[34063]>0||a>>>0<4?48:60,u[18+(p+145840|0)|0]=a):(a=25,u[18+(p+145840|0)|0]=25),!(16&l[0|ee])|!l[20+(p+145840|0)|0]||(u[18+(p+145840|0)|0]=60,a=60),64&l[e[8+(p+145840|0)>>2]+6|0]&&(a=a+30|0,u[18+(p+145840|0)|0]=a),r=0,!(8&I))break e;u[18+(p+145840|0)|0]=l[ee+164|0]+a;break e}!(s=l[20+(A=p+145840|0)|0])|1&u[e[A+8>>2]+7|0]&l[17+(145840+(he<<5)|0)|0]==2||(u[18+(p+145840|0)|0]=15),a=l[17+(v+145840|0)|0],8&l[e[8+(p+145840|0)>>2]+4|0]|a|l[17+(145840+(he<<5)|0)|0]!=8||(u[18+(p+145840|0)|0]=25),64&l[e[8+(145840+(A=he<<5)|0)>>2]+5|0]&&(u[18+(p+145840|0)|0]=30),!s|!(16&e[ee>>2])||(u[18+(p+145840|0)|0]=30);g:if(l[20+(v+145840|0)|0]|!(32&l[e[8+(p+145840|0)>>2]+4|0])|(0|a)!=4)e[12+(p+145840|0)>>2]=256;else{if(s=p+145840|0,l[17+(A+145840|0)|0]==2){e[s+12>>2]=200;break g}e[s+12>>2]=150}if((0|c)!=7||(ce|=(0|a)==2,(254&l[17+(A+145840|0)|0])!=2))break e;e[12+(p+145840|0)>>2]=e[12+(A+145840|0)>>2]+255>>>1;break e}(254&(a=l[17+(145840+(A=he<<5)|0)|0]))==6|(0|a)==3|32&e[e[8+(A+145840|0)>>2]+4>>2]&&(u[18+(p+145840|0)|0]=30);o:if((254&(s=l[17+(v+145840|0)|0]))==2){ce=l[20+(v+145840|0)|0]&&(0|s)!=2?ce:1,u[18+(s=p+145840|0)|0]=40,T=0;g:{switch(0|a){case 0:if((A=e[12+(A+145840|0)>>2])>>>0>39)break g;T=40-A|0;break g;case 2:break g}if(l[20+(p+145840|0)|0])break o;T=20;l:switch(a-3|0){case 1:if(T=0,!(8&l[e[8+(A+145840|0)>>2]+4|0]))break g;break o;case 0:break g;case 5:break l;default:break o}T=12}u[s+18|0]=T}if(!(16&l[0|ee])|!l[20+(p+145840|0)|0]||l[18+(A=p+145840|0)|0]>19)break e;u[A+18|0]=20;break e}s=l[ee+296|0],c=a=p+145840|0,e[a+12>>2]=256,u[a+19|0]=s;c:if(l[a+20|0]){I=25;o:switch(l[17+(145840+(he<<5)|0)|0]-2|0){case 0:if(I=12,1&u[e[8+(p+145840|0)>>2]+7|0])break c;break;case 1:break o;default:break c}u[18+(p+145840|0)|0]=I}if((0|(v=l[17+(v+145840|0)|0]))==2){m=1;break e}if(u[22+(s=p+145840|0)|0]=r,(254&l[17+(145840+(a=he<<5)|0)|0])==2)break s;if(a=r,(0|(c=e[36423]))<=(0|A))break A;for(;;){if(l[17+(145840+(a=A<<5)|0)|0]==2){a=l[22+(a+145840|0)|0],u[s+22|0]=a;break A}if((0|c)==(0|(A=A+1|0)))break}break r}if(cA=p+145840|0,Ke=a^a>>>0<2,a=(dt=8&T)?25:l[296+(Ke+ee|0)|0]-m|0,u[cA+19|0]=a,(e[36423]-3|0)>(0|A)||(0|(c=255&a))<=(0|(a=e[ee+52>>2]))||(u[cA+19|0]=a),a=0,T=0,!(I=l[s+52|0]))for(;c=e[s+40>>2],T=l[s+49|0]==2?(~e[c+4>>2]>>>20&1)+T|0:T,a=l[c+10|0]==27?2:a,c=s,s=s+32|0,!(I=l[c+84|0]););c=cA+96|0,A=145840+(We=A+2<<5)|0,e[34063]=T,f=l[e[s+40>>2]+10|0],v=v+145840|0,l[17+(We+145840|0)|0]|l[e[v+8>>2]+10|0]!=23?(s=c,c=A,A=v):s=p+145968|0,v=l[e[c+8>>2]+15|0];n:if(T)v=l[e[ee+96>>2]+(l[e[A+8>>2]+15|0]+P(v,10)|0)|0],l[A+17|0]!=8|(254&l[c+17|0])!=4||(v=8&l[e[s+8>>2]+4|0]?v-15|0:v);else{if(Z=e[ee+100>>2],We=l[e[A+8>>2]+15|0],s=l[A+20|0],v=l[Z+(We+P(s|l[c+20|0]?(0|v)==1:v,10)|0)|0],!s|!(32&l[0|ee]))break n;v=l[1+(Z+P(We,10)|0)|0]+v>>>1|0}s=I>>>1|0,We=!T,I=(0|(v=(0|P(e[130104+(T?(0|T)==1?4:8:0)>>2],v))/128|0))<=8?8:v;n:if((0|Ke)!=7)dt&&(I=e[ee+200>>2]+I|0);else{if(I=(v=e[ee+200>>2])+I|0,!dt)break n;I=((0|v)/2|0)+I|0}v=s&We|(0|f)==27,(s=M[304+(ee+(Ke<<1)|0)>>1])||(s=M[ee+316>>1]),I=P(s<<16>>16,I),(T=l[7+(s=p+145840|0)|0])&&(Ke=l[e[144464+(T<<2)>>2]+14|0])&&(I=(0|P(I,Ke))/100|0),(v|(0|a)==2)==1&&(2097152&(a=e[ee+12>>2])||(I=(0|P(262144&a?282:256+((280-(l[e[8+(p+145840|0)>>2]+14|0]<<1)|0)/3|0)&65535,I))/256|0)),Ke=p+145840|0,a=P(e[32526],e[ee+196>>2]),dt=(0|at)!=2?256:(0|((0|a)>(0|I)?I:a))/128|0,e[Ke+12>>2]=dt,(a=l[Ke+16|0])>>>0>=19&&(Li(84371,28,MA),u[Ke+16|0]=0,T=l[s+7|0],a=0),I=a+1|0,(a=255&T)?(Rn(a,o+8|0),a=Oi(e[o+132>>2])):a=e[129280+((255&I)<<2)>>2],v=p+145840|0,1&(m|ce)&&(s=145840+(p=he<<5)|0,m=l[0|a],a=l[v+21|0],a=((0|P(m,l[v+22|0]-a|0))/256|0)+a|0,u[s+22|0]=a,r=(a-(r=(0|a)==255?255:r)|0)>16?a-16|0:r,u[s+21|0]=r,s=0,(0|r)<(0|a)&&(u[Ke+16|0]=I,s=2),e[12+(r=p+145840|0)>>2]=dt,u[r+16|0]=s,a=l[cA+19|0],u[r+19|0]=l[r+17|0]!=3&&a>>>0>18?18:a),r=(0|at)!=2,s=-2&(a=M[A>>1]),b[A>>1]=s;n:{c:{o:switch(l[A+17|0]-3|0){case 5:if(l[c+17|0]==2)break n;s=1|a;break c;case 0:break o;default:break n}if(b[A>>1]=1|a,l[c+17|0]!=2&&e[e[A+8>>2]>>2]!=12146)break n}b[A>>1]=s}r?(0|(A=r<<4))<=((a=l[v+22|0])-(s=l[v+21|0])|0)||(s=(0|(A=a-A|0))>0?A:0,u[v+21|0]=s):(a=l[v+22|0],s=l[v+21|0]),A=255&s,r=((0|P(l[e[129280+(l[Ke+16|0]<<2)>>2]+127|0],a-A|0))/256|0)+A|0,m=0,ce=0;break e}s=e[12+(a+145840|0)>>2],e[c+12>>2]=s,(0|at)==3&&(s=e[32526],e[c+12>>2]=s),a=r;s:switch(v-5|0){case 0:e[c+12>>2]=(P(s,160)>>>0)/100;break r;case 2:break s;default:break A}e[c+12>>2]=(P(s,120)>>>0)/100}a=r}ce=0,u[16+(A=p+145840|0)|0]=0,s=A,a=(A=255&a)-16|0,u[s+21|0]=A>>>0>=a>>>0?a:0}if(!(e[36423]>(0|n)))break}if(J=o+160|0,15&(s=e[47197])|e[36456]){A=0,c=0,J=a=J-80|0;e:if((r=e[33222])||(e[33223]=500,r=Ct(500),e[33222]=r,r)){if(!((e[36423]-2|0)<2)){for(A=s>>8,ee=128&s?0:A,T=A&s<<24>>31,v=2&s,s=a+32|1,p=1;;){if(rs(a,e[8+(n=145840+(he=p<<5)|0)>>2],n,v,a+72|0),A=a+32|0,(13&(r=l[n+20|0]))==1&&(u[a+32|0]=32,A=s),!ee|(0|ee)!=32&!!(0|r)|p>>>0<2||(Gt(a+76|0,a),e[a+76>>2]-880>>>0>4294967103||(A=zr(ee,A)+A|0)),4&l[0|n]&&((r=l[3+(he+145840|0)|0])>>>0<2||(r=r>>>0>=5?5:r,r=v?r>>>0>3?712:716:u[r+94144|0],e[a+76>>2]=r,A=zr(r,A)+A|0)),I=0,e[a+72>>2]=0,l[0|(r=a)])for(;r=Gt(a+76|0,r)+r|0,e[a+72>>2]>>>I-1&1|!T|(0|I)<=0||(m=e[a+76>>2])-880>>>0>4294967103||En(m)&&(A=zr(T,A)+A|0),I=I+1|0,A=zr(e[a+76>>2],A)+A|0,l[0|r];);if(l[e[n+8>>2]+10|0]!=21&&(8&(r=M[n>>1])&&(A=rs(A,e[36128],n,v,0),r=M[n>>1]),!(4&r)|l[17+(he+145840|0)|0]==2||(A=rs(A,e[36136],n,v,0)),(r=l[7+(he+145840|0)|0])&&(A=rs(A,e[144464+(r<<2)>>2],n,v,0))),(A=(n=A-(a+32|0)|0)+c|0)>>>0>2]=r,fr(e[47195],84367,t)),(A=e[36456])&&ct[0|A](r)}l[190280]?(e[36423]=0,A=1):(oA(0),(A=e[t+8>>2])?(J=r=J+-64|0,ar(r,A,60),On(r,1),a=0,(A=Tt(r,0))&&(a=A,l[202976]&&(a=Tt(202976,2))),J=r- -64|0,e[44468]=a):a=e[44468],A=1,a&&(r=e[32972],(a=Ct(1344))&&(r=wt(a,r,1344),a=216192+(e[50758]<<4)|0,e[a>>2]=11,e[a+8>>2]=r,r=e[50758]+1|0,e[50758]=(0|r)<=169?r:0),e[44468]=0))}else A=0,u[190280]=0;else A=0,e[36423]=0,e[50758]=0,e[50757]=0;return J=t+16|0,A}function Se(A,t){var r=0,a=0,s=0,n=0;r=1073741825;e:{A:{r:{s:{n:{c:{o:{g:{l:{i:{p:{C:{m:{b:{h:{v:{w:{E:{L:{W:{V:{M:{B:{D:{F:{q:{Y:{Z:{S:{se:{H:{Ee:{U:{d:{f:{$:{k:{ee:{I:{a:{We:{J:{t:{fe:{R:{pe:{he:{Ve:{le:{N:{ve:{y:{Me:{_:{me:{Ge:{je:{De:{Qe:{Te:{Pe:{ze:{Fe:{Ce:{Ue:{Ae:{Se:{Ke:{Ne:{Oe:{G:{be:{Ze:{hA:{mA:{CA:{bA:{IA:{wA:{kA:{xA:{BA:{yA:{EA:{vA:{MA:{GA:{DA:{QA:{TA:{PA:{zA:{FA:{SA:{NA:{OA:{LA:{YA:{HA:{RA:{WA:{VA:{jA:switch(0|t){case 0:t=A-9>>>0<5?1073741825:0,t=(A=(0|A)==133)?1073741825:t;break F;case 1:u:{Q:{T:{P:{z:{O:{X:{j:{te:{ne:{re:{ie:{ce:{ue:{if((0|(t=-256&A))<=2047){if(!t)break ue;if((0|t)==1536)break ce;if((0|t)!=1792||(r=0,a=1,(0|A)!=1807))break u;break t}if((0|t)<=69631){if((0|t)==2048)break ie;if((0|t)!=8192)break u;switch(r=131076,A-8204|0){case 1:break re;case 0:break t;default:break ne}}if((0|t)==69632)break te;if((0|t)!=917504)break u;switch(r=8388608,A-917505|0){case 62:break T;case 58:break P;case 57:break z;case 45:break O;case 43:break X;case 32:break j;case 0:break t;default:break Q}}if(r=16,(0|A)!=173)break u;break t}if(r=0,a=1,A-1536>>>0<6)break t;a=(0|A)==1757,t=(A=(0|A)==1564)?2:0;break D}if(r=0,a=1,(0|A)!=2274)break u;break t}return $=64,4}if(r=1073741826,(-2&A)==8206)break t;if(A-8234>>>0<5)return $=0,2;if(r=128,A-8289>>>0<4||(r=2,A-8294>>>0<4))break t;if(r=8388608,A-8298>>>0>=6)break u;break t}t=!(A-69821&-17),A=0;break B}$=536870976;break M}$=268435520;break M}$=-2147483584;break M}$=134217792;break M}$=67108928;break M}$=1073741888;break M}if(r=131072,a=64,A-917536>>>0<96)break t}break a;case 2:u:{Q:{T:{P:{z:{O:{X:{if((0|(t=-256&A))<=130303){if((0|t)<=127743){if((0|t)<=64767){if((0|t)<=11007){if((0|t)==8192)break X;if((0|t)!=9216)break u;if(A-9255>>>0>=25)break O;break I}if((0|t)==11008)break z;if((0|t)!=11776||(r=-2147483648,A-11845>>>0>=59))break u;break t}if((0|t)<=126975){if((0|t)==64768)break P;if((0|t)!=65280||(r=4194304,A-65520>>>0>=9))break u;break t}if((0|t)==126976|(0|t)==127232|(0|t)==127488)break J;break u}if((0|t)<=129023){if((0|t)<=128255){if((0|t)==127744|(0|t)==128e3)break J;break u}if((0|t)==128256|(0|t)==128512|(0|t)==128768)break J;break u}if((0|t)<=129535){if((0|t)==129024|(0|t)==129280)break J;break u}if((0|t)==129536|(0|t)==129792|(0|t)==130048)break J;break u}if((0|t)<=919039){if((0|t)<=917759){if((0|t)<=130815){if((0|t)==130304)break J;if((0|t)!=130560)break u;break J}if((0|t)==130816)break J;if((0|t)!=917504)break u;if((-128&A)!=917632)break T;break ee}if((0|t)<=918271){if((0|t)==917760)break Q;if(r=4194304,(0|t)!=918016)break u;break t}if((0|t)==918272|(0|t)==918528)break ee;if(r=4194304,(0|t)!=918784)break u;break t}if((0|t)<=920319){if((0|t)<=919551){if((0|t)==919040)break ee;if(r=4194304,(0|t)!=919296)break u;break t}if((0|t)==919552|(0|t)==919808)break ee;if(r=4194304,(0|t)!=920064)break u;break t}if((0|t)<=920831){if((0|t)==920320)break ee;if(r=4194304,(0|t)!=920576)break u;break t}if((0|t)==920832|(0|t)==921088)break ee;if(r=4194304,(0|t)!=921344)break u;break t}if(r=4194304,(0|A)!=8293)break u;break t}if(r=-2147483648,A-9291>>>0>=21)break u;break t}if((-16&A)==11248|A-11219>>>0<25|(0|A)==11209|A-11194>>>0<3||(0|(t=-2&A))==11124)break I;if(r=-2147483648,(0|t)!=11158)break u;break t}if(r=65536,A-64976>>>0>=32)break u;break t}if((0|A)==917504)break ee;if(r=4194304,A-917506>>>0>=30)break u;break t}if(r=4194304,A>>>0>917999)break t}t=(A=!(65534&~A))>>>16|0,A<<=16;break B;case 6:u:{Q:{T:{P:{z:{O:{X:{j:{te:{ne:{re:{ie:{if((0|(t=-256&A))<=7679){if((0|t)<=767){if(!t)break ie;if((0|t)==256)break re;if((0|t)!=512)break a;if((0|A)!=585)break ne;break V}if((0|t)==768)break te;if((0|t)==1024)break j;if((0|t)!=7424||(r=16777216,(0|A)!=7574))break a;break t}if((0|t)<=119807){if((0|t)==7680)break X;if((0|t)==8448)break O;if((0|t)!=65280||(r=256,A-65345>>>0>=6))break a;break t}if((0|t)<=120319){if((0|t)==119808)break z;if((0|t)!=120064)break a;if(A>>>0>=120070)break P;break k}if((0|t)==120320)break T;if((0|t)!=120576)break a;if(A>>>0>=120597)break Q;break k}if(r=768,A-97>>>0<6)break t;if(r=16777216,A-105>>>0>=2)break a;break t}r=(t=(0|A)==329)>>>9|0,t=(A=(0|A)==303)?16777216:t<<23;break W}if((0|A)==616)break V;if(r=16777216,(0|A)!=669)break a;break t}switch(r=128,A-976|0){case 35:break u;case 0:case 1:case 2:case 5:case 32:case 33:break t}if((-2&A)!=1012)break a;break t}a=(A=!(A-1110&-3))>>>8|0,A<<=24;break L}a=(t=(0|A)==7883)>>>8|0,t=(A=(0|A)==7725)?16777216:t<<24;break D}if(A-8458>>>0<10)break k;if((t=A-8495|0)>>>0<11)break VA;break fe}if((0|(t=-2&A))==119842)break $;if(A-119808>>>0<85)break k;if(A-119894>>>0<2|A-119946>>>0<2)break $;if((0|A)==119995|A-119896>>>0<69|A-119982>>>0<12)break k;if((0|t)==119998)break $;if(A-119997>>>0<7)break k;if(r=16777344,(0|t)==120050)break t;if(r=128,A>>>0<=120004)break a;break t}if((-2&A)==120102)break $;if(A-120094>>>0<28)break k;P:{if((0|A)<=120257){if(A-120154>>>0<2)break $;if(r=16777344,A-120206>>>0>=2)break P;break t}if(A-120258>>>0<2)break $;if(r=16777344,A-120310>>>0<2)break t}if(r=128,A>>>0<=120145)break a;break t}if(A-120362>>>0<2|A-120414>>>0<2)break $;if(r=16777344,A-120466>>>0<2)break t;if(A-120540>>>0<31|A>>>0>120571|A>>>0<120486)break k;if(r=128,A-120514>>>0>=25)break a;break t}if(A-120772>>>0<8|A-120746>>>0<25|A-120714>>>0<31|A-120688>>>0<25||(0|A)!=120597&A>>>0<120629|A-120656>>>0<31)break k;if(r=128,A-120630>>>0<25)break t;break a}break V;case 7:u:{Q:{T:{P:{z:{O:{X:{j:{te:{ne:{re:{ie:{ce:{ue:{x:{oe:{ae:{K:{ge:{de:{Ie:{we:{if((0|(t=-256&A))<=11263){if((0|t)<=3583){if((0|t)<=1535){if((0|t)==512)break we;if((0|t)==768)break Ie;if((0|t)!=1280||(r=4096,(0|A)!=1369))break a;break t}if((0|t)==1536)break de;if((0|t)==1792)break ge;if((0|t)!=2304||(r=4096,(0|A)!=2417))break a;break t}if((0|t)<=7167){if((0|t)==3584)break K;if((0|t)==6144)break ae;if((0|t)!=6656||(r=8192,(0|A)!=6823))break a;break t}if((0|t)==7168)break oe;if((0|t)==7424)break x;if((0|t)!=8192)break a;if(r=16793600,!(t=A-8305|0))break t;if((0|t)==14)break ue;break ce}if((0|t)<=43263){if((0|t)<=40959){if((0|t)==11264)break ie;if((0|t)==11776)break re;if((0|t)!=12288)break a;switch(r=8192,A-12293|0){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:break te;case 0:case 44:case 45:case 46:case 47:case 48:break t;default:break ne}}if((0|t)==40960)break j;if((0|t)==42496)break X;if((0|t)!=42752)break a;if(A-42775>>>0>=9)break O;break f}if((0|t)<=65279){if((0|t)==43264)break z;if((0|t)==43520)break P;if((0|t)!=43776||(r=20480,(-4&A)!=43868))break a;break t}if((0|t)==65280)break T;if((0|t)==92928)break Q;if((0|t)!=93952)break a;if(r=4096,A-94099>>>0<13)break t;if(r=8192,(-2&A)!=94176)break a;break t}if(r=16797696,(0|A)==690)break t;if(A-688>>>0<9)return $=0,20480;if(A-697>>>0<7)break f;if((0|(t=-2&A))==704)return $=0,20480;if(r=4096,A-710>>>0<10||(r=12288,(0|t)==720)||(r=20480,A-736>>>0<5))break t;r=(A=(-3&A)==748)>>>20|0,A<<=12;break E}t=(0|A)==890?20480:0,t=(A=(0|A)==884)?4096:t;break F}if(r=8192,(0|A)==1600)break t;if(r=4096,A-1765>>>0>=2)break a;break t}if(r=4096,(-2&A)==2036)break t;if(r=8192,(0|A)!=2042)break a;break t}t=(A=!(A-3654&-129))>>>19|0,A<<=13;break B}if(r=8192,(0|A)!=6211)break a;break t}if(r=12288,(0|A)==7291)break t;if(r=4096,A-7288>>>0>=6)break a;break t}if(r=16797696,(0|A)==7522||(r=20480,A-7468>>>0<63))break t;switch(r=16384,A-7588|0){default:if((0|A)==7544)break t;case 1:case 2:case 3:if(A-7579>>>0>=37)break a;break t;case 0:case 4:}return $=0,16793600}return $=0,16384}if(r=16384,A-8336>>>0>=13)break a;break t}t=(r=(0|A)==11389)>>>18|0,r=(A=(0|A)==11388)?16793600:r<<14;break w}if(r=-2147479552,(0|A)!=11823)break a;break t}if(A-12445>>>0<2)break t;if((0|A)==12540)break u}if(A-12541>>>0>=2)break a;break t}if(r=8192,(0|A)!=40981)break a;break t}if((0|A)==42508)break v;if((0|A)==42623)break f;if(r=20480,(-2&A)!=42652)break a;break t}if((0|A)==42864)return $=0,16384;if((0|A)==42888)break f;if(r=20480,(-2&A)!=43e3)break a;break t}r=(t=(0|A)==43494)>>>19|0,t=(A=(0|A)==43471)?8192:t<<13;break W}if((0|A)==43632||(0|A)==43741)break v;if(r=8192,A-43763>>>0>=2)break a;break t}if(r=12288,(0|A)==65392)break t;if(r=135168,(-2&A)!=65438)break a;break t}if(r=8192,(-2&A)==92994)break t;break a}return $=0,12288;case 8:r=128;u:{Q:{T:{P:{z:{O:{X:{j:{te:{if((0|(t=-256&A))<=12543){if((0|t)<=5887){if((0|t)<=3583){if(!t)break te;if((0|t)!=1536||(t=8388608,(0|A)!=1651))break y;break le}if((0|t)==3584)break j;if((0|t)!=4352||(r=4194304,A-4447>>>0>=2))break y;break N}if((0|t)<=8447){if((0|t)==5888)break X;if((0|t)!=6400||(t=A-6581|0)>>>0>=6)break y;r=e[(t=81432+(t<<3)|0)>>2],a=e[t+4>>2];break N}if((0|t)==8448)break O;if((0|t)!=12288||(t=2048,(0|A)!=12294))break y;break le}if((0|t)<=68863){if((0|t)<=63999){if((0|t)==12544)break z;if((0|t)!=43520)break y;if((t=A-43701|0)>>>0<8)break Q;break ve}if((0|t)==64e3)break u;if((0|t)!=65280||(t=4194304,(0|A)!=65440))break y;break le}if((0|t)<=100095){if((0|t)==68864)break P;if((0|t)!=70400||(r=8192,(0|A)!=70493))break y;break he}if((0|t)==100096)break T;if((0|t)!=126464)break y;break N}a=(t=!(A-170&-17))>>>18|0,r=t<<14;break N}if(r=33554432,A-3648>>>0<5)break N;if(t=0,n=33554432,(0|A)==3759)break le;if(A-3776>>>0>=5)break y;break N}if(r=8388608,A-6051>>>0>=2)break y;break N}if(A-8501>>>0>=4)break y;break N}if(t=4194304,(0|A)!=12644)break y;break le}if(r=4096,(-2&A)!=68898)break y;break N}if(r=2048,A-100333>>>0<5)break N;break y}if(r=33554432,!(211>>>t&1))break ve;break N}if((t=A-64014|0)>>>0>=28)break y;r=e[(t=81480+(t<<3)|0)>>2],a=e[t+4>>2];break N;case 10:u:{Q:{T:{P:{z:{O:{if((0|(t=-256&A))<=119807){if((0|t)<=8447){if(!t)break O;if((0|t)!=768)break a;switch(r=128,A-976|0){case 0:case 1:case 2:case 36:case 37:break t;default:break a}}if((0|t)==8448)break z;if((0|t)!=65280||(r=256,A-65313>>>0>=6))break a;break t}if((0|t)<=120319){if((0|t)==119808)break P;if((0|t)!=120064)break a;if(A>>>0>=120070)break T;break k}if((0|t)==120320)break Q;if((0|t)!=120576)break a;if(A-120772>>>0>=8)break u;break k}if(r=768,A-65>>>0>=6)break a;break t}switch(r=128,A-8450|0){case 0:case 5:break t}if(A-8458>>>0<10)break k;if((t=A-8469|0)>>>0<20)break WA;if((-4&A)==8508)break t;break Me}if(A-119982>>>0<12|A>>>0>120004|A-119977>>>0<4|A-119973>>>0<2||(0|A)==119970|(-2&A)==119966|A-119808>>>0<85)break k;if(r=128,A-119894>>>0>=71)break a;break t}if(A-120138>>>0<7|A>>>0>120145|(0|A)==120134|A-120128>>>0<5||A-120123>>>0<4|A-120094>>>0<28|(0|A)!=120070&A>>>0<120075|A-120086>>>0<7)break k;if(r=128,A-120077>>>0>=8)break a;break t}if(A-120540>>>0<31|A>>>0<120486)break k;if(r=128,A-120488>>>0>=25)break a;break t}if(A-120714>>>0<31|A-120598>>>0<31)break k;if(r=128,A-120656>>>0<31)break t;break a;case 11:u:{Q:{T:{P:{z:{O:{X:{j:{te:{ne:{re:{ie:{ce:{ue:{x:{oe:{ae:{if((0|(t=-256&A))<=43263){if((0|t)<=3839){if((0|t)<=3071){if((0|t)==2304)break ae;if((0|t)!=2816)break d;if((0|A)>3005)break x;if((0|A)!=2878)break oe;return $=0,132096}if((0|t)==3072)break ue;if((0|t)!=3328)break d;switch(r=132096,A-3535|0){case 0:case 16:break t;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:break d;default:break ce}}if((0|t)<=6911){if((0|t)==3840)break ie;if((0|t)!=4096)break d;if(r=1024,A-4139>>>0<2)break t;switch(A-4145|0){case 0:case 7:case 10:case 11:case 37:case 38:case 49:case 54:case 55:case 82:case 83:break t;case 86:case 87:case 88:case 89:case 90:case 91:case 94:case 105:case 106:break u;default:break re}}if((0|t)==6912)break ne;if((0|t)==7168)break te;if((0|t)!=12288||(r=135168,(-2&A)!=12334))break d;break t}if((0|t)<=70399){if((0|t)<=43775){if((0|t)==43264)break j;if((0|t)!=43520)break d;return $=0,A-43643&-3?1024:4096}if((0|t)==43776)break X;if((0|t)==69888)break O;if((0|t)!=70144||(r=4096,(0|A)!=70197))break d;break t}if((0|t)<=70911){if((0|t)==70400)break z;if((0|t)!=70656)break d;t=(0|A)==70845?132096:1024,t=(A=(0|A)==70832)?132096:t;break F}if((0|t)==70912)break P;if((0|t)==71168)break T;if((0|t)!=119040)break d;switch(r=131072,A-119141|0){case 8:break f;case 1:break a;case 0:break t;default:break Q}}t=(0|A)==2519?132096:1024,t=(A=(0|A)==2494)?132096:t;break F}if(r=132096,(0|A)!=2903)break d;break t}if((0|A)==3006)return $=0,132096;if(r=132096,(0|A)!=3031)break d;break t}if((A=A-3266|0)>>>0>20||(r=132096,!(1<>>22|0,A<<=10;break E}switch(r=1024,A-6965|0){default:if((0|A)==6916)break t;break;case 0:case 6:break t;case 1:case 2:case 3:case 4:case 5:}if(A-6973>>>0<5)break t;switch(A-6979|0){case 1:break f;case 0:break t}if((0|A)==7042|(0|A)==7073|(-2&A)==7078)break t;if((0|A)==7082)break f;if((0|A)==7143|A-7146>>>0<3)break t;r=(A=(0|A)==7150)>>>22|0,A<<=10;break E}t=(0|A)==7415?4096:1024,t=(A=(0|A)==7393)?4096:t;break F}t=(0|A)==43456?4096:1024,t=(A=(0|A)==43347)?4096:t;break F}if(r=4096,(0|A)!=44012)break d;break t}if(r=4096,(0|A)!=70080)break d;break t}r=132096;z:switch(A-70462|0){case 0:case 25:break t;case 15:break z;default:break d}break f}if(r=132096,(0|A)!=71087)break d;break t}if(r=4096,(0|A)!=71350)break d;break t}if(r=135168,A-119150>>>0<5)break t;break d}break f;case 12:t=((0|A)==8419)<<6,A=0;break B;case 13:u:{Q:{T:{P:{z:{O:{X:{j:{te:{ne:{re:{ie:{ce:{ue:{x:{oe:{ae:{K:{ge:{de:{Ie:{we:{Le:{ke:{Ye:{Xe:{qe:{Je:{_e:{$e:{eA:{AA:{tA:{rA:{aA:{xe:{sA:{nA:{iA:{oA:{lA:{He:{Be:{Re:{cA:{uA:{gA:{ye:{dA:{fA:{pA:{if((0|(t=-256&A))<=43775){if((0|t)<=5887){if((0|t)<=2559){if((0|t)<=1535){if((0|t)==768)break pA;if((0|t)==1024)break fA;if((0|t)!=1280)break a;if(A-1425>>>0>=17)break dA;break f}if((0|t)<=2047){if((0|t)==1536)break ye;if((0|t)!=1792)break a;if(r=1024,(0|A)==1809)break t;if((-16&A)!=1840)break gA;return $=0,5120}if((0|t)==2048)break uA;if((0|t)!=2304)break a;if(A>>>0>=2307)break cA;break d}if((0|t)<=3583){if((0|t)<=3071){if((0|t)==2560)break Re;if((0|t)!=2816)break a;switch(r=1024,A-2876|0){case 0:break f;case 3:break t;case 1:case 2:break He;default:break Be}}if((0|t)==3072)break lA;if((0|t)!=3328)break a;if((0|(t=-2&A))!=3328)break oA;break d}if((0|t)<=4095){if((0|t)==3584)break iA;if((0|t)!=3840)break a;if((0|(t=-2&A))!=3864)break nA;break f}if((0|t)==4096)break sA;if((0|t)!=4864||(r=1024,(0|A)!=4959))break a;break t}if((0|t)<=8191){if((0|t)<=6655){if((0|t)==5888)break xe;if((0|t)==6144)break aA;if((0|t)!=6400)break a;if((t=A-6432|0)>>>0<=18&&(r=1024,1<>>0>=3)break a;break t}if((0|t)<=7167){if((0|t)==6656)break rA;if((0|t)!=6912)break a;if(r=1024,(-4&A)==6912)break t;if((0|A)!=6964)break tA;break f}if((0|t)==7168)break AA;if((0|t)!=7424)break a;if(r=4096,A-7620>>>0<12||(r=1024,A-7655>>>0<14))break t;if((A=A-7669|0)>>>0>=11)break a;t=e[(A=82104+(A<<3)|0)>>2];break h}if((0|t)<=42495){if((0|t)<=11519){if((0|t)==8192)break eA;if((0|t)!=11264||(r=4096,A-11503>>>0>=3))break a;break t}if((0|t)==11520)break $e;if((0|t)!=12288)break a;if(A-12330>>>0>=4)break _e;break f}if((0|t)<=43263){if((0|t)==42496)break Je;if((0|t)!=43008)break a;if(A-43045>>>0>=2)break qe;break d}if((0|t)==43264)break Xe;if((0|t)!=43520)break a;switch(r=1024,A-43561|0){case 83:case 150:case 152:break f;case 0:case 1:case 2:case 3:case 4:case 5:case 8:case 9:case 12:case 13:case 26:case 35:case 135:case 137:case 138:case 139:case 142:case 143:case 149:break t;default:break Ye}}if((0|t)<=71423){if((0|t)<=69375){if((0|t)<=66047){if((0|t)==43776)break ke;if((0|t)==64256)break Le;if((0|t)!=65024)break a;if(r=536870912,A-65024>>>0<15||(a=64,(0|A)==65039))break t;if(r=4096,a=0,(-16&A)!=65056)break a;break t}if((0|t)<=68095){if((0|t)==66048)break we;if((0|t)!=66304||(r=1024,A-66422>>>0>=5))break a;break t}if((0|t)==68096)break Ie;if((0|t)!=68864||(r=5120,(-4&A)!=68900))break a;break t}if((0|t)<=70399){if((0|t)<=69887){if((0|t)==69376)break de;if((0|t)!=69632)break a;if(A-69688>>>0>=14)break ge;break d}if((0|t)==69888)break K;if((0|t)!=70144)break a;if(r=1024,A-70191>>>0<3)break t;switch(A-70196|0){case 2:break f;case 0:case 3:case 10:break t;case 1:case 4:case 5:case 6:case 7:case 8:case 9:break oe;default:break ae}}if((0|t)<=70911){if((0|t)==70400)break x;if((0|t)!=70656)break a;if((-8&A)!=70712)break ue;break d}if((0|t)==70912)break ce;if((0|t)!=71168)break a;if(r=1024,A-71219>>>0<8)break t;switch(A-71229|0){case 2:break f;case 0:case 3:break t;case 1:break re;default:break ie}}if((0|t)<=92927){if((0|t)<=72703){if((0|t)==71424)break NA;if((0|t)==71680)break ne;if((0|t)!=72192)break a;if(A-72193>>>0>=10)break te;break d}if((0|t)<=73215){if((0|t)==72704)break j;if((0|t)!=72960)break a;if((t=A-73009|0)>>>0<19)break FA;break _}if((0|t)==73216)break X;if((0|t)!=92672||(r=4096,A-92912>>>0>=5))break a;break t}if((0|t)<=122879){if((0|t)<=113663){if((0|t)==92928)break O;if((0|t)!=93952||(r=4096,A-94095>>>0>=4))break a;break t}if((0|t)==113664)break z;if((0|t)!=119040)break a;switch(r=4096,A-119143|0){case 0:case 1:case 2:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 67:case 68:case 69:case 70:break t;default:break a}}if((0|t)<=125183){if((0|t)==122880)break P;if((0|t)!=124928||(r=4096,A-125136>>>0>=7))break a;break t}if((0|t)==125184)break T;if((0|t)!=917760||(r=536870912,A-917760>>>0>=240))break a;break t}if(A-768>>>0<69)break f;if(r=21504,(0|A)==837)break t;if(A-838>>>0<9)break f;if(r=4194304,(0|A)==847)break t;if((-8&A)==848)break f;if(r=4096,A-861>>>0>=6)break a;break t}if(r=4096,A-1155>>>0>=5)break a;break t}if(r=4096,A-1443>>>0<13||(r=5120,A-1456>>>0<14))break t;if((A=A-1471|0)>>>0>=9)break a;t=e[(A=81944+(A<<3)|0)>>2];break h}if(A-1552>>>0<11)break d;if(r=5120,A-1611>>>0<8)break t;if(A-1619>>>0<4)break d;switch(A-1623|0){case 1:break f;case 0:break t;case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 25:case 127:case 128:case 129:case 130:case 131:case 132:case 133:break d}if(r=4096,A-1759>>>0<2)break t;if((t=A-1761|0)>>>0<8)break RA;break me}if(A-1856>>>0<11)break f;if(r=5120,A-1958>>>0<11)break t;if(r=4096,A-2027>>>0>=9)break a;break t}switch(r=1024,(-2&A)-2070|0){case 2:break f;case 0:break t}if(A-2260>>>0<12|A-2089>>>0<4|A-2075>>>0<9|A-2085>>>0<3)break d;if(A-2275>>>0<7)return $=0,5120;if(r=4096,A-2282>>>0<6||(r=5120,A-2288>>>0<15))break t;if(r=1024,(0|A)!=2303)break a;break t}switch(r=1024,A-2362|0){case 2:break f;case 0:break t}if(A-2369>>>0<8)break d;switch(r=4096,A-2381|0){case 0:case 4:case 5:case 6:case 7:case 111:break t;case 8:case 9:case 10:case 21:case 22:case 52:break d}if(A-2497>>>0<4)break d;if((0|A)==2509)break t;if(r=1024,(-2&A)!=2530)break a;break t}if(A-2561>>>0<2)break d;switch(r=4096,A-2620|0){case 0:case 17:case 128:case 145:break t;case 5:case 6:case 11:case 12:case 15:case 16:case 21:case 52:case 53:case 57:case 69:case 70:case 133:case 134:case 135:case 136:case 137:case 139:case 140:case 166:case 167:case 190:case 191:case 192:break d}if(A-2813>>>0>=3)break a;break t}if((0|A)==2817)break d}if(A-2881>>>0<4)break d;switch(r=4096,A-2893|0){case 0:break t;case 9:break d}if((-2&A)==2914)break d;switch(r=1024,A-3008|0){default:if((0|A)!=2946)break a;break t;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:break a;case 0:break t;case 13:}break f}switch(r=1024,A-3072|0){case 77:case 188:case 205:break f;case 0:case 62:case 63:case 64:case 70:case 71:case 72:case 74:case 75:case 76:case 85:case 86:case 98:case 99:case 129:case 191:case 198:case 204:break t}if((-2&A)!=3298)break a;break t}if(r=4096,A-3387>>>0<2)break t;if(A-3393>>>0<4)break d;if((0|A)==3405)break t;if((0|t)==3426)break d;switch(A-3530|0){case 0:break t;case 8:case 9:case 10:case 12:break d;default:break a}}if((t=A-3633|0)>>>0<10)break HA;break Ge}if((r=A-3893|0)>>>0>4|!(1<>>22|0,r=(A=(0|A)==4237)?4096:r<<10;break w}r=1024;xe:{switch(A-5906|0){case 0:case 1:case 32:case 33:break t;case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:break xe}switch(A-5970|0){case 0:case 1:case 32:case 33:break t;default:break xe}}if(r=4194304,(-2&A)==6068)break t;if((t=A-6071|0)>>>0<16)break YA;break De}if(r=536870912,A-6155>>>0<3||(r=67109888,A-6277>>>0<2))break t;if(r=1024,(0|A)!=6313)break a;break t}if(A-6679>>>0<2)break d;switch(r=1024,A-6683|0){case 0:case 59:case 61:case 62:case 63:case 64:case 65:case 66:case 67:case 71:case 74:case 75:case 76:case 77:case 78:case 79:case 80:case 81:case 88:case 89:break t}if(r=4096,A-6832>>>0<14)break t;if((A=A-6773|0)>>>0>=11)break a;t=e[(A=82016+(A<<3)|0)>>2];break h}if(A-6966>>>0<5)break t;switch(A-6972|0){case 0:case 6:break t}if(A-7019>>>0<9)break f;switch(A-7040|0){case 43:break f;case 0:case 1:case 34:case 35:case 36:case 37:case 40:case 41:case 44:case 45:case 104:case 105:case 109:case 111:case 112:case 113:break t;default:break a}}if(r=1024,A-7212>>>0<8)break t;switch(r=12288,A-7222|0){case 1:break f;case 0:break t}if(A-7380>>>0<13)break f;switch(r=4096,A-7376|0){case 0:case 1:case 2:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 29:case 36:break t}if((-2&A)!=7416)break a;break t}if(r=128,A-8400>>>0<13)break t;if((A=A-8417|0)>>>0>=15)break a;t=e[(A=82192+(A<<3)|0)>>2];break h}if(r=1024,(-32&A)!=11744)break a;break t}if(r=4096,A-12441>>>0>=2)break a;break t}if((0|A)==42607)break f;if(A-42612>>>0<8)break d;if((0|(A&=-2))==42620)break f;if((0|A)==42654)break u;if(r=4096,(0|A)!=42736)break a;break t}switch(r=4096,A-43204|0){case 0:break t;case 1:break d}if(A-43232>>>0>=18)break a;break t}if(A-43302>>>0<5)break d;if(A-43307>>>0<3)break f;if(A-43335>>>0<11|A-43392>>>0<3)break d;if(r=4096,(0|A)==43443||(r=1024,A-43446>>>0<4))break t;a=(t=(0|A)==43493)>>>20|0,t=(A=(0|A)==43452)?1024:t<<12;break D}if((-2&A)==43756)break t;if(r=4096,(0|A)!=43766)break a;break t}r=1024;ke:switch(A-44005|0){case 0:case 3:break t;case 8:break ke;default:break a}break f}if(r=5120,(0|A)!=64286)break a;break t}if(r=4096,(0|A)!=66272)break a;break t}if((-4&A)==68108)break d;if((t=A-68097|0)>>>0<6)break LA;break Qe}if(r=4096,A-69446>>>0>=11)break a;break t}if(A-69811>>>0<4)break d;if(r=1024,(0|A)==69633)break t;if(r=4096,A-69817>>>0>=2)break a;break t}switch(r=1024,A-69888|0){case 51:case 52:case 115:break f;case 0:case 1:case 2:case 39:case 40:case 41:case 42:case 43:case 45:case 46:case 47:case 48:case 49:case 50:break t}if((-2&A)==70016|A-70070>>>0<9)break t;if(r=4096,A-70090>>>0>=3)break a;break t}if((0|A)==70367)break t}if(A-70371>>>0<6)break t;if(r=4096,A-70377>>>0>=2)break a;break t}if((-2&A)==70400)break d;r=4096;x:switch(A-70460|0){case 0:case 42:case 43:case 44:case 45:case 46:case 47:case 48:case 52:case 53:case 54:case 55:case 56:break t;case 4:break x;default:break a}break d}if((0|A)==70722)break f;if(A-70723>>>0<2)break d;if((t=A-70835|0)>>>0<=13)break Q;break Te}if((t=A-71090|0)>>>0<12)break OA;break Pe}switch(A-71339|0){case 0:case 2:break t;default:break re}}if(A-71344>>>0<6)break t;if(r=4096,(0|A)!=71351)break a;break t}if(r=1024,A-71727>>>0<10)break t;if(r=4096,A-71737>>>0>=2)break a;break t}if((0|A)==72244)break f;if(A-72245>>>0<10)break d;if(r=4096,(0|A)==72263)break t;if(A-72273>>>0<11)break d;if(r=1024,A-72330>>>0<13)break t;r=(t=(0|A)==72345)>>>20|0,t=(A=(0|A)==72344)?8192:t<<12;break W}if((t=A-72752|0)>>>0<16)break SA;break ze}if(r=1024,A-73459>>>0>=2)break a;break t}if(r=1024,A-92976>>>0>=7)break a;break t}if(r=1024,(0|A)!=113822)break a;break t}if(r=1024,A-122888>>>0<17)break t;if((A=A-122880|0)>>>0>=43)break a;t=e[(A=82816+(A<<3)|0)>>2];break h}if(r=12288,A-125252>>>0<3||(r=1024,(0|A)==125255)||(r=4096,A-125256>>>0<3))break t;break a}if(!(1<>>0>=10))break u;break t}if(r=256,A-65296>>>0>=10)break u;break t}if(r=128,A-120782>>>0<50)break t}break a;case 15:u:{if((0|(t=-256&A))!=12288){if((0|t)!=8448)break u;t=(A=(0|(r=-16&A))==8560)>>>18|0,a=A<<14,r=(A=(0|r)==8544)?32768:a;break w}if(A-12321>>>0<9||A-12344>>>0<3)return $=0,2048;if(r=2048,(0|A)==12295)break t}break a;case 16:u:{Q:{T:{if((0|(t=-256&A))<=9215){if((0|t)==4864)break T;if((0|t)!=6400||(r=134217728,(0|A)!=6618))break u;break t}if((0|t)==9216)break Q;if((0|t)!=127232)break u;if(r=0,a=-2147483648,(0|A)==127232)break t;if(a=268435456,A-127233>>>0>=10)break u;break t}if(r=134217728,A-4969>>>0>=9)break u;break t}if(r=0,a=-2147483648,A-9352>>>0<20)break t}break a;case 17:a=(A=(0|A)==8256)>>>25|0,A<<=7;break L;case 18:u:{Q:{T:{P:{if((0|(t=-256&A))<=11775){if((0|t)<=6143){if(r=-2147483624,!t)break t;if((0|t)!=1280||(r=24,(0|A)!=1418))break u;break t}if((0|t)==6144)break P;if((0|t)!=8192)break u;if(r=-2147483624,(-2&A)==8208)break t;A=A-8211>>>0<2,t=-2147483640;break b}if((0|t)<=65023){if((0|t)==11776)break T;if((0|t)!=12288)break u;t=(0|A)==12336,r=(A=(0|A)==12316)||t?-2147483640:8,$=A?0:t?130:0;break m}if((0|t)==65024)break Q;if((0|t)!=65280||(r=24,(0|A)!=65293))break u;break t}if(r=24,(0|A)!=6150)break u;break t}if(r=-2147483624,(0|A)==11799)break t;A=(-2&A)==11834,t=-2147483640;break b}if(r=8,a=8388608,A-65073>>>0<2||(r=152,a=0,(0|A)==65123))break t}return $=0,8;case 19:u:{Q:{T:{P:{z:{O:{if((0|(t=-256&A))<=11775){if((0|t)<=8959){if(t)break O;break I}if((0|t)==8960)break z;if((0|t)==9984)break P;if((0|t)!=10496)break a;break U}if((0|t)<=64767){if(r=-2147483648,(0|t)==11776)break t;if((0|t)!=12288)break a;switch(r=-2147483616,A-12301|0){case 0:case 2:break t;default:break T}}if((0|t)==64768)break Q;if((0|t)==65024)break u;if((0|t)!=65280)break a;if(r=32,(0|A)==65379)break t;break a}if((0|t)!=8192)break a;switch(A-8318|0){default:if(r=-2147483648,(0|A)!=8262)break a;break t;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:break a;case 0:case 16:}break k}switch(r=-2147483520,A-8969|0){case 1:break a;case 0:case 2:break t}if((0|A)!=9002)break a;return $=0,-2139095040}if(r=-2147483520,(0|A)==10182)break t;break Ee}return $=0,(-2&A)==12318?-2147483616:-2147483648}if(r=-2147483648,(0|A)!=64830)break a;break t}a=(A=!(A-65090&-3))>>>27|0,A<<=5;break L;case 20:case 21:if(!(A&=-256))break C;if(r=-2147483616,(0|A)==8192)break t;break We;case 22:u:{Q:{T:{P:{z:{O:{X:{j:{te:{ne:{re:{ie:{ce:{ue:{x:{oe:{ae:{K:{ge:{de:{Ie:{we:{Le:{ke:{Ye:{Xe:{qe:{Je:{_e:{$e:{eA:{AA:{tA:{rA:{aA:{xe:{sA:{nA:{iA:{oA:{lA:{He:{Be:{Re:{cA:{uA:{gA:{ye:{if((0|(t=-256&A))<=43519){if((0|t)<=5887){if((0|t)<=2303){if((0|t)<=1535){if(!t)break ye;if((0|t)==768)break gA;if((0|t)!=1280)break a;if(r=0,a=538968064,A-1371>>>0<2)break t;switch(a=268435456,A-1373|0){case 0:break t;case 1:break cA;default:break uA}}if((0|t)==1536)break Be;if((0|t)==1792)break He;if((0|t)!=2048)break a;if((t=A-2103|0)>>>0<8)break PA;break Fe}if((0|t)<=3839){if((0|t)==2304)break lA;if((0|t)==3328)break oA;if((0|t)!=3584||(r=64,(-2&A)!=3674))break a;break t}if((0|t)<=4863){if((0|t)==3840)break iA;if((0|t)!=4096)break a;if(r=268435520,(-2&A)==4170)break t;if(r=0,a=16777216,(0|A)!=4347)break a;break t}if((0|t)==4864)break nA;if((0|t)!=5632)break a;switch(r=64,A-5741|0){case 1:break n;case 0:break t;default:break sA}}if((0|t)<=11263){if((0|t)<=6655){if((0|t)==5888)break xe;if((0|t)==6144)break QA;if((0|t)!=6400)break a;t=(0|A)==6469,r=(A=(0|A)==6468)||t?268435520:0,$=A?536870912:t?1073741824:0;break m}if((0|t)<=7167){if((0|t)==6656)break aA;if((0|t)!=6912)break a;if((0|(t=-2&A))!=7002)break rA;break H}if((0|t)==7168)break tA;if((0|t)!=8192)break a;switch(r=-2147483520,A-8214|0){case 1:break I;case 0:break t;case 16:break AA;default:break eA}}if((0|t)<=41983){if((0|t)==11264)break $e;if((0|t)==11776)break _e;if((0|t)!=12288)break a;switch(r=-2147483584,a=272629760,A-12289|0){case 2:break I;case 0:break t;case 1:break qe;default:break Je}}if((0|t)<=43007){if((0|t)==41984)break Xe;if((0|t)!=42496)break a;switch(r=64,a=268435456,A-42739|0){case 4:break c;case 0:break n;case 3:break r;case 2:break t;case 1:break ke;default:break Ye}}if((0|t)==43008)break Le;if((0|t)!=43264)break a;switch(r=4096,A-43310|0){case 0:break t;case 1:break H;default:break we}}if((0|t)<=70655){if((0|t)<=67839){if((0|t)<=65279){if((0|t)==43520)break Ie;if((0|t)==43776)break de;if((0|t)!=65024)break a;if(r=0,a=268435456,(0|(n=-2&A))==65040)break t;if((t=A-65042|0)>>>0<8)break GA;break Ce}if((0|t)==65280)break ge;if((0|t)==66304)break K;if((0|t)!=67584||(r=64,(0|A)!=67671))break a;break t}if((0|t)<=69375){if((0|t)==67840)break ae;if((0|t)==68096)break oe;if((0|t)!=68352)break a;switch(r=64,A-68410|0){case 0:case 1:case 2:case 3:case 4:case 5:case 95:case 96:case 97:case 98:break t;default:break a}}if((0|t)<=69887){if((0|t)==69376)break x;if((0|t)!=69632)break a;if(A-69703>>>0>=2)break ue;break H}if((0|t)==69888)break ce;if((0|t)!=70144)break a;if((t=A-70200|0)>>>0<=4)break ie;if((0|A)!=70313)break a;break H}if((0|t)<=74751){if((0|t)<=71423){if((0|t)==70656)break re;if((0|t)==70912)break ne;if((0|t)!=71168||(r=268435520,A-71233>>>0>=2))break a;break t}if((0|t)<=72703){if((0|t)==71424)break te;if((0|t)!=72192)break a;if(A-72258>>>0>=2)break j;break H}if((0|t)==72704)break X;if((0|t)!=73216||(r=268435520,A-73463>>>0>=2))break a;break t}if((0|t)<=93695){if((0|t)==74752)break O;if((0|t)==92672)break P;if((0|t)!=92928)break a;if(r=268435520,A-92983>>>0<2)break t;t=(0|A)==92996?268435520:0,t=(A=(0|A)==92985)?64:t;break F}if((0|t)<=121343){if((0|t)==93696)break z;if((0|t)!=113664||(r=268435520,a=-2147483648,(0|A)!=113823))break a;break t}if((0|t)==121344)break MA;if((0|t)!=125184)break a;r=((0|A)==125279)<<30,t=0,$=(A=(0|A)==125278)?536870912:r;break i}r=-1879048128,a=536870912;ye:{dA:{fA:{pA:{switch(A-33|0){default:switch(A-183|0){case 1:case 2:case 3:case 4:case 5:case 6:case 7:break ye;case 8:break fA;case 0:break pA;default:break dA}case 2:case 9:$=66;break g;case 11:return $=268435456,-2147483584;case 13:return $=-2147483648,-1879048128;case 25:return $=134217728,-2147483584;case 26:return $=67108864,-2147483584;case 1:case 6:break C;case 0:break t;case 3:case 4:case 5:case 7:case 8:case 10:case 12:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 27:case 28:case 29:break ye;case 30:}return $=1073741824,-1879048128}return $=0,134230016}$=1078984704;break g}if((0|A)==161)break Ue}break I}t=(0|A)==903,r=(A=(0|A)==894)?64:t?134217792:0,$=A?1073741824:t?67108864:0;break m}if((0|A)==1417)break Re;if((0|A)!=1475)break a;break se}$=1075838976;break o}$=-2143289344;break s}r=64,a=268435456;Be:switch(A-1548|0){case 15:break r;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 16:case 17:break a;case 0:break t;case 19:break Be;case 18:break H;default:break T}break c}if((t=A-1792|0)>>>0<6)break zA;if(r=64,a=134217728,(-2&A)==1798)break t;a=67108864;He:{Be:{Re:switch(A-1800|0){default:switch(A-2040|0){case 1:break He;case 0:break Be;default:break a}case 3:break a;case 0:break t;case 1:break Re;case 2:case 4:break se}$=1073741824;break A}$=268435456;break A}$=536870912;break s}t=(0|A)==2405,r=(A=(0|A)==2404)||t?268435520:0,$=A?-2143289344:t?16777216:0;break m}if(r=0,a=-2143289344,(0|A)!=3572)break a;break t}switch(r=64,A-3848|0){case 5:$=-2143289344;break A;case 6:$=16777216;break A;case 0:break t}if(A-3854>>>0<5)break t;if(r=0,a=268435456,(0|A)!=3860)break a;break t}if((t=A-4961|0)>>>0<4)break TA;if(r=64,a=134217728,A-4965>>>0<2)break t;t=(0|A)==4968,r=(A=(0|A)==4967)||t?268435520:0,$=A?1073741824:t?16777216:0;break m}if(A-5867>>>0>=3)break a;break t}if(r=268435520,A-5941>>>0<2)break t;if((A=A-6100|0)>>>0>=7)break a;t=e[(A=83240+(A<<3)|0)>>2];break h}if(r=268435520,(-4&A)!=6824)break a;break t}if(r=64,(0|A)==7005)break t;if(r=268435520,(0|t)!=7006)break a;break t}if(A-7227>>>0<2)break H;if(r=64,A-7229>>>0<3||(r=268435520,(-2&A)==7294))break t;if(r=4096,(0|A)!=7379)break a;break t}$=33554432;break g}if((-8&A)==8224)break I;if(A-8242>>>0<3)break t;if(A-8240>>>0<9)break I;if((t=A-8251|0)>>>0<21)break DA;break Ae}if((0|A)==11513){$=-2147483648;break o}if(r=0,a=1073741824,(-2&A)==11514)break t;if(a=-2147483648,(0|A)!=11518)break a;break t}switch(r=-1879048128,A-11822|0){case 4:case 6:$=268435456;break g;case 5:$=-2147483648;break g;case 7:$=67108864;break g;case 14:return $=-2147483648,-1879048128;case 19:return $=268435456,-2147483584;case 30:case 32:return $=0,-2147483584;case 0:break t}break I}if((0|A)==12349)break S;if((0|A)!=12539)break a;return $=0,16}return $=-2143289344,-1879048128}t=(0|A)==42239,r=(A=(0|A)==42238)?64:t?268435520:0,$=A?268435456:t?-2147483648:0;break m}Ye:switch(A-42509|0){case 1:break n;case 0:break t;case 2:break Ye;default:break a}break c}$=134217728;break A}if(A-43126>>>0<2)break H;if(r=268435520,A-43214>>>0>=2)break a;break t}if((0|A)==43463)break se;if(r=268435520,(-2&A)!=43464)break a;break t}if(A-43613>>>0<3)break H;if(r=64,(0|A)==43743)break t;if(r=268435520,(-2&A)!=43760)break a;break t}if(r=268435520,(0|A)!=44011)break a;break t}r=268435520,a=541065216;ge:switch(A-65281|0){case 1:case 6:return $=0,32;case 11:$=272629760;break A;case 13:$=-2143289344;break s;case 100:return $=0,16;case 25:$=138412032;break A;case 26:$=71303168;break A;case 30:$=1077936128;break s;case 96:break n;case 59:break k;case 0:break t;case 99:break ge;default:break a}$=268435456;break A}r=(t=(0|A)==66512)>>>26|0,t=(A=(0|A)==66463)?64:t<<6;break W}if(r=64,(0|A)!=67871)break a;break t}if(r=268435520,(-2&A)==68182)break t;if(r=64,A-68336>>>0>=6)break a;break t}if(r=268435520,A-69461>>>0>=5)break a;break t}if(r=64,A-69705>>>0<5)break t;if(r=268435520,A-69822>>>0>=4)break a;break t}if(A-69953>>>0<2)break H;if((t=A-70085|0)>>>0<=26)break Q;break Se}if((0|t)!=2)break H;break se}if(r=268435520,A-70731>>>0<2)break t;a=(t=(0|A)==70747)>>>26|0,t=(A=(0|A)==70733)?64:t<<6,$=A?268435456:a;break i}switch(r=268435520,(-2&A)-71106|0){case 0:break t;case 2:break u}if(r=8192,A-71110>>>0<3)break t;if(r=268435520,A-71113>>>0>=15)break a;break t}if(r=268435520,A-71484>>>0>=3)break a;break t}if(r=268435520,A-72347>>>0<2)break t;if(r=64,A-72353>>>0>=2)break a;break t}if(r=268435520,A-72769>>>0<2)break t;r=(t=(0|A)==72817)>>>26|0,t=(A=(0|A)==72771)?64:t<<6;break W}if(r=64,a=134217728,A-74865>>>0<2)break t;if(a=0,A-74864>>>0>=5)break a;break t}t=(0|A)==93848?268435520:0,t=(A=(0|A)==93847)?64:t;break F}if(r=268435520,(-2&A)==92782)break t;if(a=-2147483648,(0|A)!=92917)break a;break t}if((0|A)==1748)break n;break a}if(!(1<>>0<=17&&(r=-2147483616,1<>>27|0,A<<=5;break E;case 24:r=(A=A>>>0<256)>>>1|0,A<<=31;break E;case 25:u:{Q:{T:{P:{z:{O:{X:{j:{if((0|(t=-256&A))<=12287){if((0|t)<=767){if(!t)break j;if((0|t)!=512)break u;if(A-751>>>0>=17)break X;break f}if((0|t)==768)break O;if((0|t)!=7936)break u;switch(r=4096,A-8125|0){case 0:case 2:case 3:case 4:case 16:case 17:case 18:case 32:case 33:case 34:case 48:case 49:case 50:case 64:case 65:break t;default:break u}}if((0|t)<=43775){if((0|t)==12288)break z;if((0|t)!=42752||(r=4096,(-2&A)!=42784))break u;break t}if((0|t)==43776)break P;if((0|t)==65280)break T;if(r=0,a=78,(0|t)!=127744)break u;break t}switch(A-168|0){default:r=-2147479424;j:switch(A-94|0){case 0:break t;case 2:break j;default:break u}return $=0,-2147479552;case 0:case 7:break f;case 1:case 2:case 3:case 4:case 5:case 6:case 8:case 9:case 10:case 11:case 13:case 14:case 15:break u;case 12:case 16:}break f}if((0|A)==749|A-741>>>0<7)break f;if(A-706>>>0>=4)break Q;break f}if((A=A-885|0)>>>0>16||(r=4096,!(1<>>0>=2)break u;break t}if(r=4096,(0|A)!=43867)break u;break t}switch(r=4224,A-65342|0){default:if((0|A)!=65507)break u;break;case 0:break t;case 1:break u;case 2:}break f}if(r=4096,A-722>>>0<14)break t}break a;case 26:u:{Q:{T:{P:{z:{O:{if((0|(t=-256&A))<=9471){if((0|t)<=8447){if(t)break u;break I}if((0|t)==8448)break O;if((0|t)==8704)break z;if(r=-2147483648,(0|t)!=8960)break a;break t}if((0|t)<=10495){if((0|t)==9472)break P;if((0|t)==9728)break T;if((0|t)==9984)break I;break a}if((0|t)==10496)break Q;if((0|t)==10752)break I;if(r=-2147483648,(0|t)!=11008)break a;break t}if((0|A)==8472)return $=0,67108864;if((0|A)==8596)break Z;if(r=-2147483648,A>>>0<=8591)break a;break t}if(r=-2147483640,(0|A)==8722)break t;t=-2147483648,$=(A=A-8942>>>0<4)?33554432:0;break i}if(r=-2147483648,a=130,A-9723>>>0<2)break t;t=-2147483648,$=(A=A-9725>>>0<2)?134:0;break i}if(r=-2147483648,a=128,(0|A)==9839)break t;break I}if(r=-2147483648,a=130,(-2&A)==10548)break t;t=-2147483648,$=(A=(0|A)==10626)?134217728:0;break i}if((0|t)==8192)break Ke;break a;case 27:u:{Q:{T:{P:{z:{O:{X:{j:{te:{ne:{re:{ie:{ce:{ue:{x:{oe:{ae:{K:{ge:{de:{Ie:{we:{Le:{ke:{if((0|(t=-256&A))<=12287){if((0|t)<=9727){if((0|t)<=8959){if(!t)break ke;if((0|t)!=8448)break a;switch(r=0,a=130,A-8482|0){case 7:break k;case 0:break t;case 1:case 2:case 3:case 4:case 5:case 6:case 8:case 9:case 10:case 11:break de;case 12:break we;default:break Le}}if((0|t)==8960)break ge;if((0|t)==9216)break K;if((0|t)!=9472)break a;switch(r=-2147483520,(-2&A)-9632|0){case 0:break t;case 10:break Z;default:break ae}}if((0|t)<=11007){if((0|t)==9728)break oe;if((0|t)==9984)break x;if(r=-2147483648,(0|t)!=10240)break a;break t}if((0|t)==11008)break ue;if((0|t)==11776)break ce;if((0|t)!=12032)break a;if(r=1048576,A>>>0<12246)break t;switch(r=262144,(-2&A)-12272|0){case 0:break t;case 2:break u;default:break ie}}if((0|t)<=127999){if((0|t)<=127231){if((0|t)==12288)break re;if((0|t)==12800)break ne;if((0|t)!=126976)break a;t=(0|A)==127183,r=0,$=(A=(0|A)==126980)||t?134:128;break m}if((0|t)==127232)break te;if((0|t)==127488)break j;if((0|t)!=127744)break a;if(A>>>0>=127777)break X;break Y}if((0|t)<=128767){if((0|t)==128e3)break O;if((0|t)==128256)break z;if((0|t)!=128512)break a;if((t=A-128581|0)>>>0<11)break CA;break Ne}if((0|t)==128768)break P;if((0|t)==129280)break T;if((0|t)!=129536)break a;$=128;break o}t=(0|A)==174,r=-2147483648,$=(A=(0|A)==169)||t?130:0;break m}switch(A-8616|0){case 0:break I;case 1:case 2:break Ie;default:break de}}return $=0,67108864}return $=130,-2147483520}if(r=-2147483520,A-8597>>>0<5)break t;if(A-8604>>>0<18)break U;if((t=A-8624|0)>>>0<8)break vA;break Oe}if(A>>>0<8968)break I;if((0|(t=-2&A))==8986)break l;if(A-8972>>>0<20|A-8994>>>0<6)break I;if((0|A)==9e3)break Z;if(A-9003>>>0<81)break I;if(r=-2147483648,a=128,(0|A)==9096)break t;if(A-9085>>>0<30)break I;if(r=-2147483520,a=0,(0|t)==9140)break t;switch(A-9143|0){case 0:case 25:break t;case 24:break Z}if(A-9140>>>0<40)break I;if((0|A)==9186)break t;if((t=A-9193|0)>>>0<4)break l;switch(r=-2147483648,a=134,A-9200|0){case 0:case 3:break t}if(t>>>0<11)break Z;if(a=130,A-9208>>>0<3)break t;if(a=0,A>>>0<=9186)break a;break t}if(r=-2147483648,A-9216>>>0<75||(r=33792,a=130,(0|A)==9410)||(a=0,A-9398>>>0<26))break t;if(r=17408,A-9424>>>0>=26)break a;break t}if(A-9646>>>0<8)break U;if(a=130,(0|A)==9654)break t;if((-4&A)==9660)break U;switch(A-9664|0){case 0:break t;case 6:case 7:case 10:case 11:case 15:case 16:case 17:case 18:case 19:case 34:case 36:break U}return $=0,A-9703>>>0<6?-2147483520:-2147483648}oe:switch((-16&A)-9728>>>4|0){case 0:if(A>>>0<9733)break Z;r=-2147483520,a=128;ae:switch(A-9733|0){case 0:break t;case 9:break ae;case 1:break U;default:break G}break Z;case 2:if((t=A-9760|0)>>>0<11)break yA;if(r=-2147483648,a=130,A>>>0<=9773)break G;break t;case 3:if(r=-2147483648,a=130,A-9784>>>0>=3)break G;break t;case 4:switch(r=-2147483520,a=130,A-9792|0){case 0:case 2:break t}if(r=-2147483648,a=134,A>>>0<=9799)break G;break t;case 5:if(r=-2147483648,a=134,A>>>0<9812)break t;if(a=130,(0|A)!=9823)break G;break t;case 6:if((0|A)==9734)break U;if((0|A)==9824)return $=130,-2147483520;if(r=-2147483520,a=128,A-9825>>>0<2)break t;if((t=A-9827|0)>>>0<6)break BA;break be;case 8:if(r=-2147483648,A>>>0<=9861)break G;break t;case 10:switch(r=-2147483648,a=130,A-9888|0){case 1:break l;case 0:break t}if(a=134,(-2&A)!=9898)break G;break t;case 11:if(r=-2147483648,a=130,(-2&A)==9904)break t;if(a=134,A-9917>>>0>=2)break G;break t;case 12:if((-2&A)==9924)break l;r=-2147483648,a=130;ae:switch(A-9928|0){case 0:case 7:break t;case 6:break ae;default:break G}break l;case 14:t=(0|A)==9962,r=-2147483648,$=(A=(0|A)==9961)?130:t?134:128;break m;case 13:break wA;case 9:break kA;case 15:break oe;case 7:break xA;case 1:break EA;default:break G}if((0|A)==9972|A>>>0<9970)break Z;if(r=-2147483648,a=134,A>>>0<9974||(0|A)!=9974&&(a=130,A>>>0<9977))break t;if((A=A-9977|0)>>>0<5)break IA;break G}x:{oe:{ae:{K:{ge:switch((-16&A)-9984>>>4|0){case 0:if(r=0,a=130,(0|A)==9986||(a=128,A>>>0<9989)||(a=134,(0|A)==9989))break x;switch(a=150,(-2&A)-9994|0){case 0:break x;case 2:break ae}if(a=130,A-9992>>>0<6)break x;t=(0|A)==9999,r=0,a=(A=(0|A)==9998)?128:t?130:0;break x;case 1:if(r=0,a=128,A>>>0<10002)break x;if((A=A-10002|0)>>>0>11||(a=130,!(1<>>0<2)break x;a=(A=A-10069&-3)?0:536871046;break x;case 6:if((t=A-10082|0)>>>0<3)break oe;if(r=0,a=128,A>>>0<=10084)break K;break x;case 9:if(r=0,a=134,A-10133>>>0>=3)break K;break x;case 10:if(r=0,a=130,(0|A)!=10145)break K;break x;case 11:t=(0|A)==10175,r=0,a=(A=(0|A)==10160)||t?134:0;break x;case 3:break ge;default:break K}if(r=0,a=130,A-10035>>>0<2)break x}r=0,a=0;break x}a=146;break x}r=e[(A=83992+(t<<3)|0)>>2],a=e[A+4>>2]}return $=a,-2147483648|r}if(r=-2147483648,a=130,A-11013>>>0<3||(a=134,A-11035>>>0<2))break t;t=(0|A)==11093,r=-2147483648,$=(A=(0|A)==11088)||t?134:0;break m}if(A-11904>>>0>=26)break Q;return $=0,1048576}if(A-12276>>>0>=8)break a;break t}if((A=A-12306|0)>>>0>14||(r=-2147483648,!(1<>>0<26||A-127312>>>0<26)return $=0,33792;if((t=A-127344|0)>>>0<=15&&(r=33792,a=130,1<>>0<26))break t;if((0|A)==127374)break Y;if(r=0,a=134,A-127377>>>0<10)break t;if(a=102,A>>>0<=127461)break a;break t}r=0,a=134;j:{switch(A-127489|0){case 0:case 25:break t;case 1:break S;case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:break j}switch(A-127535|0){case 0:break t;case 8:break S;default:break j}}if((-2&A)==127568|A-127538>>>0<9)break t;if(a=128,A>>>0<=127583)break a;break t}if((0|A)==127777)break S;if(A-127789>>>0<9|A-127799>>>0<70)break Y;if((0|A)==127877)break q;if(A-127870>>>0<22)break Y;if(A-127780>>>0<112)break S;switch(r=0,a=130,A-127894|0){case 44:case 45:case 46:case 49:break q;case 0:case 1:case 3:case 4:case 5:break t}if(A-127904>>>0<42)break Y;if(a=150,(0|A)==127946||(a=146,A-127947>>>0<2))break t;if(A-127951>>>0<5)break Y;if(a=134,A-127968>>>0<17||(a=130,A-127902>>>0<83))break t;if((t=A-127987|0)>>>0<5)break bA;break Ze}switch(r=0,a=130,A-128063|0){case 0:case 2:break t}if((0|A)==128124|(-5&A)-128129>>>0<3|(0|A)==128110|A-128112>>>0<9||(-2&A)==128066|A-128102>>>0<4|A-128070>>>0<11)break q;switch(A-128253|0){case 1:$=128;break o;case 0:break S}if(a=150,(0|A)==128170)break t;break Y}if(A>>>0<128318)break Y;if(r=0,A>>>0<128326)break t;if(A-128329>>>0<2)break S;if(A-128331>>>0<4|A-128336>>>0<24)break Y;if(A-128367>>>0<2)break S;if((-2&A)==128372){$=146;break o}if(A-128371>>>0<7)break S;if(a=150,!(t=A-128378|0))break t;if((0|t)==13|A-128394>>>0<4)break S;if(a=146,(0|A)==128400||(a=150,A-128405>>>0<2))break t;switch(a=134,A-128420|0){case 0:break t;case 1:case 4:case 13:case 14:case 24:case 30:case 31:case 32:case 45:case 46:case 47:case 56:case 57:case 58:case 61:case 63:case 68:case 75:case 79:case 86:break S}A=A>>>0>128506,t=0;break p}if(r=0,a=128,A-128981>>>0>=4)break a;break t}if(A>>>0<129292)break a;if(A-129328>>>0<10)break q;switch(r=0,a=150,A-129304|0){case 35:break a;case 0:case 1:case 2:case 3:case 4:case 6:case 7:case 14:break t}if(A-129341>>>0<2)break q;if(a=0,(0|A)==129350||(a=198,(-4&A)==129456))break t;if((t=A-129461|0)>>>0<5)break mA;break hA}if(r=1048576,A-11931>>>0<89)break t;break a}return $=0,524288;case 29:return $=16777216,1073741825;case 28:break t;case 30:break jA;default:break a}return $=0,(0|A)==32?1073741825:1}if(!(1079>>>t&1))break fe;t=e[(A=81344+(t<<3)|0)>>2];break h}if(557553>>>t&1)break k;if((-4&A)!=8508)break Me;break t}if(!(207>>>t&1))break me;break d}if(r=1024,!(1017>>>t&1))break Ge;break t}if(r=1024,!(32895>>>t&1))break De;break t}if(r=1024,!(55>>>t&1))break Qe;break t}if(r=1024,!(3087>>>t&1))break Pe;break t}if((A=A-71453|0)>>>0>=15)break a;t=e[(A=82312+(A<<3)|0)>>2];break h}if(!(49023>>>t&1))break ze;t=e[(A=82432+(t<<3)|0)>>2];break h}if(!(514623>>>t&1))break _;t=e[(A=82664+(t<<3)|0)>>2];break h}t=e[(A=83160+(t<<3)|0)>>2];break h}if(r=268435520,!(197>>>t&1))break Fe;break t}t=e[(A=83208+(t<<3)|0)>>2];break h}if((A=A-6145|0)>>>0>=10)break a;t=e[(A=83296+(A<<3)|0)>>2];break h}if(!(1077711>>>t&1))break Ae;t=e[(A=83376+(t<<3)|0)>>2];break h}if(!(159>>>t&1))break Ce;t=e[(A=83544+(t<<3)|0)>>2];break h}if((A=A-121479|0)>>>0>=4)break a;t=e[(A=83608+(A<<3)|0)>>2];break h}if(!(195>>>t&1))break Oe;break U}if((A=A-9745|0)>>>0>=13)break G;t=e[(A=83640+(A<<3)|0)>>2];break h}if(1101>>>t&1)break Z;if(r=-2147483648,a=130,A>>>0<=9773)break G;break t}if(!(45>>>t&1))break be;t=e[(A=83744+(t<<3)|0)>>2];break h}if((A=A-9851|0)>>>0>=5)break G;t=e[(A=83792+(A<<3)|0)>>2];break h}if((A=A-9874|0)>>>0>=11)break G;t=e[(A=83832+(A<<3)|0)>>2];break h}if((A=A-9937|0)>>>0>=4)break G;t=e[(A=83920+(A<<3)|0)>>2];break h}t=e[(A=83952+(A<<3)|0)>>2];break h}if(!(23>>>t&1))break Ze;t=e[(A=84016+(t<<3)|0)>>2];break h}if(r=0,a=150,!(1991>>>t&1))break Ne;break t}if(a=150,27>>>t&1)break t}t=0,$=(A=A-129489>>>0<13)?150:134;break i}A=A-127992>>>0<3,t=0;break p}if(A-9837>>>0<2)break t}$=128;break g}if(A-8623>>>0<13)break I;if(A-8636>>>0<18)break U;if((t=A-8656|0)>>>0<22&&(a=0,3157995>>>t&1)||(r=-2147483648,a=0,A-8661>>>0<31))break t;break a}if(A>>>0<128592)break Y;if(r=0,a=0,A>>>0<128640)break t;if(!((t=A-128675|0)>>>0>29|!(1<>>0<128710)break Y;if(a=150,(0|A)==128716)break t;if(A-128715>>>0<5)break S;if(A-128720>>>0<3)break Y;if(!((t=A-128736|0)>>>0>=10|!(575>>>t&1)))break S;if(a=134,A-128747>>>0<2)break t;switch(a=130,A-128752|0){case 0:case 3:break t}A=A-128756>>>0<6,t=0;break p}switch(r=-2147483648,A-8260|0){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:break a;case 0:case 14:break t}if((0|(A=A-8315|0))!=16&&A)break a;return $=0,8}if(r=268435520,a=1073741824,(0|A)!=69955)break a;break t}if(A-8266>>>0<8)break I;if(r=-2147483640,(0|A)==8275)break t;if(r=-2147483648,A-8277>>>0>=10)break a;break t}$=542113792;break g}if(r=-2147483648,a=0,A-65093>>>0<2||(r=64,a=268435456,(0|n)==65104))break t;r=268435520,a=-2147483648;Ce:switch(A-65106|0){case 3:$=134217728;break A;case 5:$=536870912;break s;case 4:break c;case 2:break r;case 0:break t;case 15:case 22:break Ce;default:break a}break k}if((0|A)==2142)break se;if(r=64,A-2096>>>0<15)break t;break a}if(r=1024,A-72850>>>0<22)break t;if((A=A-72874|0)>>>0>=13)break a;t=e[(A=82560+(A<<3)|0)>>2];break h}if(r=4096,A-71103>>>0<2)break t;if(r=1024,(-2&A)!=71132)break a;break t}if((0|A)==70726)break f;if(r=4096,(-2&A)!=70850)break a;break t}if(r=4096,A-68325>>>0>=2)break a;break t}if((0|A)==6109)break f;if(r=4096,A-6089>>>0>=11)break a;break t}switch(A-3959|0){case 0:case 2:return $=0,8389632}if((0|t)==3968|A-3953>>>0<14)break d;if(!((t=A-3970|0)>>>0>=6|!(55>>>t&1)))break f;if(A-3981>>>0<11)break d;if(r=1024,A-3993>>>0<36)break t;if(r=4096,(0|A)!=4038)break a;break t}if(A-3655>>>0<6)break f;if(!((t=A-3761|0)>>>0>11|!(1<>>0<5)break t;if(r=1024,(0|A)!=3789)break a;break t}if(A-1770>>>0<3)break t;if(r=1024,(0|A)!=1773)break a;break t}if((-2&A)==73028)break f;switch(r=1024,A-73104|0){default:if((0|A)!=73031)break a;break t;case 2:case 3:case 4:case 6:break a;case 0:case 1:case 5:break t;case 7:}break f}if((A=A-8492|0)>>>0>=30)break a;t=e[(A=81704+(A<<3)|0)>>2];break h}r=0;break N}a=(t=(-3&A)==43712)>>>20|0,r=t<<12}if((0|(s=-65536&A))==131072)break Ve;if((0|s)==65536)break he;if(t=r,n=a,s)break pe}if(A-13312>>>0<6582||A-19968>>>0<20976)break e;if(s=2048,A-63744>>>0<366)return $=n,2048|t;if(r=t,a=n,A-64112>>>0>=106)break pe;break R}if(s=2099200,A-183984>>>0<7473|A-178208>>>0<5762|A-177984>>>0<222|A-131072>>>0<42711||A-173824>>>0<4149||(s=2048,A-194560>>>0<542))break R;break pe}if(s=2048,A-110960>>>0<396|A-94208>>>0<6125|A-100352>>>0<755)break R}s=0}return $=a,r|s}if((-4&A)==8508)break k;if(r=128,!(A-8517>>>0<3)&&(r=16777344,(-2&A)!=8520))break a}$=a;break m}t=(A=A>>>0>131069)?65536:0,$=A?0:128;break i}if((0|A)==11776)break I}$=0;break o}$=0;break g}return $=0,4194304}return $=0,128}return $=0,16777344}return $=0,4096}return $=0,1024}return $=0,-2147483520}return $=0,A-10214>>>0<10?-2147483520:-2147483648}$=0;break s}$=0;break A}$=130;break o}$=130;break g}$=134;break o}return $=150,0}$=0;break i}$=A?0:a;break i}return $=t,A}return 131072}return $=0,16777216}$=A?0:r;break i}return $=a,A}return $=r,A}$=A?0:t;break m}return $=0,8192}$=e[A+4>>2];break i}$=A?8388608:0;break i}return r}return $=0,-2147483616}$=A?134:128}return t}$=134}return-2147483648}return 0}$=1073741824;break s}$=-2147483648}return 268435520}$=67108864}return 64}return $=n,2099200|t}function qe(A){var t,r=0,a=0,s=0,n=0,o=0;(t=Ct(8244))&&(e[t+328>>2]=2,u[132848]=0,e[t+684>>2]=0,e[t+688>>2]=0,e[t+320>>2]=0,e[t+324>>2]=0,u[t+268|0]=0,u[t+228|0]=0,e[t+8216>>2]=0,e[t+8220>>2]=0,e[t+224>>2]=104944,e[t+216>>2]=383,e[t+220>>2]=96,jA(t+344|0,0,292),e[t+8196>>2]=0,e[(r=t+8188|0)>>2]=0,e[r+4>>2]=0,e[t+8180>>2]=0,e[t+8184>>2]=0,u[t+460|0]=22,u[t+461|0]=129,u[t+466|0]=38,u[t+462|0]=38,u[t+463|0]=36,u[t+464|0]=22,u[t+465|0]=224,u[t+456|0]=22,u[t+457|0]=22,u[t+458|0]=44,u[t+459|0]=22,u[t+454|0]=46,u[t+455|0]=129,u[t+446|0]=22,u[t+447|0]=38,u[t+448|0]=28,u[t+449|0]=193,u[t+450|0]=38,u[t+451|0]=22,u[t+452|0]=46,u[t+453|0]=46,u[t+441|0]=129,u[t+442|0]=38,u[t+443|0]=22,u[t+444|0]=38,u[t+445|0]=193,e[t+332>>2]=104912,e[t+336>>2]=104916,e[t+340>>2]=105232,u[t+296|0]=18,u[t+297|0]=18,b[t+304>>1]=182,b[t+306>>1]=140,u[t+298|0]=20,b[t+308>>1]=220,b[t+310>>1]=220,b[t+312>>1]=220,u[t+299|0]=20,u[t+300|0]=20,b[t+314>>1]=240,u[t+301|0]=22,b[t+316>>1]=260,b[t+318>>1]=280,u[t+302|0]=22,u[t+303|0]=20,r=jA(t,0,212),e[r+200>>2]=20,e[r+192>>2]=25966,e[r+196>>2]=500,e[r+80>>2]=95,e[r+16>>2]=1,e[r+20>>2]=3,e[r+8>>2]=2,e[r+52>>2]=19,u[r+168|0]=3,e[r+92>>2]=2,e[r+72>>2]=4,e[r+40>>2]=115,e[r+44>>2]=95,e[r+140>>2]=105244,Qi(r,201),e[r+120>>2]=2,e[r+124>>2]=44,e[r+164>>2]=100,e[r+128>>2]=46,e[r+132>>2]=14,e[r+112>>2]=1227133512,e[r+116>>2]=49,e[r+104>>2]=1,a=e[26313],e[r+636>>2]=e[26312],e[r+640>>2]=a,a=e[26315],e[r+644>>2]=e[26314],e[r+648>>2]=a,a=e[26317],e[r+652>>2]=e[26316],e[r+656>>2]=a,a=e[26319],e[r+660>>2]=e[26318],e[r+664>>2]=a,a=e[26321],e[r+668>>2]=e[26320],e[r+672>>2]=a,a=e[26323],e[r+676>>2]=e[26322],e[r+680>>2]=a,a=l[104928]|l[104929]<<8,u[r+160|0]=a,u[r+161|0]=a>>>8,a=l[104924]|l[104925]<<8|l[104926]<<16|l[104927]<<24,u[r+156|0]=a,u[r+157|0]=a>>>8,u[r+158|0]=a>>>16,u[r+159|0]=a>>>24),s=qA(t+228|0,A),r=0;e:{A:if(a=l[0|A]){for(;r=(a<<24>>24)+(r<<8)|0,a=l[0|(A=A+1|0)];);r:{s:{n:{c:{o:{g:{l:{i:{p:{C:{m:{b:{h:{v:{w:{E:{L:{W:{V:{M:{B:{D:{F:{q:{Y:{Z:{S:{se:{H:{Ee:{U:{d:{f:{$:{k:{ee:{I:{a:{We:{J:{t:{fe:{R:{pe:{he:{Ve:{le:{N:{ve:{y:{Me:{_:{me:{Ge:{je:{De:{Qe:{Te:{Pe:{ze:{Fe:{Ce:{Ue:{Ae:{Se:{Ke:{Ne:{Oe:{G:{be:{if((0|r)<=28008){if((0|r)<=26464){if((0|r)<=25696){switch(r-24934|0){case 20:break i;case 1:case 2:case 3:case 4:case 5:case 6:case 9:case 10:case 11:case 14:case 15:case 16:case 17:case 18:case 19:break A;case 8:break _;case 12:break Fe;case 7:break Ce;case 0:break Ue;case 13:break be}switch(r-25189|0){case 1:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 11:case 12:case 13:break A;case 14:break fe;case 2:break Pe;case 0:break ze;case 9:break be}switch(r-25441|0){case 18:break E;case 0:break _;case 24:break Qe;default:break A}}switch(r-25964|0){case 1:case 4:case 5:case 6:break A;case 8:break ve;case 9:break Me;case 7:break _;case 3:break me;case 2:break Ge;case 0:break Oe}switch(r-26209|0){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:break A;case 17:break le;case 8:break N;case 0:break y}switch(r-25697|0){case 4:break je;case 0:break De;default:break A}}if((0|r)<=27488){switch(r-26729|0){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 13:case 14:case 15:break A;case 16:break We;case 12:break J;case 11:break t;case 9:break fe;case 0:break R}switch(r-26977|0){case 1:case 2:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 15:case 16:case 17:break A;case 19:break k;case 18:break ee;case 3:break I;case 14:break a;case 0:break _}switch(r-26465|0){case 20:break R;case 13:break pe;case 0:case 3:break he;default:break A}}switch(r-27489|0){case 13:break p;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 12:case 15:case 16:case 17:case 18:case 19:case 21:case 22:case 23:break A;case 24:break se;case 20:break H;case 14:break Ee;case 11:break U;case 10:break d;case 0:break f}switch(r-27745|0){case 19:break Z;case 0:break S;case 21:break Ke;default:break A}}if((0|r)<=29792){if((0|r)<=28768){switch(r-28009|0){case 3:break p;case 11:break q;case 2:break Y;case 1:case 4:case 5:case 6:case 7:case 8:case 12:case 13:case 14:case 15:break A;case 10:break I;case 9:break R;case 0:case 16:break Ae}switch(r-28258|0){case 0:break D;case 10:break F;case 1:case 2:case 4:case 5:case 6:case 7:case 8:case 9:break A;case 3:break R}switch(r-28525|0){case 0:break B;case 5:break R;default:break A}}if((0|r)<=29539){switch(r-28769|0){case 19:break V;case 11:break M;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 20:case 21:case 22:case 23:break A;case 0:break R;case 24:break Ae}switch(r-29295|0){case 6:break L;case 0:break W;case 1:case 2:case 3:case 4:case 5:break A}if((0|r)==29045)break Ae;break A}switch(r-29540|0){case 19:break C;case 18:break m;case 13:break b;case 8:break v;case 5:break w;case 7:break E;case 14:break fe;case 0:break o;default:break A}}if((0|r)>6514801)break G;if((0|r)<=30058)switch(r-29793|0){case 19:break l;case 17:break i;case 0:case 4:break p;case 13:break C;case 7:break Ae;default:break A}if((0|r)<=30312)switch(r-30059|0){case 0:break g;case 15:break Ae;case 7:break o;default:break A}if((0|r)==30313)break c;if((0|r)==31336)break n;if((0|r)!=6451321)break A}if(e[t+296>>2]=303174162,e[t+300>>2]=370545684,e[t+600>>2]=2432,e[t+8>>2]=0,e[t+12>>2]=65540,e[t+100>>2]=e[t+96>>2],A=e[25889],e[t+304>>2]=e[25888],e[t+308>>2]=A,A=e[25891],e[t+312>>2]=e[25890],e[t+316>>2]=A,gs(t),u[t+345|0]=2|l[t+345|0],u[t+406|0]=16|l[t+406|0],u[t+407|0]=16|l[t+407|0],u[t+408|0]=16|l[t+408|0],u[t+409|0]=16|l[t+409|0],u[t+410|0]=16|l[t+410|0],u[t+411|0]=16|l[t+411|0],u[t+412|0]=16|l[t+412|0],u[t+413|0]=16|l[t+413|0],u[t+414|0]=16|l[t+414|0],u[t+415|0]=16|l[t+415|0],u[t+416|0]=16|l[t+416|0],u[t+417|0]=16|l[t+417|0],u[t+418|0]=16|l[t+418|0],u[t+419|0]=16|l[t+419|0],u[t+420|0]=16|l[t+420|0],u[t+456|0]=4|l[t+456|0],u[t+457|0]=4|l[t+457|0],e[t+112>>2]=613567144,e[t+104>>2]=16,(0|r)!=6451321)break e;e[t+104>>2]=1,e[t+108>>2]=512,r=6451321;break e}if((0|r)>7364975)break Se;if((0|r)>6840682)break Ne;if((0|r)==6514802)break Te;if((0|r)==6516078)break n;if((0|r)!=6779491)break A}if(e[t+600>>2]=896,e[t+328>>2]=8,e[t+296>>2]=336858127,e[t+300>>2]=353768980,e[t+332>>2]=103632,A=e[25905],e[t+304>>2]=e[25904],e[t+308>>2]=A,A=e[25907],e[t+312>>2]=e[25906],e[t+316>>2]=A,jA(t+344|0,0,256),u[t+388|0]=129,u[t+389|0]=129,u[t+390|0]=129,u[t+391|0]=129,u[t+420|0]=129,u[t+421|0]=129,u[t+422|0]=129,u[t+423|0]=129,u[t+360|0]=129,u[t+392|0]=129,u[t+393|0]=129,u[t+417|0]=129,u[t+418|0]=129,u[t+419|0]=129,u[t+420|0]=129,u[t+408|0]=6,u[t+409|0]=4,u[t+410|0]=6,u[t+411|0]=6,u[t+412|0]=6,u[t+413|0]=193,u[t+414|0]=6,u[t+415|0]=6,u[t+406|0]=6,u[t+407|0]=129,u[t+398|0]=4,u[t+399|0]=193,u[t+400|0]=6,u[t+401|0]=193,u[t+402|0]=6,u[t+403|0]=4,u[t+404|0]=4,u[t+405|0]=4,u[t+394|0]=4,u[t+395|0]=4,u[t+396|0]=4,u[t+397|0]=193,e[t+44>>2]=130,e[t+8>>2]=2,e[t+12>>2]=6,e[t+16>>2]=0,e[t+20>>2]=2,e[t+104>>2]=264,e[t+108>>2]=6146,u[t+391|0]=193,u[t+389|0]=193,u[t+390|0]=193,u[t+421|0]=193,e[t+100>>2]=e[t+96>>2],u[t+416|0]=4|l[t+416|0],(0|r)!=6779491)break e;e[t+40>>2]=1,r=6779491;break e}if((0|r)==6840683)break Ve;if((0|r)==6972015)break $;if((0|r)!=7107687)break A}e[t+296>>2]=134875662,e[t+300>>2]=252968960,e[t+328>>2]=5,u[t+169|0]=1,e[t+132>>2]=33,e[t+104>>2]=99336,e[t+8>>2]=0,e[t+12>>2]=262182,A=e[26069],e[t+304>>2]=e[26068],e[t+308>>2]=A,A=e[26071],e[t+312>>2]=e[26070],e[t+316>>2]=A;break e}if((0|r)<=7564649){if((0|r)==7364976)break _;if((0|r)==7435619)break Ae;if((0|r)!=7563374)break A;e[t+148>>2]=1,e[t+112>>2]=24,e[t+104>>2]=1,e[t+100>>2]=e[t+96>>2],r=7563374;break e}if((0|r)==7564650)break h;if((0|r)==7959909)break n;if((0|r)!=1885958500)break A}e[t+104>>2]=0;break e}e[t+4>>2]=48,e[t+8>>2]=0,e[t+144>>2]=1,e[t+104>>2]=16779472,e[t+32>>2]=1,e[t+24>>2]=1,A=e[25881],e[t+304>>2]=e[25880],e[t+308>>2]=A,A=e[25883],e[t+312>>2]=e[25882],e[t+316>>2]=A,u[t+465|0]=64&l[t+465|0]|129,r=24934;break e}e[t+600>>2]=4608,e[t+296>>2]=303173650,e[t+300>>2]=303174162,e[t+8>>2]=0,e[t+12>>2]=36,e[t+104>>2]=1024,e[t+100>>2]=e[t+96>>2],e[t+40>>2]=1,A=e[25865],e[t+304>>2]=e[25864],e[t+308>>2]=A,A=e[25867],e[t+312>>2]=e[25866],e[t+316>>2]=A,r=24941;break e}for(e[t+600>>2]=1536,e[t+224>>2]=0,e[t+216>>2]=1631,e[t+220>>2]=1536,e[t+104>>2]=2884720,e[t+328>>2]=7,e[t+40>>2]=1,J=r=J-16|0,e[r+12>>2]=-1,A=89684;s=Gt(r+12|0,A),(0|(a=e[r+12>>2]))>=33&&(u[0|(n=(t+a|0)-1192|0)]=1|l[0|n]),A=A+s|0,a;);for(e[r+12>>2]=-1,A=89743;s=Gt(r+12|0,A),(0|(a=e[r+12>>2]))>=33&&(u[0|(n=(t+a|0)-1192|0)]=2|l[0|n]),A=A+s|0,a;);for(e[r+12>>2]=-1,A=89795;s=Gt(r+12|0,A),(0|(a=e[r+12>>2]))>=33&&(u[0|(n=(t+a|0)-1192|0)]=4|l[0|n]),A=A+s|0,a;);for(e[r+12>>2]=-1,A=89941;s=Gt(r+12|0,A),(0|(a=e[r+12>>2]))>=33&&(u[0|(n=(t+a|0)-1192|0)]=16|l[0|n]),A=A+s|0,a;);for(e[r+12>>2]=-1,A=90045;s=Gt(r+12|0,A),(0|(a=e[r+12>>2]))>=33&&(u[0|(n=(t+a|0)-1192|0)]=32|l[0|n]),A=A+s|0,a;);for(e[r+12>>2]=-1,A=90045;s=Gt(r+12|0,A),(0|(a=e[r+12>>2]))>=33&&(u[0|(n=(t+a|0)-1192|0)]=8|l[0|n]),A=A+s|0,a;);for(e[r+12>>2]=-1,A=90045;s=Gt(r+12|0,A),(0|(a=e[r+12>>2]))>=33&&(u[0|(n=(t+a|0)-1192|0)]=64|l[0|n]),A=A+s|0,a;);J=r+16|0,r=24946;break e}e[t+600>>2]=1056,e[t+12>>2]=34,e[t+216>>2]=1118,e[t+220>>2]=1072,jA(t+344|0,0,256),u[t+406|0]=4,u[t+366|0]=4,u[t+367|0]=4,u[t+369|0]=4,u[t+370|0]=4,u[t+371|0]=4,u[t+372|0]=4,u[t+361|0]=4,u[t+362|0]=4,u[t+363|0]=4,u[t+364|0]=4,u[t+373|0]=4,u[t+380|0]=4,u[t+381|0]=4,u[t+382|0]=4,u[t+383|0]=4,u[t+375|0]=4,u[t+376|0]=4,u[t+377|0]=4,u[t+378|0]=4,u[t+384|0]=4,u[t+360|0]=129,e[t+328>>2]=6,e[t+296>>2]=134744588,e[t+300>>2]=286261248,e[t+40>>2]=1,e[t+8>>2]=0,e[t+104>>2]=1032,e[t+108>>2]=66,A=e[25885],e[t+304>>2]=e[25884],e[t+308>>2]=A,A=e[25887],e[t+312>>2]=e[25886],e[t+316>>2]=A,r=25189;break e}xs(t),e[t+328>>2]=6,e[t+56>>2]=2,e[t+36>>2]=263,e[t+40>>2]=1074,e[t+124>>2]=32,e[t+104>>2]=184554728,e[t+8>>2]=2,u[t+386|0]=64&l[t+386|0]|129,r=25191;break e}e[t+12>>2]=262182,e[t+40>>2]=1,r=6514802;break e}e[t+328>>2]=14,e[t+296>>2]=303173393,e[t+300>>2]=336986112,e[t+104>>2]=1024,e[t+16>>2]=0,e[t+20>>2]=2,e[t+8>>2]=2,e[t+12>>2]=22,e[t+44>>2]=120,A=e[25893],e[t+304>>2]=e[25892],e[t+308>>2]=A,A=e[25895],e[t+312>>2]=e[25894],e[t+316>>2]=A,u[t+463|0]=64&l[t+463|0]|129,u[t+465|0]=64&l[t+465|0]|129,r=25465;break e}e[t+8>>2]=0,e[t+104>>2]=184618072,e[t+32>>2]=1,A=e[26101],e[t+304>>2]=e[26100],e[t+308>>2]=A,A=e[26103],e[t+312>>2]=e[26102],e[t+316>>2]=A,u[t+465|0]=64&l[t+465|0]|129,r=25697;break e}e[t+296>>2]=336860180,e[t+300>>2]=336991764,e[t+8>>2]=0,e[t+104>>2]=16846872,e[t>>2]=8,e[t+4>>2]=48,e[t+80>>2]=87,e[t+32>>2]=1,e[t+36>>2]=256,e[t+40>>2]=2,A=e[25897],e[t+304>>2]=e[25896],e[t+308>>2]=A,A=e[25899],e[t+312>>2]=e[25898],e[t+316>>2]=A,u[t+465|0]=64&l[t+465|0]|129,r=25701;break e}e[t+132>>2]=33,e[t+104>>2]=16779328,e[t+8>>2]=0,e[t+12>>2]=8,e[t+204>>2]=101,e[t+60>>2]=2,e[t+40>>2]=2,A=e[25901],e[t+304>>2]=e[25900],e[t+308>>2]=A,A=e[25903],e[t+312>>2]=e[25902],e[t+316>>2]=A,u[t+441|0]=64|l[t+441|0],u[t+445|0]=64|l[t+445|0],u[t+449|0]=64|l[t+449|0],u[t+455|0]=64|l[t+455|0],u[t+461|0]=64|l[t+461|0],u[t+465|0]=64|l[t+465|0],r=25966;break e}e[t+328>>2]=4,e[t+296>>2]=336858640,e[t+300>>2]=353768980,e[t+104>>2]=16782344,e[t+20>>2]=2,e[t+12>>2]=22,e[t+4>>2]=2,e[t+8>>2]=2,e[t+332>>2]=103640,A=e[25997],e[t+304>>2]=e[25996],e[t+308>>2]=A,A=e[25999],e[t+312>>2]=e[25998],e[t+316>>2]=A,r=25967;break e}e[t+296>>2]=269422096,e[t+300>>2]=370545684,e[t+104>>2]=86017320,e[t+108>>2]=6144,e[t+16>>2]=0,e[t+20>>2]=2,e[t+8>>2]=2,e[t+12>>2]=534,e[t+100>>2]=e[t+96>>2],e[t+44>>2]=120,A=e[25913],e[t+304>>2]=e[25912],e[t+308>>2]=A,A=e[25915],e[t+312>>2]=e[25914],e[t+316>>2]=A;_:{me:{if((0|r)<=26976){if((0|r)==24942)break me;if((0|r)!=25441)break _;e[t+12>>2]=566,e[t+336>>2]=103664,r=25441;break e}if((0|r)!=26977){if((0|r)!=7364976)break _;e[t+8>>2]=3,e[t+12>>2]=310,r=7364976;break e}e[t+104>>2]=85984264,r=26977;break e}e[t+104>>2]=153093416,e[t+108>>2]=2048,e[t+140>>2]=103676,r=24942;break e}e[t+40>>2]=2;break e}e[t+296>>2]=303173648,e[t+300>>2]=303174162,e[t+104>>2]=3147080,e[t+12>>2]=65792,e[t+84>>2]=1,A=e[25921],e[t+304>>2]=e[25920],e[t+308>>2]=A,A=e[25923],e[t+312>>2]=e[25922],e[t+316>>2]=A,r=25973;break e}e[t+600>>2]=1536,e[t+216>>2]=1740,e[t+220>>2]=1568,e[t+104>>2]=96,e[t+224>>2]=103696,e[t+340>>2]=103872,e[t+40>>2]=1,r=26209;break e}e[t+328>>2]=5}e[t+104>>2]=86024,e[t+164>>2]=130,u[t+465|0]=64&l[t+465|0]|129;break e}e[t+296>>2]=303173650,e[t+300>>2]=303174162,e[t+8>>2]=3,e[t+12>>2]=36,e[t+144>>2]=2,e[t+104>>2]=118658312,e[t+28>>2]=1,e[t+100>>2]=e[t+96>>2],A=e[25865],e[t+304>>2]=e[25864],e[t+308>>2]=A,A=e[25867],e[t+312>>2]=e[25866],e[t+316>>2]=A,u[t+465|0]=64&l[t+465|0]|129,r=26226;break e}b[t+170>>1]=257,e[t+148>>2]=1,e[t+12>>2]=2,r=6840683;break e}e[t+144>>2]=2,e[t+104>>2]=2098176,e[t+8>>2]=0,e[t+12>>2]=32,e[t+40>>2]=3,e[t+28>>2]=1;break e}e[t+8>>2]=3,e[t+100>>2]=e[t+96>>2],r=26478;break e}e[t+328>>2]=18,e[t+296>>2]=320081425,e[t+300>>2]=353768980,e[t+600>>2]=2304,e[t+112>>2]=84648,e[t+104>>2]=16,e[t+8>>2]=6,e[t+12>>2]=65540,e[t+100>>2]=e[t+96>>2],A=e[25973],e[t+304>>2]=e[25972],e[t+308>>2]=A,A=e[25975],e[t+312>>2]=e[25974],e[t+316>>2]=A;R:{pe:{he:{if((0|r)<=28529){if((0|r)==26485)break he;if((0|r)!=28261)break R;A=e[25861],e[t+304>>2]=e[25860],e[t+308>>2]=A,A=e[25863],e[t+312>>2]=e[25862],e[t+316>>2]=A,e[t+296>>2]=320017171,e[t+300>>2]=320017171,e[t+132>>2]=22,e[t+112>>2]=-1431655768,e[t+108>>2]=32768|e[t+108>>2],gs(t);break e}if((0|r)==28530)break pe;if((0|r)!=28769)break R;e[t+600>>2]=2560,gs(t);break e}A=e[25861],e[t+304>>2]=e[25860],e[t+308>>2]=A,A=e[25863],e[t+312>>2]=e[25862],e[t+316>>2]=A,e[t+600>>2]=2688,e[t+296>>2]=320017171,e[t+300>>2]=320017171,e[t+8>>2]=2,gs(t);break e}e[t+600>>2]=2816}gs(t);break e}u[0|s]=104,u[s+1|0]=98,u[s+2|0]=115,u[s+3|0]=0,(0|r)!=29554?(A=e[26093],e[t+304>>2]=e[26092],e[t+308>>2]=A,A=e[26095],e[t+312>>2]=e[26094],e[t+316>>2]=A):(A=e[25977],e[t+304>>2]=e[25976],e[t+308>>2]=A,A=e[25979],e[t+312>>2]=e[25978],e[t+316>>2]=A),e[t+328>>2]=3,e[t+296>>2]=336859409,e[t+300>>2]=353768980,b[t+168>>1]=261,e[t+8>>2]=0,e[t+12>>2]=16,e[t+144>>2]=1,e[t+184>>2]=1056,e[t+104>>2]=33572172,e[t+108>>2]=330,e[t+36>>2]=3,u[t+465|0]=64&l[t+465|0]|129,u[t+458|0]=64&l[t+458|0]|129;break e}e[t+104>>2]=17990912,e[t+8>>2]=3,e[t+12>>2]=36,r=26740;break e}e[t+328>>2]=3,e[t+296>>2]=320016657,e[t+300>>2]=353768980,e[t+124>>2]=32,e[t+128>>2]=44,e[t+104>>2]=186758144,e[t+12>>2]=1081398,e[t+16>>2]=2,e[t+4>>2]=32,e[t+8>>2]=0,e[t+116>>2]=899,e[t+120>>2]=1,u[t+169|0]=1,e[t+76>>2]=2,A=e[25981],e[t+304>>2]=e[25980],e[t+308>>2]=A,A=e[25983],e[t+312>>2]=e[25982],e[t+316>>2]=A,u[t+465|0]=64&l[t+465|0]|129,Qi(t,3),r=26741;break e}for(e[t+600>>2]=1328,e[t+8>>2]=3,A=e[25985],e[t+304>>2]=e[25984],e[t+308>>2]=A,A=e[25987],e[t+312>>2]=e[25986],e[t+316>>2]=A,s=jA(t+344|0,0,256),u[t+429|0]=129,u[t+416|0]=129,u[t+403|0]=129,u[t+399|0]=129,u[t+400|0]=129,u[t+397|0]=129,u[t+393|0]=129,a=103952,n=50,o=50;u[0|(A=s+o|0)]=2|l[0|A],A=s+l[a+1|0]|0,u[0|A]=2|l[0|A],A=s+l[a+2|0]|0,u[0|A]=2|l[0|A],o=l[0|(a=a+3|0)],A=103952,(0|a)!=103982;);for(a=t+344|0;u[0|(s=a+n|0)]=4|l[0|s],s=a+l[A+1|0]|0,u[0|s]=4|l[0|s],s=a+l[A+2|0]|0,u[0|s]=4|l[0|s],n=l[0|(A=A+3|0)],(0|A)!=103982;);u[t+168|0]=6,e[t+104>>2]=5128,u[t+413|0]=4|l[t+413|0];break e}e[t+328>>2]=4,e[t+296>>2]=336858640,e[t+300>>2]=353768980,e[t+104>>2]=16782440,e[t+20>>2]=2,e[t+12>>2]=22,e[t+4>>2]=2,e[t+8>>2]=2,e[t+332>>2]=104e3,A=e[25997],e[t+304>>2]=e[25996],e[t+308>>2]=A,A=e[25999],e[t+312>>2]=e[25998],e[t+316>>2]=A,r=26991;break e}e[t+296>>2]=303174160,e[t+300>>2]=353768980,e[t+104>>2]=16781320,e[t+144>>2]=2,e[t+8>>2]=2,e[t+12>>2]=22,A=e[26005],e[t+304>>2]=e[26004],e[t+308>>2]=A,A=e[26007],e[t+312>>2]=e[26006],e[t+316>>2]=A;break e}for(e[t+8>>2]=0,e[t+12>>2]=16,e[t+56>>2]=2,e[t+28>>2]=17,A=e[26009],e[t+304>>2]=e[26008],e[t+308>>2]=A,A=e[26011],e[t+312>>2]=e[26010],e[t+316>>2]=A,A=0,a=t+344|0;u[0|(s=A+a|0)]=231&l[0|s],u[0|(s=a+(1|A)|0)]=231&l[0|s],u[0|(s=a+(2|A)|0)]=231&l[0|s],u[0|(s=a+(3|A)|0)]=231&l[0|s],(0|(A=A+4|0))!=256;);e[t+104>>2]=2280,e[t+108>>2]=2,e[t+608>>2]=104048,u[t+451|0]=16|l[t+451|0],u[t+456|0]=16|l[t+456|0],u[t+459|0]=16|l[t+459|0],u[t+460|0]=16|l[t+460|0],u[t+450|0]=8|l[t+450|0],u[t+462|0]=8|l[t+462|0],u[t+458|0]=8|l[t+458|0],u[t+465|0]=64&l[t+465|0]|129;break e}e[t+296>>2]=269618961,e[t+300>>2]=370546196,e[t+12>>2]=131110,e[t+144>>2]=2,e[t+104>>2]=184559112,e[t+108>>2]=8192,e[t+16>>2]=0,e[t+20>>2]=2,e[t+4>>2]=1,e[t+8>>2]=2,e[t+100>>2]=e[t+96>>2],e[t+140>>2]=103676,e[t+68>>2]=2,e[t+56>>2]=1,e[t+44>>2]=130,e[t+28>>2]=2,A=e[26025],e[t+304>>2]=e[26024],e[t+308>>2]=A,A=e[26027],e[t+312>>2]=e[26026],e[t+316>>2]=A,u[t+465|0]=64&l[t+465|0]|129,r=26996;break e}e[t+4>>2]=524,e[t+8>>2]=2,e[t+196>>2]=368,e[t+104>>2]=0,e[t+336>>2]=104128,e[t- -64>>2]=1,A=e[26029],e[t+304>>2]=e[26028],e[t+308>>2]=A,A=e[26031],e[t+312>>2]=e[26030],e[t+316>>2]=A,u[t+465|0]=64&l[t+465|0]|129,r=6972015;break e}for(e[t+296>>2]=303174162,e[t+300>>2]=370545684,A=e[25873],e[t+304>>2]=e[25872],e[t+308>>2]=A,A=e[25875],e[t+312>>2]=e[25874],e[t+316>>2]=A,s=jA(t+344|0,0,256),u[t+431|0]=1,u[t+429|0]=1,u[t+411|0]=1,u[t+405|0]=1,u[t+400|0]=1,u[t+396|0]=1,u[t+392|0]=1,A=104160,a=49;u[0|(a=a+s|0)]=4|l[0|a],a=s+l[A+1|0]|0,u[0|a]=4|l[0|a],a=s+l[A+2|0]|0,u[0|a]=4|l[0|a],a=l[0|(A=A+3|0)],(0|A)!=104193;);e[t+600>>2]=4256,e[t+8>>2]=0,e[t+12>>2]=16,u[t+168|0]=7,e[t+132>>2]=32,u[t+392|0]=128|l[t+392|0],u[t+396|0]=128|l[t+396|0],u[t+400|0]=128|l[t+400|0],u[t+405|0]=128|l[t+405|0],u[t+411|0]=128|l[t+411|0],u[t+429|0]=128|l[t+429|0],u[t+431|0]=128|l[t+431|0],e[t+188>>2]=1056,e[t+192>>2]=29301,e[t+104>>2]=19964960;break e}for(e[t+600>>2]=1056,s=jA(t+344|0,0,256),u[t+393|0]=1,u[t+365|0]=1,u[t+360|0]=1,u[t+545|0]=1,u[t+529|0]=1,u[t+391|0]=1,u[t+389|0]=1,u[t+390|0]=1,u[t+387|0]=1,u[t+379|0]=1,u[t+374|0]=1,u[t+368|0]=1,u[t+489|0]=1,u[t+487|0]=1,u[t+398|0]=1,A=104224,a=17;u[0|(a=a+s|0)]=4|l[0|a],a=s+l[A+1|0]|0,u[0|a]=4|l[0|a],a=s+l[A+2|0]|0,u[0|a]=4|l[0|a],a=l[0|(A=A+3|0)],(0|A)!=104251;);u[t+360|0]=128|l[t+360|0],u[t+365|0]=128|l[t+365|0],u[t+393|0]=128|l[t+393|0],u[t+368|0]=128|l[t+368|0],u[t+374|0]=128|l[t+374|0],u[t+379|0]=128|l[t+379|0],u[t+387|0]=128|l[t+387|0],u[t+389|0]=128|l[t+389|0],u[t+390|0]=128|l[t+390|0],u[t+391|0]=128|l[t+391|0],u[t+529|0]=128|l[t+529|0],u[t+545|0]=128|l[t+545|0],u[t+489|0]=128|l[t+489|0],u[t+487|0]=128|l[t+487|0],u[t+398|0]=128|l[t+398|0],A=e[26055],e[t+312>>2]=e[26054],e[t+316>>2]=A,A=e[26053],e[t+304>>2]=e[26052],e[t+308>>2]=A,e[t+296>>2]=353636370,e[t+300>>2]=336925972,e[t+200>>2]=0,e[t+8>>2]=7,e[t+12>>2]=2097184,u[t+168|0]=2,e[t+104>>2]=50176,e[t+84>>2]=1,Qi(t,3);break e}e[t+296>>2]=320017171,e[t+300>>2]=320017171,e[t+104>>2]=184618072,e[t+8>>2]=12,e[t+12>>2]=32,A=e[25861],e[t+304>>2]=e[25860],e[t+308>>2]=A,A=e[25863],e[t+312>>2]=e[25862],e[t+316>>2]=A,r=27500;break e}e[t+184>>2]=42752,e[t+600>>2]=4352,jA(t+344|0,0,256),u[t+456|0]=1,u[t+457|0]=1,u[t+458|0]=1,u[t+459|0]=1,u[t+449|0]=1,u[t+450|0]=1,u[t+451|0]=1,u[t+452|0]=1,u[t+453|0]=1,u[t+454|0]=1,u[t+455|0]=1,u[t+456|0]=1,u[t+441|0]=1,u[t+442|0]=1,u[t+443|0]=1,u[t+444|0]=1,u[t+445|0]=1,u[t+446|0]=1,u[t+447|0]=1,u[t+448|0]=1,u[t+460|0]=65,u[t+461|0]=65,u[t+532|0]=32,u[t+527|0]=32,u[t+519|0]=32,u[t+515|0]=32,u[t+349|0]=32,u[t+350|0]=32,u[t+346|0]=32,e[t+132>>2]=20,e[t+112>>2]=286331152,e[t+104>>2]=1024,e[t+108>>2]=16384,e[t+40>>2]=1,e[t+8>>2]=8,u[t+458|0]=65,u[t+453|0]=65,u[t+447|0]=65,u[t+448|0]=65,u[t+443|0]=65,u[t+444|0]=65,r=27503;break e}e[t+328>>2]=10,e[t+296>>2]=336859666,e[t+300>>2]=353768980,u[t+168|0]=2,e[t+104>>2]=263264,e[t+8>>2]=7,A=e[26065],e[t+304>>2]=e[26064],e[t+308>>2]=A,A=e[26067],e[t+312>>2]=e[26066],e[t+316>>2]=A,r=27509;break e}e[t+104>>2]=1,r=27513;break e}e[t+116>>2]=5e3,e[t+104>>2]=16777216,e[t+24>>2]=1,e[t+16>>2]=0,e[t+20>>2]=2,e[t+8>>2]=2,e[t+12>>2]=32,e[t+328>>2]=5,r=27745;break e}e[t+116>>2]=5e3,e[t+104>>2]=99336,e[t+108>>2]=256,e[t+24>>2]=1,e[t+16>>2]=0,e[t+20>>2]=2,e[t+8>>2]=2,e[t+12>>2]=32,e[t+328>>2]=5,r=27764;break e}e[t+328>>2]=6,e[t+296>>2]=336859409,e[t+300>>2]=353768980,e[t+600>>2]=1056,e[t+104>>2]=2114600,e[t+108>>2]=138,e[t+8>>2]=4,e[t+632>>2]=104288,e[t+604>>2]=104288,A=e[26093],e[t+304>>2]=e[26092],e[t+308>>2]=A,A=e[26095],e[t+312>>2]=e[26094],e[t+316>>2]=A,r=28011;break e}e[t+328>>2]=4,e[t+104>>2]=1,e[t+8>>2]=2,e[t+36>>2]=256,r=28020;break e}e[t+4>>2]=48,e[t+8>>2]=0,e[t+12>>2]=128,e[t+104>>2]=2169880,e[t+32>>2]=1,e[t+36>>2]=256,e[t+24>>2]=1,e[t+136>>2]=85767,A=e[26097],e[t+304>>2]=e[26096],e[t+308>>2]=A,A=e[26099],e[t+312>>2]=e[26098],e[t+316>>2]=A,u[t+465|0]=64&l[t+465|0]|129,r=28268;break e}e[t+8>>2]=0,e[t+104>>2]=71752,A=e[26101],e[t+304>>2]=e[26100],e[t+308>>2]=A,A=e[26103],e[t+312>>2]=e[26102],e[t+316>>2]=A,u[t+465|0]=64&l[t+465|0]|129,r=28258;break e}e[t+296>>2]=336858898,e[t+300>>2]=370546196,e[t+104>>2]=1088,e[t+108>>2]=512,e[t+8>>2]=2,e[t+12>>2]=524310,A=e[26105],e[t+304>>2]=e[26104],e[t+308>>2]=A,A=e[26107],e[t+312>>2]=e[26106],e[t+316>>2]=A,r=28525;break e}e[t+328>>2]=3,e[t+296>>2]=320015633,e[t+300>>2]=353768980,u[t+168|0]=7,e[t+8>>2]=2,e[t+12>>2]=6,e[t+104>>2]=20488,e[t+108>>2]=192,e[t+36>>2]=9,e[t+60>>2]=260,A=e[26109],e[t+304>>2]=e[26108],e[t+308>>2]=A,A=e[26111],e[t+312>>2]=e[26110],e[t+316>>2]=A,u[t+465|0]=64&l[t+465|0]|129,r=28780;break e}for(e[t+296>>2]=353569552,e[t+300>>2]=353768980,e[t+116>>2]=5e3,e[t+104>>2]=33570920,e[t+108>>2]=14336,e[t+8>>2]=3,e[t+12>>2]=139286,e[t+100>>2]=e[t+96>>2],A=e[26113],e[t+304>>2]=e[26112],e[t+308>>2]=A,A=e[26115],e[t+312>>2]=e[26114],e[t+316>>2]=A,u[t+465|0]=64&l[t+465|0]|129,A=0,a=t+344|0;u[0|(s=A+a|0)]=253&l[0|s],u[0|(s=a+(1|A)|0)]=253&l[0|s],u[0|(s=a+(2|A)|0)]=253&l[0|s],u[0|(s=a+(3|A)|0)]=253&l[0|s],(0|(A=A+4|0))!=256;);u[t+442|0]=2|l[t+442|0],u[t+443|0]=2|l[t+443|0],u[t+444|0]=2|l[t+444|0],u[t+446|0]=2|l[t+446|0],u[t+447|0]=2|l[t+447|0],u[t+450|0]=2|l[t+450|0],u[t+451|0]=2|l[t+451|0],u[t+453|0]=2|l[t+453|0],u[t+454|0]=2|l[t+454|0],u[t+456|0]=2|l[t+456|0],u[t+457|0]=2|l[t+457|0],u[t+459|0]=2|l[t+459|0],u[t+460|0]=2|l[t+460|0],u[t+462|0]=2|l[t+462|0],u[t+464|0]=2|l[t+464|0],u[t+466|0]=2|l[t+466|0],e[t+144>>2]=2,e[t+68>>2]=2;break e}e[t+296>>2]=303172879,e[t+300>>2]=353768980,e[t+328>>2]=3,e[t+8>>2]=3,e[t+12>>2]=262,e[t+104>>2]=16805928,e[t+108>>2]=30,A=e[26117],e[t+304>>2]=e[26116],e[t+308>>2]=A,A=e[26119],e[t+312>>2]=e[26118],e[t+316>>2]=A,r=29295;break e}fi(t),r=29301;break e}for(e[t+328>>2]=3,e[t+296>>2]=336859153,e[t+300>>2]=353768980,b[t+168>>1]=261,e[t+8>>2]=0,e[t+12>>2]=22,e[t+124>>2]=0,e[t+128>>2]=44,e[t+104>>2]=16794624,e[t+108>>2]=128,e[t+36>>2]=3,e[t+60>>2]=4,A=e[25869],e[t+304>>2]=e[25868],e[t+308>>2]=A,A=e[25871],e[t+312>>2]=e[25870],e[t+316>>2]=A,(0|r)==25459&&(e[t+108>>2]=136),u[t+465|0]=64&l[t+465|0]|129,u[t+458|0]=64&l[t+458|0]|129,A=0,a=t+344|0;u[0|(s=A+a|0)]=223&l[0|s],u[0|(s=a+(1|A)|0)]=223&l[0|s],u[0|(s=a+(2|A)|0)]=223&l[0|s],u[0|(s=a+(3|A)|0)]=223&l[0|s],(0|(A=A+4|0))!=256;);u[t+442|0]=32|l[t+442|0],u[t+444|0]=32|l[t+444|0],u[t+447|0]=32|l[t+447|0],u[t+450|0]=32|l[t+450|0],u[t+452|0]=32|l[t+452|0],u[t+453|0]=32|l[t+453|0],u[t+454|0]=32|l[t+454|0],u[t+458|0]=32|l[t+458|0],u[t+462|0]=32|l[t+462|0],u[t+463|0]=32|l[t+463|0],u[t+466|0]=32|l[t+466|0],u[t+441|0]=32|l[t+441|0],u[t+445|0]=32|l[t+445|0],u[t+449|0]=32|l[t+449|0],u[t+455|0]=32|l[t+455|0],u[t+461|0]=32|l[t+461|0],u[t+465|0]=32|l[t+465|0];break e}for(e[t+296>>2]=303174162,e[t+300>>2]=370545684,e[t+600>>2]=3456,u[t+169|0]=1,e[t+8>>2]=0,e[t+12>>2]=22,e[t+100>>2]=e[t+96>>2],A=e[25873],e[t+304>>2]=e[25872],e[t+308>>2]=A,A=e[25875],e[t+312>>2]=e[25874],e[t+316>>2]=A,jA(t+344|0,0,256),u[t+365|0]=1,u[t+366|0]=1,u[t+357|0]=1,u[t+358|0]=1,u[t+359|0]=1,u[t+360|0]=1,u[t+361|0]=1,u[t+362|0]=1,u[t+363|0]=1,u[t+364|0]=1,u[t+349|0]=1,u[t+350|0]=1,u[t+351|0]=1,u[t+352|0]=1,u[t+353|0]=1,u[t+354|0]=1,u[t+355|0]=1,u[t+356|0]=1,A=74,a=74;u[344+(s=t+a|0)|0]=1|l[s+344|0],u[s+345|0]=1|l[s+345|0],u[s+346|0]=1|l[s+346|0],(0|(a=a+3|0))!=116;);for(;u[344+(a=A+t|0)|0]=2|l[a+344|0],u[a+345|0]=2|l[a+345|0],u[a+346|0]=2|l[a+346|0],(0|(A=A+3|0))!=116;);for(a=26;u[344+(A=t+a|0)|0]=4|l[A+344|0],u[A+345|0]=4|l[A+345|0],u[A+346|0]=4|l[A+346|0],u[A+347|0]=4|l[A+347|0],u[A+348|0]=4|l[A+348|0],(0|(a=a+5|0))!=71;);e[t+112>>2]=84648,e[t+104>>2]=270589952,e[t+108>>2]=65536,e[t+40>>2]=1,e[t+204>>2]=e[t+600>>2]+74;break e}e[t+8>>2]=2,e[t+12>>2]=32,e[t+328>>2]=3,e[t+124>>2]=32,e[t+104>>2]=16864280,e[t+108>>2]=256,e[t+68>>2]=2,e[t+36>>2]=259,e[t+40>>2]=118,e[t+28>>2]=1,u[t+458|0]=128|l[t+458|0],r=29548;break e}e[t+296>>2]=370544658,e[t+300>>2]=370546196,e[t+164>>2]=130,e[t+8>>2]=0,e[t+12>>2]=86,e[t+104>>2]=87064,u[t+169|0]=1,e[t+152>>2]=3,A=e[26121],e[t+304>>2]=e[26120],e[t+308>>2]=A,A=e[26123],e[t+312>>2]=e[26122],e[t+316>>2]=A,u[t+465|0]=64&l[t+465|0]|129,r=7564650;break e}e[t+296>>2]=269487120,e[t+300>>2]=320148500,e[t+8>>2]=3,e[t+12>>2]=278,e[t+144>>2]=2,e[t+104>>2]=32872,A=e[26125],e[t+304>>2]=e[26124],e[t+308>>2]=A,A=e[26127],e[t+312>>2]=e[26126],e[t+316>>2]=A,u[t+465|0]=64&l[t+465|0]|129,r=29553;break e}e[t+296>>2]=336859152,e[t+300>>2]=353768980,e[t+8>>2]=0,e[t+144>>2]=1,e[t+104>>2]=6408,A=e[26129],e[t+304>>2]=e[26128],e[t+308>>2]=A,A=e[26131],e[t+312>>2]=e[26130],e[t+316>>2]=A,u[t+465|0]=64&l[t+465|0]|129,r=29558;break e}e[t+296>>2]=320015376,e[t+300>>2]=353768980,u[t+168|0]=4,e[t+12>>2]=22,e[t+4>>2]=1,e[t+8>>2]=2,e[t+104>>2]=1248,e[t+100>>2]=e[t+96>>2],A=e[26133],e[t+304>>2]=e[26132],e[t+308>>2]=A,A=e[26135],e[t+312>>2]=e[26134],e[t+316>>2]=A;break e}e[t+296>>2]=303174162,e[t+300>>2]=370545684,u[t+169|0]=1,e[t+8>>2]=0,e[t+12>>2]=22,e[t+112>>2]=5288,e[t+100>>2]=e[t+96>>2],A=e[25877],e[t+304>>2]=e[25876],e[t+308>>2]=A,A=e[25879],e[t+312>>2]=e[25878],e[t+316>>2]=A;p:switch(r-29793|0){default:if((0|r)!=27502){if((0|r)!=28012)break r;A=e[26137],e[t+304>>2]=e[26136],e[t+308>>2]=A,A=e[26139],e[t+312>>2]=e[26138],e[t+316>>2]=A,e[t+600>>2]=3328,e[t+296>>2]=320017171,e[t+300>>2]=320017171,e[t+104>>2]=2098176,e[t+108>>2]=131072,e[t+8>>2]=13;break r}e[t+104>>2]=1,e[t+600>>2]=3200;break r;case 4:break p;case 1:case 2:case 3:break r;case 0:break s}e[t+104>>2]=1,e[t+108>>2]=524288,e[t+600>>2]=3072;break r}e[t+328>>2]=10,e[t+296>>2]=353636370,e[t+300>>2]=336925972,u[t+173|0]=1,e[t+8>>2]=7,e[t+12>>2]=32,u[t+168|0]=2,e[t+84>>2]=1,A=e[26141],e[t+304>>2]=e[26140],e[t+308>>2]=A,e[t+104>>2]=(0|r)==24954?2118920:2114824,A=e[26143],e[t+312>>2]=e[26142],e[t+316>>2]=A;break e}xs(t),e[t+296>>2]=303173650,e[t+300>>2]=303174162,e[t+104>>2]=2131208,e[t+8>>2]=3,e[t+12>>2]=32,A=e[25865],e[t+304>>2]=e[25864],e[t+308>>2]=A,A=e[25867],e[t+312>>2]=e[25866],e[t+316>>2]=A,r=29812;break e}fi(t),r=30059;break e}e[t+112>>2]=21160,e[t+104>>2]=16,e[t+600>>2]=1536,e[t+40>>2]=1;break e}e[t+296>>2]=269488144,e[t+300>>2]=370546198,e[t+8>>2]=0,e[t>>2]=33,e[t+148>>2]=1,e[t+104>>2]=12615688,e[t+16>>2]=2,e[t+100>>2]=e[t+96>>2],e[t+632>>2]=104592,e[t+604>>2]=104592,A=e[26145],e[t+304>>2]=e[26144],e[t+308>>2]=A,A=e[26147],e[t+312>>2]=e[26146],e[t+316>>2]=A,r=30313;break e}if(e[t+296>>2]=370544662,e[t+300>>2]=370546198,e[t+8>>2]=3,e[t+12>>2]=2,e[t+148>>2]=1,e[t+184>>2]=12544,b[t+170>>1]=257,e[t+176>>2]=1,u[t+172|0]=1,e[t>>2]=33,e[t+4>>2]=0,e[t+100>>2]=e[t+96>>2],A=e[26225],e[t+304>>2]=e[26224],e[t+308>>2]=A,A=e[26227],e[t+312>>2]=e[26226],e[t+316>>2]=A,(0|r)!=7959909)break e;e[t+112>>2]=24,e[t+104>>2]=1,e[t+108>>2]=1048576,r=7959909;break e}A=e[25873],e[t+304>>2]=e[25872],e[t+308>>2]=A,A=e[25875],e[t+312>>2]=e[25874],e[t+316>>2]=A,e[t+600>>2]=2944,e[t+104>>2]=2097152,e[t+108>>2]=262144,e[t+48>>2]=1}gs(t),u[t+422|0]=2|l[t+422|0];break e}e[t+40>>2]=1}return e[t+212>>2]=r,8&(A=e[t+104>>2])&&(e[t+124>>2]=46,e[t+128>>2]=44),4&A&&(e[t+124>>2]=0),t}function dA(A){var t=0,r=0,a=0,s=0,n=0,o=0,c=0,f=0,m=0,p=0,I=0,v=0,T=0,O=0,Z=0,ee=0,ce=0,he=0,ye=0,Qe=0,We=0,Ke=0,rA=0,cA=0,MA=0;e:{r=e[32538],e[47354]=0,e[47568]=0,e[49828]=0,e[47569]=0,u[199328]=0,e[49827]=0,e[49845]=0,u[190280]=0,u[190268]=1,e[47202]=0,e[49573]=0,e[49846]=0,u[199304]=0,u[199388]=0,e[33691]=0,e[33285]=0,e[33708]=1,e[33709]=1,e[33288]=0,t=e[33730],e[33712]=e[33729],e[33713]=t,t=e[33732],e[33714]=e[33731],e[33715]=t,t=e[33734],e[33716]=e[33733],e[33717]=t,t=e[33736],e[33718]=e[33735],e[33719]=t,t=e[33738],e[33720]=e[33737],e[33721]=t,t=e[33740],e[33722]=e[33739],e[33723]=t,t=e[33742],e[33724]=e[33741],e[33725]=t,e[33726]=e[33743],u[134784]=0,u[134824]=0,u[134772]=0,u[134760]=0,e[33284]=-1,e[33692]=0,e[32525]=0,e[47201]=e[33717],e[47200]=e[33718],Va(),e[34438]=0,e[34437]=0,t=e[33730],e[34048]=e[33729],e[34049]=t,t=e[33732],e[34050]=e[33731],e[34051]=t,t=e[33734],e[34052]=e[33733],e[34053]=t,t=e[33736],e[34054]=e[33735],e[34055]=t,t=e[33738],e[34056]=e[33737],e[34057]=t,t=e[33740],e[34058]=e[33739],e[34059]=t,t=e[33742],e[34060]=e[33741],e[34061]=t,e[34062]=e[33743];A:{r:{if(1&r){if(e[e[32539]>>2]=0,e[47569]|e[49845]|e[49827])break r;break A}if(e[e[32539]>>2]=0,!(e[49845]|e[49827]||e[47569]))break A}u[190280]=1}e[49828]=0,t=268436735;A:if(!(!e[34391]|!e[34388])&&(e[47204]=0,e[47203]=0,e[47199]=0,e[34439]=0,(e[47192]||!(t=n0(86228)))&&((t=e[33283])||((t=Ct(16))&&(e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0),e[33283]=t),n=268439807,(r=e[e[47192]+328>>2])>>>0>20|!e[129104+(r<<3)>>2]?t=n:(A?(n=4,s=HA(A)+1|0):(n=2,s=0),e[t+8>>2]=n,e[t>>2]=A,e[t+12>>2]=e[129108+(r<<3)>>2],e[t+4>>2]=A?A+s|0:0,t=0),!t))){me(0);r:{for(;;){e[34436]=0,A=e[34391],e[51290]=A,e[54046]=A+e[34390],e[50767]<=102399&&(e[50767]=102400);s:if(!((o=e[51290])>>>0>=ge[54046]))for(;;){if((((0|(A=(s=e[50757])-(c=e[50758])|0))<=0?A+170|0:A)-171|0)>=-1){if((0|(A=e[54731]))<=0)break s;n=0,e[50763]=0,e[50762]=0,e[50765]=2147483647,A=l[218920]?e[54732]:A;n:{for(;;){if(r=A-1|0,e[54732]=r,(0|A)<=0)break n;if(e[51290]=o+1,t=(A=e[51293])+1|0,e[51293]=(0|t)<=5499?t:0,t=(A=P(e[50755],b[205184+(A<<1)>>1]))>>8,u[0|o]=t,s=e[51290],e[51290]=s+1,u[0|s]=A>>>16,(s=e[50756])?(A=r,(r=e[s+4>>2])&&(ct[0|r](t<<16>>16),A=e[54732])):A=r,s=(r=e[51292])+1|0,e[51292]=s,b[205184+(r<<1)>>1]=t,(0|s)>=5500&&(e[51292]=0),o=e[51290],!(ge[54046]>=o+2>>>0))break}n=1}u[218920]=n;break s}A=e[4+(r=216192+(s<<4)|0)>>2];n:{c:{o:{g:{l:{i:{p:{C:{m:{b:{h:{v:{w:{E:{L:{W:switch((255&(t=e[r>>2]))-1|0){case 9:break o;case 7:break g;case 10:break l;case 11:break i;case 13:break p;case 0:break C;case 1:break m;case 2:break b;case 3:break h;case 6:break v;case 5:break w;case 4:break E;case 15:break L;case 8:break W;default:break c}if(!e[50759])break c;t=e[r+12>>2],r=e[r+8>>2],e[50768]=0,o=r||99232,e[50766]=o,e[50769]=A?2097152/(0|A)|0:0,A=e[50971],s=(0|P(A,e[50788]))/50|0,r=P(s-A|0,-18),A=((0|(A=e[50785]))>=101?101:A)-e[50790]|0,t=(n=r+((0|P(e[50970],l[((0|A)>0?A:0)+105680|0]))/128|0)|0)+((0|P(s,(0|(A=t>>16))<(0|(r=65535&t))?A:r))/2|0)|0,e[50770]=t,A=(n+((0|P(s,(0|A)>(0|r)?A:r))/2|0)|0)-t|0,e[50771]=A,r=l[0|o],e[33072]=e[50976],e[50767]=t+(P(A,r)>>8);break c}ct[e[e[50756]>>2]](A,e[r+8>>2]),xt(A);break c}if(l[218920]||(e[54731]=e[54731]-A),e[50781]=100,e[50773]=0,_(),e[50763]=0,e[50762]=0,e[50765]=2147483647,!A)break c;for(A=l[218920]?e[54732]:A;;){if(r=A-1|0,e[54732]=r,(0|A)<=0)break c;if(A=e[51290],e[51290]=A+1,s=(t=e[51293])+1|0,e[51293]=(0|s)<=5499?s:0,s=A,t=(A=P(e[50755],b[205184+(t<<1)>>1]))>>8,u[0|s]=t,s=e[51290],e[51290]=s+1,u[0|s]=A>>>16,(s=e[50756])?(A=r,(r=e[s+4>>2])&&(ct[0|r](t<<16>>16),A=e[54732])):A=r,s=(r=e[51292])+1|0,e[51292]=s,b[205184+(r<<1)>>1]=t,(0|s)>=5500&&(e[51292]=0),s=1,!(ge[54046]>=e[51290]+2>>>0))break}break n}for(e[50773]=0,e[54731]=e[54729],_(),t=e[r+12>>2],s=e[r+8>>2],l[218920]?A=e[54733]:e[54734]=0,c=t>>8,n=255&t,e[50762]=0,e[50763]=0;;){if(r=A-1|0,e[54733]=r,(0|A)<=0)break c;if(t=(A=e[54734])+1|0,n?o=P(n,u[A+s|0]):(o=l[A+s|0]|u[t+s|0]<<8,t=A+2|0),e[54734]=t,f=(A=e[51293])+1|0,e[51293]=f,t=(0|(A=(0|(A=((0|P(c,P(e[33037],P(e[33038],o))>>10))/32|0)+(P(e[50755],b[205184+(A<<1)>>1])>>8)|0))<=-32768?-32768:A))>=32767?32767:A,(0|f)>=5500&&(e[51293]=0),u[e[51290]]=t,u[e[51290]+1|0]=t>>>8,(o=e[50756])?(A=r,(r=e[o+12>>2])&&(ct[0|r](t<<16>>16),A=e[54733])):A=r,r=e[51290],e[51290]=r+2,f=(o=e[51292])+1|0,e[51292]=f,b[205184+(o<<1)>>1]=(0|P(t,3))/4,(0|f)>=5500&&(e[51292]=0),!(ge[54046]>=r+4>>>0))break}s=1;break n}t=e[r+12>>2],s=A>>>16|0,e[50777]=s,A&=65535,e[50773]=A,n=255&t,e[50774]=n,e[50775]=t>>8,n||(e[50777]=s<<1,e[50773]=A<<1),e[50778]=0,e[50776]=0,e[50772]=e[r+8>>2];break c}e[50773]=0}if(e[54731]=e[54729],t=e[50759],l[218920]){if(!t)break c}else{if(!t)break c;for(n=e[r+12>>2],o=e[r+8>>2],r=A>>16,e[55912]=255&r,u[218960]=1,e[55908]=0,67108864&A&&(e[55908]=3,e[55909]=e[110496+(r>>>6&12)>>2]),134217728&A&&(e[55908]=4,e[55909]=e[110512+(r>>>6&12)>>2]),A&=65504;;){if((0|c)!=(0|(s=(0|(r=s+1|0))<=169?r:0)))if((0|(r=e[216192+(s<<4)>>2]))!=3){if(r-5>>>0>1)continue}else u[218960]=0;break}for(e[55913]=e[50762],A=(A=A+32&131008)||64,e[50763]=A+e[50763],e[55684]=P(b[101997],7800)+(M[102024]<<8)<<8,e[55704]=P(b[101998],9e3)+(M[102025]<<8)<<8,T=e[50980],a=+(0|A),I=+(A>>>2|0),A=0;(0|A)!=7&&(s=b[218+(f=(r=A<<1)+t|0)>>1]<<8,c=P(A,80)+222176|0,f=b[f+164>>1],v=s+P(f,b[2+(r+o|0)>>1])<<8,e[c>>2]=v,p=+(0|v),D[c+16>>3]=p,D[c+48>>3]=16*(+(s+P(f,b[2+(r+n|0)>>1])<<8)-p)/I),s=(r=P(A,80))+222176|0,f=b[182+(v=t+(A<<1)|0)>>1],Z=P(f,l[18+(c=A+o|0)|0])<<6,e[s+4>>2]=Z,p=+(0|Z),D[s+24>>3]=p,O=s,s=A+n|0,D[O+56>>3]=64*(+(P(f,l[s+18|0])<<6)-p)/a,(0|A)>(0|T)|A>>>0>5||(f=r+222176|0,Z=b[v+200>>1],v=P(Z,l[c+26|0])<<10,e[f+8>>2]=v,p=+(0|v),D[f+32>>3]=p,O=f- -64|0,f=Z<<10,D[O>>3]=64*(+(0|P(f,l[s+26|0]))-p)/a,A>>>0<=2?(r=r+222176|0,c=P(f,l[c+32|0]),e[r+12>>2]=c,p=+(0|c),D[r+40>>3]=p,D[r+72>>3]=64*(+(0|P(f,l[s+32|0]))-p)/a):e[r+222188>>2]=v),(0|(A=A+1|0))!=8;);}for(;;){if(A=e[50762],!l[218960]&(0|A)==e[50763])break c;b:{h:{if(63&A){if(7&A)break b;v:if(!((0|(r=e[54736]))<=0||(0|(t=e[54735]))<=0))for(s=e[50826],A=1;;){if(e[(o=(n=A<<2)+s|0)>>2]=e[o>>2]+e[n+203312>>2],A>>>0>28|(0|A)>=(0|r))break v;if(n=(0|A)<(0|t),A=A+1|0,!n)break}if((0|(A=e[33073]))>255)break b;e[33073]=A+1;break b}if(A)if(e[50759]){if(r=e[50768]+e[50769]|0,e[50768]=r,r=(t=e[50766])?P(l[t+((0|(r>>=8))>=127?127:r)|0],e[50771])>>8:0,e[55911]=e[55911]+e[55915],t=(0|(t=e[55914]))<=23551?t:0,e[55914]=t+e[50761],t=(r+e[50770]|0)+P(e[33072],l[110528+(t>>6)|0]-128|0)|0,e[50767]=t,!(s=e[51291])&(0|(r=s?s<<12:t))>102399||(t=(0|r)<=102400?102400:r,e[50767]=t),(0|A)!=e[55913]){if(A=0,!((0|(c=e[50980]))<0)){for(;o=P(A,80),a=D[48+(r=o+222176|0)>>3]+D[r+16>>3],D[r+16>>3]=a,I=D[r+56>>3]+D[r+24>>3],D[r+24>>3]=I,p=D[r- -64>>3]+D[r+32>>3],D[r+32>>3]=p,s=Ne(a)<2147483648?~~a:-2147483648,e[r>>2]=s,s=Ne(p)<2147483648?~~p:-2147483648,e[r+8>>2]=s,n=Ne(I)<2147483648?~~I:-2147483648,e[r+4>>2]=(0|n)>0?n:0,(0|A)>2||(a=D[72+(r=o+222176|0)>>3]+D[r+40>>3],D[r+40>>3]=a,s=Ne(a)<2147483648?~~a:-2147483648),e[o+222188>>2]=s,(0|c)>=(0|(A=A+1|0)););if((0|A)>=8)break h}for(;(0|A)!=7&&(r=P(A,80)+222176|0,a=D[r+48>>3]+D[r+16>>3],D[r+16>>3]=a,s=Ne(a)<2147483648?~~a:-2147483648,e[r>>2]=s),r=P(A,80)+222176|0,a=D[r+56>>3]+D[r+24>>3],D[r+24>>3]=a,s=Ne(a)<2147483648?~~a:-2147483648,e[r+4>>2]=(0|s)>0?s:0,(0|(A=A+1|0))!=8;);}}else t=e[50767];else e[50826]=218976,e[54742]=0,e[54736]=ds(e[50767]<<4,218976,0),t=e[50767],e[54737]=890/(t>>12),e[54739]=(0|P(e[50781],P(e[50779],t>>8)))/8e4}if(e[55906]=t>>11,e[54735]=e[54736],e[55904]=P(e[50760],t>>7),e[55905]=e[50754]/(t>>12),r=1^(A=e[54742]),e[54742]=r,e[50826]=P(A,1600)+218976,e[54736]=ds(t<<4,P(r,1600)+218976|0,1),!(!(t=e[50759])|!e[51022]))for(I=D[25430],p=D[25429],A=1;e[272+(r=t+(A<<2)|0)>>2]&&(s=e[r+308>>2],r=P(A,40)+203456|0,m=Ga(I*+b[2+(P(A,80)+222176|0)>>1]),m*=a=Pt(p*+(0|s)),m+=m,D[r+8>>3]=m,a*=-a,D[r+16>>3]=a,D[r>>3]=1-m-a),(0|(A=A+1|0))!=9;);}if(n=e[50762]+1|0,e[50762]=n,o=(A=e[50765])+e[55904]|0,e[50765]=o,(0|o)<0&(0|A)>0){if(f=e[55905],t=e[50800]+((0|f)/-2|0)|0,e[55907]=t,(0|(v=e[50763]))<(0|n))break c;if(T=e[54738]+1|0,e[54738]=T,c=e[50767],!((0|(A=(r=e[50980])+1|0))>8)&&(s=c<<3,1&r&&(e[203264+(A<<2)>>2]=(1+(e[P(A,80)+222176>>2]/(0|s)|0)|0)/2,A=r+2|0),(0|r)!=7))for(;r=203264+(A<<2)|0,Z=P(A,80)+222176|0,e[r>>2]=(1+(e[Z>>2]/(0|s)|0)|0)/2,e[r+4>>2]=(1+(e[Z+80>>2]/(0|s)|0)|0)/2,(0|(A=A+2|0))!=9;);A=(0|P(e[50781],P(e[50779],c>>8)))/8e4|0,e[54739]=A;b:if(!((0|(r=e[55908]))<=0)){switch(r-3|0){case 0:if((v-n|0)>=f<<1)break b;e[55908]=2,A=(0|P(e[55909],A))/256|0,e[54739]=A;break b;case 1:e[55908]=2,A=(0|P(e[55909],A))/256|0,e[54739]=A;break b}e[55908]=r-1}(r=e[55910])&&(s=A,A=e[55911]>>8,A=(0|P(s,l[r+((0|A)>=127?127:A)|0]))/128|0,e[54739]=A),(0|(r=e[e[32972]+92>>2]))>7||(r=15&(s=l[e[55912]+(106336+(r<<3)|0)|0]),(s=s>>>4|0)&&((0|s)!=15?(0|T)%(0|s)|0||(e[54739]=(0|P(A,r))/16):(e[55912]=0,e[54739]=(0|P(A,r))/16)))}else t=e[55907];if(n=t+1|0,e[55907]=n,r=o>>>16|0,s=0,!((0|n)<0|(0|n)>=e[50799])){if(!((0|(A=(t=e[50980])+1|0))>8)){if(c=1&(o=8-t|0),(0|t)!=7)for(f=-2&o,t=0;s=P(e[203216+(v=4+(o=A<<2)|0)>>2],b[106400+(P(r,e[v+203264>>2])>>>4&4094)>>1])+(P(e[o+203216>>2],b[106400+(P(r,e[o+203264>>2])>>>4&4094)>>1])+s|0)|0,A=A+2|0,(0|f)!=(0|(t=t+2|0)););c&&(s=P(e[203216+(A<<=2)>>2],b[106400+(P(r,e[A+203264>>2])>>>4&4094)>>1])+s|0)}s=P(l[n+132160|0],(0|s)/e[55906]|0)}if(A=1,(0|(n=e[54737]))<=0)t=r;else for(o=e[50826],t=r;s=P(e[o+(A<<2)>>2],b[106400+((65504&t)>>>4|0)>>1])+s|0,t=t+r|0,(0|n)>=(0|(A=A+1|0)););if((0|(n=e[54735]))>=(0|A))for(o=e[50826];s=s-P(e[o+(A<<2)>>2],b[106400+((65504&t)>>>4|0)>>1])|0,t=t+r|0,(0|n)>=(0|(A=A+1|0)););if(n=(0|(A=e[54728]))==64?s:P(A,s>>6),e[51022]){if(e[50759])for(r=It(e[33209],0,1103515245,0),A=$,A=Ri(r=r+12345|0,A=r>>>0<12345?A+1|0:A),e[33209]=A,I=+((16383&A)- -8192|0),t=e[50759],o=0,A=1;(s=e[272+(t+(A<<2)|0)>>2])&&(c=e[P(A,80)+222180>>2],r=P(A,40)+203456|0,a=D[r+32>>3],p=D[r+24>>3],D[r+32>>3]=p,a=a*D[r+16>>3]+(D[r>>3]*I+p*D[r+8>>3]),D[r+24>>3]=a,r=Ne(a)<2147483648?~~a:-2147483648,o=P(r,P(s,c>>14))+o|0),(0|(A=A+1|0))!=9;);else o=0;n=n+o|0}t=0,(0|(A=e[50776]))>=e[50773]||(r=e[50778],t=e[50772],(o=e[50774])?(s=A+1|0,e[50776]=s,A=P(o,u[t+(A+r|0)|0])):(o=l[0|(t=t+(A+r|0)|0)],t=u[t+1|0],s=A+2|0,e[50776]=s,A=o|t<<8),t=(0|P(P(A,e[50780])>>10,e[50775]))/32|0,(0|(A=e[50777]))>(r+s|0)||(e[50778]=r+((0|P(A,3))/-4|0))),r=(A=e[51293])+1|0,e[51293]=r,A=((P(e[54739],n>>8)>>13)+t|0)+(P(e[50755],b[205184+(A<<1)>>1])>>8)|0,(0|r)>=5500&&(e[51293]=0),r=e[33073];b:{h:{if((0|(t=P(r,A)))>=8388608){if((0|r)>=(0|(o=8388608/(0|A)|0)))break h;break b}if((0|t)>-8388353||(0|r)<(0|(o=-8388608/(0|A)|0)))break b}r=o-1|0,e[33073]=r,t=P(A,r)}if(A=e[51290],e[51290]=A+1,r=A,A=t>>8,u[0|r]=A,r=e[51290],e[51290]=r+1,u[0|r]=t>>>16,(r=e[50756])&&(r=e[r+8>>2])&&ct[0|r](A<<16>>16),t=(r=e[51292])+1|0,e[51292]=t,b[205184+(r<<1)>>1]=A,(0|t)>=5500&&(e[51292]=0),!(ge[54046]>=e[51290]+2>>>0))break}s=1;break n}e[50773]=0}e[54731]=e[54729],s=1,c=65535&A,t=l[218920],o=e[r+8>>2],n=e[r+12>>2],a=0,p=0,J=r=J+-64|0,f=e[50759];C:if((0|(A=e[f+132>>2]))!=6){if(!t){for(A-1>>>0<=4&&(e[55921]=A,e[55964]=e[110896+(A<<2)>>2]),A=e[f+88>>2],e[54741]=1,e[55922]=(0|A)/32,t=e[50758],A=e[50757];;){m:if((0|t)!=(0|(A=(0|(A=A+1|0))<=169?A:0)))if((0|(v=e[216192+(A<<4)>>2]))!=1){if(v-5>>>0>1)continue}else{if(e[54741]=0,A=e[8+(216192+(A<<4)|0)>>2],!(M[n+4>>1]!=M[A+4>>1]|M[A+6>>1]!=M[n+6>>1]|M[A+8>>1]!=M[n+8>>1]|M[A+10>>1]!=M[n+10>>1])&&M[A+12>>1]==M[n+12>>1])break m;e[54741]=2}break}for((M[o+4>>1]!=M[113564]|M[o+6>>1]!=M[113565]|M[o+8>>1]!=M[113566]|M[o+10>>1]!=M[113567]||M[o+12>>1]!=M[113568])&&(Un(),e[55974]=0,e[55975]=0,e[55972]=0,e[55973]=0,e[55988]=0,e[55989]=0,e[55990]=0,e[55991]=0,e[56004]=0,e[56005]=0,e[56006]=0,e[56007]=0,e[56020]=0,e[56021]=0,e[56022]=0,e[56023]=0,e[56036]=0,e[56037]=0,e[56038]=0,e[56039]=0,e[56052]=0,e[56053]=0,e[56054]=0,e[56055]=0,e[56068]=0,e[56069]=0,e[56070]=0,e[56071]=0,e[56086]=0,e[56087]=0,e[56084]=0,e[56085]=0,e[56102]=0,e[56103]=0,e[56100]=0,e[56101]=0,e[56118]=0,e[56119]=0,e[56116]=0,e[56117]=0,e[56134]=0,e[56135]=0,e[56132]=0,e[56133]=0,e[56150]=0,e[56151]=0,e[56148]=0,e[56149]=0,e[56166]=0,e[56167]=0,e[56164]=0,e[56165]=0,e[56182]=0,e[56183]=0,e[56180]=0,e[56181]=0,e[56198]=0,e[56199]=0,e[56196]=0,e[56197]=0,e[56214]=0,e[56215]=0,e[56212]=0,e[56213]=0,e[56230]=0,e[56231]=0,e[56228]=0,e[56229]=0),A=M[n+4>>1]|M[n+6>>1]<<16,t=M[n>>1]|M[n+2>>1]<<16,b[113562]=t,b[113563]=t>>>16,b[113564]=A,b[113565]=A>>>16,A=M[n+60>>1]|M[n+62>>1]<<16,t=M[n+56>>1]|M[n+58>>1]<<16,b[113590]=t,b[113591]=t>>>16,b[113592]=A,b[113593]=A>>>16,A=M[n+52>>1]|M[n+54>>1]<<16,t=M[n+48>>1]|M[n+50>>1]<<16,b[113586]=t,b[113587]=t>>>16,b[113588]=A,b[113589]=A>>>16,A=M[n+44>>1]|M[n+46>>1]<<16,t=M[n+40>>1]|M[n+42>>1]<<16,b[113582]=t,b[113583]=t>>>16,b[113584]=A,b[113585]=A>>>16,A=M[n+36>>1]|M[n+38>>1]<<16,t=M[n+32>>1]|M[n+34>>1]<<16,b[113578]=t,b[113579]=t>>>16,b[113580]=A,b[113581]=A>>>16,A=M[n+28>>1]|M[n+30>>1]<<16,t=M[n+24>>1]|M[n+26>>1]<<16,b[113574]=t,b[113575]=t>>>16,b[113576]=A,b[113577]=A>>>16,A=M[n+20>>1]|M[n+22>>1]<<16,t=M[n+16>>1]|M[n+18>>1]<<16,b[113570]=t,b[113571]=t>>>16,b[113572]=A,b[113573]=A>>>16,A=M[n+12>>1]|M[n+14>>1]<<16,t=M[n+8>>1]|M[n+10>>1]<<16,b[113566]=t,b[113567]=t>>>16,b[113568]=A,b[113569]=A>>>16,I=+(0|c),(O=1&b[o>>1])?(A=l[o+39|0],e[56680]=A,D[28364]=A>>>0,D[28354]=+(l[n+39|0]-A<<6)/I,A=l[o+40|0],D[28366]=A>>>0,D[28356]=+(l[n+40|0]-A<<6)/I,A=l[o+41|0],e[56682]=A,D[28368]=A>>>0,D[28358]=+(l[n+41|0]-A<<6)/I,t=l[o+42|0],e[56684]=t,D[28370]=t>>>0,A=l[o+43|0],a=+(l[n+43|0]-A<<6)/I,p=+(l[n+42|0]-t<<6)/I,m=+(A>>>0)):(e[56728]=0,e[56729]=0,A=0,e[56680]=0,e[56708]=0,e[56709]=0,e[56732]=0,e[56733]=0,e[56712]=0,e[56713]=0,e[56682]=0,e[56736]=0,e[56737]=0,e[56716]=0,e[56717]=0,e[56684]=0,e[56740]=0,e[56741]=0,m=0),e[56688]=A,D[28360]=p,D[28372]=m,D[28362]=a,e[56692]=0,e[56748]=0,e[56749]=0,e[56694]=0,e[56752]=0,e[56753]=0,e[56696]=0,e[56756]=0,e[56757]=0,e[56700]=0,e[56760]=0,e[56761]=0,e[56704]=0,e[56764]=0,e[56765]=0,e[50764]=c,A=1;T=b[164+(v=(c=A<<1)+f|0)>>1],t=(Qe=P(A,80))+222896|0,p=+b[v+218>>1],a=.00390625*+(0|P(T,b[2+(o+c|0)>>1]))+p,D[t+16>>3]=a,Z=Ne(a)<2147483648?~~a:-2147483648,e[t>>2]=Z,D[t+48>>3]=64*(.00390625*+(0|P(T,b[2+(n+c|0)>>1]))+p-a)/I,A>>>0<=3&&(t=Qe+222896|0,a=.00390625*+b[v+200>>1]*+(l[35+(A+o|0)|0]<<1),D[t+24>>3]=a,c=Ne(a)<2147483648?~~a:-2147483648,e[t+4>>2]=c,D[t+56>>3]=64*(+(l[35+(A+n|0)|0]<<1)-a)/I),(0|(A=A+1|0))!=6;);if(a=+((A=l[o+40|0])<<1),D[27864]=a,t=e[56618],A||(a=+(0|t),D[27864]=a),A=Ne(a)<2147483648?~~a:-2147483648,e[55724]=A,c=l[n+40|0],e[55730]=0,e[55731]=1079394304,e[55738]=0,e[55739]=0,e[55725]=89,A=1,D[27868]=64*(+(0|(c?c<<1:t))-a)/I,O)for(;t=P(A,80)+222896|0,f=l[56+(c=A+o|0)|0]<<2,e[t+12>>2]=f,a=+(0|f),D[t+40>>3]=a,f=A+n|0,D[t+72>>3]=64*(+(l[f+56|0]<<2)-a)/I,c=l[c+49|0],e[t+8>>2]=c,a=+(c>>>0),D[t+32>>3]=a,D[t- -64>>3]=64*(+l[f+49|0]-a)/I,(0|(A=A+1|0))!=7;);e[56606]=0}for(;;){if((0|(Z=e[50764]))>(0|(n=e[56606]))){for(A=e[50767],e[56609]=e[55724],e[56619]=e[55725],e[56610]=e[55744],e[56611]=e[55764],e[56612]=e[55784],e[56613]=e[55804],O=P(A,10),e[56607]=(0|O)/4096,e[56620]=e[55745],e[56621]=e[55765],e[56622]=e[55785],e[56614]=e[55824],e[56630]=e[55746],e[56631]=e[55766],e[56632]=e[55786],e[56633]=e[55806],e[56634]=e[55826],e[56635]=e[55846],Qe=e[56680],e[56608]=Qe,o=e[56694],e[56656]=o,c=e[56696],e[56653]=c,f=e[56700],e[56655]=f,v=e[56684],e[56649]=v,e[56651]=e[56704],e[56654]=e[56688],e[56652]=e[56682],e[56650]=e[56692],A=0;t=P(A,80)+222896|0,a=D[t+48>>3]+D[t+16>>3],D[t+16>>3]=a,I=D[t+56>>3]+D[t+24>>3],D[t+24>>3]=I,p=D[t+72>>3]+D[t+40>>3],D[t+40>>3]=p,m=D[t- -64>>3]+D[t+32>>3],D[t+32>>3]=m,T=Ne(a)<2147483648?~~a:-2147483648,e[t>>2]=T,T=Ne(I)<2147483648?~~I:-2147483648,e[t+4>>2]=T,T=Ne(p)<2147483648?~~p:-2147483648,e[t+12>>2]=T,T=Ne(m)<2147483648?~~m:-2147483648,e[t+8>>2]=T,(0|(A=A+1|0))!=9;);for(a=D[28354]+D[28364],D[28364]=a,D[28366]=D[28356]+D[28366],I=D[28358]+D[28368],D[28368]=I,p=D[28360]+D[28370],D[28370]=p,m=D[28362]+D[28372],D[28372]=m,A=Ne(a)<2147483648?~~a:-2147483648,e[56680]=A,A=Ne(I)<2147483648?~~I:-2147483648,e[56682]=A,A=Ne(p)<2147483648?~~p:-2147483648,e[56684]=A,A=Ne(m)<2147483648?~~m:-2147483648,e[56688]=A,a=D[28374]+0,D[28374]=a,A=Ne(a)<2147483648?~~a:-2147483648,e[56692]=A,a=D[28376]+0,D[28376]=a,A=Ne(a)<2147483648?~~a:-2147483648,e[56694]=A,a=D[28378]+0,D[28378]=a,A=Ne(a)<2147483648?~~a:-2147483648,e[56696]=A,a=D[28380]+0,D[28380]=a,A=Ne(a)<2147483648?~~a:-2147483648,e[56700]=A,a=D[28382]+0,D[28382]=a,A=Ne(a)<2147483648?~~a:-2147483648,e[56704]=A,e[56659]=e[55724],e[56669]=e[55725],e[56660]=e[55744],e[56670]=e[55745],e[56661]=e[55764],e[56671]=e[55765],e[56662]=e[55784],e[56672]=e[55785],e[56663]=e[55804],e[56664]=e[55824],e[56665]=e[55844],A=e[50768]+e[50769]|0,e[50768]=A,A>>=8,e[50767]=e[50770]+(P(e[50771],l[e[50766]+((0|A)>=127?127:A)|0])>>8),A=Z-n|0,e[55923]=(0|A)>=64?64:A,e[55961]=(0|O)/40960,A=Qe-7|0,e[56658]=(0|A)>0?A:0,D[27974]=v>>>0<=87?.001*+b[111136+(v<<1)>>1]*.05:0,D[27975]=c>>>0<=87?.001*+b[111136+(c<<1)>>1]*.25:0,D[27973]=o>>>0<=87?.001*+b[111136+(o<<1)>>1]:0,D[27971]=f>>>0<=87?.001*+b[111136+(f<<1)>>1]*.05:0,a=(A=e[56629])>>>0<=87?.001*+b[111136+(A<<1)>>1]*.6:0,D[r>>3]=a,a=(A=e[56630])>>>0<=87?.001*+b[111136+(A<<1)>>1]*.4:0,D[r+8>>3]=a,a=(A=e[56631])>>>0<=87?.001*+b[111136+(A<<1)>>1]*.15:0,D[r+16>>3]=a,a=(A=e[56632])>>>0<=87?.001*+b[111136+(A<<1)>>1]*.06:0,D[r+24>>3]=a,a=(A=e[56633])>>>0<=87?.001*+b[111136+(A<<1)>>1]*.04:0,D[r+32>>3]=a,a=(A=e[56634])>>>0<=87?.001*+b[111136+(A<<1)>>1]*.022:0,D[r+40>>3]=a,a=(A=e[56635])>>>0<=87?.001*+b[111136+(A<<1)>>1]*.03:0,D[r+48>>3]=a,a=(A=(0|(A=e[56657]-3|0))<=0?57:A)>>>0<=87?.001*+b[111136+(A<<1)>>1]:0,D[27977]=a/+e[55964],I=D[27968],p=D[27967],A=1;t=223664+(n=A<<6)|0,m=(a=Pt(p*+e[48+(c=226428+(o=A<<2)|0)>>2]))*-a,D[t+216>>3]=m,a*=Ga(I*+e[c+8>>2]),a+=a,D[t+208>>3]=a,he=1-a-m,D[t+200>>3]=he,A>>>0<=5&&(c=e[208+(o=o+226428|0)>>2],t=n+223664|0,ce=(ee=Pt(p*+e[o+248>>2]))*Ga(I*+(0|c)),ce+=ce,D[t+1488>>3]=ce,ee*=-ee,D[t+1496>>3]=ee,ye=1-ce-ee,D[t+1480>>3]=ye,D[t+256>>3]=.015625*(ee-m),D[t+248>>3]=.015625*(ce-a),D[t+240>>3]=.015625*(ye-he)),(0|(A=A+1|0))!=10;);for(ee=(a=Pt(p*+e[56619]))*-a,D[27985]=ee,ce=(a*=Ga(I*+(0-e[56609]|0)))+a,D[27984]=ce,a=1-ce-ee,D[27983]=a,a!=0&&(a=1/a,D[27983]=a,ee*=m=-a,D[27985]=ee,ce*=m,D[27984]=ce),he=(m=Pt(p*+e[56669]))*-m,D[28145]=he,ye=(m*=Ga(I*+(0-e[56659]|0)))+m,D[28144]=ye,m=1-ye-he,D[28143]=m,m!=0&&(m=1/m,D[28143]=m,he*=rA=-m,D[28145]=he,ye*=rA,D[28144]=ye),D[27990]=.015625*(he-ee),D[27989]=.015625*(ye-ce),D[27988]=.015625*(m-a),A=0;o=e[8+(n=226428+(A<<2)|0)>>2],t=223664+(A<<6)|0,m=(a=Pt(p*+e[n+128>>2]))*Ga(I*+(0|o)),m+=m,D[t+848>>3]=m,a*=-a,D[t+856>>3]=a,D[t+840>>3]=D[r+(A<<3)>>3]*(1-m-a),(0|(A=A+1|0))!=7;);if(p=(a=Pt(p*+(e[55918]/2|0)))*-a,D[28137]=p,a*=Ga(0*I),a+=a,D[28136]=a,D[28135]=1-a-p,A=1,(0|ZA())!=1)continue;break C}break}A=1,e[54741]>0&&(e[54741]=0,e[55963]=64,e[56606]=n+-64,e[55923]=64,(0|ZA())==1)||(A=0)}else{if(J=v=J-752|0,!t){jA(A=v+376|0,0,376),Bs(f,o,A),Bs(f,n,A=jA(v,0,376)),t=e[50768]+P(e[50769],c>>>6|0)|0,e[50768]=t,t>>=8,t=e[50770]+(P(e[50771],l[e[50766]+((0|t)>=127?127:t)|0])>>8)|0,e[50767]=t,D[A+368>>3]=(0|t)/4096|0,e[50773]&&(D[A+736>>3]=D[A+736>>3]/5,D[A+360>>3]=D[A+360>>3]/5),t=e[e[56797]+4>>2],ct[e[e[t>>2]>>2]](t,A+376|0,110,110,-1,0),n=c-110|0,f=e[50758],t=e[50757];m:{for(;;){if((0|f)!=(0|(t=(t+1|0)%170|0))&&!((T=e[216192+(t<<4)>>2])-5>>>0<2)){if(o=1,(0|T)!=1)continue;break m}break}n=c-220|0,o=0}(0|n)>0&&(t=e[e[56797]+4>>2],ct[e[e[t>>2]>>2]](t,A,n,n||1,-1,0)),o||(e[A+352>>2]=0,e[A+356>>2]=0,D[A>>3]=D[A+368>>3],t=e[e[56797]+4>>2],ct[e[e[t>>2]>>2]](t,A,55,55,-1,0),e[A+360>>2]=0,e[A+364>>2]=0,t=e[e[56797]+4>>2],ct[e[e[t>>2]>>2]](t,A,55,55,-1,0))}A=e[e[56797]+8>>2],t=e[51290],c=0|ct[e[e[A>>2]>>2]](A,e[54046]-t>>>1|0,t),f=e[51290];m:if(c&&!((0|(t=e[50776]))>=(0|(Qe=e[50773]))))for(We=e[50777],cA=(0|P(We,3))/-4|0,a=.0009765625*+e[50780],T=e[50772],n=e[50778],MA=e[50775],Z=e[50774],A=0;;){if(O=l[T+(o=t+n|0)|0],Z?O=P(Z,O<<24>>24):(t=t+1|0,e[50776]=t,O|=u[T+(o=t+n|0)|0]<<8),O=Ne(I=a*+(0|O))<2147483648?~~I:-2147483648,b[(Ke=f+(A<<1)|0)>>1]=M[Ke>>1]+((0|P(O,MA))/40|0),(0|o)>=(0|We)&&(n=n+cA|0,e[50778]=n),t=t+1|0,e[50776]=t,(0|t)>=(0|Qe))break m;if(!(c>>>0>(A=A+1|0)>>>0))break}A=f+(c<<1)|0,e[51290]=A,J=v+752|0,A=ge[54046]<=A>>>0}if(J=r- -64|0,A)break n;break c}e[50781]=A||100;break c}Ss(A,e[r+8>>2]);break c}A=e[r+8>>2],e[50759]=wt(203816,A,1344),e[50801]=e[A+108>>2]?105792:106064,A=(0|P(e[A+120>>2],26))/100|0,e[33038]=A,(0|(s=e[50754]))<=11e3&&(u[203300]=1,e[33038]=A<<1),e[54728]=e[50982],A=e[50979],t=e[50978],jA(205184,0,11e3),e[51293]=0,A=(t=(o=(0|(n=e[50789]))>0)?130:(0|t)>=5499?5499:t)?o?n:(0|A)>=100?100:A:0,e[50755]=A,t=(0|P(t,s))/1e3|0,e[51292]=t,e[54729]=(0|A)>20?t<<1:A?t:0,e[33037]=(0|P(500-A|0,(0|P(l[e[50797]+105596|0],(0|P(e[50787],55))/100|0))/16|0))/500,A=256,(0|(t=(0|(t=e[50785]))>=101?101:t))>=51&&(A=256+(((P(t,25)-1250&65535)>>>0)/50|0)|0),b[101990]=(0|P(b[102026],A))/256,b[101991]=(0|P(b[102027],A))/256,b[101992]=(0|P(b[102028],A))/256,b[101993]=(0|P(b[102029],A))/256,b[101994]=(0|P(b[102030],A))/256,b[101995]=(0|P(b[102031],A))/256,A=e[50790],b[101999]=(0|P(b[102035],P(A,-6)+256|0))/256,b[102e3]=(0|P(b[102036],P(A,-3)+256|0))/256,tn(8,0,e[50986],0,e[51290]),xt(e[r+8>>2]);break c}if(!e[50759])break c;t=e[r+12>>2],r=e[r+8>>2],e[55911]=0,e[55915]=A?2097152/(0|A)|0:0,e[55910]=r,A=(0|P(t,e[33037]))/16|0,e[50779]=A,e[50780]=(0|P(P(A,e[50985]),15))/100;break c}tn(t>>8,A,e[r+8>>2],e[r+12>>2],o)}s=0,A=e[50757]+1|0,e[50757]=(0|A)<=169?A:0}if(u[218920]=s,!((o=e[51290])>>>0>2]=0,e[A>>2]=0,e[A+24>>2]=e[34438];s:if(2&(A=e[32538])){if(o=e[34388],(-2&A)==2&&(!(r=t?o:0)|e[r>>2]!=8||(0|(r=e[r+28>>2]))!=e[34389]&&(e[34389]=r)),s=1,(0|t)<2)break s;for(;;){r=t?o+P(s,36)|0:0;n:{c:switch(0|A){case 2:case 3:if(!r|e[r>>2]!=8||(0|(r=e[r+28>>2]))==e[34389])break n;e[34389]=r;break n;case 0:break c;default:break n}(A=e[34440])?(ct[0|A](n,0,r),t=e[34436],A=e[32538]):A=0}if(!((0|(s=s+1|0))<(0|t)))break}}else if((A=e[34440])&&0|ct[0|A](n,r,e[34388]))break r;if(!oA(1)&&!(170-((0|(A=e[50757]-e[50758]|0))<=0?A+170|0:A)|0||(A=e[34388],e[A>>2]=0,e[A+4>>2]=e[34437],e[A+24>>2]=e[34438],me(1))))break}if(t=0,2&l[130152]||!(A=e[34440])||!(0|ct[0|A](0,0,e[34388])))break A}me(2),t=268439295}if((0|t)<=268437502){if(!t|(0|t)==268436479|(0|t)!=268437247)break e;return}}}function oA(A){var t,r=0,a=0,s=0,n=0,o=0,c=0,f=0,m=0,p=0,I=0,v=0,T=0,O=0,Z=0,ee=0,ce=0,he=0,ye=0,Qe=0,We=0,Ke=0;J=t=J-720|0,r=e[47198],A||(e[36443]=0,e[36442]=1,e[36444]=0,e[36440]=0,e[36441]=0,A=e[50758],e[36454]=A,e[36427]=-1,e[36424]=-1,e[36446]=0,e[36447]=0,e[36439]=-1,e[36426]=0,e[36455]=A,e[36448]=0,e[36449]=0,e[36450]=0,e[36451]=0,e[36452]=0,e[36453]=0,Oa(),e[36427]=-1,A=216192+(e[50758]<<4)|0,e[A>>2]=5,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,e[36426]=0,e[36438]&&(e[36438]=0,A=216192+(e[50758]<<4)|0,e[A>>2]=14,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0));e:{A:if(!((0|(A=e[36442]))>997|e[36423]<=(0|A)))for(O=r>>>1&1,Z=t+48|4,ee=t+348|0,ce=t+652|0,he=e[32322],I=e[32320],ye=t+60|0,Qe=t+648|0,We=t+56|0,Ke=t+620|0,v=t- -64|0;;){if(a=145840+(A<<5)|0,!(A=e[50756])|!e[A>>2]||(e[t+12>>2]=0,rs(A=t+16|0,e[a+8>>2],a,0,t+12|0),r=qn(A),s=l[a+17|0],A=216192+(e[50758]<<4)|0,e[A>>2]=16,e[A+8>>2]=s,e[A+4>>2]=r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),A=1,(0|(s=(0|(r=e[50757]-e[50758]|0))<=0?r+170|0:r))<=(0|((r=l[a+17|0])?(0|r)==2?25:15:10)))break e;if(m=e[36442],2&l[0|a])for(p=2047&M[a+4>>1];;){if(s=e[36443],c=127&(r=e[198304+(s<<2)>>2])){A=r>>>8|0,e[36443]=s+1;r:{s:{switch((31&r)-2|0){case 0:Ss(96&r|8,A),Os(2);break r;case 5:if((0|A)>=e[34064]||!e[4+(c=136272+(s=A<<4)|0)>>2])break r;dr(10,0),A=216192+(e[50758]<<4)|0,e[A>>2]=6,c=e[c+4>>2],e[A+8>>2]=e[8+(s+136272|0)>>2]+44,e[A+12>>2]=5376,e[A+4>>2]=c;break s;case 8:if((0|((0|(s=e[50757]-e[50758]|0))<=0?s+170:s))<6)break r;c=e[47353],s=216192+(e[50758]<<4)|0,e[s>>2]=778,e[s+8>>2]=A,e[s+4>>2]=c+p&16777215;break s;case 9:if((0|((0|(s=e[50757]-e[50758]|0))<=0?s+170:s))<6)break r;c=e[33284],s=216192+(e[50758]<<4)|0,e[s>>2]=1034,e[s+8>>2]=A,e[s+4>>2]=c+1&16777215;break s}dr(10,0),s=216192+(e[50758]<<4)|0,e[s>>2]=12,e[s+8>>2]=A,e[s+4>>2]=c}A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0}if(!(128&r))continue}break}(A=l[a+20|0])&&(1&u[e[47192]+48|0]&l[a+17|0]==2|1&u[e[a+8>>2]+7|0]||(e[36426]=0),r=e[47353]+(2047&M[a+4>>1])|0,e[36445]=r,4&A&&((0|((0|(A=e[50757]-e[50758]|0))<=0?A+170:A))<6||(s=e[47568],A=216192+(e[50758]<<4)|0,e[A>>2]=522,e[A+8>>2]=s,e[A+4>>2]=16777215&r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0)),1&u[a+20|0]&&(r=M[a+4>>1],s=e[36444],e[36444]=s+1,(0|((0|(A=e[50757]-e[50758]|0))<=0?A+170:A))<6||(p=e[36445],c=e[47355],A=216192+(e[50758]<<4)|0,e[A>>2]=266,e[A+8>>2]=s+c,e[A+4>>2]=16777215&p|(63488&r)<<13,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0))),(0|(A=e[36441]))>0&&(r=216192+(e[36425]<<4)|0,e[r+4>>2]||(e[r+4>>2]=A),e[36441]=0),A=m+1<<5,r=m-1<<5,!(s=l[a+18|0])|2&l[e[a+8>>2]+7|0]||dr(s,1),c=A+145840|0,n=r+145840|0,p=1;r:{s:{if(e[47198]&&(f=e[a+8>>2],l[f+10|0]!=15)){n:if(l[a+17|0]==2)switch(l[n+17|0]-3|0){case 0:case 5:break s;default:break n}p=0,rs(t+704|0,f,a,O,0),(0|((0|(A=e[50757]-e[50758]|0))<=0?A+170:A))<6||(r=e[36445],A=216192+(e[50758]<<4)|0,e[A>>2]=1802,e[A+4>>2]=16777215&r,r=e[t+708>>2],e[A+8>>2]=e[t+704>>2],e[A+12>>2]=r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0)}n:switch(l[a+17|0]){case 0:dr(e[a+12>>2],0),u[a+23|0]=l[e[a+8>>2]+14|0];break r;case 4:r=e[a+8>>2],(0|(A=l[c+17|0]))==2|!l[c+20|0]&(0|A)==3||(b[a>>1]=8192|M[a>>1]),2&l[r+7|0]&&(e[t+88>>2]=0,e[t+92>>2]=0,e[t+80>>2]=0,e[t+84>>2]=0,e[t+72>>2]=0,e[t+76>>2]=0,e[v>>2]=0,e[v+4>>2]=0,e[t+56>>2]=0,e[t+60>>2]=0,e[t+48>>2]=0,e[t+52>>2]=0,tr(0,1,a,t+552|0,145784),e[t+56>>2]=e[t+620>>2],e[v>>2]=e[t+640>>2],e[36424]<0&&(s=l[c+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[12+(A=216192+(A<<4)|0)>>2]=s,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,p=l[c+22|0],s=l[c+21|0],c=e[129280+(l[a+16|0]<<2)>>2],(0|(A=e[36424]))<0|(0|(f=e[36440]))<=0||e[4+(A=216192+(A<<4)|0)>>2]||(e[A+4>>2]=f),A=e[50758],e[36424]=A,e[36440]=0,e[(A=216192+(A<<4)|0)>>2]=9,e[A+4>>2]=0,p|=s<<16,s=(0|s)==255,e[A+12>>2]=s?3604556:p,e[A+8>>2]=s?I:c,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),QA(r,0,t+48|0,a,0)),tr(0,0,a,t+552|0,145784),e[t+552>>2]=4|e[t+552>>2],(0|(A=e[36440]))<=0||(0|(r=e[36424]))<0||(e[4+(r=216192+(r<<4)|0)>>2]||(e[r+4>>2]=A),e[36440]=0),e[36426]=0,e[36439]=-1,e[36455]=e[50758],Oa(),e[36427]=-1,e[36422]=0,(A=e[t+624>>2])&&(s=A,A=e[t+644>>2],ys(s,2,e[t+596>>2]<<1,e[t+552>>2],0,A?(A<<5)/100|0:32)),e[36426]=0;break r;case 6:tr(0,0,a,t+552|0,145784),8&l[0|a]&&(A=e[a+12>>2],(0|(r=e[36440]))<=0||(0|(s=e[36424]))<0||(e[4+(s=216192+(s<<4)|0)>>2]||(e[s+4>>2]=r),e[36440]=0),e[36426]=0,e[36439]=-1,e[36455]=e[50758],Oa(),e[36427]=-1,e[36422]=0,(r=e[t+624>>2])&&(s=A,A=e[t+644>>2],ys(r,2,e[t+596>>2]<<1,e[t+552>>2],s,A?(A<<5)/100|0:32))),A=e[a+12>>2],(0|(r=e[36440]))<=0||(0|(s=e[36424]))<0||(e[4+(s=216192+(s<<4)|0)>>2]||(e[s+4>>2]=r),e[36440]=0),e[36426]=0,e[36439]=-1,e[36455]=e[50758],Oa(),e[36427]=-1,e[36422]=0,(r=e[t+624>>2])&&(s=A,A=e[t+644>>2],ys(r,2,e[t+596>>2]<<1,e[t+552>>2],s,A?(A<<5)/100|0:32)),e[36426]=0;break r;case 5:s=e[a+8>>2],e[Z+40>>2]=0,e[(A=Z)+32>>2]=0,e[A+36>>2]=0,e[A+24>>2]=0,e[A+28>>2]=0,e[A+16>>2]=0,e[A+20>>2]=0,e[A+8>>2]=0,e[A+12>>2]=0,e[A>>2]=0,e[A+4>>2]=0,e[t+48>>2]=4;c:{o:{g:{l:switch(l[c+17|0]-2|0){case 0:r=l[a+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[12+(A=216192+(A<<4)|0)>>2]=r,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,r=l[a+22|0],f=l[a+21|0],p=e[129280+(l[a+16|0]<<2)>>2],(0|(A=e[36424]))<0|(0|(o=e[36440]))<=0||e[4+(A=216192+(A<<4)|0)>>2]||(e[A+4>>2]=o),A=(o=!(255&~f))?I:p,p=1;break o;case 1:break l;default:break g}if(!l[c+20|0]){r=l[c+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[12+(A=216192+(A<<4)|0)>>2]=r,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,r=l[c+22|0],f=l[c+21|0],p=e[129280+(l[c+16|0]<<2)>>2],(0|(A=e[36424]))<0|(0|(o=e[36440]))<=0||e[4+(A=216192+(A<<4)|0)>>2]||(e[A+4>>2]=o),A=(o=!(255&~f))?I:p,p=1;break o}}if(p=0,e[36424]>=0)break c;r=l[c+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[12+(A=216192+(A<<4)|0)>>2]=r,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,r=l[a+22|0],f=l[a+21|0],p=e[129280+(l[a+16|0]<<2)>>2],(0|(A=e[36424]))<0|(0|(o=e[36440]))<=0||e[4+(A=216192+(A<<4)|0)>>2]||(e[A+4>>2]=o),A=(o=!(255&~f))?I:p,p=0}T=e[50758],e[36424]=T,e[36440]=0,e[(T=216192+(T<<4)|0)>>2]=9,e[T+4>>2]=0,e[T+12>>2]=o?3604556:255&r|(255&f)<<16,e[T+8>>2]=A,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0}c:if(!(2&l[s+7|0])&l[n+17|0]!=2)8&l[0|a]&&dr(50,0);else{if(tr(0,1,a,t+552|0,145784),e[t+56>>2]=e[t+620>>2],e[t+64>>2]=e[t+640>>2],QA(s,0,t+48|0,a,0),!(8&l[0|a]))break c;dr(25,1),QA(s,0,t+48|0,a,0)}c:if(p){if(e[36455]!=e[36454])break c;e[36455]=e[50758]}else b[a>>1]=8192|M[a>>1];if(tr(0,0,a,t+552|0,145784),e[t+56>>2]=e[t+620>>2],e[t+64>>2]=e[t+640>>2],e[t+76>>2]=e[t+636>>2],e[t+80>>2]=e[t+656>>2],QA(s,0,t+48|0,a,0),l[a+20|0]|l[84+(145840+(m<<5)|0)|0]||((0|(A=l[c+17|0]))==7&&(dr(20,0),A=l[c+17|0]),(255&A)!=6))break r;dr(12,0);break r;case 7:c:{o:{g:{l:{i:switch((A=l[c+17|0])-2|0){case 1:break l;case 0:break i;default:break g}r=l[a+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[12+(A=216192+(A<<4)|0)>>2]=r,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,p=l[a+22|0],A=l[a+21|0],s=e[129280+(l[a+16|0]<<2)>>2],(0|(r=e[36424]))<0|(0|(f=e[36440]))<=0||e[4+(r=216192+(r<<4)|0)>>2]||(e[r+4>>2]=f),r=(f=!(255&~A))?I:s;break o}r=l[c+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[12+(A=216192+(A<<4)|0)>>2]=r,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,p=l[c+22|0],A=l[c+21|0],s=e[129280+(l[c+16|0]<<2)>>2],(0|(r=e[36424]))<0|(0|(f=e[36440]))<=0||e[4+(r=216192+(r<<4)|0)>>2]||(e[r+4>>2]=f),r=(f=!(255&~A))?I:s;break o}if(e[36424]>=0)break c;r=l[a+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[12+(A=216192+(A<<4)|0)>>2]=r,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,p=l[a+22|0],A=l[a+21|0],s=e[129280+(l[a+16|0]<<2)>>2],(0|(r=e[36424]))<0|(0|(f=e[36440]))<=0||e[4+(r=216192+(r<<4)|0)>>2]||(e[r+4>>2]=f),r=(f=!(255&~A))?I:s}s=e[50758],e[36424]=s,e[36440]=0,e[(s=216192+(s<<4)|0)>>2]=9,e[s+4>>2]=0,e[s+12>>2]=f?3604556:(255&A)<<16|p,e[s+8>>2]=r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,A=l[c+17|0]}c:{o:{g:switch((255&A)-2|0){case 1:if(l[c+20|0])break o;break;case 0:break g;default:break o}if(e[36455]!=e[36454])break c;e[36455]=e[50758];break c}b[a>>1]=8192|M[a>>1]}tr(0,0,a,t+552|0,145784),e[t+56>>2]=0,e[t+60>>2]=0,e[v>>2]=0,e[v+4>>2]=0,e[t+80>>2]=0,e[t+84>>2]=0,e[t+72>>2]=0,e[t+76>>2]=0,e[t+88>>2]=0,e[t+56>>2]=e[t+620>>2],e[v>>2]=e[t+640>>2],e[t+80>>2]=e[t+656>>2],e[t+48>>2]=0,e[t+52>>2]=0,e[t+76>>2]=e[t+636>>2],e[t+92>>2]=e[t+596>>2]<<1,8&l[0|a]&&QA(e[a+8>>2],0,t+48|0,a,0),QA(e[a+8>>2],0,t+48|0,a,0);break r;case 8:if(e[t+88>>2]=0,e[t+92>>2]=0,e[t+80>>2]=0,e[t+84>>2]=0,e[t+72>>2]=0,e[t+76>>2]=0,e[v>>2]=0,e[v+4>>2]=0,e[t+56>>2]=0,e[t+60>>2]=0,e[t+48>>2]=0,e[t+52>>2]=0,1&u[0|a]||(r=l[a+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[12+(A=216192+(A<<4)|0)>>2]=r,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,s=l[a+22|0],r=l[a+21|0],p=e[129280+(l[a+16|0]<<2)>>2],(0|(A=e[36424]))<0|(0|(f=e[36440]))<=0||e[4+(A=216192+(A<<4)|0)>>2]||(e[A+4>>2]=f),A=e[50758],e[36424]=A,e[36440]=0,e[(A=216192+(A<<4)|0)>>2]=9,e[A+4>>2]=0,s|=r<<16,r=(0|r)==255,e[A+12>>2]=r?3604556:s,e[A+8>>2]=r?I:p,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),l[n+17|0]==8&&(e[36426]=0),tr(0,0,a,t+552|0,145784),e[t+56>>2]=e[t+620>>2],e[t+64>>2]=e[t+640>>2],e[t+92>>2]=e[t+596>>2]<<1,l[c+17|0]==2){e[36455]==e[36454]&&(e[36455]=e[50758]),QA(e[a+8>>2],0,t+48|0,a,0);break r}if(!(!(1&u[0|a])|l[n+17|0]!=2)){QA(e[a+8>>2],0,t+48|0,a,0);break r}e[36426]=0,QA(e[a+8>>2],0,t+48|0,a,0),e[36426]=0;break r;case 3:e[t+88>>2]=0,e[t+92>>2]=0,e[t+80>>2]=0,e[t+84>>2]=0,e[t+72>>2]=0,e[t+76>>2]=0,e[v>>2]=0,e[v+4>>2]=0,e[t+56>>2]=0,e[t+60>>2]=0,e[t+48>>2]=0,e[t+52>>2]=0,s=e[e[a+8>>2]+4>>2],1&u[0|a]||(r=l[a+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[12+(A=216192+(A<<4)|0)>>2]=r,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,p=l[a+22|0],r=l[a+21|0],f=e[129280+(l[a+16|0]<<2)>>2],(0|(A=e[36424]))<0|(0|(o=e[36440]))<=0||e[4+(A=216192+(A<<4)|0)>>2]||(e[A+4>>2]=o),A=e[50758],e[36424]=A,e[36440]=0,e[(A=216192+(A<<4)|0)>>2]=9,e[A+4>>2]=0,p|=r<<16,r=(0|r)==255,e[A+12>>2]=r?3604556:p,e[A+8>>2]=r?I:f,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),l[n+17|0]==8&&(e[36426]=0),l[c+17|0]!=2|e[36455]!=e[36454]||(e[36455]=e[50758]),tr(0,0,a,t+552|0,145784),(0|(A=e[t+584>>2]-l[a+18|0]|0))>0&&dr(A,1),e[t+56>>2]=e[t+620>>2],e[t+64>>2]=e[t+640>>2],e[t+76>>2]=e[t+636>>2],e[t+80>>2]=e[t+656>>2],e[t+92>>2]=e[t+596>>2]<<1,QA(e[a+8>>2],0,t+48|0,a,s<<24>>31&5);break r;case 2:break n;default:break r}f=e[a+8>>2]}m=l[a+3|0],e[t+88>>2]=0,e[t+92>>2]=0,e[t+80>>2]=0,e[t+84>>2]=0,e[t+72>>2]=0,e[t+76>>2]=0,e[v>>2]=0,e[v+4>>2]=0,e[t+56>>2]=0,e[t+60>>2]=0,e[t+48>>2]=0,e[t+52>>2]=0,tr(0,0,a,t+552|0,145784),A=e[t+628>>2],e[t+56>>2]=A,e[t+92>>2]=e[t+596>>2]<<1;s:{if(!A||(o=0,s=Qe,r=ye,2&l[t+552|0])){if(l[n+17|0]?(o=0,tr(0,0,n,t+400|0,0),A=e[t+476>>2],e[t+56>>2]=A,!A|!(2&l[t+400|0])||(e[t+72>>2]=e[t+496>>2],o=1),r=e[t+512>>2],e[t+84>>2]=e[t+508>>2],e[t+88>>2]=r):o=0,A)break s;e[t+48>>2]=1,e[t+52>>2]=1,s=Ke,r=We}e[r>>2]=e[s>>2]}e[t+64>>2]=e[t+640>>2],r=l[a+16|0],A=0,(s=l[a+7|0])?(Rn(s,t+96|0),r=Oi(e[t+220>>2]),(0|(s=e[t+224>>2]))<=0||(A=Oi(s))):r=e[129280+(r<<2)>>2],e[36455]==e[36454]&&(e[36455]=e[50758]),s=(s=15&m)>>>0<2?1:s>>>0>6?3:2;s:{switch(l[n+17|0]-3|0){case 2:case 4:o=l[a+19|0],n=e[50758],e[36425]=n,e[36441]=0,e[12+(n=216192+(n<<4)|0)>>2]=o,e[n+8>>2]=A,e[n>>2]=8,e[n+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,o=l[a+22|0],n=l[a+21|0],(0|(A=e[36440]))<=0||(0|(m=e[36424]))<0||e[4+(m=216192+(m<<4)|0)>>2]||(e[m+4>>2]=A),A=e[50758],e[36424]=A,e[36440]=0,e[(A=216192+(A<<4)|0)>>2]=9,e[A+4>>2]=0,o|=n<<16,n=(0|n)==255,e[A+12>>2]=n?3604556:o,e[A+8>>2]=n?I:r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,QA(f,1,t+48|0,a,s);break s;case 0:case 5:o=l[a+19|0],n=e[50758],e[36425]=n,e[36441]=0,e[12+(n=216192+(n<<4)|0)>>2]=o,e[n+8>>2]=A,e[n>>2]=8,e[n+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,QA(f,1,t+48|0,a,s),o=l[a+22|0],n=l[a+21|0],(0|(A=e[36440]))<=0||(0|(m=e[36424]))<0||e[4+(m=216192+(m<<4)|0)>>2]||(e[m+4>>2]=A),A=e[50758],e[36424]=A,e[36440]=0,e[(A=216192+(A<<4)|0)>>2]=9,e[A+4>>2]=0,o|=n<<16,n=(0|n)==255,e[A+12>>2]=n?3604556:o,e[A+8>>2]=n?I:r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0;break s}o?(o=l[a+22|0],(0|(n=e[36440]))<=0||(0|(m=e[36424]))<0||e[4+(m=216192+(m<<4)|0)>>2]||(e[m+4>>2]=n),n=e[50758],e[36424]=n,e[36440]=0,e[(n=216192+(n<<4)|0)>>2]=9,e[n+4>>2]=0,e[n+12>>2]=(o|o<<16)-983040,e[n+8>>2]=he,n=e[50758]+1|0,e[50758]=(0|n)<=169?n:0,o=l[a+19|0],n=e[50758],e[36425]=n,e[36441]=0,e[(n=216192+(n<<4)|0)>>2]=8,e[n+4>>2]=0,e[n+12>>2]=o-1,e[n+8>>2]=A,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,QA(f,1,t+48|0,a,s),n=l[a+21|0],o=l[a+22|0],(0|(A=e[36440]))<=0||(0|(m=e[36424]))<0||e[4+(m=216192+(m<<4)|0)>>2]||(e[m+4>>2]=A),A=e[50758],e[36424]=A,e[36440]=0,e[(A=216192+(A<<4)|0)>>2]=9,e[A+4>>2]=0,o|=n<<16,n=(0|n)==255,e[A+12>>2]=n?3604556:o,e[A+8>>2]=n?I:r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0):(1&u[0|a]||(o=l[a+19|0],n=e[50758],e[36425]=n,e[36441]=0,e[12+(n=216192+(n<<4)|0)>>2]=o,e[n+8>>2]=A,e[n>>2]=8,e[n+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,o=l[a+22|0],n=l[a+21|0],(0|(A=e[36440]))<=0||(0|(m=e[36424]))<0||e[4+(m=216192+(m<<4)|0)>>2]||(e[m+4>>2]=A),A=e[50758],e[36424]=A,e[36440]=0,e[(A=216192+(A<<4)|0)>>2]=9,e[A+4>>2]=0,o|=n<<16,n=(0|n)==255,e[A+12>>2]=n?3604556:o,e[A+8>>2]=n?I:r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),QA(f,1,t+48|0,a,s))}!e[47198]|1^p||(rs(t+704|0,e[a+8>>2],a,O,0),(0|((0|(A=e[50757]-e[50758]|0))<=0?A+170:A))<6||(r=e[36445],A=216192+(e[50758]<<4)|0,e[A>>2]=1802,e[A+4>>2]=16777215&r,r=e[t+708>>2],e[A+8>>2]=e[t+704>>2],e[A+12>>2]=r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0)),e[t+56>>2]=e[t+620>>2],e[t+84>>2]=0,e[t+88>>2]=0,e[t+64>>2]=e[t+640>>2],r=e[t+632>>2],e[t+68>>2]=r,A=ce;s:{if(!r&&(!l[c+17|0]||(e[t+72>>2]=0,tr(0,0,c,t+248|0,0),e[t+52>>2]=1,A=e[t+368>>2],e[t+84>>2]=e[t+364>>2],e[t+88>>2]=A,r=e[t+328>>2],e[t+68>>2]=r,A=ee,!r)))break s;e[t+72>>2]=e[A>>2]}QA(f,2,t+48|0,a,s)}if(A=e[36442]+1|0,e[36442]=A,(0|A)>997)break A;if(!(e[36423]>(0|A)))break}(0|(A=e[36440]))<=0||(0|(r=e[36424]))<0||(e[4+(r=216192+(r<<4)|0)>>2]||(e[r+4>>2]=A),e[36440]=0),e[36426]=0,e[36439]=-1,e[36455]=e[50758],Oa(),e[36427]=-1,A=0,e[36423]<=0||(r=e[47568],s=e[33284],(0|((0|(A=e[50757]-e[50758]|0))<=0?A+170:A))>=6&&(A=216192+(e[50758]<<4)|0,e[A>>2]=1290,e[A+8>>2]=r,e[A+4>>2]=16777215&s,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),e[36423]=0,A=0)}return J=t+720|0,A}function BA(A,t,r,a){var s,n=0,o=0,c=0,f=0,m=0,p=0,I=0,v=0,T=0,O=0,Z=0,ee=0,ce=0,he=0,ye=0,Qe=0,We=0,Ke=0,rA=0,cA=0,MA=0,zA=0,et=0,at=0,dt=0;J=s=J-48|0;e:{if(r>>>0<=2){for(MA=e[124732+(r<<=2)>>2],zA=e[r+124720>>2];(0|(r=e[t+4>>2]))==e[t+104>>2]?r=bA(t):(e[t+4>>2]=r+1,r=l[0|r]),(0|r)==32|r-9>>>0<5;);T=1;A:{r:switch(r-43|0){case 0:case 2:break r;default:break A}T=(0|r)==45?-1:1,(0|(r=e[t+4>>2]))==e[t+104>>2]?r=bA(t):(e[t+4>>2]=r+1,r=l[0|r])}A:{r:{for(;;){if(u[c+84056|0]==(32|r)){if(c>>>0>6||((0|(r=e[t+4>>2]))==e[t+104>>2]?r=bA(t):(e[t+4>>2]=r+1,r=l[0|r])),(0|(c=c+1|0))!=8)continue;break r}break}if((0|c)!=3){if((0|c)==8)break r;if(!a|c>>>0<4)break A;if((0|c)==8)break r}if((0|(r=e[t+116>>2]))>0|(0|r)>=0&&(e[t+4>>2]=e[t+4>>2]-1),!(!a|c>>>0<4))for(r=(0|r)<0;r||(e[t+4>>2]=e[t+4>>2]-1),(c=c-1|0)>>>0>3;);}J=I=J-16|0,Ee(Re(Re(0|T)*Re(1/0))),(t=2147483647&(f=X(2)))-8388608>>>0<=2130706431?(r=t,r<<=25,a=1065353216+(t=t>>>7|0)|0):(r=f<<25,a=f>>>7|2147418112,t>>>0>=2139095040||(r=0,a=0,t&&(ea(I,r=t,0,0,0,(t=Ye(t))+81|0),p=e[I>>2],m=e[I+4>>2],r=e[I+8>>2],a=65536^e[I+12>>2]|16265-t<<16))),e[s>>2]=p,e[s+4>>2]=m,e[s+8>>2]=r,e[s+12>>2]=-2147483648&f|a,J=I+16|0,p=e[s+8>>2],m=e[s+12>>2],f=e[s>>2],v=e[s+4>>2];break e}A:{r:{s:if(!c){for(c=0;;){if(u[c+84473|0]!=(32|r))break s;if(c>>>0>1||((0|(r=e[t+4>>2]))==e[t+104>>2]?r=bA(t):(e[t+4>>2]=r+1,r=l[0|r])),(0|(c=c+1|0))==3)break}break r}switch(0|c){case 0:if((0|r)==48){if((0|(c=e[t+4>>2]))==e[t+104>>2]?c=bA(t):(e[t+4>>2]=c+1,c=l[0|c]),(-33&c)==88){J=o=J-432|0,(0|(r=e[t+4>>2]))==e[t+104>>2]?c=bA(t):(e[t+4>>2]=r+1,c=l[0|r]);s:{n:{for(;;){if((0|c)!=48){if((0|c)!=46)break s;if((0|(r=e[t+4>>2]))!=e[t+104>>2]){e[t+4>>2]=r+1,c=l[0|r];break n}break}(0|(r=e[t+4>>2]))!=e[t+104>>2]?(cA=1,e[t+4>>2]=r+1,c=l[0|r]):(cA=1,c=bA(t))}c=bA(t)}if(ee=1,(0|c)==48){for(;ce=(r=ce)-1|0,he=he-!r|0,(0|(r=e[t+4>>2]))==e[t+104>>2]?c=bA(t):(e[t+4>>2]=r+1,c=l[0|r]),(0|c)==48;);cA=1}}for(v=1073676288;;){s:{r=32|c;n:{if(!((et=c-48|0)>>>0<10)){if((0|c)!=46&r-97>>>0>=6)break s;if((0|c)==46){if(ee)break s;ee=1,ce=p,he=m;break n}}r=(0|c)>57?r-87|0:et,(0|m)<=0&p>>>0<=7|(0|m)<0?n=r+(n<<4)|0:!m&p>>>0<=28?(Pa(o+48|0,r),PA(o+32|0,Ke,rA,f,v,0,0,0,1073414144),Ke=e[o+32>>2],rA=e[o+36>>2],f=e[o+40>>2],v=e[o+44>>2],PA(o+16|0,e[o+48>>2],e[o+52>>2],e[o+56>>2],e[o+60>>2],Ke,rA,f,v),$r(o,e[o+16>>2],e[o+20>>2],e[o+24>>2],e[o+28>>2],I,Z,Qe,We),Qe=e[o+8>>2],We=e[o+12>>2],I=e[o>>2],Z=e[o+4>>2]):O|!r||(PA(o+80|0,Ke,rA,f,v,0,0,0,1073610752),$r(o- -64|0,e[o+80>>2],e[o+84>>2],e[o+88>>2],e[o+92>>2],I,Z,Qe,We),Qe=e[o+72>>2],We=e[o+76>>2],O=1,I=e[o+64>>2],Z=e[o+68>>2]),m=(p=p+1|0)?m:m+1|0,cA=1}(0|(r=e[t+4>>2]))!=e[t+104>>2]?(e[t+4>>2]=r+1,c=l[0|r]):c=bA(t);continue}break}s:if(cA){if((0|m)<=0&p>>>0<=7|(0|m)<0)for(f=p,v=m;n<<=4,(0|(f=f+1|0))!=8|(v=f?v:v+1|0););n:{c:{o:{if((-33&c)==80){if(f=bn(t,a),v=r=$,f|(0|r)!=-2147483648)break n;if(a){if((0|(r=e[t+116>>2]))>0|(0|r)>=0)break o;break c}I=0,Z=0,Ja(t,0,0),r=0,t=0;break s}if(f=0,v=0,e[t+116>>2]<0)break n}e[t+4>>2]=e[t+4>>2]-1}f=0,v=0}if(n)if(r=f+((t=ee?ce:p)<<2)|0,t=(m=(ee?he:m)<<2|t>>>30)+v|0,(p=r-32|0)>>>0>0-MA>>>0&(0|(t=m=(r>>>0>>0?t+1|0:t)-(r>>>0<32)|0))>=0|(0|t)>0)e[56798]=68,Pa(o+160|0,T),PA(o+144|0,e[o+160>>2],e[o+164>>2],e[o+168>>2],e[o+172>>2],-1,-1,-1,2147418111),PA(o+128|0,e[o+144>>2],e[o+148>>2],e[o+152>>2],e[o+156>>2],-1,-1,-1,2147418111),I=e[o+128>>2],Z=e[o+132>>2],r=e[o+140>>2],t=e[o+136>>2];else if((0|m)>=(0|(r=(t=MA-226|0)>>31))&t>>>0<=p>>>0|(0|r)<(0|m)){if((0|n)>=0)for(;$r(o+416|0,I,Z,Qe,We,0,0,0,-1073807360),$r(o+400|0,I,Z,Qe,We,(t=r=(0|(t=l0(I,Z,Qe,We,1073610752)))>=0)?e[o+416>>2]:I,t?e[o+420>>2]:Z,t?e[o+424>>2]:Qe,t?e[o+428>>2]:We),p=(t=p)-1|0,m=m-!t|0,Qe=e[o+408>>2],We=e[o+412>>2],I=e[o+400>>2],Z=e[o+404>>2],(0|(n=r|n<<1))>=0;);t=m-((MA>>31)+(p>>>0>>0)|0)|0,(0|(r=(r=32+(p-MA|0)|0)>>>0>>0&(0|(t=r>>>0<32?t+1|0:t))<=0|(0|t)<0?(0|r)>0?r:0:zA))>=113?(Pa(o+384|0,T),ce=e[o+392>>2],he=e[o+396>>2],Ke=e[o+384>>2],rA=e[o+388>>2],f=0,t=0):(Nr(o+352|0,Ws(1,144-r|0)),Pa(o+336|0,T),Ke=e[o+336>>2],rA=e[o+340>>2],ce=e[o+344>>2],he=e[o+348>>2],zi(o+368|0,e[o+352>>2],e[o+356>>2],e[o+360>>2],e[o+364>>2],Ke,rA,ce,he),ye=e[o+376>>2],at=e[o+380>>2],f=e[o+372>>2],t=e[o+368>>2]),sn(o+320|0,(a=!(1&n)&!!(0|uA(I,Z,Qe,We,0,0,0,0))&(0|r)<32)+n|0),PA(o+304|0,Ke,rA,ce,he,e[o+320>>2],e[o+324>>2],e[o+328>>2],e[o+332>>2]),r=t,$r(o+272|0,e[o+304>>2],e[o+308>>2],e[o+312>>2],e[o+316>>2],t,f,ye,at),PA(o+288|0,Ke,rA,ce,he,(t=a)?0:I,t?0:Z,t?0:Qe,t?0:We),$r(o+256|0,e[o+288>>2],e[o+292>>2],e[o+296>>2],e[o+300>>2],e[o+272>>2],e[o+276>>2],e[o+280>>2],e[o+284>>2]),Vn(o+240|0,e[o+256>>2],e[o+260>>2],e[o+264>>2],e[o+268>>2],r,f,ye,at),uA(t=e[o+240>>2],a=e[o+244>>2],r=e[o+248>>2],f=e[o+252>>2],0,0,0,0)||(e[56798]=68),cr(o+224|0,t,a,r,f,p),I=e[o+224>>2],Z=e[o+228>>2],r=e[o+236>>2],t=e[o+232>>2]}else e[56798]=68,Pa(o+208|0,T),PA(o+192|0,e[o+208>>2],e[o+212>>2],e[o+216>>2],e[o+220>>2],0,0,0,65536),PA(o+176|0,e[o+192>>2],e[o+196>>2],e[o+200>>2],e[o+204>>2],0,0,0,65536),I=e[o+176>>2],Z=e[o+180>>2],r=e[o+188>>2],t=e[o+184>>2];else Nr(o+112|0,0*+(0|T)),I=e[o+112>>2],Z=e[o+116>>2],r=e[o+124>>2],t=e[o+120>>2]}else{n:{c:{if((0|(r=e[t+116>>2]))>0|(0|r)>=0){if(r=e[t+4>>2],e[t+4>>2]=r-1,!a)break c;if(e[t+4>>2]=r-2,!ee)break n;e[t+4>>2]=r-3;break n}if(a)break n}Ja(t,0,0)}Nr(o+96|0,0*+(0|T)),I=e[o+96>>2],Z=e[o+100>>2],r=e[o+108>>2],t=e[o+104>>2]}e[s+16>>2]=I,e[s+20>>2]=Z,e[s+24>>2]=t,e[s+28>>2]=r,J=o+432|0,p=e[s+24>>2],m=e[s+28>>2],f=e[s+16>>2],v=e[s+20>>2];break e}e[t+116>>2]<0||(e[t+4>>2]=e[t+4>>2]-1)}c=t,ye=T,o=a,t=0,T=0,J=n=J-8976|0,at=(et=0-MA|0)-zA|0;s:{n:{for(;;){if((0|r)!=48){if((0|r)!=46)break s;if((0|(r=e[c+4>>2]))!=e[c+104>>2]){e[c+4>>2]=r+1,r=l[0|r];break n}break}(0|(t=e[c+4>>2]))!=e[c+104>>2]?(e[c+4>>2]=t+1,r=l[0|t]):r=bA(c),t=1}r=bA(c)}if(O=1,(0|r)==48){for(;p=(t=p)-1|0,m=m-!t|0,(0|(t=e[c+4>>2]))==e[c+104>>2]?r=bA(c):(e[c+4>>2]=t+1,r=l[0|t]),(0|r)==48;);t=1}}e[n+784>>2]=0;s:{n:{c:{o:{g:{if((a=(0|r)==46)|(I=r-48|0)>>>0<=9)for(;;){l:{if(1&a){if(!O){p=f,m=v,O=1;break l}a=!t;break g}v=(f=f+1|0)?v:v+1|0,(0|T)<=2044?(cA=(0|r)==48?cA:f,t=(n+784|0)+(T<<2)|0,ee&&(I=(P(e[t>>2],10)+r|0)-48|0),e[t>>2]=I,t=1,ee=(r=(0|(a=ee+1|0))==9)?0:a,T=r+T|0):(0|r)!=48&&(e[n+8960>>2]=1|e[n+8960>>2],cA=18396)}if((0|(r=e[c+4>>2]))==e[c+104>>2]?r=bA(c):(e[c+4>>2]=r+1,r=l[0|r]),!((a=(0|r)==46)|(I=r-48|0)>>>0<10))break}if(p=O?p:f,m=O?m:v,!(!t|(-33&r)!=69)){if(I=bn(c,o),Z=t=$,!(I|(0|t)!=-2147483648)){if(!o)break c;I=0,Z=0,e[c+116>>2]<0||(e[c+4>>2]=e[c+4>>2]-1)}m=m+Z|0,m=(p=p+I|0)>>>0>>0?m+1|0:m;break n}if(a=!t,(0|r)<0)break o}e[c+116>>2]<0||(e[c+4>>2]=e[c+4>>2]-1)}if(!a)break n;e[56798]=28}f=0,v=0,Ja(c,0,0),r=0,t=0;break s}if(t=e[n+784>>2])if(f>>>0>9&(0|v)>=0|(0|v)>0|(0|f)!=(0|p)|(0|m)!=(0|v)|(t>>>zA|0?(0|zA)<=30:0))if(p>>>0>et>>>1>>>0&(0|m)>=0|(0|m)>0)e[56798]=68,Pa(n+96|0,ye),PA(n+80|0,e[n+96>>2],e[n+100>>2],e[n+104>>2],e[n+108>>2],-1,-1,-1,2147418111),PA(n- -64|0,e[n+80>>2],e[n+84>>2],e[n+88>>2],e[n+92>>2],-1,-1,-1,2147418111),f=e[n+64>>2],v=e[n+68>>2],r=e[n+76>>2],t=e[n+72>>2];else if((r=p>>>0<(t=MA-226|0)>>>0)&(0|m)<=(0|(t>>=31))|(0|t)>(0|m))e[56798]=68,Pa(n+144|0,ye),PA(n+128|0,e[n+144>>2],e[n+148>>2],e[n+152>>2],e[n+156>>2],0,0,0,65536),PA(n+112|0,e[n+128>>2],e[n+132>>2],e[n+136>>2],e[n+140>>2],0,0,0,65536),f=e[n+112>>2],v=e[n+116>>2],r=e[n+124>>2],t=e[n+120>>2];else{if(ee){if((0|ee)<=8){for(c=e[(t=(n+784|0)+(T<<2)|0)>>2];c=P(c,10),(0|(ee=ee+1|0))!=9;);e[t>>2]=c}T=T+1|0}if(O=p,!((0|cA)>(0|p)|(0|cA)>=9|(0|p)>17)){if((0|O)==9){Pa(n+192|0,ye),sn(n+176|0,e[n+784>>2]),PA(n+160|0,e[n+192>>2],e[n+196>>2],e[n+200>>2],e[n+204>>2],e[n+176>>2],e[n+180>>2],e[n+184>>2],e[n+188>>2]),f=e[n+160>>2],v=e[n+164>>2],r=e[n+172>>2],t=e[n+168>>2];break s}if((0|O)<=8){Pa(n+272|0,ye),sn(n+256|0,e[n+784>>2]),PA(n+240|0,e[n+272>>2],e[n+276>>2],e[n+280>>2],e[n+284>>2],e[n+256>>2],e[n+260>>2],e[n+264>>2],e[n+268>>2]),Pa(n+224|0,e[124720+(0-O<<2)>>2]),Qr(n+208|0,e[n+240>>2],e[n+244>>2],e[n+248>>2],e[n+252>>2],e[n+224>>2],e[n+228>>2],e[n+232>>2],e[n+236>>2]),f=e[n+208>>2],v=e[n+212>>2],r=e[n+220>>2],t=e[n+216>>2];break s}if(t=27+(P(O,-3)+zA|0)|0,!((r=e[n+784>>2])>>>t|0&&(0|t)<=30)){Pa(n+352|0,ye),sn(n+336|0,r),PA(n+320|0,e[n+352>>2],e[n+356>>2],e[n+360>>2],e[n+364>>2],e[n+336>>2],e[n+340>>2],e[n+344>>2],e[n+348>>2]),Pa(n+304|0,e[124648+(O<<2)>>2]),PA(n+288|0,e[n+320>>2],e[n+324>>2],e[n+328>>2],e[n+332>>2],e[n+304>>2],e[n+308>>2],e[n+312>>2],e[n+316>>2]),f=e[n+288>>2],v=e[n+292>>2],r=e[n+300>>2],t=e[n+296>>2];break s}}for(;!e[(n+784|0)+((T=(r=T)-1|0)<<2)>>2];);if(ee=0,t=(0|O)%9|0){if(a=0,t=(0|O)<0?t+9|0:t,r){for(m=1e9/(0|(p=e[124720+(0-t<<2)>>2]))|0,I=0,c=0;f=(f=I)+(T=((v=e[(I=(n+784|0)+(c<<2)|0)>>2])>>>0)/(p>>>0)|0)|0,e[I>>2]=f,a=(f=!f&(0|a)==(0|c))?a+1&2047:a,O=f?O-9|0:O,I=P(m,v-P(p,T)|0),(0|(c=c+1|0))!=(0|r););I&&(e[(n+784|0)+(r<<2)>>2]=I,r=r+1|0)}else r=0;O=9+(O-t|0)|0}else a=0;for(;;){c=(n+784|0)+(a<<2)|0;n:{for(;;){if(((0|O)!=36|ge[c>>2]>=10384593)&(0|O)>=36)break n;for(T=r+2047|0,I=0,t=r;r=t,p=I,I=(t=e[(T=(n+784|0)+((f=2047&T)<<2)|0)>>2])<<29,t=v=t>>>3|0,!(m=(p=p+I|0)>>>0>>0?t+1|0:t)&p>>>0<1000000001?I=0:p=(t=p)-It(I=gn(t,m,1e9),$,1e9,0)|0,e[T>>2]=p,t=(0|f)!=(r-1&2047)||(0|a)==(0|f)||p?r:f,T=f-1|0,(0|a)!=(0|f););if(ee=ee-29|0,I)break}(0|(a=a-1&2047))==(0|t)&&(c=r=(p=n+784|0)+((t+2046&2047)<<2)|0,m=e[r>>2],r=t-1&2047,e[c>>2]=m|e[p+(r<<2)>>2]),O=O+9|0,e[(n+784|0)+(a<<2)>>2]=I;continue}break}n:{c:for(;;){for(p=r+1&2047,I=(n+784|0)+((r-1&2047)<<2)|0;;){f=(0|O)>45?9:1;o:{for(;;){t=a,c=0;g:{for(;;){if((0|(a=t+c&2047))!=(0|r)&&!((a=e[(n+784|0)+(a<<2)>>2])>>>0<(m=e[124672+(c<<2)>>2])>>>0)){if(a>>>0>m>>>0)break g;if((0|(c=c+1|0))!=4)continue}break}if((0|O)==36){for(p=0,m=0,c=0,f=0,v=0;(0|(a=t+c&2047))==(0|r)&&(e[780+(n+((r=r+1&2047)<<2)|0)>>2]=0),sn(n+768|0,e[(n+784|0)+(a<<2)>>2]),PA(n+752|0,p,m,f,v,0,0,1342177280,1075633366),$r(n+736|0,e[n+752>>2],e[n+756>>2],e[n+760>>2],e[n+764>>2],e[n+768>>2],e[n+772>>2],e[n+776>>2],e[n+780>>2]),f=e[n+744>>2],v=e[n+748>>2],p=e[n+736>>2],m=e[n+740>>2],(0|(c=c+1|0))!=4;);if(Pa(n+720|0,ye),PA(n+704|0,p,m,f,v,e[n+720>>2],e[n+724>>2],e[n+728>>2],e[n+732>>2]),f=e[n+712>>2],v=e[n+716>>2],p=0,m=0,I=e[n+704>>2],Z=e[n+708>>2],(0|(a=(T=(0|(c=(o=ee+113|0)-MA|0))<(0|zA))?(0|c)>0?c:0:zA))<=112)break o;break n}}if(ee=f+ee|0,a=r,(0|t)!=(0|r))break}for(v=1e9>>>f|0,T=~(-1<>2])>>>f|0)|0,e[c>>2]=m,a=(m=!m&(0|t)==(0|a))?a+1&2047:a,O=m?O-9|0:O,c=P(v,o&T),(0|r)!=(0|(t=t+1&2047)););if(!c)continue;if((0|a)!=(0|p)){e[(n+784|0)+(r<<2)>>2]=c,r=p;continue c}e[I>>2]=1|e[I>>2];continue}break}break}Nr(n+656|0,Ws(1,225-a|0)),zi(n+688|0,e[n+656>>2],e[n+660>>2],e[n+664>>2],e[n+668>>2],I,Z,f,v),Ke=e[n+696>>2],rA=e[n+700>>2],Qe=e[n+688>>2],We=e[n+692>>2],Nr(n+640|0,Ws(1,113-a|0)),mn(n+672|0,I,Z,f,v,e[n+640>>2],e[n+644>>2],e[n+648>>2],e[n+652>>2]),Vn(n+624|0,I,Z,f,v,p=e[n+672>>2],m=e[n+676>>2],ce=e[n+680>>2],he=e[n+684>>2]),$r(n+608|0,Qe,We,Ke,rA,e[n+624>>2],e[n+628>>2],e[n+632>>2],e[n+636>>2]),f=e[n+616>>2],v=e[n+620>>2],I=e[n+608>>2],Z=e[n+612>>2]}if((0|(O=t+4&2047))!=(0|r)){n:if((O=e[(n+784|0)+(O<<2)>>2])>>>0<=499999999){if(!O&(t+5&2047)==(0|r))break n;Nr(n+496|0,.25*+(0|ye)),$r(n+480|0,p,m,ce,he,e[n+496>>2],e[n+500>>2],e[n+504>>2],e[n+508>>2]),ce=e[n+488>>2],he=e[n+492>>2],p=e[n+480>>2],m=e[n+484>>2]}else(0|O)==5e8?(dt=+(0|ye),(t+5&2047)!=(0|r)?(Nr(n+560|0,.75*dt),$r(n+544|0,p,m,ce,he,e[n+560>>2],e[n+564>>2],e[n+568>>2],e[n+572>>2]),ce=e[n+552>>2],he=e[n+556>>2],p=e[n+544>>2],m=e[n+548>>2]):(Nr(n+528|0,.5*dt),$r(n+512|0,p,m,ce,he,e[n+528>>2],e[n+532>>2],e[n+536>>2],e[n+540>>2]),ce=e[n+520>>2],he=e[n+524>>2],p=e[n+512>>2],m=e[n+516>>2])):(Nr(n+592|0,.75*+(0|ye)),$r(n+576|0,p,m,ce,he,e[n+592>>2],e[n+596>>2],e[n+600>>2],e[n+604>>2]),ce=e[n+584>>2],he=e[n+588>>2],p=e[n+576>>2],m=e[n+580>>2]);(0|a)>111||(mn(n+464|0,p,m,ce,he,0,0,0,1073676288),uA(e[n+464>>2],e[n+468>>2],e[n+472>>2],e[n+476>>2],0,0,0,0)||($r(n+448|0,p,m,ce,he,0,0,0,1073676288),ce=e[n+456>>2],he=e[n+460>>2],p=e[n+448>>2],m=e[n+452>>2]))}$r(n+432|0,I,Z,f,v,p,m,ce,he),Vn(n+416|0,e[n+432>>2],e[n+436>>2],e[n+440>>2],e[n+444>>2],Qe,We,Ke,rA),f=e[n+424>>2],v=e[n+428>>2],I=e[n+416>>2],Z=e[n+420>>2],(at-2|0)>=(2147483647&o)||(e[n+408>>2]=f,e[n+412>>2]=2147483647&v,e[n+400>>2]=I,e[n+404>>2]=Z,PA(n+384|0,I,Z,f,v,0,0,0,1073610752),f=(t=(0|(t=l0(e[n+400>>2],e[n+404>>2],e[n+408>>2],e[n+412>>2],1081081856)))>=0)?e[n+392>>2]:f,v=t?e[n+396>>2]:v,I=t?e[n+384>>2]:I,Z=t?e[n+388>>2]:Z,ee=t+ee|0,!(!!(0|uA(p,m,ce,he,0,0,0,0))&(t?T&(0|a)!=(0|c):T))&(ee+110|0)<=(0|at)||(e[56798]=68)),cr(n+368|0,I,Z,f,v,ee),f=e[n+368>>2],v=e[n+372>>2],r=e[n+380>>2],t=e[n+376>>2]}else Pa(n+48|0,ye),sn(n+32|0,t),PA(n+16|0,e[n+48>>2],e[n+52>>2],e[n+56>>2],e[n+60>>2],e[n+32>>2],e[n+36>>2],e[n+40>>2],e[n+44>>2]),f=e[n+16>>2],v=e[n+20>>2],r=e[n+28>>2],t=e[n+24>>2];else Nr(n,0*+(0|ye)),f=e[n>>2],v=e[n+4>>2],r=e[n+12>>2],t=e[n+8>>2]}e[s+40>>2]=t,e[s+44>>2]=r,e[s+32>>2]=f,e[s+36>>2]=v,J=n+8976|0,p=e[s+40>>2],m=e[s+44>>2],f=e[s+32>>2],v=e[s+36>>2];break e;case 3:break r}(0|(r=e[t+116>>2]))>0|(0|r)>=0&&(e[t+4>>2]=e[t+4>>2]-1);break A}if((0|(r=e[t+4>>2]))==e[t+104>>2]?r=bA(t):(e[t+4>>2]=r+1,r=l[0|r]),(0|r)!=40){if(m=2147450880,e[t+116>>2]<0)break e;e[t+4>>2]=e[t+4>>2]-1;break e}for(c=1;(0|(r=e[t+4>>2]))==e[t+104>>2]?r=bA(t):(e[t+4>>2]=r+1,r=l[0|r]),r-48>>>0<10|r-65>>>0<26|(0|r)==95||!(r-97>>>0>=26);)c=c+1|0;if(m=2147450880,(0|r)==41)break e;(0|(r=e[t+116>>2]))>0|(0|r)>=0&&(e[t+4>>2]=e[t+4>>2]-1);r:{if(a){if(c)break r;break e}break A}for(;c=c-1|0,(0|r)>0|(0|r)>=0&&(e[t+4>>2]=e[t+4>>2]-1),c;);break e}e[56798]=28,Ja(t,0,0)}m=0}e[A>>2]=f,e[A+4>>2]=v,e[A+8>>2]=p,e[A+12>>2]=m,J=s+48|0}function QA(A,t,r,a,s){var n,o=0,c=0,f=0,m=0,p=0,I=0,v=0,T=0,O=0,Z=0,ee=0,ce=0,he=0,ye=0,Qe=0,We=0,Ke=0,rA=0,cA=0,MA=0,zA=0;if(J=n=J-112|0,e[r+8>>2]){MA=e[50754]/70|0,Z=(I=e[a+12>>2])||256;e:if((0|t)!=2){if((0|t)==1){A:if(l[A+11|0]!=3)switch(l[a-15|0]-3|0){case 0:case 5:break A;default:break e}Z=(0|(I=e[e[47192]+44>>2]))<(0|Z)?Z:I}}else{if((0|(I=e[e[47192]+80>>2]))<=0|!(8&l[0|a]|I>>>0<=l[A+14|0]|32&l[A+6|0]))break e;MA<<=1}if(e[36436]=0,he=A,zA=t,p=a,J=O=J-16|0,A=e[34460]+e[r+8>>2]|0,t=(t=l[A+2|0])>>>0>=24?24:t,e[O+12>>2]=t,c=e[r+12>>2]+e[r+24>>2]|0,e[36422]=c,t){for(I=A+4|0,o=1&b[A+4>>1];A=145488+(m<<3)|0,a=I+(o?m<<6:P(m,44))|0,e[A+4>>2]=a,T=M[a>>1],b[A+2>>1]=T,b[A>>1]=l[a+16|0],f=2&T?m:f,(0|(m=m+1|0))!=(0|t););I=145488,(0|f)<=0||((0|zA)!=1?(t=t-f|0,e[O+12>>2]=t,I=145488+(f<<3)|0):(t=f+1|0,e[O+12>>2]=t,I=145488))}else t=0,I=145488;if(!(!e[r+4>>2]|e[r+20>>2]|l[he+11|0]!=2)){if(o=e[r+36>>2],a=e[r+40>>2],A=0,(0|(t=e[O+12>>2]))>=2){f=o>>>12|0,T=a>>>26&7,ye=a>>>18&248,ee=P(ce=63&a,50),We=63&(Ke=o>>>6|0),m=o<<1&126,rA=P(a>>>16&31,50)-750|0,cA=P(a>>>11&31,50)-750|0,Qe=P(a>>>6&31,50)-750|0;e:{A:if((0|zA)!=1){if(!(f|ce))break e;if(8&f?(t=e[4+(I+((c=t-1|0)<<3)|0)>>2],b[t>>1]<0?A=t:(A=(0|(A=e[44469]+1|0))<=169?A:0,e[44469]=A,c=M[t+20>>1]|M[t+22>>1]<<16,A=177888+(A<<6)|0,o=M[t+16>>1]|M[t+18>>1]<<16,b[A+16>>1]=o,b[A+18>>1]=o>>>16,b[A+20>>1]=c,b[A+22>>1]=c>>>16,c=M[t+4>>1]|M[t+6>>1]<<16,o=M[t>>1]|M[t+2>>1]<<16,b[A>>1]=o,b[A+2>>1]=o>>>16,b[A+4>>1]=c,b[A+6>>1]=c>>>16,c=M[t+12>>1]|M[t+14>>1]<<16,o=M[t+8>>1]|M[t+10>>1]<<16,b[A+8>>1]=o,b[A+10>>1]=o>>>16,b[A+12>>1]=c,b[A+14>>1]=c>>>16,c=M[t+28>>1]|M[t+30>>1]<<16,o=M[t+24>>1]|M[t+26>>1]<<16,b[A+24>>1]=o,b[A+26>>1]=o>>>16,b[A+28>>1]=c,b[A+30>>1]=c>>>16,c=M[t+36>>1]|M[t+38>>1]<<16,o=M[t+32>>1]|M[t+34>>1]<<16,b[A+32>>1]=o,b[A+34>>1]=o>>>16,b[A+36>>1]=c,b[A+38>>1]=c>>>16,c=M[t+44>>1]|M[t+46>>1]<<16,o=M[t+40>>1]|M[t+42>>1]<<16,b[A+40>>1]=o,b[A+42>>1]=o>>>16,b[A+44>>1]=c,b[A+46>>1]=c>>>16,c=M[t+52>>1]|M[t+54>>1]<<16,o=M[t+48>>1]|M[t+50>>1]<<16,b[A+48>>1]=o,b[A+50>>1]=o>>>16,b[A+52>>1]=c,b[A+54>>1]=c>>>16,c=M[t+60>>1]|M[t+62>>1]<<16,t=M[t+56>>1]|M[t+58>>1]<<16,b[A+56>>1]=t,b[A+58>>1]=t>>>16,b[A+60>>1]=c,b[A+62>>1]=c>>>16,u[A+16|0]=0,b[A>>1]=32768|M[A>>1],c=e[O+12>>2]-1|0),e[4+(I+(c<<3)|0)>>2]=A,t=1792,(0|(c=b[A+4>>1]))<300||(t=1536,c>>>0<400||(t=c>>>0<500?1280:1024)),e[36436]=t,o=35):(e[O+12>>2]=t+1,b[(A=(c=I+(t<<3)|0)-8|0)>>1]=m,t=e[A+4>>2],A=(0|(A=e[44469]+1|0))<=169?A:0,e[44469]=A,(A=177888+(Ke=A<<6)|0)&&(o=M[t+4>>1]|M[t+6>>1]<<16,v=M[t>>1]|M[t+2>>1]<<16,b[A>>1]=v,b[A+2>>1]=v>>>16,b[A+4>>1]=o,b[A+6>>1]=o>>>16,o=M[t+60>>1]|M[t+62>>1]<<16,v=M[t+56>>1]|M[t+58>>1]<<16,b[A+56>>1]=v,b[A+58>>1]=v>>>16,b[A+60>>1]=o,b[A+62>>1]=o>>>16,o=M[t+52>>1]|M[t+54>>1]<<16,v=M[t+48>>1]|M[t+50>>1]<<16,b[A+48>>1]=v,b[A+50>>1]=v>>>16,b[A+52>>1]=o,b[A+54>>1]=o>>>16,o=M[t+44>>1]|M[t+46>>1]<<16,v=M[t+40>>1]|M[t+42>>1]<<16,b[A+40>>1]=v,b[A+42>>1]=v>>>16,b[A+44>>1]=o,b[A+46>>1]=o>>>16,o=M[t+36>>1]|M[t+38>>1]<<16,v=M[t+32>>1]|M[t+34>>1]<<16,b[A+32>>1]=v,b[A+34>>1]=v>>>16,b[A+36>>1]=o,b[A+38>>1]=o>>>16,o=M[t+28>>1]|M[t+30>>1]<<16,v=M[t+24>>1]|M[t+26>>1]<<16,b[A+24>>1]=v,b[A+26>>1]=v>>>16,b[A+28>>1]=o,b[A+30>>1]=o>>>16,o=M[t+20>>1]|M[t+22>>1]<<16,v=M[t+16>>1]|M[t+18>>1]<<16,b[A+16>>1]=v,b[A+18>>1]=v>>>16,b[A+20>>1]=o,b[A+22>>1]=o>>>16,o=M[t+12>>1]|M[t+14>>1]<<16,t=M[t+8>>1]|M[t+10>>1]<<16,b[A+8>>1]=t,b[A+10>>1]=t>>>16,b[A+12>>1]=o,b[A+14>>1]=o>>>16,u[Ke+177904|0]=0,b[A>>1]=32768|M[A>>1]),b[c>>1]=0,e[c+4>>2]=A,m>>>0>=37&&(e[36422]=(m+e[36422]|0)-36),o=We<<1,ce&&He(A,ee,Qe,cA,T,rA,ye,f)),e[e[32972]+132>>2]||(t=l[A+17|0])&&(t=b[102896+(((0|(t=(o<<6>>>0)/(t>>>0)|0))>=199?199:t)<<1)>>1],u[A+18|0]=(0|P(t,l[A+18|0]))/512,u[A+19|0]=(0|P(t,l[A+19|0]))/512,u[A+20|0]=(0|P(t,l[A+20|0]))/512,u[A+21|0]=(0|P(t,l[A+21|0]))/512,u[A+22|0]=(0|P(t,l[A+22|0]))/512,u[A+23|0]=(0|P(t,l[A+23|0]))/512,u[A+24|0]=(0|P(t,l[A+24|0]))/512,u[A+25|0]=(0|P(t,l[A+25|0]))/512),a-536870912>>>0<=1073741823){if(T=e[44469],(0|(c=e[O+12>>2]))>0)for(A=P(a>>>29|0,10)+102854|0,ye=b[A+4>>1],ce=b[A+2>>1],ee=b[A>>1],rA=b[A+6>>1],cA=b[A+8>>1],o=0;t=e[4+(Qe=I+(o<<3)|0)>>2],b[t>>1]<0?A=t:(A=177888+(We=(T=(0|(A=T+1|0))<=169?A:0)<<6)|0)?(a=M[t+4>>1]|M[t+6>>1]<<16,c=M[t>>1]|M[t+2>>1]<<16,b[A>>1]=c,b[A+2>>1]=c>>>16,b[A+4>>1]=a,b[A+6>>1]=a>>>16,a=M[t+60>>1]|M[t+62>>1]<<16,c=M[t+56>>1]|M[t+58>>1]<<16,b[A+56>>1]=c,b[A+58>>1]=c>>>16,b[A+60>>1]=a,b[A+62>>1]=a>>>16,a=M[t+52>>1]|M[t+54>>1]<<16,c=M[t+48>>1]|M[t+50>>1]<<16,b[A+48>>1]=c,b[A+50>>1]=c>>>16,b[A+52>>1]=a,b[A+54>>1]=a>>>16,a=M[t+44>>1]|M[t+46>>1]<<16,c=M[t+40>>1]|M[t+42>>1]<<16,b[A+40>>1]=c,b[A+42>>1]=c>>>16,b[A+44>>1]=a,b[A+46>>1]=a>>>16,a=M[t+36>>1]|M[t+38>>1]<<16,c=M[t+32>>1]|M[t+34>>1]<<16,b[A+32>>1]=c,b[A+34>>1]=c>>>16,b[A+36>>1]=a,b[A+38>>1]=a>>>16,a=M[t+28>>1]|M[t+30>>1]<<16,c=M[t+24>>1]|M[t+26>>1]<<16,b[A+24>>1]=c,b[A+26>>1]=c>>>16,b[A+28>>1]=a,b[A+30>>1]=a>>>16,a=M[t+20>>1]|M[t+22>>1]<<16,c=M[t+16>>1]|M[t+18>>1]<<16,b[A+16>>1]=c,b[A+18>>1]=c>>>16,b[A+20>>1]=a,b[A+22>>1]=a>>>16,a=M[t+12>>1]|M[t+14>>1]<<16,t=M[t+8>>1]|M[t+10>>1]<<16,b[A+8>>1]=t,b[A+10>>1]=t>>>16,b[A+12>>1]=a,b[A+14>>1]=a>>>16,u[We+177904|0]=0,b[A>>1]=32768|M[A>>1],c=e[O+12>>2]):A=0,e[Qe+4>>2]=A,b[A+8>>1]=(0|P(ye,b[A+8>>1]))/256,b[A+6>>1]=(0|P(ce,b[A+6>>1]))/256,b[A+4>>1]=(0|P(ee,b[A+4>>1]))/256,b[A+12>>1]=(0|P(cA,b[A+12>>1]))/256,b[A+10>>1]=(0|P(rA,b[A+10>>1]))/256,(0|c)>(0|(o=o+1|0)););e[44469]=T}if(!A)break e}else{t=e[I+4>>2],(0|(c=b[t>>1]))<0?A=t:(a=(0|(a=e[44469]+1|0))<=169?a:0,e[44469]=a,(a=177888+(c=a<<6)|0)&&(A=M[t+4>>1]|M[t+6>>1]<<16,v=M[t>>1]|M[t+2>>1]<<16,b[a>>1]=v,b[a+2>>1]=v>>>16,b[a+4>>1]=A,b[a+6>>1]=A>>>16,A=M[t+60>>1]|M[t+62>>1]<<16,v=M[t+56>>1]|M[t+58>>1]<<16,b[a+56>>1]=v,b[a+58>>1]=v>>>16,b[a+60>>1]=A,b[a+62>>1]=A>>>16,A=M[t+52>>1]|M[t+54>>1]<<16,v=M[t+48>>1]|M[t+50>>1]<<16,b[a+48>>1]=v,b[a+50>>1]=v>>>16,b[a+52>>1]=A,b[a+54>>1]=A>>>16,A=M[t+44>>1]|M[t+46>>1]<<16,v=M[t+40>>1]|M[t+42>>1]<<16,b[a+40>>1]=v,b[a+42>>1]=v>>>16,b[a+44>>1]=A,b[a+46>>1]=A>>>16,A=M[t+36>>1]|M[t+38>>1]<<16,v=M[t+32>>1]|M[t+34>>1]<<16,b[a+32>>1]=v,b[a+34>>1]=v>>>16,b[a+36>>1]=A,b[a+38>>1]=A>>>16,A=M[t+28>>1]|M[t+30>>1]<<16,v=M[t+24>>1]|M[t+26>>1]<<16,b[a+24>>1]=v,b[a+26>>1]=v>>>16,b[a+28>>1]=A,b[a+30>>1]=A>>>16,A=M[t+20>>1]|M[t+22>>1]<<16,v=M[t+16>>1]|M[t+18>>1]<<16,b[a+16>>1]=v,b[a+18>>1]=v>>>16,b[a+20>>1]=A,b[a+22>>1]=A>>>16,A=M[t+12>>1]|M[t+14>>1]<<16,t=M[t+8>>1]|M[t+10>>1]<<16,b[a+8>>1]=t,b[a+10>>1]=t>>>16,b[a+12>>1]=A,b[a+14>>1]=A>>>16,u[c+177904|0]=0,c=-32768|M[a>>1],b[a>>1]=c,A=a)),e[I+4>>2]=A,b[I>>1]=m||50,b[I+2>>1]=16384|M[I+2>>1],b[A>>1]=16384|c,c=e[I+12>>2],t=l[c+17|0],a=e[32972],e[a+132>>2]&&(u[A+39|0]=l[c+39|0]-4);r:if(ce){if(2048&o){t=(P(t,31&Ke)>>>0)/30|0,e[a+132>>2]||(a=l[A+17|0])&&(t=b[102896+(((0|(t=(t<<6>>>0)/(a>>>0)|0))>=199?199:t)<<1)>>1],u[A+18|0]=(0|P(t,l[A+18|0]))/512,u[A+19|0]=(0|P(t,l[A+19|0]))/512,u[A+20|0]=(0|P(t,l[A+20|0]))/512,u[A+21|0]=(0|P(t,l[A+21|0]))/512,u[A+22|0]=(0|P(t,l[A+22|0]))/512,u[A+23|0]=(0|P(t,l[A+23|0]))/512,u[A+24|0]=(0|P(t,l[A+24|0]))/512,u[A+25|0]=(0|P(t,l[A+25|0]))/512),He(A,ee,Qe,cA,T,rA,ye,f);break r}if(He(A,ee,Qe,cA,T,rA,ye,f),e[e[32972]+132>>2]||!(t=l[A+17|0]))break r;t=b[102896+(((0|(t=(We<<7>>>0)/(t>>>0)|0))>=199?199:t)<<1)>>1],u[A+18|0]=(0|P(t,l[A+18|0]))/512,u[A+19|0]=(0|P(t,l[A+19|0]))/512,u[A+20|0]=(0|P(t,l[A+20|0]))/512,u[A+21|0]=(0|P(t,l[A+21|0]))/512,u[A+22|0]=(0|P(t,l[A+22|0]))/512,u[A+23|0]=(0|P(t,l[A+23|0]))/512,u[A+24|0]=(0|P(t,l[A+24|0]))/512,u[A+25|0]=(0|P(t,l[A+25|0]))/512}else if(a=e[a+132>>2],8&f){if(a||!(a=l[A+17|0]))break r;t=((16320&P(t,48))>>>0)/(a>>>0)|0,t=b[102896+((t>>>0>=199?199:t)<<1)>>1],u[A+18|0]=(0|P(t,l[A+18|0]))/512,u[A+19|0]=(0|P(t,l[A+19|0]))/512,u[A+20|0]=(0|P(t,l[A+20|0]))/512,u[A+21|0]=(0|P(t,l[A+21|0]))/512,u[A+22|0]=(0|P(t,l[A+22|0]))/512,u[A+23|0]=(0|P(t,l[A+23|0]))/512,u[A+24|0]=(0|P(t,l[A+24|0]))/512,u[A+25|0]=(0|P(t,l[A+25|0]))/512}else a||(t=l[A+17|0])&&(t=b[102896+(((t=1792/(t>>>0)|0)>>>0>=199?199:t)<<1)>>1],u[A+18|0]=(0|P(t,l[A+18|0]))/512,u[A+19|0]=(0|P(t,l[A+19|0]))/512,u[A+20|0]=(0|P(t,l[A+20|0]))/512,u[A+21|0]=(0|P(t,l[A+21|0]))/512,u[A+22|0]=(0|P(t,l[A+22|0]))/512,u[A+23|0]=(0|P(t,l[A+23|0]))/512,u[A+24|0]=(0|P(t,l[A+24|0]))/512,u[A+25|0]=(0|P(t,l[A+25|0]))/512);if(!(8&f))break A;t=2816,(0|(a=b[A+4>>1]))<300||(t=2560,a>>>0<400||(t=a>>>0<500?2304:2048)),e[36436]=t}4&f&&(b[A>>1]=32|M[A>>1]),2&f&&(b[A>>1]=16|M[A>>1])}64&f&&dr(20,0),A=m&f<<27>>31}else A=0;c=A+e[36422]|0,e[36422]=c,t=e[O+12>>2]}if((0|(a=t-1|0))<=0)o=0;else{if(A=0,m=0,o=0,t-2>>>0>=3)for(ye=-4&a,T=0;o=(((b[(f=m<<3)+I>>1]+o|0)+b[I+(8|f)>>1]|0)+b[I+(16|f)>>1]|0)+b[I+(24|f)>>1]|0,m=m+4|0,(0|ye)!=(0|(T=T+4|0)););if(f=3&a)for(;o=b[I+(m<<3)>>1]+o|0,m=m+1|0,(0|f)!=(0|(A=A+1|0)););}if(A=t,(f=e[r+20>>2])&&(A=a,m=f+e[34460]|0,(T=l[m+2|0])&&(ce=M[m+4>>1],b[I+(a<<3)>>1]=l[m+20|0],f=1,A=t,(0|T)!=1))){if(ye=m+4|0,ce&=1,rA=1&(m=T-1|0),(0|T)!=2)for(cA=-2&m,T=0;Qe=ye+(f<<6)|0,We=ye+P(f,44)|0,Ke=l[(ee=ce?Qe:We)+16|0],e[4+(m=I+(A<<3)|0)>>2]=ee,b[m>>1]=Ke,b[m+2>>1]=M[ee>>1],Qe=l[16+(ee=ce?Qe- -64|0:We+44|0)|0],e[m+12>>2]=ee,b[m+8>>1]=Qe,b[m+10>>1]=M[ee>>1],f=f+2|0,A=A+2|0,(0|cA)!=(0|(T=T+2|0)););rA&&(f=ye+(ce?f<<6:P(f,44))|0,T=l[f+16|0],e[4+(m=I+(A<<3)|0)>>2]=f,b[m>>1]=T,b[m+2>>1]=M[f>>1],A=A+1|0)}e:if(!((0|o)<=0)){A:{switch(zA-1|0){case 1:if(f=(0|(f=(e[r+44>>2]+c|0)-45|0))<=10?10:f,8&l[0|p]&&(f=f+(l[e[36128]+14|0]<<1)|0),(0|a)<=0)break e;if(p=(f<<8)/(0|o)|0,m=0,(0|t)!=2)for(t=-2&a,f=0;b[(o=(c=m<<3)+I|0)>>1]=(0|P(p,b[o>>1]))/256,b[(c=I+(8|c)|0)>>1]=(0|P(p,b[c>>1]))/256,m=m+2|0,(0|t)!=(0|(f=f+2|0)););if(!(1&a))break e;b[(t=I+(m<<3)|0)>>1]=(0|P(p,b[t>>1]))/256;break e;case 0:if(e[r>>2]!=1||(0|(f=e[r+44>>2]))>129)break A;b[I>>1]=(0|P(f,b[I>>1]))/130;break A}(0|(f=e[r+44>>2]))<=0||(c=(f-o|0)+c|0,e[36422]=c)}if(!(!c|(0|a)<=0)){if(p=(o+c<<8)/(0|o)|0,m=0,(0|t)!=2)for(t=-2&a,f=0;b[(o=(c=m<<3)+I|0)>>1]=(0|P(p,b[o>>1]))/256,b[(c=I+(8|c)|0)>>1]=(0|P(p,b[c>>1]))/256,m=m+2|0,(0|t)!=(0|(f=f+2|0)););1&a&&(b[(t=I+(m<<3)|0)>>1]=(0|P(p,b[t>>1]))/256)}}if(e[n+108>>2]=A,J=O+16|0,I){if((0|(A=e[r+16>>2]))!=e[36438]&&(e[36438]=A,t=216192+(e[50758]<<4)|0,e[t>>2]=14,e[t+4>>2]=A,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),m=(A=e[e[32972]+132>>2])?1:3,t=e[I+4>>2],e[r+28>>2]|!l[145748]||(u[145748]=0,m=A?2:4),(a=e[36426])&&(!((2&(A=M[a>>1]))>>>1|l[a+16|0]<2)|16&A||(c=216192+(e[36439]<<4)|0,e[c+12>>2]=t,8&A&&(A=(0|(A=e[44469]+1|0))<=169?A:0,e[44469]=A,(A=177888+(f=A<<6)|0)&&(p=M[t+4>>1]|M[t+6>>1]<<16,o=M[t>>1]|M[t+2>>1]<<16,b[A>>1]=o,b[A+2>>1]=o>>>16,b[A+4>>1]=p,b[A+6>>1]=p>>>16,p=M[t+60>>1]|M[t+62>>1]<<16,o=M[t+56>>1]|M[t+58>>1]<<16,b[A+56>>1]=o,b[A+58>>1]=o>>>16,b[A+60>>1]=p,b[A+62>>1]=p>>>16,p=M[t+52>>1]|M[t+54>>1]<<16,o=M[t+48>>1]|M[t+50>>1]<<16,b[A+48>>1]=o,b[A+50>>1]=o>>>16,b[A+52>>1]=p,b[A+54>>1]=p>>>16,p=M[t+44>>1]|M[t+46>>1]<<16,o=M[t+40>>1]|M[t+42>>1]<<16,b[A+40>>1]=o,b[A+42>>1]=o>>>16,b[A+44>>1]=p,b[A+46>>1]=p>>>16,p=M[t+36>>1]|M[t+38>>1]<<16,o=M[t+32>>1]|M[t+34>>1]<<16,b[A+32>>1]=o,b[A+34>>1]=o>>>16,b[A+36>>1]=p,b[A+38>>1]=p>>>16,p=M[t+28>>1]|M[t+30>>1]<<16,o=M[t+24>>1]|M[t+26>>1]<<16,b[A+24>>1]=o,b[A+26>>1]=o>>>16,b[A+28>>1]=p,b[A+30>>1]=p>>>16,p=M[t+20>>1]|M[t+22>>1]<<16,o=M[t+16>>1]|M[t+18>>1]<<16,b[A+16>>1]=o,b[A+18>>1]=o>>>16,b[A+20>>1]=p,b[A+22>>1]=p>>>16,p=M[t+12>>1]|M[t+14>>1]<<16,o=M[t+8>>1]|M[t+10>>1]<<16,b[A+8>>1]=o,b[A+10>>1]=o>>>16,b[A+12>>1]=p,b[A+14>>1]=p>>>16,u[f+177904|0]=0,b[A>>1]=32768|M[A>>1]),b[8+(f=f+177888|0)>>1]=M[a+8>>1],u[f+21|0]=l[a+21|0],b[f+10>>1]=M[a+10>>1],u[f+22|0]=l[a+22|0],b[f+12>>1]=M[a+12>>1],u[f+23|0]=l[a+23|0],b[f+14>>1]=M[a+14>>1],u[f+24|0]=l[a+24|0],u[f+25|0]=l[a+25|0],e[c+12>>2]=A))),(0|zA)!=2|l[he+11|0]!=2||(Oa(),e[36427]=e[50758]),!((0|(he=e[n+108>>2]))<2)){for(A=e[36433],p=(P(256-A|0,Z)+(A<<8)|0)/256|0,A=e[36432],c=(P(256-A|0,Z)+(A<<8)|0)/256|0,o=e[50754],A=0,a=1;f=M[2+(O=(I+(a<<3)|0)-8|0)>>1],f=(0|P((0|P(o,b[O>>1]))/1e3|0,4&f?c:16384&f?p:Z))/256|0,e[(a<<2)+n>>2]=f,A=A+f|0,(0|he)!=(0|(a=a+1|0)););if(!((0|A)<=0|(0|A)>=(0|MA)|(0|he)<2)){if(a=1,p=1&(f=he-1|0),(0|he)!=2)for(c=-2&f,Z=0;e[(f=(a<<2)+n|0)>>2]=(0|P(e[f>>2],MA))/(0|A),e[f+4>>2]=(0|P(e[f+4>>2],MA))/(0|A),a=a+2|0,(0|c)!=(0|(Z=Z+2|0)););p&&(e[(a=(a<<2)+n|0)>>2]=(0|P(e[a>>2],MA))/(0|A))}if(Z=0,!((0|he)<2))for(he=zA+256|0,a=1;A=e[4+(I+(a<<3)|0)>>2],!(f=e[r+28>>2])|128&l[0|t]||(e[36422]=0,ys(f,he,0,o=e[r>>2],0,p=(p=e[r+32>>2])?(p<<5)/100|0:32),u[145748]=1,e[r+28>>2]=0),(0|s)<0||(s=64&l[0|t]?6:s,(e[n+108>>2]-1|0)==(0|a)&&(s=(f=s)|(3840&(s=e[36436])?s:0))),f=e[(a<<2)+n>>2],e[36440]=f+e[36440],e[36441]=f+e[36441],f?(p=e[50758],e[36439]=p,(0|s)>=0&&(e[(p=216192+(p<<4)|0)>>2]=m,e[p+12>>2]=A,e[p+8>>2]=t,e[p+4>>2]=f+(s<<16),t=e[50758]+1|0,e[50758]=(0|t)<=169?t:0),e[36426]=A,Z=f+Z|0):e[36426]=0,t=A,(0|(a=a+1|0))>2];);}!e[36438]|(0|zA)==1||(e[36438]=0,A=216192+(e[50758]<<4)|0,e[A>>2]=14,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0)}}J=n+112|0}function TA(A,t,r,a){var s,n=0,o=0,c=0,f=0,m=0,p=0,I=0,v=0,T=0,O=0,Z=0,ee=0,ce=0,he=0,ye=0,Qe=0,We=0,Ke=0,rA=0,cA=0,MA=0,zA=0;J=s=J-1856|0,e[s+164>>2]=0,r?v=e[r>>2]:jA(r=s- -64|0,0,96),e[33264]=0,e[s+1824>>2]=0,e[s+1828>>2]=0,e[s+1832>>2]=0,e[s+1836>>2]=0,u[s+1616|0]=0,u[s+992|0]=0,u[s+1200|0]=0,u[s+784|0]=0;e:if(e[A+688>>2]){for(e[s+1840>>2]=t,l[0|(n=t)]==32&&(n=t+1|0,e[s+1840>>2]=n),T=s+416|1,Ke=s+1844|1,cA=s+1848|1,MA=s+1852|1,e[s+1820>>2]=n,Gt(s+168|0,n),n=e[s+1820>>2];(32|l[0|n])!=32;)n=Gt(s+164|0,n)+e[s+1820>>2]|0,e[s+1820>>2]=n,ee=ee+1|0;wt(s+256|0,t,rA=(0|(c=n-t|0))>=159?159:c),!(Qe=4194304&v)|(0|ee)!=1?(he=((0|(n=e[47202]))==36)<<2,(0|ee)==1|(0|n)!=36||(n=e[s+1840>>2]-1|0,e[s+1840>>2]=n,u[0|n]=95,he=0,o=!!(0|kr(A,s+1840|0,s+1616|0,s+1832|0,0,r)),n=e[47202])):(o=1,Gt(s+172|0,n+1|0),rr(e[s+172>>2])&&(0|Hs(e[s+164>>2]))==(0|Hs(e[s+172>>2]))&&(o=0),he=(0|(n=e[47202]))==36?4:o,o=0);A:{r:{s:{n:{c:if(16&n)O=15&n,he=0;else{if(ce=1,o||(ce=!!(0|kr(A,s+1840|0,s+1616|0,s+1832|0,2,r))),50331648&(n=e[s+1832>>2])&&(c=e[s+1820>>2],l[c+1|0]==46&&(u[c+1|0]=32,n=e[s+1832>>2])),536870912&n){if(!a)break e;qA(a,e[s+1840>>2]);break e}if(8192&n|!(128&n)|ce)a=e[33264];else if(n=e[s+1840>>2],e[s+1820>>2]=n,!((0|(a=e[33264]))<=0))for(o=0;l[0|n]==32&&(u[0|n]=45,o=o+1|0,n=e[s+1820>>2],a=e[33264]),n=n+1|0,e[s+1820>>2]=n,(0|a)>(0|o););o:if(!(a|(0|ee)!=1)&&(c=Gt(s+576|0,I=e[s+1840>>2]),l[c+I|0]==32)){o=s+1408|0,a=I;g:{l:{i:{for(;;){p:if(rr(e[s+576>>2])){C:{if(l[1+(f=a+c|0)|0]==46){O=0;m:switch(l[(n=c+2|0)+a|0]-32|0){case 0:break C;case 7:break m;default:break p}if(O=1,c=n,l[f+3|0]==115)break C;break p}if(O=1,(0|p)<=0)break i}if(!((0|c)<=0)){if(Z=3&c,m=0,c>>>0<4)n=0;else for(ye=-4&c,n=0,f=0;u[0|o]=l[a+n|0],u[o+1|0]=l[(1|n)+a|0],u[o+2|0]=l[(2|n)+a|0],u[o+3|0]=l[(3|n)+a|0],n=n+4|0,o=o+4|0,(0|ye)!=(0|(f=f+4|0)););if(Z)for(;u[0|o]=l[a+n|0],n=n+1|0,o=o+1|0,(0|Z)!=(0|(m=m+1|0)););}if(p=p+1|0,O)a=a+c|0;else if(c=Gt(s+576|0,a=3+(a+c|0)|0),l[a+c|0]==32)continue}break}if(!((0|p)<2)){(c=(c=o-(n=s+1408|0)|0)+(n=wt(I,n,c))|0)>>>0>>0&&jA(c,32,(s+1408|0)+a-(n+o)|0),e[33264]=(p<<1)-2,e[s+1836>>2]=0;break l}}if(!p)break o;if(e[s+1832>>2]=0,e[s+1836>>2]=0,!e[33264])break g}e[s+1832>>2]=128}he=1}if(l[s+1616|0]==21){qA(189088,s+1616|0),n=0;break e}if(zA=l[s+1833|0],o=1,!ce){if(e[s+168>>2]-48>>>0<10){if(RA(A,84174,189088),n=0,l[189088]==21)break e;if(!(!(128&l[A+109|0])|32&l[r+2|0])){u[189088]=21,u[189089]=0;break e}o=!!(0|da(A,e[s+1840>>2],s+1616|0,s+1832|0,r,0))}else o=0;if(!(o|(3&v)==2)&&(16777216&(a=e[A+104>>2])||(o=0,!(!(33554432&a)|!(1&v))))&&(16&v||(o=0,!(1&u[r+13|0])))){ye=e[s+1840>>2],n=0,p=0,f=0,J=Z=J-224|0,u[0|(m=s+1616|0)]=0,e[Z+216>>2]=0,e[Z+220>>2]=0;o:if(!(u[ye-2|0]-48>>>0<10|(1&u[0|r]?0:2&l[A+107|0])||(a=l[0|(c=ye+1|0)],(!(2561&M[A+106>>1])|!(1&u[r+2|0]))&(0|a)==32))){if((0|(p=l[0|ye]))!=32){for(O=32767,a=0;;){if(!(n=rn(101868,p<<24>>24,8))){p=0;break o}if(I=0,(0|(n=e[(n<<2)-305584>>2]))==(0|a)&&!((0|(I=f+1|0))<=2)){p=0;break o}g:{l:{i:{p:{if(!((0|a)<2)){if((0|a)==10|(0|a)==100)break p;if(!((0|a)>(0|n))){p=0;break o}}if(!a)break l;if((0|a)<(0|n))break i;break l}if((0|a)>=(0|n))break l}if(p=0,(0|We)%10|(0|P(a,10))<(0|n))break o;n=n-a|0,O=a;break g}if((0|n)>=(0|O)){p=0;break o}We=a+We|0}if(p=l[0|c],c=o=c+1|0,a=n,f=I,(0|p)==32)break}a=l[0|o]}else o=c;if((a<<24>>24)-48>>>0<10)p=0;else if((0|(a=n+We|0))>2])p=0;else if((0|a)>e[A+116>>2])p=0;else if(RA(A,85600,Z+176|0),n=m,4&l[A+107|0]||(n=qA(m,n=Z+176|0)+HA(n)|0),e[Z+4>>2]=e[A+140>>2],e[Z>>2]=a,DA(Z+16|0,85839,Z),p=0,l[0|o]!=46){fa(A,ye,o,r,1)&&(e[r>>2]=32768|e[r>>2]),c=0;g:if(8&l[A+107|0]){if(f=e[r>>2],e[A+212>>2]==26741){if(32768&f)break g;if(!(16384&f))break o;c=1,f=0;l:{i:switch(l[0|o]-97|0){case 0:case 4:break i;default:break l}i:{p:{C:{m:switch((O=l[o+1|0])-116|0){case 6:break l;case 1:case 2:case 3:case 4:case 5:break p;case 0:break m;default:break C}if(l[o+2|0]!=116)break i;break l}if((0|O)==32)break l}if(!((0|a)%1e3|0)&&(0|O)==108)break l}f=1}if(f)break g;break o}e[r>>2]=32768|f}e[(a=A+8232|0)>>2]=0,e[a+4>>2]=0,da(A,Z+16|2,n,Z+216|0,r,c),p=1,4&l[A+107|0]&&sa(m,Z+176|0)}}J=Z+224|0,p?(e[s+1832>>2]=8192|e[s+1832>>2],o=1):o=0}}if(O=ce?he:32&zA?1:he,he=0,!(!(1&v)|(0|ee)<2)&&ns(e[s+168>>2])){o:{if(1&u[188785]){if(!(!(a=8192&(n=e[s+1832>>2]))|o))break o;he=a>>>2^2048;break c}if(o)break n;n=e[s+1832>>2]}if(!(128&n|ee>>>0>3)&&!((0|(n=e[A+8220>>2]))<4)&&(a=1,(0|n)>=e[A+8216>>2]))break A}}if(m=0,(0|O)<=0)break s;a=O;break A}if((0|(a=O))>0)break A;m=0,I=0,f=0,p=0;break r}if(o)I=0,f=0,p=0;else{a=e[s+1840>>2],e[s+1820>>2]=a,n=999,p=0,I=0,T=0;s:{n:{c:{for(;;){o:{g:{l:{if(n-1>>>0>=2){if((0|ee)<2||(Gt(s+1408|0,a),(0|(n=e[s+1408>>2]))<577&e[A+600>>2]>0)||(n=Hs(n),(e[n+4>>2]!=e[A+600>>2]?n:0)|e[A+40>>2]==1))break l;switch(n=l[0|a],e[s+1408>>2]=n<<24>>24,n-32|0){default:if(!n)break l;break;case 0:case 7:break l;case 1:case 2:case 3:case 4:case 5:case 6:}m=Gt(s+1408|0,a),ce=9;i:{p:{C:{m:if(-33&(n=e[s+1408>>2])){for(o=0,f=0;;){b:{h:{if((0|n)==39){if((0|I)>0|(0|o)>1)break m;if(f=o?f:39,e[A+40>>2]!=3)break h;break b}f=o?f:n}o=o+1|0}if(!d0(A,n)){if((0|(n=e[s+1408>>2]))!=39&&!ns(n))break l;if(m=Gt(s+1408|0,a+m|0)+m|0,-33&(n=e[s+1408>>2]))continue;break m}break}if((0|o)<=2)break C;ce=o}else f=0;if((0|(n=e[A+40>>2]))!=2)break p;J=n=J-208|0,u[0|n]=0,o=l[0|(c=a-1|0)],u[0|c]=32,a=qt(A,a,n,200,0,-2147483648,0),u[0|c]=o,J=n+208|0,a=!a|(32768&a)>>>15;break i}n=e[A+40>>2],ce=o}a=(u[A+168|0]+1|0)<(ce-((0|n)==(0|f))|0)}if(!a)break l;a=e[s+1820>>2]}if(l[0|a]!=39)break g;p=67108864,he=0}if(m=0,rt(A,s+992|0,0,I),a=e[s+1820>>2],(0|(n=l[0|a]))!=32)break o;I=0,f=0;break r}if(he=0,a=zs(A,a,s+992|0,1&(T|=(0|I)>0))+e[s+1820>>2]|0,e[s+1820>>2]=a,l[s+992|0]==21)break c;for(I=I+1|0,o=0;o=(n=o)+1|0,l[a+n|0]!=32;);p=67108864;continue}break}if(!l[s+992|0]|(0|n)==39||(u[a-1|0]=32,a=e[s+1820>>2]),c=qt(A,a,s+1616|0,200,s+784|0,v,s+1832|0),(0|(a=l[s+1616|0]))==21){qA(189088,s+1616|0),n=0;break e}if(!(a|l[s+784|0])&&(Gt(s+1408|0,e[s+1820>>2]),(0|ee)==1&&(rr(e[s+1408>>2])||I0(e[s+1408>>2])))){ki(A,e[s+1820>>2],s+1616|0,O)&&qA(189088,s+1616|0),n=0;break e}e[s+172>>2]=u[e[s+1820>>2]-1|0];o:if(1024&c)for(ye=s+176|1,O=0,n=1,T=0,I=0;;){if((ce=131072&c)|!(1&n)||(u[s+1408|0]=0,!(a=qt(A,e[s+1820>>2],s+1408|0,200,s+576|0,805306368|v,s+1832|0)))){2048&c&&(e[A+8184>>2]=1),u[e[s+1820>>2]-1|0]=e[s+172>>2];g:{l:{i:{p:if(ce){if(u[s+176|0]=0,n=e[s+1820>>2],a=1,f=63&c){if(Z=1&c,I=f-1|0,o=0,(0|f)!=1)for(We=f-Z|0,f=0;m=n,e[s+1820>>2]=n+1,u[0|(Qe=(s+176|0)+a|0)]=(0|o)!=(0|I)?l[0|n]:0,n=n+2|0,e[s+1820>>2]=n,u[Qe+1|0]=(0|I)!=(1|o)?l[m+1|0]:0,o=o+2|0,a=a+2|0,(0|We)!=(0|(f=f+2|0)););Z&&(f=n+1|0,e[s+1820>>2]=f,u[(s+176|0)+a|0]=(0|o)!=(0|I)?l[0|n]:0,a=a+1|0,n=f)}u[(s+176|0)+a|0]=0}else{if(n=e[s+1820>>2],!(f=15&c))break i;if(a=0,o=f,m=3&c)for(;n=n+1|0,e[s+1820>>2]=n,(192&l[0|n])==128||(o=o-1|0,(0|m)!=(0|(a=a+1|0))););if(f>>>0<4)break p;for(;;)if(n=n+1|0,e[s+1820>>2]=n,(192&l[0|n])!=128){for(;n=n+1|0,e[s+1820>>2]=n,(192&l[0|n])==128;);for(;n=n+1|0,e[s+1820>>2]=n,(192&l[0|n])==128;);for(;n=n+1|0,e[s+1820>>2]=n,(192&l[0|n])==128;);if(a=(0|o)>4,o=o-4|0,!a)break}}if(a=n-1|0,e[s+172>>2]=u[0|a],u[0|a]=32,a=v|=8388608,!ce)break l;if(ar(s+576|0,s+784|0,12),e[s+1852>>2]=ye,a=qA(s+1200|0,n=s+1616|0),kr(A,s+1852|0,n,s+1832|0,0,r)&&qA(a,s+1616|0),!(32&l[s+1833|0]))break g;u[0|a]=0,ki(A,e[s+1852>>2],a,1);break g}a=n-1|0,e[s+172>>2]=u[0|a],u[0|a]=32,a=8388608|v}v=a,sa(s+1200|0,s+784|0)}if(u[s+784|0]=0,f=1,a=kr(A,s+1820|0,s+1616|0,s+1824|0,1024,r),e[s+1832>>2]||(n=e[s+1828>>2],e[s+1832>>2]=e[s+1824>>2],e[s+1836>>2]=n,f=T),a){m=0,I=c;break s}if(m=qt(A,e[s+1820>>2],s+1616|0,200,s+784|0,8404992&v,s+1832|0),n=1,I=c,T=f,l[s+1616|0]==21){u[e[s+1820>>2]-1|0]=e[s+172>>2],qA(189088,s+1616|0),n=0;break e}}else n=s+416|0,Fs(A,e[s+1820>>2],a,n),m=qt(A,e[s+1820>>2],s+1616|0,200,s+784|0,268435456|v,s+1832|0),wt(e[s+1820>>2],n,HA(n)),1024&m||(qA(s+1616|0,s+1408|0),n=qA(s+784|0,s+576|0),8&l[188788]&&(JA(f=n,n=s+576|0),c=e[47195],e[s+48>>2]=n,fr(c,85205,s+48|0)),m=a),n=0;if(a=(o=1024&m)>>>10|0,O>>>0>48)break o;if(O=O+1|0,c=m,!o)break}else m=c,I=0,T=0,a=0;if(a|!m)break n;for(c=qA(s+1408|0,s+1616|0),o=Fs(A,e[s+1820>>2],m,s+416|0),f=T,n=m;;){o:{if(u[s+1616|0]=0,l[s+1200|0]){if(u[e[s+1820>>2]-1|0]=e[s+172>>2],a=kr(A,s+1840|0,s+1616|0,s+1824|0,o,r),u[e[s+1820>>2]-1|0]=32,l[s+1616|0]==21){A=s+416|0,wt(e[s+1820>>2],A,HA(A)),qA(189088,s+1616|0),n=0;break e}if(e[s+1832>>2]||(T=e[s+1828>>2],e[s+1832>>2]=e[s+1824>>2],e[s+1836>>2]=T),a){u[s+1200|0]=0;break o}f=e[s+1824>>2]?1:f}if(a=kr(A,s+1820|0,s+1616|0,s+1824|0,o,r),l[s+1616|0]==21){A=s+416|0,wt(e[s+1820>>2],A,HA(A)),qA(189088,s+1616|0),n=0;break e}if(e[s+1832>>2]||(T=e[s+1828>>2],e[s+1832>>2]=e[s+1824>>2],e[s+1836>>2]=T),!a)if(16384&n)qA(s+1616|0,c);else{v|=o<<11&8192|n<<9&134217728;g:if(524288&n){if(T=qA(s+576|0,a=s+784|0),n=qt(A,e[s+1820>>2],s+1616|0,200,a,v,s+1832|0),sa(a,T),a=0,!n){n=0;break g}if(1024&n)break g;a=1,o=Fs(A,e[s+1820>>2],n,0)}else n=0,qt(A,e[s+1820>>2],s+1616|0,200,0,v,s+1832|0),a=0;if(l[s+1616|0]==21){qA(189088,s+1616|0),A=s+416|0,wt(e[s+1820>>2],A,HA(A)),u[e[s+1820>>2]-1|0]=e[s+172>>2],n=0;break e}if(a)continue}}break}65536&m||(di(A,s+1616|0,200,s+784|0),u[s+784|0]=0),a=s+416|0,wt(e[s+1820>>2],a,HA(a));break s}qA(189088,A=s+992|0),n=!xa(1|A,84744,3)<<12;break e}m=0,f=T}u[e[s+1820>>2]-1|0]=e[s+172>>2]}}if(a=e[s+164>>2],e[s+1852>>2]=8026656,e[s+1848>>2]=8022304,e[s+1844>>2]=7566112,4&v){r:{if((n=255&a)&&((0|n)==102||(Ke=cA,Yi(a<<24>>24))))break r;Ke=MA}qt(A,Ke,189088,200,0,0,0)}for(a=0,n=s+1200|0,T=l[s+784|0];;){r:{s:{n:switch(0|(c=l[0|n])){case 0:break r;case 6:case 7:break n;default:break s}a=c}n=n+1|0;continue}break}r:if(a|f){if(e[A+32>>2]|65536&I){for(o=0,$t(A,s+1616|0,s+1832|0,3,0),n=s+1200|0;;){switch(l[0|n]){case 6:o&&(u[0|n]=5),o=1;default:n=n+1|0;continue;case 0:}break}e[s+24>>2]=s+1616,e[s+20>>2]=s+1200,e[s+16>>2]=s+992,as(189088,200,85233,s+16|0),u[189287]=0,$t(A,189088,s+1832|0,-1,0);break r}e[s+8>>2]=s+1616,e[s+4>>2]=s+1200,e[s>>2]=s+992,as(189088,200,85233,s),u[189287]=0,$t(A,189088,s+1832|0,-1,0)}else $t(A,a=s+1616|0,s+1832|0,-1,!!(0|T)<<1),e[s+40>>2]=a,e[s+36>>2]=s+1200,e[s+32>>2]=s+992,as(189088,200,85233,s+32|0),u[189287]=0;l[s+784|0]&&(a=HA(189088),u[983+(s-a|0)|0]=0,qA(a+189088|0,s+784|0)),16&(a=v|he)&&(e[s+1832>>2]=-268435457&e[s+1832>>2]);r:if(!(128&a)|!(16&l[A+14|0]))if(3072&a){if($e(A,6),!(2048&a))break r;e[s+1832>>2]=268435456|e[s+1832>>2]}else 16&l[P(e[33264],12)+r|0]&&(1536&(r=e[s+1832>>2])?$e(A,4):2048&r&&$e(A,3));else $e(A,3);8192&m&&(e[A+8192>>2]=2,e[A+8184>>2]=2);r:{if(8&(r=e[s+1836>>2]))e[A+8184>>2]=0,e[A+8188>>2]=3,a=A+8196|0;else if(1&r)e[A+8192>>2]=0,e[A+8184>>2]=2,a=A+8196|0;else if(2&r)e[A+8192>>2]=2,e[A+8184>>2]=0,e[A+8188>>2]=0,a=A+8196|0;else{if(!(4&r))break r;e[A+8184>>2]=0,e[A+8192>>2]=0,e[A+8196>>2]=2,a=A+8188|0}e[a>>2]=0}!l[e[s+1820>>2]]|256&r||((0|(r=e[A+8184>>2]))>0&&(e[A+8184>>2]=r-1),(0|(r=e[A+8192>>2]))>0&&(e[A+8192>>2]=r-1),(0|(r=e[A+8196>>2]))>0&&(e[A+8196>>2]=r-1),(0|(r=e[A+8188>>2]))<=0||(e[A+8188>>2]=r-1)),(0|ee)!=1|e[A+212>>2]!=25966||!ns(e[s+168>>2])|e[s+168>>2]==105||(e[s+1832>>2]=16777216|e[s+1832>>2]);r:if(2&l[A+68|0]&&98304&(a=e[s+1832>>2])&&!((0|(r=HA(189088)-1|0))<=0))for(n=0;;){if(A=n+1|0,l[n+189088|0]==6){r=u[0|(A=A+189088|0)];s:{if(65536&a){if((0|ra(69))==(0|r)?(ee=ra(101),u[0|A]=ee):ee=l[0|A],o=111,(0|ra(79))==ee<<24>>24)break s;break r}if((0|ra(101))==(0|r)?(ee=ra(69),u[0|A]=ee):ee=l[0|A],o=79,(0|ra(111))!=ee<<24>>24)break r}u[0|A]=ra(o);break r}if((0|r)==(0|(n=A)))break}A=e[s+1832>>2],wt(t,s+256|0,rA),n=A|p;break e}if(n=0,u[s+1616|0]=0,ki(A,e[s+1840>>2],s+1616|0,a)){if(c=qA(189088,s+1616|0),!Qe){if(a=e[s+164>>2],e[s+1408>>2]=8026656,e[s+576>>2]=8022304,e[s+416>>2]=7566112,4&v){t=s+576|1,r=s+1408|1;A:{if((n=255&a)&&((0|n)==102||(T=t,Yi(a<<24>>24))))break A;T=r}qt(A,T,c,200,0,0,0)}n=128&e[s+1832>>2]}}else n=((0|ee)>1)<<12}else u[189088]=0;return J=s+1856|0,n}function Mt(A,t,r,a,s,n,o,c){var f,m,p=0,I=0,v=0,T=0,O=0,Z=0,ee=0,ce=0,he=0,ye=0,Qe=0,We=0,Ke=0,rA=0,cA=0,MA=0,zA=0,et=0,at=0,dt=0,Ft=0,Zt=0,er=0,pr=0,hr=0,Er=0,vr=0,Fr=0,Wr=0,na=0,Xr=0,ia=0,Ba=0,es=0,is=0,os=0,Ts=0,Dn=0,fn=0,pn=0,Qn=0;J=f=J-384|0,m=e[t>>2];e:{A:{r:{s:{if(s){if(l[0|s]!=7)break s;e[t>>2]=(a||1)+m;break r}e[n>>2]=0,e[t>>2]=m+1;break e}Ft=86135,Wr=268435456&o,na=134217728&o,Xr=8388608&o,ia=16384&o,Ba=8192&o,pr=r-1|0,hr=a-r|0,es=2&o,is=128&o,os=o>>>31|0,Ts=-2147483648&o,Er=f+96|1;s:for(;;)for(e[f+268>>2]=0,ee=(v=e[t>>2])+a|0,cA=-2,Ke=-6,r=s,MA=Ts,et=0,Zt=0,rA=1,p=0,zA=0,dt=0;;){T=v,ce=p;n:{c:{o:{g:{l:{i:{p:{C:{m:{b:{h:{v:{w:{E:{L:{W:{for(;ye=r,r=r+1|0,!((I=l[0|ye])>>>0>9);)switch(O=r,0|I){case 0:if(!(r=vr)){vr=0,r=86135;break L}for(;;){I=1;V:{M:switch(0|(p=l[0|r])){case 0:case 3:break W;case 5:break M;default:break V}I=2}r=(r+I|0)+(((0|p)==9)<<1)|0}case 1:if(dt=1,!os)continue;break l;case 2:dt=2;continue;case 4:vr=r;continue;case 5:r=ye+2|0,p=e[A+320>>2];V:{if((v=l[ye+1|0])>>>0>=32){if(!(p>>>v-32&1))break V;break l}if(!(p>>>v&1))break l}rA=rA+1|0;continue;case 9:r=ye+3|0;continue;case 8:dt=1,Zt=1,MA=0;break;case 3:break E}O=0,p=ce,v=T;V:switch(0|dt){case 0:M:{B:{if((0|(p=l[0|ee]))!=(0|I)){if((0|p)!=69)break l;if((0|I)==101)break B;break l}if(O=0,(192&I)==128)break M}O=21}ee=ee+1|0,et=et+1|0;break n;case 1:break w;case 2:break V;default:break b}if(e[f+264>>2]=e[f+268>>2],!l[ee-1|0])break l;Ke=(0|(p=Ke+6|0))>=19?19:p,We=ee+1|0,Qe=Gt(f+268|0,ee),he=l[0|ee],O=20,p=ce;V:{M:switch(I-11|0){case 6:r=ye+2|0,p=e[f+268>>2],v=u[ye+1|0];B:if(I=e[604+(((v=((0|v)<65?191:-65)+v|0)<<2)+A|0)>>2])p=!!(0|Lr(I,p));else{if((0|v)>7)break l;D:{if((0|(I=e[A+600>>2]))>0){if((p=p-I|0)-1>>>0<255)break D;break l}if((I=p-192|0)>>>0<=413){p=l[344+(l[I+94240|0]+A|0)|0]&1<>>0>255)break l}p=l[344+(A+p|0)|0]&1<>2]))break l;B:for(;;){if((0|(O=l[0|p]))==7)break l;if((0|O)==126){O=20-Ke|0;break n}D:if(he){if(Z=ee,I=p,(0|O)==(0|he))for(;;){if((0|(O=l[0|(I=I+1|0)]))!=(0|(p=l[0|(Z=Z+1|0)])))break D;if(!p)break}}else I=p,Z=ee;if(O){for(;;)if(v=l[0|I],I=p=I+1|0,!v)continue B}break}if((0|(p=Z-ee|0))<0)break l;ee=p+ee|0,O=20-Ke|0;break n;case 14:I=e[f+268>>2];B:{D:if(p=e[A+604>>2])p=!!(0|Lr(p,I));else{F:{if((0|(p=e[A+600>>2]))>0){if((Z=I-p|0)-1>>>0<255)break F;break B}if((p=I-192|0)>>>0<=413){p=1&u[344+(l[p+94240|0]+A|0)|0];break D}if(Z=I,I>>>0>255)break c}p=1&u[344+(A+Z|0)|0]}if(p)break l;I=e[f+268>>2]}if(!na)break c;if((0|I)==32)break l;break c;case 4:if((p=e[f+268>>2])-48>>>0<10|p-2406>>>0<10)break c;if(!l[A+170|0])break l;O=20-Ke|0;break n;case 5:if(En(e[f+268>>2]))break l;break o;case 0:if(e[f+268>>2]==e[f+264>>2])break o;break l;case 17:r=ye+2|0,p=32768,O=0;B:{D:switch((I=l[ye+1|0])-1|0){case 0:break b;case 1:break D;default:break B}if(O=1,p=ce,!Xr)break b;break l}if((0|(p=240&I))==16){if(O=23,p=ce,c>>>(15&I)&16384)break b;break l}if((0|I)!=3&(0|p)!=32||(wt(p=f+96|0,pr,v=1+(e[t>>2]+(et+hr|0)|0)|0),u[0|(p=p+v|0)]=32,u[p+1|0]=0,e[33265]=0,e[33266]=0,e[f+16>>2]=Er,kr(A,f+16|0,f+272|0,133060,0,0),O=23,!((0|I)!=3|(0|(Z=e[33265]))>=0|16384&e[33266])))break n;if(p=ce,v=T,Z>>>(15&I)&16384)break b;break l;case 34:B:{if(p=he-32|0){if((0|p)==13)break B;break l}if(!ia)break l}Z=22-Ke|0;break g;case 10:if(p=1,l[0|r]==21)break V;break i;case 18:if((0|(Z=e[f+268>>2]))!=32)for(I=ee+Qe|0;;){B:{D:if(p=e[A+632>>2])p=!!(0|Lr(p,Z));else{F:{if((0|(p=e[A+600>>2]))>0){if((Z=Z-p|0)-1>>>0<255)break F;break B}if((p=Z-192|0)>>>0<=413){p=128&l[344+(l[p+94240|0]+A|0)|0];break D}if(Z>>>0>255)break B}p=128&l[344+(A+Z|0)|0]}if(p)break l}if(I=Gt(f+268|0,I)+I|0,(0|(Z=e[f+268>>2]))==32)break}Z=19-Ke|0;break g;case 49:break p;case 2:break C;case 3:break m;case 1:break b;case 13:break h;case 12:break M;default:break v}Gt(f+272|0,r),Qe=-1;M:if((0|(p=e[f+272>>2]))!=(0|(I=e[f+268>>2])))if(-33&I)for(;;){he=ee,Qe=-1;B:if((0|p)==18&&(p=u[ye+2|0],O=e[4788+((((0|p)<65?191:-65)+p<<2)+A|0)>>2])){for(;;){if((0|(v=l[0|O]))==7)break B;if((0|v)==126){Qe=0;break B}D:if((0|(ee=l[0|he]))==(0|v)){if(p=he,I=O,ee)for(;;){if((0|(v=l[0|(I=I+1|0)]))!=(0|(O=l[0|(p=p+1|0)])))break D;if(!O)break}}else I=O,p=he;if(!v){p=p-he|0;break}for(;p=l[0|I],I=O=I+1|0,p;);}Qe=p}if(v=Gt(f+268|0,he),(0|(p=e[f+272>>2]))==(0|(I=e[f+268>>2]))|!(-33&I))break M;if(ee=v+he|0,(0|Qe)!=-1)break}else he=ee;else he=ee;ee=(0|p)==(0|I)||(0|Qe)>=0?he:We,O=0;break n}for(;p=p+1|0,l[0|(r=r+1|0)]==21;);break i}r=r+1|0}O=ye}if(!(l[T-1|0]!=32&Zt|MA||((0|(I=Zt?rA+4|0:rA))>=(0|er)&&(Dn=zA,fn=ce,er=I,pn=et,Ft=r),!(8&e[47197])|Wr|(0|I)<=0))){for(JA(r,ye=f+272|0),We=e[47195],v=f+16|0,r=0,he=0,MA=0,zA=0,J=ee=J-496|0,u[ee+80|0]=0,(0|a)>0?(wt(ee+288|0,m,a),ce=a):ce=0,u[ce+(p=ee+288|0)|0]=0,T=HA(p)+p|0,Qe=(0|o)<0;;){if(Z=l[0|s],ce=s,s=s+1|0,Z>>>0>9)for(;;){E:{L:{W:{V:{M:{B:switch((p=255&Z)-14|0){case 4:break W;case 3:break V;case 0:break M;case 14:break B;default:break L}if(ce=ce+2|0,Z=32,!Qe&(0|(s=l[0|s]))==1)break E;u[0|T]=36,qA(p=T+1|0,s=Bn(128960,s)),T=HA(s)+p|0;break E}p=l[ce+2|0],Z=l[0|s],e[ee+36>>2]=127&l[ce+3|0],e[ee+32>>2]=4&p?80:83,DA(ee+48|0,85131,ee+32|0),1&p&&(s=HA(s=ee+48|0)+s|0,u[0|s]=101,u[s+1|0]=0),2&(s=127&p)&&(p=HA(p=ee+48|0)+p|0,u[0|p]=105,u[p+1|0]=0),4&s&&(p=HA(p=ee+48|0)+p|0,u[0|p]=112,u[p+1|0]=0),8&s&&(p=HA(p=ee+48|0)+p|0,u[0|p]=118,u[p+1|0]=0),16&s&&(p=HA(p=ee+48|0)+p|0,u[0|p]=100,u[p+1|0]=0),32&s&&(p=HA(p=ee+48|0)+p|0,u[0|p]=102,u[p+1|0]=0),s>>>0>=64&&(s=HA(s=ee+48|0)+s|0,u[0|s]=113,u[s+1|0]=0),1&Z&&(s=HA(s=ee+48|0)+s|0,u[0|s]=116,u[s+1|0]=0),ce=ce+4|0,T=qA(T,s=ee+48|0)+HA(s)|0,Z=32;break E}ce=ce+2|0,Z=l[u[0|s]+93871|0];break E}s=u[0|s],u[0|T]=76,p=((s=s+((0|s)<65?191:-65)|0)>>>0)/10|0,u[T+1|0]=p+48,Z=s-P(p,10)|48,(0|zA)==1&&(u[0|T]=Z,Z=76),ce=ce+2|0,T=T+2|0;break E}Z=p>>>0<=31?l[p+93904|0]:(0|p)==32?95:Z,ce=s}if(u[0|T]=Z,s=ce+1|0,T=T+1|0,!((Z=l[0|ce])>>>0>=10))break}p=1;E:switch(0|Z){case 1:p=r;case 8:u[0|T]=0,T=ee+80|0,r=p,zA=1;continue;case 2:u[0|T]=0,ce=HA(p=ee+288|0)+p|0,T=l[84899]|l[84900]<<8,u[0|ce]=T,u[ce+1|0]=T>>>8,zA=2,u[ce+2|0]=l[84901],T=HA(p)+p|0;continue;case 5:he=u[0|s],s=ce+2|0;continue;case 9:MA=(l[0|s]+P(l[ce+2|0],255)|0)-256|0,s=ce+3|0;continue;case 0:case 3:break E;default:continue}break}if(u[0|T]=0,T=v,(0|MA)>0&&(e[ee+16>>2]=MA,DA(v,85581,ee+16|0),T=v+7|0),(0|he)>0&&(e[ee>>2]=he,DA(T,85694,ee),T=HA(T)+T|0),1&((0|(s=HA(ee+80|0)))>0|r)){1&r&&(u[0|T]=95,T=T+1|0);E:if(!((0|(ce=s-1|0))<0|T>>>0>=v>>>0))for(;;){if(u[0|T]=l[(ee+80|0)+ce|0],T=T+1|0,(0|ce)<=0)break E;if(ce=ce-1|0,!(T>>>0>>0))break}u[0|T]=41,u[T+1|0]=32,T=T+2|0}u[0|T]=0,u[(r=ee+288|0)+((v+3|0)-T|0)|0]=0,sa(T,r),(0|(r=HA(v)))<=7&&(jA(r+v|0,32,8-r|0),r=8),u[r+v|0]=0,J=ee+496|0,e[f+4>>2]=v,e[f>>2]=(0|a)>1?I+35|0:I,e[f+8>>2]=ye,fr(We,89088,f)}r=O;break l}if(!l[0|T])break l;cA=(0|(p=cA+2|0))>=19?19:p,Gt(f+264|0,T),p=Ma(f+268|0,v=T-1|0),he=l[0|v],We=v;w:{E:{L:{W:{V:{M:switch(I-10|0){case 13:if(p=(0|(at=l[0|r]))==(0|(I=l[0|T])),Qe=-1,(0|I)==32|(0|I)==(0|at))break W;if(I)break V;break L;case 7:r=ye+2|0,O=e[f+268>>2],T=u[ye+1|0];B:if(I=e[604+(((T=((0|T)<65?191:-65)+T|0)<<2)+A|0)>>2])I=!!(0|Lr(I,O));else{if((0|T)>7)break l;D:{if((0|(I=e[A+600>>2]))>0){if((O=O-I|0)-1>>>0<255)break D;break l}if((I=O-192|0)>>>0<=413){I=l[344+(l[I+94240|0]+A|0)|0]&1<>>0>255)break l}I=l[344+(A+O|0)|0]&1<>2]))break l;B:{for(;;){if((0|(he=l[0|p]))==7)break l;if((0|he)==126){Qe=0;break B}I=v;D:{F:{if((0|(ye=(Qe=HA(p))-1|0))>0)for(I=T-Qe|0,O=0,Z=v;;){if(!l[0|(Z=Z-1|0)])break F;if((0|ye)==(0|(O=O+1|0)))break}q:if(!((0|(O=l[0|I]))!=(0|he)|!O))for(;;){if((0|(he=l[0|(p=p+1|0)]))!=(0|(O=l[0|(I=I+1|0)])))break q;if(!O)break}if(!he)break D}for(I=p;O=l[0|I],I=p=I+1|0,O;);continue}break}if((0|Qe)<0)break l}O=20-Ke|0,v=1+(v-Qe|0)|0;break w;case 15:I=e[f+268>>2];B:{D:if(T=e[A+604>>2])T=!!(0|Lr(T,I));else{F:{if((0|(T=e[A+600>>2]))>0){if((I=I-T|0)-1>>>0<255)break F;break B}if((T=I-192|0)>>>0<=413){T=1&u[344+(l[T+94240|0]+A|0)|0];break D}if(I>>>0>255)break B}T=1&u[344+(A+I|0)|0]}if(T)break l}O=20-cA|0,v=1+(v-p|0)|0;break w;case 1:if(e[f+268>>2]!=e[f+264>>2])break l;O=21-cA|0,v=1+(v-p|0)|0;break w;case 5:if(!((T=e[f+268>>2])-48>>>0<10|T-2406>>>0<10))break l;O=21-cA|0,v=1+(v-p|0)|0;break w;case 6:if(En(e[f+268>>2]))break l;O=21-Ke|0,v=1+(v-p|0)|0;break w;case 18:if(r=ye+2|0,!((0|(I=l[ye+1|0]))==3|(240&I)==32)||(wt(p=f+96|0,pr,v=1+(e[t>>2]+(et+hr|0)|0)|0),u[0|(p=p+v|0)]=32,u[p+1|0]=0,e[33265]=0,e[33266]=0,e[f+16>>2]=Er,kr(A,f+16|0,f+272|0,133060,0,0),O=23,!((0|I)!=3|(0|(Z=e[33265]))>=0|16384&e[33266])))break n;if(p=ce,v=T,Z>>>(15&I)&16384)break b;break l;case 11:if(I=1,l[0|r]==21)for(;I=I+1|0,l[0|(r=r+1|0)]==21;);if(e[A+8208>>2]<(0|I))break l;O=18+(I-cA|0)|0;break w;case 0:if(O=19,p=ce,v=T,e[A+8212>>2]>0)break b;break l;case 19:if(O=3,(0|(Z=e[f+268>>2]))==32)break w;for(I=1+(v-p|0)|0;;){B:{D:if(p=e[A+632>>2])p=!!(0|Lr(p,Z));else{F:{if((0|(p=e[A+600>>2]))>0){if((Z=Z-p|0)-1>>>0<255)break F;break B}if((p=Z-192|0)>>>0<=413){p=128&l[344+(l[p+94240|0]+A|0)|0];break D}if(Z>>>0>255)break B}p=128&l[344+(A+Z|0)|0]}if(p)break l}if(I=I-Ma(f+268|0,I-1|0)|0,(0|(Z=e[f+268>>2]))==32)break}break w;case 16:if(O=1,p=ce,v=T,e[A+8184>>2])break b;break l;case 9:if(O=1,p=ce,v=T,es)break b;break l;case 36:for(;;){if(O=50,p=ce,!(T=(255&he)-32|0))break l;if((0|T)==14)break b;he=l[0|(We=We-1|0)]}case 35:break M;default:break E}M:{if(p=he-32|0){if((0|p)==13)break M;break l}if(!is)break l}O=22-Ke|0;break w}V:{for(;;){Qe=-1,Z=T,T=T-1|0;M:if((0|at)==18&&(p=u[ye+2|0],O=e[4788+((((0|p)<65?191:-65)+p<<2)+A|0)>>2]))for(Qn=Z+1|0;;){if((0|(We=l[0|O]))==7){Qe=-1;break M}if((0|We)==126){Qe=0;break M}I=Z;B:{if((0|(Fr=(Qe=HA(O))-1|0))>0)for(I=Qn-Qe|0,he=0,p=Z;;){if(!l[0|(p=p-1|0)])break B;if((0|Fr)==(0|(he=he+1|0)))break}D:if(!((0|(p=l[0|I]))!=(0|We)|!p))for(;;){if((0|(We=l[0|(O=O+1|0)]))!=(0|(p=l[0|(I=I+1|0)])))break D;if(!p)break}if(!We)break M}for(I=O;p=l[0|I],I=O=I+1|0,p;);}if(p=(0|(I=l[0|T]))==(0|at),(0|I)==32|(0|I)==(0|at))break V;if(!I){T=Z;break L}if((0|Qe)!=-1)break}T=Z;break L}T=Z}v=p?T:v}O=0,v=(0|Qe)<0?v:T+1|0;break w}if((0|I)!=(0|he))break l;O=4,(0|I)!=32&&(O=(192&I)!=128?21-cA|0:0)}p=ce;break b}if((0|I)!=(0|he))break l;Z=(192&I)!=128?21-Ke|0:0;break g}if(O=1,Ba)break l}rA=O+rA|0;continue}if(p=u[ye+1|0],ce=l[ye+3|0],v=l[ye+2|0],1&!(e[A+8208>>2]|4&v)&u[A+84|0])break l;r=ye+4|0,Z=0,ce=127&ce|(127&v)<<8|p<<16;break g}C:if(!(We>>>0<=(I=e[t>>2]+a|0)>>>0)){for(;;){if(l[0|I]!=101){if(p=I>>>0>>0,I=I+1|0,p)continue;break C}break}Z=0,zA=I;break g}Z=0;break g}O=-20;break n}if(he=0,(0|(I=e[f+268>>2]))!=32)for(Z=ee+Qe|0,O=0;;){if(!O){i:{p:if(v=e[A+632>>2])I=!!(0|Lr(v,I));else{C:{if((0|(v=e[A+600>>2]))>0){if((I=I-v|0)-1>>>0<255)break C;break i}if((v=I-192|0)>>>0<=413){I=128&l[344+(l[v+94240|0]+A|0)|0];break p}if(I>>>0>255)break i}I=128&l[344+(A+I|0)|0]}I&&(he=he+1|0)}I=e[f+268>>2]}i:if(v=e[A+632>>2])O=!!(0|Lr(v,I));else{p:{if((0|(v=e[A+600>>2]))>0){if(O=0,(I=I-v|0)-1>>>0<255)break p;break i}if((v=I-192|0)>>>0<=413){O=128&l[344+(l[v+94240|0]+A|0)|0];break i}if(O=0,I>>>0>255)break i}O=128&l[344+(A+I|0)|0]}if(Z=Gt(f+268|0,Z)+Z|0,(0|(I=e[f+268>>2]))==32)break}if(!((0|p)>(0|he))){Z=18+(p-Ke|0)|0;break g}}for(;p=l[0|r],r=s=r+1|0,p;);if(l[0|s]!=7)continue s;if(A=a+pn|0,e[t>>2]=e[t>>2]+(A||1),er)break A;break r}p=ce,ee=We,v=T,rA=Z+rA|0;continue}ee=ee+Qe|0,O=21-Ke|0;break n}ee=ee+Qe|0,O=20-Ke|0}p=ce,v=T,rA=O+rA|0}}Ft=86135}e[n+12>>2]=Dn,e[n+8>>2]=fn,e[n+4>>2]=Ft,e[n>>2]=er}J=f+384|0}function Tt(A,t){var r,a=0,s=0,n=0,o=0,c=0,f=0,m=0,p=0,I=0,v=0,T=0,O=0,Z=0,ee=0,ce=0,he=0,ye=0,Qe=0,We=0,Ke=0,rA=0,cA=0,MA=0,zA=0,et=0,at=0,dt=0,Ft=0,Zt=0,er=0;J=r=J-1168|0,e[r+928>>2]=0,e[r+932>>2]=0,e[r+920>>2]=0,e[r+924>>2]=0,e[r+912>>2]=0,e[r+916>>2]=0,e[r+904>>2]=0,e[r+908>>2]=0,e[r+896>>2]=0,e[r+900>>2]=0;e:{A:{if(A){if(l[0|A]|8&t)break A;break e}if(!(8&t))break e}if(ar(r+1088|0,A,40),16&t){if((0|ss(qA(r+704|0,A)))<=0)break e;Z=8&t}else(Z=8&t)|l[r+1088|0]||(b[r+1088>>1]=l[85055]|l[85056]<<8,u[r+1090|0]=l[85057]),e[r+496>>2]=137584,e[r+500>>2]=47,e[r+504>>2]=47,DA(a=r+512|0,85286,r+496|0),e[r+484>>2]=r+1088,e[r+480>>2]=a,DA(a=r+704|0,85425,r+480|0),(0|ss(a))>0||(e[r+468>>2]=47,e[r+472>>2]=47,e[r+464>>2]=137584,DA(a=r+512|0,85648,r+464|0),e[r+452>>2]=r+1088,e[r+448>>2]=a,DA(r+704|0,85425,r+448|0));if(s=Z?86012:85055,!(ee=wa(r+704|0,85712))){if(a=0,3&t)break e;s=(0|kn(a=r+1088|0))<0?s:a}if((O=2&t)||(a=e[47192])&&(E0(a),e[47192]=0),ye=qA(r+992|0,s),he=qA(r+944|0,s),O?((a=$a(200992,43))&&(u[0|a]=0),e[r+432>>2]=A+3,DA(A=r+704|0,86030,r+432|0),sa(200992,A)):(e[32972]=199592,ar(200992,A,40),u[201088]=0,u[201040]=0,e[50299]=200992,e[50298]=201088,e[50297]=201040),Kt(O),ee){for(We=e[30450],Ke=r+548|0,rA=r+544|0,cA=r+540|0,MA=r+536|0,zA=r+532|0,et=r+528|0,at=12|(A=r+512|0),dt=8|A,Ft=4|A;Jt(r+704|0,190,ee);){A=r+704|0;A:{if(l[r+704|0]!=35){r:if(!((0|(A=HA(r+704|0)-1|0))<=0))for(;;){if(!((0|(s=u[0|(a=(r+704|0)+A|0)]))==32|s-9>>>0<5))break r;if(u[0|a]=0,!((0|(A=A-1|0))>0))break}if(!(A=Hr(r+704|0)))break A}u[0|A]=0}A=r+704|0;A:if(a=l[r+704|0])for(;;){if((0|(a=a<<24>>24))==32|a-9>>>0<5)break A;if(!(a=l[0|(A=A+1|0)]))break}if(u[0|A]=0,l[r+704|0])if(A=A+1|0,a=Cs(129744,r+704|0)){n=0,J=s=J-416|0;A:if(o=e[47192]){switch(a-19|0){case 16:if(e[s+32>>2]=s+412,(0|gt(A,84249,s+32|0))!=1)break A;e[o+324>>2]=e[s+412>>2];break A;case 8:j0(A,o+320|0,27);break A;case 2:if(e[s+48>>2]=188784,gt(A,84249,s+48|0),!(A=l[188784]))break A;e[o+152>>2]=A;break A;case 11:if(l[0|A]){for(c=e[30450];;)if(a=A,A=A+1|0,!((0|(n=u[0|a]))==32|n-9>>>0<5)){for(n=Vs(a),e[s+412>>2]=n,(0|n)>0&&(n>>>0<=31?e[o+104>>2]=e[o+104>>2]|1<>>0<=63?e[o+108>>2]=e[o+108>>2]|1<>2]=n,fr(c,84700,s- -64|0)),a=A);a=(A=a)+1|0,(n=u[0|A])-48>>>0<10|(32|n)-97>>>0<26;);if(!n)break}}8&(A=e[o+104>>2])&&(e[o+124>>2]=46,e[o+128>>2]=44),4&A&&(e[o+124>>2]=0);break A;default:if((65280&a)!=256)break A;e[s+16>>2]=24+(o+((255&a)<<2)|0),gt(A,84249,s+16|0);break A;case 1:e[s+144>>2]=o,e[s+148>>2]=o+4,gt(A,85642,s+144|0);break A;case 3:if(a=0,jA(n=s+160|0,0,240),e[s+132>>2]=s+360,e[s+128>>2]=s+320,e[s+124>>2]=s+280,e[s+120>>2]=s+240,e[s+116>>2]=s+200,e[s+112>>2]=n,n=gt(A,85037,s+112|0),e[s+412>>2]=n,e[o+152>>2]=0,(0|n)<=0)break A;for(p=e[30450];;){r:if(yr(c=(s+160|0)+P(a,40)|0,85301)){s:{if((0|(m=e[34454]))>0)for(T=e[34455],A=0;;){if(!yr(c,T+P(A,68)|0))break s;if((0|m)==(0|(A=A+1|0)))break}e[s+96>>2]=c,fr(p,85562,s+96|0),n=e[s+412>>2];break r}u[156+(a+o|0)|0]=A}if(!((0|n)>(0|(a=a+1|0))))break}break A;case 9:e[s+88>>2]=o+20,e[s+84>>2]=o+16,e[s+80>>2]=o+8,gt(A,84778,s+80|0);break A;case 10:j0(A,o+12|0,29);break A;case 5:if((0|(p=Ci(A,s+160|0)))<=0)break A;if(a=0,A=0,p>>>0>=4)for(T=-4&p,c=o+304|0;m=s+160|0,b[c+(A<<1)>>1]=e[m+(A<<2)>>2],b[c+((f=1|A)<<1)>>1]=e[m+(f<<2)>>2],b[c+((f=2|A)<<1)>>1]=e[m+(f<<2)>>2],b[c+((f=3|A)<<1)>>1]=e[m+(f<<2)>>2],A=A+4|0,(0|T)!=(0|(n=n+4|0)););if(!(n=3&p))break A;for(;b[304+(o+(A<<1)|0)>>1]=e[(s+160|0)+(A<<2)>>2],A=A+1|0,(0|n)!=(0|(a=a+1|0)););break A;case 6:if((0|(p=Ci(A,s+160|0)))<=0)break A;if(a=0,A=0,p>>>0>=4)for(T=-4&p,c=o+296|0;m=s+160|0,u[A+c|0]=e[m+(A<<2)>>2],u[(f=1|A)+c|0]=e[m+(f<<2)>>2],u[(f=2|A)+c|0]=e[m+(f<<2)>>2],u[(f=3|A)+c|0]=e[m+(f<<2)>>2],A=A+4|0,(0|T)!=(0|(n=n+4|0)););if(!(n=3&p))break A;for(;u[296+(A+o|0)|0]=e[(s+160|0)+(A<<2)>>2],A=A+1|0,(0|n)!=(0|(a=a+1|0)););break A;case 7:if((0|(p=Ci(A,s+160|0)))<=0)break A;if(a=0,A=0,p>>>0>=4)for(T=-4&p,c=o+304|0;f=m=c+(A<<1)|0,I=M[m>>1],m=s+160|0,b[f>>1]=I+M[m+(A<<2)>>1],b[(I=c+((f=1|A)<<1)|0)>>1]=M[I>>1]+M[m+(f<<2)>>1],b[(I=c+((f=2|A)<<1)|0)>>1]=M[I>>1]+M[m+(f<<2)>>1],b[(I=c+((f=3|A)<<1)|0)>>1]=M[I>>1]+M[m+(f<<2)>>1],A=A+4|0,(0|T)!=(0|(n=n+4|0)););if(!(n=3&p))break A;for(;b[304+(c=o+(A<<1)|0)>>1]=M[c+304>>1]+M[(s+160|0)+(A<<2)>>1],A=A+1|0,(0|n)!=(0|(a=a+1|0)););break A;case 4:u[o+169|0]=1;break A;case 0:}u[o+208|0]=1}else e[s>>2]=Bn(129568,a),fr(e[30450],89101,s);J=s+416|0}else{switch(Cs(131904,r+704|0)-1|0){case 1:if(O||(u[r+1040|0]=0,e[r+512>>2]=5,e[r+32>>2]=r+1040,e[r+36>>2]=r+512,gt(A,86237,r+32|0),e[r+1040>>2]==1769103734&e[r+1044>>2]==7630433))continue;if((A=HA(r+1040|0)+2|0)>>>0<99-ce>>>0&&(u[0|(a=ce+201088|0)]=e[r+512>>2],qA(a+1|0,r+1040|0),ce=A+ce|0),!Zt){if(A=0,(a=c=r+1040|0)||(a=e[57150])){if(A=86875,e[24+(s=J-32|0)>>2]=0,e[s+28>>2]=0,e[s+16>>2]=0,e[s+20>>2]=0,e[s+8>>2]=0,e[s+12>>2]=0,e[s>>2]=0,e[s+4>>2]=0,o=0,n=l[86875])if(l[86876]){for(;e[(o=s+(n>>>3&28)|0)>>2]=e[o>>2]|1<>>3&28)>>2]>>>n&1))break A;if(n=l[A+1|0],A=A+1|0,!n)break}o=A-a|0}else{for(A=a;s=A,A=A+1|0,l[0|s]==(0|n););o=s-a|0}if(l[0|(A=o+a|0)]){a=86875,J=n=J-32|0,s=u[86875];A:if(l[86876]&&s){if(jA(n,0,32),s=l[86875])for(;e[(o=n+(s>>>3&28)|0)>>2]=e[o>>2]|1<>>3&28)>>2]>>>s&1)break A;if(s=l[a+1|0],a=a+1|0,!s)break}}else a=Rs(A,s);J=n+32|0,l[0|(a=(a-A|0)+A|0)]?(e[57150]=a+1,u[0|a]=0):e[57150]=0}else e[57150]=0,A=0}a=qA(ye,A),qA(he,A),kn(qA(r+896|0,A)),e[47192]=qe(a),ar(e[32972]+40|0,c,20)}Zt=1;continue;case 0:if(O)continue;for(;a=A,A=A+1|0,(0|(s=u[0|a]))==32|s-9>>>0<5;);ar(201040,a,40);continue;case 2:e[r+1152>>2]=0,a=r+512|0,e[r+48>>2]=a,e[r+52>>2]=r+1152,gt(A,86237,r+48|0),u[201200]=Cs(132112,a),u[201201]=e[r+1152>>2];continue;case 4:e[r+64>>2]=he,gt(A,86939,r- -64|0);continue;case 3:e[r+80>>2]=r+896,gt(A,86939,r+80|0);continue;case 8:if(e[r+1152>>2]=100,e[r+1164>>2]=100,e[r+1148>>2]=100,e[r+112>>2]=r+1144,e[r+1144>>2]=0,e[r+96>>2]=r+512,e[r+100>>2]=r+1152,e[r+104>>2]=r+1164,e[r+108>>2]=r+1148,(0|gt(A,91156,r+96|0))<2||(A=e[r+512>>2])>>>0>8||((0|(a=e[r+1152>>2]))>=0&&(s=e[32972]+(A<<1)|0,a=Ne(v=2.56001*+(0|a))<2147483648?~~v:-2147483648,b[s+236>>1]=a,b[s+164>>1]=a),(0|(a=e[r+1164>>2]))>=0&&(s=e[32972]+(A<<1)|0,a=Ne(v=2.56001*+(0|a))<2147483648?~~v:-2147483648,b[s+254>>1]=a,b[s+182>>1]=a),(0|(s=e[r+1148>>2]))<0?a=e[32972]:(c=(a=e[32972])+(A<<1)|0,s=Ne(v=2.56001*+(0|s))<2147483648?~~v:-2147483648,b[c+200>>1]=s),b[218+((A<<1)+a|0)>>1]=e[r+1144>>2],A))continue;b[a+200>>1]=(0|P(b[a+200>>1],105))/100;continue;case 9:if(e[r+132>>2]=r+696,e[r+128>>2]=r+700,(0|gt(A,87106,r+128|0))!=2)continue;if(A=e[32972],a=e[r+700>>2],e[A+64>>2]=(a<<12)-36864,e[A+68>>2]=P(e[r+696>>2]-a|0,108),Ne(v=256*(+(a-82|0)/82*.25+1))<2147483648){e[A+116>>2]=~~v;continue}e[A+116>>2]=-2147483648;continue;case 35:er||kn(r+896|0),e[r+1164>>2]=0,u[r+1156|0]=l[91267],e[r+1152>>2]=l[91263]|l[91264]<<8|l[91265]<<16|l[91266]<<24,e[r+144>>2]=r+1164,e[r+148>>2]=r+512,e[r+152>>2]=r+1152,(0|gt(A,91302,r+144|0))<2|e[49848]>59||(A=bi(r+512|0))&&(u[P(e[49848],3)+199408|0]=A,A=bi(r+1152|0),a=e[49848],s=P(a,3)+199408|0,u[s+1|0]=A,e[49848]=a+1,u[s+2|0]=e[r+1164>>2]),er=1;continue;case 10:e[r+1140>>2]=0,a=e[32972],e[a+100>>2]=0,e[r+164>>2]=a+100,e[r+160>>2]=a+96,gt(A,87106,r+160|0);continue;case 11:if(e[r+176>>2]=r+1140,(0|gt(A,87268,r+176|0))!=1)continue;e[e[32972]+88>>2]=e[r+1140>>2]<<5;continue;case 12:if(e[r+192>>2]=r+1140,(0|gt(A,87268,r+192|0))!=1)continue;e[e[32972]+92>>2]=e[r+1140>>2];continue;case 13:if(e[r+208>>2]=r+1140,(0|gt(A,87268,r+208|0))!=1)continue;a=e[32972],(0|(A=e[r+1140>>2]))>=5&&(e[a+108>>2]=1,e[r+1140>>2]=4,A=4),e[a+104>>2]=A+1;continue;case 14:for(e[r+552>>2]=-1,e[r+556>>2]=-1,e[r+544>>2]=-1,e[r+548>>2]=-1,e[r+536>>2]=-1,e[r+540>>2]=-1,e[r+528>>2]=-1,e[r+532>>2]=-1,e[r+240>>2]=et,e[r+244>>2]=zA,e[r+248>>2]=MA,e[r+252>>2]=cA,e[r+256>>2]=rA,e[r+260>>2]=Ke,e[r+520>>2]=-1,e[r+524>>2]=-1,e[r+512>>2]=-1,e[r+516>>2]=-1,e[r+228>>2]=Ft,e[r+232>>2]=dt,e[r+236>>2]=at,e[r+224>>2]=r+512,gt(A,84222,r+224|0),T=e[32972],A=0,n=e[r+516>>2],s=0;;){if(a=s,o=n,c=A,(0|(s=e[(n=(A<<=2)+(r+512|0)|0)>>2]))==-1&&(s=8e3,e[n>>2]=8e3,c&&(e[(r+512|0)+(4|A)>>2]=e[508+(A+r|0)>>2])),n=e[(r+512|0)+(4|A)>>2],!((0|a)>=(0|(s=(0|s)/8|0))||(0|(m=s-a|0))<=0||(p=a+1|0,A=a,1&m&&(u[344+(a+T|0)|0]=(0|o)>=255?255:o,A=p),(0|s)==(0|p))))for(p=n-o|0;I=T+344|0,f=o+((0|P(p,A-a|0))/(0|m)|0)|0,u[I+A|0]=(0|f)>=255?255:f,f=o+((0|P(p,(Qe=A+1|0)-a|0))/(0|m)|0)|0,u[I+Qe|0]=(0|f)>=255?255:f,(0|s)!=(0|(A=A+2|0)););if(A=c+2|0,!(c>>>0<10))break}continue;case 15:if(e[r+272>>2]=r+1140,(0|gt(A,87268,r+272|0))!=1)continue;e[e[32972]+112>>2]=(e[r+1140>>2]<<6)/100;continue;case 16:a=e[32972],e[(s=a+300|0)>>2]=0,e[s+4>>2]=0,e[(n=a+292|0)>>2]=0,e[n+4>>2]=0,e[(o=a+284|0)>>2]=0,e[o+4>>2]=0,e[(c=a+276|0)>>2]=0,e[c+4>>2]=0,e[r+316>>2]=a+304,e[r+312>>2]=s,e[r+308>>2]=a+296,e[r+304>>2]=n,e[r+300>>2]=a+288,e[r+296>>2]=o,e[r+292>>2]=a+280,e[r+288>>2]=c,a=gt(A,84553,r+288|0),A=e[32972],e[A+272>>2]=a,e[A+276>>2]=0-e[A+276>>2],e[A+284>>2]=0-e[A+284>>2],e[A+292>>2]=0-e[A+292>>2],e[A+300>>2]=0-e[A+300>>2];continue;case 17:a=e[32972],e[(s=a+336|0)>>2]=0,e[s+4>>2]=0,e[(n=a+328|0)>>2]=0,e[n+4>>2]=0,e[(o=a+320|0)>>2]=0,e[o+4>>2]=0,e[(c=a+312|0)>>2]=0,e[c+4>>2]=0,e[r+348>>2]=a+340,e[r+344>>2]=s,e[r+340>>2]=a+332,e[r+336>>2]=n,e[r+332>>2]=a+324,e[r+328>>2]=o,e[r+324>>2]=a+316,e[r+320>>2]=c,A=gt(A,84553,r+320|0),e[e[32972]+308>>2]=A;continue;case 36:a=e[32972],e[r+352>>2]=a+120,e[r+356>>2]=a+124,e[r+1140>>2]=gt(A,87106,r+352|0);continue;case 33:e[r+368>>2]=e[32972]+84,gt(A,87268,r+368|0),Os(3);continue;case 31:a=e[32972],e[(s=a+156|0)>>2]=0,e[s+4>>2]=0,e[(n=a+148|0)>>2]=0,e[n+4>>2]=0,e[(o=a+140|0)>>2]=0,e[o+4>>2]=0,e[(c=a+132|0)>>2]=0,e[c+4>>2]=0,e[r+412>>2]=a+160,e[r+408>>2]=s,e[r+404>>2]=a+152,e[r+400>>2]=n,e[r+396>>2]=a+144,e[r+392>>2]=o,e[r+388>>2]=a+136,e[r+384>>2]=c,gt(A,84553,r+384|0),A=e[32972],e[A+152>>2]=e[A+152>>2]-40;continue;case 32:e[r+416>>2]=145740,gt(A,87268,r+416|0),Os(3);continue;case 6:case 7:continue}e[r+16>>2]=r+704,fr(We,87359,r+16|0)}}ta(ee)}A:{if((A=e[47192])|O){if(O)break A}else A=qe(ye),e[47192]=A;r:{if(!Z){if((0|(A=kn(r+896|0)))<0&&(e[r>>2]=r+896,fr(e[30450],87567,r),A=0),e[e[32972]+60>>2]=A,a=e[47192],e[a+292>>2]=A,Xa(a,he,4&t),l[132848])break r;E0(e[47192]),a=0;break e}e[e[32972]+60>>2]=0,e[A+292>>2]=0}u[ce+201088|0]=0}a=e[32972]}return J=r+1168|0,a}function gt(A,t,r){var a,s,n,o=0,c=0,f=0,m=0,p=0,I=0,v=0,T=0,O=0,Z=0,ee=0,ce=0,he=0,ye=0,Qe=0,We=0,Ke=0,rA=0,cA=0;J=n=J-16|0,e[n+12>>2]=r,J=o=J-144|0,a=jA(o,0,144),e[a+76>>2]=-1,e[a+44>>2]=A,e[a+32>>2]=18,e[a+84>>2]=A,o=t,Ke=r,A=0,J=s=J-304|0;e:{A:{r:if(e[a+4>>2]||(Hn(a),e[a+4>>2])){if(!(t=l[0|o]))break e;s:{n:{c:{o:{for(;;){g:{l:if((0|(t&=255))==32|t-9>>>0<5){for(;t=o,o=o+1|0,(0|(r=l[t+1|0]))==32|r-9>>>0<5;);for(Ja(a,0,0);(0|(r=e[a+4>>2]))==e[a+104>>2]?r=bA(a):(e[a+4>>2]=r+1,r=l[0|r]),(0|r)==32|r-9>>>0<5;);o=e[a+4>>2],(0|(r=e[a+116>>2]))>0|(0|r)>=0&&(o=o-1|0,e[a+4>>2]=o),o=r=o-e[a+44>>2]|0,p=ce+e[a+124>>2]|0,p=(c=r>>31)+((r=O+e[a+120>>2]|0)>>>0>>0?p+1|0:p)|0,ce=(O=r+o|0)>>>0>>0?p+1|0:p}else{i:{p:{C:{if(l[0|o]==37){if((0|(t=l[o+1|0]))==42)break C;if((0|t)!=37)break p}if(Ja(a,0,0),l[0|o]!=37)(0|(t=e[a+4>>2]))==e[a+104>>2]?t=bA(a):(e[a+4>>2]=t+1,t=l[0|t]);else{for(;(0|(t=e[a+4>>2]))==e[a+104>>2]?t=bA(a):(e[a+4>>2]=t+1,t=l[0|t]),(0|t)==32|t-9>>>0<5;);o=o+1|0}if(l[0|o]!=(0|t)){if((0|(r=e[a+116>>2]))>0|(0|r)>=0&&(e[a+4>>2]=e[a+4>>2]-1),(0|t)>=0||(f=0,rA))break e;break r}m=(c=t=e[a+4>>2]-e[a+44>>2]|0)>>31,t=ce+e[a+124>>2]|0,f=((r=O+e[a+120>>2]|0)>>>0>>0?t+1|0:t)+m|0,ce=(O=r+c|0)>>>0>>0?f+1|0:f,t=o;break l}I=0,t=o+2|0;break i}l[o+2|0]!=36|t-48>>>0>=10?(I=e[Ke>>2],Ke=Ke+4|0,t=o+1|0):(t=l[o+1|0]-48|0,e[12+(r=J-16|0)>>2]=Ke,t=(t>>>0>1?(t<<2)-4|0:0)+Ke|0,e[r+8>>2]=t+4,I=e[t>>2],t=o+3|0)}if(v=0,o=0,l[0|t]-48>>>0<10)for(;o=(l[0|t]+P(o,10)|0)-48|0,r=l[t+1|0],t=t+1|0,r-48>>>0<10;);(0|(Z=l[0|t]))==109&&(T=0,v=!!(0|I),Z=l[t+1|0],A=0,t=t+1|0),t=(r=t)+1|0,c=3,f=v;i:{p:switch(Z-65|0){case 39:c=r+2|0,t=(r=l[r+1|0]==104)?c:t,c=r?-2:-1;break i;case 43:c=r+2|0,t=(r=l[r+1|0]==108)?c:t,c=r?3:1;break i;case 51:case 57:c=1;break i;case 11:c=2;break i;case 41:break i;case 0:case 2:case 4:case 5:case 6:case 18:case 23:case 26:case 32:case 34:case 35:case 36:case 37:case 38:case 40:case 45:case 46:case 47:case 50:case 52:case 55:break p;default:break s}c=0,t=r}f=c,Qe=(c=(47&(r=l[0|t]))==3)?1:f;i:if((0|(ye=c?32|r:r))!=91){p:{if((0|ye)!=110){if((0|ye)!=99)break p;o=(0|o)<=1?1:o;break i}k0(I,Qe,O,ce);break l}for(Ja(a,0,0);(0|(r=e[a+4>>2]))==e[a+104>>2]?r=bA(a):(e[a+4>>2]=r+1,r=l[0|r]),(0|r)==32|r-9>>>0<5;);r=e[a+4>>2],(0|(c=e[a+116>>2]))>0|(0|c)>=0&&(r=r-1|0,e[a+4>>2]=r),c=r=r-e[a+44>>2]|0,p=ce+e[a+124>>2]|0,ce=(f=r>>31)+((r=O+e[a+120>>2]|0)>>>0>>0?p+1|0:p)|0,ce=(O=r+c|0)>>>0>>0?ce+1|0:ce}if(ee=o,Ja(a,o,he=o>>31),(0|(r=e[a+4>>2]))==e[a+104>>2]){if((0|bA(a))<0)break n}else e[a+4>>2]=r+1;(0|(r=e[a+116>>2]))>0|(0|r)>=0&&(e[a+4>>2]=e[a+4>>2]-1),r=16;i:{p:{C:{m:{switch(ye-88|0){default:if((r=ye-65|0)>>>0>6|!(1<>2]-e[a+44>>2]|0,e[a+120>>2]!=(0-r|0)|e[a+124>>2]!=(0-((r>>31)+!!(0|r)|0)|0))break C;break c;case 3:case 11:case 27:if((16|ye)==115){if(jA(s+32|0,-1,257),u[s+32|0]=0,(0|ye)!=115)break p;u[s+65|0]=0,u[s+46|0]=0,b[s+42>>1]=0,b[s+44>>1]=0;break p}jA(s+32|0,m=(0|(c=l[t+1|0]))==94,257),u[s+32|0]=0,r=m?t+2|0:t+1|0;b:{h:{v:{if((0|(t=l[(m?2:1)+t|0]))!=45){if((0|t)==93)break v;c=(0|c)!=94,t=r;break b}c=(0|c)!=94,u[s+78|0]=c;break h}c=(0|c)!=94,u[s+126|0]=c}t=r+1|0}for(;;){if((0|(r=l[0|t]))==45){if(r=45,!(!(m=l[t+1|0])|(0|m)==93)){if(f=t+1|0,m>>>0<=(t=l[t-1|0])>>>0)r=m;else for(;u[(t=t+1|0)+(s+32|0)|0]=c,(r=l[0|f])>>>0>t>>>0;);t=f}}else{if(!r)break n;if((0|r)==93)break p}u[33+(r+s|0)|0]=c,t=t+1|0}case 23:r=8;break m;case 12:case 29:r=10;break m;case 1:case 2:case 4:case 5:case 6:case 7:case 8:case 10:case 16:case 18:case 19:case 20:case 21:case 22:case 25:case 26:case 28:case 30:case 31:break i;case 0:case 24:case 32:break m;case 17:}r=0}m=0,p=0,c=0,f=0,Z=0,J=We=J-16|0;m:if((0|r)!=1&r>>>0<=36){for(;(0|(o=e[a+4>>2]))==e[a+104>>2]?o=bA(a):(e[a+4>>2]=o+1,o=l[0|o]),(0|o)==32|o-9>>>0<5;);b:{h:switch(o-43|0){case 0:case 2:break h;default:break b}Z=(0|o)==45?-1:0,(0|(o=e[a+4>>2]))==e[a+104>>2]?o=bA(a):(e[a+4>>2]=o+1,o=l[0|o])}b:{h:{v:{w:{if(!(!!(0|r)&(0|r)!=16|(0|o)!=48)){if((0|(o=e[a+4>>2]))==e[a+104>>2]?o=bA(a):(e[a+4>>2]=o+1,o=l[0|o]),(-33&o)==88){if(r=16,(0|(o=e[a+4>>2]))==e[a+104>>2]?o=bA(a):(e[a+4>>2]=o+1,o=l[0|o]),l[o+121329|0]<16)break v;(0|(r=e[a+116>>2]))>0|(0|r)>=0&&(e[a+4>>2]=e[a+4>>2]-1),Ja(a,0,0);break m}if(r)break w;r=8;break v}if(!((r=r||10)>>>0>l[o+121329|0])){(0|(r=e[a+116>>2]))>0|(0|r)>=0&&(e[a+4>>2]=e[a+4>>2]-1),Ja(a,0,0),e[56798]=28;break m}}if((0|r)==10){if((c=o-48|0)>>>0<=9){for(r=0;f=(r=P(r,10)+c|0)>>>0<429496729,(0|(o=e[a+4>>2]))==e[a+104>>2]?o=bA(a):(e[a+4>>2]=o+1,o=l[0|o]),f&(c=o-48|0)>>>0<=9;);m=r}w:if(!(c>>>0>9)){for(r=It(m,0,10,0),f=$;;){if(p=f,f=(0|(p=(m=r+c|0)>>>0>>0?p+1|0:p))==429496729&m>>>0>=2576980378|p>>>0>429496729,(0|(r=e[a+4>>2]))==e[a+104>>2]?o=bA(a):(e[a+4>>2]=r+1,o=l[0|r]),f|(c=o-48|0)>>>0>9)break w;if(r=It(m,p,10,0),!((0|(f=$))==-1&~c>>>0>=r>>>0|(0|f)!=-1))break}r=10;break h}if(r=10,c>>>0<=9)break h;break b}}if(r-1&r){if((f=l[o+121329|0])>>>0>>0){for(;m=(c=P(r,c)+f|0)>>>0<119304647,(0|(o=e[a+4>>2]))==e[a+104>>2]?o=bA(a):(e[a+4>>2]=o+1,o=l[0|o]),m&(f=l[o+121329|0])>>>0>>0;);m=c}if(r>>>0<=f>>>0)break h;for(;;){if(c=It(m,p,r,0),(0|(ee=$))==-1&~(f&=255)>>>0>>0||(p=ee,p=(m=c+f|0)>>>0>>0?p+1|0:p,(0|(o=e[a+4>>2]))==e[a+104>>2]?o=bA(a):(e[a+4>>2]=o+1,o=l[0|o]),r>>>0<=(f=l[o+121329|0])>>>0))break h;if(Kr(We,r,0,0,0,m,p,0,0),e[We+8>>2]|e[We+12>>2])break}}else{if(ee=u[84400+(P(r,23)>>>5&7)|0],(c=l[o+121329|0])>>>0>>0){for(;m=(f=f<>>0<134217728,(0|(o=e[a+4>>2]))==e[a+104>>2]?o=bA(a):(e[a+4>>2]=o+1,o=l[0|o]),m&(c=l[o+121329|0])>>>0>>0;);m=f}if(!(r>>>0<=c>>>0||(he=31&ee,(63&ee)>>>0>=32?(f=0,he=-1>>>he|0):he=(f=-1>>>he|0)|(1<>>0>he>>>0)))for(;;){if(cA=255&c,c=m,o=31&ee,(63&ee)>>>0>=32?(p=c<>>32-o|p<>2]))==e[a+104>>2]?o=bA(a):(e[a+4>>2]=o+1,o=l[0|o]),r>>>0<=(c=l[o+121329|0])>>>0)break h;if(!((0|f)==(0|p)&m>>>0<=he>>>0|f>>>0>p>>>0))break}}}if(!(l[o+121329|0]>=r>>>0)){for(;(0|(o=e[a+4>>2]))==e[a+104>>2]?o=bA(a):(e[a+4>>2]=o+1,o=l[0|o]),l[o+121329|0]>>0;);e[56798]=68,Z=0,m=-1,p=-1}}(0|(r=e[a+116>>2]))>0|(0|r)>=0&&(e[a+4>>2]=e[a+4>>2]-1),m=(r=m^Z)-Z|0,p=((o=Z>>31)^p)-((r>>>0>>0)+o|0)|0}else e[56798]=28;if(J=We+16|0,r=e[a+4>>2]-e[a+44>>2]|0,e[a+120>>2]==(0-r|0)&e[a+124>>2]==(0-((r>>31)+!!(0|r)|0)|0))break c;if(!(!I|(0|ye)!=112)){e[I>>2]=m;break i}k0(I,Qe,m,p);break i}if(!I)break i;o=e[s+16>>2],r=e[s+20>>2],c=e[s+8>>2],v=e[s+12>>2];C:switch(0|Qe){case 0:J=p=J-32|0;m:if(0|(f=(m=2147483647&r)-1065418752|0)>>>0<(ee=m-1082064896|0)>>>0){if(m=(33554431&r)<<7|o>>>25,ee=f=0,!(!f&(0|(o&=33554431))==16777216?!(c|v):!f&o>>>0<16777216)){f=m+1073741825|0;break m}if(f=m+1073741824|0,16777216^o|c|v|ee)break m;f=(1&m)+f|0}else(!o&(0|m)==2147418112?!(c|v):m>>>0<2147418112)?(f=2139095040,m>>>0>1082064895||(f=0,(m=m>>>16|0)>>>0<16145||(ea(p+16|0,c,v,o,f=65535&r|65536,m-16129|0),Ya(p,c,v,o,f,16257-m|0),o=e[p+8>>2],f=(33554431&e[p+12>>2])<<7|o>>>25,m=e[p>>2]|!!(e[p+16>>2]|e[p+24>>2]|e[p+20>>2]|e[p+28>>2]),v=e[p+4>>2],(!(c=0)&(0|(o&=33554431))==16777216?!(m|v):!c&o>>>0<16777216)?16777216^o|m|c|v||(f=(1&f)+f|0):f=f+1|0))):f=4194303&((33554431&r)<<7|o>>>25)|2143289344;J=p+32|0,e[I>>2]=-2147483648&r|f;break i;case 1:D[I>>3]=Es(c,v,o,r);break i;case 2:break C;default:break i}e[I>>2]=c,e[I+4>>2]=v,e[I+8>>2]=o,e[I+12>>2]=r;break i}c=(We=(0|ye)!=99)?31:o+1|0;p:if((0|Qe)!=1){if(v){if(o=0,!(r=Ct(c)))break o;for(;;){for(A=r;;){if((0|(r=e[a+4>>2]))==e[a+104>>2]?r=bA(a):(e[a+4>>2]=r+1,r=l[0|r]),!l[33+(r+s|0)|0]){c=0,T=A;break p}if(u[A+o|0]=r,(0|c)==(0|(o=o+1|0)))break}if(f=1,!(r=Ur(A,c=c<<1|1)))break}T=A,A=0;break s}if(o=0,I)for(;;){if((0|(A=e[a+4>>2]))==e[a+104>>2]?A=bA(a):(e[a+4>>2]=A+1,A=l[0|A]),!l[33+(A+s|0)|0]){c=0,T=A=I;break p}u[o+I|0]=A,o=o+1|0}for(;(0|(A=e[a+4>>2]))==e[a+104>>2]?A=bA(a):(e[a+4>>2]=A+1,A=l[0|A]),l[33+(A+s|0)|0];);A=0,T=0,c=0}else{if(r=I,v&&!(r=Ct(c<<2)))break o;for(e[s+296>>2]=0,e[s+300>>2]=0,o=0;;){A=r;C:{for(;;){if((0|(r=e[a+4>>2]))==e[a+104>>2]?r=bA(a):(e[a+4>>2]=r+1,r=l[0|r]),!l[33+(r+s|0)|0])break C;u[s+27|0]=r,m=s+28|0,r=e[(f=(r=s+296|0)||228604)>>2];m:{b:{h:{v:{if(!(T=s+27|0)){if(r)break v;r=0;break m}if(!r){if((0|(p=(r=l[0|T])<<24>>24))>=0){m&&(e[m>>2]=r),r=!!(0|p);break m}if(!e[e[56841]>>2]){if(r=1,!m)break h;e[m>>2]=57343&p,r=1;break m}if((r=r-194|0)>>>0>50)break v;r=e[124752+(r<<2)>>2];break b}if(Z=1,!(((Qe=(p=l[0|T])>>>3|0)-16|(r>>26)+Qe)>>>0>7))for(;;){if(Z=Z-1|0,(0|(r=p-128|r<<6))>=0){e[f>>2]=0,m&&(e[m>>2]=r),r=1-Z|0;break m}if(!Z)break b;if((192&(p=l[0|(T=T+1|0)]))!=128)break}}e[f>>2]=0,e[56798]=25,r=-1}break m}e[f>>2]=r,r=-2}if((0|r)!=-2){if(T=0,(0|r)==-1)break n;if(A&&(e[(o<<2)+A>>2]=e[s+28>>2],o=o+1|0),!(!v|(0|o)!=(0|c)))break}}if(f=1,r=Ur(A,(c=c<<1|1)<<2))continue;break s}break}if(T=0,c=A,s+296|0&&e[s+296>>2])break n}if(r=e[a+4>>2],(0|(m=e[a+116>>2]))>0|(0|m)>=0&&(r=r-1|0,e[a+4>>2]=r),r=(m=r-e[a+44>>2]|0)+e[a+120>>2]|0,p=e[a+124>>2]+(m>>31)|0,!((p=r>>>0>>0?p+1|0:p)|r)|!(We|(0|r)==(0|ee)&(0|p)==(0|he)))break g;v&&(e[I>>2]=A),(0|ye)!=99&&(c&&(e[(o<<2)+c>>2]=0),T?u[o+T|0]=0:T=0),A=c}o=r=e[a+4>>2]-e[a+44>>2]|0,f=ce+e[a+124>>2]|0,ce=(c=r>>31)+((r=O+e[a+120>>2]|0)>>>0>>0?f+1|0:f)|0,ce=(O=r+o|0)>>>0>>0?ce+1|0:ce,rA=!!(0|I)+rA|0}if(o=t+1|0,t=l[t+1|0])continue;break e}break}A=c;break c}f=1,T=0,A=0;break s}f=v;break A}f=v}if(rA)break A}rA=-1}f&&(xt(T),xt(A))}return J=s+304|0,J=a+144|0,J=n+16|0,rA}function Ct(A){var t,r=0,a=0,s=0,n=0,o=0,c=0,f=0,m=0,p=0,I=0;J=t=J-16|0;e:{A:{r:{s:{n:{c:{o:{g:{l:{if((A|=0)>>>0<=244){if(3&(r=(c=e[57152])>>>(a=(f=A>>>0<11?16:A+11&-8)>>>3|0)|0)){r=228648+(A=(a=a+(1&~r)|0)<<3)|0,s=e[A+228656>>2],(0|r)!=(0|(A=e[s+8>>2]))?(e[A+12>>2]=r,e[r+8>>2]=A):e[57152]=aa(-2,a)&c,A=s+8|0,r=a<<3,e[s+4>>2]=3|r,e[4+(r=r+s|0)>>2]=1|e[r+4>>2];break e}if((I=e[57154])>>>0>=f>>>0)break l;if(r){r=228648+(A=(s=Mn(0-(A=(0-(A=2<>2],(0|r)!=(0|(A=e[n+8>>2]))?(e[A+12>>2]=r,e[r+8>>2]=A):(c=aa(-2,s)&c,e[57152]=c),e[n+4>>2]=3|f,s=(A=s<<3)-f|0,e[4+(a=n+f|0)>>2]=1|s,e[A+n>>2]=s,I&&(r=228648+(-8&I)|0,o=e[57157],(A=1<<(I>>>3))&c?A=e[r+8>>2]:(e[57152]=A|c,A=r),e[r+8>>2]=o,e[A+12>>2]=o,e[o+12>>2]=r,e[o+8>>2]=A),A=n+8|0,e[57157]=a,e[57154]=s;break e}if(!(p=e[57153]))break l;for(a=e[228912+(Mn(0-p&p)<<2)>>2],o=(-8&e[a+4>>2])-f|0,r=a;(A=e[r+16>>2])||(A=e[r+20>>2]);)o=(s=(r=(-8&e[A+4>>2])-f|0)>>>0>>0)?r:o,a=s?A:a,r=A;if(m=e[a+24>>2],(0|(s=e[a+12>>2]))!=(0|a)){A=e[a+8>>2],e[A+12>>2]=s,e[s+8>>2]=A;break A}if(!(A=e[(r=a+20|0)>>2])){if(!(A=e[a+16>>2]))break g;r=a+16|0}for(;n=r,s=A,(A=e[(r=A+20|0)>>2])||(r=s+16|0,A=e[s+16>>2]););e[n>>2]=0;break A}if(f=-1,!(A>>>0>4294967231)&&(f=-8&(A=A+11|0),p=e[57153])){o=0-f|0,c=0,f>>>0<256||(c=31,f>>>0>16777215||(c=62+((f>>>38-(A=Ye(A>>>8|0))&1)-(A<<1)|0)|0));i:{p:{if(r=e[228912+(c<<2)>>2])for(A=0,a=f<<((0|c)!=31?25-(c>>>1|0):0);;){if(!((n=(-8&e[r+4>>2])-f|0)>>>0>=o>>>0||(s=r,o=n,n))){o=0,A=r;break p}if(n=e[r+20>>2],r=e[16+((a>>>29&4)+r|0)>>2],A=n?(0|n)==(0|r)?A:n:A,a<<=1,!r)break}else A=0;if(!(A|s)){if(s=0,!(A=(0-(A=2<>2]}if(!A)break i}for(;o=(a=(r=(-8&e[A+4>>2])-f|0)>>>0>>0)?r:o,s=a?A:s,A=(r=e[A+16>>2])||e[A+20>>2];);}if(!(!s|e[57154]-f>>>0<=o>>>0)){if(c=e[s+24>>2],(0|s)!=(0|(a=e[s+12>>2]))){A=e[s+8>>2],e[A+12>>2]=a,e[a+8>>2]=A;break r}if(!(A=e[(r=s+20|0)>>2])){if(!(A=e[s+16>>2]))break o;r=s+16|0}for(;n=r,a=A,(A=e[(r=A+20|0)>>2])||(r=a+16|0,A=e[a+16>>2]););e[n>>2]=0;break r}}}if((A=e[57154])>>>0>=f>>>0){s=e[57157],(r=A-f|0)>>>0>=16?(e[4+(a=s+f|0)>>2]=1|r,e[A+s>>2]=r,e[s+4>>2]=3|f):(e[s+4>>2]=3|A,e[4+(A=A+s|0)>>2]=1|e[A+4>>2],a=0,r=0),e[57154]=r,e[57157]=a,A=s+8|0;break e}if((m=e[57155])>>>0>f>>>0){r=m-f|0,e[57155]=r,A=(a=e[57158])+f|0,e[57158]=A,e[A+4>>2]=1|r,e[a+4>>2]=3|f,A=a+8|0;break e}if(A=0,p=f+47|0,e[57270]?a=e[57272]:(e[57273]=-1,e[57274]=-1,e[57271]=4096,e[57272]=4096,e[57270]=t+12&-16^1431655768,e[57275]=0,e[57263]=0,a=4096),(r=(n=p+a|0)&(o=0-a|0))>>>0<=f>>>0||(s=e[57262])&&s>>>0<(c=(a=e[57260])+r|0)>>>0|a>>>0>=c>>>0)break e;l:{if(!(4&l[229052])){i:{p:{C:{m:{if(s=e[57158])for(A=229056;;){if((a=e[A>>2])>>>0<=s>>>0&s>>>0>2]>>>0)break m;if(!(A=e[A+8>>2]))break}if((0|(a=on(0)))==-1||(c=r,(A=(s=e[57271])-1|0)&a&&(c=(r-a|0)+(A+a&0-s)|0),c>>>0<=f>>>0)||(s=e[57262])&&s>>>0<(o=(A=e[57260])+c|0)>>>0|A>>>0>=o>>>0)break i;if((0|a)!=(0|(A=on(c))))break C;break l}if((0|(a=on(c=o&n-m)))==(e[A>>2]+e[A+4>>2]|0))break p;A=a}if((0|A)==-1)break i;if(f+48>>>0<=c>>>0){a=A;break l}if((0|on(a=(a=e[57272])+(p-c|0)&0-a))==-1)break i;c=a+c|0,a=A;break l}if((0|a)!=-1)break l}e[57263]=4|e[57263]}if((0|(a=on(r)))==-1|(0|(A=on(0)))==-1|A>>>0<=a>>>0||(c=A-a|0)>>>0<=f+40>>>0)break s}A=e[57260]+c|0,e[57260]=A,A>>>0>ge[57261]&&(e[57261]=A);l:{if(n=e[57158]){for(A=229056;;){if(((s=e[A>>2])+(r=e[A+4>>2])|0)==(0|a))break l;if(!(A=e[A+8>>2]))break}break c}for((A=e[57156])>>>0<=a>>>0&&A||(e[57156]=a),A=0,e[57265]=c,e[57264]=a,e[57160]=-1,e[57161]=e[57270],e[57267]=0;r=228648+(s=A<<3)|0,e[s+228656>>2]=r,e[s+228660>>2]=r,(0|(A=A+1|0))!=32;);r=(s=c-40|0)-(A=a+8&7?-8-a&7:0)|0,e[57155]=r,A=A+a|0,e[57158]=A,e[A+4>>2]=1|r,e[4+(a+s|0)>>2]=40,e[57159]=e[57274];break n}if(8&l[A+12|0]|s>>>0>n>>>0|a>>>0<=n>>>0)break c;e[A+4>>2]=r+c,a=(A=n+8&7?-8-n&7:0)+n|0,e[57158]=a,A=(r=e[57155]+c|0)-A|0,e[57155]=A,e[a+4>>2]=1|A,e[4+(r+n|0)>>2]=40,e[57159]=e[57274];break n}s=0;break A}a=0;break r}ge[57156]>a>>>0&&(e[57156]=a),r=a+c|0,A=229056;c:{o:{g:{l:{i:{p:{for(;;){if((0|r)!=e[A>>2]){if(A=e[A+8>>2])continue;break p}break}if(!(8&l[A+12|0]))break i}for(A=229056;;){if((r=e[A>>2])>>>0<=n>>>0&&(o=r+e[A+4>>2]|0)>>>0>n>>>0)break l;A=e[A+8>>2]}}if(e[A>>2]=a,e[A+4>>2]=e[A+4>>2]+c,e[4+(p=(a+8&7?-8-a&7:0)+a|0)>>2]=3|f,A=(c=r+(r+8&7?-8-r&7:0)|0)-(m=f+p|0)|0,(0|n)==(0|c)){e[57158]=m,A=e[57155]+A|0,e[57155]=A,e[m+4>>2]=1|A;break o}if(e[57157]==(0|c)){e[57157]=m,A=e[57154]+A|0,e[57154]=A,e[m+4>>2]=1|A,e[A+m>>2]=A;break o}if((3&(o=e[c+4>>2]))==1){n=-8&o;i:if(o>>>0<=255){if(s=e[c+8>>2],r=o>>>3|0,(0|(a=e[c+12>>2]))==(0|s)){e[57152]=e[57152]&aa(-2,r);break i}e[s+12>>2]=a,e[a+8>>2]=s}else{if(f=e[c+24>>2],(0|c)==(0|(a=e[c+12>>2])))if((r=e[(o=c+20|0)>>2])||(r=e[(o=c+16|0)>>2])){for(;s=o,(r=e[(o=(a=r)+20|0)>>2])||(o=a+16|0,r=e[a+16>>2]););e[s>>2]=0}else a=0;else r=e[c+8>>2],e[r+12>>2]=a,e[a+8>>2]=r;if(f){s=e[c+28>>2];p:{if(e[(r=228912+(s<<2)|0)>>2]==(0|c)){if(e[r>>2]=a,a)break p;e[57153]=e[57153]&aa(-2,s);break i}if(e[f+(e[f+16>>2]==(0|c)?16:20)>>2]=a,!a)break i}e[a+24>>2]=f,(r=e[c+16>>2])&&(e[a+16>>2]=r,e[r+24>>2]=a),(r=e[c+20>>2])&&(e[a+20>>2]=r,e[r+24>>2]=a)}}o=e[4+(c=n+c|0)>>2],A=A+n|0}if(e[c+4>>2]=-2&o,e[m+4>>2]=1|A,e[A+m>>2]=A,A>>>0<=255){r=228648+(-8&A)|0,(a=e[57152])&(A=1<<(A>>>3))?A=e[r+8>>2]:(e[57152]=A|a,A=r),e[r+8>>2]=m,e[A+12>>2]=m,e[m+12>>2]=r,e[m+8>>2]=A;break o}if(o=31,A>>>0<=16777215&&(o=62+((A>>>38-(r=Ye(A>>>8|0))&1)-(r<<1)|0)|0),e[m+28>>2]=o,e[m+16>>2]=0,e[m+20>>2]=0,r=228912+(o<<2)|0,(s=e[57153])&(a=1<>>1|0):0),a=e[r>>2];;){if(r=a,(-8&e[a+4>>2])==(0|A))break g;if(a=o>>>29|0,o<<=1,!(a=e[16+(s=(4&a)+r|0)>>2]))break}e[s+16>>2]=m}else e[57153]=a|s,e[r>>2]=m;e[m+24>>2]=r,e[m+12>>2]=m,e[m+8>>2]=m;break o}for(r=(s=c-40|0)-(A=a+8&7?-8-a&7:0)|0,e[57155]=r,A=A+a|0,e[57158]=A,e[A+4>>2]=1|r,e[4+(a+s|0)>>2]=40,e[57159]=e[57274],e[(s=(A=(o+(o-39&7?39-o&7:0)|0)-47|0)>>>0>>0?n:A)+4>>2]=27,A=e[57267],e[s+16>>2]=e[57266],e[s+20>>2]=A,A=e[57265],e[s+8>>2]=e[57264],e[s+12>>2]=A,e[57266]=s+8,e[57265]=c,e[57264]=a,e[57267]=0,A=s+24|0;e[A+4>>2]=7,r=A+8|0,A=A+4|0,r>>>0>>0;);if((0|s)==(0|n))break n;if(e[s+4>>2]=-2&e[s+4>>2],o=s-n|0,e[n+4>>2]=1|o,e[s>>2]=o,o>>>0<=255){r=228648+(-8&o)|0,(a=e[57152])&(A=1<<(o>>>3))?A=e[r+8>>2]:(e[57152]=A|a,A=r),e[r+8>>2]=n,e[A+12>>2]=n,e[n+12>>2]=r,e[n+8>>2]=A;break n}if(A=31,o>>>0<=16777215&&(A=62+((o>>>38-(A=Ye(o>>>8|0))&1)-(A<<1)|0)|0),e[n+28>>2]=A,e[n+16>>2]=0,e[n+20>>2]=0,r=228912+(A<<2)|0,(s=e[57153])&(a=1<>>1|0):0),s=e[r>>2];;){if((0|o)==(-8&e[(r=s)+4>>2]))break c;if(a=A>>>29|0,A<<=1,!(s=e[16+(a=(4&a)+r|0)>>2]))break}e[a+16>>2]=n}else e[57153]=a|s,e[r>>2]=n;e[n+24>>2]=r,e[n+12>>2]=n,e[n+8>>2]=n;break n}A=e[r+8>>2],e[A+12>>2]=m,e[r+8>>2]=m,e[m+24>>2]=0,e[m+12>>2]=r,e[m+8>>2]=A}A=p+8|0;break e}A=e[r+8>>2],e[A+12>>2]=n,e[r+8>>2]=n,e[n+24>>2]=0,e[n+12>>2]=r,e[n+8>>2]=A}if(!((A=e[57155])>>>0<=f>>>0)){r=A-f|0,e[57155]=r,A=(a=e[57158])+f|0,e[57158]=A,e[A+4>>2]=1|r,e[a+4>>2]=3|f,A=a+8|0;break e}}e[56798]=48,A=0;break e}r:if(c){r=e[s+28>>2];s:{if(e[(A=228912+(r<<2)|0)>>2]==(0|s)){if(e[A>>2]=a,a)break s;p=aa(-2,r)&p,e[57153]=p;break r}if(e[c+(e[c+16>>2]==(0|s)?16:20)>>2]=a,!a)break r}e[a+24>>2]=c,(A=e[s+16>>2])&&(e[a+16>>2]=A,e[A+24>>2]=a),(A=e[s+20>>2])&&(e[a+20>>2]=A,e[A+24>>2]=a)}r:if(o>>>0<=15)A=o+f|0,e[s+4>>2]=3|A,e[4+(A=A+s|0)>>2]=1|e[A+4>>2];else if(e[s+4>>2]=3|f,e[4+(n=s+f|0)>>2]=1|o,e[n+o>>2]=o,o>>>0<=255)r=228648+(-8&o)|0,(a=e[57152])&(A=1<<(o>>>3))?A=e[r+8>>2]:(e[57152]=A|a,A=r),e[r+8>>2]=n,e[A+12>>2]=n,e[n+12>>2]=r,e[n+8>>2]=A;else{A=31,o>>>0<=16777215&&(A=62+((o>>>38-(A=Ye(o>>>8|0))&1)-(A<<1)|0)|0),e[n+28>>2]=A,e[n+16>>2]=0,e[n+20>>2]=0,r=228912+(A<<2)|0;s:{if((a=1<>>1|0):0),f=e[r>>2];;){if((-8&e[(r=f)+4>>2])==(0|o))break s;if(a=A>>>29|0,A<<=1,!(f=e[16+(a=(4&a)+r|0)>>2]))break}e[a+16>>2]=n}else e[57153]=a|p,e[r>>2]=n;e[n+24>>2]=r,e[n+12>>2]=n,e[n+8>>2]=n;break r}A=e[r+8>>2],e[A+12>>2]=n,e[r+8>>2]=n,e[n+24>>2]=0,e[n+12>>2]=r,e[n+8>>2]=A}A=s+8|0;break e}A:if(m){r=e[a+28>>2];r:{if(e[(A=228912+(r<<2)|0)>>2]==(0|a)){if(e[A>>2]=s,s)break r;e[57153]=aa(-2,r)&p;break A}if(e[m+(e[m+16>>2]==(0|a)?16:20)>>2]=s,!s)break A}e[s+24>>2]=m,(A=e[a+16>>2])&&(e[s+16>>2]=A,e[A+24>>2]=s),(A=e[a+20>>2])&&(e[s+20>>2]=A,e[A+24>>2]=s)}o>>>0<=15?(A=o+f|0,e[a+4>>2]=3|A,e[4+(A=A+a|0)>>2]=1|e[A+4>>2]):(e[a+4>>2]=3|f,e[4+(s=a+f|0)>>2]=1|o,e[s+o>>2]=o,I&&(r=228648+(-8&I)|0,n=e[57157],(A=1<<(I>>>3))&c?A=e[r+8>>2]:(e[57152]=A|c,A=r),e[r+8>>2]=n,e[A+12>>2]=n,e[n+12>>2]=r,e[n+8>>2]=A),e[57157]=s,e[57154]=o),A=a+8|0}return J=t+16|0,0|A}function $t(A,t,r,a,s){var n,o=0,c=0,f=0,m=0,p=0,I=0,v=0,T=0,O=0,Z=0,ee=0,ce=0,he=0,ye=0,Qe=0,We=0,Ke=0;J=n=J-544|0,jA(n+320|0,0,100),jA(n+208|0,0,100),m=r?e[r>>2]:m,O=e[A+12>>2],p=e[36115];e:{A:{r:{s:{for(;;){if(o=(0|(o=l[t+c|0]))>=(0|p)?13:o,u[n+c|0]=o,!o){o=c;break s}if(f=(0|p)<=(0|(f=l[(o=1|c)+t|0]))?13:f,u[o+n|0]=f,!f)break s;if((0|(c=c+2|0))==200)break}c=198,ee=l[n+199|0];break r}if(!o)break A;ee=l[n+(c=o-1|0)|0],(0|o)!=1&&(c=o-2|0)}if(Qe=8&m,e[n+536>>2]=(Qe>>>3|0?3:7)&m,m=l[n+c|0],p=1,v=(0|(I=Cn(A,n,n+432|0,n+540|0,n+536|0,1)))>=0?I:0,he=l[0|n])for(c=n,o=he;o=e[144464+((255&o)<<2)>>2],l[o+11|0]==2&&(1048576&(o=e[o+4>>2])||(f=(2097152&o)>>>21|0,f|=o=l[e[144464+(l[0|(T=c+1|0)]<<2)>>2]+10|0]==12,u[(n+208|0)+p|0]=f,Z=e[144464+(l[(o?2:1)+c|0]<<2)>>2],f=l[Z+11|0]-10>>>0<4294967289|!(32&l[Z+6|0])&l[e[144464+(l[(o?3:2)+c|0]<<2)>>2]+11|0]==2?f:f?2:1,c=o?T:c,u[(n+320|0)+p|0]=f,p=p+1|0)),o=l[0|(c=c+1|0)];);c=r=r?v:I;r:{s:{n:{c:{o:{g:{l:{i:{p:{C:{m:{b:switch(e[A+8>>2]-1|0){case 11:if((0|(r=e[n+540>>2]))<2)break p;if(c=1,v=1&(o=r-1|0),(0|r)!=2)break m;p=0;break C;case 8:if((0|(o=e[n+540>>2]))<2)break s;if(p=3&(f=o-1|0),c=1,o-2>>>0>=3)for(v=-4&f,f=0;m=u[0|(o=(n+432|0)+c|0)],u[0|o]=(0|m)<0?4:m,m=u[o+1|0],u[o+1|0]=(0|m)<0?4:m,m=u[o+2|0],u[o+2|0]=(0|m)<0?4:m,m=o,o=u[o+3|0],u[m+3|0]=(0|o)<0?4:o,c=c+4|0,(0|v)!=(0|(f=f+4|0)););if(!p)break s;for(o=0;f=u[0|(m=(n+432|0)+c|0)],u[0|m]=(0|f)<0?4:f,c=c+1|0,(0|p)!=(0|(o=o+1|0)););break s;case 7:if(!l[n+322|0]|u[n+321|0]>0)break s;case 0:if(e[n+536>>2]|e[n+540>>2]<3)break s;if(e[n+536>>2]=2,c=4,r)break r;u[n+434|0]=4;break r;case 1:if(e[n+536>>2])break r;h:{v:{if((0|(p=e[n+540>>2]))>=3){r=p-2|0,e[n+536>>2]=r,c=r;w:if(512&O&&(o=e[144464+(ee<<2)>>2],(0|(f=l[o+11|0]))!=2)){c=e[o>>2],o=n;E:{L:{if((0|(v=e[A+212>>2]))!=26977){if((0|v)!=24942)break L;switch(c-110|0){case 0:case 5:if(c=r,l[e[144464+(m<<2)>>2]+11|0]==2)break w}c=p-1|0;break E}if((0|c)==115&&(c=r,l[e[144464+(m<<2)>>2]+11|0]==2))break w;c=p-1|0;break E}L:{W:{if((0|c)==115){if(c=r,(0|(f=l[e[144464+(m<<2)>>2]+11|0]))!=8)break W;break w}if((0|f)!=8)break L;f=l[e[144464+(m<<2)>>2]+11|0]}if(c=r,(255&f)==2)break w}c=p-1|0}e[o+536>>2]=c}if(524288&O&&(u[(o=p-1|0)+(p=n+208|0)|0]<=u[r+p|0]||(e[n+536>>2]=o,c=o)),l[(n+432|0)+c|0]>1){o=c;break h}if(o=2,r=c-1|0,c>>>0>=2)break v;e[n+536>>2]=c+1;break h}r=1}o=r,e[n+536>>2]=o}if(c=4,u[0|(r=(n+432|0)+o|0)]>=0||u[(o=(n+432|0)+o|0)-1|0]>=4&u[o+1|0]>3)break r;u[0|r]=4;break r;case 2:if(e[n+536>>2])break r;for(r=(c=e[n+540>>2])-1|0,r&=r>>31;;){if((0|(c=c-1|0))<=0)break n;if(!(u[0|(o=(n+432|0)+c|0)]>=0))break}e[n+536>>2]=c,c=4,u[0|o]=4;break r;case 3:if(e[n+536>>2])break s;if(o=(0|(c=e[n+540>>2]-3|0))<=1?1:c,e[n+536>>2]=o,c=4,r)break r;u[o+(n+432|0)|0]=4;break r;case 4:if(e[n+536>>2])break r;if(o=(r=e[n+540>>2])-3|0,e[n+536>>2]=o,(0|r)<=15){h:{switch(l[e[144464+(ee<<2)>>2]+11|0]-2|0){case 0:o=u[r+94176|0];break h;case 2:o=u[r+94192|0];break h}o=u[r+94160|0]}e[n+536>>2]=o}c=4,u[(n+432|0)+o|0]=4;break r;case 5:if(e[n+536>>2])break r;if(p=-1,f=0,!((0|(r=(o=e[n+540>>2])-1|0))<2)){if(c=1,T=1&o,(0|o)!=3)for(Z=(-2&o)-4|0,o=0;u[(n+432|0)+c|0]<0&&(f=(m=(0|(v=u[(n+320|0)+c|0]))<(0|p))?f:c,p=m?p:v),u[(m=c+1|0)+(n+432|0)|0]<0&&(f=(v=(0|(ye=u[m+(n+320|0)|0]))<(0|p))?f:m,p=v?p:ye),c=c+2|0,m=(0|o)!=(0|Z),o=o+2|0,m;);!T|u[(n+432|0)+c|0]>=0||(p=(o=(0|(m=u[(n+320|0)+c|0]))<(0|p))?p:m,f=o?f:c)}e[n+536>>2]=f,l[r+(n+320|0)|0]!=2|(0|p)>1?(0|p)>0||(f=1,e[n+536>>2]=1):(e[n+536>>2]=r,f=r),c=4,u[(n+432|0)+f|0]=4;break r;case 14:break c;case 12:break o;case 6:break b;default:break r}if(e[n+536>>2])break r;p=(r=e[n+540>>2])-1|0,e[n+536>>2]=p;b:if(!((0|r)<2))for(c=1;;){if(l[(n+432|0)+c|0]==1){p=c-1|0,e[n+536>>2]=p;break b}if((0|r)==(0|(c=c+1|0)))break}c=4,u[(n+432|0)+p|0]=4;break r}for(T=-2&o,p=0,f=0;o=l[0|(Z=(m=n+432|0)+c|0)],ce=Z,ye=u[(Z=n+208|0)+c|0]>0,u[0|ce]=ye||(0|o)==4?3:o,We=(0|(m=l[0|(ce=(o=c+1|0)+m|0)]))==4?3:m,m=u[o+Z|0]>0,u[0|ce]=m?3:We,p=m?o:ye?c:p,c=c+2|0,(0|T)!=(0|(f=f+2|0)););}if(v&&(m=(0|(o=l[0|(f=(n+432|0)+c|0)]))==4?3:o,o=u[(n+208|0)+c|0]>0,u[0|f]=o?3:m,p=o?c:p),o=e[n+536>>2])break g;if((0|p)>0){e[n+536>>2]=p,o=p;break g}if((0|r)<6)break i;o=r-3|0;break l}if(o=e[n+536>>2])break g}o=r-1|0}e[n+536>>2]=o}c=4,u[(n+432|0)+o|0]=4;break r}if(e[n+536>>2])break r;o=1,e[n+536>>2]=1,l[n+209|0]|e[n+540>>2]<3|u[n+210|0]<=0||(o=2,e[n+536>>2]=2),c=4,u[n+432|o]=4;break r}if(e[n+536>>2]||(0|(o=e[n+540>>2]))<3)break s;if(jA(n+432|1,0,o-1|0),e[n+536>>2]=2,r||(u[n+434|0]=4),c=4,o>>>0<4)break r;u[431+(o+n|0)|0]=3;break r}e[n+536>>2]=r,c=4;break r}c=r}!(256&O)|2&s||(0|(r=e[n+540>>2]))<3|(0|I)>2||l[0|(o=(r=r+(n+432|0)|0)-1|0)]!=4|l[e[144464+(ee<<2)>>2]+11|0]!=2||(u[0|o]=1,u[r-2|0]=4);r:{s:{if(Qe)I=e[n+540>>2];else{if(r=u[n+433|0],!(!(4096&O)|(0|(I=e[n+540>>2]))!=3)){if((0|r)==4){u[n+434|0]=3;break s}if(l[n+434|0]==4){u[n+433|0]=3;break s}}if(!(!(8192&O)|(0|r)>=0|(0|I)<4|u[n+434|0]<4)){u[n+433|0]=3;break s}}if(f=0,(0|I)<2)break r}for(p=(0|c)<4?4:3,Z=128&O,ye=64&O,ce=32&O,v=I-1|0,We=16&O,Ke=!(32768&O),ee=0,m=0,c=1;;){s:{n:if((0|(o=u[0|(T=(n+432|0)+c|0)]))>=0)f=p;else{f=3;c:{o:if(!(!(!We|(0|p)>3)&(0|c)==(0|v))){if(!(1&(ee|Ke)))break c;if(!(u[431+(n+c|0)|0]>1)){if((0|(o=u[(r=c+1|0)+(n+432|0)|0]))>=2){if((0|p)!=4||(f=4,o>>>0>=3))break o}else if(!(!ce|(0|p)!=3)){p=3;break s}if(!ye|c>>>0<2||(f=l[(n+320|0)+c|0]))break c;if((0|v)>(0|(o=c))){for(;;){if(u[(n+320|0)+o|0]>0)break s;if((0|v)==(0|(o=o+1|0)))break}if(f)break c}if(u[r+(n+320|0)|0]<=0)break c;break s}f=p}o=l[0|T];break n}u[0|T]=p,ee=1,f=3,o=p}n:{if(o<<24>>24>=4){if(r=m||c,!m|!Z)break n;u[0|T]=3}p=f;break s}p=f,m=r}if(f=1,(0|I)==(0|(c=c+1|0)))break}}if(a=!Qe|(0|a)>=0?a:e[((0|I)<3?16:20)+A>>2],p=0,o=0,f){if(ee=3&(r=I-1|0),f=0,I-2>>>0<3)c=1;else for(Qe=-4&r,c=1,m=0;o=(r=(0|(o=(T=(0|(o=(v=(0|(o=(I=(0|(v=u[(r=n+432|0)+c|0]))<(0|o))?o:v))>(0|(T=u[(Z=c+1|0)+r|0])))?o:T))>(0|(ce=u[(ye=c+2|0)+r|0])))?o:ce))>(0|(We=u[(ce=c+3|0)+r|0])))?o:We,p=r?T?v?I?p:c:Z:ye:ce,c=c+4|0,(0|Qe)!=(0|(m=m+4|0)););if(ee)for(;o=(r=(0|(m=u[(n+432|0)+c|0]))<(0|o))?o:m,p=r?p:c,c=c+1|0,(0|ee)!=(0|(f=f+1|0)););}if((0|a)<0?a=o:(0|a)<=(0|o)&(0|o)>4||(u[(n+432|0)+p|0]=a),ee=t+197|0,I=1,!(1&s)&&(r=e[144464+(he<<2)>>2])){if(o=n,!((0|(f=l[r+11|0]))!=1&(0|he)!=15))for(;r=l[0|(o=o+1|0)],(0|(f=l[e[144464+(r<<2)>>2]+11|0]))==1|(0|r)==15;);!(48&(r=e[A+4>>2]))|(0|f)!=2||(u[0|t]=(32&r)>>>5|0&&u[n+433|0]>3?11:23,t=t+1|0)}r:if(!(t>>>0>=ee>>>0))for(v=65536&O,T=2&O,Qe=4&O,c=n;;){if(!(o=l[0|c]))break r;if(s=c,c=c+1|0,r=e[144464+(o<<2)>>2]){s:{n:{switch(l[r+11|0]){case 0:e[A+8200>>2]=0;break s;case 2:if(!(16&l[r+6|0]))break n}if(l[0|c]!=20)break s}if((0|(he=e[n+540>>2]))<(0|I))break e;m=u[0|(O=(n+432|0)+I|0)],e[A+8200>>2]=m;n:{c:{if(!((0|(r=m))>1)){if(f=he-1|0,!(!Qe|(0|I)<2|(0|a)<2)&&(r=0,(0|f)==(0|I)))break c;if(r=1,!((0|I)==1|T|(he-2|0)==(0|I)&u[f+(n+432|0)|0]<2|(0|f)==(0|I)||u[431+(n+I|0)|0]>=0&&(r=m,v))){r=0,u[0|O]=0;break c}}if(r&&(0|r)<2)break n}u[0|t]=l[r+94151|0],t=t+1|0,m=u[0|O]}f=(0|a)>(0|m),l[0|c]==12&&1&(he=e[A+28>>2])&&(c=(16&he?(0|p)!=(0|I):(0|r)<4)?s+2|0:c),a=f?a:m,I=I+1|0}if((0|o)!=1&&(u[0|t]=o,t=t+1|0),!(t>>>0>>0))break}}u[0|t]=0}return void(J=n+544|0)}Pe(86136,86634,1353,94208),xe()}function Qr(A,t,r,a,s,n,o,c,f){var m,p=0,I=0,v=0,T=0,O=0,Z=0,ee=0,ce=0,he=0,ye=0,Qe=0,We=0,Ke=0,rA=0,cA=0,MA=0,zA=0,et=0,at=0,dt=0,Ft=0,Zt=0,er=0,pr=0,hr=0,Er=0,vr=0,Fr=0,Wr=0,na=0;J=m=J-336|0,T=c,Z=65535&f,O=a,v=65535&s,Qe=-2147483648&(s^f);e:{if(!((he=f>>>16&32767)-32767>>>0>4294934529&(ee=s>>>16&32767)-32767>>>0>=4294934530)){if(!(!a&(0|(p=2147483647&s))==2147418112?!(t|r):p>>>0<2147418112)){ce=a,Qe=32768|s;break e}if(!(!c&(0|(s=2147483647&f))==2147418112?!(n|o):s>>>0<2147418112)){ce=c,Qe=32768|f,t=n,r=o;break e}if(!(t|a|2147418112^p|r)){if(!(n|c|2147418112^s|o)){t=0,r=0,Qe=2147450880;break e}Qe|=2147418112,t=0,r=0;break e}if(!(n|c|2147418112^s|o)){t=0,r=0;break e}if(!(t|a|r|p)){ce=(t=!(n|c|s|o))?0:ce,Qe=t?2147450880:Qe,t=0,r=0;break e}if(!(n|c|s|o)){Qe|=2147418112,t=0,r=0;break e}(0|p)==65535|p>>>0<65535&&(f=a=!(v|O),p=a?t:O,c=a<<=6,ea(m+320|0,t,r,O,v,(a=a+((0|(f=Ye(f?r:v)))==32?Ye(p)+32|0:f)|0)-15|0),We=16-a|0,O=e[m+328>>2],v=e[m+332>>2],r=e[m+324>>2],t=e[m+320>>2]),s>>>0>65535||(c=a=!(T|Z),f=a?n:T,s=a<<=6,ea(m+304|0,n,o,T,Z,(a=a+((0|(c=Ye(c?o:Z)))==32?Ye(f)+32|0:c)|0)-15|0),We=(a+We|0)-16|0,T=e[m+312>>2],Z=e[m+316>>2],n=e[m+304>>2],o=e[m+308>>2])}if(zA=s=65536|Z,et=T,p=s<<15|(a=T)>>>17,Kr(m+288|0,a=s=a<<15|o>>>17,c=p,0,0,f=0-a|0,p=1963258675-(p+!!(0|a)|0)|0,0,0),Kr(m+272|0,0-(a=e[m+296>>2])|0,0-(e[m+300>>2]+!!(0|a)|0)|0,0,0,f,p,0,0),Kr(m+256|0,f=(a=e[m+280>>2])<<1|e[m+276>>2]>>>31,a=e[m+284>>2]<<1|a>>>31,0,0,s,c,0,0),Kr(m+240|0,f,a,0,0,0-(p=e[m+264>>2])|0,0-(e[m+268>>2]+!!(0|p)|0)|0,0,0),Kr(m+224|0,p=(f=e[m+248>>2])<<1|e[m+244>>2]>>>31,a=e[m+252>>2]<<1|f>>>31,0,0,s,c,0,0),Kr(m+208|0,p,a,0,0,0-(f=e[m+232>>2])|0,0-(e[m+236>>2]+!!(0|f)|0)|0,0,0),Kr(m+192|0,f=(a=e[m+216>>2])<<1|e[m+212>>2]>>>31,a=e[m+220>>2]<<1|a>>>31,0,0,s,c,0,0),Kr(m+176|0,f,a,0,0,0-(p=e[m+200>>2])|0,0-(e[m+204>>2]+!!(0|p)|0)|0,0,0),Kr(m+160|0,f=s,a=c,0,0,c=(T=(s=e[m+184>>2])<<1|e[m+180>>2]>>>31)-1|0,s=(e[m+188>>2]<<1|s>>>31)-!T|0,0,0),Kr(m+144|0,n<<15,o<<15|n>>>17,0,0,a=c,s,0,0),ye=m+112|0,cA=e[m+168>>2],c=e[m+172>>2],I=(T=e[m+160>>2])+(f=e[m+152>>2])|0,p=(Z=e[m+164>>2])+e[m+156>>2]|0,f=p=f>>>0>I>>>0?p+1|0:p,p=(p=(0|Z)==(0|p)&I>>>0>>0|p>>>0>>0)>>>0>(Z=p+cA|0)>>>0?c+1|0:c,Kr(ye,a,s,0,0,0-(c=(T=!f&I>>>0>1|!!(0|f))+Z|0)|0,0-(!!(0|c)+(p=T>>>0>c>>>0?p+1|0:p)|0)|0,0,0),Kr(m+128|0,1-I|0,0-((I>>>0>1)+f|0)|0,0,0,a,s,0,0),pr=(ee-he|0)+We|0,ye=s=e[m+116>>2],T=(a=e[m+112>>2])<<1,ee=p=s<<1|a>>>31,a=p,MA=c=e[m+140>>2],a=a+(p=c<<1|(s=e[m+136>>2])>>>31)|0,s=a=(c=(f=s<<1|e[m+132>>2]>>>31)+T|0)>>>0>>0?a+1|0:a,rA=a=a-(c>>>0<13927)|0,cA=a,hr=p=65536|v,Er=O,Fr=(a=O)<<1,Wr=p=p<<1|a>>>31,dt=p,Ft=a=It(rA,I=0,p,0),Ke=p=$,We=t<<1,he=a=r<<1|t>>>31,Z=p=0,rA=(0|s)==(0|rA)&(f=c-13927|0)>>>0>>0|s>>>0>rA>>>0,s=(0|s)==(0|ee)&c>>>0>>0|s>>>0>>0,a=e[m+120>>2],p=c=e[m+124>>2]<<1|a>>>31,p=(a=(I=MA>>>31|0)+(a=a<<1|ye>>>31)|0)>>>0>>0?p+1|0:p,I=(c=a)>>>0>(a=a+s|0)>>>0?p+1|0:p,I=(s=a)>>>0>(a=a+rA|0)>>>0?I+1|0:I,s=a-1|0,p=It(he,Z,rA=I-!a|0,ee=0),c=$+Ke|0,ye=(0|Ke)==(0|(c=(a=p+Ft|0)>>>0

>>0?c+1|0:c))&a>>>0>>0|c>>>0>>0,MA=s,s=It(s,p=0,at=(vr=r>>>31|0)|O<<1,Ke=0),p=$+c|0,I=0,T=p=s>>>0>(O=s+a|0)>>>0?p+1|0:p,I=(s=a=(0|p)==(0|c)&a>>>0>O>>>0|c>>>0>p>>>0)>>>0>(a=a+ye|0)>>>0?1:I,s=It(dt,Z,rA,ee),p=$+I|0,ye=a=s+a|0,a=a>>>0>>0?p+1|0:p,s=It(dt,Z,MA,Ke),v=$,c=s,s=It(at,Ke,rA,ee),p=$+v|0,s=p=s>>>0>(I=c+s|0)>>>0?p+1|0:p,a=a+(p=(0|v)==(0|p)&c>>>0>I>>>0|p>>>0>>0)|0,ye=v=ye+s|0,v=a=v>>>0>>0?a+1|0:a,p=I+T|0,s=p=(a=(s=0)+O|0)>>>0>>0?p+1|0:p,c=(0|p)==(0|T)&a>>>0>>0|p>>>0>>0,p=v,I=c,Zt=c=c+ye|0,I=p=I>>>0>c>>>0?p+1|0:p,ye=a,v=a,O=s,Ft=f,a=It(f,0,at,Ke),c=$,s=a,f=It(cA,ce,he,ce),p=$+c|0,f=(0|c)==(0|(p=(a=a+f|0)>>>0>>0?p+1|0:p))&a>>>0>>0|c>>>0>p>>>0,c=p,s=It(MA,Ke,er=-2&We,0),p=$+p|0,s=p=s>>>0>(T=s+a|0)>>>0?p+1|0:p,a=(0|p)==(0|c)&a>>>0>T>>>0|c>>>0>p>>>0,c=0,a=((f=a+f|0)>>>0>>0?1:c)+O|0,p=I,f=a=(v=f+v|0)>>>0>>0?a+1|0:a,c=a=(0|a)==(0|O)&v>>>0>>0|a>>>0>>0,na=a=a+Zt|0,ye=p=c>>>0>a>>>0?p+1|0:p,a=It(dt,Z,Ft,ce),Zt=$,dt=a,c=It(rA,ee,er,ce),p=$+Zt|0,O=a=a+c|0,I=a+(Z=It(cA,ce,at,Ke))|0,a=(c=a>>>0>>0?p+1|0:p)+$|0,a=I>>>0>>0?a+1|0:a,ee=I,Z=I+(p=It(he,ce,MA,Ke))|0,I=$+a|0,at=(0|a)==(0|(I=p>>>0>Z>>>0?I+1|0:I))&Z>>>0>>0|a>>>0>I>>>0,p=((a=(a=(a=(0|a)==(0|c)&O>>>0>ee>>>0|a>>>0>>0)+(p=(0|c)==(0|Zt)&O>>>0

>>0|c>>>0>>0)|0)+at|0)|(MA=0))+f|0,O=p=(c=I)>>>0>(ee=c+v|0)>>>0?p+1|0:p,a=(0|f)==(0|p)&v>>>0>ee>>>0|f>>>0>p>>>0,p=ye,c=a,MA=a=a+na|0,f=p=c>>>0>a>>>0?p+1|0:p,a=It(cA,ce,er,ce),cA=$,v=a,c=It(he,ce,Ft,ce),p=$+cA|0,c=(0|(p=(a=a+c|0)>>>0>>0?p+1|0:p))==(0|cA)&a>>>0>>0|p>>>0>>0,v=p,a=p+T|0,p=(c|(ye=0))+s|0,v=(0|s)==(0|(p=a>>>0>>0?p+1|0:p))&a>>>0>>0|s>>>0>p>>>0,I=(c=p)+(p=Z)|0,p=0,p=((s=a=(0|c)==(0|(I=(T=(Z=0)+a|0)>>>0>>0?I+1|0:I))&a>>>0>T>>>0|c>>>0>I>>>0)>>>0>(a=a+v|0)>>>0?1:p)+O|0,I=f,s=p=(s=a)>>>0>(a=a+ee|0)>>>0?p+1|0:p,f=I=(f=c=(0|O)==(0|p)&a>>>0>>0|p>>>0>>0)>>>0>(c=c+MA|0)>>>0?I+1|0:I,(0|I)==131071|I>>>0<131071?(Er=Fr|vr,hr=Ke|Wr,Kr(m+80|0,a,s,c,f,n,o,et,zA),Z=I=e[m+84>>2],p=t<<17,O=(r=(T=0)-(v=e[m+88>>2])|0)-(I=!!(I|(t=e[m+80>>2])))|0,v=(p-(e[m+92>>2]+(v>>>0>T>>>0)|0)|0)-(r>>>0>>0)|0,T=0-t|0,Z=0-(!!(0|t)+Z|0)|0,t=pr+16382|0):(Kr(m+96|0,a=(1&s)<<31|a>>>1,s=c<<31|s>>>1,c=(1&f)<<31|c>>>1,f=f>>>1|0,n,o,et,zA),he=O=e[m+100>>2],O=(T=0-(We=e[m+104>>2])|0)-(v=!!(O|(I=e[m+96>>2])))|0,v=((t<<16)-(e[m+108>>2]+(Z>>>0>>0)|0)|0)-(v>>>0>T>>>0)|0,T=0-I|0,Z=0-(!!(0|I)+he|0)|0,We=t,he=r,t=pr+16383|0),(0|t)>=32767)Qe|=2147418112,t=0,r=0;else{if((0|t)>0)I=v<<1|O>>>31,O=O<<1|Z>>>31,v=I,We=c,he=65535&f|t<<16,I=Z<<1|T>>>31,f=T<<1;else{if((0|t)<=-113){t=0,r=0;break e}Ya(m- -64|0,a,s,c,f,1-t|0),ea(m+48|0,We,he,Er,hr,t+112|0),Kr(m+32|0,n,o,et,zA,a=e[m+64>>2],s=e[m+68>>2],We=e[m+72>>2],he=e[m+76>>2]),t=e[m+40>>2],T=(r=e[m+56>>2])-(O=t<<1|(I=e[m+36>>2])>>>31)|0,v=e[m+60>>2]-((e[m+44>>2]<<1|t>>>31)+(r>>>0>>0)|0)|0,p=(t=e[m+32>>2])<<1,O=T-(t=(0|(c=I<<1|t>>>31))==(0|(f=e[m+52>>2]))&p>>>0>(r=e[m+48>>2])>>>0|c>>>0>f>>>0)|0,v=v-(t>>>0>T>>>0)|0,I=f-((r>>>0

>>0)+c|0)|0,f=r-p|0}t=f,Kr(m+16|0,n,o,et,zA,3,0,0,0),Kr(m,n,o,et,zA,5,0,0,0),c=I+(r=0)|0,c=f>>>0>(t=t+(p=1&a)|0)>>>0?c+1|0:c,f=t,o=(0|o)==(0|c)&t>>>0>n>>>0|o>>>0>>0,I=v,t=(0|r)==(0|c)&t>>>0

>>0|r>>>0>c>>>0,p=s,r=p=(r=t=(t=(0|(I=t>>>0>(n=t+O|0)>>>0?I+1|0:I))==(0|zA))&(0|n)==(0|et)?o:t&n>>>0>et>>>0|I>>>0>zA>>>0)>>>0>(t=t+a|0)>>>0?p+1|0:p,a=(0|s)==(0|p)&t>>>0>>0|s>>>0>p>>>0,p=he,p=(s=a)>>>0>(a=a+We|0)>>>0?p+1|0:p,o=a,v=(0|(s=e[m+20>>2]))==(0|c)&ge[m+16>>2]>>0|s>>>0>>0,s=e[m+28>>2],s=p>>>0<2147418112&((0|(a=e[m+24>>2]))==(0|n)&(0|s)==(0|I)?v:(0|s)==(0|I)&a>>>0>>0|s>>>0>>0),a=r,p=(r=t=(0|r)==(0|(a=(v=s)>>>0>(s=t+s|0)>>>0?a+1|0:a))&t>>>0>s>>>0|r>>>0>a>>>0)>>>0>(t=t+o|0)>>>0?p+1|0:p,o=t,c=(0|(r=e[m+4>>2]))==(0|c)&ge[m>>2]>>0|r>>>0>>0,r=e[m+12>>2],r=I=(r=t=p>>>0<2147418112&((0|(t=e[m+8>>2]))==(0|n)&(0|r)==(0|I)?c:(0|r)==(0|I)&t>>>0>>0|r>>>0>>0))>>>0>(t=t+s|0)>>>0?a+1|0:a,s=(0|a)==(0|I)&t>>>0>>0|a>>>0>I>>>0,a=p,n=s,ce|=s=s+o|0,Qe|=a=n>>>0>s>>>0?a+1|0:a}}e[A>>2]=t,e[A+4>>2]=r,e[A+8>>2]=ce,e[A+12>>2]=Qe,J=m+336|0}function tr(A,t,r,a,s){var n,o,c,f=0,m=0,p=0,I=0,v=0,T=0,O=0,Z=0,ee=0,ce=0,he=0,ye=0,Qe=0,We=0,Ke=0,rA=0,cA=0,MA=0,zA=0,et=0,at=0;if(J=o=J-80|0,c=e[r+8>>2],!s|!M[r+4>>1]||(e[s+8>>2]=0),n=jA(a,0,152),e[n+44>>2]=l[c+14|0],e[n+40>>2]=l[c+15|0],a=M[c+8>>1]){for(a=e[34459]+(a<<1)|0,ce=256&t,he=r+32|0,We=r-32|0,Ke=r- -64|0,rA=r+96|0,cA=r+-64|0,MA=r-28|0,zA=1&t,et=r-24|0,ye=e[30450];;){f=15&(v=(t=M[a>>1])>>>8|0);e:{A:{r:{s:{n:{c:{o:{g:{l:{i:{p:{C:switch(0|(p=t>>>12|0)){case 10:break o;case 9:break g;case 6:break l;case 2:case 3:break i;case 1:break p;case 0:break C;case 11:case 12:case 13:case 14:case 15:break c;default:break n}m=255&t;C:{m:{b:switch(0|f){case 13:if(m)break m;f=a,t=0;break C;case 0:switch(f=a,m-1|0){case 1:break e;case 0:break A}e[o+20>>2]=y0(o+75|0,e[c>>2]),e[o+16>>2]=t,fr(ye,85851,o+16|0);break e;case 5:if(l[e[144464+(l[r+34|0]<<2)>>2]+11|0]!=2)break e;e[n+20>>2]=m;break e;case 12:break b;default:break s}e[n+44>>2]=e[n+44>>2]+(t<<24>>31&-256|m);break e}u[n+132|0]=l[a+3|0],f=a+2|0,u[n+133|0]=l[0|f],t=2,m>>>0<3||(u[n+134|0]=l[a+5|0],f=a+4|0,u[n+135|0]=l[0|f],t=4,m>>>0<5||(u[n+136|0]=l[a+7|0],f=a+6|0,u[n+137|0]=l[0|f],t=6,m>>>0<7||(u[n+138|0]=l[a+9|0],f=a+8|0,u[n+139|0]=l[0|f],t=8,m>>>0<9||(u[n+140|0]=l[a+11|0],f=a+10|0,u[n+141|0]=l[0|f],t=10,m>>>0<11||(u[n+142|0]=l[a+13|0],f=a+12|0,u[n+143|0]=l[0|f],t=12,m>>>0<13||(u[n+144|0]=l[a+15|0],f=a+14|0,u[n+145|0]=l[0|f],t=14,m>>>0<15||(u[n+146|0]=l[a+17|0],f=a+16|0,u[n+147|0]=l[0|f],t=16)))))))}u[132+(t+n|0)|0]=0,m=O;break A}if(!A|f>>>0>7||(p=r,l[e[144464+(l[r+2|0]<<2)>>2]+11|0]!=2&&(p=he,l[e[144464+(l[r+34|0]<<2)>>2]+11|0]!=2))||!(1&(f=e[A+56>>2]))&&16&l[0|r])break e;m=15&l[p+3|0],m=2&f&&l[p+6|0]<=m>>>0?4:m;p:{C:{m:{b:switch((f=7&v)-3|0){case 1:break C;case 0:break b;default:break m}if(m>>>0>3)break p;break e}if(e[102832+(f<<2)>>2]>(0|m))break p;break e}if(l[p+6|0]>m>>>0)break e}e[n+8>>2]=255&t,m=1;break r}if((57344&t)==8192){for(at=e[32972],v=1,Qe=0;;){I=255&t,f=(T=4095&t)>>>8|0;i:if(T>>>0<=3583){(0|(m=(f>>>0)%7|0))==6&&(m=M[a+2>>1]),ee=0,f=r;p:{C:{m:switch(0|m){case 6:if(p=0,M[r+36>>1]|M[r+68>>1])break i;case 3:f=Ke;break C;case 9:if(p=0,M[r+36>>1]|M[r+68>>1])break i;if(f=rA,!M[r+100>>1])break p;break i;case 7:if(p=0,M[r+36>>1])break i;for(m=1;;){if(l[e[144464+(l[2+(f=(m<<5)+r|0)|0]<<2)>>2]+11|0]==2)break C;if(M[4+(((m=m+1|0)<<5)+r|0)>>1])break}break i;case 5:if(p=0,M[r+4>>1])break i;case 0:ee=1,f=We;break C;case 4:if(p=0,M[r+36>>1])break i;case 2:f=he;break C;case 8:if(p=0,!s)break i;if(ee=1,e[(f=s)+8>>2])break p;break i;case 10:break m;default:break C}if(p=0,M[r+4>>1]|M[MA>>1])break i;ee=1,f=cA;break p}C:switch(0|m){case 0:case 5:break C;default:break p}f=(l[f+2|0]==1?-32:0)+f|0}if(ce?(m=e[144464+(l[f+2|0]<<2)>>2],e[f+8>>2]=m):m=e[f+8>>2],T>>>0<=1791){if(p=1,e[e[144464+(I<<2)>>2]>>2]==e[m>>2])break i;if(!(!ee|l[m+11|0]!=2)){p=(0|I)==l[m+13|0];break i}p=(0|I)==l[m+12|0];break i}I=31&T,p=0;p:switch(T>>>5&7){case 0:p=(0|I)==l[m+11|0];break i;case 1:p=(0|I)==(15&M[m+6>>1]);break i;case 2:p=e[m+4>>2]>>>I&1;break i;case 4:break p;default:break i}p:switch(0|I){case 0:case 1:case 2:case 3:case 4:if(l[e[144464+(l[f+2|0]<<2)>>2]+11|0]!=2){if(l[e[144464+(l[f+34|0]<<2)>>2]+11|0]!=2)break i;f=f+32|0}m=15&l[f+3|0],m=!A|!(2&l[A+56|0])?m:l[f+6|0]<=m>>>0?4:m;C:{switch(I-3|0){case 1:p=l[f+6|0]<=m>>>0;break i;case 0:if(p=1,m>>>0<=3)break C;break i}if(p=1,e[102832+(I<<2)>>2]>(0|m))break i}p=0;break i;case 17:if(!l[m+11|0]){p=1;break i}p=(32&l[r+1|0])>>>5|0;break i;case 18:p=M[f+4>>1]!=0;break i;case 19:if(p=1,M[f+36>>1])break i;p=!l[e[f+40>>2]+11|0];break i;case 9:if(M[f+4>>1])break i;for(;;){if(p=!!(0|(m=12&l[f-29|0])),m)break i;if(M[4+(f=f-32|0)>>1])break}break i;case 10:p=l[m+11|0]!=2;break i;case 11:for(;;){if(p=!!(0|(m=M[f+36>>1])),m)break i;if(m=f,f=f+32|0,l[e[m+40>>2]+11|0]==2)break}break i;case 12:if(p=1,(254&l[m+11|0])==2)break i;p=(16&l[m+4|0])>>>4|0;break i;case 13:for(;p=(l[e[f+8>>2]+11|0]==2)+p|0,m=M[f+4>>1],f=f-32|0,!m;);p=(0|p)==1;break i;case 14:for(;p=(l[e[f+8>>2]+11|0]==2)+p|0,m=M[f+4>>1],f=f-32|0,!m;);p=(0|p)==2;break i;case 16:break p;default:break i}p=(16&l[0|f])>>>4|0}else if(p=0,(0|f)==15){p:switch(I-1|0){case 0:p=zA;break i;case 1:break p;default:break i}p=e[at+132>>2]!=0}i:if(1970>>>(f=(m=65535&t)>>>12|0)&1)f=u[f+102848|0];else{switch(0|f){case 0:if(f=1,(3840&m)!=3328)break i;f=1+(1+(255&m)>>>1|0)|0;break i;case 6:f=(m>>>9&7)-5>>>0<2?12:1;break i;case 2:case 3:f=(0|(f=3840&m))==3328||(0|f)==1536?2:1;break i}f=4,(m=M[a+4>>1])>>>0>61439||(f=(0|m)==2?3:2)}if(a=((f=M[(a=(f<<1)+a|0)>>1]==3)<<1)+a|0,f^=p,v=Qe?f|v:f&v,Qe=4096&t,(57344&(t=M[a>>1]))!=8192)break}if(!(1&v))if((63488&t)!=26624){i:if(1970>>>(f=t>>>12|0)&1)f=u[f+102848|0];else{switch(0|f){case 0:if(f=1,(3840&t)!=3328)break i;f=1+(1+(255&t)>>>1|0)|0;break i;case 6:f=(t>>>9&7)-5>>>0<2?12:1;break i;case 2:case 3:f=(0|(t&=3840))==3328||(0|t)==1536?2:1;break i}f=4,(t=M[a+4>>1])>>>0>61439||(f=(0|t)==2?3:2)}a=(((65024&M[(t=(f<<1)+a|0)>>1])==24576)<<1)+t|0}else a=((255&t)<<1)+a|0}f=a-2|0,m=O;break A}l:switch(f>>>1|0){case 0:a=(((255&t)<<1)+a|0)-2|0;break e;case 5:e[n>>2]=2|e[n>>2],((t=l[e[r+40>>2]+12|0])-28&255)>>>0<=5&&(f=M[4+(t=((t<<2)+a|0)-112|0)>>1],t=M[t+2>>1],e[n+96>>2]=t>>>4<<24>>24,e[n+76>>2]=(15&t)<<18|f<<2),a=a+24|0;break e;case 6:break l;default:break e}((t=l[e[et>>2]+13|0])-28&255)>>>0<=5&&(f=M[4+(t=((t<<2)+a|0)-112|0)>>1],t=M[t+2>>1],e[n+100>>2]=t>>>4<<24>>24,e[n+80>>2]=(15&t)<<18|f<<2),a=a+24|0;break e}t=M[(a=a+2|0)>>1]|t<<16&983040;g:switch(f-1|0){case 0:if((0|Z)>9)break e;e[(o+32|0)+(Z<<2)>>2]=a,a=(e[34459]+(t<<1)|0)-2|0,Z=Z+1|0;break e;case 1:e[n+124>>2]=t;break e;case 2:break g;default:break e}e[n+128>>2]=t;break e}e[108+(f=(((0|f)!=1)<<3)+n|0)>>2]=M[a+2>>1]|(255&t)<<16,t=M[a+4>>1]<<16,a=a+6|0,e[f+112>>2]=t|M[a>>1];break e}if(m=M[(f=a+2|0)>>1],T=t>>>4|0,e[88+(v=((I=p-11|0)<<2)+n|0)>>2]=255&T,e[v+68>>2]=t<<18&3932160|m<<2,(0|(a=M[a+4>>1]))==2){a=f;break e}if(m=t>>>0<=53247?a>>>0>61439?2:1:O-((0|I)==4)|0,p-13>>>0>1)break A;e[v+88>>2]=T<<24>>24;break A}e[o+4>>2]=y0(o+75|0,e[c>>2]),e[o>>2]=t,fr(ye,85851,o);break e}e[4+((f<<2)+n|0)>>2]=m,m=ce&&(0|f)==1?1:O}f=a}(0|m)!=1|(0|Z)<=0?(a=f,O=m):(a=e[(o+32|0)+((Z=Z-1|0)<<2)>>2],O=0)}if(a=a+2|0,(0|O)==1)break}!s|l[r+17|0]!=2||(A=e[r+4>>2],e[s>>2]=e[r>>2],e[s+4>>2]=A,A=e[r+28>>2],e[s+24>>2]=e[r+24>>2],e[s+28>>2]=A,A=e[r+20>>2],e[s+16>>2]=e[r+16>>2],e[s+20>>2]=A,A=e[r+12>>2],e[s+8>>2]=e[r+8>>2],e[s+12>>2]=A),u[r+23|0]=e[n+44>>2],(A=e[n+68>>2])?(e[r+24>>2]=A,A=n+88|0):(e[r+24>>2]=e[n+72>>2],A=n+92|0),e[r+28>>2]=e[A>>2]}J=o+80|0}function da(A,t,r,a,s,n){var o,c=0,f=0,m=0,p=0,I=0,v=0,T=0,O=0,Z=0,ee=0,ce=0,he=0,ye=0,Qe=0,We=0,Ke=0,rA=0,cA=0;J=o=J-848|0;e:if(!(!e[A+104>>2]|8&l[s+2|0]|e[47202]==193)){for(e[a>>2]=0,e[33272]=0,e[33274]=n,u[o+192|0]=0,e[33273]=o+192;p=(n=p)+1|0,u[0|(he=t+n|0)]-48>>>0<10;);e[56798]=0,Ke=o+188|0,v=-2147483648,J=ce=J-16|0;A:if(c=l[0|t]){I=t;r:{for(;;){if(!((0|(c=c<<24>>24))==32|c-9>>>0<5))break r;if(c=l[I+1|0],I=I+1|0,!c)break}break A}r:switch((c=l[0|I])-43|0){case 0:case 2:break r;default:break A}Z=(0|c)==45?-1:0,I=I+1|0}else I=t;for(;c=-48,(((T=u[0|I])-48&255)>>>0<10||(c=-87,(T-97&255)>>>0<26||(c=-55,!((T-65&255)>>>0>25))))&&!((0|(T=c+T|0))>=10);)Kr(ce,10,0,0,0,O,ee,0,0),c=1,e[ce+8>>2]|e[ce+12>>2]||(Qe=It(O,ee,10,0),(0|(We=$))==-1&~T>>>0>>0||(c=We,ee=(O=T+Qe|0)>>>0>>0?c+1|0:c,ye=1,c=m)),I=I+1|0,m=c;Ke&&(e[Ke>>2]=ye?I:t);A:{r:{if(m)e[56798]=68,O=-2147483648,ee=0;else if(!ee&O>>>0<2147483648)break r;if(!Z){e[56798]=68,v=2147483647;break A}if(!(!ee&O>>>0<=2147483648)){e[56798]=68;break A}}v=(Z^O)-Z|0}if(J=ce+16|0,Z=v,!(e[56798]|e[o+188>>2]==(0|t))){A:{r:{s:{if(!(!((0|(T=64&l[A+109|0]?4:3))!=(0|n)|e[A+124>>2]!=u[t-2|0])&u[t-3|0]-48>>>0<10)){n:{if(e[A+124>>2]!=32){if(!(16&l[A+105|0]))break s;if((0|n)==3)break n;break s}if((0|n)!=3)break s}if(4&l[s+2|0]|u[t-2|0]-48>>>0>=10)break s}u[133104]=0,u[o+288|0]=0,rA=1;break r}if(u[133104]=0,e[33275]=0,u[o+288|0]=0,cA=1,ye=0,l[0|t]==48)break A}ye=fa(A,t,he,s,0)}l[0|he]!=46|u[t+p|0]-48>>>0<10|1&u[s+13|0]|u[he+2|0]-48>>>0<10||(u[0|he]=0);A:if(!ye||(Qe=1,e[A+212>>2]==26741)){if(v=o+256|0,e[o+844>>2]=v,f=p,64&l[s+1|0]&&(u[o+256|0]=45,v=o+256|1,e[o+844>>2]=v,f=n+2|0),I=l[t+f|0]){for(;!((255&I)==32|(0|f)>28)&&(c=e[o+844>>2],e[o+844>>2]=c+1,u[0|c]=I,I=l[(f=f+1|0)+t|0]););v=e[o+844>>2]}if(u[0|v]=0,Qe=1,c=u[o+256|0]){if(!(m=e[A+136>>2])||yr(o+256|0,m)){if(c-48>>>0<10||(e[o+176>>2]=o+256,DA(c=o+800|0,88653,o+176|0),!RA(A,c,133104)))break A;e[a>>2]=128|e[a>>2],e[o+160>>2]=o+256,DA(c=o+800|0,88773,o+160|0),RA(A,c,133116),Qe=0}ye=2}}Ke=e[s>>2],u[o+352|0]=0,u[o+624|0]=0;A:{r:{s:if(!(!cA|l[0|t]!=48||(0|(c=u[t+1|0]))==32|(0|c)==e[A+128>>2])){n:{if((0|n)==2){if(l[t+3|0]!=58|u[t+5|0]-48>>>0>=10||!((0|(c=u[t+7|0]))==32|c-9>>>0<5))break n;break s}if((0|n)>3)break r}if(l[0|t]==48&&!((0|(c=n-1|0))<=0))for(f=0;;){if(RA(A,88875,HA(m=o+288|0)+m|0),l[(f=f+1|0)+t|0]!=48)break s;if(!((0|c)>(0|f)))break}}s:{n:{if(!((0|(c=u[0|he]))==32&&16&l[A+105|0])){if(We=2,O=n+2|0,(0|c)==e[A+124>>2])break n;ee=1,v=0,c=0;break s}We=1,O=n+2|0}if(4&l[s+14|0])v=1,c=0,ee=1;else for(c=0,I=1,f=n,ee=1;;){m=c,c=I,I=(ce=f+We|0)+t|0,f=0;n:{for(;;){if(v=1,!(u[f+I|0]-48>>>0>=10)){if((0|T)!=(0|(f=f+1|0)))continue;break n}break}c=m;break s}if(u[I+T|0]-48>>>0<10){c=m;break s}if(f=0,u[I-1|0]-48>>>0<10){c=m;break s}n:{for(;;){if(l[(f+ce|0)+t|0]==48){if((0|T)!=(0|(f=f+1|0)))continue;break n}break}ee=0}if((0|(m=u[(f=T+ce|0)+t|0]))!=e[A+124>>2]&(!(16&l[A+105|0])|(0|m)!=32))break s;if(O=f+2|0,4&l[2+(P(I=c+1|0,12)+s|0)|0])break}}f=!Z;s:if(!(!ee|!(64&l[1+(P(c,12)+s|0)|0])|e[A+212>>2]!=26741)){n:switch(l[0|(m=t+O|0)]-97|0){case 0:case 4:break n;default:break s}n:{c:{o:{g:switch((I=l[m+1|0])-116|0){case 6:break s;case 1:case 2:case 3:case 4:case 5:break c;case 0:break g;default:break o}if(l[m+2|0]!=116)break n;break s}if((0|I)==32)break s}if(!(!!((0|Z)%1e3|0)&(0|c)!=1)&&(0|I)==108)break s}e[33274]=1|e[33274]}O=32768&Ke,f&=rA;s:if(e[A+128>>2]!=u[0|he]|u[t+p|0]-48>>>0>=10){n:{if(!f){if(f=0,m=1,!((0|c)>0&v))break n;Z=(p=ks(A,Z,c,ee,o+624|0))?0:Z,f=!!(0|p),I=0;break s}f=1,Z=0,e[33275]==1&&(e[o+144>>2]=c+1,DA(p=o+800|0,89026,o+144|0),RA(A,p,o+688|0)||(e[o+128>>2]=c,DA(p=o+800|0,89026,o+128|0),RA(A,p,o+624|0)))}m=1,I=0}else RA(A,88882,o+624|0),m=0,I=256;v=O?2:ye;s:{if(c|l[o+624|0]|l[0|he]!=46){if(c)break s}else RA(A,89192,o+624|0);if(e[o+844>>2]=t,u[t+1|0]-48>>>0<10)for(;p=e[o+844>>2],e[o+844>>2]=p+1,u[p+2|0]-48>>>0<10;);if(u[e[o+844>>2]-1|0]-48>>>0>=10||(e[o+416>>2]=e[o+844>>2]-1,kr(A,o+416|0,o+192|0,a,4,s)&&(e[33272]=2)),l[o+192|0]|l[e[o+844>>2]]==48||kr(A,o+844|0,o+192|0,a,4,s)&&(e[33272]=1),cA){if(!v&m&&(e[o+112>>2]=Z,DA(s=o+800|0,89214,o+112|0),RA(A,s,r)))break A;if(1&u[A+110|0]){for(p=t;(32|l[0|p])!=32;)p=p+1|0;e[o+416>>2]=p,l[p+1|0]==37&&(RA(A,89328,r),s=HA(r),u[e[o+416>>2]+1|0]=32,r=r+s|0)}}}us(A,Z,o+416|0,f,c,v|I|rA),!(2&l[A+109|0])|(0|c)<=0?(e[o+60>>2]=15,e[o- -64>>2]=o+624,e[o+56>>2]=o+416,e[o+52>>2]=o+352,e[o+48>>2]=o+288,DA(r,89415,o+48|0)):(e[o+88>>2]=15,e[o+96>>2]=o+416,e[o+92>>2]=o+352,e[o+84>>2]=o+624,e[o+80>>2]=o+288,DA(r,89346,o+80|0));s:if(!m)for(;;){for(n=n+1|0,m=0;m=(p=m)+1|0,u[(c=n+p|0)+t|0]-48>>>0<10;);s=2;n:{c:{o:{g:{l:{i:switch((m=57344&e[A+104>>2])-8192>>>13|0){case 6:break c;case 2:break o;case 0:case 4:case 5:break g;case 1:break l;case 3:break i;default:break n}s=5}if((0|(m=l[0|(f=t+n|0)]))==48)for(;RA(A,88875,c=o+688|0),sa(r,c),p=p-1|0,(0|(m=l[0|(f=(n=n+1|0)+t|0)]))==48;);if((0|s)<(0|p)|(m<<24>>24)-48>>>0>=10)break n;s=o+688|0,us(A,Vs(f),s,0,0,0),sa(r,s),n=n+p|0;break n}if(us(A,Vs(s=t+n|0),o+416|0,0,0,0),!((0|m)==8192&l[0|s]!=48)){if(e[o+16>>2]=p,DA(s=o+800|0,89508,o+16|0),!RA(A,s,o+688|0))break n;sa((0|m)==49152?r:o+416|0,o+688|0)}sa(r,o+416|0),n=c;break n}if((0|p)>4||l[0|(s=t+n|0)]==48)break n;us(A,n=Vs(s),s=o+688|0,0,0,0),sa(r,s),n=c;break n}if(!((0|p)<=1))for(;;){if(e[o+32>>2]=u[t+n|0],DA(s=o+800|0,89575,o+32|0),!RA(A,s,o+688|0))break n;if(sa(r,o+688|0),n=n+1|0,!((0|(p=p-1|0))>1))break}}n:if(!((m=l[0|(p=t+n|0)])-48>>>0>=10||HA(r)>>>0>=190))for(;;){if(s=o+688|0,Za(A,u[0|p]-48|0,0,2,s),c=HA(r),e[o>>2]=15,e[o+4>>2]=s,DA(r+c|0,89594,o),(m=l[0|(p=(n=n+1|0)+t|0)])-48>>>0>=10)break n;if(!(HA(r)>>>0<=189))break}if(RA(A,89678,o+688|0)&&sa(r,o+688|0),e[A+128>>2]!=(0|m)|u[1+(t+n|0)|0]-48>>>0>=10)break s;RA(A,88882,s=o+688|0),sa(r,s)}if(!(s=l[0|r])|(0|s)==21||(s=Gt(o+184|0,t=1+(t+n|0)|0),n=e[o+184>>2],!(2&l[A+106|0])|(0|n)!=32||(Gt(o+184|0,t+s|0),n=e[o+184>>2]),ns(n)|ee||(A=HA(r)+r|0,u[0|A]=11,u[A+1|0]=0)),e[a>>2]=-2147483648|e[a>>2],e[33275]=e[33275]-1,f=1,Qe)break e;e[33264]=1;break e}e[a>>2]=-129&e[a>>2],f=0;break e}f=1}}return J=o+848|0,f}function bt(A,t,r,a){var s,n,o=0,c=0,f=0,m=0,p=0,I=0,v=0,T=0,O=0,Z=0,ee=0,ce=0,he=0,ye=0,Qe=0,We=0,Ke=0,rA=0,cA=0,MA=0,zA=0;if(J=s=J-416|0,ye=M[r+8>>1],O=l[r+10|0],64&(n=e[r>>2])){for(e[r>>2]=-65&n,u[199388]=1,f=e[47202],v=e[49846],p=e[47352],I=e[47351],m=e[47350];;){o=(c=e[198304+(I<<2)>>2])>>8;e:{A:switch((31&c)-9|0){case 0:f=o;break e;case 4:v=o;break e;case 3:break A;default:break e}p=c>>>0>=256?o+p|0:0}if(!(!(128&c)&(0|m)>(0|(I=I+1|0))))break}e[47352]=p,e[47351]=I,e[49846]=v,e[47202]=f}v=0;e:if(!((0|(o=e[49572]))>997)){if(1048576&n||!l[0|t])l[199388]&&(e[49572]=o+1,u[199388]=0,e[(A=190288+(o<<3)|0)>>2]=983042,e[A+4>>2]=0),u[189088]=0;else if(!((0|o)>990)){(0|(o=e[A+8224>>2]))>0&&(e[A+8224>>2]=o-1),f=512&n?a:a+4|0,p=(240&e[47202])==16,(ce=2&n)&&((0|(c=e[47200]))<3||(0|(o=e[47350]))>243||(l[199388]&&(e[(I=198300+(o<<2)|0)>>2]=-129&e[I>>2]),e[47350]=o+1,u[199388]=1,Qe=(0|c)==3?20:c,e[198304+(o<<2)>>2]=Qe<<8|193)),m=p?f:a;A:{r:{if(!(8&n)){for(;a=l[(o=T)+t|0],u[o+(s+240|0)|0]=a,223&a&&(T=o+1|0,o>>>0<160););if(u[s+66|0]=0,T=s- -64|2,v=NA(e[47192],t,r,T),e[s+412>>2]=v,!(4096&v))break r;wt(t,s+240|0,o);break e}s:if(xa(t,87276,3))Ns(t,189088,s+240|0);else{if(I=0,223&(o=l[0|(T=t+3|0)]))for(;u[(s+240|0)+I|0]=Ht(o<<24>>24),I=I+1|0,223&(o=l[0|(T=T+1|0)]););u[(a=s+240|0)+I|0]=0,o=0;n:if(!((0|(r=e[34461]))<=0)){for(;;){if(!yr(a,P(o,44)+137856|0)){e[34457]=o;break n}if((0|r)==(0|(o=o+1|0)))break}o=r}if((0|(r=(0|r)==(0|o)?-1:o))<=0)break s;ha(r),u[189090]=0,u[189089]=r,u[189088]=21}v=-2147483648,e[s+412>>2]=-2147483648,a=-1;break A}if(!(!(8388608&v)|8&l[r+12|0])){for(J=p=J-208|0,I=e[A+60>>2],c=t;a=c,c=c+1|0,l[0|a]!=32;);Gt(p+204|0,c);r:if(ns(e[p+204>>2])){f=qA(p,189088),c=(!(256&I)|(ee=TA(A,c,r+12|0,0))>>>15)&!(67108864&ee)&l[189088]!=21;s:{n:{if(512&I){if(!(c&!(16&l[r+12|0])))break n;break s}if(c)break s}qA(189088,f);break r}if(u[0|a]=45,e[r>>2]=-2&e[r>>2],v=0,c=189088,Z=TA(e[47192],t,r,0),e[s+412>>2]=Z,!((0|I)<=0)&&(f=l[189088])){for(;v=(l[e[144464+(f<<2)>>2]+11|0]==2)+v|0,f=l[0|(c=c+1|0)];);if(!((31&I)>=(0|v))){u[0|a]=32,e[s+412>>2]=TA(e[47192],t,r,0);break r}}e[s+412>>2]=128|(Z||ee),e[33264]=1}J=p+208|0}if(a=-1,l[189088]==21){if(I=qA(s+16|0,132848),p=e[s+412>>2],c=wt(t,s+240|0,o),f=s- -64|1,(0|(a=wi(l[189089]?189089:87315,188772,189296)))<0||(e[r>>2]=4194304|e[r>>2],l[s+66|0]?(b[s+64>>1]=8192,p=TA(e[47193],f,r,0)):p=NA(e[47193],c,r,T)),l[189088]==21&&(o=wt(c,s+240|0,o),(0|(a=wi(l[189089]?189089:87315,188772,189296)))<0||(e[r>>2]=4194304|e[r>>2],l[s+66|0]?(b[s+64>>1]=8192,p=TA(e[47193],f,r,0)):p=NA(e[47193],o,r,T)),v=4096,l[189088]==21))break e;e[s+412>>2]=p,(0|a)>=0||(u[189090]=0,b[94544]=3341,(0|a)==-1&&(qA(132848,I),ha(e[e[32972]+60>>2]),a=e[e[32972]+60>>2]))}v=e[s+412>>2],128&n||(m=268435456&v&&(0|m)<=1?1:m,!(256&v)|528&n|e[A+8224>>2]|2&l[r-11|0]||(e[A+8224>>2]=3,m=(0|m)<=4?4:m)),m=(0|m)<=0&&e[49846]>2?1:m}if(r=l[199388],!((0|m)<=0|(0|(T=e[49572]))>990)){e[49572]=T+1,c=1&r,r=0,b[(o=190288+(T<<3)|0)>>1]=c?2:0,u[o+7|0]=0,u[o+3|0]=0,c=m>>>0>1,u[o+2|0]=c?9:11,b[o+4>>1]=0,e[A+8236>>2]=0;A:if(!(!(o=c?m-2|0:0)|(0|(T=e[49572]))>990))for(f=A+8236|0;;){if(e[49572]=T+1,b[(c=190288+(T<<3)|0)>>1]=0,u[c+7|0]=0,u[c+3|0]=0,p=o>>>0>1,u[c+2|0]=p?9:11,b[c+4>>1]=0,e[f>>2]=0,T=e[49572],(0|(o=p?o-2|0:0))<=0)break A;if(!((0|T)<991))break}e[A+8228>>2]=0,e[A+8232>>2]=0}u[199388]=1&r,!ce|e[47200]!=1||(e[49572]=T+2,u[199388]=0,b[(o=190288+(T<<3)|0)>>1]=1&r?2:0,u[o+7|0]=0,b[o+2>>1]=10,b[o+4>>1]=0,b[o+12>>1]=0,e[o+8>>2]=1179648,u[o+15|0]=0,1&n&&rr(u[t+1|0])&&(r=l[199388],u[199388]=0,t=e[49572],e[49572]=t+2,b[(t=190288+(t<<3)|0)>>1]=r?2:0,u[t+7|0]=0,b[t+2>>1]=10,b[t+4>>1]=0,b[t+12>>1]=0,e[t+8>>2]=1179648,u[t+15|0]=0)),o=O>>>0<31;A:if(!((0|a)<0))if(t=e[49572],r=l[190290+((m=t-1|0)<<3)|0],l[189088]!=9|l[189089]!=21)(0|r)!=21&&(c=l[199388],u[199388]=0,u[7+(r=190288+(t<<3)|0)|0]=0,b[r+2>>1]=21,b[r+4>>1]=0,b[r>>1]=c?2:0,m=t),e[49572]=m+1,u[190295+(m<<3)|0]=a;else{if((0|r)!=21)break A;e[49572]=m}t=2047&ye,r=(o?O:31)<<11,p=(We=128&n)?l[e[144464+(l[189088]<<2)>>2]+11|0]?189088:189089:189088,(m=l[0|p])|!(1&u[199388])||(m=23,u[0|p]=23,u[p+1|0]=0),Ke=t|r,f=e[49572];A:if(m)if((0|f)>994)t=0;else for(MA=((-1610612736&v)==-2147483648)<<4,ye=Ke+1|0,zA=A+8233|0,t=0,c=1,ee=0,rA=1,O=-1,ce=-1,o=0;;){I=p+1|0;r:{if((0|(Z=255&m))!=255){if(r=e[144464+(Z<<2)>>2])break r;e[s>>2]=Z,J=r=J-16|0,e[r+12>>2]=s,Ds(132552,87474,s),J=r+16|0,f=e[49572]}if(!(m=l[0|I]))break A;if(p=I,(0|f)<995)continue;break A}r:if((0|(he=255&m))!=21)if((0|(p=l[r+11|0]))!=1){switch(r=ye,he-12|0){case 8:u[3+(r=190288+((O=f-1|0)<<3)|0)|0]=c,b[r>>1]=4|M[r>>1],r=o;break r;case 0:b[(r=190280+(f<<3)|0)>>1]=8|M[r>>1],r=o;break r;case 10:v|=16384,e[s+412>>2]=v,r=o;break r;case 3:break r}Z=l[199388],u[199388]=0,u[7+(r=190288+(he=f<<3)|0)|0]=0,u[r+2|0]=m,b[r+4>>1]=o,o=(Z?2:0)|MA,b[r>>1]=o,(0|p)==2?((0|c)>=4&&(u[189076]=1),(0|O)<0||(0|(t=f-1|0))!=(0|O)&&(u[190291+(t<<3)|0]=c),b[r>>1]=4|o,cA=(t=(0|c)>(0|ce))?f:cA,ce=t?c:ce,o=1,ee&&(u[r+7|0]=ee),O=f,ee=0,t=c):(!rA|!(64&l[0|zA])||(b[r>>1]=8|o),o=c),f=f+1|0,e[49572]=f,u[he+190291|0]=t,r=0,rA=0,c=o}else{if(!M[r+8>>1]){c=l[r+14|0],r=o;break r}if((0|O)<0){r=o,ee=Z;break r}u[190295+(O<<3)|0]=m,r=o}else e[(r=190288+(f<<3)|0)>>2]=1376256,b[r+4>>1]=0,u[r+7|0]=l[p+1|0],e[49572]=f+1,ha(l[p+1|0]),I=p+2|0,f=e[49572],r=o;if(!(m=l[0|I]))break A;if(p=I,o=r,!((0|f)<995))break}else t=0;131072&n&&(r=f+1|0,e[49572]=r,c=l[199388],u[199388]=0,u[7+(o=190288+(f<<3)|0)|0]=0,b[o+2>>1]=27,b[o+4>>1]=0,b[o>>1]=c?2:0,f=r),We||(b[190292+(T<<3)>>1]=Ke),e[A+8228>>2]=0,l[e[144464+(l[190282+(f<<3)|0]<<2)>>2]+11|0]!=2|(0|t)<4||(e[A+8228>>2]=1),(0|a)>=0&&(qA(132848,s+16|0),ha(e[e[32972]+60>>2]),r=l[199388],u[199388]=0,a=e[49572],b[(t=190288+(a<<3)|0)>>1]=r?2:0,b[t+2>>1]=21,b[t+4>>1]=0,u[t+7|0]=e[e[32972]+60>>2],f=a+1|0,e[49572]=f),(0|Qe)>0&&(u[199388]=0,e[49572]=f+1,e[(t=190288+(f<<3)|0)>>2]=655362,r=e[47350],e[47350]=r+1,u[t+7|0]=0,b[t+4>>1]=0,e[198304+(r<<2)>>2]=Qe<<8|225),1024&v&&(b[(t=190288+(cA<<3)|0)>>1]=64|M[t>>1]),e[A+8232>>2]=v}}return J=s+416|0,v}function Ka(A,t,r,a,s){var n=0,o=0,c=0,f=0,m=0,p=0,I=0,v=0,T=0,O=0,Z=0,ee=0,ce=0,he=0,ye=0,Qe=0,We=0,Ke=0,rA=0,cA=0,MA=0,zA=0,et=0,at=0;e:if(t){if(ce=s<<4,o=(t=e[33268])+r|0,!((0|t)<=0||(n=l[0|(f=ce+129360|0)],I=l[f+1|0]-n<<8,I=(0|t)!=1?(0|I)/(0|t)|0:I,(0|r)>=(0|o))))for(v=I>>>0>255,Z=I>>>8|0,n<<=8,f=0-I>>>8|0,Qe=(0|I)<=0,t=r;Qe?(m=(p=(p=(0|(c=(0|(c=e[101024+(u[P(t,6)+A|0]<<2)>>2]))<(0|f)?f:c))>=18?18:c)+(c=(0|(c=(0|(n=n+I|0))/256|0))>0?c:0)|0)>>>0>=254?254:p,c=c>>>0>=254?254:c):(c=P(t,6)+A|0,u[c+2|0]=v|l[c+2|0],c=(p=(0|(c=(0|n)/256|0))>0?c:0)>>>0>=254?254:p,m=(p=p+Z|0)>>>0>=254?254:p,n=n+I|0),p=P(t,6)+A|0,u[p+5|0]=c,u[p+4|0]=m,(0|o)!=(0|(t=t+1|0)););if(2&l[188785]?(f=e[33271],e[33270]=f):f=e[33270],Z=(v=l[3+(n=129360+(t=s<<4)|0)|0])-(c=l[n+2|0])<<8,Qe=e[n+4>>2],(0|r)>0?(Ke=101056,he=5,p=(0|Z)/(l[t+129368|0]-1|0)|0):(Ke=e[12+(t=t+129360|0)>>2],he=l[t+10|0],p=0),(0|o)<(0|f)){for(I=(0|r)<=0,ee=((t=Z>>31)^Z)-t|0,T=129360+(s<<4)|0,c<<=8,We=v<<8,v=0;;){A:{if(m=P(o,6)+A|0,!(!(1&I)&(0|(n=u[0|m]))<4)){r=0,t=o;r:if(1&((0|n)==5|I)){for(;(0|(p=u[P(t,6)+A|0]))<=6&&(r=((0|p)>3)+r|0,(0|f)!=(0|(t=t+1|0))););if(O=0,(0|(ye=(0|(t=l[T+8|0]))>(0|r)?r:t))<2){p=0,v=c;break r}p=(0|Z)/(ye-1|0)|0,v=c}else(0|ye)>0?v=p+v|0:(v=We+(P(ee,u[O+Ke|0])>>6)|0,(0|he)>(0|(O=O+1|0))||(Ke=e[T+12>>2],O=0));if(ye=ye-1|0,!((0|n)<4)){u[0|m]=6,r=(t=(0|(t=(0|v)/256|0))>0?t:0)+(((r=(n=e[Qe+(n<<2)>>2])>>31)^n)-r|0)|0;break A}}(0|n)!=3?(t=(0|v)/256|0,(63&l[m-6|0])>>>0>=3?(r=(n=e[Qe+(n<<2)>>2])>>31,r=(t=(0|(t=t-u[T+9|0]|0))>0?t:0)+((r^n)-r|0)|0):r=(t=(0|t)>0?t:0)+(((r=(n=e[Qe+(n<<2)>>2])>>31)^n)-r|0)|0):r=(t=(0|(t=(0|v)/256|0))>0?t:0)+(((r=(n=e[Qe+12>>2])>>31)^n)-r|0)|0}if(u[m+5|0]=t>>>0>=254?254:t,I=0,t=(0|r)>0?r:0,u[m+4|0]=t>>>0>=254?254:t,u[m+2|0]=l[m+2|0]|n>>>31,(0|f)==(0|(o=o+1|0)))break}o=f}if(!(l[133068]||((268435455&s)==3&&(t=P(o,6)+A|0,u[t+2|0]=2|l[t+2|0]),e[33269]?(t=l[5+(n=100768+(s<<4)|0)|0],c=n+3|0,r=l[n+4|0]-t|0):(t=l[2+(r=100768+(s<<4)|0)|0],c=ce+100768|0,r=l[r+1|0]-t|0),n=P(o,6)+A|0,u[n+5|0]=t>>>0>=254?254:t,u[n+2|0]=l[n+2|0]|r>>>31,t=(p=t)+(((t=r>>31)^r)-t|0)|0,u[n+4|0]=t>>>0>=254?254:t,r=P(f,6)+A|0,u[r+1|0]=l[0|c],t=o+1|0,l[0|r]==4&&(u[0|r]=6),(0|(r=a-t|0))<=0||(s=l[12+(o=100768+(s<<4)|0)|0],o=l[o+13|0]-s<<8,o=(0|r)!=1?(0|o)/(0|r)|0:o,(0|t)>=(0|a)))))for(p=o>>>0>255,I=o>>>8|0,r=s<<8,s=0-o>>>8|0,v=(0|o)<=0;v?(c=(f=(c=(0|(n=(0|s)>(0|(n=e[101024+(u[P(t,6)+A|0]<<2)>>2]))?s:n))>=18?18:n)+(n=(0|(n=(0|(r=r+o|0))/256|0))>0?n:0)|0)>>>0>=254?254:f,f=n>>>0>=254?254:n):(n=P(t,6)+A|0,u[n+2|0]=p|l[n+2|0],f=(n=(0|(n=(0|r)/256|0))>0?n:0)>>>0>=254?254:n,c=(n=n+I|0)>>>0>=254?254:n,r=r+o|0),n=P(t,6)+A|0,u[n+5|0]=f,u[n+4|0]=c,(0|a)!=(0|(t=t+1|0)););}else{if(t=(he=e[34455])+P(s,68)|0,o=l[t+24|0],f=l[t+25|0],n=(t=e[33268])+r|0,!((0|t)<=0||(m=f-o<<8,m=(0|t)!=1?(0|m)/(0|t)|0:m,(0|r)>=(0|n))))for(p=m>>>0>255,I=m>>>8|0,t=o<<8,f=0-m>>>8|0,v=(0|m)<=0;v?(o=(o=(Z=(0|(o=(0|(o=e[101024+(u[P(r,6)+A|0]<<2)>>2]))<(0|f)?f:o))>=18?18:o)+(c=(0|(o=(0|(t=t+m|0))/256|0))>0?o:0)|0)>>>0>=254?254:o,c=c>>>0>=254?254:c):(o=P(r,6)+A|0,u[o+2|0]=p|l[o+2|0],c=(o=(0|(o=(0|t)/256|0))>0?o:0)>>>0>=254?254:o,o=(o=o+I|0)>>>0>=254?254:o,t=t+m|0),Z=P(r,6)+A|0,u[Z+5|0]=c,u[Z+4|0]=o,(0|n)!=(0|(r=r+1|0)););2&l[188785]?(r=e[33271],e[33270]=r):r=e[33270],f=r,t=he+P(s,68)|0;A:if((0|(I=l[t+33|0]))!=255)for(;;){if((0|(f=f-1|0))<(0|n)){f=r;break A}if(!(u[P(f,6)+A|0]<4))break}if((0|r)>(0|n)){for(zA=((o=(cA=(v=l[t+32|0])-(m=l[0|(c=t+31|0)])<<8)>>31)^cA)-o|0,We=(0|(t=l[0|(p=t+30|0)]))==255,Z=I<<8,Qe=m<<8,et=v<<8,ce=he+P(s,68)|0,at=(0|t)!=255,v=0,I=0,t=1,m=0;;){A:{if(T=P(n,6)+A|0,!(!(1&t)&(0|(ee=u[0|T]))<4)){r:if(1&((0|ee)==5|t)){s:if(at){if(rA=1,t=0,o=p,!((0|f)<=(0|(m=n+1|0)))){for(;;){if(o=p,(0|(I=u[P(m,6)+A|0]))>6)break s;if(t=((0|I)>3)+t|0,(0|f)==(0|(m=m+1|0)))break}o=p}}else{if(t=0,m=n,o=c,(0|f)<=(0|n))break s;for(;;){if(o=c,(0|(I=u[P(m,6)+A|0]))>6)break s;if(t=((0|I)>3)+t|0,(0|f)==(0|(m=m+1|0)))break}o=c}if(I=l[0|o]<<8,MA=0,(0|(m=(0|t)<(0|(o=l[ce+34|0]))?t:o))<2){Ke=0;break r}Ke=(0|cA)/(m-1|0)|0}else(0|n)!=(0|f)?rA?(We=1,m=m+1|0,rA=0,I=Qe):(0|m)>0?(I=I+Ke|0,rA=0):(rA=0,I=(P(u[16+(ce+MA|0)|0],zA)>>6)+et|0,MA=(0|(t=MA+1|0))1)break r;if(!((0|r)>=(0|(t=t+1|0))))break}u[0|T]=6,u[T+1|0]=l[ce+26|0],v=0,O=l[ce+27|0],n=(0|(n=(0|I)/256|0))>0?n:0,u[T+5|0]=n>>>0>=254?254:n,n=n+O|0,u[T+4|0]=n>>>0>=254?254:n,ye=t-o|0;break A}}if((0|ee)>=2){t=o=n+1|0;r:if(!((0|r)<=(0|n)))for(;;){if(u[P(t,6)+A|0]>1)break r;if(!((0|r)>=(0|(t=t+1|0))))break}v=0,n=(0|(n=(0|I)/256|0))>0?n:0,u[T+5|0]=n>>>0>=254?254:n,O=e[100976+(ee<<2)>>2],u[T+2|0]=l[T+2|0]|O>>>31,n=(0|(n=(ee=n)+(((n=O>>31)^O)-n|0)|0))>0?n:0,u[T+4|0]=n>>>0>=254?254:n,ye=t-o|0}else(0|ye)<=1?(O=u[36+(ce+We|0)|0],t=0):(O=u[36+(t=ce+We|0)|0],t=(u[t+39|0]-O|0)/(ye-1|0)|0),o=e[100976+(ee<<2)>>2],u[T+2|0]=l[T+2|0]|o>>>31,t=(0|(t=(((0|I)/256|0)+O|0)+P(t,v)|0))>0?t:0,u[T+5|0]=t>>>0>=254?254:t,t=(0|(t=t+(((ee=o)^(o>>=31))-o|0)|0))>0?t:0,u[T+4|0]=t>>>0>=254?254:t,v=v+1|0,o=n+1|0}if(t=0,(0|r)==(0|(n=o)))break}n=r}if(l[133068]||(o=P(n,6)+A|0,e[33269]?(c=he+P(s,68)|0,t=l[c+47|0],f=l[c+46|0]-t|0,c=c+45|0):(c=he+P(s,68)|0,t=l[c+44|0],f=l[c+43|0]-t|0,c=c+42|0),c=l[0|c],p=(((p=f>>31)^f)-p|0)+t|0,u[o+4|0]=p>>>0>=254?254:p,u[o+5|0]=t>>>0>=254?254:t,t=P(n,6)+A|0,u[t+2|0]=l[t+2|0]|f>>>31,r=P(r,6)+A|0,u[r+1|0]=c,t=n+1|0,l[0|r]==4&&(u[0|r]=6),(0|(r=a-t|0))<=0)||(o=he+P(s,68)|0,s=l[o+48|0],o=l[o+49|0]-s<<8,o=(0|r)!=1?(0|o)/(0|r)|0:o,(0|t)>=(0|a)))break e;for(p=o>>>0>255,I=o>>>8|0,r=s<<8,s=0-o>>>8|0,v=(0|o)<=0;v?(c=(f=(c=(0|(n=(0|s)>(0|(n=e[101024+(u[P(t,6)+A|0]<<2)>>2]))?s:n))>=18?18:n)+(n=(0|(n=(0|(r=r+o|0))/256|0))>0?n:0)|0)>>>0>=254?254:f,f=n>>>0>=254?254:n):(n=P(t,6)+A|0,u[n+2|0]=p|l[n+2|0],f=(n=(0|(n=(0|r)/256|0))>0?n:0)>>>0>=254?254:n,c=(n=n+I|0)>>>0>=254?254:n,r=r+o|0),n=P(t,6)+A|0,u[n+5|0]=f,u[n+4|0]=c,(0|a)!=(0|(t=t+1|0)););}}function Oa(){var A,t=0,r=0,a=0,s=0,n=0,o=0,c=0,f=0,m=0,p=0,I=0,v=0,T=0,O=0,Z=0;if((0|(A=e[36455]))!=(0|(f=e[36454]))){e:if(!((0|(T=e[36427]))<0|(0|f)==(0|T))){r=I=e[8+(216192+((m=T)<<4)|0)>>2];A:{for(;;){if((a=e[(o=216192+((m=(0|(a=m-1|0))<0?169:a)<<4)|0)>>2])-5>>>0<2)break A;r:{if((0|a)<=4){if(e[o+12>>2]!=(0|r))break A;if(a=M[o+4>>1],e[o+12>>2]=I,r=e[o+8>>2],16&(t=M[r>>1]))break r;for(Z=32&t?(P(a,12)>>>0)/10|0:a,s=0,a=r,c=0;;){t=M[r>>1];s:if(!(c>>>0<3&&8&t)){if(t=t<<16>>16,(0|(O=(p=b[2+((v=c<<1)+r|0)>>1])-(n=b[2+(v=I+v|0)>>1])|0))>(0|(p=(0|P(Z,(0|P(e[200944+(c<<2)>>2],(0|O)>0?p+(n<<1)|0:(p<<1)+n|0))/3e3|0))/256|0)))s||((0|t)<0?a=r:(a=0,t=(0|(t=e[44469]+1|0))<=169?t:0,e[44469]=t,(t=177888+(s=t<<6)|0)&&(a=M[r+4>>1]|M[r+6>>1]<<16,n=M[r>>1]|M[r+2>>1]<<16,b[t>>1]=n,b[t+2>>1]=n>>>16,b[t+4>>1]=a,b[t+6>>1]=a>>>16,a=M[r+60>>1]|M[r+62>>1]<<16,n=M[r+56>>1]|M[r+58>>1]<<16,b[t+56>>1]=n,b[t+58>>1]=n>>>16,b[t+60>>1]=a,b[t+62>>1]=a>>>16,a=M[r+52>>1]|M[r+54>>1]<<16,n=M[r+48>>1]|M[r+50>>1]<<16,b[t+48>>1]=n,b[t+50>>1]=n>>>16,b[t+52>>1]=a,b[t+54>>1]=a>>>16,a=M[r+44>>1]|M[r+46>>1]<<16,n=M[r+40>>1]|M[r+42>>1]<<16,b[t+40>>1]=n,b[t+42>>1]=n>>>16,b[t+44>>1]=a,b[t+46>>1]=a>>>16,a=M[r+36>>1]|M[r+38>>1]<<16,n=M[r+32>>1]|M[r+34>>1]<<16,b[t+32>>1]=n,b[t+34>>1]=n>>>16,b[t+36>>1]=a,b[t+38>>1]=a>>>16,a=M[r+28>>1]|M[r+30>>1]<<16,n=M[r+24>>1]|M[r+26>>1]<<16,b[t+24>>1]=n,b[t+26>>1]=n>>>16,b[t+28>>1]=a,b[t+30>>1]=a>>>16,a=M[r+20>>1]|M[r+22>>1]<<16,n=M[r+16>>1]|M[r+18>>1]<<16,b[t+16>>1]=n,b[t+18>>1]=n>>>16,b[t+20>>1]=a,b[t+22>>1]=a>>>16,a=M[r+12>>1]|M[r+14>>1]<<16,n=M[r+8>>1]|M[r+10>>1]<<16,b[t+8>>1]=n,b[t+10>>1]=n>>>16,b[t+12>>1]=a,b[t+14>>1]=a>>>16,u[s+177904|0]=0,b[t>>1]=32768|M[t>>1],a=t))),t=p+M[v+2>>1]|0;else{if((0-p|0)<=(0|O))break s;s||((0|t)<0?a=r:(a=0,t=(0|(t=e[44469]+1|0))<=169?t:0,e[44469]=t,(t=177888+(s=t<<6)|0)&&(a=M[r+4>>1]|M[r+6>>1]<<16,n=M[r>>1]|M[r+2>>1]<<16,b[t>>1]=n,b[t+2>>1]=n>>>16,b[t+4>>1]=a,b[t+6>>1]=a>>>16,a=M[r+60>>1]|M[r+62>>1]<<16,n=M[r+56>>1]|M[r+58>>1]<<16,b[t+56>>1]=n,b[t+58>>1]=n>>>16,b[t+60>>1]=a,b[t+62>>1]=a>>>16,a=M[r+52>>1]|M[r+54>>1]<<16,n=M[r+48>>1]|M[r+50>>1]<<16,b[t+48>>1]=n,b[t+50>>1]=n>>>16,b[t+52>>1]=a,b[t+54>>1]=a>>>16,a=M[r+44>>1]|M[r+46>>1]<<16,n=M[r+40>>1]|M[r+42>>1]<<16,b[t+40>>1]=n,b[t+42>>1]=n>>>16,b[t+44>>1]=a,b[t+46>>1]=a>>>16,a=M[r+36>>1]|M[r+38>>1]<<16,n=M[r+32>>1]|M[r+34>>1]<<16,b[t+32>>1]=n,b[t+34>>1]=n>>>16,b[t+36>>1]=a,b[t+38>>1]=a>>>16,a=M[r+28>>1]|M[r+30>>1]<<16,n=M[r+24>>1]|M[r+26>>1]<<16,b[t+24>>1]=n,b[t+26>>1]=n>>>16,b[t+28>>1]=a,b[t+30>>1]=a>>>16,a=M[r+20>>1]|M[r+22>>1]<<16,n=M[r+16>>1]|M[r+18>>1]<<16,b[t+16>>1]=n,b[t+18>>1]=n>>>16,b[t+20>>1]=a,b[t+22>>1]=a>>>16,a=M[r+12>>1]|M[r+14>>1]<<16,n=M[r+8>>1]|M[r+10>>1]<<16,b[t+8>>1]=n,b[t+10>>1]=n>>>16,b[t+12>>1]=a,b[t+14>>1]=a>>>16,u[s+177904|0]=0,b[t>>1]=32768|M[t>>1],a=t))),t=M[v+2>>1]-p|0}s=1,b[2+((c<<1)+a|0)>>1]=t,e[o+8>>2]=a}if((0|(c=c+1|0))==6)break}I=a}if((0|f)!=(0|m))continue;break A}break}I=r}for(a=0;;){if((r=e[(m=216192+(T<<4)|0)>>2])-5>>>0<2)break e;if((0|r)<=4){if(r=e[m+8>>2],t=M[m+4>>1],a){if((0|r)!=(0|a))break e;e[m+8>>2]=I}else I=r;if(16&(a=M[I>>1]))break e;for(v=32&a?(P(t,6)>>>0)/5|0:t,s=0,r=a=e[m+12>>2],c=0;;){A:{r:if((0|(f=(o=b[2+((t=c<<1)+a|0)>>1])-(t=b[2+(p=t+I|0)>>1])|0))>(0|(o=(0|P(v,(0|P(e[200944+(c<<2)>>2],(0|f)>0?o+(t<<1)|0:(o<<1)+t|0))/3e3|0))/256|0))){if(!s){if(b[a>>1]<0){r=a,t=t+o|0;break r}r=(0|(r=e[44469]+1|0))<=169?r:0,e[44469]=r,s=M[a+20>>1]|M[a+22>>1]<<16,t=16+(r=177888+(r<<6)|0)|0,f=M[a+16>>1]|M[a+18>>1]<<16,b[t>>1]=f,b[t+2>>1]=f>>>16,b[t+4>>1]=s,b[t+6>>1]=s>>>16,t=M[a+4>>1]|M[a+6>>1]<<16,s=M[a>>1]|M[a+2>>1]<<16,b[r>>1]=s,b[r+2>>1]=s>>>16,b[r+4>>1]=t,b[r+6>>1]=t>>>16,t=M[a+12>>1]|M[a+14>>1]<<16,s=M[a+8>>1]|M[a+10>>1]<<16,b[r+8>>1]=s,b[r+10>>1]=s>>>16,b[r+12>>1]=t,b[r+14>>1]=t>>>16,t=M[a+28>>1]|M[a+30>>1]<<16,s=M[a+24>>1]|M[a+26>>1]<<16,b[r+24>>1]=s,b[r+26>>1]=s>>>16,b[r+28>>1]=t,b[r+30>>1]=t>>>16,t=M[a+36>>1]|M[a+38>>1]<<16,s=M[a+32>>1]|M[a+34>>1]<<16,b[r+32>>1]=s,b[r+34>>1]=s>>>16,b[r+36>>1]=t,b[r+38>>1]=t>>>16,t=M[a+44>>1]|M[a+46>>1]<<16,s=M[a+40>>1]|M[a+42>>1]<<16,b[r+40>>1]=s,b[r+42>>1]=s>>>16,b[r+44>>1]=t,b[r+46>>1]=t>>>16,t=M[a+52>>1]|M[a+54>>1]<<16,s=M[a+48>>1]|M[a+50>>1]<<16,b[r+48>>1]=s,b[r+50>>1]=s>>>16,b[r+52>>1]=t,b[r+54>>1]=t>>>16,t=M[a+60>>1]|M[a+62>>1]<<16,s=M[a+56>>1]|M[a+58>>1]<<16,b[r+56>>1]=s,b[r+58>>1]=s>>>16,b[r+60>>1]=t,b[r+62>>1]=t>>>16,u[r+16|0]=0,b[r>>1]=32768|M[r>>1],t=M[p+2>>1]}t=t+o|0}else{if((0|f)>=(0-o|0))break A;s||(b[a>>1]<0?r=a:(r=(0|(r=e[44469]+1|0))<=169?r:0,e[44469]=r,s=M[a+20>>1]|M[a+22>>1]<<16,t=16+(r=177888+(r<<6)|0)|0,f=M[a+16>>1]|M[a+18>>1]<<16,b[t>>1]=f,b[t+2>>1]=f>>>16,b[t+4>>1]=s,b[t+6>>1]=s>>>16,t=M[a+4>>1]|M[a+6>>1]<<16,s=M[a>>1]|M[a+2>>1]<<16,b[r>>1]=s,b[r+2>>1]=s>>>16,b[r+4>>1]=t,b[r+6>>1]=t>>>16,t=M[a+12>>1]|M[a+14>>1]<<16,s=M[a+8>>1]|M[a+10>>1]<<16,b[r+8>>1]=s,b[r+10>>1]=s>>>16,b[r+12>>1]=t,b[r+14>>1]=t>>>16,t=M[a+28>>1]|M[a+30>>1]<<16,s=M[a+24>>1]|M[a+26>>1]<<16,b[r+24>>1]=s,b[r+26>>1]=s>>>16,b[r+28>>1]=t,b[r+30>>1]=t>>>16,t=M[a+36>>1]|M[a+38>>1]<<16,s=M[a+32>>1]|M[a+34>>1]<<16,b[r+32>>1]=s,b[r+34>>1]=s>>>16,b[r+36>>1]=t,b[r+38>>1]=t>>>16,t=M[a+44>>1]|M[a+46>>1]<<16,s=M[a+40>>1]|M[a+42>>1]<<16,b[r+40>>1]=s,b[r+42>>1]=s>>>16,b[r+44>>1]=t,b[r+46>>1]=t>>>16,t=M[a+52>>1]|M[a+54>>1]<<16,s=M[a+48>>1]|M[a+50>>1]<<16,b[r+48>>1]=s,b[r+50>>1]=s>>>16,b[r+52>>1]=t,b[r+54>>1]=t>>>16,t=M[a+60>>1]|M[a+62>>1]<<16,s=M[a+56>>1]|M[a+58>>1]<<16,b[r+56>>1]=s,b[r+58>>1]=s>>>16,b[r+60>>1]=t,b[r+62>>1]=t>>>16,u[r+16|0]=0,b[r>>1]=32768|M[r>>1],t=M[p+2>>1])),t=t-o|0}s=1,b[2+((c<<1)+r|0)>>1]=t,e[m+12>>2]=r}if((0|(c=c+1|0))==6)break}I=r}if((0|A)==(0|(T=(0|(r=T+1|0))<=169?r:0)))break}}e[36454]=A}}function Ia(A,t){var r,a,s=0,n=0,o=0,c=0,f=0,m=0,p=0,I=0,v=0,T=0,O=0,Z=0,ee=0,ce=0,he=0,ye=0,Qe=0,We=0,Ke=0,rA=0,cA=0,MA=0,zA=0;J=r=J-48|0,be(+A),n=0|X(1),s=0|X(0),a=n;e:{A:{r:{if((f=2147483647&n)>>>0<=1074752122){if((1048575&n)==598523)break r;if(f>>>0<=1073928572){if((0|a)>0|(0|a)>=0){c=(A+=-1.5707963267341256)+-6077100506506192e-26,D[t>>3]=c,D[t+8>>3]=A-c-6077100506506192e-26,n=1;break e}c=(A+=1.5707963267341256)+6077100506506192e-26,D[t>>3]=c,D[t+8>>3]=A-c+6077100506506192e-26,n=-1;break e}if((0|a)>0|(0|a)>=0){c=(A+=-3.1415926534682512)+-12154201013012384e-26,D[t>>3]=c,D[t+8>>3]=A-c-12154201013012384e-26,n=2;break e}c=(A+=3.1415926534682512)+12154201013012384e-26,D[t>>3]=c,D[t+8>>3]=A-c+12154201013012384e-26,n=-2;break e}if(f>>>0<=1075594811){if(f>>>0<=1075183036){if((0|f)==1074977148)break r;if((0|a)>0|(0|a)>=0){c=(A+=-4.712388980202377)+-18231301519518578e-26,D[t>>3]=c,D[t+8>>3]=A-c-18231301519518578e-26,n=3;break e}c=(A+=4.712388980202377)+18231301519518578e-26,D[t>>3]=c,D[t+8>>3]=A-c+18231301519518578e-26,n=-3;break e}if((0|f)==1075388923)break r;if((0|a)>0|(0|a)>=0){c=(A+=-6.2831853069365025)+-2430840202602477e-25,D[t>>3]=c,D[t+8>>3]=A-c-2430840202602477e-25,n=4;break e}c=(A+=6.2831853069365025)+2430840202602477e-25,D[t>>3]=c,D[t+8>>3]=A-c+2430840202602477e-25,n=-4;break e}if(f>>>0>1094263290)break A}s=(Qe=(c=A+-1.5707963267341256*(I=.6366197723675814*A+6755399441055744-6755399441055744))-(T=6077100506506192e-26*I))<-.7853981633974483,n=Ne(I)<2147483648?~~I:-2147483648,s?(n=n-1|0,T=6077100506506192e-26*(I+=-1),c=A+-1.5707963267341256*I):Qe>.7853981633974483&&(n=n+1|0,T=6077100506506192e-26*(I+=1),c=A+-1.5707963267341256*I),A=c-T,D[t>>3]=A,be(+A),s=0|X(1),X(0),((o=f>>>20|0)-(s>>>20&2047)|0)<17||(T=c,A=(c-=A=6077100506303966e-26*I)-(T=20222662487959506e-37*I-(T-c-A)),D[t>>3]=A,be(+A),s=0|X(1),X(0),(o-(s>>>20&2047)|0)<50||(T=c,A=(c-=A=20222662487111665e-37*I)-(T=84784276603689e-45*I-(T-c-A)),D[t>>3]=A)),D[t+8>>3]=c-A-T;break e}if(f>>>0>=2146435072)A-=A,D[t>>3]=A,D[t+8>>3]=A,n=0;else{for(R(0,0|s),R(1,1048575&a|1096810496),A=+ae(),n=0,s=1;o=(r+16|0)+(n<<3)|0,c=+(0|(n=Ne(A)<2147483648?~~A:-2147483648)),D[o>>3]=c,A=16777216*(A-c),n=1,o=s,s=0,o;);for(D[r+32>>3]=A,n=2;n=(s=n)-1|0,D[(r+16|0)+(s<<3)>>3]==0;);if(We=r+16|0,o=0,J=m=J-560|0,f=P(ye=(0|(f=((n=(f>>>20|0)-1046|0)-3|0)/24|0))>0?f:0,-24)+n|0,((O=e[28105])+(p=(ce=s+1|0)-1|0)|0)>=0)for(n=O+ce|0,s=ye-p|0;D[(m+320|0)+(o<<3)>>3]=(0|s)<0?0:+e[112432+(s<<2)>>2],s=s+1|0,(0|n)!=(0|(o=o+1|0)););for(ee=f-24|0,n=0,o=(0|O)>0?O:0,Z=(0|ce)<=0;;){if(Z)A=0;else for(v=n+p|0,s=0,A=0;A=D[(s<<3)+We>>3]*D[(m+320|0)+(v-s<<3)>>3]+A,(0|ce)!=(0|(s=s+1|0)););if(D[(n<<3)+m>>3]=A,s=(0|n)==(0|o),n=n+1|0,s)break}MA=47-f|0,Ke=48-f|0,zA=f-25|0,n=O;A:{for(;;){if(A=D[(n<<3)+m>>3],s=0,o=n,!(v=(0|n)<=0))for(;Z=(m+480|0)+(s<<2)|0,p=Ne(c=5960464477539063e-23*A)<2147483648?~~c:-2147483648,p=Ne(A=-16777216*(c=+(0|p))+A)<2147483648?~~A:-2147483648,e[Z>>2]=p,A=D[((o=o-1|0)<<3)+m>>3]+c,(0|n)!=(0|(s=s+1|0)););A=Ws(A,ee),A+=-8*AA(.125*A),A-=+(0|(Z=Ne(A)<2147483648?~~A:-2147483648));r:{s:{n:{if(rA=(0|ee)<=0){if(ee)break n;p=e[476+((n<<2)+m|0)>>2]>>23}else he=o=(n<<2)+m|0,o=(p=e[o+476>>2])-((s=p>>Ke)<>2]=o,Z=s+Z|0,p=o>>MA;if((0|p)<=0)break r;break s}if(p=2,!(A>=.5)){p=0;break r}}if(s=0,o=0,!v)for(;cA=e[(he=(m+480|0)+(s<<2)|0)>>2],v=16777215,o||(v=16777216,cA)?(e[he>>2]=v-cA,o=1):o=0,(0|n)!=(0|(s=s+1|0)););s:if(!rA){s=8388607;n:switch(0|zA){case 1:s=4194303;break;case 0:break n;default:break s}e[476+(v=(n<<2)+m|0)>>2]=e[v+476>>2]&s}Z=Z+1|0,(0|p)==2&&(A=1-A,p=2,o&&(A-=Ws(1,ee)))}if(A!=0)break;if(o=0,!((0|O)>=(0|(s=n)))){for(;o=e[(m+480|0)+((s=s-1|0)<<2)>>2]|o,(0|s)>(0|O););if(o){for(f=ee;f=f-24|0,!e[(m+480|0)+((n=n-1|0)<<2)>>2];);break A}}for(s=1;o=s,s=s+1|0,!e[(m+480|0)+(O-o<<2)>>2];);for(o=n+o|0;;){if(p=n+ce|0,n=n+1|0,D[(m+320|0)+(p<<3)>>3]=e[112432+(ye+n<<2)>>2],s=0,A=0,(0|ce)>0)for(;A=D[(s<<3)+We>>3]*D[(m+320|0)+(p-s<<3)>>3]+A,(0|ce)!=(0|(s=s+1|0)););if(D[(n<<3)+m>>3]=A,!((0|n)<(0|o)))break}n=o}(A=Ws(A,24-f|0))>=16777216?(ee=(m+480|0)+(n<<2)|0,s=Ne(c=5960464477539063e-23*A)<2147483648?~~c:-2147483648,o=Ne(A=-16777216*+(0|s)+A)<2147483648?~~A:-2147483648,e[ee>>2]=o,n=n+1|0):(s=Ne(A)<2147483648?~~A:-2147483648,f=ee),e[(m+480|0)+(n<<2)>>2]=s}if(A=Ws(1,f),!((0|n)<0)){for(s=n;o=s,D[(s<<3)+m>>3]=A*+e[(m+480|0)+(s<<2)>>2],s=s-1|0,A*=5960464477539063e-23,o;);if(v=0,!((0|n)<0))for(f=(0|O)>0?O:0,o=n;;){for(ee=f>>>0>>0?f:v,O=n-o|0,s=0,A=0;A=D[115200+(s<<3)>>3]*D[(s+o<<3)+m>>3]+A,ce=(0|s)!=(0|ee),s=s+1|0,ce;);if(D[(m+160|0)+(O<<3)>>3]=A,o=o-1|0,s=(0|n)!=(0|v),v=v+1|0,!s)break}}if(A=0,(0|n)>=0)for(s=n;o=s,s=s-1|0,A+=D[(m+160|0)+(o<<3)>>3],o;);if(D[r>>3]=p?-A:A,A=D[m+160>>3]-A,s=1,(0|n)>0)for(;A+=D[(m+160|0)+(s<<3)>>3],o=(0|s)!=(0|n),s=s+1|0,o;);D[r+8>>3]=p?-A:A,J=m+560|0,n=7&Z,A=D[r>>3],(0|a)<0?(D[t>>3]=-A,D[t+8>>3]=-D[r+8>>3],n=0-n|0):(D[t>>3]=A,D[t+8>>3]=D[r+8>>3])}}return J=r+48|0,n}function ZA(){var A=0,t=0,r=0,a=0,s=0,n=0,o=0,c=0,f=0,m=0,p=0,I=0,v=0,T=0,O=0,Z=0,ee=0,ce=0,he=0,ye=0,Qe=0,We=0,Ke=0,rA=0,cA=0,MA=0,zA=0,et=0,at=0,dt=0,Ft=0,Zt=0,er=0,pr=0,hr=0,Er=0,vr=0,Fr=0,Wr=0,na=0,Xr=0,ia=0,Ba=0,es=0,is=0,os=0;e[55925]=0,A=e[56772],e[56772]=A+1,r=e[55961],v=e[55922],O=Ln(39.89822670059037*(t=+(0|A))),m=Ln(22.30530784048753*t),t=+(0|v)/50*(+(0|r)/100)*(Ln(14.765485471872028*t)+(O+m))*10,A=Ne(t)<2147483648?~~t:-2147483648,e[56607]=A+e[56607];e:if(!(e[55923]<=0)){for(;;){for(r=It(e[33209],0,1103515245,0),A=$,A=Ri(r=r+12345|0,A=r>>>0<12345?A+1|0:A),e[33209]=A,A=8191+((A>>>0)%16383|0)|0,e[55929]=A,dt=+(0|A),t=.75*D[28387]+dt,D[28387]=t,Ft=(0|(A=e[55924]))>(0|(Ke=e[55928]))?.5*t:t,hr=(s=.033*+e[56652])>0?1-s:1,r=e[56650]<<2,MA=(0|(cA=e[55921]))==1&&(0|r)>263?263:r,Er=111136+((Zt=e[56651])<<1)|0,vr=111136+((zA=e[56658])<<1)|0,Fr=(0|zA)>0,er=e[55918],Wr=P(er,40),na=e[55925],Xr=D[27967],pr=e[56607],t=D[27979],ee=D[27969],c=D[27970],et=e[56780],ye=e[56654],I=D[27976],T=D[27972],ce=D[28388],he=D[28389],v=e[55927],a=D[28383],p=e[55926],Qe=e[55956],ia=D[27975],m=D[28131],n=D[28130],o=D[28123],Z=D[28121],f=D[28122],rA=D[28120],We=D[28119],Ba=D[28129],es=D[28128],is=D[28127],os=Ga(0*D[27968]),at=0;;){O=n;A:{r:switch(cA-1|0){case 0:ce=0,n=Z*o,o=f,f=a=n+(We*(ce=(0|A)<=2?D[111312+(A<<3)>>3]:ce)+rA*o);break A;case 1:if(a=0,(0|A)>=(0|v)){he=0;break A}n=D[27965]-D[27966],D[27965]=n,a=.028*(he=n+he);break A;case 2:if(!p){Qe=100,a=0;break A}Qe=100,r=Ne(n=+(0|A)/+(0|p)*100)<2147483648?~~n:-2147483648,a=+b[110928+((0|r)%100<<1)>>1],a=t*((+b[110928+((r+1|0)%100<<1)>>1]-a)*(n-+(0|r))+a);break A;case 3:break r;default:break A}p?(Qe=256,r=Ne(n=+(0|A)/+(0|p)*256)<2147483648?~~n:-2147483648,a=+b[111344+((0|r)%256<<1)>>1],a=t*((+b[111344+((r+1|0)%256<<1)>>1]-a)*(n-+(0|r))+a)):(Qe=256,a=0)}if((0|A)>=(0|p)&&((0|pr)>0?(A=(0|Wr)/(0|pr)|0,I=0,T=0,T=zA>>>0<=87?.001*+b[vr>>1]:T,I=Zt>>>0<=87?.001*+b[Er>>1]*.1:I,Ke=A>>Fr,v=(0|(r=(p=(A-1|0)<=(0|MA))?A-2|0:MA))<=40?40:r,n=+b[111776+((v=p||(0|r)<40?v:MA)<<1)>>1],D[27966]=n,Z=n,n=+(0|v),D[27965]=Z*n*.333,ye=(0|(r=A-v|0))>(0|ye)?ye:r,et=0-(r=(0|et)<0?0-ye|0:ye)|0,We=(n*=.00833)*n,We*=1-(rA=(Z=(n=Pt(Xr*+((0|er)/(0|v)|0)))*os)+Z)-(Z=n*-n),A=(0|(p=A+r|0))!=4):(e[55930]=0,e[55931]=0,e[55932]=0,e[55933]=0,Ke=4,I=0,T=0,p=4,A=0),c=(A|=!na)?s:c,ee=A?hr:ee,A=0),A=A+1|0,n=a=Ba*m+(is*a+es*O),m=O,(0|(at=at+1|0))==4)break}if(e[55926]=p,e[55956]=Qe,e[55924]=A,D[28383]=a,e[55927]=v,D[28389]=he,D[28388]=ce,D[27972]=T,D[27976]=I,e[55928]=Ke,e[56654]=ye,e[56780]=et,D[27970]=c,D[27969]=ee,D[28122]=f,D[28120]=rA,D[28119]=We,D[28123]=o,D[28121]=Z,D[28131]=m,D[28130]=a,(0|cA)==5&&(a=6e3*((t=+(0|A)/+(0|p))+t+-1),D[28383]=a),t=a*ee+D[28384]*c,D[28383]=t,D[28384]=t,(0|A)<(0|v)&&(t=I*dt+t,D[28383]=t),c=Ft*D[27974],O=t*D[27973]+c,m=0,e[55916]!=2&&(m=D[27987],f=D[27986],D[27987]=f,t=c+t*T,D[27986]=t,c=D[28059],o=D[28058],D[28059]=o,t=c*D[28057]+(D[28055]*(m*D[27985]+(D[27983]*t+f*D[27984]))+o*D[28056]),D[28058]=t,m=D[28049],c=D[28051],f=D[28048],o=D[28047],s=D[28050],D[28051]=s,t=m*c+(o*t+f*s),D[28050]=t,m=D[28043],c=D[28041],f=D[28040],o=D[28039],s=D[28042],D[28043]=s,t=c*m+(o*t+f*s),D[28042]=t,m=D[28035],c=D[28033],f=D[28032],o=D[28031],s=D[28034],D[28035]=s,t=c*m+(o*t+f*s),D[28034]=t,m=D[28027],c=D[28025],f=D[28024],o=D[28023],s=D[28026],D[28027]=s,t=c*m+(o*t+f*s),D[28026]=t,m=D[28019],c=D[28017],f=D[28016],o=D[28015],s=D[28018],D[28019]=s,t=c*m+(o*t+f*s),D[28018]=t,m=D[28011],c=D[28009],f=D[28008],o=D[28007],s=D[28010],D[28011]=s,t=c*m+(o*t+f*s),D[28010]=t,m=D[28003],c=D[28001],f=D[28e3],o=D[27999],s=D[28002],D[28003]=s,t=c*m+(o*t+f*s),D[28002]=t,m=D[27995],c=D[27993],f=D[27992],o=D[27991],s=D[27994],D[27995]=s,m=c*m+(o*t+f*s),D[27994]=m),t=D[28385],D[28385]=O,c=D[28075],f=D[28074],D[28075]=f,o=D[28067],s=D[28066],D[28067]=s,c=c*D[28073]+(D[28071]*O+f*D[28072]),D[28074]=c,f=o*D[28065]+(D[28063]*O+s*D[28064]),D[28066]=f,o=D[28081],s=D[28083],n=D[28079],a=D[28080],I=D[28082],D[28083]=I,O=o*s+(n*(t=ia*Ft+O-t)+a*I),D[28082]=O,o=D[28091],s=D[28089],n=D[28087],a=D[28088],I=D[28090],D[28091]=I,o=s*o+(n*t+a*I),D[28090]=o,s=D[28099],n=D[28097],a=D[28095],I=D[28096],T=D[28098],D[28099]=T,s=n*s+(a*t+I*T),D[28098]=s,n=D[28107],a=D[28105],I=D[28103],T=D[28104],ee=D[28106],D[28107]=ee,n=a*n+(I*t+T*ee),D[28106]=n,a=D[28115],I=D[28113],T=D[28111],ee=D[28112],ce=D[28114],D[28115]=ce,a=I*a+(T*t+ee*ce),D[28114]=a,I=D[28139],T=D[28137],ee=D[28136],ce=D[28135],he=D[27971],Z=D[28138],D[28139]=Z,t=T*I+(ce*(t*he-(a-(n-(s-(o-(O-(m+c+f)))))))+ee*Z),D[28138]=t,t=D[27977]*(t*+e[50779]),a=+(0|(A=Ne(t)<2147483648?~~t:-2147483648)),(0|(A=e[50776]))>1],e[50755])>>8,A=Ne(a)<2147483648?~~a:-2147483648,(0|r)>=5500&&(e[51293]=0),r=e[51290],e[51290]=r+1,A=(0|(A=(0|(A=A+p|0))<=-32768?-32768:A))>=32767?32767:A,u[0|r]=A,r=e[51290],e[51290]=r+1,u[0|r]=A>>>8,p=(r=e[51292])+1|0,e[51292]=p,b[205184+(r<<1)>>1]=A,(0|p)>=5500&&(e[51292]=0),p=1,e[56606]=e[56606]+1,ge[54046]>>0)break e;if(A=e[55925]+1|0,e[55925]=A,!((0|A)>2]=t,m=c+55|0,f=c+56|0;e:{A:{r:{s:{n:for(;;){if(v=t,(2147483647^ce)<(0|p))break s;ce=p+ce|0;c:{o:{g:{if(I=l[0|(p=v)])for(;;){l:{i:if(t=255&I){if((0|t)!=37)break l;for(I=p;;){if(l[I+1|0]!=37){t=I;break i}if(p=p+1|0,O=l[I+2|0],I=t=I+2|0,(0|O)!=37)break}}else t=p;if((0|(p=p-v|0))>(0|(cA=2147483647^ce)))break s;if(A&&Zr(A,v,p),p)continue n;e[c+76>>2]=t,p=t+1|0,he=-1,l[t+2|0]!=36|u[t+1|0]-48>>>0>=10||(he=u[t+1|0]-48|0,We=1,p=t+3|0),e[c+76>>2]=p,Z=0;i:if((t=(I=u[0|p])-32|0)>>>0>31)ee=p;else if(ee=p,75913&(t=1<>2]=ee,Z|=t,(t=(I=u[p+1|0])-32|0)>>>0>=32)break i;if(p=ee,!(75913&(t=1<>2]}else{if(l[ee+2|0]!=36|u[ee+1|0]-48>>>0>=10){if(We)break g;if(I=ee+1|0,!A){e[c+76>>2]=I,We=0,ye=0;break i}t=e[r>>2],e[r>>2]=t+4,We=0,t=e[t>>2]}else e[((u[ee+1|0]<<2)+s|0)-192>>2]=10,I=ee+3|0,We=1,t=e[((u[ee+1|0]<<3)+a|0)-384>>2];if(e[c+76>>2]=I,ye=t,(0|t)>=0)break i;ye=0-ye|0,Z|=8192}if(p=0,T=-1,l[0|I]==46)if(l[I+1|0]!=42)e[c+76>>2]=I+1,T=m0(c+76|0),t=e[c+76>>2],rA=1;else{if(l[I+3|0]!=36|u[I+2|0]-48>>>0>=10){if(We)break g;t=I+2|0,T=0,A&&(I=e[r>>2],e[r>>2]=I+4,T=e[I>>2])}else e[((u[I+2|0]<<2)+s|0)-192>>2]=10,t=I+4|0,T=e[((u[I+2|0]<<3)+a|0)-384>>2];e[c+76>>2]=t,rA=~T>>>31|0}else t=I,rA=0;for(;;){if(Qe=p,ee=28,O=t,(p=u[0|t])-123>>>0<4294967238)break r;if(t=O+1|0,!((p=l[123983+(p+P(Qe,58)|0)|0])-1>>>0<8))break}e[c+76>>2]=t;i:{p:{if((0|p)!=27){if(!p)break r;if((0|he)>=0){e[(he<<2)+s>>2]=p,p=e[4+(I=(he<<3)+a|0)>>2],e[c+64>>2]=e[I>>2],e[c+68>>2]=p;break p}if(!A)break c;Vt(c- -64|0,p,r,o);break i}if((0|he)>=0)break r}if(p=0,!A)continue n}I=-65537&Z,Z=8192&Z?I:Z,he=0,Ke=84065,ee=f;i:{p:{C:{m:{b:{h:{v:{w:{E:{L:{W:{V:{M:{B:{D:{switch(p=u[0|O],(p=Qe&&(15&p)==3?-33&p:p)-88|0){case 11:break i;case 9:case 13:case 14:case 15:break p;case 27:break v;case 12:case 17:break L;case 23:break W;case 0:case 32:break V;case 24:break M;case 22:break B;case 29:break D;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 16:case 18:case 19:case 20:case 21:case 25:case 26:case 28:case 30:case 31:break o}switch(p-65|0){case 0:case 4:case 5:case 6:break p;case 2:break b;case 1:case 3:break o}if((0|p)==83)break h;break o}I=e[c+64>>2],O=e[c+68>>2],Ke=84065;break E}p=0;B:switch(255&Qe){case 0:case 1:case 6:e[e[c+64>>2]>>2]=ce;continue n;case 2:v=e[c+64>>2],e[v>>2]=ce,e[v+4>>2]=ce>>31;continue n;case 3:b[e[c+64>>2]>>1]=ce;continue n;case 4:u[e[c+64>>2]]=ce;continue n;case 7:break B;default:continue n}v=e[c+64>>2],e[v>>2]=ce,e[v+4>>2]=ce>>31;continue n}T=T>>>0<=8?8:T,Z|=8,p=120}if(v=f,MA=32&p,(I=e[c+64>>2])|(O=e[c+68>>2]))for(;u[0|(v=v-1|0)]=MA|l[124512+(15&I)|0],zA=!O&I>>>0>15|!!(0|O),Qe=O,O=O>>>4|0,I=(15&Qe)<<28|I>>>4,zA;);if(!(e[c+64>>2]|e[c+68>>2])|!(8&Z))break w;Ke=84065+(p>>>4|0)|0,he=2;break w}if(p=f,O=v=e[c+68>>2],v|(I=e[c+64>>2]))for(;u[0|(p=p-1|0)]=7&I|48,Qe=!O&I>>>0>7|!!(0|O),O=(v=O)>>>3|0,I=(7&v)<<29|I>>>3,Qe;);if(v=p,!(8&Z))break w;T=(0|(p=f-v|0))<(0|T)?T:p+1|0;break w}I=e[c+64>>2],O=p=e[c+68>>2],(0|p)<0?(O=v=0-(O+!!(0|I)|0)|0,I=0-I|0,e[c+64>>2]=I,e[c+68>>2]=v,he=1,Ke=84065):2048&Z?(he=1,Ke=84066):Ke=(he=1&Z)?84067:84065}v=fs(I,O,f)}if((0|T)<0&&rA)break s;if(Z=rA?-65537&Z:Z,!(T|!!((p=e[c+64>>2])|(I=e[c+68>>2])))){v=f,T=0;break o}T=(0|(p=!(p|I)+(f-v|0)|0))<(0|T)?T:p;break o}if(ee=(p=(p=rn(v=(p=e[c+64>>2])||84639,0,O=T>>>0>=2147483647?2147483647:T))?p-v|0:O)+v|0,(0|T)>=0){Z=I,T=p;break o}if(Z=I,T=p,l[0|ee])break s;break o}if(T){I=e[c+64>>2];break m}p=0,Aa(A,32,ye,0,Z);break C}e[c+12>>2]=0,e[c+8>>2]=e[c+64>>2],I=c+8|0,e[c+64>>2]=I,T=-1}p=0;m:{for(;;){if(!(v=e[I>>2]))break m;if(!((v=(0|(O=i0(c+4|0,v)))<0)|O>>>0>T-p>>>0)){if(I=I+4|0,T>>>0>(p=p+O|0)>>>0)continue;break m}break}if(v)break A}if(ee=61,(0|p)<0)break r;if(Aa(A,32,ye,p,Z),p)for(ee=0,I=e[c+64>>2];;){if(!(v=e[I>>2])||(ee=(v=i0(c+4|0,v))+ee|0)>>>0>p>>>0)break C;if(Zr(A,c+4|0,v),I=I+4|0,!(p>>>0>ee>>>0))break}else p=0}Aa(A,32,ye,p,8192^Z),p=(0|p)<(0|ye)?ye:p;continue n}if((0|T)<0&&rA)break s;if(ee=61,(0|(p=0|ct[0|n](A,D[c+64>>3],ye,T,Z,p)))>=0)continue n;break r}u[c+55|0]=e[c+64>>2],T=1,v=m,Z=I;break o}I=l[p+1|0],p=p+1|0}if(A)break e;if(!We)break c;for(p=1;;){if(A=e[(p<<2)+s>>2]){if(Vt((p<<3)+a|0,A,r,o),ce=1,(0|(p=p+1|0))!=10)continue;break e}break}if(ce=1,p>>>0>=10)break e;for(;;){if(e[(p<<2)+s>>2])break g;if((0|(p=p+1|0))==10)break}break e}ee=28;break r}if((0|(I=(0|T)>(0|(O=ee-v|0))?T:O))>(2147483647^he))break s;if(ee=61,(0|cA)<(0|(p=(0|(T=I+he|0))<(0|ye)?ye:T)))break r;Aa(A,32,p,T,Z),Zr(A,Ke,he),Aa(A,48,p,T,65536^Z),Aa(A,48,I,O,0),Zr(A,v,O),Aa(A,32,p,T,8192^Z);continue}break}ce=0;break e}ee=61}e[56798]=ee}ce=-1}return J=c+80|0,ce}function PA(A,t,r,a,s,n,o,c,f){var m,p,I,v=0,T=0,O=0,Z=0,ee=0,ce=0,he=0,ye=0,Qe=0,We=0,Ke=0,rA=0,cA=0,MA=0,zA=0,et=0,at=0,dt=0,Ft=0,Zt=0,er=0,pr=0,hr=0,Er=0,vr=0,Fr=0,Wr=0,na=0,Xr=0,ia=0,Ba=0;J=m=J-96|0,Ke=65535&f,ee=-2147483648&(s^f),et=he=65535&s;e:{if(!((p=f>>>16&32767)-32767>>>0>4294934529&(I=s>>>16&32767)-32767>>>0>=4294934530)){if(v=a,!(!a&(0|(ye=Qe=2147483647&s))==2147418112?!(t|r):ye>>>0<2147418112)){O=a,ee=32768|s;break e}if(!(!(s=c)&(0|(ce=Qe=2147483647&f))==2147418112?!(n|o):ce>>>0<2147418112)){O=c,ee=32768|f,t=n,r=o;break e}if(!(t|v|2147418112^ye|r)){if(!(s|n|o|ce)){ee=2147450880,t=0,r=0;break e}ee|=2147418112,t=0,r=0;break e}if(!(s|n|2147418112^ce|o)){if(s=t|v,a=r|ye,t=0,r=0,!(a|s)){ee=2147450880;break e}ee|=2147418112;break e}if(!(t|v|r|ye)){t=0,r=0;break e}if(!(s|n|o|ce)){t=0,r=0;break e}(0|ye)==65535|ye>>>0<65535&&(Qe=(v=!(a|he))<<6,s=Ye(f=v?t:a)+32|0,ea(m+80|0,t,r,a,he,(f=Qe+((0|(f=Ye(v?r:he)))==32?s:f)|0)-15|0),We=16-f|0,a=e[m+88>>2],et=e[m+92>>2],r=e[m+84>>2],t=e[m+80>>2]),ce>>>0>65535||(he=(f=!(c|Ke))<<6,v=Ye(s=f?n:c)+32|0,ea(m- -64|0,n,o,c,Ke,(s=he+((0|(s=Ye(f?o:Ke)))==32?v:s)|0)-15|0),We=16+(We-s|0)|0,c=e[m+72>>2],Ke=e[m+76>>2],n=e[m+64>>2],o=e[m+68>>2])}if(s=n,n=o<<15|n>>>17,Fr=r,Qe=It(rA=-32768&(f=s<<15),s=0,r,0),zA=s=$,Wr=n,ye=t,t=It(n,0,t,0),n=$+s|0,r=t>>>0>(f=t+Qe|0)>>>0?n+1|0:n,v=0,t=It(ye,T,rA,T),s=(n=f)+$|0,he=s=t>>>0>(ce=v+t|0)>>>0?s+1|0:s,na=(0|n)==(0|s)&v>>>0>ce>>>0|s>>>0>>0,Xr=a,cA=It(rA,T,a,0),ia=$,t=It(Fr,T,Wr,T),v=$+ia|0,v=t>>>0>(MA=t+cA|0)>>>0?v+1|0:v,t=Ke<<15|c>>>17,a=It(at=c<<15|o>>>17,0,ye,T),n=$+v|0,Ft=n=a>>>0>(dt=a+MA|0)>>>0?n+1|0:n,n=(a=(0|r)==(0|zA)&f>>>0>>0|r>>>0>>0)+n|0,Ke=n=r>>>0>(Zt=r+dt|0)>>>0?n+1|0:n,o=Zt,r=n,et=It(rA,T,er=65536|et,Z),Ba=$,a=It(Xr,O,Wr,T),s=$+Ba|0,f=s=a>>>0>(pr=a+et|0)>>>0?s+1|0:s,t=It(hr=-2147483648|t,0,ye,T),n=$+s|0,n=t>>>0>(Er=t+pr|0)>>>0?n+1|0:n,t=It(at,O,Fr,T),vr=n,n=n+$|0,Qe=t>>>0>(zA=t+Er|0)>>>0?n+1|0:n,s=r+zA|0,n=rA=(t=0)>>>0>(ye=t+o|0)>>>0?s+1|0:s,r=(t=ye+na|0)>>>0>>0?n+1|0:n,We=((I+p|0)+We|0)-16383|0,a=It(hr,O,Fr,T),c=$,s=It(er,O,Wr,T),n=$+c|0,Z=(0|c)==(0|(n=s>>>0>(o=s+a|0)>>>0?n+1|0:n))&a>>>0>o>>>0|n>>>0>>0,c=n,s=It(at,O,Xr,O),n=$+n|0,s=n=(a=s+o|0)>>>0>>0?n+1|0:n,o=(0|n)==(0|c)&a>>>0>>0|n>>>0>>0,n=0,n=(c=o)>>>0>(o=o+Z|0)>>>0?1:n,c=o,o=It(hr,O,er,O),n=$+n|0,na=c=c+o|0,o=o>>>0>c>>>0?n+1|0:n,c=a,T=s,s=(0|v)==(0|ia)&cA>>>0>MA>>>0|v>>>0>>0,n=0,s=((Z=v=(0|v)==(0|Ft)&MA>>>0>dt>>>0|v>>>0>Ft>>>0)>>>0>(v=s+v|0)>>>0?1:n)+T|0,n=o,Z=s=(a=a+v|0)>>>0>>0?s+1|0:s,cA=a,s=a=(0|s)==(0|T)&a>>>0>>0|s>>>0>>0,v=a=a+na|0,o=n=s>>>0>a>>>0?n+1|0:n,s=It(at,O,er,O),T=$,a=It(hr,O,Xr,O),n=$+T|0,a=n=a>>>0>(c=a+s|0)>>>0?n+1|0:n,s=(n=(0|T)==(0|n)&s>>>0>c>>>0|n>>>0>>0)+o|0,o=s=a>>>0>(MA=a+v|0)>>>0?s+1|0:s,n=c+Z|0,s=n=(a=(s=0)+cA|0)>>>0>>0?n+1|0:n,c=(0|Z)==(0|n)&a>>>0>>0|n>>>0>>0,n=o,n=(o=c+(T=MA)|0)>>>0>>0?n+1|0:n,cA=o,c=a,v=s,s=(a=(a=(a=(0|f)==(0|Ba)&et>>>0>pr>>>0|f>>>0>>0)+(f=(0|f)==(0|vr)&pr>>>0>Er>>>0|f>>>0>vr>>>0)|0)+(s=(0|Qe)==(0|vr)&zA>>>0>>0|Qe>>>0>>0)|0)+v|0,n=o=n,v=o=(c=(0|(s=(a=f=(Z=Qe)+c|0)>>>0>>0?s+1|0:s))==(0|v)&c>>>0>a>>>0|s>>>0>>0)+cA|0,o=n=c>>>0>o>>>0?n+1|0:n,c=a,n=0,f=s,s=s+((T=Z=(0|Ke)==(0|rA)&ye>>>0>>0|Ke>>>0>rA>>>0)>>>0>(Z=Z+((0|Ke)==(0|Ft)&dt>>>0>Zt>>>0|Ke>>>0>>0)|0)>>>0?1:n)|0,n=o,f=n=(o=c=(0|(s=(a=a+Z|0)>>>0>>0?s+1|0:s))==(0|f)&a>>>0>>0|s>>>0>>0)>>>0>(c=c+v|0)>>>0?n+1|0:n,65536&n?We=We+1|0:(v=he>>>31|0,n=f<<1|c>>>31,c=c<<1|s>>>31,f=n,n=s<<1|a>>>31,a=a<<1|r>>>31,s=n,n=he<<1|ce>>>31,ce<<=1,he=n,n=r<<1|t>>>31,t=t<<1|v,r=n|(o=0)),(0|We)>=32767)ee|=2147418112,t=0,r=0;else{A:{if((0|We)<=0){if((o=1-We|0)>>>0<=127){ea(m+48|0,ce,he,t,r,n=We+127|0),ea(m+32|0,a,s,c,f,n),Ya(m+16|0,ce,he,t,r,o),Ya(m,a,s,c,f,o),ce=e[m+32>>2]|e[m+16>>2]|!!(e[m+48>>2]|e[m+56>>2]|e[m+52>>2]|e[m+60>>2]),he=e[m+36>>2]|e[m+20>>2],t=e[m+40>>2]|e[m+24>>2],r=e[m+44>>2]|e[m+28>>2],a=e[m>>2],s=e[m+4>>2],o=e[m+8>>2],n=e[m+12>>2];break A}t=0,r=0;break e}o=c,n=65535&f|We<<16}O|=o,ee|=n,(!t&(0|r)==-2147483648?!(ce|he):(0|r)>0|(0|r)>=0)?t|ce|-2147483648^r|he?(t=a,r=s):(v=ee,ee=(a=(0|(n=s))==(0|(r=(r=t=1&a)>>>0>(t=t+a|0)>>>0?n+1|0:n))&t>>>0>>0|r>>>0>>0)>>>0>(O=a+O|0)>>>0?v+1|0:v):(a=(0|s)==(0|(r=(t=a+1|0)?s:s+1|0))&t>>>0>>0|r>>>0>>0,s=ee,ee=(O=a+O|0)>>>0>>0?s+1|0:s)}}e[A>>2]=t,e[A+4>>2]=r,e[A+8>>2]=O,e[A+12>>2]=ee,J=m+96|0}function qt(A,t,r,a,s,n,o){var c,f=0,m=0,p=0,I=0,v=0,T=0,O=0,Z=0,ee=0,ce=0,he=0,ye=0,Qe=0,We=0,Ke=0;J=c=J-480|0,e[c+476>>2]=0,e[c+456>>2]=0,e[c+460>>2]=0,e[c+448>>2]=0,e[c+452>>2]=0,e[c+440>>2]=0,e[c+444>>2]=0,e[c+432>>2]=0,e[c+436>>2]=0,f=0;e:if(e[A+684>>2]){for(O=o?e[o>>2]:O;p=l[t+f|0],u[(c+112|0)+f|0]=p,m=f+1|0,p&&(p=f>>>0<158,f=m,p););if(u[m+(c+112|0)|0]=0,!((ce=268435456&n)|!(8&e[47197]))){m=0;A:if(223&(p=l[0|t]))for(f=0;;){if(u[(c+272|0)+f|0]=p,!(223&(p=l[(m=f+1|0)+t|0])))break A;if(I=f>>>0<118,f=m,!I)break}u[(f=c+272|0)+m|0]=0,e[c+48>>2]=f,fr(e[47195],(0|n)>=0?87019:86877,c+48|0)}e[c+464>>2]=t,e[A+8208>>2]=0,e[A+8212>>2]=0,s&&(u[0|s]=0);A:{r:if(223&(f=l[0|t]))for(he=536870912&n,ye=4096&n,Qe=c+105|0,m=t,p=0;;){I=Gt(c+476|0,m),ee=!!(0|rr(e[c+476>>2]))+ee|0,T=l[7668+(f=(v=255&f)+A|0)|0];s:if(!((Z=e[c+476>>2])-48>>>0<10|Z-2406>>>0<10)|(ee?l[A+170|0]:0)){n:if((p=e[c+476>>2]-e[A+600>>2]|0)>>>0>127||!(p=e[6192+((p<<2)+A|0)>>2])){if(T){for(Z=5168+((v<<2)+A|0)|0,T=T+(f=l[f+7924|0])|0,We=v|l[m+1|0]<<8,p=0;e[7184+(m=(f<<2)+A|0)>>2]==(0|We)&&(e[c+472>>2]=e[c+464>>2],Mt(A,c+472|0,t,2,e[m+6704>>2],c+432|0,n,O),(0|(m=e[c+432>>2]))>0&&(m=m+35|0,e[c+432>>2]=m),p=1,Mt(A,c+464|0,t,1,e[Z>>2],c+448|0,n,O),e[c+448>>2]>(0|m)||(m=e[c+444>>2],e[c+456>>2]=e[c+440>>2],e[c+460>>2]=m,m=e[c+436>>2],e[c+448>>2]=e[c+432>>2],e[c+452>>2]=m,e[c+464>>2]=e[c+472>>2])),T>>>0>(f=f+1|0)>>>0;);if(p)break n}c:{o:{if(!(f=e[5168+((v<<2)+A|0)>>2])){if(Mt(A,c+464|0,t,0,e[A+5168>>2],c+448|0,n,O),e[c+448>>2])break c;if(16&l[188808])break o;if(p=Gt(c+468|0,v=(m=e[c+464>>2])-1|0),f=e[c+468>>2],!(e[A+600>>2]<=0|(0|f)>577)){if(En(f)){e[c+32>>2]=21,DA(r,87049,c+32|0);break A}f=e[c+468>>2]}if((0|f)==57384&&((0|(T=e[A+92>>2]))<=e[47352]||(e[47352]=T)),cn(f)&&((0|(f=e[A+72>>2]))<=e[47352]||(e[47352]=f)),!((T=(f=e[c+468>>2])-192|0)>>>0>413)&&(T=l[T+94240|0])&&(p=p-1|0,!(l[m-2|0]==32&l[p+m|0]==32))){for(e[c+472>>2]=v,u[0|v]=T;I=l[(f=m)+p|0],u[0|f]=I,m=f+1|0,(0|I)!=32;);if((0|p)>0&&jA(f,32,p),e[A+24>>2]&&!((0|Pi(94222,e[c+468>>2]))<=0)){e[c+464>>2]=v,p=0;break s}p=0,u[0|r]=0,e[c+464>>2]=t,e[A+8208>>2]=0,e[A+8212>>2]=0;break s}if(!(f=Hs(f))||(0|(m=e[f+4>>2]))==e[A+600>>2])break o;if((0|m)==e[A+188>>2]){e[c+4>>2]=Mi(c- -64|0,e[A+192>>2]),e[c>>2]=21,DA(r,87218,c);break A}if(!(4&l[f+16|0]))break o;e[c+20>>2]=Mi(c- -64|0,e[f+12>>2]),e[c+16>>2]=21,DA(r,87218,c+16|0);break A}if(Mt(A,c+464|0,t,1,f,c+448|0,n,O),e[c+448>>2])break c}o:if(!((f=e[c+476>>2])-768>>>0<112)){if(rr(f)){if(u[(I+e[c+464>>2]|0)-1|0]<33&(0|ee)<=1)break o;if(u[0|r]=0,!o)break r;e[o>>2]=4096|e[o>>2];break r}jt(A,e[c+476>>2],-1,c+272|0,0),l[c+272|0]&&(e[c+448>>2]=1,e[c+452>>2]=c+272)}e[c+464>>2]=(I+e[c+464>>2]|0)-1;break n}e[A+288>>2]=0}else Mt(A,c+464|0,t,I,p,c+448|0,n,O);if(m=(f=e[c+452>>2])||86135,e[c+452>>2]=m,p=0,!(e[c+448>>2]<=0)){if(f=1|e[c+456>>2],(0|n)<0)break e;if(!(l[0|m]!=21|ye)){qA(r,m);break A}if(!(!(8&e[47197])|ce))n:if(f=e[47195],(0|(I=e[f+76>>2]))>=0&(!I|e[56823]!=(-1073741825&I)))v=e[(I=f+76|0)>>2],e[I>>2]=v||1073741823,e[f+80>>2]==10||(0|(v=e[f+20>>2]))==e[f+16>>2]?f0(f):(e[f+20>>2]=v+1,u[0|v]=10),e[I>>2]=0;else{if(e[f+80>>2]!=10&&(0|(I=e[f+20>>2]))!=e[f+16>>2]){e[f+20>>2]=I+1,u[0|I]=10;break n}f0(f)}if(I=-32769&(f=e[c+456>>2]),e[c+456>>2]=I,!(!s|!I|(1024&f?he:0))){A=e[c+464>>2],qA(s,m),f=I|(Ke=(r=A)-wt(t,A=c+112|0,HA(A))|0,(1151&f)==1024?Ke:0);break e}(f=e[c+460>>2])&&(u[0|f]=69),di(A,r,a,m)}}else u[c+104|0]=95,wt(Qe,m,I),f=1,u[105+(c+I|0)|0]=0,RA(A,c+104|0,c- -64|0),p-1>>>0<=4294967293&&(f=HA(f=c- -64|0)+f|0,u[0|f]=11,u[f+1|0]=0,f=0),di(A,r,a,c- -64|0),e[c+464>>2]=m+I,p=f;if(m=e[c+464>>2],!(223&(f=l[0|m])))break}wt(t,A=c+112|0,HA(A))}f=0}return J=c+480|0,f}function cs(A,t){var r,a=0,s=0,n=0,o=0,c=0,f=0,m=0,p=0,I=0,v=0,T=0,O=0,Z=0,ee=0,ce=0,he=0,ye=0,Qe=0,We=0,Ke=0,rA=0,cA=0;J=r=J-2976|0,e[t>>2]=1,a=e[A+20>>2],e[(c=r+2960|0)>>2]=e[A+16>>2],e[c+4>>2]=a,a=e[A+12>>2],e[(c=r+2952|0)>>2]=e[A+8>>2],e[c+4>>2]=a,a=e[A+4>>2],e[r+2944>>2]=e[A>>2],e[r+2948>>2]=a,e[50303]||KA();e:if(A=e[r+2948>>2],l[0|A]&&A||((A=e[r+2944>>2])||(A=(A=e[r+2952>>2])||85055,e[r+2944>>2]=A),ar(a=r+80|0,A,60),On(a,0),!(n=pa(201216,a))||(e[r+2948>>2]=e[n+4>>2]+1,l[r+2958|0]|l[r+2956|0]|l[r+2957|0]))){ee=r+1536|0,J=O=J-336|0;A:if(!(!(A=e[4+(Z=r+2944|0)>>2])|!l[0|A])){if((0|(ce=HA(A)))>=0){for(a=ce>>>0>=79?79:ce,p=1;A=Ht(u[e[Z+4>>2]+s|0]),u[(O+256|0)+s|0]=A,p=((255&A)==45)+p|0,A=(0|a)!=(0|s),s=s+1|0,A;);if((0|p)!=1)break A}p=1}if((0|(I=e[50303]))<=0)e[ee>>2]=0,A=0;else{for(c=(0|p)>=0;;){m=e[201216+(Qe<<2)>>2];A:if(xa(e[m+8>>2],88032,3)){if((A=e[Z+4>>2])&&xa(A,91687,3)){if(c){A=100;r:if(p){if(a=0,s=e[m+4>>2],!(he=l[0|s])){if(!xa(O+256|0,90013,9))break r;break A}for(;;){for(We=1,f=s+1|0,ye=1,Ke=0,s=0;(0|s)<(0|ce)&&(0|(A=u[(O+256|0)+s|0]))!=45||(A=0),Ke=((v=(0|(T=l[s+f|0]))==45)&!!(0|(ye=(v?0:T)<<24>>24==(0|A)?ye:0)))+Ke|0,s=s+1|0,We=v+We|0,T;);if(s=s+f|0,(v=ye+Ke|0)&&(a=(0|(A=P((f=(0|(A=p-v|0))<=0?5:5-A|0)-((0|(A=We-v|0))>0?A:0)|0,100)-(he<<24>>24<<1)|0))>(0|a)?A:a),!(he=l[0|s]))break}if(!(A=a))break A}(a=e[Z>>2])&&(A=yr(a,e[m>>2])?yr(a,e[m+8>>2])?A:A+400|0:A+500|0),((s=l[Z+12|0])-1&255)>>>0>1||((a=l[m+12|0])-1&255)>>>0>1||(A=(0|a)!=(0|s)?A-50|0:A+50|0),s=l[Z+13|0],A=l[m+12|0]!=2|s>>>0>12?A:l[m+13|0]>12?A+5|0:A,(a=l[m+13|0])&&((a=((s?P(s,100):3e3)>>>0)/(a>>>0)|0)>>>0<=99&&(a=1e4/(a>>>0)|0),A=(f=A)+((A=5-(((a-100&65535)>>>0)/10|0)|0)>>31&A)|0,A=s?A+10|0:A),A=(0|A)<=1?1:A}else{if(xa(e[m+8>>2],O+256|0,ce))break A;A=100}e[ee+(o<<2)>>2]=m,e[m+16>>2]=A}else e[ee+(o<<2)>>2]=m;o=o+1|0}if((0|I)==(0|(Qe=Qe+1|0)))break}e[ee+(o<<2)>>2]=0,A=0,o&&(An(ee,o,8),A=o)}if(J=O+336|0,p=A,A||(e[t>>2]=0,A=pa(201216,85055),e[r+1536>>2]=A,p=!!(0|A)),t=l[r+2957|0],c=2,(0|(A=l[r+2956|0]))!=2&&(c=2,(t-1&255)>>>0<12||(cA=(0|A)!=1,c=(0|A)==1)),I=(o=e[132136+(c<<2)>>2])+(T=t>>>0<60)|0,A=0,(0|p)>0)for(a=0;;){n=e[(r+1536|0)+(rA<<2)>>2];A:{r:{s:{if(cA){if(T||(t=0,a))break r}else{if(t=l[n+12|0],a|T)break s;t=(0|t)!=(0|c)}if(s=0,t|l[n+13|0]<60)break A;break r}if((0|t)!=(0|c)){s=a;break A}}e[(r+80|0)+(a<<2)>>2]=n,s=a+1|0}A:if(l[n+15|0]){if(v=0,t=A,a=s,!((0|A)>11))for(;;){if((s=l[0|I])||(I=o,s=l[0|o]),A=e[n+12>>2],f=P(t,24)+202624|0,e[f+8>>2]=e[n+8>>2],e[f+12>>2]=A,A=e[n+4>>2],e[f>>2]=e[n>>2],e[f+4>>2]=A,A=e[n+20>>2],e[f+16>>2]=e[n+16>>2],e[f+20>>2]=A,u[f+14|0]=s,e[(r+80|0)+(a<<2)>>2]=f,I=I+1|0,a=a+1|0,A=t+1|0,(v=v+1|0)>>>0>=l[n+15|0])break A;if(s=(0|t)<11,t=A,!s)break}}else a=s;if((0|(rA=rA+1|0))==(0|p))break}else{if(!n)break e;a=0}A:if(!(!(s=l[0|I])|(0|A)>=12))for(;;){if(t=e[n+12>>2],o=P(A,24)+202624|0,e[o+8>>2]=e[n+8>>2],e[o+12>>2]=t,t=e[n+4>>2],e[o>>2]=e[n>>2],e[o+4>>2]=t,t=e[n+20>>2],e[o+16>>2]=e[n+16>>2],e[o+20>>2]=t,u[o+14|0]=s,e[(r+80|0)+(a<<2)>>2]=o,a=a+1|0,!(s=l[0|(I=I+1|0)]))break A;if(t=(0|A)<11,A=A+1|0,!t)break}a?(A=e[(r+80|0)+(l[r+2958|0]%(0|a)<<2)>>2],(t=l[A+14|0])?(u[202976]=0,e[r+48>>2]=47,DA(r+2971|0,91351,r+48|0),u[r+2971|0]=0,t>>>0<=9?(e[r+20>>2]=t,e[r+16>>2]=r+2971,DA(202976,91378,r+16|0)):(e[r+36>>2]=t-10,e[r+32>>2]=r+2971,DA(202976,91503,r+32|0)),A=e[A+8>>2],e[r+4>>2]=202976,e[r>>2]=A,A=202912,DA(202912,87760,r)):A=e[A+8>>2]):A=0}else{if(A=e[n+8>>2],!l[202976])break e;e[r+64>>2]=A,e[r+68>>2]=202976,A=202912,DA(202912,87760,r- -64|0)}return J=r+2976|0,A}function Za(A,t,r,a,s){var n,o,c=0,f=0,m=0,p=0,I=0,v=0,T=0;J=n=J-464|0,u[n+432|0]=0,u[n+368|0]=0,u[n+304|0]=0,u[n+292|0]=0,I=(0|t)/10|0,c=e[33273];e:{if(!(o=2&a)|e[33272]!=2){T=32&a?113:111,p=1&a,v=t-P(I,10)|0;A:{r:{s:{n:{c:{o:{g:{l:if(l[0|c])c=0;else{i:{if(8&a){if(e[n+288>>2]=t,DA(f=n+452|0,91198,n+288|0),c=RA(A,f,n+304|0)){f=0;break l}e[n+272>>2]=t,DA(f=n+452|0,91314,n+272|0),c=RA(A,f,n+304|0),f=0}else{if(!p)break i;if(m=qA(n+432|0,133104),4&a){if(e[n+260>>2]=T,e[n+256>>2]=t,DA(f=n+452|0,91324,n+256|0),c=RA(A,f,n+304|0),l[133116]&&c)break g;if(f=c,c)break l}e[n+244>>2]=T,e[n+240>>2]=t,DA(f=n+452|0,91384,n+240|0),f=c=RA(A,f,n+304|0)}if(c)break l}i:{if(o){if(!(1&u[133096]))break i;e[n+208>>2]=t,DA(c=n+452|0,91498,n+208|0),c=RA(A,c,n+304|0)}else m=e[A+108>>2],e[n+224>>2]=t,DA(c=n+452|0,(0|r)>=2?91700:(262144&m)>>>18|0?91534:91700,n+224|0),c=RA(A,c,n+304|0);if(c)break l}!p|!(32&l[A+109|0])?(e[n+192>>2]=t,DA(c=n+452|0,91766,n+192|0),c=RA(A,c,n+304|0)):c=0}if(!(16&a)|(0|t)>9)break c;c=f;break o}if(qA(m,133116),!(16&a)|(0|t)>9)break n}RA(A,88875,n+368|0);break r}if(!c)break s;c=f}u[n+368|0]=0;break r}s:if(p&&(e[n+180>>2]=T,e[n+176>>2]=I,DA(c=n+452|0,91846,n+176|0),RA(A,c,n+368|0))){if(f=1,!v|!(16&l[A+109|0]))break s;sa(n+368|0,133104)}else f||(e[n+160>>2]=I,DA(f=n+452|0,512&a?91936:92016,n+160|0),RA(A,f,n+368|0),f=0);if(c=v,l[n+368|0]||(c=v,16&l[A+106|0]&&(e[n+144>>2]=254&I,DA(c=n+452|0,92016,n+144|0),RA(A,c,n+368|0),c=(0|t)%20|0)),u[n+304|0]=0,I=c,(0|c)<=0)c=f;else{if(o&&(c=e[33273],l[0|c])){qA(n+304|0,c),u[n+432|0]=0,m=p;break A}if(m=0,8&a&&(e[n+128>>2]=I,DA(a=n+452|0,91314,n+128|0),m=RA(A,a,n+304|0)),!p|16&l[A+104|0]||(e[n+116>>2]=T,e[n+112>>2]=I,DA(a=n+452|0,91384,n+112|0),f=(m=RA(A,a,n+304|0))?1:f),c=f,!m){s:{if(!o|!(1&e[33274])){if(!(16&l[A+104|0])&&o)break s;f=e[A+108>>2],e[n+96>>2]=I,DA(a=n+452|0,(0|r)>=2?91700:(262144&f)>>>18|0?91534:91700,n+96|0),r=RA(A,a,n+304|0)}else e[n+80>>2]=I,DA(r=n+452|0,91498,n+80|0),r=RA(A,r,n+304|0);if(r)break r}e[n+64>>2]=I,DA(r=n+452|0,91766,n- -64|0),RA(A,r,n+304|0)}}}m=p,l[n+432|0]|c|!p||((0|t)<20|(16&l[A+104|0]?0:v)||(RA(A,92162,n+432|0),m=1,!l[n+432|0]))&&(RA(A,92205,n+432|0),m=1)}if(!(!(r=u[n+304|0])|!(48&(t=e[A+104>>2]))|!l[n+368|0])){if(RA(A,90824,n+292|0),!m|!(8&l[A+109|0])||(u[n+292|0]=0),16&l[A+104|0]){e[n+28>>2]=n+432,e[n+24>>2]=n+368,e[n+20>>2]=n+292,e[n+16>>2]=n+304,DA(s,91059,n+16|0),a=1;break e}e[n+12>>2]=n+432,e[n+8>>2]=n+304,e[n+4>>2]=n+292,e[n>>2]=n+368,DA(s,91059,n),a=1;break e}512&t&&(!r|(0|(t=HA(n+368|0)-1|0))<0||(c=l[e[144464+(u[0|(t=t+(n+368|0)|0)]<<2)>>2]+11|0]!=2,(0|(a=l[e[144464+(r<<2)>>2]+11|0]))==1&&(a=l[e[144464+(u[n+305|0]<<2)>>2]+11|0]),c|(255&a)!=2||(u[0|t]=0))),!(8&l[A+110|0])|!l[n+432|0]?(e[n+56>>2]=n+432,e[n+52>>2]=n+304,e[n+48>>2]=n+368,DA(s,92282,n+48|0)):(e[n+36>>2]=n+304,e[n+32>>2]=n+368,(0|(t=DA(s,90368,n+32|0)))>0&&(t=l[e[144464+(l[(r=t-1|0)+s|0]<<2)>>2]+11|0]==2?r:t),qA(t+s|0,n+432|0))}else qA(s,c);a=0}e:if(268435456&(A=e[A+104>>2])){if((0|HA(s))<=0)break e;for(t=0,A=0;l[0|(r=A+s|0)]==6&&(t&&(u[0|r]=5),t=1),A=A+1|0,(0|HA(s))>(0|A););}else if(256&A&&(t=0,!((0|(A=(p=HA(s))-1|0))<0))){if(A)for(v=-2&p,c=0;l[0|(f=A+s|0)]==6?(r=1,t&&(u[0|f]=5)):r=t,l[0|(f=f-1|0)]==6?(t=1,r&&(u[0|f]=5)):t=r,A=A-2|0,(0|v)!=(0|(c=c+2|0)););1&p&&(!t|l[0|(A=A+s|0)]!=6||(u[0|A]=5))}return J=n+464|0,a}function zs(A,t,r,a){var s,n,o=0,c=0,f=0,m=0,p=0,I=0,v=0;if(J=s=J-352|0,u[s+304|0]=0,u[s+224|0]=0,u[s+64|0]=0,f=e[e[47192]+292>>2],v=Gt(s+348|0,t),(1048320&(o=e[s+348>>2]))==57344&&(o&=255,e[s+348>>2]=o),2&a&&hs(o)&&RA(A,85437,s+304|0),o=vn(e[s+348>>2],A),e[s+348>>2]=o,I=1&a,jt(A,o,u[0|(n=t+v|0)],s+224|0,I),!(t=l[s+224|0])){e:if((t=I0(e[s+348>>2]))&&(e[s+348>>2]=16383&t,4&a)){switch(1073741823&(t>>=14)){case 0:case 3:break e}RA(A,t=e[131232+(t<<2)>>2],s+304|0),l[s+304|0]||(u[s+306|0]=un(84744),p=t,t=s+304|3,RA(e[47194],p,t),l[s+307|0]&&(b[s+304>>1]=5385,t=HA(t)+(s+304|0)|0,u[t+5|0]=0,u[t+4|0]=f,u[t+3|0]=21))}jt(A,e[s+348>>2],u[0|n],s+224|0,I),t=l[s+224|0]}e:{A:{if(t&=255){if((0|t)!=21)break A;qA(r,s+224|0),v=0;break e}if(t=1632,!((0|(o=e[s+348>>2]))<1632)){for(m=103360;;){if((0|o)>=(t+10|0)){if(!(t=e[(m=m+4|0)>>2]))break A;if((0|t)<=(0|o))continue;break A}break}(0|(t=48+(o-t|0)|0))<=0||jt(A,t,0,s+224|0,I)}}A:{r:{s:{n:{if(t=Hs(e[s+348>>2])){if(o=e[t+4>>2],!t|1&(m=e[t+16>>2])||(c=e[47192],e[c+600>>2]==(0|o)|e[c+188>>2]==(0|o)|e[c+184>>2]==(0|o)||(u[s+144|0]=0,RA(c,e[t>>2],s- -64|0)?(0|(c=e[47192]))!=(0|A)&&(f=e[A+292>>2],qA(s+144|0,s- -64|0),u[s+66|0]=e[c+292>>2]):(u[s+66|0]=un(84744),RA(e[47194],e[t>>2],s+144|0)),l[s+144|0]&&(b[s+64>>1]=5385,qA(3|(c=s- -64|0),p=s+144|0),c=HA(p)+c|0,u[c+5|0]=0,u[c+4|0]=f,u[c+3|0]=21))),l[s+224|0])break A;if(!o||(f=e[47192],e[f+188>>2]!=(0|o)))break n;t=e[f+192>>2];break r}if(l[s+224|0])break A;m=0,o=0;break s}if((t=e[t+12>>2])&&!(2&m))break r}t=25966}if((e[A+212>>2]==(0|t)&(0|t)!=27503||(u[s+226|0]=un(Mi(s+47|0,t)),(t=e[47194])&&((0|(f=e[s+348>>2]))>55215||(0|(c=f-44032|0))<0?jt(t,f,u[0|n],s+224|3,I):(u[s+52|0]=32,t=p=s+53|0,f-50500>>>0>=588&&(t=zr(4352+((c>>>0)/588|0)|0,p)+p|0),zr(4449+(((f=(c>>>0)/28|0)>>>0)%21|0)|0,t),zr(4519+(c-P(f,28)|0)|0,t+3|0),u[t+6|0]=32,u[t+7|0]=0,u[s+227|0]=0,t=s+224|3,qt(e[47194],p,t,77,0,0,0),$t(e[47194],t,0,-1,0)),t=s+224|3,l[s+227|0]==21&&(u[s+226|0]=un(s+224|4),jt(e[47194],e[s+348>>2],u[0|n],t,I)),ha(e[e[32972]+60>>2]),l[s+227|0]&&(b[s+224>>1]=5385,t=HA(t)+(s+224|0)|0,u[t+3|0]=21,I=e[A+292>>2],u[t+5|0]=0,u[t+4|0]=I)),!l[s+224|0]))&&(16&m||(ns(e[s+348>>2])&&RA(e[47192],85683,s+224|0),l[s+224|0]||(Or(e[s+348>>2])||RA(e[47192],85778,s+224|0),l[s+224|0]||Ns(85992,s+224|0,0))),!(8&m)||4&a)){if(t=e[s+348>>2],(0|o)!=10240?(e[s+32>>2]=t,DA(s+52|0,86013,s+32|0)):(o=s+52|0,1&t&&(u[s+52|0]=49,o=s+53|0),2&t&&(u[0|o]=50,o=o+1|0),4&t&&(u[0|o]=51,o=o+1|0,t=e[s+348>>2]),8&t&&(u[0|o]=52,o=o+1|0,t=e[s+348>>2]),16&t&&(u[0|o]=53,o=o+1|0,t=e[s+348>>2]),32&t&&(u[0|o]=54,o=o+1|0,t=e[s+348>>2]),64&t&&(u[0|o]=55,o=o+1|0,t=e[s+348>>2]),128&t&&(u[0|o]=56,o=o+1|0),u[0|o]=0),t=s+224|0,m=l[s+52|0])for(o=s+52|0;t=HA(t)+t|0,u[0|t]=23,t=t+1|0,jt(e[47192],m<<24>>24,0,t,1),(a=l[0|t])&&(0|a)!=21||(0|(a=u[0|o]))<97||Ns(e[130860+((255&a)<<2)>>2],t,0),m=l[0|(o=o+1|0)];);t=HA(t)+t|0,u[0|t]=9,u[t+1|0]=0}}t=HA(r),2&l[A+144|0]?(e[s+16>>2]=255,e[s+28>>2]=s+304,e[s+24>>2]=s+224,e[s+20>>2]=s- -64,DA(s+144|0,86210,s+16|0)):(e[s>>2]=255,e[s+12>>2]=s+224,e[s+8>>2]=s+304,e[s+4>>2]=s- -64,DA(s+144|0,86210,s)),HA(s+144|0)+t>>>0>199||qA(t+r|0,s+144|0)}return J=s+352|0,v}function ws(A,t,r,a,s,n,o){var c,f=0,m=0,p=0,I=0,v=0,T=0,O=0,Z=0,ee=0,ce=0,he=0,ye=0,Qe=0,We=0,Ke=0,rA=0,cA=0,MA=0,zA=0,et=0,at=0,dt=0;J=c=J-528|0,ce=o?e[o>>2]:0,rA=e[s+4>>2];e:{A:{if(e[A+220>>2]>0){ar(m=c+352|0,t,160),J=T=J-176|0,Z=1-(O=e[A+220>>2])|0,ee=e[A+224>>2],he=e[A+216>>2],I=m;r:{s:{for(;;){if(ye=Gt(T+172|0,I),f=e[T+172>>2]){if((0|f)<(0|O)|(0|f)>(0|he))break s;if(ee){if((0|(f=u[ee+(f-O|0)|0]))<=0)break s}else f=f+Z|0;if(I=I+ye|0,u[v+T|0]=f,f=160,(0|(v=v+1|0))!=160)continue}else f=v;break}if(ee=0,u[f+T|0]=0,Z=u[0|T],e[T+172>>2]=Z,Z){for(cA=2+(he-O|0)|0,O=f=T;;){he=f+1|0;n:{if((ye=e[A+8180>>2])&&(v=0,!((0|(I=b[ye>>1]))>(0|(We=(u[0|he]<<8)+Z|0)))))for(;;){if((0|I)==(0|We)){Z=v+cA|0,e[T+172>>2]=Z,f=f+2|0;break n}if(!((0|We)>=(0|(I=b[ye+((v=v+1|0)<<1)>>1]))))break}f=he}if(Qe=63&Z|Qe<<6,(0|(v=ee+6|0))<8?ee=v:(ee=ee-2|0,u[0|O]=Qe>>ee,O=O+1|0),Z=u[0|f],e[T+172>>2]=Z,!Z)break}(0|ee)<=0||(u[0|O]=Qe<<8-ee,O=O+1|0)}else O=T;u[0|O]=0,wt(m,T,f=O-T|0),O=64|f;break r}O=HA(m)}J=T+176|0,T=m}else O=HA(t),T=t;if(m=l[0|T]){for(f=0,v=T;p=1023&(p=(p<<3)+m|0)^p>>>8,f=f+1|0,m=l[0|(v=v+1|0)];);f=f+p&1023}else f=0;if(p=e[692+((f<<2)+A|0)>>2]){if(f=l[0|p])break A;f=0;break e}if(f=0,!s)break e;e[s>>2]=0;break e}for(ye=1073741824&rA,We=2048&n,rA=512&ce,cA=65536&ce,MA=1&ce,zA=2&ce,ce=8&n,et=1024&n,he=4&n,at=63&O,dt=A+8233|0;;){n=(255&f)+p|0;A:{r:if((127&(f=l[p+1|0]))==(0|O)&&!xa(T,p+2|0,at)){p=2+((63&f)+p|0)|0;s:{if(f<<24>>24<0)ee=0,u[0|a]=0;else{if((0|(ee=HA(p)))>=160)break s;qA(a,p),p=1+(p+ee|0)|0}if(m=0,n>>>0<=p>>>0)f=r,I=0;else{v=0,I=0;n:{for(;;){p=(f=p)+1|0;c:if((f=l[0|f])>>>0>=100){if(Z=e[A+320>>2],f>>>0>=132){v|=Z>>>f-132&1;break c}v|=!(Z>>>f-100&1)}else{if(f>>>0>=81){Z=f-80|0,Qe=n-p|0;o:if(o)for(f=0;;){if(Ke=P(f,12)+o|0,!l[Ke+10|0])break o;if(v=!!(12&l[Ke+1|0])|v,Ke=(0|f)!=(0|Z),f=f+1|0,!Ke)break}if(h0(r,p,Qe)|1&v)break r;e[33264]=Z,f=r+Qe|0,I|=128,p=n;break n}f>>>0>=65?(I=15&f|-16&I,I=12&~f?I:512|I):f>>>0>=32?m|=1<>>0>p>>>0))break}if(f=r,1&v)break A}if(65536&m&&!he||et&&49152&m)break A}if(he&&(16384&m||!ce&&32768&m)||(zA?0:512&m)|(MA?0:1024&m)|(cA?0:33554432&I)||!(!(131072&m)|ge[e[47192]+8204>>2]<=f>>>0|ye)|(rA?0:262144&m)|(8&l[e[47192]+8242|0]?0:8192&m)||16&m&&(!e[A+8184>>2]&(!ce|!e[A+8192>>2])||!(!ce|e[A+212>>2]!=25966)&&2097152&e[A+8232>>2])||(e[A+8188>>2]?0:64&m)|(!e[A+8196>>2]|We?32&m:0)||!(!(65536&I)|e[A+212>>2]!=26741|128&l[0|dt])|(e[47192]!=(0|A)?524288&m:0))break A;n:{c:{o:{if(!s){if(!ee)break o;break n}if(e[s+4>>2]=m,e[s>>2]=1073741824|I,ee)break c}if(f=0,!(8&l[188788]))break e;pi(s,A=c+272|0),e[c>>2]=t,e[c+4>>2]=A,fr(e[47195],89330,c);break e}e[s>>2]=-1073741824|I}if(8&l[188788]&&(JA(a,c- -64|0),l[e[47192]+172|0]==(I>>>29&1)&&(!o|!(128&I)?(e[c+48>>2]=t,fr(e[47195],89426,c+48|0)):(wt(A=c+352|0,a=r,r=f-r|0),u[351+(r+c|0)|0]=0,e[c+32>>2]=t,e[c+36>>2]=A,fr(e[47195],89397,c+32|0)),pi(s,A=c+272|0),t=e[47195],e[c+16>>2]=c- -64,e[c+20>>2]=A,fr(t,89534,c+16|0))),l[Gt(c- -64|0,T)+T|0]|!s||rr(e[c+64>>2]))break e;e[s>>2]=134217728|e[s>>2];break e}Pe(89236,86634,2467,94846),xe()}p=n}if(!(f=l[0|p]))break}f=0}return J=c+528|0,f}function ks(A,t,r,a,s){var n,o=0,c=0;J=n=J-304|0,u[n+278|0]=0;e:{if((0|t)>0&&(1&a&&(2&a&&(e[n+164>>2]=r,e[n+160>>2]=t,DA(o=n+290|0,89701,n+160|0),o=RA(A,o,n+224|0))||1&u[133096]&&(e[n+148>>2]=r,e[n+144>>2]=t,DA(o=n+290|0,89757,n+144|0),o=RA(A,o,n+224|0))||(e[n+132>>2]=r,e[n+128>>2]=t,DA(o=n+290|0,89894,n+128|0),o=RA(A,o,n+224|0)))||(e[n+116>>2]=r,e[n+112>>2]=t,DA(o=n+290|0,89974,n+112|0),o=RA(A,o,n+224|0))))break e;if((0|(c=(0|t)%100|0))>=20&&RA(A,90022,n+278|0),1&a){if(2&a){o=c-11|0;A:{r:{s:switch((448&e[e[47192]+108>>2])-64>>>6|0){case 0:if(o>>>0<9)break r;if(a=90418,(0|(o=(0|t)%10|0))==1)break A;if(o-2>>>0>=3)break r;a=90453;break A;case 1:if(t-2>>>0>=3)break r;a=90453;break A;case 2:if(o>>>0<9|((0|t)%10|0)-2>>>0>=3)break r;a=90453;break A;case 3:if(a=90508,o>>>0<9)break A;a=(a=(0|t)%10|0)?(0|a)==1?90453:90586:90508;break A;case 4:break s;default:break r}if(!(o>>>0<9)){if(a=90537,(0|(o=(0|t)%10|0))==1)break A;if(!(o-2>>>0>=3)){a=90453;break A}}}a=90586}if(e[n+100>>2]=r,e[n+96>>2]=a,DA(a=n+290|0,90058,n+96|0),o=0,RA(A,a,n+224|0))break e}if(a=c-11|0,1&u[133096]){A:{r:{s:switch((448&e[e[47192]+108>>2])-64>>>6|0){case 0:if(a>>>0<9)break r;if(o=90418,(0|(c=(0|t)%10|0))==1)break A;if(c-2>>>0>=3)break r;o=90453;break A;case 1:if(t-2>>>0>=3)break r;o=90453;break A;case 2:if(a>>>0<9|((0|t)%10|0)-2>>>0>=3)break r;o=90453;break A;case 3:if(o=90508,a>>>0<9)break A;o=(o=(0|t)%10|0)?(0|o)==1?90453:90586:90508;break A;case 4:break s;default:break r}if(!(a>>>0<9)){if(o=90537,(0|(c=(0|t)%10|0))==1)break A;if(!(c-2>>>0>=3)){o=90453;break A}}}o=90586}if(e[n+84>>2]=r,e[n+80>>2]=o,DA(c=n+290|0,90110,n+80|0),o=0,RA(A,c,n+224|0))break e}A:{r:{s:switch((448&e[e[47192]+108>>2])-64>>>6|0){case 0:if(a>>>0<9)break r;if(o=90418,(0|(c=(0|t)%10|0))==1)break A;if(c-2>>>0>=3)break r;o=90453;break A;case 1:if(t-2>>>0>=3)break r;o=90453;break A;case 2:if(a>>>0<9|((0|t)%10|0)-2>>>0>=3)break r;o=90453;break A;case 3:if(o=90508,a>>>0<9)break A;o=(o=(0|t)%10|0)?(0|o)==1?90453:90586:90508;break A;case 4:break s;default:break r}if(!(a>>>0<9)){if(o=90537,(0|(c=(0|t)%10|0))==1)break A;if(!(c-2>>>0>=3)){o=90453;break A}}}o=90586}if(e[n+68>>2]=r,e[n+64>>2]=o,DA(c=n+290|0,90139,n- -64|0),o=0,RA(A,c,n+224|0))break e}else a=c-11|0;A:{r:{s:switch((448&e[e[47192]+108>>2])-64>>>6|0){case 0:if(a>>>0<9)break r;if(o=90418,(0|(a=(0|t)%10|0))==1)break A;if(a-2>>>0>=3)break r;o=90453;break A;case 1:if(t-2>>>0>=3)break r;o=90453;break A;case 2:if(a>>>0<9|((0|t)%10|0)-2>>>0>=3)break r;o=90453;break A;case 3:if(o=90508,a>>>0<9)break A;o=(a=(0|t)%10|0)?(0|a)==1?90453:90586:90508;break A;case 4:break s;default:break r}if(!(a>>>0<9)){if(o=90537,(0|(a=(0|t)%10|0))==1)break A;if(!(a-2>>>0>=3)){o=90453;break A}}}o=90586}e[n+52>>2]=r,e[n+48>>2]=o,DA(a=n+290|0,90218,n+48|0),o=0,RA(A,a,n+224|0)||((0|r)<4||(e[n+32>>2]=r-1,DA(a=n+290|0,89026,n+32|0),RA(A,a,n+176|0)||(RA(A,90273,n+224|0),e[33275]=3)),l[n+224|0]||(e[n+16>>2]=t,DA(a=n+290|0,90303,n+16|0),(o=RA(A,a,n+224|0))||RA(A,90347,n+224|0),e[33275]=2))}return e[n+4>>2]=n+224,e[n>>2]=n+278,DA(s,90368,n),J=n+304|0,!((0|t)!=1|(0|r)!=1)&&(t=1,32&l[A+106|0])||(t=o),t}function Fs(A,t,r,a){var s,n=0,o=0,c=0,f=0,m=0,p=0,I=0;J=s=J+-64|0,b[s+48>>1]=0,e[s+40>>2]=0,e[s+44>>2]=0,e[s+32>>2]=0,e[s+36>>2]=0,e[s+24>>2]=0,e[s+28>>2]=0,e[s+16>>2]=0,e[s+20>>2]=0,e[s+8>>2]=0,e[s+12>>2]=0,e[s>>2]=0,e[s+4>>2]=0,n=t;e:{for(;;){A:{r:{if((0|(o=l[0|n]))!=69){if((0|o)!=32)break r;if(a&&(u[wt(o=a,t,a=(0|(a=n-t|0))>=159?159:a)+a|0]=0),a=63&r)break A;break e}u[0|n]=101}n=n+1|0;continue}break}if(1&r){A:if((n=n-1|0)>>>0>>0)o=a;else for(o=a;;){if((192&l[0|n])!=128)break A;if(o=o+1|0,!((n=n-1|0)>>>0>=t>>>0))break}c=a-1|0}else c=a,o=a;if((0|a)!=1)for(;;){a=c;A:if(!((n=n-1|0)>>>0>>0))for(;;){if((192&l[0|n])!=128)break A;if(o=o+1|0,!((n=n-1|0)>>>0>=t>>>0))break}A:if(!((n=n-1|0)>>>0>>0))for(;;){if((192&l[0|n])!=128)break A;if(o=o+1|0,!((n=n-1|0)>>>0>=t>>>0))break}if(c=a-2|0,!((0|a)>2))break}if((0|o)<=0)c=0;else{if(f=3&(c=(a=(t=o-1|0)>>>0>=48?48:t)+1|0),t=0,o=0,a>>>0>=3)for(I=-4&c,a=0;m=n+o|0,u[o+s|0]=l[0|m],u[0|m]=32,m=(p=1|o)+n|0,u[s+p|0]=l[0|m],u[0|m]=32,m=(p=2|o)+n|0,u[s+p|0]=l[0|m],u[0|m]=32,m=(p=3|o)+n|0,u[s+p|0]=l[0|m],u[0|m]=32,o=o+4|0,(0|I)!=(0|(a=a+4|0)););if(f)for(;a=n+o|0,u[o+s|0]=l[0|a],u[0|a]=32,o=o+1|0,(0|f)!=(0|(t=t+1|0)););}}if(u[s+c|0]=0,f=65520&r,!(512&r)|l[0|(a=n-1|0)]!=105||(u[0|a]=121),o=4|f,256&r){e:{A:{r:{if((0|(t=e[A+212>>2]))!=25966){if((0|t)!=28268)break r;if(u[0|a]<0||128&(t=u[0|(c=n-2|0)]))break e;if(f=e[A+632>>2])t=!!(0|Lr(f,t));else{if((0|(f=e[A+600>>2]))>0&&(t=t-f|0)-1>>>0>254)break e;t=128&l[344+(A+t|0)|0]}if(!t)break e;if(t=u[0|a],f=e[A+612>>2])t=!!(0|Lr(f,t));else{s:{if((0|(f=e[A+600>>2]))>0){if((t=t-f|0)-1>>>0<255)break s;break e}if((0|t)<0)break e}t=4&l[344+(A+t|0)|0]}if(!t)break e;t=u[n-3|0];s:{if(f=e[A+632>>2])t=!!(0|Lr(f,t));else{n:{if((0|(f=e[A+600>>2]))>0){if((t=t-f|0)-1>>>0<255)break n;break s}if((0|t)<0)break s}t=128&l[344+(A+t|0)|0]}if(t)break e}u[0|n]=l[0|a],u[0|a]=l[0|c],u[n+1|0]=32;break e}if(c=u[n-2|0],t=e[A+632>>2])t=!!(0|Lr(t,c));else{s:{if((0|(t=e[A+600>>2]))>0){if((c=c-t|0)-1>>>0<255)break s;break A}if((0|c)<0)break A}t=128&l[344+(A+c|0)|0]}if(!t)break A;if(c=u[0|a],t=e[A+608>>2])t=!!(0|Lr(t,c));else{if((0|(t=e[A+600>>2]))>0){if((c=c-t|0)-1>>>0>=255)break A}else if((0|c)<0)break A;t=2&l[344+(A+c|0)|0]}if(!t)break A;o=xa(87771,n-3|0,3)?20|f:o;break e}o=e[A+204>>2]?20|f:o;break e}(l[0|a]==99||(c=l[1+(t=n-2|0)|0]<<8,(l[0|t]|c)==29554|(c|l[0|t])==29289||(l[0|(t=n-2|0)]|l[t+1|0]<<8)==29301||!xa(88115,n-3|0,3)||(l[0|(t=n-2|0)]|l[t+1|0]<<8)==29550|l[0|a]==117||!xa(88384,n-5|0,5)||(l[0|(t=n-4|0)]|l[t+1|0]<<8|l[t+2|0]<<16|l[t+3|0]<<24)==1735287154||(l[0|t]|l[t+1|0]<<8|l[t+2|0]<<16|l[t+3|0]<<24)==1735549292))&&(o=20|f)}16&o&&(zr(e[A+204>>2],n),8&l[188788]&&Li(88683,6,e[47195]))}return e[A+8184>>2]|!(2048&r)||(e[A+8184>>2]=1),M[s>>1]!=115&&xa(s,88850,3)||(o|=8),J=s- -64|0,l[0|s]==39?65531&o:o}function $r(A,t,r,a,s,n,o,c,f){var m,p=0,I=0,v=0,T=0,O=0,Z=0,ee=0,ce=0,he=0,ye=0;J=m=J-112|0,p=2147483647&f;e:{if(v=!(t|r),(a|(I=2147483647&s)?I-2147418112>>>0<2147549184:v)||!(!c&(0|(O=p-2147418112|0))==-2147418112?n|o:(0|O)==-2147418112&!!(0|c)|O>>>0>2147549184)){if(!(!a&(0|I)==2147418112?v:I>>>0<2147418112)){c=a,f=32768|s,n=t,o=r;break e}if(!(!c&(0|p)==2147418112?!(n|o):p>>>0<2147418112)){f|=32768;break e}if(!(t|a|2147418112^I|r)){T=a,c=(a=!(t^n|a^c|r^o|s^f^-2147483648))?0:T,f=a?2147450880:s,n=a?0:t,o=a?0:r;break e}if(!(n|c|2147418112^p|o))break e;if(!(t|a|r|I)){if(n|c|o|p)break e;n&=t,o&=r,c&=a,f&=s;break e}if(!(n|c|o|p)){n=t,o=r,c=a,f=s;break e}}I=(v=ce=(T=(0|p)==(0|I))&(0|a)==(0|c)?(0|r)==(0|o)&t>>>0>>0|r>>>0>>0:T&a>>>0>>0|p>>>0>I>>>0)?n:t,O=v?o:r,he=T=v?f:s,v=v?c:a,ee=65535&T,a=ce?a:c,ye=s=ce?s:f,T=s>>>16&32767,(Z=he>>>16&32767)||(f=s=!(v|ee),p=s?I:v,c=s<<=6,ea(m+96|0,I,O,v,ee,(s=s+((0|(f=Ye(f?O:ee)))==32?Ye(p)+32|0:f)|0)-15|0),v=e[m+104>>2],ee=e[m+108>>2],O=e[m+100>>2],Z=16-s|0,I=e[m+96>>2]),n=ce?t:n,o=ce?r:o,c=a,f=65535&ye,T||(s=t=!(c|f),p=t?n:c,r=t<<=6,ea(m+80|0,n,o,c,f,(t=t+((0|(s=Ye(s?o:f)))==32?Ye(p)+32|0:s)|0)-15|0),T=16-t|0,c=e[m+88>>2],f=e[m+92>>2],o=e[m+84>>2],n=e[m+80>>2]),r=f<<3|c>>>29,t=c<<3|o>>>29,r|=524288,c=v<<3|O>>>29,f=ee<<3|v>>>29,ce=he^ye,s=o<<3|n>>>29,a=n<<3,(0|T)!=(0|Z)&&((n=Z-T|0)>>>0>127?(t=0,r=0,s=0,a=1):(ea(m- -64|0,a,s,t,r,128-n|0),Ya(m+48|0,a,s,t,r,n),t=e[m+56>>2],r=e[m+60>>2],s=e[m+52>>2],a=e[m+48>>2]|!!(e[m+64>>2]|e[m+72>>2]|e[m+68>>2]|e[m+76>>2]))),v=a,p=s,T=c,ee=524288|f,s=O<<3|I>>>29,O=I<<3,I=s;A:if((0|ce)<0){if(n=0,o=0,c=0,f=0,!(v^O|t^T|p^I|r^ee))break e;if(a=O-v|0,s=I-((v>>>0>O>>>0)+p|0)|0,c=(n=T-t|0)-(o=(0|p)==(0|I)&v>>>0>O>>>0|p>>>0>I>>>0)|0,f=t=(ee-((t>>>0>T>>>0)+r|0)|0)-(n>>>0>>0)|0,t>>>0>524287)break A;n=t=!(c|f),o=t?a:c,r=t<<=6,ea(m+32|0,a,s,c,f,t=(t=t+((0|(n=Ye(n?s:f)))==32?Ye(o)+32|0:n)|0)-12|0),Z=Z-t|0,c=e[m+40>>2],f=e[m+44>>2],a=e[m+32>>2],s=e[m+36>>2]}else s=p+I|0,n=(0|p)==(0|(s=(a=v+O|0)>>>0>>0?s+1|0:s))&a>>>0>>0|s>>>0

>>0,p=r+ee|0,p=(t=t+T|0)>>>0>>0?p+1|0:p,1048576&(f=(c=t+n|0)>>>0>>0?p+1|0:p)&&(a=1&v|(1&s)<<31|a>>>1,s=c<<31|s>>>1,Z=Z+1|0,c=(1&f)<<31|c>>>1,f=f>>>1|0);if(r=0,I=-2147483648&he,(0|Z)>=32767)c=r,f=2147418112|I,n=0,o=0;else if(T=0,(0|Z)>0?T=Z:(ea(m+16|0,a,s,c,f,Z+127|0),Ya(m,a,s,c,f,1-Z|0),a=e[m>>2]|!!(e[m+16>>2]|e[m+24>>2]|e[m+20>>2]|e[m+28>>2]),s=e[m+4>>2],c=e[m+8>>2],f=e[m+12>>2]),O=7&a,a=(0|(t=c<<29|s>>>3))==(0|(o=(a=(7&s)<<29|a>>>3)>>>0>(n=(O>>>0>4)+a|0)>>>0?t+1|0:t))&a>>>0>n>>>0|t>>>0>o>>>0,t=r|(7&f)<<29|c>>>3,f=I|f>>>3&65535|T<<16,f=t>>>0>(c=a+t|0)>>>0?f+1|0:f,(0|O)!=4){if(!O)break e}else p=o+(t=0)|0,f=(t=(0|t)==(0|(o=(a=n)>>>0>(n=n+(r=1&n)|0)>>>0?p+1|0:p))&r>>>0>n>>>0|t>>>0>o>>>0)>>>0>(c=t+c|0)>>>0?f+1|0:f}e[A>>2]=n,e[A+4>>2]=o,e[A+8>>2]=c,e[A+12>>2]=f,J=m+112|0}function xt(A){var t=0,r=0,a=0,s=0,n=0,o=0,c=0;e:if(A|=0){n=(a=A-8|0)+(A=-8&(t=e[A-4>>2]))|0;A:if(!(1&t)){if(!(3&t)||(a=a-(t=e[a>>2])|0)>>>0>2])))return e[57154]=A,e[n+4>>2]=-2&t,e[a+4>>2]=1|A,void(e[A+a>>2]=A)}else{if(t>>>0<=255){if(s=e[a+8>>2],t=t>>>3|0,(0|(r=e[a+12>>2]))==(0|s)){e[57152]=e[57152]&aa(-2,t);break A}e[s+12>>2]=r,e[r+8>>2]=s;break A}if(c=e[a+24>>2],(0|a)==(0|(t=e[a+12>>2])))if((r=e[(s=a+20|0)>>2])||(r=e[(s=a+16|0)>>2])){for(;o=s,(r=e[(s=(t=r)+20|0)>>2])||(s=t+16|0,r=e[t+16>>2]););e[o>>2]=0}else t=0;else r=e[a+8>>2],e[r+12>>2]=t,e[t+8>>2]=r;if(!c)break A;s=e[a+28>>2];r:{if(e[(r=228912+(s<<2)|0)>>2]==(0|a)){if(e[r>>2]=t,t)break r;e[57153]=e[57153]&aa(-2,s);break A}if(e[c+(e[c+16>>2]==(0|a)?16:20)>>2]=t,!t)break A}if(e[t+24>>2]=c,(r=e[a+16>>2])&&(e[t+16>>2]=r,e[r+24>>2]=t),!(r=e[a+20>>2]))break A;e[t+20>>2]=r,e[r+24>>2]=t}}if(!(a>>>0>=n>>>0)&&1&(t=e[n+4>>2])){A:{if(!(2&t)){if(e[57158]==(0|n)){if(e[57158]=a,A=e[57155]+A|0,e[57155]=A,e[a+4>>2]=1|A,e[57157]!=(0|a))break e;return e[57154]=0,void(e[57157]=0)}if(e[57157]==(0|n))return e[57157]=a,A=e[57154]+A|0,e[57154]=A,e[a+4>>2]=1|A,void(e[A+a>>2]=A);A=(-8&t)+A|0;r:if(t>>>0<=255){if(s=e[n+8>>2],t=t>>>3|0,(0|(r=e[n+12>>2]))==(0|s)){e[57152]=e[57152]&aa(-2,t);break r}e[s+12>>2]=r,e[r+8>>2]=s}else{if(c=e[n+24>>2],(0|n)==(0|(t=e[n+12>>2])))if((r=e[(s=n+20|0)>>2])||(r=e[(s=n+16|0)>>2])){for(;o=s,(r=e[(s=(t=r)+20|0)>>2])||(s=t+16|0,r=e[t+16>>2]););e[o>>2]=0}else t=0;else r=e[n+8>>2],e[r+12>>2]=t,e[t+8>>2]=r;if(c){s=e[n+28>>2];s:{if(e[(r=228912+(s<<2)|0)>>2]==(0|n)){if(e[r>>2]=t,t)break s;e[57153]=e[57153]&aa(-2,s);break r}if(e[c+(e[c+16>>2]==(0|n)?16:20)>>2]=t,!t)break r}e[t+24>>2]=c,(r=e[n+16>>2])&&(e[t+16>>2]=r,e[r+24>>2]=t),(r=e[n+20>>2])&&(e[t+20>>2]=r,e[r+24>>2]=t)}}if(e[a+4>>2]=1|A,e[A+a>>2]=A,e[57157]!=(0|a))break A;return void(e[57154]=A)}e[n+4>>2]=-2&t,e[a+4>>2]=1|A,e[A+a>>2]=A}if(A>>>0<=255)return t=228648+(-8&A)|0,(r=e[57152])&(A=1<<(A>>>3))?A=e[t+8>>2]:(e[57152]=A|r,A=t),e[t+8>>2]=a,e[A+12>>2]=a,e[a+12>>2]=t,void(e[a+8>>2]=A);s=31,A>>>0<=16777215&&(s=62+((A>>>38-(t=Ye(A>>>8|0))&1)-(t<<1)|0)|0),e[a+28>>2]=s,e[a+16>>2]=0,e[a+20>>2]=0,o=228912+(s<<2)|0;A:{r:{if((r=e[57153])&(t=1<>>1|0):0),t=e[o>>2];;){if(r=t,(-8&e[t+4>>2])==(0|A))break r;if(t=s>>>29|0,s<<=1,!(t=e[16+(o=r+(4&t)|0)>>2]))break}e[o+16>>2]=a,e[a+24>>2]=r}else e[57153]=t|r,e[o>>2]=a,e[a+24>>2]=o;e[a+12>>2]=a,e[a+8>>2]=a;break A}A=e[r+8>>2],e[A+12>>2]=a,e[r+8>>2]=a,e[a+24>>2]=0,e[a+12>>2]=r,e[a+8>>2]=A}A=e[57160]-1|0,e[57160]=A||-1}}}function va(A,t,r){var a,s=0,n=0,o=0,c=0,f=0,m=0,p=0,I=0,v=0,T=0,O=0,Z=0;J=a=J-176|0;e:{if(32&t)T=r-((0|r)>1)|0;else{n=Ut(A,93302);A:{r:{s:{if((0|t)!=2){if(n)break s;t=0;break e}if(T=r+1|0,I=56+(O=P(r,76)+133152|0)|0,v=Ut(A,89360),o=Ut(A,93318),c=Ut(A,93426),f=Ut(A,93499),n)break r;break A}T=r+1|0,I=56+(O=P(r,76)+133152|0)|0,f=0}for(A=0,m=(0|(s=e[n-4>>2]))!=34?(0|s)==39?s:0:s,Z=P(r,76)+133208|0;;){if(s=A,!(A=e[n>>2]))break A;r:{if(!m){if((0|A)==32|A-9>>>0<5)break A;if((0|A)!=47)break r;break A}if((0|s)!=92&&(0|A)==(0|m))break A}if(n=n+4|0,!((0|(p=zr(A,p+Z|0)+p|0))<16))break}}m=0,u[p+I|0]=0,p=P(r,76)+133168|0,n=0;A:if(v)for(A=0,I=(0|(s=e[v-4>>2]))!=34?(0|s)==39?s:0:s;;){if(s=A,!(A=e[v>>2]))break A;r:{if(!I){if((0|A)==32|A-9>>>0<5)break A;if((0|A)!=47)break r;break A}if((0|s)!=92&&(0|A)==(0|I))break A}if(v=v+4|0,!((0|(n=zr(A,n+p|0)+n|0))<36))break}if(u[n+p|0]=0,!(!o|e[o>>2]-48>>>0>=10)){for(;m=(e[o>>2]+P(m,10)|0)-48|0,e[(o=o+4|0)>>2]-48>>>0<10;);(0|m)<=0||(m=m-1|0)}if(s=P(r,76)+133152|0,e[s+4>>2]=m,A=0,n=0,!(!c|e[c>>2]-48>>>0>=10))for(;n=(e[c>>2]+P(n,10)|0)-48|0,e[(c=c+4|0)>>2]-48>>>0<10;);e[s+12>>2]=n,n=P(r,76)+133152|0;A:{r:if(f){for(;r=u[A+93099|0],(s=e[(A<<2)+f>>2])&&(A=A+1|0,(0|r)==(0|s)););s:{n:switch(s-34|0){case 0:case 5:break n;default:break s}if(!r){A=0;break A}}for(A=0;r=u[A+93116|0],(s=e[(A<<2)+f>>2])&&(A=A+1|0,(0|r)==(0|s)););s:{n:switch(s-34|0){case 0:case 5:break n;default:break s}if(!r){A=1;break A}}for(A=0;r=u[A+93197|0],(s=e[(A<<2)+f>>2])&&(A=A+1|0,(0|r)==(0|s)););s:switch(s-34|0){case 0:case 5:break s;default:break r}if(!r){A=2;break A}}A=3}e[n+8>>2]=e[131156+(A<<3)>>2],e[O>>2]=t}if(qA(137776,133168),r=qA(a+96|0,133208),u[a+157|0]=e[33291],u[a+156|0]=e[33290],A=e[33289],e[a+152>>2]=0,u[a+158|0]=A,(0|T)>0)for(o=0;;){if(c=1,t=P(o,76)+133152|0,l[0|(A=t+16|0)]&&pa(0,A)&&(qA(137776,A),c=0,u[0|r]=0,u[a+158|0]=0,b[a+156>>1]=0),l[0|(A=t+56|0)]){f=qA(r,A),s=e[33679];A:if(l[0|(A=s)])for(;;){if(!yr(A=A+1|0,f)){qA(f,s+1|0);break A}if(A=1+(HA(A)+A|0)|0,!l[0|A])break}c&&(u[137776]=0)}if((A=e[t+8>>2])&&(u[a+156|0]=A),(A=e[t+12>>2])&&(u[a+157|0]=A),(A=e[t+4>>2])&&(u[a+158|0]=A),(0|T)==(0|(o=o+1|0)))break}e[a+148>>2]=r,e[a+144>>2]=137776,(A=cs(a+144|0,a+172|0))?$a(A,43)||(t=l[a+156|0],!l[134672]|((0|t)!=l[134724]?t:0)||(e[a>>2]=A,e[a+4>>2]=134672,DA(t=a+16|0,93533,a),A=137776,ar(137776,t,40))):A=92003,t=0,yr(A,134784)&&(qA(134784,A),t=131072)}return J=a+176|0,t}function Tr(A,t){var r,a=0,s=0,n=0,o=0,c=0;r=A+t|0;e:{A:if(!(1&(a=e[A+4>>2]))){if(!(3&a))break e;t=(a=e[A>>2])+t|0;r:{if((0|(A=A-a|0))!=e[57157]){if(a>>>0<=255){if(n=e[A+8>>2],a=a>>>3|0,(0|(s=e[A+12>>2]))!=(0|n))break r;e[57152]=e[57152]&aa(-2,a);break A}if(c=e[A+24>>2],(0|(a=e[A+12>>2]))==(0|A))if((s=e[(n=A+20|0)>>2])||(s=e[(n=A+16|0)>>2])){for(;o=n,(s=e[(n=(a=s)+20|0)>>2])||(n=a+16|0,s=e[a+16>>2]););e[o>>2]=0}else a=0;else s=e[A+8>>2],e[s+12>>2]=a,e[a+8>>2]=s;if(!c)break A;n=e[A+28>>2];s:{if(e[(s=228912+(n<<2)|0)>>2]==(0|A)){if(e[s>>2]=a,a)break s;e[57153]=e[57153]&aa(-2,n);break A}if(e[c+(e[c+16>>2]==(0|A)?16:20)>>2]=a,!a)break A}if(e[a+24>>2]=c,(s=e[A+16>>2])&&(e[a+16>>2]=s,e[s+24>>2]=a),!(s=e[A+20>>2]))break A;e[a+20>>2]=s,e[s+24>>2]=a;break A}if(3&~(a=e[r+4>>2]))break A;return e[57154]=t,e[r+4>>2]=-2&a,e[A+4>>2]=1|t,void(e[r>>2]=t)}e[n+12>>2]=s,e[s+8>>2]=n}A:{if(!(2&(a=e[r+4>>2]))){if(e[57158]==(0|r)){if(e[57158]=A,t=e[57155]+t|0,e[57155]=t,e[A+4>>2]=1|t,e[57157]!=(0|A))break e;return e[57154]=0,void(e[57157]=0)}if(e[57157]==(0|r))return e[57157]=A,t=e[57154]+t|0,e[57154]=t,e[A+4>>2]=1|t,void(e[A+t>>2]=t);t=(-8&a)+t|0;r:if(a>>>0<=255){if(n=e[r+8>>2],a=a>>>3|0,(0|(s=e[r+12>>2]))==(0|n)){e[57152]=e[57152]&aa(-2,a);break r}e[n+12>>2]=s,e[s+8>>2]=n}else{if(c=e[r+24>>2],(0|r)==(0|(a=e[r+12>>2])))if((n=e[(s=r+20|0)>>2])||(n=e[(s=r+16|0)>>2])){for(;o=s,(n=e[(s=(a=n)+20|0)>>2])||(s=a+16|0,n=e[a+16>>2]););e[o>>2]=0}else a=0;else s=e[r+8>>2],e[s+12>>2]=a,e[a+8>>2]=s;if(c){n=e[r+28>>2];s:{if(e[(s=228912+(n<<2)|0)>>2]==(0|r)){if(e[s>>2]=a,a)break s;e[57153]=e[57153]&aa(-2,n);break r}if(e[c+(e[c+16>>2]==(0|r)?16:20)>>2]=a,!a)break r}e[a+24>>2]=c,(s=e[r+16>>2])&&(e[a+16>>2]=s,e[s+24>>2]=a),(s=e[r+20>>2])&&(e[a+20>>2]=s,e[s+24>>2]=a)}}if(e[A+4>>2]=1|t,e[A+t>>2]=t,e[57157]!=(0|A))break A;return void(e[57154]=t)}e[r+4>>2]=-2&a,e[A+4>>2]=1|t,e[A+t>>2]=t}if(t>>>0<=255)return a=228648+(-8&t)|0,(s=e[57152])&(t=1<<(t>>>3))?t=e[a+8>>2]:(e[57152]=t|s,t=a),e[a+8>>2]=A,e[t+12>>2]=A,e[A+12>>2]=a,void(e[A+8>>2]=t);n=31,t>>>0<=16777215&&(n=62+((t>>>38-(a=Ye(t>>>8|0))&1)-(a<<1)|0)|0),e[A+28>>2]=n,e[A+16>>2]=0,e[A+20>>2]=0,o=228912+(n<<2)|0;A:{if((s=e[57153])&(a=1<>>1|0):0),a=e[o>>2];;){if(s=a,(-8&e[a+4>>2])==(0|t))break A;if(a=n>>>29|0,n<<=1,!(a=e[16+(o=s+(4&a)|0)>>2]))break}e[o+16>>2]=A,e[A+24>>2]=s}else e[57153]=a|s,e[o>>2]=A,e[A+24>>2]=o;return e[A+12>>2]=A,void(e[A+8>>2]=A)}t=e[s+8>>2],e[t+12>>2]=A,e[s+8>>2]=A,e[A+24>>2]=0,e[A+12>>2]=s,e[A+8>>2]=t}}function Hr(A){var t=0,r=0,a=0,s=0,n=0,o=0,c=0,f=0,m=0,p=0,I=0,v=0,T=0;if(!(t=u[88105]))return A;if(A=$a(A,t)){if(!l[88106])return A;if(l[A+1|0]){if(!l[88107]){s=!!(0|(r=l[A+1|0]));e:if(r&&(0|(t=r|l[0|A]<<8))!=(0|(c=l[88106]|l[88105]<<8)))for(r=A+1|0;;){if(s=!!(0|(a=l[(A=r)+1|0])),!a)break e;if(r=A+1|0,(0|c)==(0|(t=a|t<<8&65280)))break}return s?A:0}if(l[A+2|0]){if(!l[88108]){r=A+2|0,s=!!(0|(t=l[A+2|0]));e:if(t&&(0|(t=l[A+1|0]<<16|l[0|A]<<24|t<<8))!=(0|(c=l[88106]<<16|l[88105]<<24|l[88107]<<8)))for(;;){if(A=r+1|0,s=!!(0|(a=l[r+1|0])),!a)break e;if(r=A,(0|c)==(0|(t=(t|a)<<8)))break}else A=r;return s?A-2|0:0}if(l[A+3|0]){if(!l[88109]){r=A+3|0,s=!!(0|(t=l[A+3|0]));e:if(t&&(0|(t=t|l[A+1|0]<<16|l[0|A]<<24|l[A+2|0]<<8))!=(0|(c=(A=l[88105]|l[88106]<<8|l[88107]<<16|l[88108]<<24)<<24|(65280&A)<<8|A>>>8&65280|A>>>24)))for(;;){if(A=r+1|0,s=!!(0|(a=l[r+1|0])),!a)break e;if(r=A,(0|c)==(0|(t=a|t<<8)))break}else A=r;return s?A-3|0:0}c=A,J=f=J-1056|0,e[(A=f+1048|0)>>2]=0,e[A+4>>2]=0,e[(A=f+1040|0)>>2]=0,e[A+4>>2]=0,e[f+1032>>2]=0,e[f+1036>>2]=0,e[f+1024>>2]=0,e[f+1028>>2]=0;e:{A:{r:{s:{if(t=l[88105]){for(;;){if(!l[n+c|0])break A;if(n=n+1|0,e[((255&t)<<2)+f>>2]=n,e[(A=(f+1024|0)+(t>>>3&28)|0)>>2]=e[A>>2]|1<>>0>1)break s}else m=-1,A=1;o=-1,r=1;break r}for(a=1,t=1;;){s:if((0|(o=l[88105+(t+m|0)|0]))!=(0|(s=l[A+88105|0])))s>>>0>>0?(a=A-m|0,r=A,t=1):(m=r,r=r+1|0,a=1,t=1);else{if((0|t)==(0|a)){r=r+a|0,t=1;break s}t=t+1|0}if(!(n>>>0>(A=r+t|0)>>>0))break}if(r=1,o=-1,n>>>0<=1)A=a;else{for(A=0,s=1,t=1;;){s:if((0|(I=l[88105+(t+o|0)|0]))!=(0|(p=l[r+88105|0])))p>>>0>I>>>0?(s=r-o|0,A=r,t=1):(o=A,A=A+1|0,s=1,t=1);else{if((0|t)==(0|s)){A=A+s|0,t=1;break s}t=t+1|0}if(!(n>>>0>(r=A+t|0)>>>0))break}A=a,r=s}}for(t=A,xa(88105,(a=(A=o+1>>>0>m+1>>>0)?r:t)+88105|0,I=(p=A?o:m)+1|0)?(a=((A=~p+n|0)>>>0

>>0?p:A)+1|0,s=0):s=n-a|0,T=n-1|0,v=63|n,o=0,A=c;;){if(!(c-A>>>0>=n>>>0))if(r=rn(c,0,v)){if(c=r,r-A>>>0>>0)break A}else c=c+v|0;r=l[A+T|0],t=n;r:{if(e[(f+1024|0)+(r>>>3&28)>>2]>>>r&1)if((0|(r=e[(r<<2)+f>>2]))==(0|n)){s:{if(m=l[(r=(t=I)>>>0>o>>>0?t:o)+88105|0])for(;;){if(l[A+r|0]!=(255&m))break s;if(!(m=l[88105+(r=r+1|0)|0]))break}for(;;){if(t>>>0<=o>>>0)break e;if(l[88105+(t=t-1|0)|0]!=l[A+t|0])break}t=a,o=s;break r}t=r-p|0}else t=(r=n-r|0)>>>0>o>>>0?r:o;o=0}A=A+t|0}}A=0}J=f+1056|0,r=A}}}}return r}function us(A,t,r,a,s,n){var o,c,f,m,p=0,I=0,v=0;if(J=o=J-560|0,u[o+448|0]=0,u[o+144|0]=0,u[o+120|0]=0,f=34&n,c=t-P(I=(0|t)/100|0,100)|0,1&(m=64&l[A+106|0]?(0|t)>999|n:0)|(0|t)>99){e:{A:{r:{if(!(!f|c)){if(!RA(A,90606,o+304|0))break r;break e}if(c)break A}if(RA(A,90691,o+304|0))break e}RA(A,90725,o+304|0)}p=n,(0|t)<1e3||(p=n,!(8&l[A+105|0])|t-2e3>>>0<4294967196&&(u[o+208|0]=0,ks(A,p=(I>>>0)/10|0,a=16384&e[A+108>>2]?0:s+1|0,!((t>>>0)%1e3|0)|f,o+272|0)||Za(A,p,s,e[A+212>>2]==28012?520:(0|a)<4?(e[A+108>>2]>>>a&1)<<3:0,o+208|0),2&l[A+109|0]?(e[o+108>>2]=15,e[o+100>>2]=15,e[o+104>>2]=o+208,e[o+96>>2]=o+272,DA(o+144|0,90761,o+96|0)):(e[o+92>>2]=15,e[o+84>>2]=15,e[o+88>>2]=o+272,e[o+80>>2]=o+208,DA(o+144|0,90761,o+80|0)),a=1,1&(!!(0|(I=I-P(p,10)|0))|m)||(u[o+304|0]=0),p=1|n)),u[o+208|0]=0;e:if(!(~m&(0|I)<=0))if(!(4&l[A+106|0])|!(1&p|l[o+144|0])||RA(A,90824,o+120|0),!f|(16&l[A+109|0]?0:c)||(e[o+64>>2]=I,DA(a=o+548|0,90875,o- -64|0),v=RA(A,a,o+208|0),!(4096&e[A+108>>2])|(0|c)<=0||sa(o+208|0,133104)),a=1,1&(~m|!!(0|I))){A:{r:{s:{n:{if(!(131072&e[A+108>>2])||1&p|(0|I)!=1){if(c|v||(e[o+48>>2]=I,DA(a=o+548|0,90985,o+48|0),v=RA(A,a,o+208|0)),v||(e[o+32>>2]=I,DA(a=o+548|0,91027,o+32|0),RA(A,a,o+208|0)))break n;if((0|I)!=1)break r;break s}if(!v)break s}u[o+304|0]=0;break A}if(a=1,4&l[A+105|0])break e}Za(A,I,s,0,o+208|0)}a=1}else RA(A,88875,o+208|0);e[o+28>>2]=o+304,e[o+24>>2]=o+208,e[o+20>>2]=o+120,e[o+16>>2]=o+144,DA(o+448|0,91059,o+16|0)}else p=n;u[o+132|0]=0;e:{A:{if((0|c)>0)16&l[A+109|0]&&2&p||(!(1&p)|s&&(0|t)<=100||!(64&(a=e[A+104>>2]))&(!(8388608&a)|c>>>0>9)||RA(A,90824,o+132|0),!(1&p|l[o+144|0])|!(524288&e[A+104>>2])|I||RA(A,90824,o+132|0)),u[o+336|0]=0;else if(u[o+336|0]=0,!c&a)break A;if(s?(n=e[A+108>>2],t=(0|s)<4?(n>>>s&1)<<3:0):(a=f?3:2,t=32&n|((0|t)<100?1&p?a:4|a:a),n=e[A+108>>2]),t=(0|s)==1&&e[A+212>>2]==28012?520|t:t,1048576&n&&(a=16|t,t=(0|I)>0||1&p?a:t),!Za(A,c,s,256&p|t,o+336|0)|!(128&l[A+104|0]))break e;u[o+132|0]=0;break e}l[133104]&&((0|(A=HA(o+448|0)))<=0||l[447+(A=A+o|0)|0]==10&&(u[A+447|0]=0),qA(o+336|0,133104))}e[o+8>>2]=15,e[o+12>>2]=o+336,e[o+4>>2]=o+132,e[o>>2]=o+448,DA(r,91101,o),J=o+560|0}function Kt(A){var t,r,a,s=0,n=0,o=0,c=0,f=0,m=0,p=0,I=0,v=0,T=0,O=0,Z=0;for(s=e[32972],e[s+64>>2]=290816,e[s+68>>2]=4104,e[s+96>>2]=0,e[s+100>>2]=0,e[s+120>>2]=90,e[s+124>>2]=100,e[s+112>>2]=64,e[s+116>>2]=256,e[s+104>>2]=5,e[s+108>>2]=0,e[s+84>>2]=100,e[s+88>>2]=64,n=e[50754],e[s+132>>2]=0,e[s+136>>2]=0,e[s+128>>2]=n,e[s+140>>2]=0,e[s+144>>2]=0,e[s+148>>2]=0,e[s+152>>2]=0,e[s+156>>2]=0,e[s+160>>2]=0,e[36435]=450,e[s+92>>2]=2,e[50870]=0,e[50871]=0,e[50872]=0,e[50873]=0,e[50880]=0,e[50881]=0,e[50882]=0,e[50883]=0,e[50890]=0,e[50891]=0,e[50892]=0,e[50893]=0,o=-3.141592653589793/+e[50754],D[25429]=o,f=-2*o,D[25430]=f,t=(o=Pt(200*o))*-o,D[25434]=t,D[25439]=t,D[25444]=t,o=(f=o*Ga(2e3*f))+f,D[25433]=o,D[25438]=o,D[25443]=o,f=1-o-t,D[25432]=f,D[25437]=f,D[25442]=f,e[50902]=0,e[50903]=0,e[50900]=0,e[50901]=0,D[25449]=t,D[25448]=o,e[50912]=0,e[50913]=0,D[25447]=f,e[50910]=0,e[50911]=0,D[25454]=t,D[25453]=o,e[50922]=0,e[50923]=0,D[25452]=f,e[50920]=0,e[50921]=0,D[25459]=t,D[25458]=o,e[50932]=0,e[50933]=0,D[25457]=f,e[50930]=0,e[50931]=0,D[25464]=t,D[25463]=o,D[25462]=f,e[50942]=0,e[50943]=0,e[50940]=0,e[50941]=0,D[25469]=t,D[25468]=o,D[25467]=f,e[50952]=0,e[50953]=0,e[50950]=0,e[50951]=0,D[25474]=t,D[25473]=o,D[25472]=f,r=e[32972],n=0;b[236+(m=(n<<1)+r|0)>>1]=256,b[m+164>>1]=256,s=l[n+105376|0]<<1,b[m+254>>1]=s,b[m+182>>1]=s,b[m+200>>1]=l[n+105385|0]<<1,e[308+(s=(c=n<<2)+r|0)>>2]=e[c+105408>>2],e[s+272>>2]=0,b[m+218>>1]=0,e[c+200944>>2]=(0|P(e[c+105456>>2],22050))/e[50754],(0|(n=n+1|0))!=9;);for(T=e[32961],n=0,a=r+344|0;;){if(s=p,I=T,m=n,(0|(p=e[(n=131840+(c=n<<2)|0)>>2]))==-1&&(p=8e3,e[n>>2]=8e3,m&&(e[131840+(4|c)>>2]=e[c+131836>>2])),T=e[131840+(4|c)>>2],!((0|s)>=(0|(p=(0|p)/8|0))||(0|(v=p-s|0))<=0||(c=s+1|0,n=s,1&v&&(u[344+(s+r|0)|0]=(0|I)>=255?255:I,n=c),(0|c)==(0|p))))for(O=T-I|0;c=((0|P(n-s|0,O))/(0|v)|0)+I|0,u[n+a|0]=(0|c)>=255?255:c,Z=((0|P((c=n+1|0)-s|0,O))/(0|v)|0)+I|0,u[c+a|0]=(0|Z)>=255?255:Z,(0|p)!=(0|(n=n+2|0)););if(n=m+2|0,!(m>>>0<10))break}n=e[32972],e[n+80>>2]=232,e[n+72>>2]=256,e[n+76>>2]=238,A||(e[49848]=0),b[n+200>>1]=(0|P(b[n+200>>1],105))/100}function Xa(A,t,r){var a,s=0,n=0,o=0,c=0,f=0,m=0,p=0,I=0;J=a=J-288|0,(0|t)!=132848&&Rr(132848,t,40),(0|(s=A+228|0))!=(0|t)&&Rr(s,t,40),e[a+88>>2]=t,e[a+84>>2]=47,e[a+80>>2]=137584,DA(s=a+96|0,84089,a+80|0),n=ss(s),(s=e[A+688>>2])&&(xt(s),e[A+688>>2]=0),s=wa(a+96|0,84577);e:if((0|n)>0&&s)if(r=Ct(n),e[A+688>>2]=r,r)if(m=mi(r,n,s),ta(s),m>>>0<=1032)e[a+16>>2]=a+96,fr(e[30450],85164,a+16|0),r=2;else if(s=e[A+688>>2],r=e[s+4>>2],!((0|(n=e[s>>2]))!=1024|(0|r)<=0)&(0|r)<134217729){s=r+s|0,e[A+684>>2]=s,I=jA(A+5168|0,0,1024),jA(A+7664|0,0,260),jA(A+7924|0,255,256),jA(A+4788|0,0,380),jA(A+6192|0,0,512);A:if((0|(r=l[0|s]))!=7)for(;;){if((0|(n=255&r))!=6){if(!n)break A;n=e[A+684>>2],e[a+72>>2]=r<<24>>24,e[a+64>>2]=132848,e[a+68>>2]=s-n,fr(e[30450],88950,a- -64|0);break}r:{s:{n:{c:{o:switch((n=l[0|(r=s+1|0)])-18|0){case 0:break c;case 2:break o;default:break n}for(r=4+(-4&r)|0,e[A+180>>2]=r;r=(s=r)+1|0,!Hi(s););for(;n=l[0|s],r=s,s=s+1|0,(0|n)!=7;);break r}if(r=s+3|0,(0|(s=((0|(s=u[s+2|0]))<65?191:-65)+s|0))>94)break s;e[4788+((s<<2)+A|0)>>2]=r;break s}switch(r=1+((c=HA(r))+r|0)|0,0|c){case 1:e[5168+((n<<2)+A|0)>>2]=r;break s;case 0:e[I>>2]=r;break s}c=l[s+2|0],(0|n)!=1?(s=e[A+7664>>2],l[0|(p=7924+(o=A+n|0)|0)]==255&&(u[0|p]=s),u[0|(o=o+7668|0)]=l[0|o]+1,e[6704+(o=(s<<2)+A|0)>>2]=r,e[A+7664>>2]=s+1,e[o+7184>>2]=n|c<<8):e[6188+((c<<2)+A|0)>>2]=r}if(l[0|r]!=7)for(;r=1+(HA(r)+r|0)|0,l[0|r]!=7;);}r=l[0|(s=r+1|0)]}for(s=e[A+688>>2]+8|0;;){for(e[692+((r=f<<2)+A|0)>>2]=s;n=l[0|s];)s=s+n|0;for(s=s+1|0,e[692+((4|r)+A|0)>>2]=s;r=l[0|s];)s=r+s|0;if(s=s+1|0,(0|(f=f+2|0))==1024)break}r=0,(0|(A=e[A+324>>2]))<=0|A>>>0<=m>>>0||(e[a+48>>2]=t,fr(e[30450],85519,a+48|0))}else e[a+40>>2]=r,e[a+36>>2]=n,e[a+32>>2]=a+96,fr(e[30450],85349,a+32|0),r=2;else ta(s),r=3;else{if(r||(e[a>>2]=a+96,fr(e[30450],84963,a)),r=1,!s)break e;ta(s)}return J=a+288|0,r}function gs(A){var t,r=0,a=0;for(t=jA(A+344|0,0,256),u[A+364|0]=1,u[A+356|0]=1,u[A+357|0]=1,u[A+358|0]=1,u[A+359|0]=1,u[A+360|0]=1,u[A+361|0]=1,u[A+362|0]=1,u[A+363|0]=1,u[A+348|0]=1,u[A+349|0]=1,u[A+350|0]=1,u[A+351|0]=1,u[A+352|0]=1,u[A+353|0]=1,u[A+354|0]=1,u[A+355|0]=1,u[A+431|0]=3,u[A+429|0]=3,u[A+430|0]=3,u[A+406|0]=3,u[A+407|0]=3,u[A+408|0]=3,u[A+409|0]=3,u[A+410|0]=3,u[A+411|0]=3,u[A+412|0]=3,u[A+413|0]=3,u[A+414|0]=3,u[A+415|0]=3,u[A+416|0]=3,u[A+417|0]=3,u[A+418|0]=3,u[A+419|0]=3,u[A+420|0]=3,u[A+421|0]=3,u[A+440|0]=3,u[A+441|0]=3,u[A+442|0]=3,u[A+443|0]=3,a=21;u[344+(r=A+a|0)|0]=4|l[r+344|0],(0|(r=a+1|0))!=58;)u[0|(r=r+t|0)]=4|l[0|r],u[2+(r=a+t|0)|0]=4|l[r+2|0],u[r+3|0]=4|l[r+3|0],a=a+4|0;u[A+346|0]=4|l[A+346|0],u[A+347|0]=4|l[A+347|0],u[A+432|0]=4|l[A+432|0],u[A+433|0]=4|l[A+433|0],u[A+434|0]=4|l[A+434|0],u[A+435|0]=4|l[A+435|0],u[A+436|0]=4|l[A+436|0],u[A+437|0]=4|l[A+437|0],u[A+438|0]=4|l[A+438|0],u[A+439|0]=4|l[A+439|0],u[A+467|0]=4|l[A+467|0],u[A+468|0]=4|l[A+468|0],u[A+470|0]=4|l[A+470|0],u[A+471|0]=4|l[A+471|0],u[A+348|0]=64|l[A+348|0],u[A+349|0]=64|l[A+349|0],u[A+350|0]=64|l[A+350|0],u[A+351|0]=64|l[A+351|0],u[A+352|0]=64|l[A+352|0],u[A+353|0]=64|l[A+353|0],u[A+354|0]=64|l[A+354|0],u[A+355|0]=64|l[A+355|0],u[A+356|0]=64|l[A+356|0],u[A+357|0]=64|l[A+357|0],u[A+358|0]=64|l[A+358|0],u[A+359|0]=64|l[A+359|0],u[A+360|0]=64|l[A+360|0],u[A+361|0]=64|l[A+361|0],u[A+362|0]=64|l[A+362|0],u[A+363|0]=64|l[A+363|0],u[A+364|0]=64|l[A+364|0],u[A+406|0]=64|l[A+406|0],u[A+407|0]=64|l[A+407|0],u[A+408|0]=64|l[A+408|0],u[A+409|0]=64|l[A+409|0],u[A+410|0]=64|l[A+410|0],u[A+411|0]=64|l[A+411|0],u[A+412|0]=64|l[A+412|0],u[A+413|0]=64|l[A+413|0],u[A+414|0]=64|l[A+414|0],u[A+415|0]=64|l[A+415|0],u[A+416|0]=64|l[A+416|0],u[A+417|0]=64|l[A+417|0],u[A+418|0]=64|l[A+418|0],u[A+419|0]=64|l[A+419|0],u[A+420|0]=64|l[A+420|0],u[A+440|0]=64|l[A+440|0],u[A+441|0]=64|l[A+441|0],u[A+429|0]=64|l[A+429|0],u[A+430|0]=64|l[A+430|0],u[A+431|0]=64|l[A+431|0],u[A+442|0]=64|l[A+442|0],u[A+443|0]=64|l[A+443|0],e[A+40>>2]=1,e[A+204>>2]=e[A+600>>2]+77}function mn(A,t,r,a,s,n,o,c,f){var m,p=0,I=0,v=0,T=0,O=0,Z=0,ee=0,ce=0,he=0,ye=0;J=m=J-128|0;e:{A:{if(uA(n,o,c,f,0,0,0,0)){I=65535&f;r:s:{if((0|(T=f>>>16&32767))!=32767){if(p=4,T)break s;p=n|c|o|I?3:2;break r}p=!(n|c|o|I)}if((0|(O=32767&(he=s>>>16|0)))!=32767&&p)break A}PA(m+16|0,t,r,a,s,n,o,c,f),Qr(m,t=e[m+16>>2],a=e[m+20>>2],s=e[m+24>>2],r=e[m+28>>2],t,a,s,r),a=e[m+8>>2],s=e[m+12>>2],c=e[m>>2],f=e[m+4>>2];break e}if(T=c,(0|uA(t,r,p=a,Z=2147483647&s,n,o,c,v=2147483647&f))<=0){if(uA(t,r,p,Z,n,o,T,v)){c=t,f=r;break e}PA(m+112|0,t,r,a,s,0,0,0,0),a=e[m+120>>2],s=e[m+124>>2],c=e[m+112>>2],f=e[m+116>>2]}else{if(ee=f>>>16&32767,O?(f=r,c=t):(PA(m+96|0,t,r,p,Z,0,0,0,1081540608),p=e[m+104>>2],Z=c=e[m+108>>2],O=(c>>>16|0)-120|0,f=e[m+100>>2],c=e[m+96>>2]),ee||(PA(m+80|0,n,o,T,v,0,0,0,1081540608),T=e[m+88>>2],v=n=e[m+92>>2],ee=(n>>>16|0)-120|0,o=e[m+84>>2],n=e[m+80>>2]),ce=T,ye=65535&v|65536,Z=65535&Z|65536,(0|O)>(0|ee)){for(;;){if(T=(v=p-ce|0)-(I=(0|o)==(0|f)&n>>>0>c>>>0|o>>>0>f>>>0)|0,(0|(I=(Z-((p>>>0>>0)+ye|0)|0)-(I>>>0>v>>>0)|0))>0|(0|I)>=0){if(p=c,!((c=c-n|0)|T|(f=f-((n>>>0>p>>>0)+o|0)|0)|I)){PA(m+32|0,t,r,a,s,0,0,0,0),a=e[m+40>>2],s=e[m+44>>2],c=e[m+32>>2],f=e[m+36>>2];break e}I=I<<1|T>>>31,p=T<<1|f>>>31}else I=Z<<1|p>>>31,p=p<<1|f>>>31;if(Z=I,I=f<<1|c>>>31,c<<=1,f=I,!((0|(O=O-1|0))>(0|ee)))break}O=ee}if(T=(v=p-ce|0)-(I=(0|o)==(0|f)&n>>>0>c>>>0|o>>>0>f>>>0)|0,v=I=(Z-((p>>>0>>0)+ye|0)|0)-(I>>>0>v>>>0)|0,(0|I)<0)T=p,v=Z;else if(p=c,!((c=c-n|0)|T|(f=f-((n>>>0>p>>>0)+o|0)|0)|v)){PA(m+48|0,t,r,a,s,0,0,0,0),a=e[m+56>>2],s=e[m+60>>2],c=e[m+48>>2],f=e[m+52>>2];break e}if((0|v)==65535|v>>>0<65535)for(;t=f>>>31|0,O=O-1|0,Z=f<<1|c>>>31,c<<=1,f=Z,r=t,t=v<<1|T>>>31,T=r|T<<1,v=t,t>>>0<65536;);t=32768&he,(0|O)<=0?(PA(m- -64|0,c,f,T,65535&v|(t|O+120)<<16,0,0,0,1065811968),a=e[m+72>>2],s=e[m+76>>2],c=e[m+64>>2],f=e[m+68>>2]):(a=T,s=65535&v|(t|O)<<16)}}e[A>>2]=c,e[A+4>>2]=f,e[A+8>>2]=a,e[A+12>>2]=s,J=m+128|0}function _s(A,t,r){var a,s,n=0,o=0,c=0,f=0,m=0,p=0,I=0,v=0,T=0;if(J=a=J-1040|0,(0|(o=p0(A,589824,0)))>=0&&((n=x0(1,2072))?e[n+8>>2]=o:(GA(0|o),n=0)),s=n,n){e:if(n=g0(s))for(T=e[30450],v=(a+96|0)+t|0;;){if((0|(o=e[50303]))>=348){e[a+4>>2]=350,e[a>>2]=o+1,fr(T,91860,a);break e}if(l[n+19|0]!=46)if(e[a+88>>2]=n+19,e[a+84>>2]=47,e[a+80>>2]=A,DA(n=a+96|0,91924,a+80|0),(0|(n=ss(n)))!=-31){if(!((0|n)<=0)&&(I=wa(a+96|0,85712))){c=0,u[a+832|0]=0,u[a+752|0]=0,e[a+360>>2]=0,e[a+356>>2]=4,m=0;A:for(;;){for(p=299-m|0;Jt(a+912|0,120,I);){n=a+912|0;r:{if(l[a+912|0]!=35){s:if(!((0|(n=HA(a+912|0)-1|0))<=0))for(;;){if(!((0|(o=u[0|(f=(a+912|0)+n|0)]))==32|o-9>>>0<5))break s;if(u[0|f]=0,!((0|(n=n-1|0))>0))break}if(!(n=Hr(a+912|0)))break r}u[0|n]=0}n=a+912|0;r:if(o=l[a+912|0])for(;;){if(Or(o<<24>>24))break r;if(!(o=l[0|(n=n+1|0)]))break}if(u[0|n]=0,l[a+912|0]){n=n+1|0;r:switch(Cs(131904,a+912|0)-1|0){case 0:for(;o=n,n=n+1|0,(0|(f=u[0|o]))==32|f-9>>>0<5;);ar(a+832|0,o,80);continue;case 1:if(u[a+672|0]=0,e[a+364>>2]=5,o=a+672|0,e[a+16>>2]=o,e[a+20>>2]=a+364,gt(n,86237,a+16|0),(o=HA(o)+2|0)>>>0>=p>>>0)continue;u[0|(n=(a+368|0)+m|0)]=e[a+364>>2],qA(n+1|0,a+672|0),c=c+1|0,m=o+m|0;continue A;case 2:if(e[a+52>>2]=a+360,e[a+48>>2]=a+752,gt(n,86237,a+48|0),!r)continue;e[a+32>>2]=v,fr(T,92042,a+32|0);continue;case 5:break r;default:continue}e[a+64>>2]=a+356,gt(n,87268,a- -64|0)}}break}u[(a+368|0)+m|0]=0,o=Cs(132112,a+752|0),c?(f=HA(v)+m|0,p=wt((c=x0(28+(HA(a+832|0)+f|0)|0,1))+24|0,a+368|0,n=m+1|0),e[c+4>>2]=p,n=qA(n+p|0,v),e[c>>2]=n,e[c+8>>2]=n,l[a+832|0]&&(e[c>>2]=qA(2+(f+p|0)|0,a+832|0)),n=e[a+360>>2],u[c+14|0]=0,u[c+12|0]=o,u[c+13|0]=n,u[c+15|0]=e[a+356>>2],ta(I),n=e[50303],e[50303]=n+1,e[201216+(n<<2)>>2]=c):ta(I)}}else _s(a+96|0,t,r);if(!(n=g0(s)))break}v0(e[s+8>>2]),xt(s)}J=a+1040|0}function $s(A,t){var r,a=0,s=0,n=0,o=0,c=0,f=0,m=0,p=0,I=0;J=r=J-352|0;e:if(A||(A=e[136284+(t<<4)>>2])){l[0|A]!=47&&(e[r+12>>2]=A,e[r+4>>2]=47,e[r+8>>2]=47,e[r>>2]=137584,DA(A=r+16|0,84114,r)),u[r+240|0]=0;A:{r:{if(a=wa(A,84577)){if((0|Ni(a,20))==-1)break A;if(n=Si(a),s=Si(a),c=Si(a),!((0|n)!=65537|(0|s)!=e[50754])&(0|c)==s<<1)break r;ta(a),b[r+256>>1]=l[84864]|l[84865]<<8,A=l[84852]|l[84853]<<8|l[84854]<<16|l[84855]<<24,e[r+240>>2]=l[84848]|l[84849]<<8|l[84850]<<16|l[84851]<<24,e[r+244>>2]=A,A=l[84860]|l[84861]<<8|l[84862]<<16|l[84863]<<24,e[r+248>>2]=l[84856]|l[84857]<<8|l[84858]<<16|l[84859]<<24,e[r+252>>2]=A,J=n=J-16|0;s:{if((a=HA(A=r+240|0))>>>0>=6&&!xa(c=(A+a|0)-6|0,84274,6)){for(m=100;;){for(f=0,J=a=J-16|0,l[227196]||(u[227197]=aA(),u[227196]=1),I=+Ue(),Ne(o=I/1e3)<9223372036854776e3?(p=Ne(o)>=1?~~(o>0?Je(AA(23283064365386963e-26*o),4294967295):xA(23283064365386963e-26*(o-+(~~o>>>0>>>0))))>>>0:0,s=~~o>>>0):(p=-2147483648,s=0),e[a>>2]=s,e[a+4>>2]=p,o=1e3*(I-(+(It(s,p,1e3,0)>>>0)+4294967296*+(0|$)))*1e3,s=Ne(o)<2147483648?~~o:-2147483648,e[a+8>>2]=s,s=c+(a>>>4|0)^P(e[a+8>>2],65537);u[c+f|0]=65+(15&s|s<<1&32),s=s>>>5|0,(0|(f=f+1|0))!=6;);if(J=a+16|0,e[n>>2]=384,(0|(a=p0(A,194,n)))>=0)break s;if(m=m-1|0,e[56798]!=20||!m)break}wt(c,84274,6)}else e[56798]=28;a=-1}J=n+16|0,(0|a)<0||v0(a)}if(!(a=wa(A,84577))){A=ps(0,e[56798],A);break e}}if((0|(n=ss(A)))<0){ta(a),A=ps(0,0-n|0,A);break e}if((0|Ni(a,0))==-1){t=e[56798],ta(a),A=ps(0,t,A);break e}if(!(s=Ur(e[(c=136280+(t<<4)|0)>>2],n))){ta(a),A=48;break e}if((0|mi(s,n,a))!=(0|n)){t=e[56798],ta(a),l[r+240|0]&&Fi(r+240|0),xt(s),A=ps(0,t,A);break e}ta(a),l[r+240|0]&&Fi(r+240|0),e[136276+(t<<4)>>2]=(l[s+40|0]|l[s+41|0]<<8|l[s+42|0]<<16|l[s+43|0]<<24)/2,e[c>>2]=s,A=0;break e}t=e[56798],ta(a),A=ps(0,t,A)}else A=28;return J=r+352|0,A}function Cn(A,t,r,a,s,n){var o,c=0,f=0,m=0,p=0,I=0,v=0,T=0,O=0,Z=0,ee=0,ce=0,he=0,ye=0,Qe=0;for(u[0|r]=1,o=1&n,ye=1,Z=-1,ee=-1,p=1,n=t;;){Qe=he-2|0,ce=I,T=ee;e:{A:{for(;;){if(!(v=l[0|n])){ee=T,I=ce;break e}if(n=n+1|0,O=e[144464+(v<<2)>>2]){r:{if((0|(c=l[O+11|0]))!=1){if(16&l[O+6|0]|(0|c)!=2)break r;u[0|(I=r+p|0)]=Z,c=(0|Z)<4|(0|T)>(0|Z),!(2&l[O+4|0])|!o|(0|Z)>=0||(u[0|I]=1),I=c?ce:p,ee=c?T:Z,Z=-1,p=p+1|0;break A}if(!M[O+8>>1]){c=0,m=p;s:if((0|v)!=8)c=l[O+14|0],e[s>>2]&&c>>>0>=4||(T=(0|c)<(0|T)?T:c,Z=c);else{for(;;){if(v=c,m=m-1|0,e[s>>2]|(0|m)<=0||(0|(O=u[0|(f=r+m|0)]))>3)break s;if(c=v+1|0,!(O>>>0<2))break}if(u[0|f]=4,ce=(0|T)<4?m:ce,T=(0|T)<=4?4:T,m>>>0<2)break s;if(O=3&(m=~v+he|0),c=1,Qe-v>>>0>=3)for(v=-4&m,m=0;l[0|(f=r+c|0)]==4&&(u[0|f]=3),l[f+1|0]==4&&(u[f+1|0]=3),l[f+2|0]==4&&(u[f+2|0]=3),l[f+3|0]==4&&(u[f+3|0]=3),c=c+4|0,(0|v)!=(0|(m=m+4|0)););if(f=0,!O)break s;for(;l[0|(v=r+c|0)]==4&&(u[0|v]=3),c=c+1|0,(0|O)!=(0|(f=f+1|0)););}if(ye)continue;break e}}break}}ee=T,I=ce,(0|v)==20&&(u[r+p|0]=o&&(0|Z)<0?1:Z,p=p+1|0)}if(u[0|t]=v,he=p-1|0,t=t+1|0,ye=(0|p)<99)continue}break}u[r+p|0]=1,u[0|t]=0;e:if((0|(t=e[s>>2]))>0)ee=4,(0|t)>=(0|p)&&(e[s>>2]=he,t=he),u[t+r|0]=4,I=e[s>>2];else if((0|ee)==5&&(ee=4,!((0|p)<2))){if(n=1,T=1&(t=p-1|0),(0|p)!=2)for(ce=-2&t,m=0;;){f=4;A:{r:{s:switch(l[0|(t=(c=n)+r|0)]-4|0){case 1:break r;case 0:break s;default:break A}f=2&l[A+14|0]?1:3,c=I}u[0|t]=f,I=c}f=4;A:{r:{s:switch(l[0|(t=(c=n+1|0)+r|0)]-4|0){case 1:break r;case 0:break s;default:break A}f=2&l[A+14|0]?1:3,c=I}u[0|t]=f,I=c}if(n=n+2|0,(0|ce)==(0|(m=m+2|0)))break}if(T){f=4;A:{r:switch(l[0|(t=r+n|0)]-4|0){case 1:break A;case 0:break r;default:break e}f=2&l[A+14|0]?1:3,n=I}u[0|t]=f,I=n}}return e[s>>2]=I,e[a>>2]=p,ee}function Ur(A,t){var r,a,s=0,n=0,o=0,c=0,f=0,m=0,p=0,I=0,v=0;if(!A)return Ct(t);if(t>>>0>=4294967232)return e[56798]=48,0;r=t>>>0<11?16:t+11&-8,o=-8&(a=e[4+(c=A-8|0)>>2]);e:if(3&a){f=o+c|0;A:if(o>>>0>=r>>>0){if((n=o-r|0)>>>0<16)break A;e[c+4>>2]=1&a|r|2,e[4+(s=c+r|0)>>2]=3|n,e[f+4>>2]=1|e[f+4>>2],Tr(s,n)}else if(e[57158]!=(0|f))if(e[57157]!=(0|f)){if(2&(n=e[f+4>>2])||(p=o+(-8&n)|0)>>>0>>0)break e;v=p-r|0;r:if(n>>>0<=255){if(o=e[f+8>>2],s=n>>>3|0,(0|(n=e[f+12>>2]))==(0|o)){e[57152]=e[57152]&aa(-2,s);break r}e[o+12>>2]=n,e[n+8>>2]=o}else{if(I=e[f+24>>2],(0|(m=e[f+12>>2]))==(0|f))if((s=e[(o=f+20|0)>>2])||(s=e[(o=f+16|0)>>2])){for(;n=o,m=s,(s=e[(o=s+20|0)>>2])||(o=m+16|0,s=e[m+16>>2]););e[n>>2]=0}else m=0;else s=e[f+8>>2],e[s+12>>2]=m,e[m+8>>2]=s;if(I){n=e[f+28>>2];s:{if(e[(s=228912+(n<<2)|0)>>2]==(0|f)){if(e[s>>2]=m,m)break s;e[57153]=e[57153]&aa(-2,n);break r}if(e[(e[I+16>>2]==(0|f)?16:20)+I>>2]=m,!m)break r}e[m+24>>2]=I,(s=e[f+16>>2])&&(e[m+16>>2]=s,e[s+24>>2]=m),(s=e[f+20>>2])&&(e[m+20>>2]=s,e[s+24>>2]=m)}}v>>>0<=15?(e[c+4>>2]=1&a|p|2,e[4+(s=c+p|0)>>2]=1|e[s+4>>2]):(e[c+4>>2]=1&a|r|2,e[4+(n=c+r|0)>>2]=3|v,e[4+(s=c+p|0)>>2]=1|e[s+4>>2],Tr(n,v))}else{if((n=o+e[57154]|0)>>>0>>0)break e;(s=n-r|0)>>>0>=16?(e[c+4>>2]=1&a|r|2,e[4+(o=c+r|0)>>2]=1|s,e[(n=n+c|0)>>2]=s,e[n+4>>2]=-2&e[n+4>>2]):(e[c+4>>2]=n|1&a|2,e[4+(s=n+c|0)>>2]=1|e[s+4>>2],s=0,o=0),e[57157]=o,e[57154]=s}else{if((o=o+e[57155]|0)>>>0<=r>>>0)break e;e[c+4>>2]=1&a|r|2,s=o-r|0,e[4+(n=c+r|0)>>2]=1|s,e[57155]=s,e[57158]=n}s=c}else{if(r>>>0<256||o>>>0>=r+4>>>0&&(s=c,o-r>>>0<=e[57272]<<1>>>0))break e;s=0}return s?s+8|0:(c=Ct(t))?(wt(c,A,t>>>0>(s=(3&(s=e[A-4>>2])?-4:-8)+(-8&s)|0)>>>0?s:t),xt(A),c):0}function ts(){var A,t,r=0,a=0;return A=za(12),e[A>>2]=22050,t=za(432),e[(a=t)+4>>2]=0,e[a+8>>2]=0,e[a>>2]=132304,e[a+32>>2]=0,e[a+12>>2]=0,e[a+16>>2]=0,e[a+20>>2]=0,e[a+24>>2]=0,jA(a+40|0,0,376),e[a+420>>2]=0,e[a+424>>2]=-1,u[a+416|0]=1,r=jA(za(408),0,408),e[a+28>>2]=r,u[r+8|0]=1,e[A+4>>2]=a,r=za(1096),e[r+8>>2]=22050,e[r+4>>2]=22050,e[r>>2]=132352,e[r+64>>2]=22050,e[r+56>>2]=0,e[r+60>>2]=0,e[r+32>>2]=0,e[r+36>>2]=0,e[r+24>>2]=22050,e[r+16>>2]=0,e[r+20>>2]=0,e[r+40>>2]=0,e[r+44>>2]=0,u[r+48|0]=0,e[r+128>>2]=0,e[r+132>>2]=0,b[r+96>>1]=0,e[r+72>>2]=22050,e[r+136>>2]=0,e[r+140>>2]=0,b[r+168>>1]=0,e[r+144>>2]=22050,e[r+200>>2]=0,e[r+204>>2]=0,e[r+208>>2]=0,e[r+212>>2]=0,e[r+216>>2]=22050,b[r+240>>1]=0,e[r+280>>2]=0,e[r+284>>2]=0,e[r+272>>2]=0,e[r+276>>2]=0,e[r+288>>2]=22050,b[r+312>>1]=0,e[r+344>>2]=0,e[r+348>>2]=0,e[r+352>>2]=0,e[r+356>>2]=0,e[r+360>>2]=22050,b[r+384>>1]=0,e[r+416>>2]=0,e[r+420>>2]=0,e[r+424>>2]=0,e[r+428>>2]=0,e[r+432>>2]=22050,b[r+456>>1]=0,e[r+488>>2]=0,e[r+492>>2]=0,e[r+496>>2]=0,e[r+500>>2]=0,e[r+504>>2]=22050,b[r+528>>1]=1,e[r+560>>2]=0,e[r+564>>2]=0,e[r+568>>2]=0,e[r+572>>2]=0,b[r+600>>1]=0,e[r+576>>2]=22050,e[r+640>>2]=0,e[r+644>>2]=0,e[r+632>>2]=0,e[r+636>>2]=0,b[r+680>>1]=0,e[r+656>>2]=22050,e[r+648>>2]=22050,e[r+720>>2]=0,e[r+724>>2]=0,e[r+712>>2]=0,e[r+716>>2]=0,b[r+752>>1]=0,e[r+728>>2]=22050,e[r+792>>2]=0,e[r+796>>2]=0,e[r+784>>2]=0,e[r+788>>2]=0,b[r+824>>1]=0,e[r+800>>2]=22050,e[r+864>>2]=0,e[r+868>>2]=0,e[r+856>>2]=0,e[r+860>>2]=0,e[r+872>>2]=22050,b[r+896>>1]=0,e[r+936>>2]=0,e[r+940>>2]=0,e[r+928>>2]=0,e[r+932>>2]=0,b[r+968>>1]=0,e[r+944>>2]=22050,e[r+1008>>2]=0,e[r+1012>>2]=0,e[r+1e3>>2]=0,e[r+1004>>2]=0,b[r+1040>>1]=0,e[r+1016>>2]=22050,e[r+1088>>2]=0,e[(a=r+1080|0)>>2]=0,e[a+4>>2]=0,e[(a=r+1072|0)>>2]=0,e[a+4>>2]=0,e[A+8>>2]=r,ct[e[e[r>>2]+4>>2]](r,t),A}function ds(A,t,r){var a=0,s=0,n=0,o=0,c=0,f=0,m=0,p=0,I=0,v=0,T=0;e:if(I=e[50759]){if(a=e[50980],s=P(a,80)+222176|0,(0|(f=(0|(s=(0|(s=(e[s+12>>2]+e[s>>2]|0)/(0|A)|0))<(0|(p=((0|P(e[50754],19))/40<<16)/(0|A)|0))?s:p))>=399?399:s))>=0&&(jA(t,0,4+(f<<2)|0),a=e[50980]),(0|a)>=0)for(v=e[50801];;){if(n=P(o,80)+222176|0,e[n+4>>2]&&(c=e[n>>2])){if(T=c+e[n+12>>2]|0,a=1+((c-e[n+8>>2]|0)/(0|A)|0)|0,(0|c)>(0|(a=P(s=(0|a)<=1?1:a,A))))for(;e[(m=(s<<2)+t|0)>>2]=e[m>>2]+P(e[n+4>>2],l[((c-a|0)/(e[n+8>>2]>>8)|0)+v|0]),s=s+1|0,(0|c)>(0|(a=A+a|0)););if(!((0|a)>=(0|T)))for(;e[(m=(s<<2)+t|0)>>2]=e[m>>2]+P(e[n+4>>2],l[((a-c|0)/(e[n+12>>2]>>8)|0)+v|0]),s=s+1|0,(0|T)>(0|(a=A+a|0)););}if(!((0|(o=o+1|0))<=e[50980]))break}if(s=1,!((0|(n=65536e3/(0|A)|0))<=0||(0|(a=P(e[55565],10)))<=0))for(n=(0|a)/(0|n)|0;e[(c=(s<<2)+t|0)>>2]=e[c>>2]+a,s=s+1|0,(0|(a=a-n|0))>0;);if((0|o)<=8)for(;s=203216+(a=o<<2)|0,n=P(o,80)+222176|0,c=e[n+4>>2]>>14,e[s>>2]=(0|P(P(c,c),5))/2,r?a=e[a+203264>>2]:(c=a+203264|0,a=e[n>>2]/(0|A)|0,e[c>>2]=a),(0|a)>=(0|p)&&(e[s>>2]=0),(0|(o=o+1|0))!=9;);if(s=0,(0|f)>=0)for(a=0;n=e[(o=(a<<2)+t|0)>>2]>>15,n=P(n,n)>>8,e[o>>2]=n,(0|s)<=524287999&&(e[o>>2]=P(n,l[344+((s>>19)+I|0)|0])>>13),s=A+s|0,o=(0|a)!=(0|f),a=a+1|0,o;);if(e[t+4>>2]=(0|P(e[t+4>>2],l[203300]?6:10))/8,1&r)for(A=e[50826],a=1;;){if(e[203312+(r=a<<2)>>2]=e[t+r>>2]-e[A+r>>2]>>3,(0|(r=a+1|0))==30)break e;e[203312+(r<<=2)>>2]=e[t+r>>2]-e[A+r>>2]>>3,a=a+2|0}}else f=1;return f}function en(A,t,r,a){var s,n=0,o=0;J=s=J-176|0,u[0|A]=0,b[s+80>>1]=24320,e[s+104>>2]=0,e[s+108>>2]=0,u[82+(zr(r,n=s+80|2)+s|0)|0]=0;e:{A:{if(!a){if(a=s+80|1,e[s+12>>2]=a,kr(t,s+12|0,s+16|0,s+104|0,0,0)||(e[s+12>>2]=n,kr(t,s+12|0,s+16|0,s+104|0,0,0)||(u[s+81|0]=32,qt(t,n,s+16|0,60,0,0,0))),(r=l[s+16|0])&&(0|r)!=21)break A;r:{if(e[t+212>>2]!=25966){if(wi(85719,188772,189296),u[s+81|0]=95,e[s+12>>2]=a,kr(e[47193],s+12|0,s+16|0,s+104|0,0,0)||(e[s+12>>2]=n,kr(e[47193],s+12|0,s+16|0,s+104|0,0,0)),l[s+16|0])break r;ha(e[e[32972]+60>>2]),r=l[s+16|0]}if(255&r)break A;t=l[87124]|l[87125]<<8|l[87126]<<16|l[87127]<<24,r=l[87120]|l[87121]<<8|l[87122]<<16|l[87123]<<24,u[0|A]=r,u[A+1|0]=r>>>8,u[A+2|0]=r>>>16,u[A+3|0]=r>>>24,u[A+4|0]=t,u[A+5|0]=t>>>8,u[A+6|0]=t>>>16,u[A+7|0]=t>>>24,u[A+16|0]=l[87136],t=l[87132]|l[87133]<<8|l[87134]<<16|l[87135]<<24,r=l[87128]|l[87129]<<8|l[87130]<<16|l[87131]<<24,u[A+8|0]=r,u[A+9|0]=r>>>8,u[A+10|0]=r>>>16,u[A+11|0]=r>>>24,u[A+12|0]=t,u[A+13|0]=t>>>8,u[A+14|0]=t>>>16,u[A+15|0]=t>>>24;break e}a=s+16|0,n=s+104|0,J=r=J-112|0,(o=e[47193])?($t(o,a,n,-1,0),JA(n=a,a=r+48|0),t=e[t+212>>2],u[r+43|0]=t>>>24,u[0|(o=(n=r+43|0)+(t>>>0>16777215)|0)]=t>>>16,u[0|(o=o+!!(16711680&t)|0)]=t>>>8,u[0|(o=o+!!(65280&t)|0)]=t,u[o+!!(255&t)|0]=0,e[r+16>>2]=85719,e[r+24>>2]=n,e[r+20>>2]=a,DA(A,85662,r+16|0)):($t(t,a,n,-1,0),JA(a,t=r+48|0),e[r>>2]=t,DA(A,85451,r)),J=r+112|0,ha(e[e[32972]+60>>2]);break e}if(e[s+12>>2]=n,kr(t,s+12|0,s+16|0,s+104|0,0,0),!l[s+16|0])break e}$t(r=t,t=s+16|0,s+104|0,-1,0),JA(r=t,t=s+112|0),e[s>>2]=t,DA(A,85451,s)}return J=s+176|0,A}function qa(A,t){var r,a=0,s=0,n=0,o=0,c=0,f=0,m=0,p=0,I=0,v=0,T=0,O=0,Z=0,ee=0,ce=0,he=0,ye=0,Qe=0;if(J=r=J-112|0,e[r+72>>2]=-1,e[(a=r- -64|0)>>2]=-1,e[a+4>>2]=-1,e[r+56>>2]=-1,e[r+60>>2]=-1,e[r+48>>2]=-1,e[r+52>>2]=-1,e[r+40>>2]=-1,e[r+44>>2]=-1,e[r+32>>2]=-1,e[r+36>>2]=-1,e[r+24>>2]=-1,e[r+28>>2]=-1,e[r+16>>2]=-1,e[r+20>>2]=-1,(0|t)>0){for(n=e[r+72>>2],o=e[r+68>>2],c=e[r+64>>2],f=e[r+60>>2],m=e[r+56>>2],p=e[r+52>>2],I=e[r+48>>2],v=e[r+44>>2],T=e[r+40>>2],O=e[r+36>>2],Z=e[r+32>>2],ee=e[r+28>>2],ce=e[r+24>>2],he=e[r+20>>2],ye=e[r+16>>2];s=n,n=(0|(n=e[60+(a=134912+(Qe<<6)|0)>>2]))<0?s:n,s=o,o=(0|(o=e[a+56>>2]))<0?s:o,s=c,c=(0|(c=e[a+52>>2]))<0?s:c,s=f,f=(0|(f=e[a+48>>2]))<0?s:f,s=m,m=(0|(m=e[a+44>>2]))<0?s:m,s=p,p=(0|(p=e[a+40>>2]))<0?s:p,s=I,I=(0|(I=e[a+36>>2]))<0?s:I,s=v,v=(0|(v=e[a+32>>2]))<0?s:v,s=T,T=(0|(T=e[a+28>>2]))<0?s:T,s=O,O=(0|(O=e[a+24>>2]))<0?s:O,s=Z,Z=(0|(Z=e[a+20>>2]))<0?s:Z,s=ee,ee=(0|(ee=e[a+16>>2]))<0?s:ee,s=ce,ce=(0|(ce=e[a+12>>2]))<0?s:ce,s=he,he=(0|(he=e[a+8>>2]))<0?s:he,ye=(0|(a=e[a+4>>2]))<0?ye:a,(0|(Qe=Qe+1|0))!=(0|t););e[r+72>>2]=n,e[r+68>>2]=o,e[r+64>>2]=c,e[r+60>>2]=f,e[r+56>>2]=m,e[r+52>>2]=p,e[r+48>>2]=I,e[r+44>>2]=v,e[r+40>>2]=T,e[r+36>>2]=O,e[r+32>>2]=Z,e[r+28>>2]=ee,e[r+24>>2]=ce,e[r+20>>2]=he,e[r+16>>2]=ye}for(t=0;;){if((0|(a=e[(n=t<<2)+(r+16|0)>>2]))!=e[(n=n+134848|0)>>2]){u[r+80|0]=0;e:{A:switch(t-1|0){case 4:e[47201]=a-1;break e;case 5:e[47200]=a;break e;case 0:case 1:case 2:case 3:case 11:break A;default:break e}e[r+4>>2]=a,e[r>>2]=1,e[r+8>>2]=u[t+102812|0],DA(r+80|0,91942,r)}e[n>>2]=a,a=r+80|0,qA(e[A>>2]+189424|0,a),e[A>>2]=e[A>>2]+HA(a)}if((0|(t=t+1|0))==15)break}J=r+112|0}function xs(A){var t,r,a,s=0,n=0,o=0,c=0;for(s=17,e[A+328>>2]=17,e[A+224>>2]=0,e[A+216>>2]=1105,e[A+220>>2]=1072,e[A+600>>2]=1056,e[A+8180>>2]=105296,o=jA(A+344|0,0,256),u[A+393|0]=1,u[A+365|0]=1,u[A+360|0]=1,u[A+545|0]=1,u[A+529|0]=1,u[A+391|0]=1,u[A+379|0]=1,u[A+374|0]=1,u[A+489|0]=1,u[A+487|0]=1,u[A+398|0]=1,u[A+387|0]=1,u[A+388|0]=2,u[A+389|0]=1,u[A+390|0]=1,u[A+385|0]=2,u[A+383|0]=2,u[A+368|0]=1,u[A+369|0]=2,n=104224;u[0|(s=s+o|0)]=4|l[0|s],s=o+l[n+1|0]|0,u[0|s]=4|l[0|s],s=o+l[n+2|0]|0,u[0|s]=4|l[0|s],s=l[0|(n=n+3|0)],(0|n)!=104251;);u[A+386|0]=8|l[A+386|0],u[A+382|0]=8|l[A+382|0],u[A+384|0]=8|l[A+384|0],u[A+369|0]=16|l[A+369|0],u[A+370|0]=16|l[A+370|0],u[A+371|0]=16|l[A+371|0],n=l[A+361|0],o=l[A+362|0],s=l[A+363|0],c=l[A+364|0],t=l[A+366|0],r=l[A+367|0],u[A+372|0]=16|l[A+372|0],u[A+373|0]=16|l[A+373|0],u[A+375|0]=16|l[A+375|0],u[A+376|0]=16|l[A+376|0],u[A+377|0]=16|l[A+377|0],u[A+378|0]=16|l[A+378|0],u[A+380|0]=16|l[A+380|0],u[A+381|0]=16|l[A+381|0],u[A+383|0]=16|l[A+383|0],u[A+385|0]=16|l[A+385|0],a=l[A+388|0],u[A+367|0]=48|r,u[A+366|0]=40|t,u[A+364|0]=48|c,u[A+363|0]=48|s,u[A+362|0]=48|o,u[A+361|0]=48|n,u[A+388|0]=80|a,n=l[A+390|0],o=l[A+391|0],s=l[A+393|0],u[A+360|0]=128|l[A+360|0],c=l[A+365|0],u[A+393|0]=192|s,u[A+365|0]=128|c,u[A+368|0]=128|l[A+368|0],u[A+374|0]=128|l[A+374|0],u[A+379|0]=128|l[A+379|0],u[A+387|0]=128|l[A+387|0],s=l[A+389|0],u[A+391|0]=192|o,u[A+390|0]=192|n,u[A+389|0]=128|s,u[A+529|0]=128|l[A+529|0],u[A+545|0]=128|l[A+545|0],u[A+489|0]=128|l[A+489|0],u[A+487|0]=128|l[A+487|0],u[A+398|0]=128|l[A+398|0]}function kr(A,t,r,a,s,n){var o,c=0,f=0,m=0,p=0,I=0,v=0;J=o=J-192|0,c=I=e[t>>2];e:{A:{for(;f=1,(0|(m=u[0|c]))>=0||(f=2,m>>>0<4294967264||(f=m>>>0<4294967280?3:4)),!(l[0|(m=f+c|0)]!=32|l[m+1|0]!=46);){if(p-160>>>0<4294967135)break A;wt((v=o+32|0)+p|0,c,f),u[(f=f+p|0)+v|0]=46,c=m+3|0,p=f+1|0}if(p){for(f=0;m=f,f=f+1|0,223&l[c+m|0];);if(!(1+(v=m+p|0)>>>0>160)&&(wt((f=o+32|0)+p|0,c,m),u[f+v|0]=0,ws(A,f,c,r,a,s,n))){e[a>>2]=128|e[a>>2],e[33264]=p,A=1;break e}}}for(c=0;;){if(I=(f=I)+1|0,223&(f=l[0|f]))if(!c|(0|f)!=46|u[31+(c+o|0)|0]-48>>>0>=10){if(u[(o+32|0)+c|0]=f,f=159,(0|(c=c+1|0))!=159)continue}else f=c;else f=c;break}u[(c=o+32|0)+f|0]=0,c=ws(A,c,I,r,a,s,n);A:if(8&l[a+3|0]){if(!yr(r,m=A+268|0)){if(m=e[A+288>>2]+1|0,e[A+288>>2]=m,(0|m)<4)break A;u[0|r]=0;break A}ar(m,r,20),e[A+288>>2]=1}else e[A+288>>2]=0;A:{if(!c){if(c=0,8&l[a+5|0]&&(m=Gt(o+28|0,c=o+32|l[o+32|0]==95),tA(A,e[o+28>>2],r),c=c+m|0),!(f>>>0<2|c)){if(u[0|r]=0,!(16&s&&l[0|(c=31+(f+o|0)|0)]==101)&&(!(4096&s)||l[0|(c=(f=(o+32|0)+f|0)-1|0)]!=l[f-2|0]))break A;u[0|c]=0,c=ws(A,o+32|0,I,r,a,s,n)}if(!c)break A}if(p=e[a>>2],l[A+172|0]&&(p^=536870912,e[a>>2]=p),A=1,!(536870912&p))break e;2&s&&(b[66448]=8192,e[o+16>>2]=r,DA(132898,87470,o+16|0),A=e[t>>2],e[t>>2]=132898,8&l[188788]&&(wt(t=o+32|0,a=A,A=c-A|0),u[A+t|0]=0,e[o+4>>2]=132898,A=e[47195],e[o>>2]=t,fr(A,87652,o)))}u[0|r]=0,A=0}return J=o+192|0,A}function Ss(A,t){var r=0,a=0,s=0;r=31&A;e:{A:{r:{if((0|(A&=96))==96)A=-1;else{if((0|A)!=64)break r;A=1}if(r>>>0>=15)break e;t=e[203136+(r<<2)>>2]+P(A,t)|0;break A}if(r>>>0>=15)break e}A=e[105616+(a=r<<2)>>2],e[a+203136>>2]=(0|t)>=0?(0|A)>(0|t)?t:A:0}e:{A:{r:{s:{n:switch(r-1|0){case 5:if(!(A=e[50759]))break A;e[54728]=e[50982],t=e[50979],r=e[50978],jA(205184,0,11e3),e[51293]=0,t=(r=(s=(0|(a=e[50789]))>0)?130:(0|r)>=5499?5499:r)?s?a:(0|t)>=100?100:t:0,e[50755]=t,r=(0|P(r,e[50754]))/1e3|0,e[51292]=r,e[54729]=(0|t)>20?r<<1:t?r:0,e[33037]=(0|P(500-t|0,(0|P(l[e[50797]+105596|0],(0|P(e[50787],55))/100|0))/16|0))/500;break s;case 0:break n;case 2:case 12:break e;case 4:break r;default:break A}if(!(A=e[50759]))break A}return t=256,(0|(r=(0|(r=e[50785]))>=101?101:r))>=51&&(t=256+(((P(r,25)-1250&65535)>>>0)/50|0)|0),b[A+164>>1]=(0|P(b[A+236>>1],t))/256,b[A+166>>1]=(0|P(b[A+238>>1],t))/256,b[A+168>>1]=(0|P(b[A+240>>1],t))/256,b[A+170>>1]=(0|P(b[A+242>>1],t))/256,b[A+172>>1]=(0|P(b[A+244>>1],t))/256,b[A+174>>1]=(0|P(b[A+246>>1],t))/256,A=e[50790],b[102e3]=(0|P(b[102036],P(A,-3)+256|0))/256,void(b[101999]=(0|P(b[102035],P(A,-6)+256|0))/256)}e[50759]&&(e[54728]=e[50982],A=e[50979],t=e[50978],jA(205184,0,11e3),e[51293]=0,A=(t=(a=(0|(r=e[50789]))>0)?130:(0|t)>=5499?5499:t)?a?r:(0|A)>=100?100:A:0,e[50755]=A,t=(0|P(t,e[50754]))/1e3|0,e[51292]=t,e[54729]=(0|A)>20?t<<1:A?t:0,e[33037]=(0|P(500-A|0,(0|P(l[e[50797]+105596|0],(0|P(e[50787],55))/100|0))/16|0))/500)}return}e[33037]=(0|P(l[e[50797]+105596|0],(0|P(e[50787],55))/100|0))/16}function Ns(A,t,r){var a=0,s=0,n=0,o=0,c=0,f=0,m=0,p=0,I=0,v=0;r&&(e[r>>2]=0);e:{A:if(!((0|(a=u[0|A]))<0)){for(;;){if((0|(n=255&a))==32|n-9>>>0<5){if((0|(a=u[0|(A=A+1|0)]))>=0)continue;break A}break}if(!(255&a))break e}for(;;){if((0|(a=f=255&a))==32|a-9>>>0<5)break e;if((0|f)!=124||(0|(a=l[0|(n=A+1|0)]))==124){A:{if((0|(I=e[36115]))>=2){for(a=1,n=-1,m=0;;){r:if(!(!(p=e[144464+(a<<2)>>2])|l[p+11|0]==15)){c=e[p>>2];s:{n:{if(f>>>0>=33){if(v=0,o=0,(255&c)==(0|f)&&(o=1,(s=l[A+1|0])>>>0<33|(0|s)!=(c>>>8&255)||(o=2,(s=l[A+2|0])>>>0<33|(0|s)!=(c>>>16&255)||(o=(s=(s=l[A+3|0])>>>0>32&(0|s)==(c>>>24|0))?4:3,v=0-s|0))),(0|n)>=(0|o))break r;if(s=4,!(1&v))break n;break s}if(o=0,(0|n)>=0)break r}if(c>>>((s=o)<<3)&255)break r}m=l[p+10|0],n=s}if((0|I)==(0|(a=a+1|0)))break}if(m)break A}return r&&Gt(r,A),void(u[0|t]=0)}u[0|t]=m,A=((0|n)<=1?1:n)+A|0,t=n=t+1|0;A:if((0|m)==21){r:if((0|(s=l[0|A]))==32|s-9>>>0<5)a=n;else if(a=n,s)for(;;){if(u[0|a]=Ht(s),a=a+1|0,(0|(s=l[0|(A=A+1|0)]))==32|s-9>>>0<5)break r;if(!s)break}if(u[0|a]=0,!s){if(t=a,yr(n,85593))break A;return void(u[0|n]=0)}u[0|a]=124,t=a+1|0}a=l[0|A]}else A=n;if(!(255&a))break}}u[0|t]=0}function bn(A,t){var r=0,a=0,s=0,n=0,o=0;e:{A:{r:{s:{n:switch((0|(r=e[A+4>>2]))==e[A+104>>2]?r=bA(A):(e[A+4>>2]=r+1,r=l[0|r]),r-43|0){case 0:case 2:break n;default:break s}if(n=(0|r)==45,o=!t,(0|(r=e[A+4>>2]))==e[A+104>>2]?r=bA(A):(e[A+4>>2]=r+1,r=l[0|r]),o|(t=r-58|0)>>>0>4294967285)break r;if(e[A+116>>2]<0)break A;e[A+4>>2]=e[A+4>>2]-1;break A}t=r-58|0}if(!(t>>>0<4294967286)){if((t=r-48|0)>>>0<10){for(;s=(0|(a=(a=P(a,10)+r|0)-48|0))<214748364,(0|(t=e[A+4>>2]))==e[A+104>>2]?r=bA(A):(e[A+4>>2]=t+1,r=l[0|t]),s&(t=r-48|0)>>>0<=9;);s=a>>31}r:if(!(t>>>0>=10))for(;;){if(t=(a=It(a,s,10,0))+r|0,r=$,r=t>>>0>>0?r+1|0:r,a=t-48|0,s=r-(t>>>0<48)|0,(0|(t=e[A+4>>2]))==e[A+104>>2]?r=bA(A):(e[A+4>>2]=t+1,r=l[0|t]),(t=r-48|0)>>>0>9)break r;if(!(a>>>0<2061584302&(0|s)<=21474836|(0|s)<21474836))break}if(t>>>0<10)for(;(0|(t=e[A+4>>2]))==e[A+104>>2]?t=bA(A):(e[A+4>>2]=t+1,t=l[0|t]),t-48>>>0<10;);(0|(t=e[A+116>>2]))>0|(0|t)>=0&&(e[A+4>>2]=e[A+4>>2]-1),A=a,a=n?0-A|0:A,s=n?0-(!!(0|A)+s|0)|0:s;break e}}if(s=-2147483648,!(e[A+116>>2]<0))return e[A+4>>2]=e[A+4>>2]-1,$=-2147483648,0}return $=s,a}function Os(A){var t=0,r=0,a=0,s=0;if(e[36432]=110,e[36433]=100,e[36434]=450,e[36430]=5,t=e[203136+((0|A)==2?32:8)>>2],a=e[32972],(0|(r=e[a+84>>2]))>0&&(t=(0|P(t,r))/100|0),r=(0|t)>=359?359:t,r=(0|(t=(0|t)>=450?450:t))>399?6:(0|t)>379?7:l[((0|r)<=80?80:r)+101856|0],1&A&&(e[32526]=(0|P(r,e[a+72>>2]))/256,e[32527]=(0|P(r,e[a+76>>2]))/256,e[32528]=(0|P(r,e[a+80>>2]))/256,r>>>0>7||(s=r-1|0,e[32528]=s,e[32526]=r,e[32527]=s)),2&A){A=e[a+72>>2];e:{A:{r:{s:{n:{c:{o:{g:{if((0|t)>=351)a=t-350|0,e[36432]=85-(((255&a)>>>0)/3|0)&255,a=60-(a>>>3|0)|0;else{if((0|t)<251)break g;a=t-250|0,e[36432]=110-(a>>>2|0),a=110-(a>>>1|0)|0}if(e[36433]=a,A=(0|P(A,r))/256|0,e[36431]=110+((0|P(A,150))/128|0),t>>>0<=349)break o;if(r=t-350|0,e[36431]=l[r+102224|0],t>>>0<390)break n;if(e[36434]=450+((t+112<<24>>24)/-2<<24>>24),t>>>0<441)break c;e[36434]=860-t,A=12;break A}A=(0|P(A,r))/256|0,e[36431]=(0|t)>=170?110+((0|P(A,150))/128|0)|0:128+((A<<7)/130|0)|0}A=(A<<8)/115|0;break A}if(A=12,t>>>0>430)break A;if(A=13,t>>>0<=400)break s;break A}if(A=(A<<8)/115|0,e[36428]=A,t>>>0<375)break r}A=14;break A}if((0|t)<351)break e;A=l[r+102336|0]}e[36428]=A}e[36429]=(0|A)<=16?16:A}}function Bs(A,t,r){var a,s,n,o;a=.000244140625*+e[50767],D[r>>3]=a,D[r+40>>3]=.015625*+e[A+112>>2],D[r+48>>3]=.015625*+e[A+276>>2],D[r+56>>3]=.00390625*+(0|P(b[A+166>>1],b[t+4>>1]))+ +b[A+220>>1],D[r+64>>3]=.00390625*+(0|P(b[A+168>>1],b[t+6>>1]))+ +b[A+222>>1],D[r+72>>3]=.00390625*+(0|P(b[A+170>>1],b[t+8>>1]))+ +b[A+224>>1],D[r+80>>3]=.00390625*+(0|P(b[A+172>>1],b[t+10>>1]))+ +b[A+226>>1],D[r+88>>3]=.00390625*+(0|P(b[A+174>>1],b[t+12>>1]))+ +b[A+228>>1],s=b[A+230>>1],n=b[A+176>>1],o=b[t+14>>1],e[r+112>>2]=0,e[r+116>>2]=1080623104,e[r+104>>2]=0,e[r+108>>2]=1081032704,D[r+96>>3]=.00390625*+(0|P(n,o))+ +(0|s),l[t+40|0]?(e[r+184>>2]=0,e[r+188>>2]=1072693248,D[r+104>>3]=l[t+40|0]<<1):(e[r+184>>2]=0,e[r+188>>2]=0),D[r+120>>3]=.00390625*+b[A+202>>1]*+(l[t+35|0]<<1),D[r+128>>3]=.00390625*+b[A+204>>1]*+(l[t+36|0]<<1),D[r+136>>3]=.00390625*+b[A+206>>1]*+(l[t+37|0]<<1),t=l[t+38|0],A=b[A+208>>1],e[r+176>>2]=0,e[r+180>>2]=1079574528,e[r+160>>2]=0,e[r+164>>2]=1083129856,e[r+152>>2]=0,e[r+156>>2]=1083129856,e[r+352>>2]=0,e[r+356>>2]=1072693248,e[r+168>>2]=0,e[r+172>>2]=1079574528,D[r+144>>3]=.00390625*+(0|A)*+(t<<1),A=e[50779],D[r+368>>3]=a,D[r+360>>3]=+(0|A)/100*3}function Ls(A){var t=0;Se(A,Wa(A));e:{A:{r:{s:{n:{c:{o:{g:{l:{i:{if((0|(A=-1048576&$))<268435455|(0|A)<=268435455){p:{C:{if((0|A)<33554431|(0|A)<=33554431){if((0|A)<8388607|(0|A)<=8388607){if(t=524328,!0&(0|A)==-2147483648)break e;if(0|(0|A)!=-2143289344)break A;return 557096}if(!0&(0|A)==8388608)break C;if(0|(0|A)!=16777216)break A;return 524358}if((0|A)>71303167)break p;if(!0&(0|A)==33554432)break r;if(0|(0|A)!=67108864)break A}return 266270}if(!0&(0|A)==71303168)break i;if(!0&(0|A)==134217728)break s;if(0|(0|A)!=138412032)break A;return 294942}if((0|A)<542113791|(0|A)<=542113791){if((0|A)<536870911|(0|A)<=536870911){if(!0&(0|A)==268435456)break n;if(0|(0|A)!=272629760)break A;return 299028}if(!0&(0|A)==536870912)break o;if(!0&(0|A)==538968064)break c;if(0|(0|A)!=541065216)break A;return 569389}if((0|A)<1075838975|(0|A)<=1075838975){if(!0&(0|A)==542113792)break i;if(0|(0|A)!=1073741824)break A;return 532520}if(!0&(0|A)==1075838976)break g;if(!0&(0|A)==1077936128)break l;if(0|(0|A)!=1078984704)break A}return 299038}return 565288}return 1581096}return 536621}return 1585197}return 266260}return 262174}return 2396190}t=16384}return t}function ys(A,t,r,a,s,n){var o,c,f=0,m=0,p=0,I=0;if(c=8388607&A,m=e[34456],f=l[0|(A=c+m|0)]|l[A+1|0]<<8){o=!(p=l[A+2|0]),A=e[36434]<0?(0|P(r,s))/256|0:r,r=(0|P(s,e[36431]))/256|0,r=(0|A)<(0|(r=(4&a)>>>2|0&&(0|r)>(0|s)?s:r))?r:A,p||(f=f>>>1|0,r=(0|r)/2|0);e:if(!((0|n)<0)){if(a=c+4|0,256&t)A=e[50758],e[36439]=A,e[(t=216192+(A<<4)|0)>>2]=7,e[t+8>>2]=a+m,e[t+4>>2]=f<<16|r,n=p|n<<8;else{if(A=e[50758],e[36439]=A,e[(A=216192+(A<<4)|0)>>2]=6,n=p|n<<8,e[A+12>>2]=n,e[A+8>>2]=a+m,m=A,A=P(t=f>>>2|0,3),s=(0|r)>(0|f),e[m+4>>2]=s?A:r,m=e[50758]+1|0,e[50758]=(0|m)<=169?m:0,(0|A)<(0|(r=s?r-A|0:0)))for(s=t<<1,p=a+(p?t:s)|0;t=e[50758],e[36439]=t,e[(t=216192+(t<<4)|0)>>2]=6,e[t+4>>2]=s,e[t+12>>2]=n,e[t+8>>2]=p+e[34456],t=e[50758]+1|0,e[50758]=(0|t)<=169?t:0,(0|A)<(0|(r=r-s|0)););if((0|r)<=0)break e;A=e[50758],e[36439]=A,e[(t=216192+(A<<4)|0)>>2]=6,e[t+4>>2]=r,e[t+8>>2]=e[34456]+(a+(f-r<>2]=n,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0}}}function wt(A,t,r){var a,s=0,n=0;if(r>>>0>=512)return nA(0|A,0|t,0|r),A;a=A+r|0;e:if(3&(A^t))if(a>>>0<4)r=A;else if((s=a-4|0)>>>0>>0)r=A;else for(r=A;u[0|r]=l[0|t],u[r+1|0]=l[t+1|0],u[r+2|0]=l[t+2|0],u[r+3|0]=l[t+3|0],t=t+4|0,s>>>0>=(r=r+4|0)>>>0;);else{A:if(3&A)if(r)for(r=A;;){if(u[0|r]=l[0|t],t=t+1|0,!(3&(r=r+1|0)))break A;if(!(r>>>0>>0))break}else r=A;else r=A;if(!((s=-4&a)>>>0<64||(n=s+-64|0)>>>0>>0))for(;e[r>>2]=e[t>>2],e[r+4>>2]=e[t+4>>2],e[r+8>>2]=e[t+8>>2],e[r+12>>2]=e[t+12>>2],e[r+16>>2]=e[t+16>>2],e[r+20>>2]=e[t+20>>2],e[r+24>>2]=e[t+24>>2],e[r+28>>2]=e[t+28>>2],e[r+32>>2]=e[t+32>>2],e[r+36>>2]=e[t+36>>2],e[r+40>>2]=e[t+40>>2],e[r+44>>2]=e[t+44>>2],e[r+48>>2]=e[t+48>>2],e[r+52>>2]=e[t+52>>2],e[r+56>>2]=e[t+56>>2],e[r+60>>2]=e[t+60>>2],t=t- -64|0,n>>>0>=(r=r- -64|0)>>>0;);if(r>>>0>=s>>>0)break e;for(;e[r>>2]=e[t>>2],t=t+4|0,s>>>0>(r=r+4|0)>>>0;);}if(r>>>0>>0)for(;u[0|r]=l[0|t],t=t+1|0,(0|a)!=(0|(r=r+1|0)););return A}function Pt(A){var t=0,r=0,a=0,s=0,n=0,o=0,c=0,f=0;be(+A),t=0|X(1),X(0);e:{if((a=(t=t>>>20&2047)-969|0)>>>0<63)f=t;else{if((0|a)<0)return A+1;if(!(t>>>0<1033)){if(be(+A),a=0|X(1),r=0,!(0|X(0))&(0|a)==-1048576)break e;return t>>>0>=2047?A+1:(0|a)<0?(D[8+(t=J-16|0)>>3]=12882297539194267e-247,12882297539194267e-247*D[t+8>>3]):(D[8+(t=J-16|0)>>3]=3105036184601418e216,3105036184601418e216*D[t+8>>3])}}if(r=D[14409],n=(r=(A=(r=(s=D[14408]*A+r)-r)*D[14411]+(r*D[14410]+A))*A)*r*(A*D[14415]+D[14414]),r*=A*D[14413]+D[14412],be(+s),X(1),c=0|X(0),A=n+(r+(D[115376+(a=c<<4&2032)>>3]+A)),o=e[(a=a+115384|0)>>2],t=(c<<13)+(t=e[a+4>>2])|0,t=(a=(a=o)+(o=0)|0)>>>0>>0?t+1|0:t,!f)return-2147483648&c?(R(0,0|a),R(1,t+1071644672|0),(A=(s=(r=+ae())*A)+r)<1&&(e[8+(t=J-16|0)>>2]=0,e[t+12>>2]=1048576,D[t+8>>3]=22250738585072014e-324*D[t+8>>3],A=(A=(n=A+1)+(s+(r-A)+(A+(1-n)))+-1)==0?0:A),A*=22250738585072014e-324):(R(0,0|a),R(1,t-1058013184|0),A=5486124068793689e288*((r=+ae())*A+r)),A;R(0,0|a),R(1,0|t),r=(r=+ae())*A+r}return r}function wa(A,t){var r,a=0,s=0,n=0,o=0;J=r=J-16|0;e:{if($a(84270,u[0|t])){if(s=2,$a(t,43)||(s=l[0|t]!=114),s=$a(t,120)?128|s:s,n=s=$a(t,101)?524288|s:s,o=64|s,n=(0|(s=l[0|t]))==114?n:o,n=(0|s)==119?512|n:n,e[r>>2]=438,e[r+4>>2]=0,(A=0|ze(-100,0|A,32768|((0|s)==97?1024|n:n),0|r))>>>0>=4294963201&&(e[56798]=0-A,A=-1),(0|A)<0)break e;J=s=J-32|0;A:{r:{if($a(84270,u[0|t])){if(a=Ct(1176))break r}else e[56798]=28;t=0;break A}jA(a,0,144),$a(t,43)||(e[a>>2]=l[0|t]==114?8:4),l[0|t]==97?(1024&(t=0|Ie(0|A,3,0))||(t|=1024,e[s+16>>2]=t,e[s+20>>2]=t>>31,Ie(0|A,4,s+16|0)),t=128|e[a>>2],e[a>>2]=t):t=e[a>>2],e[a+80>>2]=-1,e[a+48>>2]=1024,e[a+60>>2]=A,e[a+44>>2]=a+152,8&t||(e[s>>2]=s+24,e[s+4>>2]=0,0|kA(0|A,21523,0|s)||(e[a+80>>2]=10)),e[a+40>>2]=10,e[a+36>>2]=11,e[a+32>>2]=12,e[a+12>>2]=13,l[227205]||(e[a+76>>2]=-1),e[a+56>>2]=e[56816],(t=e[56816])&&(e[t+52>>2]=a),e[56816]=a,t=a}if(J=s+32|0,a=t)break e;GA(0|A)}else e[56798]=28;a=0}return J=r+16|0,a}function An(A,t,r){var a,s=0,n=0,o=0,c=0,f=0;if(o=A,J=a=J-208|0,e[a+8>>2]=1,e[a+12>>2]=0,c=t<<2){for(e[a+16>>2]=4,e[a+20>>2]=4,t=4,s=4,n=2;A=t,t=(s+4|0)+t|0,e[(a+16|0)+(n<<2)>>2]=t,n=n+1|0,s=A,t>>>0>>0;);if((A=(o+c|0)-4|0)>>>0<=o>>>0)n=0,t=1,A=0;else{for(n=1,t=1;3&~n?(ge[(a+16|0)+((s=t-1|0)<<2)>>2]>=A-o>>>0?Pr(o,r,a+8|0,t,0,a+16|0):Ii(o,r,t,a+16|0),(0|t)!=1?(Zn(a+8|0,s),t=1):(Zn(a+8|0,1),t=0)):(Ii(o,r,t,a+16|0),yn(a+8|0,2),t=t+2|0),n=1|(s=e[a+8>>2]),e[a+8>>2]=n,A>>>0>(o=o+4|0)>>>0;);n=s>>>0>1,A=e[a+12>>2]!=0}if(Pr(o,r,a+8|0,t,0,a+16|0),n|(0|t)!=1|A)for(;(0|t)<=1?(yn(s=a+8|0,A=Di(s)),n=e[a+8>>2],A=A+t|0):(Zn(s=a+8|0,2),e[a+8>>2]=7^e[a+8>>2],yn(s,1),Pr((f=o-4|0)-e[(c=a+16|0)+((A=t-2|0)<<2)>>2]|0,r,s,t-1|0,1,c),Zn(s,1),n=1|e[a+8>>2],e[a+8>>2]=n,Pr(f,r,s,A,1,c)),t=A,o=o-4|0,e[a+12>>2]|(0|t)!=1|(0|n)!=1;);}J=a+208|0}function Es(A,t,r,a){var s,n=0,o=0,c=0;J=s=J-32|0,c=n=2147483647&a,o=n-1006698496|0;e:if(0|(n=n-1140785152|0)>>>0>o>>>0){if(n=r<<4|t>>>28,r=a<<4|r>>>28,(0|(t&=268435455))==134217728&!!(0|A)|t>>>0>134217728){o=r+1073741824|0,o=(n=n+1|0)?o:o+1|0;break e}if(o=r+1073741824|0,A|(0|t)!=134217728)break e;o=(A=1&n)>>>0>(n=A+n|0)>>>0?o+1|0:o}else(!r&(0|c)==2147418112?!(A|t):c>>>0<2147418112)?(n=0,o=2146435072,c>>>0>1140785151||(o=0,(c=c>>>16|0)>>>0<15249||(ea(s+16|0,A,t,r,n=65535&a|65536,c-15233|0),Ya(s,A,t,r,n,15361-c|0),n=(t=e[s+8>>2])<<4,t=e[s+12>>2]<<4|t>>>28,r=e[s>>2],c=o=e[s+4>>2],n|=o>>>28,o=t,(0|(A=268435455&c))==134217728&!!(0|(t=r|!!(e[s+16>>2]|e[s+24>>2]|e[s+20>>2]|e[s+28>>2])))|A>>>0>134217728?o=(n=n+1|0)?o:o+1|0:t|(0|A)!=134217728||(o=(A=n)>>>0>(n=n+(1&n)|0)>>>0?o+1|0:o)))):(n=r<<4|t>>>28,o=524287&(A=a<<4|r>>>28)|2146959360);return J=s+32|0,R(0,0|n),R(1,-2147483648&a|o),+ae()}function Ys(A){var t,r=0,a=0,s=0,n=0,o=0;if(be(+A),o=0|X(1),s=0|X(0),(0|(n=o>>>20&2047))==2047)return(A*=1)/A;if(!(a=s<<1)&(0|(r=o<<1|s>>>31))==2145386496|r>>>0<2145386496)return!a&(0|r)==2145386496?0*A:A;if(n)r=1048575&o|1048576;else{if(n=0,a=s<<12,(0|(r=o<<12|s>>>20))>0|(0|r)>=0)for(;n=n-1|0,r=r<<1|a>>>31,a<<=1,(0|r)>0|(0|r)>=0;);a=31&(r=1-n|0),(63&r)>>>0>=32?(r=s<>>32-a|o<1023){for(;;){if(!((0|(s=r+-1048576|0))<0||(r=s)|a))return 0*A;if(r=r<<1|a>>>31,a<<=1,!((0|(n=n-1|0))>1023))break}n=1023}if(!((0|(s=r+-1048576|0))<0||(r=s)|a))return 0*A;if((0|r)==1048575|r>>>0<1048575)for(;n=n-1|0,s=r>>>0<524288,r=r<<1|a>>>31,a<<=1,s;);return t=-2147483648&o,(0|n)>0?r=r+-1048576|n<<20:(s=1-n|0,o=r,n=a,a=31&s,(63&s)>>>0>=32?(r=0,a=o>>>a|0):(r=o>>>a|0,a=((1<>>a)),R(0,0|a),R(1,r|t),+ae()}function rs(A,t,r,a,s){var n,o=0,c=0;J=n=J-160|0;e:{A:{r:{s:switch((o=l[t+10|0])-15|0){case 6:break r;case 0:break s;default:break A}u[0|A]=0;break e}e[n>>2]=P(l[r+7|0],44)+137856,DA(A,86002,n),A=HA(A)+A|0;break e}if(a){if(u[n+140|0]=0,r?tr(0,0,r,n+8|0,0):Rn(o,n+8|0),r=n+140|0,o=l[n+140|0]){if((0|o)==32){u[0|A]=0;break e}224&(o=o<<24>>24)||(s&&(e[s>>2]=o),r=n+141|0)}if(!((0|(s=HA(r)))<=0)){A=qA(A,r)+s|0,u[0|A]=0;break e}}s=0;A:if(!(!(r=255&(o=e[t>>2]))|(0|r)==47)){if(a){if((0|(c=255&o))==95)break A;r:{s:{if((0|c)==35){if(c=3,l[t+11|0]!=2)break s;break A}if((c=r-32|0)>>>0>95)break r}r=M[93952+(c<<1)>>1]}s=zr(r,A)}else u[0|A]=o,s=1;for(;;){if(!(r=255&(o>>=8))|(0|r)==47)break A;if(a){if((0|r)==35&l[t+11|0]==2)break A;if(r-48>>>0<10)continue;(c=r-32|0)>>>0<=95&&(r=M[93952+(c<<1)>>1]),s=zr(r,A+s|0)+s|0}else u[A+s|0]=o,s=s+1|0}}u[0|(A=A+s|0)]=0}return J=n+160|0,A}function Hs(A){var t,r=0;t=A,r=131280;e:{A:{if(!((0|A)<=1023||(r=131300,A>>>0<1328||(r=131320,A>>>0<1424||(r=131340,A>>>0<1536||(r=131360,A>>>0<1792||(r=131380,A>>>0<1872||(r=131400,A>>>0<2432||(r=131420,A>>>0<2560||(r=131440,A>>>0<2688||(r=131460,A>>>0<2816||(r=131480,A>>>0<2944||(r=131500,A>>>0<3072||(r=131520,A>>>0<3200||(r=131540,A>>>0<3328||(r=131560,A>>>0<3456||(r=131580,A>>>0<3584||(r=131600,A>>>0<3712||(r=131620,A>>>0<3840||(r=131640,A>>>0<4096||(r=131660,A>>>0<4256||(r=131680,A>>>0<4352||(r=131700,A>>>0<4608||(r=131720,A>>>0<5024||(r=131740,A>>>0<10496||(r=131760,A>>>0<12544||(r=131780,A>>>0<40960))))))))))))))))))))))))))){if(A>>>0>=55296)break A;r=131800}if((0|t)>=M[(A=r)+8>>1])break e}A=0}return A}function tA(A,t,r){var a,s=0,n=0,o=0,c=0;J=a=J-208|0,u[a+80|0]=0;e:{if((s=t-224|0)>>>0<=158)t=101072+(s<<1)|0;else{if((t=t-592|0)>>>0>88)break e;t=101392+(t<<1)|0}if(t=M[t>>1]){if(o=t<<16>>16,c=(s=63&t)>>>0>37?s+59|0:b[101584+(s<<1)>>1],s=t>>>6|0,(0|o)<0)s=59+(63&s)|0,t=t>>>12&7;else{if(!(n=31&s))break e;s=0,t=t>>>11&15}(n=RA(A,e[129920+(n<<3)>>2],a+112|0))&&b0(A,c,a+176|0)&&(t&&4096&RA(A,e[129920+(t<<3)>>2],a+80|0)&&(r=HA(t=qA(r,a+80|0)),u[a+80|0]=0,r=t+r|0),s?(b0(t=A,s,A=a+144|0),e[a+68>>2]=a+80,e[a- -64>>2]=A,e[a+60>>2]=6,e[a+52>>2]=23,e[a+56>>2]=a+176,e[a+48>>2]=a+112,DA(r,84101,a+48|0)):(0|o)<0?qA(r,a+176|0):1&e[A+144>>2]|4096&n?(e[a+36>>2]=23,e[a+40>>2]=6,e[a+44>>2]=a+176,e[a+32>>2]=a+112,DA(r,84430,a+32|0)):(e[a+16>>2]=23,e[a+8>>2]=23,e[a>>2]=4,e[a+12>>2]=a+112,e[a+4>>2]=a+176,DA(r,84802,a)))}}J=a+208|0}function _(){Un(),e[55928]=0,e[55926]=0,e[55927]=0,e[55924]=0,e[56244]=0,e[56245]=0,e[56246]=0,e[56247]=0,e[56260]=0,e[56261]=0,e[56262]=0,e[56263]=0,e[56276]=0,e[56277]=0,e[56278]=0,e[56279]=0,e[55974]=0,e[55975]=0,e[55972]=0,e[55973]=0,e[55988]=0,e[55989]=0,e[55990]=0,e[55991]=0,e[56004]=0,e[56005]=0,e[56006]=0,e[56007]=0,e[56020]=0,e[56021]=0,e[56022]=0,e[56023]=0,e[56036]=0,e[56037]=0,e[56038]=0,e[56039]=0,e[56052]=0,e[56053]=0,e[56054]=0,e[56055]=0,e[56068]=0,e[56069]=0,e[56070]=0,e[56071]=0,e[56086]=0,e[56087]=0,e[56084]=0,e[56085]=0,e[56102]=0,e[56103]=0,e[56100]=0,e[56101]=0,e[56118]=0,e[56119]=0,e[56116]=0,e[56117]=0,e[56134]=0,e[56135]=0,e[56132]=0,e[56133]=0,e[56150]=0,e[56151]=0,e[56148]=0,e[56149]=0,e[56166]=0,e[56167]=0,e[56164]=0,e[56165]=0,e[56182]=0,e[56183]=0,e[56180]=0,e[56181]=0,e[56198]=0,e[56199]=0,e[56196]=0,e[56197]=0,e[56214]=0,e[56215]=0,e[56212]=0,e[56213]=0,e[56230]=0,e[56231]=0,e[56228]=0,e[56229]=0}function Be(A,t){var r=0,a=0,s=0,n=0,o=0,c=0,f=0,m=0,p=0,I=0;e:{if((0|(n=e[A+4>>2]))==e[A>>2])if((o=e[A+8>>2])>>>0<(r=e[A+12>>2])>>>0)r=(s=(1+(r-o>>2)|0)/2<<2)+o|0,(0|n)!=(0|o)&&(Yt(r=r-(a=o-n|0)|0,n,a),n=e[A+8>>2]),e[A+4>>2]=r,e[A+8>>2]=s+n;else{if((a=(0|r)==(0|n)?1:r-n>>1)>>>0>=1073741824)break e;if(p=(f=za(r=a<<2))+r|0,c=r=(a+3&-4)+f|0,(0|n)!=(0|o)){if(I=-4&(o=o-n|0),s=r,a=n,o=1+((m=o-4|0)>>>2|0)&7)for(c=0;e[s>>2]=e[a>>2],a=a+4|0,s=s+4|0,(0|o)!=(0|(c=c+1|0)););if(c=r+I|0,!(m>>>0<28))for(;e[s>>2]=e[a>>2],e[s+4>>2]=e[a+4>>2],e[s+8>>2]=e[a+8>>2],e[s+12>>2]=e[a+12>>2],e[s+16>>2]=e[a+16>>2],e[s+20>>2]=e[a+20>>2],e[s+24>>2]=e[a+24>>2],e[s+28>>2]=e[a+28>>2],a=a+32|0,(0|c)!=(0|(s=s+32|0)););}e[A+12>>2]=p,e[A+8>>2]=c,e[A+4>>2]=r,e[A>>2]=f,n&&(xt(n),r=e[A+4>>2])}else r=n;return e[r-4>>2]=e[t>>2],void(e[A+4>>2]=e[A+4>>2]-4)}Xn(),xe()}function Oe(A,t,r){var a=0,s=0,n=0,o=0,c=0,f=0,m=0,p=0,I=0;e:{A:{r:{s:{n:{c:{o:{g:{l:{if(t){if(!r)break l;break g}return OA=(t=A)-P(A=(A>>>0)/(r>>>0)|0,r)|0,ue=0,$=0,A}if(!A)break o;break c}if(!((a=r-1|0)&r))break n;n=0-(o=(Ye(r)+33|0)-Ye(t)|0)|0;break r}return OA=0,ue=t-P(A=(t>>>0)/0|0,0)|0,$=0,A}if((a=32-Ye(t)|0)>>>0<31)break s;break A}if(OA=A&a,ue=0,(0|r)==1)break e;return r=31&(a=Mn(r)),(63&a)>>>0>=32?A=t>>>r|0:(s=t>>>r|0,A=((1<>>r),$=s,A}o=a+1|0,n=63-a|0}if(a=31&(s=63&o),s>>>0>=32?(s=0,c=t>>>a|0):(s=t>>>a|0,c=((1<>>a),a=31&(n&=63),n>>>0>=32?(t=A<>>32-a|t<>>31,c=(s=c<<1|t>>>31)-(m=r&(n=p-(f+(s>>>0>a>>>0)|0)>>31))|0,s=f-(s>>>0>>0)|0,t=t<<1|A>>>31,A=I|A<<1,I=f=1&n,o=o-1|0;);return OA=c,ue=s,$=t<<1|A>>>31,f|A<<1}OA=A,ue=t,A=0,t=0}return $=t,A}function Ve(A,t){var r=0,a=0,s=0,n=0,o=0,c=0,f=0,m=0,p=0,I=0;e:{if((0|(r=e[A+8>>2]))==e[A+12>>2])if((a=e[A+4>>2])>>>0>(o=e[A>>2])>>>0)s=Yt((n=(1+(a-o>>2)|0)/-2<<2)+a|0,a,r=r-a|0)+r|0,e[A+8>>2]=s,e[A+4>>2]=n+e[A+4>>2];else{if((n=(0|r)==(0|o)?1:r-o>>1)>>>0>=1073741824)break e;if(p=(c=za(s=n<<2))+s|0,s=n=(-4&n)+c|0,(0|r)!=(0|a)){if(I=-4&(r=r-a|0),m=1+((f=r-4|0)>>>2|0)&7)for(s=0,r=n;e[r>>2]=e[a>>2],a=a+4|0,r=r+4|0,(0|m)!=(0|(s=s+1|0)););else r=n;if(s=n+I|0,!(f>>>0<28))for(;e[r>>2]=e[a>>2],e[r+4>>2]=e[a+4>>2],e[r+8>>2]=e[a+8>>2],e[r+12>>2]=e[a+12>>2],e[r+16>>2]=e[a+16>>2],e[r+20>>2]=e[a+20>>2],e[r+24>>2]=e[a+24>>2],e[r+28>>2]=e[a+28>>2],a=a+32|0,(0|s)!=(0|(r=r+32|0)););}e[A+12>>2]=p,e[A+8>>2]=s,e[A+4>>2]=n,e[A>>2]=c,o&&(xt(o),s=e[A+8>>2])}else s=r;return e[s>>2]=e[t>>2],void(e[A+8>>2]=e[A+8>>2]+4)}Xn(),xe()}function $e(A,t){var r,a=0,s=0,n=0,o=0,c=0;s=189088,J=r=J-320|0,e[r+312>>2]=0,n=Cn(A,o=qA(r+112|0,189088),r,r+316|0,r+312|0,0),a=e[r+316>>2];e:if((0|t)<=3){if((0|a)<2)break e;if(n=3&(t=a-1|0),A=1,a-2>>>0>=3)for(c=-4&t,t=0;u[0|(a=A+r|0)]>=4&&(u[0|a]=3),u[1+(a=A+r|0)|0]>=4&&(u[a+1|0]=3),u[a+2|0]>=4&&(u[a+2|0]=3),u[a+3|0]>=4&&(u[a+3|0]=3),A=A+4|0,(0|c)!=(0|(t=t+4|0)););if(!n)break e;for(t=0;u[0|(a=A+r|0)]>=4&&(u[0|a]=3),A=A+1|0,(0|n)!=(0|(t=t+1|0)););}else if(A=1,!((0|a)<=1)){for(;;){if((0|n)>u[0|(c=A+r|0)]){if((0|a)!=(0|(A=A+1|0)))continue;break e}break}u[0|c]=t}if(A=l[0|o])for(t=1;a=e[144464+((255&A)<<2)>>2],l[a+11|0]!=2|16&l[a+6|0]||(n=255&(a=u[t+r|0]),(0|a)<2&&n||(u[0|s]=l[n+94151|0],s=s+1|0,A=l[0|o]),t=t+1|0),u[0|s]=A,s=s+1|0,A=l[0|(o=o+1|0)];);u[0|s]=0,J=r+320|0}function fA(A){var t=0,r=0,a=0,s=0,n=0,o=0;r=t=e[(A|=0)>>2],e[A>>2]=t+1;e:{A:{r:{s:{n:{c:{o:switch(((n=l[0|t])>>>4|0)-8|0){case 0:case 1:case 2:case 3:break A;case 7:break n;case 6:break c;case 4:case 5:break o;default:break e}if((a=t+2|0)>>>0>=(s=e[A+4>>2])>>>0)break s;if(e[A>>2]=a,(192&(r=l[r+1|0]))!=128)break r;return 63&r|n<<6&1984}if((a=t+3|0)>>>0>=(s=e[A+4>>2])>>>0)break s;if(r=t+2|0,e[A>>2]=r,(192&(t=l[t+1|0]))!=128){a=r;break r}if(e[A>>2]=a,(192&(r=l[0|r]))!=128)break r;return 63&r|(63&t|n<<6&960)<<6}if(!((s=e[A+4>>2])>>>0<=(r=t+4|0)>>>0)){if(a=t+2|0,e[A>>2]=a,(192&(s=l[t+1|0]))!=128||(a=t+3|0,e[A>>2]=a,(192&(o=l[t+2|0]))!=128)||(e[A>>2]=r,t=l[0|a],a=r,(192&t)!=128))break r;return 0|((A=63&t|o<<6&4032|(63&s|n<<6&960)<<12)>>>0>=1114112?65533:A)}}e[A>>2]=s;break A}e[A>>2]=a-1}n=65533}return 0|n}function NA(A,t,r,a){var s,n,o=0,c=0,f=0,m=0,p=0,I=0;if(J=s=J-432|0,!(!a|!(536870912&(n=TA(A,t,r,a))))&&(b[s+48>>1]=8192,a=qA(s+48|2,a),l[0|a])){for(f=s+224|0,o=1,m=200;;){if(Gt(s+44|0,a),t=hs(e[s+44>>2]),c=e[r>>2],t?(e[r>>2]=2|c,zr(Ht(e[s+44>>2]),a)):e[r>>2]=-3&c,I=e[33264],TA(A,a,r,0),1&o?(e[s+16>>2]=189088,c=as(f,m,84130,s+16|0)):(e[s+32>>2]=15,e[s+36>>2]=189088,c=as(f,m,84434,s+32|0)),o=(t=e[33264])+1|0,e[33264]=o,t>>>0<=2147483646){for(;;)if(t=a,a=a+1|0,(0|(p=u[0|t]))==32|p-9>>>0<5){for(;t=(a=t)+1|0,(0|(p=u[0|a]))==32|p-9>>>0<5;);if(o=o-1|0,e[33264]=o,!((0|o)>0))break}}if(f=f+c|0,e[33264]=I,!(l[0|a]&&(o=0,(0|(m=m-c|0))>1)))break}(s+224|0)!=(0|f)&&(e[s>>2]=s+224,as(189088,200,84130,s))}return J=s+432|0,n}function He(A,t,r,a,s,n,o,c){var f,m;f=e[32972],m=e[f+116>>2],b[A+8>>1]=M[A+8>>1]+n,n=32&c?0-n|0:n,b[A+10>>1]=n+M[A+10>>1],b[A+12>>1]=n+M[A+12>>1],a=(0|a)>(0|(n=((n=(0|P(t,m))/256|0)-(t=b[A+6>>1])|0)/2|0))?n:a,b[A+6>>1]=((0|r)<(0|a)?a:r)+t;e:{A:switch(s-1|0){case 0:t=(0|(t=235-(r=b[A+4>>1])|0))<=-100?-100:t,b[A+4>>1]=((0|t)>=-60?-60:t)+r;break e;case 1:t=(0|(t=(0|(t=235-(r=b[A+4>>1])|0))<=-300?-300:t))>=-150?-150:t,b[A+4>>1]=t+r,b[A+2>>1]=t+M[A+2>>1];break e;case 2:break A;default:break e}t=(0|(t=(0|(t=100-(r=b[A+4>>1])|0))<=-400?-400:t))>-300?-400:t,b[A+4>>1]=t+r,b[A+2>>1]=t+M[A+2>>1]}e[f+132>>2]||(u[A+20|0]=(P(l[A+20|0],o)>>>0)/100,u[A+21|0]=(P(l[A+21|0],o)>>>0)/100,u[A+22|0]=(P(l[A+22|0],o)>>>0)/100,u[A+23|0]=(P(l[A+23|0],o)>>>0)/100,u[A+24|0]=(P(l[A+24|0],o)>>>0)/100,u[A+25|0]=(P(l[A+25|0],o)>>>0)/100)}function VA(A){var t,r=0,a=0,s=0,n=0;J=t=J-48|0;e:{if(A){l[0|A]||(A=an(84285),l[0|A]&&A||(A=an(121696),l[0|A]&&A||(A=an(84614),l[0|A]&&A||(A=84891))));A:{for(;;){if(!(!(a=l[A+r|0])|(0|a)==47)){if(s=23,(0|(r=r+1|0))!=23)continue;break A}break}s=r}a=84891;A:{r:{if(r=l[0|A],(l[A+s|0]|(0|r)==46||(a=A,(0|r)==67))&&!l[a+1|0]||!yr(a,84891)||!yr(a,85136)){if(r=121652,l[a+1|0]==46)break r;A=0;break A}if(r=e[56851])for(;;){if(!yr(a,r+8|0))break r;if(!(r=e[r+32>>2]))break}(A=Ct(36))&&(r=e[30414],e[A>>2]=e[30413],e[A+4>>2]=r,wt(r=A+8|0,a,s),u[r+s|0]=0,e[A+32>>2]=e[56851],e[56851]=A),r=A||121652}A=r}if((0|A)==-1)break e;e[56809]=A}else A=e[56809];n=A?A+8|0:84309}return J=t+48|0,n}function bA(A){var t=0,r=0,a=0,s=0,n=0,o=0,c=0,f=0,m=0;f=!!((t=e[A+112>>2])|(a=e[A+116>>2])),s=t,o=t=(n=e[A+4>>2])-(c=e[A+44>>2])|0,r=t+e[A+120>>2]|0,t=e[A+124>>2]+(t>>31)|0;e:{if(!(((0|(t=r>>>0>>0?t+1|0:t))>=(0|a)&r>>>0>=s>>>0|(0|t)>(0|a))&f)){if((0|(f=Kn(A)))>=0)break e;n=e[A+4>>2],c=e[A+44>>2]}return e[A+112>>2]=-1,e[A+116>>2]=-1,e[A+104>>2]=n,a=(o=r)+(r=c-n|0)|0,t=(r>>31)+t|0,e[A+120>>2]=a,e[A+124>>2]=r>>>0>a>>>0?t+1|0:t,-1}return t=(a=r+1|0)?t:t+1|0,n=e[A+4>>2],c=e[A+8>>2],o=s=e[A+116>>2],s|(r=e[A+112>>2])&&(s=r-a|0,(0|(r=o-(t+(r>>>0>>0)|0)|0))>=(0|(o=(m=c-n|0)>>31))&s>>>0>=m>>>0|(0|r)>(0|o)||(c=s+n|0)),e[A+104>>2]=c,a=(s=(r=e[A+44>>2])-n|0)+a|0,t=(s>>31)+t|0,e[A+120>>2]=a,e[A+124>>2]=a>>>0>>0?t+1|0:t,r>>>0>=n>>>0&&(u[n-1|0]=f),f}function Yt(A,t,r){var a=0,s=0;e:if((0|A)!=(0|t)){if(t-(s=A+r|0)>>>0<=0-(r<<1)>>>0)return wt(A,t,r);if(a=3&(A^t),A>>>0>>0){if(a)a=A;else{if(3&A)for(a=A;;){if(!r)break e;if(u[0|a]=l[0|t],t=t+1|0,r=r-1|0,!(3&(a=a+1|0)))break}else a=A;if(!(r>>>0<=3))for(;e[a>>2]=e[t>>2],t=t+4|0,a=a+4|0,(r=r-4|0)>>>0>3;);}if(r)for(;u[0|a]=l[0|t],a=a+1|0,t=t+1|0,r=r-1|0;);}else{if(!a){if(3&s)for(;;){if(!r)break e;if(u[0|(a=(r=r-1|0)+A|0)]=l[t+r|0],!(3&a))break}if(!(r>>>0<=3))for(;e[(r=r-4|0)+A>>2]=e[t+r>>2],r>>>0>3;);}if(!r)break e;for(;u[(r=r-1|0)+A|0]=l[t+r|0],r;);}}return A}function Vt(A,t,r,a){switch(t-9|0){case 0:return t=e[r>>2],e[r>>2]=t+4,void(e[A>>2]=e[t>>2]);case 6:return t=e[r>>2],e[r>>2]=t+4,t=b[t>>1],e[A>>2]=t,void(e[A+4>>2]=t>>31);case 7:return t=e[r>>2],e[r>>2]=t+4,e[A>>2]=M[t>>1],void(e[A+4>>2]=0);case 8:return t=e[r>>2],e[r>>2]=t+4,t=u[0|t],e[A>>2]=t,void(e[A+4>>2]=t>>31);case 9:return t=e[r>>2],e[r>>2]=t+4,e[A>>2]=l[0|t],void(e[A+4>>2]=0);case 16:return t=e[r>>2]+7&-8,e[r>>2]=t+8,void(D[A>>3]=D[t>>3]);case 17:ct[0|a](A,r);default:return;case 1:case 4:case 14:return t=e[r>>2],e[r>>2]=t+4,t=e[t>>2],e[A>>2]=t,void(e[A+4>>2]=t>>31);case 2:case 5:case 11:case 15:return t=e[r>>2],e[r>>2]=t+4,e[A>>2]=e[t>>2],void(e[A+4>>2]=0);case 3:case 10:case 12:case 13:}t=e[r>>2]+7&-8,e[r>>2]=t+8,r=e[t+4>>2],e[A>>2]=e[t>>2],e[A+4>>2]=r}function cr(A,t,r,a,s,n){var o;J=o=J-80|0;e:if((0|n)>=16384){if(PA(o+32|0,t,r,a,s,0,0,0,2147352576),a=e[o+40>>2],s=e[o+44>>2],t=e[o+32>>2],r=e[o+36>>2],n>>>0<32767){n=n-16383|0;break e}PA(o+16|0,t,r,a,s,0,0,0,2147352576),n=((0|n)>=49149?49149:n)-32766|0,a=e[o+24>>2],s=e[o+28>>2],t=e[o+16>>2],r=e[o+20>>2]}else(0|n)>-16383||(PA(o- -64|0,t,r,a,s,0,0,0,7471104),a=e[o+72>>2],s=e[o+76>>2],t=e[o+64>>2],r=e[o+68>>2],n>>>0>4294934644?n=n+16269|0:(PA(o+48|0,t,r,a,s,0,0,0,7471104),n=((0|n)<=-48920?-48920:n)+32538|0,a=e[o+56>>2],s=e[o+60>>2],t=e[o+48>>2],r=e[o+52>>2]));PA(o,t,r,a,s,0,0,0,n+16383<<16),t=e[o+12>>2],e[A+8>>2]=e[o+8>>2],e[A+12>>2]=t,t=e[o+4>>2],e[A>>2]=e[o>>2],e[A+4>>2]=t,J=o+80|0}function sr(A,t){var r,a,s=0;J=r=J+-64|0,s=e[A>>2],a=e[s-4>>2],s=e[s-8>>2],e[r+32>>2]=0,e[r+36>>2]=0,e[r+40>>2]=0,e[r+44>>2]=0,e[r+48>>2]=0,e[r+52>>2]=0,u[r+55|0]=0,u[r+56|0]=0,u[r+57|0]=0,u[r+58|0]=0,u[r+59|0]=0,u[r+60|0]=0,u[r+61|0]=0,u[r+62|0]=0,e[r+24>>2]=0,e[r+28>>2]=0,e[r+20>>2]=0,e[r+16>>2]=125084,e[r+12>>2]=A,e[r+8>>2]=t,A=A+s|0,s=0;e:if(_a(a,t,0))e[r+56>>2]=1,ct[e[e[a>>2]+20>>2]](a,r+8|0,A,A,1,0),s=e[r+32>>2]==1?A:0;else{ct[e[e[a>>2]+24>>2]](a,r+8|0,A,1,0);A:switch(e[r+44>>2]){case 0:s=e[r+48>>2]==1&&e[r+36>>2]==1&&e[r+40>>2]==1?e[r+28>>2]:0;break e;case 1:break A;default:break e}e[r+32>>2]!=1&&e[r+48>>2]|e[r+36>>2]!=1|e[r+40>>2]!=1||(s=e[r+24>>2])}return J=r- -64|0,s}function jt(A,t,r,a,s){var n,o,c=0;J=n=J-80|0,b[n+72>>1]=0,e[n+64>>2]=0,e[n+68>>2]=0,u[0|a]=0,c=zr(t,o=2|(c=n- -64|0))+c|0,u[c+2|0]=32;e:if((0|r)!=-1)t>>>0>=33&&!Or(t)?(u[c+3|0]=(0|r)==32?32:31,u[n+65|0]=95,RA(A,n- -64|1,n+16|0)||(u[n+65|0]=32,RA(A,o,n+16|0)||qt(A,o,n+16|0,40,0,268435456,0)),l[n+16|0]||tA(A,t,n+16|0),t=qA(a,n+16|0),!(r=l[0|t])|(0|r)==21||(e[n+56>>2]=0,e[n+60>>2]=0,$t(A,t,n+56|0,-1,1&s))):(e[n>>2]=t,DA(t=n- -64|1,85485,n),RA(A,t,a));else{if(RA(A,o,a)||(u[n+65|0]=95,RA(A,n- -64|1,n+16|0)|e[A+212>>2]==25966))break e;un(85055),RA(e[47194],o,n+16|0)&&(u[0|a]=21,u[a+1|0]=0),ha(e[e[32972]+60>>2])}J=n+80|0}function jA(A,t,r){var a=0,s=0,n=0,o=0;if(r&&(u[0|A]=t,u[(a=A+r|0)-1|0]=t,!(r>>>0<3||(u[A+2|0]=t,u[A+1|0]=t,u[a-3|0]=t,u[a-2|0]=t,r>>>0<7||(u[A+3|0]=t,u[a-4|0]=t,r>>>0<9||(s=(a=0-A&3)+A|0,t=P(255&t,16843009),e[s>>2]=t,e[(r=(a=r-a&-4)+s|0)-4>>2]=t,a>>>0<9||(e[s+8>>2]=t,e[s+4>>2]=t,e[r-8>>2]=t,e[r-12>>2]=t,a>>>0<25||(e[s+24>>2]=t,e[s+20>>2]=t,e[s+16>>2]=t,e[s+12>>2]=t,e[r-16>>2]=t,e[r-20>>2]=t,e[r-24>>2]=t,e[r-28>>2]=t,(r=a-(o=4&s|24)|0)>>>0<32))))))))for(a=It(t,0,1,1),n=$,t=s+o|0;e[t+24>>2]=a,e[t+28>>2]=n,e[t+16>>2]=a,e[t+20>>2]=n,e[t+8>>2]=a,e[t+12>>2]=n,e[t>>2]=a,e[t+4>>2]=n,t=t+32|0,(r=r-32|0)>>>0>31;);return A}function KA(){var A,t=0,r=0,a=0,s=0,n=0;if(J=A=J-208|0,(0|(a=e[50303]))>0)for(;(s=e[(r=201216+(t<<2)|0)>>2])&&(xt(s),e[r>>2]=0),(0|a)!=(0|(t=t+1|0)););if(e[50303]=0,e[A+16>>2]=137584,e[A+20>>2]=47,DA(t=A+32|0,87827,A+16|0),_s(t,HA(t)+1|0,0),e[A+4>>2]=47,e[A>>2]=137584,DA(t,87933,A),_s(t,HA(t)+1|0,1),t=e[50303],e[201216+(r=t<<2)>>2]=0,r=Ur(a=e[50741],r+4|0)){if(e[50741]=r,An(201216,t,7),a=e[50741],r=0,t=e[50304])for(s=0;n=e[t+4>>2],l[0|n]&&yr(n+1|0,86589)&&xa(e[t+8>>2],88032,3)&&(e[(r<<2)+a>>2]=t,r=r+1|0),t=e[201216+((s=s+1|0)<<2)>>2];);e[(r<<2)+a>>2]=0}return J=A+208|0,a}function Jt(A,t,r){var a=0,s=0,n=0,o=0;if(n=t-1|0,(0|t)>=2){t=A;e:{for(;;){A:{r:{if((0|(a=e[r+4>>2]))!=(0|(s=e[r+8>>2]))){if((o=rn(a,10,s-a|0))?s=1+(o-(a=e[r+4>>2])|0)|0:(a=e[r+4>>2],s=e[r+8>>2]-a|0),wt(t,a,a=s>>>0>>0?s:n),s=a+e[r+4>>2]|0,e[r+4>>2]=s,t=t+a|0,o||!(n=n-a|0))break A;if((0|s)!=e[r+8>>2]){e[r+4>>2]=s+1,a=l[0|s];break r}}if(!((0|(a=Kn(r)))>=0)){if(a=0,(0|A)==(0|t))break e;if(16&l[0|r])break A;break e}}if(u[0|t]=a,t=t+1|0,(255&a)!=10&&(n=n-1|0))continue}break}A?(u[0|t]=0,a=A):a=0}}else if(t=e[r+72>>2],e[r+72>>2]=t-1|t,!n)return u[0|A]=0,A;return a}function La(A){var t=0,r=0,a=0,s=0,n=0,o=0,c=0,f=0;if(t=P(A,44),(0|(A=e[t+137896>>2]))>0&&La(A-1|0),A=e[36115],!((0|(t=e[36+(r=t+137856|0)>>2]))<=0)){if(s=e[r+32>>2],c=1&t,(0|t)!=1)for(f=-2&t,r=0;t=l[10+(n=(a=r<<4)+s|0)|0],e[144464+(t<<2)>>2]=n,(0|A)>=(0|t)?t=A:jA(144464+((A=A+1|0)<<2)|0,0,t-A<<2),A=l[10+(a=(16|a)+s|0)|0],e[144464+(A<<2)>>2]=a,(0|A)<=(0|t)?A=t:jA(144464+((t=t+1|0)<<2)|0,0,A-t<<2),r=r+2|0,(0|f)!=(0|(o=o+2|0)););else r=0;c&&(t=l[10+(r=(r<<4)+s|0)|0],e[144464+(t<<2)>>2]=r,(0|A)>=(0|t)||(jA(144464+((A=A+1|0)<<2)|0,0,t-A<<2),A=t))}e[36115]=A}function fa(A,t,r,a,s){var n,o=0,c=0,f=0;J=n=J-16|0;e:if(1&u[A+106|0]&&(o=l[0|r],!(!(1&u[a+2|0])&(0|o)!=46||256&(f=e[a+12>>2])|!(!(2&f)||s)||(Gt(n+12|0,(0|o)!=46?r:r+2|0),!(o=l[0|r])|!l[r+1|0])))){if(!(!(f=e[n+12>>2])|2&l[a+2|0])){if(!rr(f))break e;o=l[0|r]}(0|o)==46&&(u[0|r]=32),c=2,e[A+212>>2]!=26741|s||(r=rr(e[n+12>>2])?NA(A,r+2|0,0,0):0,128&l[A+8233|0]&&(!(!(s=e[n+12>>2])|2&l[a+2|0])&s-48>>>0>=10||(c=0)),c=32768&r?0:c,131072&r&&(c=163840&e[A+8232>>2]?34:l[t-2|0]!=45?c:0))}return J=n+16|0,c}function nr(A,t,r,a,s){var n,o=0,c=0;if(J=n=J-208|0,e[n+204>>2]=r,jA(r=n+160|0,0,40),e[n+200>>2]=e[n+204>>2],(0|$A(0,t,n+200|0,n+80|0,r,a,s))<0)s=-1;else{e[A+76>>2],o=e[A>>2],e[A+72>>2]<=0&&(e[A>>2]=-33&o);e:{A:{if(e[A+48>>2]){if(e[A+16>>2])break A}else e[A+48>>2]=80,e[A+28>>2]=0,e[A+16>>2]=0,e[A+20>>2]=0,c=e[A+44>>2],e[A+44>>2]=n;if(r=-1,Ei(A))break e}r=$A(A,t,n+200|0,n+80|0,n+160|0,a,s)}c&&(ct[e[A+36>>2]](A,0,0),e[A+48>>2]=0,e[A+44>>2]=c,e[A+28>>2]=0,t=e[A+20>>2],e[A+16>>2]=0,e[A+20>>2]=0,r=t?r:-1),t=A,A=e[A>>2],e[t>>2]=A|32&o,s=32&A?-1:r}return J=n+208|0,s}function rt(A,t,r,a){var s,n=0,o=0,c=0,f=0,m=0,p=0,I=0;if(J=s=J-208|0,o=l[0|t])for(;u[n+s|0]=o,f=((255&o)==6&(0|c)!=21)+f|0,c=o<<24>>24,o=l[(n=n+1|0)+t|0];);if(u[n+s|0]=0,n=l[0|s])for(p=f-2|0,c=0,I=(0|a)<2,o=0;;){e:{A:if((255&n)!=6|I|(0|o)==21){if((0|(a=255&n))==255){if(!m|(0|r)<2)break e;a=r>>>0>2?11:(0|c)%3|0?23:11}o=a,a=c}else{if(n=c+1|0,l[A+169|0]){o=(0|n)>1?5:6,a=n;break A}if(o=6,a=f,(0|n)==(0|f))break A;o=(0|n)%3|0||(0|c)==(0|p)?5:6,a=n}c=a,u[0|t]=o,t=t+1|0}if(!(n=l[(m=m+1|0)+s|0]))break}(0|r)>=2&&(u[0|t]=11,t=t+1|0),u[0|t]=0,J=s+208|0}function dr(A,t){var r=0;r=0,A&&(r=e[50754],r=(A=(A=(0|P(e[145712+(t?12:((0|A)>199)<<2)>>2],A))/256|0)>>>0>(t=e[36430])>>>0?A:t)>>>0<=89999?(P(A,r)>>>0)/1e3|0:(P(A,(0|r)/25|0)>>>0)/40|0),(0|(A=e[36440]))<=0||(0|(t=e[36424]))<0||(e[4+(t=216192+(t<<4)|0)>>2]||(e[t+4>>2]=A),e[36440]=0),e[36426]=0,e[36439]=-1,e[36455]=e[50758],Oa(),e[36427]=-1,A=216192+(e[50758]<<4)|0,e[A>>2]=5,e[A+4>>2]=r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,e[36426]=0,e[36438]&&(e[36438]=0,A=216192+(e[50758]<<4)|0,e[A>>2]=14,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0)}function uA(A,t,r,a,s,n,o,c){var f,m=0,p=0,I=0;m=1,f=p=2147483647&a;e:if(!((I=(0|p)==2147418112)&!r?A|t:I&!!(0|r)|p>>>0>2147418112)&&!((I=(0|(p=2147483647&c))==2147418112)&!o?s|n:I&!!(0|o)|p>>>0>2147418112)){if(!(A|s|r|o|t|n|p|f))return 0;if((0|(m=a&c))>0|(0|m)>=0){if(m=-1,(0|r)==(0|o)&(0|a)==(0|c)?(0|t)==(0|n)&A>>>0>>0|t>>>0>>0:r>>>0>>0&(0|a)<=(0|c)|(0|a)<(0|c))break e;return!!(A^s|r^o|t^n|a^c)}m=-1,((0|r)==(0|o)&(0|a)==(0|c)?(0|t)==(0|n)&A>>>0>s>>>0|t>>>0>n>>>0:r>>>0>o>>>0&(0|a)>=(0|c)|(0|a)>(0|c))||(m=!!(A^s|r^o|t^n|a^c))}return m}function JA(A,t){var r=0,a=0,s=0,n=0;for(r=l[85836]|l[85837]<<8,u[0|t]=r,u[t+1|0]=r>>>8,u[t+2|0]=l[85838];;)if(s=l[0|A],A=r=A+1|0,(0|s)!=255){if(!s)break;if(!(a=e[144464+(s<<2)>>2]))continue;if(l[a+11|0]==1&&(n=l[a+14|0],!(M[a+8>>1]|n>>>0>4))){if(n>>>0<2)continue;u[0|t]=l[n+93943|0],t=t+1|0;continue}if(255&(A=e[a>>2]))for(;u[0|t]=A,t=t+1|0,a=65280&A,A=A>>>8|0,a;);if(A=r,(0|s)!=21||(32|(r=u[0|A]))-97>>>0>=26)continue;for(;u[0|t]=r,t=t+1|0,(32|(r=u[0|(A=A+1|0)]))-97>>>0<26;);}u[0|t]=0}function pa(A,t){var r,a,s=0,n=0,o=0;J=r=J-112|0,A||(e[50303]||KA(),A=201216),ar(s=r+16|0,t,40),e[r>>2]=47,e[r+4>>2]=s,DA(t=r- -64|0,87599,r),a=HA(t),o=-1;e:{A:{r:{if(n=e[A>>2]){t=0,s=-1;s:{for(;;){if(hi(r+16|0,e[n>>2])){if(hi(r+16|0,n=e[n+8>>2])?o=hi(r- -64|0,n+(HA(n)-a|0)|0)?o:t:s=t,n=e[((t=t+1|0)<<2)+A>>2])continue;break s}break}if((0|t)>=0)break A;t=(0|s)<0?o:s;break r}if((0|(t=s))>=0)break r}t=o}if(s=0,(0|t)<0)break e}s=e[(t<<2)+A>>2]}return J=r+112|0,s}function Nr(A,t){var r,a,s=0,n=0,o=0,c=0,f=0;J=r=J-16|0,be(+t),a=0|X(1),n=0|X(0),(0|(o=(s=2147483647&a)-1048576|0))==2145386495|o>>>0<2145386495?(c=n<<28,o=s>>>4|0,s=(15&s)<<28|n>>>4,n=o+1006632960|0):(0|s)==2146435072|s>>>0>2146435072?(c=n<<28,s=(15&a)<<28|n>>>4,n=a>>>4|2147418112):s|n?(ea(r,n,o=s,0,0,(s=s?Ye(s):Ye(n)+32|0)+49|0),f=e[r>>2],c=e[r+4>>2],o=15372-s<<16,s=e[r+8>>2],n=o|65536^e[r+12>>2]):(s=0,n=0),e[A>>2]=f,e[A+4>>2]=c,e[A+8>>2]=s,e[A+12>>2]=-2147483648&a|n,J=r+16|0}function Rr(A,t,r){var a=0,s=0;e:{A:{r:{if(!(3&((s=A)^t))){a=!!(0|r);s:if(!(!(3&t)|!r))for(;;){if(a=l[0|t],u[0|s]=a,!a)break e;if(s=s+1|0,a=!!(0|(r=r-1|0)),!(3&(t=t+1|0)))break s;if(!r)break}if(!a)break A;if(!l[0|t])break e;if(!(r>>>0<4))for(;;){if(~(a=e[t>>2])&a-16843009&-2139062144)break r;if(e[s>>2]=a,s=s+4|0,t=t+4|0,!((r=r-4|0)>>>0>3))break}}if(!r)break A}for(;;){if(a=l[0|t],u[0|s]=a,!a)break e;if(s=s+1|0,t=t+1|0,!(r=r-1|0))break}}r=0}return jA(s,0,r),A}function Pr(A,t,r,a,s,n){var o,c=0,f=0,m=0;J=o=J-240|0,c=e[r>>2],e[o+232>>2]=c,r=e[r+4>>2],e[o>>2]=A,e[o+236>>2]=r,m=1;e:{A:{r:{if(r|(0|c)!=1){for(c=A;;){if((0|Gs(r=c-e[(f=(a<<2)+n|0)>>2]|0,A,t))<=0){r=c;break r}s:{if(!((0|a)<2|s)&&(s=e[f-8>>2],(0|Gs(f=c-4|0,r,t))>=0||(0|Gs(f-s|0,r,t))>=0))break s;if(e[(m<<2)+o>>2]=r,yn(c=o+232|0,s=Di(c)),m=m+1|0,a=a+s|0,s=0,c=r,e[o+236>>2]|e[o+232>>2]!=1)continue;break A}break}r=c;break A}r=A}if(s)break e}js(o,m),Ii(r,t,a,n)}J=o+240|0}function Cr(A,t){var r=0;e[4+(134912+(r=A<<2)|0)>>2]=t,e[r+136192>>2]=t,r=28;e:{A:{r:switch(A-1|0){case 0:e[50792]=t,e[50786]=t,Os(3);break A;case 1:e[50787]=t,e[33037]=(0|P(l[e[50797]+105596|0],(0|P(e[50787],55))/100|0))/16;break A;case 2:A=(0|t)>=99?99:t,e[50785]=(0|A)>0?A:0;break A;case 3:e[50788]=(0|t)>=99?99:t;break A;case 12:e[47268]=t;break A;case 6:e[47205]=t;break A;case 9:break A;case 8:break r;default:break e}(A=255&t)&&(e[e[47192]+152>>2]=A),e[47196]=t}r=0}return r}function Ut(A,t){var r=0,a=0,s=0;e:if(e[A>>2])for(;;){if(Or(e[A-4>>2])){if(a=0,(0|(r=u[0|t]))==e[A>>2])for(;(0|(r=u[(a=a+1|0)+t|0]))==e[(A=A+4|0)>>2];);if(!r){for(;t=A,A=A+4|0,Or(e[t>>2]););for(s=t+((e[t>>2]==61)<<2)|0;s=(A=s)+4|0,Or(e[A>>2]););switch((t=e[A>>2])-34|0){case 0:case 5:break e}return Or(t)||e[A>>2]==47?102808:A}}if(!e[(A=A+4|0)>>2])break}return s}function xr(A,t,r,a){var s,n,o=0,c=0,f=0;return!l[A+25|0]|D[A+8>>3]!=r|D[A+16>>3]!=a?(D[A+16>>3]=a,D[A+8>>3]=r,a=(o=Pt(-3.141592653589793/(c=+e[A>>2])*a))*-o,D[A+48>>3]=a,o*=Ga(-6.283185307179586/c*r),o+=o,D[A+40>>3]=o,c=1-o-a,D[A+32>>3]=c,!(f=l[A+24|0])|r==0||(c=1/c,D[A+32>>3]=c,a*=r=-c,D[A+48>>3]=a,o*=r,D[A+40>>3]=o,f=1)):(f=l[A+24|0],a=D[A+48>>3],o=D[A+40>>3],c=D[A+32>>3]),u[A+25|0]=1,r=D[A+64>>3],s=D[A+56>>3],D[A+64>>3]=s,n=t,t=a*r+(c*t+o*s),D[A+56>>3]=f?n:t,t}function tn(A,t,r,a,s){var n,o=0,c=0,f=0,m=0;if((n=e[34388])&&!((0|(c=e[34436]))>=(e[34393]-2|0))){if(e[34436]=c+1,o=P(c,36)+n|0,e[o>>2]=A,e[o+4>>2]=e[34437],m=e[34438],e[o+12>>2]=t>>>24,e[o+8>>2]=16777215&t,e[o+24>>2]=m,t=e[50754],s=e[34439]+((s-e[34392]|0)/2|0)|0,e[o+20>>2]=s,t=Ne(f=1e3*+(0|s)/+(0|t))<2147483648?~~f:-2147483648,e[o+16>>2]=t,A-3>>>0<=1)return void(e[28+(P(c,36)+n|0)>>2]=e[33282]+r);t=28+(P(c,36)+n|0)|0,e[t>>2]=r,(0|A)==7&&(e[t+4>>2]=a)}}function Ya(A,t,r,a,s,n){var o=0,c=0,f=0,m=0;64&n?(t=31&(r=n+-64|0),(63&r)>>>0>=32?(r=0,t=s>>>t|0):(r=s>>>t|0,t=((1<>>t),a=0,s=0):n&&(f=a,o=31&(c=64-n|0),(63&c)>>>0>=32?(c=f<>>32-o|s<>>0>=32?(o=0,t=r>>>t|0):(o=r>>>t|0,t=((1<>>t),t|=m,r=o|c,o=a,a=31&n,(63&n)>>>0>=32?(c=0,a=s>>>a|0):(c=s>>>a|0,a=((1<>>a),s=c),e[A>>2]=t,e[A+4>>2]=r,e[A+8>>2]=a,e[A+12>>2]=s}function Sn(A){var t=0,r=0;if(!A){if(e[33174]&&(t=Sn(e[33174])),e[33136]&&(t=Sn(e[33136])|t),A=e[56816])for(;e[A+20>>2]!=e[A+28>>2]&&(t=Sn(A)|t),A=e[A+56>>2];);return t}return e[A+76>>2],e[A+20>>2]==e[A+28>>2]||(ct[e[A+36>>2]](A,0,0),e[A+20>>2])?((0|(t=e[A+8>>2]))!=(0|(r=e[A+4>>2]))&&(t=r-t|0,ct[e[A+40>>2]](A,t,t>>31,1)),t=0,e[A+28>>2]=0,e[A+16>>2]=0,e[A+20>>2]=0,e[A+4>>2]=0,e[A+8>>2]=0):t=-1,t}function Ma(A,t){var r=0,a=0,s=0,n=0,o=0;if((192&(r=l[0|t]))==128)for(;(192&(r=l[0|(t=t-1|0)]))==128;);e:if(128&(r=r<<24>>24)){if(a=1,(0|(s=224&r))!=192)if((240&r)!=224){if(a=3,(248&r)!=240){r&=255,a=0;break e}}else a=2,o=1;r=l[a+93846|0]&r,(n=l[t+1|0])?(r=63&n|r<<6,(0|s)!=192&&((s=l[t+2|0])?(r=63&s|r<<6,o||((t=l[t+3|0])?r=63&t|r<<6:a=2)):a=1)):a=0}return e[A>>2]=r,a+1|0}function Nn(A,t,r,a){var s,n=0,o=0;return J=s=J-224|0,A?(e[s>>2]=137584,e[s+4>>2]=47,e[s+8>>2]=t,DA(t=s+16|0,85430,s),(0|(n=ss(t)))<0?t=ps(a,0-n|0,s+16|0):(t=wa(s+16|0,85659))?((o=e[A>>2])&&xt(o),n?(o=Ct(n),e[A>>2]=o,o?(0|mi(o,n,t))==(0|n)?(ta(t),t=0,r&&(e[r>>2]=n)):(r=e[56798],ta(t),xt(e[A>>2]),e[A>>2]=0,t=ps(a,r,s+16|0)):(ta(t),t=48)):(t=0,e[A>>2]=0)):t=ps(a,e[56798],s+16|0)):t=28,J=s+224|0,t}function Gt(A,t){var r=0,a=0,s=0,n=0,o=0;if((192&(r=l[0|t]))==128)for(;(192&(r=l[0|(t=t+1|0)]))==128;);e:if(128&(r=r<<24>>24)){if(a=1,(0|(s=224&r))!=192)if((240&r)!=224){if(a=3,(248&r)!=240){r&=255,a=0;break e}}else a=2,o=1;r=l[a+93846|0]&r,(n=l[t+1|0])?(r=63&n|r<<6,(0|s)!=192&&((s=l[t+2|0])?(r=63&s|r<<6,o||((t=l[t+3|0])?r=63&t|r<<6:a=2)):a=1)):a=0}return e[A>>2]=r,a+1|0}function ea(A,t,r,a,s,n){var o=0,c=0,f=0;64&n?(a=t,t=31&(s=n+-64|0),(63&s)>>>0>=32?(s=a<>>32-t|r<>>0>=32?(c=o<>>32-a|s<>>0>=32?(s=0,t=r>>>a|0):(s=r>>>a|0,t=((1<>>a),a=f|t,s|=c,t=31&n,(63&n)>>>0>=32?(c=o<>>32-t|r<>2]=t,e[A+4>>2]=r,e[A+8>>2]=a,e[A+12>>2]=s}function Wa(A){var t=0;return A>>>0<=55295?t=l[e[125552+(A>>>6&67108860)>>2]+(255&A)|0]:(t=4,A>>>0<57344||(A>>>0<63488?t=3:A>>>0<=195327?t=l[e[126416+(A-63488>>>6&67108860)>>2]+(255&A)|0]:(t=2,A>>>0<917504||(A>>>0<=918015?t=l[e[128476+(A-917504>>>6&67108860)>>2]+(255&A)|0]:A>>>0<983040||(A>>>0<1048574?t=3:A>>>0<1048576||(t=3,A>>>0<1114110||(t=A>>>0<1114112?2:5))))))),255&t}function s0(A,t){var r=0,a=0,s=0,n=0,o=0,c=0,f=0,m=0,p=0;if(!((0|(r=e[33709]))<=0)){if(s=(0|A)>31?A-32|0:A,A=0,r>>>0>=4)for(p=-4&r;c=2|A,f=1|A,a=e[134912+((o=3|A)<<6)>>2]==(0|s)?o:e[134912+(c<<6)>>2]==(0|s)?c:e[134912+(f<<6)>>2]==(0|s)?f:e[134912+(A<<6)>>2]==(0|s)?A:a,A=A+4|0,(0|p)!=(0|(n=n+4|0)););if(n=3&r)for(;a=e[134912+(A<<6)>>2]==(0|s)?A:a,A=A+1|0,(0|n)!=(0|(m=m+1|0)););(0|a)<=0||(e[33709]=a,r=a)}qa(t,r)}function n0(A){var t,r=0,a=0,s=0;for(J=t=J-96|0,ar(t,A,60),On(t,1);s=Ht(u[0|(a=t+r|0)]),u[0|a]=s,r=r+1|0,255&s;);e[t+92>>2]=0,e[t+84>>2]=0,e[t+88>>2]=0,e[t+76>>2]=0,e[t+80>>2]=0,e[t+72>>2]=A;e:{A:{r:{if(Tt(t,1)){if(l[202976])break r;break A}if(e[50303]||KA(),r=268437247,!(A=pa(201216,t))||!Tt(e[A+8>>2],0))break e;if(!l[202976])break A}Tt(202976,2)}Ti(e[32972]),e[t+76>>2]=e[32972]+40,In(t+72|0,202976),r=0}return J=t+96|0,r}function i0(A,t){if(!A)return 0;e:{A:{if(A){if(t>>>0<=127)break A;if(e[e[56841]>>2]){if(t>>>0<=2047){u[A+1|0]=63&t|128,u[0|A]=t>>>6|192,A=2;break e}if(!((-8192&t)!=57344&t>>>0>=55296)){u[A+2|0]=63&t|128,u[0|A]=t>>>12|224,u[A+1|0]=t>>>6&63|128,A=3;break e}if(t-65536>>>0<=1048575){u[A+3|0]=63&t|128,u[0|A]=t>>>18|240,u[A+2|0]=t>>>6&63|128,u[A+1|0]=t>>>12&63|128,A=4;break e}}else if((-128&t)==57216)break A;e[56798]=25,A=-1}else A=1;break e}u[0|A]=t,A=1}return A}function o0(A){var t=0,r=0,a=0,s=0;if(e[A+20>>2]=0,(a=(r=e[A+8>>2])-(t=e[A+4>>2])|0)>>>0>=9)for(;xt(e[t>>2]),t=e[A+4>>2]+4|0,e[A+4>>2]=t,(a=(r=e[A+8>>2])-t|0)>>>0>8;);switch(s=512,(a>>>2|0)-1|0){case 1:s=1024;case 0:e[A+16>>2]=s}if((0|t)!=(0|r)){for(;xt(e[t>>2]),(0|r)!=(0|(t=t+4|0)););(0|(t=e[A+8>>2]))!=(0|(r=e[A+4>>2]))&&(e[A+8>>2]=t+(3+(r-t|0)&-4))}(A=e[A>>2])&&xt(A)}function rn(A,t,r){var a=0,s=0;a=!!(0|r);e:{A:{r:if(!(!(3&A)|!r))for(s=255&t;;){if((0|s)==l[0|A])break A;if(a=!!(0|(r=r-1|0)),!(3&(A=A+1|0)))break r;if(!r)break}if(!a)break e;if(!(l[0|A]==(255&t)|r>>>0<4))for(a=P(255&t,16843009);;){if(~(s=a^e[A>>2])&s-16843009&-2139062144)break A;if(A=A+4|0,!((r=r-4|0)>>>0>3))break}if(!r)break e}for(t&=255;;){if((0|t)==l[0|A])return A;if(A=A+1|0,!(r=r-1|0))break}}return 0}function Rs(A,t){var r=0,a=0;e:{if(a=255&t){if(3&A)for(;;){if(!(r=l[0|A])|(0|r)==(255&t))break e;if(!(3&(A=A+1|0)))break}A:if(!(~(r=e[A>>2])&r-16843009&-2139062144))for(a=P(a,16843009);;){if(~(r^=a)&r-16843009&-2139062144)break A;if(r=e[A+4>>2],A=A+4|0,r-16843009&~r&-2139062144)break}for(;(a=l[0|(r=A)])&&(A=r+1|0,(0|a)!=(255&t)););return r}return HA(A)+A|0}return A}function l0(A,t,r,a,s){var n,o=0,c=0;c=-1;e:if(!(((o=(0|(n=2147483647&a))==2147418112)&!r?A|t:o&!!(0|r)|n>>>0>2147418112)||(o=2147483647&s)>>>0>2147418112&(0|o)!=2147418112)){if(!(A|r|o|n|t))return 0;if((0|(o=a&s))>0|(0|o)>=0){if((!!(0|r)|(0|a)!=(0|s))&(0|a)<(0|s))break e;return!!(A|r|a^s|t)}(!r&(0|a)==(0|s)?A|t:!!(0|r)&(0|a)>=(0|s)|(0|a)>(0|s))||(c=!!(A|r|a^s|t))}return c}function On(A,t){var r,a=0;J=r=J+-64|0,u[202976]=0,e[r+48>>2]=47,DA(r+59|0,91351,r+48|0),t||(u[r+59|0]=0);e:{A:{if(A&&(A=$a(A,43))){if(u[0|A]=0,u[0|(A=A+1|0)]-48>>>0>=10)break A;a=Vs(A)}if((0|a)<=0)break e;if(a>>>0<=9){e[r+4>>2]=a,e[r>>2]=r+59,DA(202976,91378,r);break e}e[r+20>>2]=a-10,e[r+16>>2]=r+59,DA(202976,91503,r+16|0);break e}e[r+36>>2]=A,e[r+32>>2]=r+59,DA(202976,85425,r+32|0)}J=r- -64|0}function Qa(A){var t,r=0,a=0,s=0;J=t=J-80|0,r=cs(A,t+12|0),e[t+12>>2]?(ar(a=t+16|0,r,60),r=0,On(a,1),!Tt(a,0)|!l[202976]||Tt(202976,2),Ti(e[32972]),In(A,86012)):r=268437247,J=t+80|0;e:{A:{r:{s:{if((0|r)<=268437502){if(!r)break e;if((0|r)==268436479)break A;if((0|r)!=268437247)break s;return 2}if((0|r)==268437503|(0|r)==268437759)break r;if((0|r)==268439295)break e}return-1}return 2}s=1}return s}function Kr(A,t,r,a,s,n,o,c,f){var m,p,I;f=It(t,r,c,f),c=$,s=It(a,s,n,o),a=$+c|0,c=s>>>0>(f=s+f|0)>>>0?a+1|0:a,m=o,p=r,o=(r=It(o,s=0,r,a=0))+f|0,f=$+c|0,I=o,r=r>>>0>o>>>0?f+1|0:f,o=It(n,0,t,0),c=$,a=It(n,f=0,p,a),n=$+f|0,n=a>>>0>(c=c+a|0)>>>0?n+1|0:n,a=r,n=n>>>0>(f=n+I|0)>>>0?a+1|0:a,r=It(t,0,m,s)+c|0,s=$,c=(s=r>>>0>>0?s+1|0:s)+f|0,f=n,e[A+8>>2]=c,e[A+12>>2]=s>>>0>c>>>0?f+1|0:f,e[A>>2]=o,e[A+4>>2]=r}function qA(A,t){var r=0,a=0;e:{if(3&((a=A)^t))r=l[0|t];else{if(3&t)for(;;){if(r=l[0|t],u[0|a]=r,!r)break e;if(a=a+1|0,!(3&(t=t+1|0)))break}if(!(~(r=e[t>>2])&r-16843009&-2139062144))for(;e[a>>2]=r,r=e[t+4>>2],a=a+4|0,t=t+4|0,!(r-16843009&~r&-2139062144););}if(u[0|a]=r,255&r)for(;r=l[t+1|0],u[a+1|0]=r,a=a+1|0,t=t+1|0,r;);}return A}function Ga(A){var t,r=0,a=0;J=t=J-16|0,be(+A),a=0|X(1),X(0);e:if((a&=2147483647)>>>0<=1072243195){if(r=1,a>>>0<1044816030)break e;r=xn(A,0)}else if(r=A-A,!(a>>>0>=2146435072)){switch(3&Ia(A,t)){case 0:r=xn(D[t>>3],D[t+8>>3]);break e;case 1:r=-vs(D[t>>3],D[t+8>>3],1);break e;case 2:r=-xn(D[t>>3],D[t+8>>3]);break e}r=vs(D[t>>3],D[t+8>>3],1)}return J=t+16|0,r}function di(A,t,r,a){var s=0,n=0,o=0;if(!((HA(a)+HA(t)|0)>=(0|r))){for(o=e[36115],r=a;s=l[0|r];)if(r=r+1|0,!((0|s)>=(0|o))){e:{A:switch(s=e[144464+(s<<2)>>2],l[s+11|0]-1|0){case 1:break e;case 0:break A;default:continue}n=l[s+14|0]<4|n;continue}1&(l[s+4|0]>>>1|n)||(e[A+8212>>2]=e[A+8212>>2]+1),e[A+8208>>2]=e[A+8208>>2]+1,n=0}t&&sa(t,a)}}function Ln(A){var t,r=0;J=t=J-16|0,be(+A),r=0|X(1),X(0);e:if((r&=2147483647)>>>0<=1072243195){if(r>>>0<1045430272)break e;A=vs(A,0,0)}else if(r>>>0>=2146435072)A-=A;else{switch(3&Ia(A,t)){case 0:A=vs(D[t>>3],D[t+8>>3],1);break e;case 1:A=xn(D[t>>3],D[t+8>>3]);break e;case 2:A=-vs(D[t>>3],D[t+8>>3],1);break e}A=-xn(D[t>>3],D[t+8>>3])}return J=t+16|0,A}function fi(A){var t=0;e[A+296>>2]=303173648,e[A+300>>2]=370677780,t=e[26341],e[A+304>>2]=e[26340],e[A+308>>2]=t,t=e[26343],e[A+312>>2]=e[26342],e[A+316>>2]=t,xs(A),e[A+56>>2]=2,e[A+36>>2]=3,e[A+40>>2]=1074,u[A+168|0]=5,e[A+132>>2]=32,e[A+104>>2]=1032,e[A+108>>2]=66,e[A+8>>2]=5,e[A+12>>2]=32,u[A+365|0]=64|l[A+365|0],u[A+368|0]=64|l[A+368|0],u[A+396|0]=64|l[A+396|0],u[A+399|0]=64|l[A+399|0]}function c0(A,t,r){var a=0,s=0,n=0;e:{if(!(a=e[r+16>>2])){if(Ei(r))break e;a=e[r+16>>2]}if(a-(n=e[r+20>>2])>>>0>>0)return 0|ct[e[r+36>>2]](r,A,t);A:if(e[r+80>>2]<0)a=0;else{for(s=t;;){if(!(a=s)){a=0;break A}if(l[(s=a-1|0)+A|0]==10)break}if((s=0|ct[e[r+36>>2]](r,A,a))>>>0>>0)break e;A=A+a|0,t=t-a|0,n=e[r+20>>2]}wt(n,A,t),e[r+20>>2]=e[r+20>>2]+t,s=t+a|0}return s}function u0(A){var t,r=0,a=0;e:{if((0|(t=e[34064]))>0)for(;;){if((a=e[136284+(r<<4)>>2])&&!yr(A,a)){if(e[136276+(r<<4)>>2])return r;if(a=-1,$s(0,r))break e;return r}if((0|t)==(0|(r=r+1|0)))break}a=-1,$s(A,t)||(r=Ur(e[12+(136272+(e[34064]<<4)|0)>>2],HA(A)+1|0),a=e[34064],e[12+(136272+(a<<4)|0)>>2]=r,qA(r,A),e[34064]=a+1)}return a}function pi(A,t){var r,a=0,s=0,n=0,o=0;for(J=r=J-16|0,u[0|t]=0,(a=15&e[A>>2])&&(t=(s=HA(t=qA(t,Bn(128496,64|a))))+t|0),a=8;;){e:{A:{if(a>>>0<=29){if(e[A>>2]>>>a&1)break A;break e}if(!(e[A+4>>2]>>>a-32&1)|a>>>0<32)break e}(0|(s=(o=HA(n=Bn(128496,a))+1|0)+s|0))>=80||(e[r>>2]=n,DA(t,84439,r),t=t+o|0)}if((0|(a=a+1|0))==64)break}J=r+16|0}function j0(A,t,r){var a,s=0,n=0,o=0;if(J=a=J-16|0,l[0|A]){for(o=e[30450];;)if(n=A,A=A+1|0,!((0|(s=u[0|n]))==32|s-9>>>0<5)){for((0|(s=Vs(n)))>0&&((0|s)<32?e[t>>2]=e[t>>2]|1<>2]=s,e[a>>2]=n,fr(o,84902,a)),n=A);n=(A=n)+1|0,(s=u[0|A])-48>>>0<10|(32|s)-97>>>0<26;);if(!s)break}}J=a+16|0}function Ta(A,t,r){var a=0,s=0,n=0,o=0;e:if(t&&!((0|(s=r-4|0))<=0))for(n=(0|(r=e[t-4>>2]))!=34?(0|r)==39?r:0:r,r=0;;){if(o=r,!(r=e[t>>2]))break e;A:{if(!n){if((0|r)==32|r-9>>>0<5)break e;if((0|r)!=47)break A;break e}if((0|o)!=92&&(0|r)==(0|n))break e}if(t=t+4|0,!((0|s)>(0|(a=zr(r,A+a|0)+a|0))))break}return u[A+a|0]=0,a}function rr(A){var t=0;e:if(!ns(A)){t=0;A:if(!(A>>>0<768)){if(A-2305>>>0<=1270){if((124&A)>>>0<100)break e;if(t=1,Pi(93850,A))break A;return A-3450>>>0<6}if((0|A)==1541|A-1456>>>0<19|(0|A)==1648||(0|(t=-256&A))==10240|(0|t)==4352|A-3904>>>0<125|A>>>0<880)break e;t=1,A-1611>>>0<20||(t=A-12353>>>0<30400)}return t}return 1}function In(A,t){var r=0;A?((r=e[A+4>>2])&&qA(133208,r),(r=e[A>>2])&&ar(133168,r,40),e[33289]=l[A+14|0],e[33291]=l[A+13|0],e[33290]=l[A+12|0],ar(134672,l[0|t]!=33|l[t+1|0]!=118?t:(l[t+2|0]==47?3:0)+t|0,40),A=e[50298],e[33678]=e[50297],e[33679]=A,A=e[50302],e[33682]=e[50301],e[33683]=A,A=e[50300],e[33680]=e[50299],e[33681]=A):jA(133152,0,76)}function wn(A,t,r,a){u[A+53|0]=1;e:if(e[A+4>>2]==(0|r)){u[A+52|0]=1;A:{if(!(r=e[A+16>>2])){if(e[A+36>>2]=1,e[A+24>>2]=a,e[A+16>>2]=t,(0|a)!=1)break e;if(e[A+48>>2]==1)break A;break e}if((0|t)==(0|r)){if((0|(r=e[A+24>>2]))==2&&(e[A+24>>2]=a,r=a),e[A+48>>2]!=1)break e;if((0|r)==1)break A;break e}e[A+36>>2]=e[A+36>>2]+1}u[A+54|0]=1}}function ka(A,t){var r=0,a=0,s=0,n=0,o=0;e:if(r=e[t>>2])for(;;){a=0;A:if(A){for(;o=u[a+r|0],(s=e[(a<<2)+A>>2])&&(a=a+1|0,(0|o)==(0|s)););r:switch(s-34|0){case 0:case 5:break r;default:break A}if(!o)break e}if(!(r=e[((n=n+1|0)<<3)+t>>2]))break}return e[4+((n<<3)+t|0)>>2]}function Ws(A,t){e:if((0|t)>=1024){if(A*=898846567431158e293,t>>>0<2047){t=t-1023|0;break e}A*=898846567431158e293,t=((0|t)>=3069?3069:t)-2046|0}else(0|t)>-1023||(A*=2004168360008973e-307,t>>>0>4294965304?t=t+969|0:(A*=2004168360008973e-307,t=((0|t)<=-2960?-2960:t)+1938|0));return R(0,0),R(1,t+1023<<20),A*+ae()}function as(A,t,r,a){var s,n,o,c=0;return J=n=J-16|0,e[n+12>>2]=a,J=s=J-160|0,o=t?A:s+158|0,e[s+144>>2]=o,c=-1,A=t-1|0,e[s+148>>2]=A>>>0<=t>>>0?A:0,A=jA(s,0,144),e[A+76>>2]=-1,e[A+36>>2]=17,e[A+80>>2]=-1,e[A+44>>2]=A+159,e[A+84>>2]=A+144,(0|t)<0?e[56798]=61:(u[0|o]=0,c=nr(A,r,a,15,16)),J=A+160|0,J=n+16|0,c}function hi(A,t){var r=0,a=0,s=0;e:if(r=l[0|A])for(;;){if(!(a=l[0|t])){s=r;break e}if((0|r)!=(0|a)&&(0|(a=r-65>>>0<26?32|r:r))!=(0|((r=l[0|t])-65>>>0<26?32|r:r))){s=l[0|A];break e}if(t=t+1|0,r=l[A+1|0],A=A+1|0,!r)break}return(s=(A=255&s)-65>>>0<26?32|A:A)-((A=l[0|t])-65>>>0<26?32|A:A)|0}function mi(A,t,r){var a=0,s=0;if(a=e[r+72>>2],e[r+72>>2]=a-1|a,(0|(a=e[r+4>>2]))==(0|(s=e[r+8>>2]))?a=t:(wt(A,a,a=t>>>0>(a=s-a|0)>>>0?a:t),e[r+4>>2]=a+e[r+4>>2],A=A+a|0,a=t-a|0),a)for(;;){if(Hn(r)||!(s=0|ct[e[r+32>>2]](r,A,a)))return t-a|0;if(A=A+s|0,!(a=a-s|0))break}return t}function Vs(A){for(var t=0,r=0,a=0,s=0;A=(t=A)+1|0,(0|(r=u[0|t]))==32|r-9>>>0<5;);e:{A:{r:switch((r=u[0|t])-43|0){case 0:break A;case 2:break r;default:break e}s=1}r=u[0|A],t=A}if(r-48>>>0<10)for(;a=48+(P(a,10)-u[0|t]|0)|0,A=u[t+1|0],t=t+1|0,A-48>>>0<10;);return s?a:0-a|0}function Ci(A,t){var r,a,s,n=0;return J=r=J-32|0,e[t>>2]=0,e[t+4>>2]=0,e[(n=a=t+24|0)>>2]=0,e[n+4>>2]=0,e[(n=s=t+16|0)>>2]=0,e[n+4>>2]=0,e[(n=t+8|0)>>2]=0,e[n+4>>2]=0,e[r+28>>2]=t+28,e[r+24>>2]=a,e[r+20>>2]=t+20,e[r+16>>2]=s,e[r+12>>2]=t+12,e[r+8>>2]=n,e[r+4>>2]=t+4,e[r>>2]=t,A=gt(A,84553,r),J=r+32|0,A}function bi(A){var t=0,r=0,a=0;if((t=l[0|A])&&((r=l[A+1|0])?(r=t|r<<8,(t=l[A+2|0])&&(r|=t<<16,(A=l[A+3|0])&&(r|=A<<24))):r=t),(0|(t=e[36115]))>0)for(A=0;;){if(!(!(a=e[144464+(A<<2)>>2])|e[a>>2]!=(0|r)))return l[a+10|0];if((0|t)==(0|(A=A+1|0)))break}return 0}function Ii(A,t,r,a){var s,n=0,o=0,c=0,f=0,m=0;J=s=J-240|0,e[s>>2]=A,c=1;e:if(!((0|r)<2))for(n=A;;){if((0|Gs(A,o=(n=n-4|0)-e[((f=r-2|0)<<2)+a>>2]|0,t))>=0&&(0|Gs(A,n,t))>=0)break e;if(m=o,n=(o=(0|Gs(o,n,t))>=0)?m:n,e[(c<<2)+s>>2]=n,c=c+1|0,!((0|(r=o?r-1|0:f))>1))break}js(s,c),J=s+240|0}function DA(A,t,r){var a,s,n,o=0;return J=s=J-16|0,e[s+12>>2]=r,J=a=J-160|0,wt(n=a+8|0,124528,144),e[a+52>>2]=A,e[a+28>>2]=A,o=(o=-2-A|0)>>>0>2147483647?2147483647:o,e[a+56>>2]=o,A=A+o|0,e[a+36>>2]=A,e[a+24>>2]=A,A=Ds(n,t,r),o&&(t=e[a+28>>2],u[t-((0|t)==e[a+24>>2])|0]=0),J=a+160|0,J=s+16|0,A}function js(A,t){var r,a=0,s=0,n=0,o=0,c=0;if(a=4,J=r=J-256|0,(0|t)>=2)for(e[(c=(t<<2)+A|0)>>2]=r;;){for(n=a>>>0>=256?256:a,wt(e[c>>2],e[A>>2],n),s=0;o=(s<<2)+A|0,s=s+1|0,wt(e[o>>2],e[(s<<2)+A>>2],n),e[o>>2]=e[o>>2]+n,(0|t)!=(0|s););if(!(a=a-n|0))break}J=r+256|0}function RA(A,t,r){var a,s=0;return J=a=J-96|0,e[a+88>>2]=0,e[a+92>>2]=1073741824,e[a+84>>2]=t,t=kr(A,a+84|0,r,a+88|0,2,0),536870912&(s=e[a+88>>2])?(t=e[47202],e[47202]=0,u[a+2|0]=32,b[a>>1]=8192,ar(s=3|a,e[a+84>>2],77),A=NA(A,s,0,0),qA(r,189088),e[47202]=t):A=t?s:0,J=a+96|0,A}function wi(A,t,r){var a=0,s=0,n=0;s=kn(A),a=e[t>>2];e:{A:if((0|s)>=0){if(a){if(!yr(A,r))break A;(n=e[a+688>>2])&&xt(n),xt(a),e[t>>2]=0}e[t>>2]=qe(A),A=qA(r,A),Xa(r=e[t>>2],r+228|0,0)&&(ha(e[e[32972]+60>>2]),u[0|A]=0,s=-1),a=e[t>>2],e[a+292>>2]=s}else if(!a)break e;u[a+268|0]=0}return s}function Yn(A){var t=0,r=0;return(0|(t=e[A+76>>2]))>=0&(!t|e[56823]!=(-1073741825&t))?(r=e[(t=A+76|0)>>2],e[t>>2]=r||1073741823,(0|(r=e[A+4>>2]))==e[A+8>>2]?A=Kn(A):(e[A+4>>2]=r+1,A=l[0|r]),e[t>>2]=0,A):(0|(t=e[A+4>>2]))!=e[A+8>>2]?(e[A+4>>2]=t+1,l[0|t]):Kn(A)}function xa(A,t,r){var a=0,s=0;e:{A:{if(r>>>0>=4){if(3&(A|t))break A;for(;;){if(e[A>>2]!=e[t>>2])break A;if(t=t+4|0,A=A+4|0,!((r=r-4|0)>>>0>3))break}}if(!r)break e}for(;;){if((0|(a=l[0|A]))==(0|(s=l[0|t]))){if(t=t+1|0,A=A+1|0,r=r-1|0)continue;break e}break}return a-s|0}return 0}function Pa(A,t){var r,a=0,s=0,n=0;J=r=J-16|0,t?(ea(r,s=((a=t>>31)^t)-a|0,0,0,0,(a=Ye(s))+81|0),s=0+e[r+8>>2]|0,a=(65536^e[r+12>>2])+(16414-a<<16)|0,n=-2147483648&t|(a=s>>>0>>0?a+1|0:a),a=e[r+4>>2],t=e[r>>2]):t=0,e[A>>2]=t,e[A+4>>2]=a,e[A+8>>2]=s,e[A+12>>2]=n,J=r+16|0}function an(A){var t,r=0,a=0,s=0;if((0|(r=Rs(A,61)))==(0|A))return 0;e:if(!l[(t=r-A|0)+A|0]&&(r=e[56800])&&(a=e[r>>2])){for(;;){if(h0(A,a,t)||(a=e[r>>2]+t|0,l[0|a]!=61)){if(a=e[r+4>>2],r=r+4|0,a)continue;break e}break}s=a+1|0}return s}function kn(A){var t=0,r=0;e:if(!((0|(r=e[34461]))<=0)){for(;;){if(!yr(A,P(t,44)+137856|0)){e[34457]=t;break e}if((0|r)==(0|(t=t+1|0)))break}return-1}return(A=(0|t)==(0|r))?-1:((0|(A=A?-1:t))!=e[36114]&&(e[36115]=0,La(A),e[36114]=A,e[36115]=e[36115]+1),t)}function ki(A,t,r,a){var s=0,n=0;e:if((32|l[0|t])!=32){if(s=((0|a)>2)<<1,n=zs(A,t,r,s=(0|a)>1?4|s:s),l[0|r]!=21)for(s|=1,t=t+n|0,n=1;;){if((32|l[0|t])==32)break e;if(t=zs(A,t,r,s)+t|0,n=n+1|0,l[0|r]==21)break}return qA(189088,r),0}return rt(A,r,a,n),t}function zr(A,t){var r,a=0,s=0,n=0;if(A>>>0<=127)return u[0|t]=A,1;if(A>>>0>=1114112)return u[0|t]=32,1;for(a=P(r=A>>>0<2048?1:A>>>0<65536?2:3,6),u[0|t]=l[r+93842|0]|A>>>a;a=a-6|0,u[(s=s+1|0)+t|0]=A>>>a&63|128,(0|(n=n+1|0))!=(0|r););return r+1|0}function g0(A){var t=0,r=0;e:{if((0|(t=e[A+12>>2]))>=e[A+16>>2]){if(t=0,(0|(r=0|Te(e[A+8>>2],A+24|0,2048)))<=0){if(!r|(0|r)==-44)break e;return e[56798]=0-r,0}e[A+16>>2]=r}r=t,t=A+t|0,e[A+12>>2]=r+M[t+40>>1],r=e[t+36>>2],e[A>>2]=e[t+32>>2],e[A+4>>2]=r,t=t+24|0}return t}function d0(A,t){var r,a=0;if(a=e[A+632>>2])return!!(0|Lr(a,t));e:{A:{if((0|(r=e[A+600>>2]))>0){if(a=0,(t=t-r|0)-1>>>0<255)break A;break e}if((a=t-192|0)>>>0<=413)return 128&l[344+(l[a+94240|0]+A|0)|0];if(a=0,t>>>0>255)break e}a=128&l[344+(A+t|0)|0]}return a}function vs(A,t,r){var a,s,n;return n=(a=A*A)*(a*a)*(158969099521155e-24*a-25050760253406863e-24)+(a*(27557313707070068e-22*a-.0001984126982985795)+.00833333333332249),s=a*A,r?A-(a*(.5*t-n*s)-t+.16666666666666632*s):s*(a*n-.16666666666666632)+A}function sn(A,t){var r,a=0,s=0,n=0;J=r=J-16|0,t?(ea(r,a=t,0,0,0,(t=Ye(t))+81|0),a=0+e[r+8>>2]|0,t=(65536^e[r+12>>2])+(16414-t<<16)|0,n=s>>>0>a>>>0?t+1|0:t,s=e[r+4>>2],t=e[r>>2]):t=0,e[A>>2]=t,e[A+4>>2]=s,e[A+8>>2]=a,e[A+12>>2]=n,J=r+16|0}function f0(A){var t,r=0;J=t=J-16|0,u[t+15|0]=10;e:{if(!(r=e[A+16>>2])){if(Ei(A))break e;r=e[A+16>>2]}(0|r)==(0|(r=e[A+20>>2]))|e[A+80>>2]==10?ct[e[A+36>>2]](A,t+15|0,1):(e[A+20>>2]=r+1,u[0|r]=10)}J=t+16|0}function Hn(A){var t,r=0;return r=e[A+72>>2],e[A+72>>2]=r-1|r,e[A+20>>2]!=e[A+28>>2]&&ct[e[A+36>>2]](A,0,0),e[A+28>>2]=0,e[A+16>>2]=0,e[A+20>>2]=0,4&(r=e[A>>2])?(e[A>>2]=32|r,-1):(t=e[A+44>>2]+e[A+48>>2]|0,e[A+8>>2]=t,e[A+4>>2]=t,r<<27>>31)}function nn(A){var t=0;e:{A:{r:{s:{if((0|(A=n0(A)))<=268437502){if(!A)break e;if((0|A)==268436479)break A;if((0|A)!=268437247)break s;return 2}if((0|A)==268437503|(0|A)==268437759)break r;if((0|A)==268439295)break e}return-1}return 2}t=1}return t}function HA(A){var t=0,r=0,a=0;e:{if(3&(t=A))for(;;){if(!l[0|t])break e;if(!(3&(t=t+1|0)))break}for(;r=t,t=t+4|0,!(~(a=e[r>>2])&a-16843009&-2139062144););for(;r=(t=r)+1|0,l[0|t];);}return t-A|0}function Ja(A,t,r){var a,s=0,n=0,o=0;e[A+112>>2]=t,e[A+116>>2]=r,a=e[A+4>>2],s=e[A+44>>2]-a|0,e[A+120>>2]=s,e[A+124>>2]=s>>31,s=e[A+8>>2],t|r&&((0|r)>=(0|(o=(n=s-a|0)>>31))&t>>>0>=n>>>0|(0|r)>(0|o)||(s=t+a|0)),e[A+104>>2]=s}function xi(A,t){var r,a,s=0;if(be(+A),r=0|X(1),a=0|X(0),(0|(s=r>>>20&2047))!=2047){if(!s)return A==0?s=0:(A=xi(18446744073709552e3*A,t),s=e[t>>2]+-64|0),e[t>>2]=s,A;e[t>>2]=s-1022,R(0,0|a),R(1,-2146435073&r|1071644672),A=+ae()}return A}function xn(A,t){var r,a,s=0;return(a=1-(s=.5*(r=A*A)))+(1-a-s+(r*(r*(r*(2480158728947673e-20*r-.001388888888887411)+.0416666666666666)+(s=r*r)*s*(r*(-11359647557788195e-27*r+2087572321298175e-24)-27557314351390663e-23))-A*t))}function fs(A,t,r){var a=0,s=0;if(t)for(;r=r-1|0,s=A,A=gn(A,t,10),a=$,u[0|r]=s-It(A,a,10,0)|48,s=t>>>0>9,t=a,s;);if(A)for(;t=(A>>>0)/10|0,u[0|(r=r-1|0)]=A-P(t,10)|48,a=A>>>0>9,A=t,a;);return r}function Bi(A,t){var r=0,a=0,s=0;e:if(A){for(;s=u[t+r|0],(a=e[(r<<2)+A>>2])&&(r=r+1|0,(0|s)==(0|a)););A:switch(a-34|0){case 0:case 5:break A;default:break e}if(!s)return 0}return 1}function p0(A,t,r){var a,s=0;return J=a=J-16|0,!(64&t)&&(s=0,4259840&~t)||(e[a+12>>2]=r+4,s=e[r>>2]),e[a>>2]=s,e[a+4>>2]=0,(A=0|ze(-100,0|A,32768|t,0|a))>>>0>=4294963201&&(e[56798]=0-A,A=-1),J=a+16|0,A}function h0(A,t,r){var a=0,s=0,n=0;if(!r)return 0;e:if(a=l[0|A]){for(;;){if((s=l[0|t])&&!(!(r=r-1|0)|(0|a)!=(0|s))){if(t=t+1|0,a=l[A+1|0],A=A+1|0,a)continue;break e}break}n=a}return(255&n)-l[0|t]|0}function Rn(A,t){var r,a=0;J=a=J-128|0,a=jA(a,0,128),u[a+98|0]=9,u[a+66|0]=9,u[a+34|0]=A,b[a+68>>1]=1,r=e[36125],e[a+104>>2]=r,e[a+72>>2]=r,e[a+40>>2]=e[144464+(A<<2)>>2],u[a+2|0]=9,e[a+8>>2]=r,tr(0,0,a+32|0,t,0),J=a+128|0}function m0(A){var t=0,r=0,a=0;if(u[e[A>>2]]-48>>>0>=10)return 0;for(;a=e[A>>2],r=-1,t>>>0<=214748364&&(r=(0|(r=u[0|a]-48|0))>(2147483647^(t=P(t,10)))?-1:r+t|0),e[A>>2]=a+1,t=r,u[a+1|0]-48>>>0<10;);return t}function C0(A,t){var r=0;if(!(!A|e[A>>2]-48>>>0>=10)){if(e[A>>2]-48>>>0<10)for(;r=(e[A>>2]+P(r,10)|0)-48|0,e[(A=A+4|0)>>2]-48>>>0<10;);(0|t)==1&&(r=(0|Ht(e[A>>2]))==115?P(r,1e3):r)}return r}function Or(A){var t=0;t=1;e:{switch(0|Wa(A)){case 30:if(t=0,(0|A)==160|(0|A)==8199|(0|A)==8239)break e;return 1;case 0:if(A-9>>>0<5)return 1;if((0|A)==133)break e;break;case 28:case 29:break e}t=0}return t}function b0(A,t,r){var a,s=0;return J=a=J-16|0,u[a+6|0]=0,u[a+7|0]=95,s=zr(s=t,t=a+8|0)+a|0,u[s+8|0]=32,u[s+9|0]=0,RA(A,a+7|0,r)||(u[a+7|0]=32,RA(A,t,r)||qt(A,t,r,20,0,0,0)),J=a+16|0,u[0|r]}function I0(A){var t=0,r=0;r=170;e:if(!((0|A)<170))for(;;){if((0|A)==(0|r))return M[101616+(t<<1|2)>>1];if((2147483646&(t=t+2|0))==124)break e;if(!((0|(r=M[101616+(t<<1)>>1]))<=(0|A)))break}return 0}function It(A,t,r,a){var s,n,o,c,f=0,m=0;return c=P(f=r>>>16|0,m=A>>>16|0),f=(65535&(m=((o=P(s=65535&r,n=65535&A))>>>16|0)+P(m,s)|0))+P(f,n)|0,$=(P(t,r)+c|0)+P(A,a)+(m>>>16)+(f>>>16)|0,65535&o|f<<16}function Ht(A){var t=0,r=0,a=0,s=0;for(t=2778;;){if((0|(r=e[1040+((a=(t+s|0)/2|0)<<4)>>2]))==(0|A))return(t=e[1048+(a<<4)>>2])||A;if(!((0|(s=(r=A>>>0>r>>>0)?a+1|0:s))<=(0|(t=r?t:a-1|0))))break}return A}function yi(A){var t=0,r=0,a=0,s=0;for(t=2778;;){if((0|(r=e[1040+((a=(t+s|0)/2|0)<<4)>>2]))==(0|A))return(t=e[1044+(a<<4)>>2])||A;if(!((0|(s=(r=A>>>0>r>>>0)?a+1|0:s))<=(0|(t=r?t:a-1|0))))break}return A}function ss(A){var t,r=0;return J=t=J-112|0,(A=0|Ze(0|A,0|t))>>>0>=4294963201&&(e[56798]=0-A,A=-1),r=0-e[56798]|0,A||(r=-31,(61440&e[t+12>>2])!=16384&&(r=e[t+40>>2])),J=t+112|0,r}function w0(A,t,r){var a;if(!(a=e[A+16>>2]))return e[A+36>>2]=1,e[A+24>>2]=r,void(e[A+16>>2]=t);e:{if((0|t)==(0|a)){if(e[A+24>>2]!=2)break e;return void(e[A+24>>2]=r)}u[A+54|0]=1,e[A+24>>2]=2,e[A+36>>2]=e[A+36>>2]+1}}function Aa(A,t,r,a,s){var n;if(J=n=J-256|0,!(73728&s|(0|r)<=(0|a))){if(jA(n,255&t,(r=(a=r-a|0)>>>0<256)?a:256),!r)for(;Zr(A,n,256),(a=a-256|0)>>>0>255;);Zr(A,n,a)}J=n+256|0}function ps(A,t,r){var a=0;e:{if(A){if(a=e[A>>2]){xt(e[a+4>>2]),a=e[A>>2];break e}if(a=Ct(16),e[A>>2]=a,a)break e;t=48}return t}return e[a>>2]=0,e[a+4>>2]=qn(r),A=e[A>>2],e[A+8>>2]=0,e[A+12>>2]=0,t}function ta(A){var t=0,r=0;Sn(A),ct[e[A+12>>2]](A),1&u[0|A]||((t=e[A+52>>2])&&(e[t+56>>2]=e[A+56>>2]),(r=e[A+56>>2])&&(e[r+52>>2]=t),e[56816]==(0|A)&&(e[56816]=r),xt(e[A+96>>2]),xt(A))}function hs(A){var t=0,r=0;t=1;e:{A:{r:{s:switch((r=Wa(A))-9|0){case 1:break e;case 6:case 18:break r;case 0:break s;default:break A}return(0|Ht(A))!=(0|A)}return Se(A,r)>>>15&1}t=0}return t}function Wn(A){var t,r,a,s=0,n=0;if(a=HA(A)+1|0,s=e[33282],(0|(r=(t=e[33287])+a|0))>=e[33286]){if(!(s=Ur(s,n=r+1e3|0)))return-1;e[33286]=n,e[33282]=s}return wt(s+t|0,A,a),e[33287]=r,t}function Ei(A){var t=0;return t=e[A+72>>2],e[A+72>>2]=t-1|t,8&(t=e[A>>2])?(e[A>>2]=32|t,-1):(e[A+4>>2]=0,e[A+8>>2]=0,t=e[A+44>>2],e[A+28>>2]=t,e[A+20>>2]=t,e[A+16>>2]=t+e[A+48>>2],0)}function k0(A,t,r,a){e:if(A){A:switch(t+2|0){case 0:return void(u[0|A]=r);case 1:return void(b[A>>1]=r);case 2:case 3:return void(e[A>>2]=r);case 5:break A;default:break e}e[A>>2]=r,e[A+4>>2]=a}}function Vn(A,t,r,a,s,n,o,c,f){var m;J=m=J-16|0,$r(m,t,r,a,s,n,o,c,-2147483648^f),a=e[m>>2],r=e[m+4>>2],t=e[m+12>>2],e[A+8>>2]=e[m+8>>2],e[A+12>>2]=t,e[A>>2]=a,e[A+4>>2]=r,J=m+16|0}function yr(A,t){var r=0,a=0;e:if(!(!(r=l[0|A])|(0|r)!=(0|(a=l[0|t]))))for(;;){if(a=l[t+1|0],!(r=l[A+1|0]))break e;if(t=t+1|0,A=A+1|0,(0|r)!=(0|a))break}return r-a|0}function Bn(A,t){var r=0,a=0,s=0;if(!(r=e[A>>2]))return 84399;if(e[A+4>>2]!=(0|t))for(;;){if(!(r=e[(a=A+8|0)>>2]))return 84399;if(s=A,A=a,e[s+12>>2]==(0|t))break}return r}function vi(A,t,r){var a=0,s=0,n=0;e:if(r){for(;;){if(!(!(a=e[t>>2])|!(s=e[A>>2])|(0|a)!=(0|s))){if(t=t+4|0,A=A+4|0,r=r-1|0)continue;break e}break}n=s-a|0}return n}function ra(A){var t,r=0,a=0;if((0|(t=e[36115]))>0)for(;;){if(!(!(a=e[144464+(r<<2)>>2])|e[a>>2]!=(0|A)))return l[a+10|0];if((0|t)==(0|(r=r+1|0)))break}return 0}function on(A){var t,r;return(A=(t=e[33175])+(r=A+7&-8)|0)>>>0<=t>>>0&&r||A>>>0>we.byteLength/65536<<16>>>0&&!(0|Fe(0|A))?(e[56798]=48,-1):(e[33175]=A,t)}function ms(A){var t=0;e:if(!((t=Wa(A))>>>0>27)){if(!(1<>>14&1}return 0}function Mi(A,t){var r=0;return u[0|A]=t>>>24,u[0|(r=(t>>>0>16777215)+A|0)]=t>>>16,u[0|(r=r+!!(16711680&t)|0)]=t>>>8,u[0|(r=r+!!(65280&t)|0)]=t,u[r+!!(255&t)|0]=0,A}function Gi(A,t){e:if((0|(A=Cr(A,t)))<=268437502){if(!A|(0|A)==268436479|(0|A)!=268437247)break e;return}}function Di(A){var t=0;return t=e[A>>2]-1|0,(t=u[121600+(P(0-t&t,124511785)>>>27|0)|0])||(A=e[A+4>>2],t=(A=u[121600+(P(0-A&A,124511785)>>>27|0)|0])?A+32|0:0),t}function jn(A){var t=0,r=0,a=0;e:{if(!((t=Wa(A))>>>0>27)){if(r=1,116672&(a=1<>>10&1}r=0}return r}function ns(A){var t=0,r=0,a=0;e:{if(!((t=Wa(A))>>>0>27)){if(r=1,34752&(a=1<>>10&1}r=0}return r}function Un(){var A,t=0;(A=e[56797])&&((t=e[A+8>>2])&&ct[e[e[t>>2]+12>>2]](t),(t=e[A+4>>2])&&ct[e[e[t>>2]+16>>2]](t),xt(A)),e[56797]=0,e[56797]=ts()}function x0(A,t){var r=0;return A&&(r=It(A,0,t,0),(A|t)>>>0<65536||(r=$?-1:r)),!(A=Ct(r))|!(3&l[A-4|0])||jA(A,0,r),A}function Qi(A,t){var r,a;a=e[130128+(t-P(r=(0|t)/100|0,100)<<2)>>2],e[A+100>>2]=a,e[A+96>>2]=a,t+99>>>0>=199&&(e[A+100>>2]=e[130128+(r<<2)>>2])}function Ti(A){var t=0;(t=Ct(1344))&&(A=wt(t,A,1344),t=216192+(e[50758]<<4)|0,e[t>>2]=11,e[t+8>>2]=A,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0)}function Cs(A,t){var r=0;e:if(r=e[A>>2])for(;;){if(t&&!yr(t,r))break e;if(!(r=e[(A=A+8|0)>>2]))break}return e[A+4>>2]}function Kn(A){var t,r=0;return J=t=J-16|0,r=-1,Hn(A)||(0|ct[e[A+32>>2]](A,t+15|0,1))==1&&(r=l[t+15|0]),J=t+16|0,r}function Lr(A,t){var r=0,a=0;if(t){for(;a=A,(r=e[A>>2])&&(A=a+4|0,(0|t)!=(0|r)););return r?a:0}return(B0(A)<<2)+A|0}function Pi(A,t){var r=0,a=0;if(r=M[A>>1])for(;;){if(a=a+1|0,(0|t)==(0|r))return a;if(!(r=M[(a<<1)+A>>1]))break}return 0}function Zn(A,t){var r=0,a=0;t>>>0<=31?(a=e[A>>2],r=A+4|0):(t=t-32|0,r=A),r=e[r>>2],e[A>>2]=a<>2]=r<>>32-t}function yn(A,t){var r=0,a=0;r=e[A+4>>2],t>>>0<=31?a=e[A>>2]:(t=t-32|0,a=r,r=0),e[A+4>>2]=r>>>t,e[A>>2]=r<<32-t|a>>>t}function za(A){var t=0;A=A||1;e:{for(;;){if(t=Ct(A))break e;if(!(t=e[57276]))break;ct[0|t]()}iA(),xe()}return t}function En(A){return A>>>0<=131071?l[117424+(A>>>3&31|l[117424+(A>>>8|0)|0]<<5)|0]>>>(7&A)&1:A>>>0<196606}function zi(A,t,r,a,s,n,o,c,f){e[A>>2]=t,e[A+4>>2]=r,e[A+8>>2]=a,e[A+12>>2]=65535&s|(f>>>16&32768|s>>>16&32767)<<16}function _a(A,t,r){return r?(0|A)==(0|t)?1:!yr(e[A+4>>2],e[t+4>>2]):e[A+4>>2]==e[t+4>>2]}function Fi(A){var t=0;(0|(t=0|CA(-100,0|A,0)))==-31&&(t=0|mA(0|A)),t>>>0>=4294963201&&(e[56798]=0-t)}function Xn(){var A;A=Ct(84)+80|0,e[A>>2]=125420,e[A>>2]=125380,e[A>>2]=125400,YA(0|A,125512,9),xe()}function Si(A){var t,r;return t=Yn(A),r=Yn(A),Yn(A)<<16&16711680|r<<8&65280|255&t|Yn(A)<<24}function ln(A){var t=0;return A?(t=1,A-9472>>>0<160|A-65529>>>0<7||(t=Or(A)),t):0}function Ni(A,t){var r;return r=t>>31,e[A+76>>2],function(a,s,n){return e[a+20>>2]!=e[a+28>>2]&&(ct[e[a+36>>2]](a,0,0),!e[a+20>>2])||(e[a+28>>2]=0,e[a+16>>2]=0,e[a+20>>2]=0,ct[e[a+40>>2]](a,s,n,0),(0|$)<0)?-1:(e[a+4>>2]=0,e[a+8>>2]=0,e[a>>2]=-17&e[a>>2],0)}(A,t,r)}function B0(A){var t=0,r=0;for(r=A;r=(t=r)+4|0,e[t>>2];);return t-A>>2}function y0(A,t){return u[0|A]=t,u[A+4|0]=0,u[A+3|0]=t>>>24,u[A+2|0]=t>>>16,u[A+1|0]=t>>>8,A}function aa(A,t){var r=0;return(-1>>>(r=31&t)&A)<>>A}function vn(A,t){var r=0;return(0|A)==73&&(r=305,l[t+173|0])||(r=Ht(A)),r}function ha(A){e[36114]!=(0|A)&&(e[36115]=0,La(A),e[36114]=A,e[36115]=e[36115]+1)}function Oi(A){return A?e[34460]+A|0:(Li(85328,20,e[30450]),e[32320])}function qn(A){var t,r;return(r=Ct(t=HA(A)+1|0))?wt(r,A,t):0}function Va(){var A;e[33287]=0,(A=e[33282])&&(xt(A),e[33286]=0,e[33282]=0)}function fr(A,t,r){var a;J=a=J-16|0,e[a+12>>2]=r,Ds(A,t,r),J=a+16|0}function Li(A,t,r){e[r+76>>2],A=c0(A,t,r)}function Ms(A,t){return t?A<<24|(65280&A)<<8|A>>>8&65280|A>>>24:A}function cn(A){return A-8212>>>0>=12?Pi(93856,A):1}function E0(A){var t=0;A&&((t=e[A+688>>2])&&xt(t),xt(A))}function Yi(A){return(0|A)<=127?$a(87712,A):0}function Hi(A){return!(A=l[0|A]?1:xa(A,A+1|0,3))}function v0(A){(A=(0|(A=0|GA(0|A)))!=27?A:0)&&(e[56798]=A)}function Gs(A,t,r){return A|=0,t|=0,0|ct[0|(r|=0)](A,t)}function $a(A,t){return A=Rs(A,t),l[0|A]==(255&t)?A:0}function Ri(A,t){return Oe(A,t,2147483647),$=ue,OA}function Mn(A){return A?31-Ye(A-1^A)|0:32}function Zr(A,t,r){32&l[0|A]||c0(t,r,A)}function ar(A,t,r){u[(Rr(A,t,r)+r|0)-1|0]=0}function un(A){return wi(A,188776,189328)}function M0(A,t){t|=0,e[8+(A|=0)>>2]=t}function Ds(A,t,r){return nr(A,t,r,0,0)}function Qs(A){return e[12+(A|=0)>>2]}function Us(A){return e[16+(A|=0)>>2]}function Wi(A){return e[20+(A|=0)>>2]}function ma(A){return e[8+(A|=0)>>2]}function G0(A){return e[4+(A|=0)>>2]}function Vi(A){return e[(A|=0)>>2]}function gn(A,t,r){return Oe(A,t,r)}function Gn(A){(A|=0)&&xt(A)}function sa(A,t){qA(HA(A)+A|0,t)}function ji(A){return 0|A}function Jn(A){return 0}function Ks(A){xt(A|=0)}function D0(A){}L(k=l,1024,"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"),L(k,45536,"HhYWFhgWFhYXExYaFhIWFg4ODg4ODg4ODg4WFhoaGhYWCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoXFhMZERkGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBhcaExo="),L(k,45664,"HhYYGBgYGxYZGwgVGgEbGRsaEBAZBhYWGRAIFBAQEBYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKChoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGGgYGBgYGBgYGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYGCgYKBgoGCgYKBgoGCgYKBgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgoGCgYKBgYGCgoGCgYKCgYKCgoGBgoKCgoGCgoGCgoKBgYGCgoGCgoGCgYKBgoKBgoGBgoGCgoGCgoKBgoGCgoGBggKBgYGCAgICAoJBgoJBgoJBgoGCgYKBgoGCgYKBgoGCgYGCgYKBgoGCgYKBgoGCgYKBgoGBgoJBgoGCgoKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYGBgYGBgYKCgYKCgYGCgYKCgoKBgoGCgYKBgoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYIBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBwcHBwcHBwcHBwcHBwcHBwcHGRkZGQcHBwcHBwcHBwcHBxkZGRkZGRkZGRkZGRkZBwcHBwcZGRkZGRkZBxkHGRkZGRkZGRkZGRkZGRkZGRkNDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NCgYKBgcZCgYCAgcGBgYWCgICAgIZGQoWCgoKAgoCCgoGCgoKCgoKCgoKCgoKCgoKCgoCCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYKBgYKCgoGBgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYGBgYGCgYaCgYKCgYGCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBhsNDQ0NDQwMCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgoGCgYKBgoGCgYKBgoGBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgICBxYWFhYWFgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGFhICAhsbGAINDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0SDRYNDRYNDRYNAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICCAgICBYWAgICAgICAgICAgIBAQEBAQEaGhoWFhgWFhsbDQ0NDQ0NDQ0NDQ0WAQIWFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBwgICAgICAgICAgNDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0ODg4ODg4ODg4OFhYWFggIDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYIDQ0NDQ0NDQEbDQ0NDQ0NBwcNDRsNDQ0NCAgODg4ODg4ODg4OCAgIGxsIFhYWFhYWFhYWFhYWFhYCAQgNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NDQ0NDQ0NDQ0NCAICAgICAgICAgICAgICDg4ODg4ODg4ODggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NDQ0NDQ0NDQcHGxYWFgcCAg0YGAgICAgICAgICAgICAgICAgICAgICAgNDQ0NBw0NDQ0NDQ0NDQcNDQ0HDQ0NDQ0CAhYWFhYWFhYWFhYWFhYWFgIICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NAgIWAggICAgICAgICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgCCAgICAgICAgCAgICAgICAgICAgICAgICAgICAgINDQ0NDQ0NDQ0NDQ0NDQ0BDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQsNCAsLCw0NDQ0NDQ0NCwsLCw0LCwgNDQ0NDQ0NCAgICAgICAgICA0NFhYODg4ODg4ODg4OFgcICAgICAgICAgICAgICAgNCwsCCAgICAgICAgCAggIAgIICAgICAgICAgICAgICAgICAgICAgIAggICAgICAgCCAICAggICAgCAg0ICwsLDQ0NDQICCwsCAgsLDQgCAgICAgICAgsCAgICCAgCCAgIDQ0CAg4ODg4ODg4ODg4ICBgYEBAQEBAQGxgIFg0CAg0NCwIICAgICAgCAgICCAgCAggICAgICAgICAgICAgICAgICAgICAgCCAgICAgICAIICAIICAIICAICDQILCwsNDQICAgINDQICDQ0NAgICDQICAgICAgIICAgIAggCAgICAgICDg4ODg4ODg4ODg0NCAgIDRYCAgICAgICAgICDQ0LAggICAgICAgICAIICAgCCAgICAgICAgICAgICAgICAgICAgICAIICAgICAgIAggIAggICAgIAgINCAsLCw0NDQ0NAg0NCwILCw0CAggCAgICAgICAgICAgICAgIICA0NAgIODg4ODg4ODg4OFhgCAgICAgICCA0NDQ0NDQINCwsCCAgICAgICAgCAggIAgIICAgICAgICAgICAgICAgICAgICAgIAggICAgICAgCCAgCCAgICAgCAg0ICw0LDQ0NDQICCwsCAgsLDQICAgICAgICDQsCAgICCAgCCAgIDQ0CAg4ODg4ODg4ODg4bCBAQEBAQEAICAgICAgICAgINCAIICAgICAgCAgIICAgCCAgICAICAggIAggCCAgCAgIICAICAggICAICAggICAgICAgICAgICAICAgILCw0LCwICAgsLCwILCwsNAgIIAgICAgICCwICAgICAgICAgICAgICDg4ODg4ODg4ODhAQEBsbGxsbGxgbAgICAgINCwsLDQgICAgICAgIAggICAIICAgICAgICAgICAgICAgICAgICAgICAIICAgICAgICAgICAgICAgIAgICCA0NDQsLCwsCDQ0NAg0NDQ0CAgICAgICDQ0CCAgIAgICAgIICA0NAgIODg4ODg4ODg4OAgICAgICAgIQEBAQEBAQGwgNCwsWCAgICAgICAgCCAgIAggICAgICAgICAgICAgICAgICAgICAgIAggICAgICAgICAgCCAgICAgCAg0ICw0LCwsLCwINCwsCCwsNDQICAgICAgILCwICAgICAgIIAggIDQ0CAg4ODg4ODg4ODg4CCAgCAgICAgICAgICAgICDQ0LCwIICAgICAgICAIICAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDQgLCwsNDQ0NAgsLCwILCwsNCBsCAgICCAgICxAQEBAQEBAICAgNDQICDg4ODg4ODg4ODhAQEBAQEBAQEBsICAgICAgCAgsLAggICAgICAgICAgICAgICAgICAICAggICAgICAgICAgICAgICAgICAgICAgICAIICAgICAgICAgCCAICCAgICAgICAICAg0CAgICCwsLDQ0NAg0CCwsLCwsLCwsCAgICAgIODg4ODg4ODg4OAgILCxYCAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCAgNDQ0NDQ0NAgICAhgICAgICAgHDQ0NDQ0NDQ0WDg4ODg4ODg4ODhYWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggIAggCAggIAggCAggCAgICAgIICAgIAggICAgICAgCCAgIAggCCAICCAgCCAgICA0ICA0NDQ0NDQINDQgCAggICAgIAgcCDQ0NDQ0NAgIODg4ODg4ODg4OAgIICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIIGxsbFhYWFhYWFhYWFhYWFhYWGxYbGxsNDRsbGxsbGw4ODg4ODg4ODg4QEBAQEBAQEBAQGw0bDRsNFxMXEwsLCAgICAgICAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAg0NDQ0NDQ0NDQ0NDQ0NCw0NDQ0NFg0NCAgICAgNDQ0NDQ0NDQ0NDQINDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0CGxsbGxsbGxsNGxsbGxsbAhsbFhYWFhYbGxsbFhYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsLDQ0NDQsNDQ0NDQ0LDQ0LCw0NCA4ODg4ODg4ODg4WFhYWFhYICAgICAgLCw0NCAgICA0NDQgLCwsICAsLCwsLCwsICAgNDQ0NCAgICAgICAgICAgICA0LCw0NCwsLCwsLDQgLDg4ODg4ODg4ODgsLCw0bGwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgoCAgICAgoCAgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYWBwYGBggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAggICAgCAggICAgICAgCCAIICAgIAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAIICAgIAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCCAgICAICCAgICAgICAIIAggICAgCAggICAgICAgICAgICAgICAIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCCAgICAICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICDQ0NFhYWFhYWFhYWEBAQEBAQEBAQEBAQEBAQEBAQEBACAgIICAgICAgICAgICAgICAgIGxsbGxsbGxsbGwICAgICAgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgIGBgYGBgYCAhIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhYICAgICAgICAgICAgICAgICB4ICAgICAgICAgICAgICAgICAgICAgICAgICBcTAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhYWDw8PCAgICAgICAgCAgICAgICCAgICAgICAgICAgICAIICAgIDQ0NAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgNDQ0WFgICAgICAgICAggICAgICAgICAgICAgICAgICA0NAgICAgICAgICAgICCAgICAgICAgICAgICAIICAgCDQ0CAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0LDQ0NDQ0NDQsLCwsLCwsLDQsLDQ0NDQ0NDQ0NDQ0WFhYHFhYWGAgNAgIODg4ODg4ODg4OAgICAgICEBAQEBAQEBAQEAICAgICAhYWFhYWFhIWFhYWDQ0NAQIODg4ODg4ODg4OAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgHCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICCAgICAgNDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCAICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAg0NDQsLCwsNDQsLCwICAgILCw0LCwsLCwsNDQ0CAgICGwICAhYWDg4ODg4ODg4ODggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICCAgICAgCAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAggICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICDg4ODg4ODg4ODhACAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbCAgICAgICAgICAgICAgICAgICAgICAgNDQsLDQICFhYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsNCw0NDQ0NDQ0CDQsNCwsNDQ0NDQ0NDQsLCwsLCw0NDQ0NDQ0NDQ0CAg0ODg4ODg4ODg4OAgICAgICDg4ODg4ODg4ODgICAgICAhYWFhYWFhYHFhYWFhYWAgINDQ0NDQ0NDQ0NDQ0NDQwCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg0NDQ0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCw0NDQ0NCw0LCwsLCw0LCwgICAgICAgCAgICDg4ODg4ODg4ODhYWFhYWFhYbGxsbGxsbGxsbDQ0NDQ0NDQ0NGxsbGxsbGxsbAgICDQ0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICw0NDQ0LCw0NCw0NDQgIDg4ODg4ODg4ODggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQsNDQsLCw0LDQ0NCwsCAgICAgICAhYWFhYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsLCwsLCw0NDQ0NDQ0NCwsNDQICAhYWFhYWDg4ODg4ODg4ODgICAggICA4ODg4ODg4ODg4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgHBwcHBwcWFgYGBgYGBgYGBgICAgICAgIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgIKCgoWFhYWFhYWFgICAgICAgICDQ0NFg0NDQ0NDQ0NDQ0NDQ0LDQ0NDQ0NDQgICAgNCAgICAsLDQgICw0NAgICAgICBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcGBgYGBgYGBgYGBgYGBwYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQINDQ0NDQoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgYGBgYGBgYGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYGBgYGBgYGBgoKCgoKCgoKBgYGBgYGAgIKCgoKCgoCAgYGBgYGBgYGCgoKCgoKCgoGBgYGBgYGBgoKCgoKCgoKBgYGBgYGAgIKCgoKCgoCAgYGBgYGBgYGAgoCCgIKAgoGBgYGBgYGBgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYCAgYGBgYGBgYGCQkJCQkJCQkGBgYGBgYGBgkJCQkJCQkJBgYGBgYGBgYJCQkJCQkJCQYGBgYGAgYGCgoKCgkZBhkZGQYGBgIGBgoKCgoJGRkZBgYGBgICBgYKCgoKAhkZGQYGBgYGBgYGCgoKCgoZGRkCAgYGBgIGBgoKCgoJGRkCHh4eHh4eHh4eHh4BAQEBARISEhISEhYWFRQXFRUUFxUWFhYWFhYWFhwdAQEBAQEeFhYWFhYWFhYWFRQWFhYWEREWFhYaFxMWFhYWFhYWFhYWFhoWERYWFhYWFhYWFhYeAQEBAQECAQEBAQEBAQEBARAHAgIQEBAQEBAaGhoXEwcQEBAQEBAQEBAQGhoaFxMCBwcHBwcHBwcHBwcHBwICAhgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYAgICAgICAgICAgICAgICAg0NDQ0NDQ0NDQ0NDQ0MDAwMDQwMDA0NDQ0NDQ0NDQ0NDQICAgICAgICAgICAgICAhsbChsbGxsKGxsGCgoKBgYKCgoGGwobGxoKCgoKChsbGxsbGwobChsKGwoKCgobBgoKCgoGCAgICAYbGwYGCgoaGhoaGgoGBgYGGxobGwYbEBAQEBAQEBAQEBAQEBAQEA8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PCgYPDw8PEBsbAgICAhoaGhoaGxsbGxsaGhsbGxsaGxsaGxsaGxsbGxsbGxobGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGhobGxobGhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGxsbGxsbGxsXExcTGxsbGxsbGxsbGxsbGxsbGxsbGxsaGhsbGxsbGxsXExsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxobGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxoaGhoaGhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGwICAgICAgICAgICAgICAgICAgICAhAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxAQEBAQEBAQEBAQEBAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsaGxsbGxsbGxsbGhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxoaGhoaGhoaGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbFxMXExcTFxMXExcTFxMQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxoaGhoaFxMaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFxMXExcTFxMXExoaGhoaGhoaGhoaGhoaGhobGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoXExcTFxMXExcTFxMXExcTFxMXExcTGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFxMXExoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFxMaGhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxoaGhoaGhoaGhoaGhoaGhoaGhoaGhsbGhoaGhoaGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgIGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgIKBgoKCgYGCgYKBgoGCgoKCgYKBgYKBgYGBgYGBwcKCgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYGGxsbGxsbCgYKBg0NDQoGAgICAgIWFhYWEBYWBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYCBgICAgICBgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICBxYCAgICAgICAgICAgICAg0ICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAggICAgICAgCCAgICAgICAIICAgICAgIAggICAgICAgCCAgICAgICAIICAgICAgIAggICAgICAgCCAgICAgICAINDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDRYWFRQVFBYWFhUUFhUUFhYWFhYWFhYWEhYWEhYVFBYWFRQXExcTFxMXExYWFhYWBxYWFhYWFhYWFhYSEhYWFhYSFhcWFhYWFhYWFhYWFhYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsCAgICHhYWFhsHCA8XExcTFxMXExcTGxsXExcTFxMXExIXExMbDw8PDw8PDw8PDQ0NDQsLEgcHBwcHGxsPDw8HCBYbGwIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICDQ0ZGQcHCBIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWBwcHCAICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAhsbEBAQEBsbGxsbGxsbGxsICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAgICAggICAgICAgICAgICAgICAgbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAhAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsQEBAQEBAQEBsQEBAQEBAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsQEBAQEBAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgHCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgHBwcHBwcWFggICAgICAgICAgICAcWFhYICAgICAgICAgICAgICAgIDg4ODg4ODg4ODggIAgICAgICAgICAgICAgICAgICAgIKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCA0MDAwWDQ0NDQ0NDQ0NDRYHCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgcHDQ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8PDw8PDw8PDw0NFhYWFhYWAgICAgICAgIZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGQcHBwcHBwcHBxkZCgYKBgoGCgYKBgoGCgYGBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGBwYGBgYGBgYGCgYKBgoKBgoGCgYKBgoGBxkZCgYKBggKBgoGBgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoKCgoKBgoKCgoKBgoGCgYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAcHBggICAgICAgNCAgIDQgICAgNCAgICAgICAgICAgICAgICAgICAgICAgLCw0NCxsbGxsCAgICEBAQEBAQGxsYGwICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWFhYWAgICAgICAgILCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwsLCwsLCwsLCwsLCwsLCw0NAgICAgICAgIWFg4ODg4ODg4ODg4CAgICAgINDQ0NDQ0NDQ0NDQ0NDQ0NDQ0ICAgICAgWFhYIFggIDQ4ODg4ODg4ODg4ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0NDQ0WFggICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0NDQ0NDQ0LCwICAgICAgICAgICFggICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICDQ0NCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQsLDQ0NDQsLDQsLCwsWFhYWFhYWFhYWFhYWAgcODg4ODg4ODg4OAgICAhYWCAgICAgNBwgICAgICAgICA4ODg4ODg4ODg4ICAgICAIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NDQ0NDQsLDQ0LCw0NAgICAgICAgICCAgIDQgICAgICAgIDQsCAg4ODg4ODg4ODg4CAhYWFhYICAgICAgICAgICAgICAgIBwgICAgICBsbGwgLDQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0IDQ0NCAgNDQgICAgIDQ0IDQgCAgICAgICAgICAgICAgICAgICAgICAgIICAcWFggICAgICAgICAgICw0NCwsWFggHBwsNAgICAgICAgICAggICAgICAICCAgICAgIAgIICAgICAgCAgICAgICAgIICAgICAgIAggICAgICAgCBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBhkHBwcHBgYGBgYGAgICAgICAgICAgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCw0LCw0LCxYLDQICDg4ODg4ODg4ODgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgCAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGBgYGBgYCAgICAgICAgICAgIGBgYGBgICAgICCA0ICAgICAgICAgIGggICAgICAgICAgICAgCCAgICAgCCAIICAIICAIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGRkZGRkZGRkZGRkZGRkZAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMXAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgYGwICDQ0NDQ0NDQ0NDQ0NDQ0NDRYWFhYWFhYXExYCAgICAgINDQ0NDQ0NDQ0NDQ0NDQ0NFhISEREXExcTFxMXExcTFxMXExcTFhYXExYWFhYREREWFhYCFhYWFhIXExcTFxMWFhYaEhoaGgIWGBYWAgICAggICAgIAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAQIWFhYYFhYWFxMWGhYSFhYODg4ODg4ODg4OFhYaGhoWFgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKFxYTGREZBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYXGhMaFxMWFxMWFggICAgICAgICAgHCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBwcICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICCAgICAgIAgIICAgICAgCAggICAgICAICCAgIAgICGBgaGRsYGAIbGhoaGhsbAgICAgICAgICAgEBARsbAgIICAgICAgICAgICAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgCCAgICAgICAgICAgICAgICAgICAIICAIICAgICAgICAgICAgICAgCAggICAgICAgICAgICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICFhYWAgICAhAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAICAhsbGxsbGxsbGw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PEBAQEBsbGxsbGxsbGxsbGxsbGxsbEBAbGxsCGxsbGxsbGxsbGxsbAgICAhsCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGw0CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgICAgICDRAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAQEBACAgICAgICAgIICAgICAgICAgICAgICAgICAgICA8ICAgICAgICA8CAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0CAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAIWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAggICAgICAgIFg8PDw8PAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAg4ODg4ODg4ODg4CAgICAgIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoCAgICBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAhYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgIICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgIAgIIAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAggIAgICCAICCAgICAgICAgICAgICAgICAgICAgICAgCFhAQEBAQEBAQCAgICAgICAgICAgICAgICAgICAgICAgbGxAQEBAQEBAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgIQEBAQEBAQEBACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgIAggIAgICAgIQEBAQEAgICAgICAgICAgICAgICAgICAgICAgQEBAQEBACAgIWCAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAhYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICEBAICBAQEBAQEBAQEBAQEBAQEBACAhAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAIDQ0NAg0NAgICAgINDQ0NCAgICAIICAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAg0NDQICAgINEBAQEBAQEBAQAgICAgICAhYWFhYWFhYWFgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAQFggICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBAQAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICBsICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0CAgICEBAQEBAWFhYWFhYWAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICFhYWFhYWFggICAgICAgICAgICAgICAgICAgICAgCAhAQEBAQEBAQCAgICAgICAgICAgICAgICAgICAICAgICEBAQEBAQEBAICAgICAgICAgICAgICAgICAgCAgICAgICFhYWFgICAgICAgICAgICAhAQEBAQEBACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgICAgICAgICAgICAgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgICAgICAgIQEBAQEBAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDQ0NAgICAgICAgIODg4ODg4ODg4OAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBAQEBAQEBAQEAgCAgICAgICAggICAgICAgICAgICAgICAgICAgICAgNDQ0NDQ0NDQ0NDRAQEBAWFhYWFgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgILDQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NDQ0NDQ0NDQ0NDQ0NDRYWFhYWFhYCAgICEBAQEBAQEBAQEBAQEBAQEBAQEBAODg4ODg4ODg4OAgICAgICAgICAgICAgICDQ0NCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsLCw0NDQ0LCw0NFhYBFhYWFgICAgICAgICAgICAQICCAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgIODg4ODg4ODg4OAgICAgICDQ0NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0LDQ0NDQ0NDQ0CDg4ODg4ODg4ODhYWFhYICwsCAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0WFggCAgICAgICAgINDQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsNDQ0NDQ0NDQ0LCwgICAgWFhYWDQ0NDRYCAg4ODg4ODg4ODg4IFggWFhYCEBAQEBAQEBAQEBAQEBAQEBAQEBACAgICAgICAgICAggICAgICAgICAgICAgICAgICAIICAgICAgICAgICAgICAgICAgICAgICAgICwsLDQ0NCwsNCw0NFhYWFhYWDQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAIIAggICAgCCAgICAgICAgICAgICAgIAggICAgICAgICAgWAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCwsLDQ0NDQ0NDQ0CAgICAg4ODg4ODg4ODg4CAgICAgINDQsLAggICAgICAgIAgIICAICCAgICAgICAgICAgICAgICAgICAgICAIICAgICAgIAggIAggICAgIAg0NCAsLDQsLCwsCAgsLAgILCwsCAggCAgICAgILAgICAgIICAgICAsLAgINDQ0NDQ0NAgICDQ0NDQ0CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsNDQ0NDQ0NDQsLDQ0NCw0ICAgIFhYWFhYODg4ODg4ODg4OAhYCFg0CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsNDQ0NDQ0LDQsLCwsNDQsNDQgIFggCAgICAgICAg4ODg4ODg4ODg4CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsNDQ0NAgILCwsLDQ0LDQ0WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFggICAgNDQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsNDQ0NDQ0NDQsLDQsNDRYWFggCAgICAgICAgICAg4ODg4ODg4ODg4CAgICAgIWFhYWFhYWFhYWFhYWAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCw0LCw0NDQ0NDQsNAgICAgICAgIODg4ODg4ODg4OAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgIAgINDQ0LCw0NDQ0LDQ0NDQ0CAgICDg4ODg4ODg4ODhAQFhYWGwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwsLDQ0NDQ0NDQ0NCw0NFgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGDg4ODg4ODg4ODhAQEBAQEBAQEAICAgICAgICAgICAggCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCA0NDQ0NDQ0NDQ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0NCwgNDQ0NFhYWFhYWFhYNAgICAgICAgIIDQ0NDQ0NCwsNDQ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgIICAgIDQ0NDQ0NDQ0NDQ0NDQsNDRYWFggWFhYWFgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAggICAgICAgICAIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICw0NDQ0NDQ0CDQ0NDQ0NCw0IFhYWFhYCAgICAgICAgICDg4ODg4ODg4ODhAQEBAQEBAQEBAQEBAQEBAQEBACAgIWFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQILDQ0NDQ0NDQsNDQsNDQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgIAggIAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0NAgICDQINDQINDQ0NDQ0NCA0CAgICAgICAg4ODg4ODg4ODg4CAgICAgIICAgICAgCCAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsLCwINDQILCw0LDQgCAgICAgICDg4ODg4ODg4ODgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgIDQ0LCxYWAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIPDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8CFhYWFhYCAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCDg4ODg4ODg4ODgICAgIWFgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICDQ0NDQ0WAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NDQ0NDQ0WFhYWFhsbGxsHBwcHFhsCAgICAgICAgICDg4ODg4ODg4ODgIQEBAQEBAQAggICAgICAgICAgICAgICAgICAgICAICAgICCAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBhAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFhYWFgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgIICwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwICAgICAgICAgICAgICAgINDQ0NBwcHBwcHBwcHBwcHBwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICCAgICAgICAgICAgICAICAggICAgICAgICAICAgICAgIICAgICAgICAgIAgIbDQ0WAQEBAQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbCwsNDQ0bGxsLCwsLCwsBAQEBAQEBAQ0NDQ0NDQ0NGxsNDQ0NDQ0NGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbDQ0NDRsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsNDQ0bAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhAQEBAQEBAQEBAQEBAQEBAQEBAQAgICAgICAgICAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYCBgYGBgYGBgYGBgYGBgYGBgYGCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgoCCgoCAgoCAgoKAgIKCgoKAgoKCgoKCgoKBgYGBgIGAgYGBgYGBgYCBgYGBgYGBgYGBgYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGCgoCCgoKCgICCgoKCgoKCgoCCgoKCgoKCgIGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgoKAgoKCgoCCgoKCgoCCgICAgoKCgoKCgoCBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgICCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKChoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGGgYGBgYGBgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoaBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBhoGBgYGBgYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKGgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYaBgYGBgYGCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKChoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGGgYGBgYGBgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoaBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBhoGBgYGBgYKBgICDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NGxsbGw0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NGxsbGxsbGxsNGxsbGxsbGxsbGxsbGxsNGxsWFhYWFgICAgICAgICAgICAgICAg0NDQ0NAg0NDQ0NDQ0NDQ0NDQ0NDQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDQ0NDQ0NDQINDQ0NDQ0NDQ0NDQ0NDQ0NDQICDQ0NDQ0NDQINDQINDQ0NDQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgIQEBAQEBAQEBANDQ0NDQ0NAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBg0NDQ0NDQ0CAgICAg4ODg4ODg4ODg4CAgICFhYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBsQEBAYEBAQEAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgIAggIAggCAggCCAgICAgICAgICAIICAgIAggCCAICAgICAggCAgICCAIIAggCCAgIAggIAggCAggCCAIIAggCCAIICAIIAgIICAgIAggICAgICAgCCAgICAIICAgIAggCCAgICAgICAgICAIICAgICAgICAgICAgICAgICAICAgICCAgIAggICAgIAggICAgICAgICAgICAgICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhoaAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAgICGxsbGxsbGxsbGxsbGxsbAgIbGxsbGxsbGxsbGxsbGxsCGxsbGxsbGxsbGxsbGxsbAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAgICEBAQEBAQEBAQEBAQEAICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgIbGxsbGxsbGxsCAgICAgICGxsCAgICAgICAgICAgICAhsbGxsbGwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxkZGRkZGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAgIbGxsbGxsbGxsbGxsbAgICGxsbGxsbGxsbGwICAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsCAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAhsbGxsbGxsbGxsCAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICGxsbGxsbGxsbGxsbAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAhsbGxsCAgIbAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAgICAgIbGxsbGxsbGxsbAgICAgICGxsbAgICAgICAgICAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhsbGxsbGxsbGxsbGxsbAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NAgICAgICAgICAgICAgICAoAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIA="),L(k,81428,"ggAAAAAAAAIAAAAAAAAAAgAAAAAAAAAC"),L(k,81475,"AgAAAAAAACAAAAAAAAAAIA=="),L(k,81506,"IA=="),L(k,81522,"IAAAAAAAAAAg"),L(k,81618,"IA=="),L(k,81634,"IA=="),L(k,81650,"IAAAAAAAAAAg"),L(k,81682,"IAAAAAAAAAAgAAAAAAAAACAAAAAAAIAAAAAAAAAAgA=="),L(k,81728,"gAAAAAAAAACAAAAAAAAAAIA="),L(k,81760,"gAAAAAAAAACA"),L(k,81904,"gAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAU"),L(k,81961,"FAAAAAAAAAAU"),L(k,81985,"FAAAAAAAAAAE"),L(k,82009,"BAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA="),L(k,82097,"EAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA="),L(k,82169,"EAAAAAAAAAAQAAAAAAAAABAAAAAAAACA"),L(k,82224,"gAAAAAAAAACA"),L(k,82272,"gAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA=="),L(k,82353,"BAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA=="),L(k,82393,"BAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAQAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAABAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA=="),L(k,82625,"BAAAAAAAAAAE"),L(k,82649,"BAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAQAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA=="),L(k,83033,"BAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA=="),L(k,83097,"BAAAAAAAAAAE"),L(k,83121,"BAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAQAAAEAAAAAFAAAAQAAAAgEAAABAAAAAQQAAAAAAAACBAAAAAAAAAgEAAAAAAAAAAQAAAAAAAAABAAAAQAAAAgEAAAAAAAAAQQAAAAAAAAARAAAAAAAAAAEAAAAAAAAAAQA=="),L(k,83288,"QA=="),L(k,83303,"AkAAAAAAAAAQQAAAEAAAAIBAAAAAAAAACEA="),L(k,83352,"QAAAAAAAABBAAAAQAAAAgAAg"),L(k,83379,"gAAAAABAAACQggAAIEAAAJAAAAAAAAAAgAAAAABAAACQggAAIEAAAJCCAAAgAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAQAAAkIIAACBAAACQggAAIEAAAJCCAAAgQAAAkAAAAEBAAACQAAAAYEAAAJCCAABgQAAAkIIAACBAAACQggAAIEAAAJCCAAAgQAAAkIIAACBAAACQggAAIAAAAIAAAAAEAAAAAAAAAIAAAAAAAAAACAAAAAAAAAAEAAAAAAAAACAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAAkAAAAAAAAAQQAAAEAAAAIBAAAAAAAAABEAAAAAAAAAIAAAAgIIAAAAAAACAgAAAAAAAAIAAAAAAAAAAgIYAAAAAAACAhgAAAAAAAICAAAAAAAAAgIAAAAAAAACAggAAAAAAAICAAAAAAAAAgIAAAAAAAACAgAAAAAAAAICAAAAAAAAAgJIAAACAAACAggAAAIAAAICCAAAAAAAAgIIAAAAAAACAggAAAIAAAICCAAAAAAAAgIIAAAAAAACAggAAAAAAAICAAAAAAAAAgIAAAAAAAACAggAAAAAAAICGAAAAAAAAgIIAAAAAAACAhgAAAAAAAICCAAAAAAAAgIIAAAAAAACAggAAAAAAAICCAAAAAAAAgIAAAAAAAACAggAAAAAAAICAAAAAAAAAgIIAAAAAAACAggAAAAAAAICCAAAAAAAAgIAAAAAAAACAggAAAAAAAICGAAAAAAAAgJIAAAAAAACAhgAAAAAAAICAAAAAAAAAgIAAAAAAAACAhg=="),L(k,83999,"IAAAAACCAAAgAAAAAIIAAAAAAAAAggAAAAAAAACGAAAAAAAAAIIAAAAAAAAAggAAAAAAAACCAAAAaW5maW5pdHkALSsgICAwWDB4AHN0ZDo6YmFkX2Nhc3QAJXMlYyVzX2RpY3QAJXMlYyVzJWMlcyVzACVzJWNzb3VuZGljb25zJWMlcwBDb21waWxlIGVycm9yAHN0ZDo6ZXhjZXB0aW9uAHRlcm1pbmF0aW5nAF8wbGFuZwB1bmV4cGVjdGVkX2hhbmRsZXIgdW5leHBlY3RlZGx5IHJldHVybmVkACVkICVkICVkICVkICVkICVkICVkICVkICVkICVkACVzJWMlYwByYgBwaG9udGFiAHJ3YQBYWFhYWFgAR01UAExDX0FMTABFU1BFQUtfREFUQV9QQVRIAEMAQU5TSV9YMy40LTE5NjgAMy4xLjMwACEtLQBQdXJlIHZpcnR1YWwgZnVuY3Rpb24gY2FsbGVkIQAlcwoAZXNwZWFrOiBCYWQgaW50b25hdGlvbiBkYXRhCgAAAQIEBwMGBQAAAABAAAAAAAAAAHBob25pbmRleAAlcyVjJWMlcwAgJXMAc3RkOjpiYWRfZXhjZXB0aW9uAEVtc2NyaXB0ZW4AbmFuAD94bWwAJXMvLi4vcGhzb3VyY2UAc3RkOjpiYWRfdHlwZWlkAHRlcm1pbmF0ZV9oYW5kbGVyIHVuZXhwZWN0ZWRseSByZXR1cm5lZAAlZCAlZCAlZCAlZCAlZCAlZCAlZCAlZAByYgBXcm9uZyB2ZXJzaW9uIG9mIGVzcGVhay1uZy1kYXRhAEkATEFORwBIT01FAEFOU0lfWDMuNC0xOTg2AChudWxsKQBGYWlsZWQgdG8gb3BlbjogJyVzJwBEZWxldGVkIHZpcnR1YWwgZnVuY3Rpb24gY2FsbGVkIQBudW1iZXJzOiBCYWQgb3B0aW9uIG51bWJlciAlZAoAX2NhcABlbXNjcmlwdGVuAFRoZSBGSUZPIGJ1ZmZlciBpcyBmdWxsAGVzcGVhawAlZCAlZCAlZABzdGQ6OmJhZF9hbGxvYwAlYyVzJWMlcyVjAHBob25kYXRhAC91c3Ivc2hhcmUvZXNwZWFrLW5nLWRhdGEAL3RtcC9lc3BlYWtYWFhYWFgATABQU0FSSFRJVllNVUJGAEFTTU8tNzA4AEMuVVRGLTgAICgAJXM6IEJhZCBvcHRpb24gbnVtYmVyICVkCgBVbnN1cHBvcnRlZCBzcGVjdHJhbCBmaWxlIGZvcm1hdC4KAENhbid0IHJlYWQgZGljdGlvbmFyeSBmaWxlOiAnJXMnCgAtMFgrMFggMFgtMHgrMHggMHgAaW50b25hdGlvbnMAcGhvbmVtZXMAJXMgJXMgJXMgJXMgJXMgJXMAZW4AYmFkX2FycmF5X25ld19sZW5ndGgAbm9uZQBUaGUgZXNwZWFrLW5nIGxpYnJhcnkgaGFzIG5vdCBiZWVuIGluaXRpYWxpemVkACVjJWQAUE9TSVgATQBDLlVURi04AEVDTUEtMTE0ACMxAEVtcHR5IF9kaWN0IGZpbGU6ICclcwoAUmVwbGFjZTogJXMgPiAlcwoAICBzdWZmaXggWyVzXQoKACVzL3Bob25lbWVzACVzJXMlcwBicABhbGwAaW5mAENhbm5vdCBpbml0aWFsaXplIHRoZSBhdWRpbyBkZXZpY2UAJXMlY3ZvaWNlcyVjAE4ATlVMTABFQ01BLTExOABVVEYtOAB3YXNtMzIAZXNwZWFrOiBObyBlbnZlbG9wZQoAQmFkIGRhdGE6ICclcycgKCV4IGxlbmd0aD0leCkKAFRoZSBzcGVjaWZpZWQgZXNwZWFrLW5nIHZvaWNlIGRvZXMgbm90IGV4aXN0ACVzJXMAJXMlYyVzAF9jYXAAYmhmAHNvbWUAWwIlc11dAFAASU5GAEVMT1RfOTI4AGVuX1VTLlVURi04AF8jJWQgAENvbXBpbGluZyBwaG9uZW1lIGRhdGE6ICVzCgBGdWxsIGRpY3Rpb25hcnkgaXMgbm90IGluc3RhbGxlZCBmb3IgJyVzJwoAVW5rbm93biB0dW5lICclcycKACU1ZDoJAGR0AG5vAGVuAG5hbgBfcm9tYW4AQ291bGQgbm90IGxvYWQgdGhlIG1icm9sYS5kbGwgZmlsZQAlZCAlZAAlcyVjbGFuZyVjAHJiAFsCX15fJXMgJXMgX15fJXNdXQBTAF8/QQBJQk0zNjcAPyVkIAAlcyVjJXMAJXMvJXMAcgBpY29uAGVuAENvdWxkIG5vdCBsb2FkIHRoZSBzcGVjaWZpZWQgbWJyb2xhIHZvaWNlIGZpbGUAZ2MAWgBOQU4AXz8/ADxzYXktYXMgaW50ZXJwcmV0LWFzPSJ0dHM6Y2hhciI+JiMlZDs8L3NheS1hcz4ASUJNODE5ACogACAgJWQgJXMgICAgAEludmFsaWQgaW5zdHJ1Y3Rpb24gJS40eCBmb3IgcGhvbmVtZSAnJXMnCgAAcGhvbmRhdGEtbWFuaWZlc3QAVGhlIGV2ZW50IGJ1ZmZlciBpcyBmdWxsAHNwZWxsaW5nAF9saWcAY29uZmlnACVzL2VzcGVhay1uZy1kYXRhACVzJXNfAElTQ0lJAGhBAGwnZXRAAC4ALQAoJXMpAAElZEkgACV4AHcAJXNydWxlcy50eHQAKyVzAHIAXy5wAHBpdGNoAFRoZSByZXF1ZXN0ZWQgZnVuY3Rpb25hbGl0eSBoYXMgbm90IGJlZW4gYnVpbHQgaW50byBlc3BlYWstbmcAX3NtYwBDYwBtYgBJU09fNjQ2LmlydjoxOTkxAHYgPD0gdm93ZWxfY291bnQAVGhlIHBob25lbWUgZmlsZSBpcyBub3QgaW4gYSBzdXBwb3J0ZWQgZm9ybWF0AGNoYXJhY3RlcnMAJWMlcyVzJXMAICVzAF90dXIAZW4AQ2YAbmQAJXMgJWQASVNPXzg4NTktMQAjIFRoaXMgZmlsZSBsaXN0cyB0aGUgdHlwZSBvZiBkYXRhIHRoYXQgaGFzIGJlZW4gY29tcGlsZWQgaW50byB0aGUKIyBwaG9uZGF0YSBmaWxlCiMKIyBUaGUgZmlyc3QgY2hhcmFjdGVyIG9mIGEgbGluZSBpbmRpY2F0ZXMgdGhlIHR5cGUgb2YgZGF0YToKIyAgIFMgLSBBIFNQRUNUX1NFUSBzdHJ1Y3R1cmUKIyAgIFcgLSBBIHdhdmVmaWxlIHNlZ21lbnQKIyAgIEUgLSBBbiBlbnZlbG9wZQojCiMgQWRkcmVzcyBpcyB0aGUgZGlzcGxhY2VtZW50IHdpdGhpbiBwaG9uZGF0YSBvZiB0aGlzIGl0ZW0KIwojICBBZGRyZXNzICBEYXRhIGZpbGUKIyAgLS0tLS0tLSAgLS0tLS0tLS0tCgBfcmV2AHZhcmlhbnQAJXNydWxlcwB0dHM6Y2hhcgBzb3VuZGljb24AQ24AX2VsAG5nAHNyYy9saWJlc3BlYWstbmcvZGljdGlvbmFyeS5jAF9zdWIAcGhvbmRhdGEAVGhlIHNwZWN0cmFsIGZpbGUgZG9lcyBub3QgY29udGFpbiBhbnkgZnJhbWUgZGF0YQABKzEwUwBJU09fODg1OS0xOjE5ODcAdHRzOmtleQAlcyVjJXNfZGljdAB0cwBUaGUgcGhvbmVtZSBtYW5pZmVzdCBmaWxlIGRvZXMgbm90IGNvbnRhaW4gYW55IHBob25lbWVzAF8lYyAlcwBfY3lyAF9zdXAAQ28AX2NybAB3YgAgAS0xMFMASVNPXzg4NTktMgAtAFVucHJvbm91bmNhYmxlPyAnJXMnCgBfaHkAcGhvbmluZGV4AF9hY3UAdHRzOmRpZ2l0cwBDcwAgJXMgJWQgJXMAJ2U6agBhcG9zdHJvcGhlAFRoZSBwaG9uZW1lIGZlYXR1cmUgaXMgbm90IHJlY29nbmlzZWQAdEEASVNPXzg4NTktMjoxOTg3AHdiKwBUcmFuc2xhdGUgJyVzJwoAX2JydgBicmFja2V0cwAlY2VuAElpAHRlbGVwaG9uZQBfaGUAVGhlIHRleHQgZW5jb2RpbmcgaXMgbm90IHN1cHBvcnRlZAAlZCAlZABwaG9udGFiAFsCKFgxKShYMSkoWDEpXV0AbkEAYidpOgBJU09fODg1OS0zAFVzaW5nIHBob25lbWV0YWJsZTogJyVzJwoAVW5zcGVjaWZpZWQgZXJyb3IgMHgleAByb290cwBnbHlwaHMAJWMlcwBfYXIATGwAJXMvY29tcGlsZV9wcm9nX2xvZwBicmFja2V0c0Fubm91bmNlZAAlZABfaGFjAF9eXwBzJ2k6AElTT184ODU5LTM6MTk4OABsaXN0AGRpY3RfbWluAGVuAExtAHgtd2VhawBiYXNlAF9jZWQAX3N5YwBkJ2k6AElTT184ODU5LTQAQmFkIHZvaWNlIGF0dHJpYnV0ZTogJXMKAEVycm9yIHByb2Nlc3NpbmcgZmlsZSAnJXMnOiAlcy4KAGxpc3R4AGRpY3RydWxlcwBfY2lyAExvAHdlYWsAX2hpACdpOgBJU09fODg1OS00OjE5ODgAJXMgAEludmFsaWQgcGhvbmVtZSBjb2RlICVkCgAKUmVmcyAlZCwgIFJldXNlZCAlZAoARXJyb3I6ICVzIGF0ICclcycgKGV4cGVjdGVkIDB4JXgsIGdvdCAweCV4KS4KAFVua25vd24gcGhvbmVtZSB0YWJsZTogJyVzJwoATHQAJWMlcwBpbnRvbmF0aW9uAF9ibgBtZWRpdW0AZW1vamkAJ2VmAF9kaWEASVNPXzg4NTktNQBSZXBsYWNlOiAlcyAgJXMKAENvbXBpbGVkIHBob25lbWVzOiAlZCBlcnJvcnMuCgBFcnJvcjogJXMuCgBoc3gATHUAJXMvLi4vcGhzb3VyY2UvaW50b25hdGlvbi50eHQAbF9kaWVyZXNpcwAlcyslcwBfZ3VyAGlvbgBzdHJvbmcAZXh0cmEASVNPXzg4NTktNToxOTg4AF9hYzIAbF9wcmVmaXgAX2d1AF9kb3QAJXMlY3ZvaWNlcwByAHgtc3Ryb25nAE1jAElTT184ODU5LTYAQ29tcGlsaW5nOiAnJXMnCgBfZ3J2AGxfcmVncmVzc2l2ZV92AHJzAF9vcgAlcy8uLi9waHNvdXJjZS9pbnRvbmF0aW9uACVzJWNsYW5nAE1lAHJlZHVjZWQASVNPXzg4NTktNjoxOTg3ACQxAGlyAF9tY24ATW4AbW9kZXJhdGUAdHVuZQBsX3VucHJvbm91bmNhYmxlAF90YQBJU09fODg1OS03ACQyAG1iLwAlcy9pbnRvbmF0aW9ucwB1cgBfb2dvAGxfc29ub3JhbnRfbWluAHJhdGUAX3RlAE5kAElTT184ODU5LTc6MTk4NwAkMwAvLwBfa24ATmwAYXRoAF9ybmcAdm9sdW1lAGFwb3N0cm9waGUAbG93ZXJjYXNlU2VudGVuY2UASVNPXzg4NTktOAAkNABEdXBsaWNhdGUgdHVuZSBuYW1lOiAnJXMnAGJyYWNrZXRzAG51bWJlcnMAbnMATm8AX21sAF9zdGsAcmFuZ2UAQmFkIHR1bmUgbmFtZTogJyVzOwBJU09fODg1OS04OjE5ODgAJDUAc3BlbGxpbmdTdHJlc3MAX3NpAF90bGQAZmllbGQAYnJhY2tldHNBbm5vdW5jZWQAUGMASVNPXzg4NTktOQAkNgBCYWQgZW52ZWxvcGUgbmFtZTogJyVzJwBfYmFyAGRpY3RfbWluAF90aABzcG9uZwBtb2RlAFR1bmUgJyVzJyBub3QgZm91bmQAc3RyZXNzQWRkAFBkAElTT184ODU5LTk6MTk4OQAkNwBfcmZ4ACR1AGRpY3RydWxlcwBzdHJlc3NBbXAAX2xvAHB1bmN0dWF0aW9uAHJhbmcAUGUASVNPXzg4NTktMTAAVW5leHBlY3RlZDogJyVzJwBjYXBpdGFsX2xldHRlcnMAaW50b25hdGlvbgBfaG9rAF90aQBzdHJlc3NMZW5ndGgAbGFyZwBQZgBUdW5lICclcycgbm90IGRlZmluZWQASVNPXzg4NTktMTA6MTk5MgAkdTEAX215AHN0cmVzc09wdABsX2RpZXJlc2lzAF8jJXMAbGV2ZWwAUGkASVNPXzg4NTktMTQAJHUyAGFkZCBlCgBDb21waWxlZCAlZCBpbnRvbmF0aW9uIHR1bmVzOiAlZCBlcnJvcnMuCgBsX3ByZWZpeABhbHBoYWJldABUb28gbWFueSBwaG9uZW1ldGFibGVzAF94IyVzAFBvAHN0cmVzc1J1bGUAX2thAElTT184ODU5LTE0OjE5OTgAJHUzAE91dCBvZiBtZW1vcnkAbF9yZWdyZXNzaXZlX3YAdHVuZXMAUHMAX2tvAHBoAElTT184ODU5LTE1AF8wACR1KwBfZHB0AHdvcmRzAGludGVycHJldC1hcwBfZXRoAGxfdW5wcm9ub3VuY2FibGUAU2MAXwBJU09fODg1OS0xNgAkdTErAEJhZCBydWxlcyBkYXRhIGluICclc19kaWN0JyBhdCAweCV4ICglYykKAGZvcm1hdABsX3Nvbm9yYW50X21pbgBTawBfYnJhaWxsZQBfME0lZABJU09fODg1OS0xNjoyMDAxACR1MisAQ2FuJ3QgZmluZCBiYXNlIHBob25lbWV0YWJsZSAnJXMnACUzZAklcyBbJXNdCgBDYW5ub3Qgc2V0ICVzOiBsYW5ndWFnZSBub3Qgc2V0LCBvciBpcyBpbnZhbGlkLgoAU20AZGV0YWlsAGxvd2VyY2FzZVNlbnRlbmNlAF9qYQBJU082NDYtVVMAXy4AJHUzKwBfAQBudW1iZXJzAFNvAF8lZG4AX3poACRwYXVzZQAlYyVkWQBwaG9uZW1lX2xlbiA8IE5fUEhPTkVNRV9CWVRFUwBJU08tMTA2NDYtVUNTLTIAJQBzcGVsbGluZ1N0cmVzcwBhbGlhcwBabAAkc3RyZW5kAElTTy04ODU5LTEAJSUARmxhZ3M6ICAlcyAgJXMKACVzJXMlYyVzJXMAWnAAbmFtZQBzdHJlc3NBZGQAJHN0cmVuZDIASVNPLTg4NTktMgAsAEZvdW5kOiAnJXMgJXMKAFpzACVzJXMlcyVjJXMARm91bmQ6ICclcwBzdHJlc3NBbXAAJHVuc3RyZXNzZW5kACVjJWRNAElTTy04ODU5LTMALCwAc3RyZXNzTGVuZ3RoACRhY2NlbnRfYmVmb3JlAF8wWiVkAHNyYwBJU08tODg1OS00AC0tACcAJyBbJXNdICAlcwoAJGFiYnJldgBzdHJlc3NPcHQAJXMvJXMAQWRsbQBfJWNkAElTTy04ODU5LTUAJycAJWMlcwBBZmFrAHN0cmVzc1J1bGUAJGRvdWJsZQAlYyVkSQA9AElTTy04ODU5LTYAJGFsdAB0dW5lcwBBZ2hiACVjJWRVAF86AElTTy04ODU5LTcAX2RwdDIA2Y4gINmPICDZkAB3b3JkcwBfJWRNJWRvAEFob20Ac3RyZW5ndGgASVNPLTg4NTktOAAkYWx0MQBfIQDYpyDZiCDZigBuYW1lAF8lZE0lZGUAQXJhYgAlYyVkQgA6AElTTy04ODU5LTkAJGFsdDIA2Kgg2b4g2Kog2Kkg2Ksg2Kwg2K0g2K4g2K8g2LAg2LEg2LIg2LMg2LQg2LUg2LYg2Lcg2Lgg2Lkg2Log2YEg2YIg2YMg2YQg2YUg2YYg2KYg2KQg2KEg2KMg2KIg2KUg2YcAXyVkTSVkeABBcm1pAHRpbWUAbGFuZ3VhZ2UAQAAkYWx0MwBJU08tODg1OS0xMADYtSDYtiDYtyDYuABnZW5kZXIAQXJtbgB4bWw6YmFzZQBfJWRNJWQAJGFsdDQASVNPLTg4NTktMTEAQC0AfHwAJXgAQXZzdAB2YXJpYW50cwBfMG9mACRhbHQ1AElTTy04ODU5LTEzACDZkSAAZm9ybWFudABfJXMlZG8AQmFsaQAlZAAkYWx0NgBJU08tODg1OS0xNAAxAEJhbXUAc3BlYWsAcGl0Y2gAXyVzJWRlACRhbHQ3AElTTy04ODU5LTE1ACNYMQBfJXMlZHgAQmFzcwBwaG9uZW1lcwAkY29tYmluZQB2b2ljZQA/AElTTy04ODU5LTE2AGRpY3Rpb25hcnkAcHJvc29keQAkZG90AEJhdGsAXyVzJWQAS09JOC1SAC0AJGhhc2RvdABzYXktYXMAQmVuZwByZXBsYWNlAF9eXwBMYXRpbi05AF8wTTIAQmhrcwBlY2hvAG1hcmsAJG1heDMAX1gxAF8lZE0xAFRJUy02MjAAX3wAQmxpcwBmbHV0dGVyACRicmsAVVMtQVNDSUkAXzBNMQAkdGV4dAByb3VnaG5lc3MAJXMlcwBwAEJvcG8AXzo6AFVURi04AGNsYXJpdHkAQnJhaAAkdmVyYmYAcGhvbmVtZQAxTUEAY3AzNjcAdCMAQnJhaQAkdmVyYnNmAHRvbmUAc3ViADBNQQBjcDgxOQAnIQBCdWdpAHZvaWNpbmcAJG5vdW5mAHR0czpzdHlsZQBfO18AY3NBU0NJSQAwTUIAYXVkaW8AYnJlYXRoACRwYXN0ZgBCdWhkADFNACNAAGNzSVNPODg1OTEzAGJyZWF0aHcAZW1waGFzaXMAQ2FrbQAkdmVyYgAjYQAwTQBjc0lTTzg4NTkxNABDYW5zAF8wQ28AJG5vdW4AYnJlYWsAI2UAbWJyb2xhAGNzSVNPODg1OTE1ACRwYXN0AGNvbnNvbmFudHMAQ2FyaQAjaQBtZXRhZGF0YQBjc0lTTzg4NTkxNgBfMEMwAGtsYXR0AGJyACNvAENoYW0AJHZlcmJleHRlbmQAXzBDAGNzSVNPTGF0aW4xACN1AENoZXIAJGNhcGl0YWwAbGkAJXMlYyVzJWMAZmFzdF90ZXN0MgBjc0lTT0xhdGluMgBDaXJ0ACRhbGxjYXBzAE1pc3NpbmcgZmlsZTogJXMAXzBhbmQAc3BlZWQAZGQAY3NJU09MYXRpbjMAQ29wdAAkYWNjZW50AG1haW50YWluZXIAXyVkQ28AcGhvbmVtZXRhYmxlIGlzIG1pc3NpbmcAaW1nAGNzSVNPTGF0aW40AENwcnQAc3RhdHVzACRzZW50ZW5jZQB0ZABLZXl3b3JkICdwaG9uZW1lJyBleHBlY3RlZABjc0lTT0xhdGluNQBfJWRDMAAkb25seQBUb28gbWFueSBwcm9jZWR1cmVzAEN5cmwAbWFsZQBfJWRDAGNzSVNPTGF0aW42AGgxACRvbmx5cwBDeXJzACVzJXMlcyVzAGZlbWFsZQBjc0lTT0xhdGluQXJhYmljACUuM2RQAGgyACVzJXMlYyVzACRzdGVtAE1pc3NpbmcgJ2VuZHBob25lbWUnIGJlZm9yZSBlbmQtb2YtZmlsZQAlZCAlZCAlZCAlZCAlZABjc0lTT0xhdGluQ3lyaWxsaWMARGV2YQBoMwBfJWRmeABNb3JlIHRoYW4gb25lIHBob25lbWUgdHlwZTogJXMARG9ncgBjc0lTT0xhdGluR3JlZWsAJGF0ZW5kAE5VTEwAaDQAY3NJU09MYXRpbkhlYnJldwBEc3J0ACRhdHN0YXJ0ACVkICVzICVzAGhyAF8lZGYATlVMTABfJWQlY3gAc2NyaXB0AER1cGwAJG5hdGl2ZQAhdiVjAGNzS09JOFIAJXgAc3R5bGUARWd5ZAAlc20lZABfJWQlYwAkPwBjc1RJUzYyMABmb250AEVneWgAYSBwaG9uZW1lIHR5cGUgb3IgbWFubmVyIG9mIGFydGljdWxhdGlvbiBtdXN0IGJlIHNwZWNpZmllZCBiZWZvcmUgc3RhcnR0eXBlACR0ZXh0bW9kZQBfJWRlACVzZiVkAGNzVVRGOAAlcy92b2ljZXMvJXMARWd5cABfJWRvAGEgcGhvbmVtZSB0eXBlIG9yIG1hbm5lciBvZiBhcnRpY3VsYXRpb24gbXVzdCBiZSBzcGVjaWZpZWQgYmVmb3JlIGVuZHR5cGUAJHBob25lbWVtb2RlAGNzVW5pY29kZQBiAGVuZHR5cGUgbXVzdCBlcXVhbCBzdGFydHR5cGUgZm9yIGNvbnNvbmFudHMAdW5wcgBhbGwAaQBhcmFiaWMAXyVkYQBFbGJhAG5vcHJlZml4AHZvaWNpbmdzd2l0Y2ggY2Fubm90IGJlIHVzZWQgb24gdm93ZWxzAGVtAEV0aGkAXyVkAGN5cmlsbGljAHN0cmVzcyBwaG9uZW1lcyBjYW4ndCBjb250YWluIHByb2dyYW0gaW5zdHJ1Y3Rpb25zAEdlb2sAZ3JlZWsAY29kZQBfJWRYJWMAd19hbHQxAFdhcm5pbmc6IG1heGltdW0gbnVtYmVyICVkIG9mIChOX1ZPSUNFU19MSVNUID0gJWQgLSAxKSByZWFjaGVkCgAlcyVjJXMAR2VvcgBfJWRYZgAlYyVkJWMAZ3JlZWs4AHdfYWx0MgBNaXNzaW5nICdlbmRwaG9uZW1lJyBiZWZvcmUgJyVzJwBoZWJyZXcAZGVmYXVsdABHbGFnAF8lZFgATWlzc2luZyBFTkRJRgB3X2FsdDMARXJyb3IgKCVzKTogZ2VuZGVyIGF0dHJpYnV0ZSBzcGVjaWZpZWQgb24gYSBsYW5ndWFnZSBmaWxlCgBzaWxlbnQAR29uZwAnZW5kcGhvbmVtZScgbm90IGV4cGVjdGVkIGhlcmUAaXNvLWNlbHRpYwB3X2FsdDQAX29yZDIwAHgtc29mdABHb25tAFBob25lbWUgdHlwZSBpcyBtaXNzaW5nAF9vcmQAaXNvLWlyLTYAd19hbHQ1AHNvZnQAR290aAB3X2FsdDYAaXNvLWlyLTEwMABCYWQgcGhvbmVtZSBuYW1lICclcycAd19hbHQAJXMlcyVzAEdyYW4AbG91ZABpc28taXItMTAxACVzOiAnJXMnLgBHcmVrAHgtbG91ZABpc28taXItMTA5AHBfYWx0MQB4LXNsb3cAR3VqcgBwX2FsdDIAaXNvLWlyLTExMABFeHBlY3RlZCAnKCcAc2xvdwBHdXJ1AGlzby1pci0xMjYAcF9hbHQzAEV4cGVjdGVkICcpJwBmYXN0AEhhbmcAVmFsdWUgJWQgaXMgZ3JlYXRlciB0aGFuIG1heGltdW0gJWQAaXNvLWlyLTEyNwBwX2FsdDQAeC1mYXN0AEhhbmkAaXNvLWlyLTEzOABwX2FsdDUAQ2Fubm90IGZpbmQgcGhvbmVtZSAnJXMnIHRvIGltcG9ydC4AeC1sb3cASGFubwBwX2FsdDYAaXNvLWlyLTE0NABQaG9uZW1lIGltcG9ydCB3aWxsIG92ZXJyaWRlIHNldCBwcm9wZXJ0aWVzLgBsb3cAcF9hbHQASGFucwBpc28taXItMTQ4AFBob25lbWUgcmVmZXJlbmNlIG5vdCBmb3VuZDogJyVzJwAlcyVzLnR4dABIYW50AGhpZ2gAaXNvLWlyLTE1NwBjb21waWxlOiB1bmtub3duIHBob25lbWUgdGFibGU6ICclcycAJXMlcwBIYXRyAHgtaGlnaABQaG9uZW1lIHByb2dyYW0gdG9vIGxhcmdlAGlzby1pci0xOTkASGVicgBpc28taXItMjI2AEV4cGVjdGVkIGEgY29uZGl0aW9uLCBub3QgJyVzJwBzcGFjZSAAQ2FuJ3QgYWxsb2NhdGUgbWVtb3J5CgBFeHBlY3RlZCBsaXN0IG9mIHN0cmVzcyBsZXZlbHMASGlyYQBsYXRpbjEAdGFiIAAJJWQgZW50cmllcwoASGx1dwBsYXRpbjIAVW5leHBlY3RlZCBrZXl3b3JkICclcycAdW5kZXJzY29yZSAAJTVkOiBVbmtub3duIGtleXdvcmQ6ICVzCgBIbW5nAHBob25lbWUAbGF0aW4zAGRvdWJsZS1xdW90ZSAAJTVkOiBNaXNzaW5nICcoJwoASHJrdABlbmRwaG9uZW1lAG1hbGUAbGF0aW40AEh1bmcAZmVtYWxlAEV4cGVjdGVkIEFORCwgT1IsIFRIRU4AbGF0aW41ACU1ZDogTmVlZCB0byBjb21waWxlIGRpY3Rpb25hcnkgYWdhaW4KAEluZHMAbmV1dHJhbABFTFNFIG5vdCBleHBlY3RlZABsYXRpbjYAJTVkOiBCYWQgcGhvbmVtZSBbJXNdIChVKyV4KSBpbjogJXMgICVzCgBVKyV4AEl0YWwASUYgYmxvY2sgaXMgdG9vIGxvbmcAeG1sOmxhbmcAbGF0aW44AHZhcmlhbnQARUxJRiBub3QgZXhwZWN0ZWQASmF2YQBsYXRpbjEwACU1ZDogRGljdGlvbmFyeSBsaW5lIGxlbmd0aCB3b3VsZCBvdmVyZmxvdyB0aGUgZGF0YSBidWZmZXI6ICVkCgBKcGFuAGFnZQBFTkRJRiBub3QgZXhwZWN0ZWQAbDEAJTVkOiBUd28gbWFueSBwYXJ0cyBpbiBhIG11bHRpLXdvcmQgZW50cnk6ICVkCgBnZW5kZXIASnVyYwBQYXJhbWV0ZXIgPiAxMjcAbDIALy8AJXMrJXMAS2FsaQAuTABQYXJhbWV0ZXIgPCAtMTI4AGwzAGd0AC5yZXBsYWNlAEthbmEAUGFyYW1ldGVyID4gMjU1AGw0AGx0AEtoYXIALmdyb3VwAERGVABsNQAweCV4ACVzLyVzLndhdgBLaG1yAGFtcABsNgBxdW90AENhbid0IHJlYWQgZmlsZTogJXMAS2hvagBsOAAlNWQ6IEdyb3VwIG5hbWUgbG9uZ2VyIHRoYW4gMiBieXRlcyAoVVRGOCkARmlsZSBub3QgU1BFQyBvciBSSUZGOiAlcwBuYnNwAEtuZGEAbDEwAApFeGNlZWRlZCBsaW1pdCBvZiBydWxlcyAoJWQpIGluIGdyb3VwICclcycKAHVzAGFwb3MAS29yZQAlYyAgMHglLjV4ICAlcwoAAMDg8P8fDwdwCnEKAAAoACkAWwBdAHsAfQA8AD4AIgAnAGAAqwC7AAowCzA84A=="),L(k,93904,"ICAgICAgICAgICYlKyNTRFpBTCEgQD9KTktWP1RYP1dBQkNIRkdZPT0sLCcqICAAIAAhACIAsAIkACUA5gDIAigAKQB+AisAzAItAC4ALwBSAjEAMgBcAjQANQA2ADcAdQI5ANACsgI8AD0APgCUAlkCUQKyA+cA8ABbAkYAYgInAWoCXwJLAGsCcQJLAVQCpgNjAoACgwK4A4oCjAJTAccD+ACSAioDXABdAF4AXwBgAGEAYgBjAGQAZQBmAGECaABpAGoAawBsAG0AbgBvAHAAcQByAHMAdAB1AHYAdwB4AHkAegB7AHwAfQADA38APT0sLCcnAAMCBAUGBxoAAAAAAQECAwMEBQYHBwgJCgsAAAEBAgIDAwQFBgcHCAkKAAABAgMDAwQFBgcHBwgJClNldFdvcmRTdHJlc3MA5ADrAO8A9gD8AP8AAAAAAAAAYWFhYWFhYWNlZWVlaWlpaWRub29vb28Ab3V1dXV5dHNhYWFhYWFhY2VlZWVpaWlpZG5vb29vbwBvdXV1dXl0eWFhYWFhYWNjY2NjY2NjZGRkZGVlZWVlZWVlZWVnZ2dnZ2dnZ2hoaGhpaWlpaWlpaWlpaWlqamtra2xsbGxsbGxsbGxubm5ubm5ubm5vb29vb29vb3JycnJycnNzc3Nzc3NzdHR0dHR0dXV1dXV1dXV1dXV1d3d5eXl6enp6enpzYmJiYgAAb2NjZGRkZGRlZWVmZmdnaGlpa2tsbG1ubm9vb29vcHB5AABzc3R0dHR1dXV2eXl6enp6enp6AAAAd3R0dGtkZGRsbGxubm5hYWlpb291dXV1dXV1dXV1ZWFhYWFhYWdnZ2dra29vb296empkZGRnZ3d3bm5hYWFhb29hYWFhZWVlZWlpaWlvb29vcnJycnV1dXVzc3R0eXloaG5kb296emFhZWVvb29vb29vb3l5bG50amRxYWNjbHRzegAAYnV2ZWVqanFxcnJ5eWFhYWJvY2RkZWVlZWVl"),L(k,94846,"TG9va3VwRGljdDIAAAAAAAAAgACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQAlQCWAJcAmACZAJoAmwCcAJ0AngCfAKAAoQCiAKMApAClAKYApwCoAKkAqgCrAKwArQCuAK8AsACxALIAswC0ALUAtgC3ALgAuQC6ALsAvAC9AL4AvwDAAMEAwgDDAMQAxQDGAMcAyADJAMoAywDMAM0AzgDPANAA0QDSANMA1ADVANYA1wDYANkA2gDbANwA3QDeAN8A4ADhAOIA4wDkAOUA5gDnAOgA6QDqAOsA7ADtAO4A7wDwAPEA8gDzAPQA9QD2APcA+AD5APoA+wD8AP0A/gD/AIAAgQCCAIMAhACFAIYAhwCIAIkAigCLAIwAjQCOAI8AkACRAJIAkwCUAJUAlgCXAJgAmQCaAJsAnACdAJ4AnwCgAAQB2AJBAaQAPQFaAacAqABgAV4BZAF5Aa0AfQF7AbAABQHbAkIBtAA+AVsBxwK4AGEBXwFlAXoB3QJ+AXwBVAHBAMIAAgHEADkBBgHHAAwByQAYAcsAGgHNAM4ADgEQAUMBRwHTANQAUAHWANcAWAFuAdoAcAHcAN0AYgHfAFUB4QDiAAMB5AA6AQcB5wANAekAGQHrABsB7QDuAA8BEQFEAUgB8wD0AFEB9gD3AFkBbwH6AHEB/AD9AGMB2QKAAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAAmAdgCowCkAP3/JAGnAKgAMAFeAR4BNAGtAP3/ewGwACcBsgCzALQAtQAlAbcAuAAxAV8BHwE1Ab0A/f98AcAAwQDCAP3/xAAKAQgBxwDIAMkAygDLAMwAzQDOAM8A/f/RANIA0wDUACAB1gDXABwB2QDaANsA3ABsAVwB3wDgAOEA4gD9/+QACwEJAecA6ADpAOoA6wDsAO0A7gDvAP3/8QDyAPMA9AAhAfYA9wAdAfkA+gD7APwAbQFdAdkCgACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQAlQCWAJcAmACZAJoAmwCcAJ0AngCfAKAABAE4AVYBpAAoATsBpwCoAGABEgEiAWYBrQB9Aa8AsAAFAdsCVwG0ACkBPAHHArgAYQETASMBZwFKAX4BSwEAAcEAwgDDAMQAxQDGAC4BDAHJABgBywAWAc0AzgAqARABRQFMATYB1ADVANYA1wDYAHIB2gDbANwAaAFqAd8AAQHhAOIA4wDkAOUA5gAvAQ0B6QAZAesAFwHtAO4AKwERAUYBTQE3AfQA9QD2APcA+ABzAfoA+wD8AGkBawHZAoAAgQCCAIMAhACFAIYAhwCIAIkAigCLAIwAjQCOAI8AkACRAJIAkwCUAJUAlgCXAJgAmQCaAJsAnACdAJ4AnwCgAAEEAgQDBAQEBQQGBAcECAQJBAoECwQMBK0ADgQPBBAEEQQSBBMEFAQVBBYEFwQYBBkEGgQbBBwEHQQeBB8EIAQhBCIEIwQkBCUEJgQnBCgEKQQqBCsELAQtBC4ELwQwBDEEMgQzBDQENQQ2BDcEOAQ5BDoEOwQ8BD0EPgQ/BEAEQQRCBEMERARFBEYERwRIBEkESgRLBEwETQROBE8EFiFRBFIEUwRUBFUEVgRXBFgEWQRaBFsEXASnAF4EXwSAAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAD9//3//f+kAP3//f/9//3//f/9//3/DAatAP3//f/9//3//f/9//3//f/9//3//f/9//3/Gwb9//3//f8fBv3/IQYiBiMGJAYlBiYGJwYoBikGKgYrBiwGLQYuBi8GMAYxBjIGMwY0BjUGNgY3BjgGOQY6Bv3//f/9//3//f9ABkEGQgZDBkQGRQZGBkcGSAZJBkoGSwZMBk0GTgZPBlAGUQZSBv3//f/9//3//f/9//3//f/9//3//f/9//3/gACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQAlQCWAJcAmACZAJoAmwCcAJ0AngCfAKAAGCAZIKMArCCvIKYApwCoAKkAegOrAKwArQD9/xUgsACxALIAswCEA4UDhgO3AIgDiQOKA7sAjAO9AI4DjwOQA5EDkgOTA5QDlQOWA5cDmAOZA5oDmwOcA50DngOfA6ADoQP9/6MDpAOlA6YDpwOoA6kDqgOrA6wDrQOuA68DsAOxA7IDswO0A7UDtgO3A7gDuQO6A7sDvAO9A74DvwPAA8EDwgPDA8QDxQPGA8cDyAPJA8oDywPMA80DzgP9/4AAgQCCAIMAhACFAIYAhwCIAIkAigCLAIwAjQCOAI8AkACRAJIAkwCUAJUAlgCXAJgAmQCaAJsAnACdAJ4AnwCgAP3/ogCjAKQApQCmAKcAqACpANcAqwCsAK0ArgCvALAAsQCyALMAtAC1ALYAtwC4ALkA9wC7ALwAvQC+AP3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f8XINAF0QXSBdMF1AXVBdYF1wXYBdkF2gXbBdwF3QXeBd8F4AXhBeIF4wXkBeUF5gXnBegF6QXqBf3//f8OIA8g/f+AAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAChAKIAowCkAKUApgCnAKgAqQCqAKsArACtAK4ArwCwALEAsgCzALQAtQC2ALcAuAC5ALoAuwC8AL0AvgC/AMAAwQDCAMMAxADFAMYAxwDIAMkAygDLAMwAzQDOAM8AHgHRANIA0wDUANUA1gDXANgA2QDaANsA3AAwAV4B3wDgAOEA4gDjAOQA5QDmAOcA6ADpAOoA6wDsAO0A7gDvAB8B8QDyAPMA9AD1APYA9wD4APkA+gD7APwAMQFfAf8AgACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQAlQCWAJcAmACZAJoAmwCcAJ0AngCfAKAABAESASIBKgEoATYBpwA7ARABYAFmAX0BrQBqAUoBsAAFARMBIwErASkBNwG3ADwBEQFhAWcBfgEVIGsBSwEAAcEAwgDDAMQAxQDGAC4BDAHJABgBywAWAc0AzgDPANAARQFMAdMA1ADVANYAaAHYAHIB2gDbANwA3QDeAN8AAQHhAOIA4wDkAOUA5gAvAQ0B6QAZAesAFwHtAO4A7wDwAEYBTQHzAPQA9QD2AGkB+ABzAfoA+wD8AP0A/gA4AYAAgQCCAIMAhACFAIYAhwCIAIkAigCLAIwAjQCOAI8AkACRAJIAkwCUAJUAlgCXAJgAmQCaAJsAnACdAJ4AnwCgAAEOAg4DDgQOBQ4GDgcOCA4JDgoOCw4MDg0ODg4PDhAOEQ4SDhMOFA4VDhYOFw4YDhkOGg4bDhwOHQ4eDh8OIA4hDiIOIw4kDiUOJg4nDigOKQ4qDisOLA4tDi4OLw4wDjEOMg4zDjQONQ42DjcOOA45DjoO/f/9//3//f8/DkAOQQ5CDkMORA5FDkYORw5IDkkOSg5LDkwOTQ5ODk8OUA5RDlIOUw5UDlUOVg5XDlgOWQ5aDlsO/f/9//3//f+AAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAAdIKIAowCkAB4gpgCnANgAqQBWAasArACtAK4AxgCwALEAsgCzABwgtQC2ALcA+AC5AFcBuwC8AL0AvgDmAAQBLgEAAQYBxADFABgBEgEMAckAeQEWASIBNgEqATsBYAFDAUUB0wBMAdUA1gDXAHIBQQFaAWoB3AB7AX0B3wAFAS8BAQEHAeQA5QAZARMBDQHpAHoBFwEjATcBKwE8AWEBRAFGAfMATQH1APYA9wBzAUIBWwFrAfwAfAF+ARkggACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQAlQCWAJcAmACZAJoAmwCcAJ0AngCfAKAAAh4DHqMACgELAQoepwCAHqkAgh4LHvIerQCuAHgBHh4fHiABIQFAHkEetgBWHoEeVx6DHmAe8x6EHoUeYR7AAMEAwgDDAMQAxQDGAMcAyADJAMoAywDMAM0AzgDPAHQB0QDSANMA1ADVANYAah7YANkA2gDbANwA3QB2Ad8A4ADhAOIA4wDkAOUA5gDnAOgA6QDqAOsA7ADtAO4A7wB1AfEA8gDzAPQA9QD2AGse+AD5APoA+wD8AP0AdwH/AIAAgQCCAIMAhACFAIYAhwCIAIkAigCLAIwAjQCOAI8AkACRAJIAkwCUAJUAlgCXAJgAmQCaAJsAnACdAJ4AnwCgAKEAogCjAKwgpQBgAacAYQGpAKoAqwCsAK0ArgCvALAAsQCyALMAfQG1ALYAtwB+AbkAugC7AFIBUwF4Ab8AwADBAMIAwwDEAMUAxgDHAMgAyQDKAMsAzADNAM4AzwDQANEA0gDTANQA1QDWANcA2ADZANoA2wDcAN0A3gDfAOAA4QDiAOMA5ADlAOYA5wDoAOkA6gDrAOwA7QDuAO8A8ADxAPIA8wD0APUA9gD3APgA+QD6APsA/AD9AP4A/wCAAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAAEAQUBQQGsIB4gYAGnAGEBqQAYAqsAeQGtAHoBewGwALEADAFCAX0BHSC2ALcAfgENARkCuwBSAVMBeAF8AcAAwQDCAAIBxAAGAcYAxwDIAMkAygDLAMwAzQDOAM8AEAFDAdIA0wDUAFAB1gBaAXAB2QDaANsA3AAYARoC3wDgAOEA4gADAeQABwHmAOcA6ADpAOoA6wDsAO0A7gDvABEBRAHyAPMA9ABRAfYAWwFxAfkA+gD7APwAGQEbAv8AgACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQAlQCWAJcAmACZAJoAmwCcAJ0AngCfAKAABAEFAUEBrCAeIGABpwBhAakAGAKrAHkBrQB6AXsBsACxAAwBQgF9AR0gtgC3AH4BDQEZArsAUgFTAXgBfAHAAMEAwgACAcQABgHGAMcAyADJAMoAywDMAM0AzgDPABABQwHSANMA1ABQAdYAWgFwAdkA2gDbANwAGAEaAt8A4ADhAOIAAwHkAAcB5gDnAOgA6QDqAOsA7ADtAO4A7wARAUQB8gDzAPQAUQH2AFsBcQH5APoA+wD8ABkBGwL/AP3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9/wEJAgkDCQUJBgkHCQgJCQkKCQsJDgkPCRAJDQkSCRMJFAkRCRUJFgkXCRgJGQkaCRsJHAkdCR4JHwkgCSEJIgkjCSQJJQkmCScJKAkpCSoJKwksCS0JLgkvCV8JMAkxCTIJMwk0CTUJNgk3CTgJOQkgAD4JPwlACUEJQglDCUYJRwlICUUJSglLCUwJSQlNCTwJZAn9//3//f/9//3/IAAwADEAMgAzADQANQA2ADcAOAA5AP3//f/9//3//f8CAAAAAAAAAAEAAAADAAAA//36+Pb08vDu7Oro5uTi4N7c2tjW1NLQzszKyMbEwsC+vLq4trSysK6sqqimpKKgnpyamJaUkpCOjIqIhoSCgH58enh2dHJwbmxqaGZkYmBeXFpYVlRSUE5MSkhGREJAPjw6ODY0MjAuLCooJiQiIB4cGhgWFBIQDgwKCAYEAgAAAgQGCAoMDhASFBYYGhweICIkJigqLC4wMjQ2ODo8PkBCREZISkxOUFJUVlhaXF5gYmRmaGpsbnBydHZ4enx+gIKEhoiKjI6QkpSWmJqcnqCipKaoqqyusLK0tri6vL7AwsTGyMrMztDS1NbY2tze4OLk5ujq7O7w8vT2+Pr9///06uDWzMO6saifl4+Hf3hxamNcVlBKRD85NC8rJiIeGhcTEA0LCAYEAgEAAAAAAAAAAQIDBAUHCAoMDhATFRcaHR8iJSgsLjAyNDY5Oz1AQkVHSkxPUVRXWl1fYmVoa25xdHh7foGFiIuPkpaZnaCkqKyvs7e7v8PHy8/T19vgz8zJxsPAvbm0sKunopyXkoyGgXt1b2ljXVdQSkQ+ODMtJyIcFxINCAQCAgEAAAAAAAEBAgMEBQcICgwNDxIUFhkbHiEkJyotMDQ2ODo8P0FDRkhLTVBSVVhaXWBjZmlsb3J1eHt+gYWIi4+SlpmdoKSorK+zt7u/w8fLz9PX2+D/+fTu6eTf2tXQy8bBvbizr6qmoZ2ZlZCMiISAfXl1cW5qZ2NgXVlWU1BNSkdEQT48OTc0Mi8tKygmJCIgHhwaGRcVFBIRDw4NDAoJCAcGBQUEAwICAQE="),L(k,99845,"AQECAgMEBAUGBwgJCgsMDg8QEhMVFxgaHB4g0M7NzMrIx8XDwcC9u7i1s7CtqqejoJ2ZlpKPi4eEgHx4dHBtaWVhXVlVUU1KRkI+Ozc0MS8tKigmJCIgHhwaGRcVFBIRDw4NDAoJCAcGBQUEAwICAQE="),L(k,99973,"AQECAgMEBAUGBwgJCgsMDg8QEhMVFxgaHB4gmJmZmpydn6Gkp6mssLO2ur7BxcnN0dTY3N/j5urt8PL19/n7/P3+/v////////79+/r49vPx7uzp5uTg3drX09DMyMTAvLi0sKyno5+alpGNiIR/e3ZybWllYFxYVFBMSERAPDk1Mi8rKCYjIB0aFxUSDw0KCAcFAwIBAAAAAAD+///////+/fz6+Pb08e7r6OXh3trW0s3JxL+6trCrpqGclpGLhoB7dW9qZF9ZVE9JRD86NTArJiIdGRURDQoHBAMBAAAAAAAAAAABAQIEBQcJCw0QEhUYGx4iJSktMTU6PkNITFFXW15iZWhrbnF0dnh7fH6AgYKDg4SEg4OCgXJycXFwb21samhmZGFfXFpXVFFOS0hFQj87ODUyLywpJiMgHRsYFhQSEA4MCwoJCAcHBwcHBgUFBQUFBQUFBQYHBwgJCgwNDxASFBYYGx0gIyYpLC8zNzs/Q0dMUVZbYGVqb3R5f4SJj5Wboaets7rAx87V3OPq8fX3+vz9/v///v79/fz7+/r6+fj49/f29vX09PPz8vLx8PDv7u7t7Ovq6uno5+bl5OPi4eDe3dzb2djW1dPS0M7My8nHxcPAvry5t7Wyr62qp6ShnpqXlJCNiYWBfXl1cW1oZGFeW1dUUU1KRkNAPDk1Mi4qJyMfHBgUEQ0LCQcFBAMCAQAAAAAAAAAAAQEBAgIDAwQEBQYGBwgICQoLDAwNDg8QERITFBYXGBkbHB0fICIjJSYoKSstLzAyNDY4Ojw+QEJER0lLTlBSVVdaXV9iZWdqbXBzdnl8f4KGiYyQk5aanaCjpqmsr7K1uLu+wcTHys3Q09bZ3N/i5Ofp7O7w8vT2+Pr7/X9/f4CBg4SHiYyPkpaZnaGlqq6yt7vAxcnN0tba3uLm6u3w8/X4+vv8/f7+/fz7+ff08Ozn4tzVzsa9tKmekoiCfXdybGZgWlROSUI8NzItKCQfGxgUEQ4MCQcGBQQEBAQFBggKDRAUGB0jKS83PkdQWmRwfIOFiIqMjo+RkpOTAEAIAEYSAAAAAAAAGAwAAARQEgZOFgAAAAAAACI0AAAEWBYGUhYAAAAAAAAiQAAAAFwIAFxQAAAAAAAATAgBAABWBABeQgAAAAAAACIKAAAAPgoAPhQAAAAAAAAcEAAABEQSBkQWAAAAAAAAHiwAAAZAEABCIAAAAAAAACASAAACRC4AKiAAAAAAAAAuOgAABE4YBkgWAAAAAAAAKjQAAARYIgBAIAAAAAAAAC5SAAAAOAwAOBQAAAAAAAAYDAAAAEYSAEYYAAAAAAAAIBQAAAkAAAAJAAAAEAAAABAAAAAQAAAAFwAAADcAAAAgAAAAACgYCAAKNCAUCgYmGA4EAAYAAAAHAAAACQAAAAkAAAAUAAAAFAAAABQAAAAZAAAA5iAUCA=="),L(k,101072,"ZgNmAWYCpgSmAiYEpoooAmoDagFqAqoCbgNuAW4CrgIpALMEdAN0AXQCtAS0AgAAdAR6A3oBegK6An4BOQC+AgAApgMAAKYBAADmAwAAaAEAAGgCAAAoAwAA6AEAAOkBAABpBAAAqgMAAKoBAAAqAwAA6gMAAOoBAABsAgAArAEAACwDAAAsAgAAbQIAAG0EAACuBAAArgMAAK4BAADuAwAALgAAAO6LAABvAgAAMAIwAAAAcQEAADECAADxAQAAMQMAAHEEAABzAQAAMwIAAPMBMwAAADMAAAC0AwAAtAEAAPQCAAC0igAAdwEAADcCAAD3AQAAeAEAAHgCAAA4AgAA+AEAADkCAAD5AQAAeQQAALoEAAC6AwAAugEAADoEAAD6AgAA+gMAAHwCAAB+AgAAAAB/AQAAPwMAAP8BOACmAAEAgQBnBQAAKAEpBWkF6gAAAEIFAADDAEMdAADvBGwFLABsAAQAAACtAG0FAADuBAUAbgCxBPEEMQXxj7IAAAByBQAAMwVzAPQEtJoAAAgAtwCOADcVAAA3BQAAzQB3ALcIOAUAAG8FyQAJAbkAOQX6BAoAewW7ALwAvgB+AD8FPwEAAAsBAADMAIwAAAAAAGcAAABsDW0ALwGwAHEAdgVMBEwc6Y8AAOnPOY4AADnO"),L(k,101586,"sQNZAlsCswO5A1MByQPGA4MCxQOSApQCfgJ8AgAAqgBhgLIAMoCzADOAuQAxgLoAb4CwAmiAsQJmgrICaoCzAnKAtAJ5grUCe4K2AoGCtwJ3gLgCeYDAApSCwQKVguACY4LhAmyA4gJzgOMCeIBwIDCAcSBpgHQgNIB1IDWAdiA2gHcgN4B4IDiAeSA5gHogK4B7IC2AfCA9gH0gKIB+ICmAfyBugIAgMECBIDFAgiAyQIMgM0CEIDRAhSA1QIYgNkCHIDdAiCA4QIkgOUCKICtAiyAtQIwgPUCNIChAjiApQJAgYUCRIGVAkiBvQJMgeECUIFlClSBoQJYga0CXIGxAmCBtQJkgbkCaIHBAmyBzQJwgdEAAAAAAaXhjbXZsZA=="),L(k,101888,"AQAAAAoAAABkAAAA6AMAAAUAAAAyAAAA9AEAAAAXCgkYExgY"),L(k,101936,"///////9+fXy7uvo5OHe2tjV0s/MycbEwb+8ure1s7CurKmopaOhn56bmZiWlJKRj42LiYiHhYOCgX9+fHt6eHd2dXNycXBvbm1ramloZ2ZlZGNiYWBfXl1cW1pZWVhXVlVUU1JSUVBQT05NTExLS0pJSEdHRkVFRENDQkJBQEA/Pj49PTw7Ozo6OTk4ODc2NjU1NDQ0MzIyMTEwMC8vLi4uLS0sLCwrKyopKCgoJycnJiYmJSUlJCQjIyMjIiIiISEhICAfHx8eHh4dHR0dHBwbGxsbGhoaGhkZGRgYGBgXFxcXFhYWFRUVFRQUFBQTExMSEhERERAQEBAQEA8PDw8ODg4NDQ0MDAwMCwsLCwoKCgkJCQgICAAAAAAAAAAAeHl4d3d2dnV0dHNycXBwb29ubWxrampoZ2dmZmZlZWNiYmFgYF9eXVtaW1pZWFZVVlVVVFJRUE9NTk5MTUtLSklHSEZFRUVDQUA/Pz89PTs7Ozo4OTo4NjU0NDU0NDIwLy8tLi0="),L(k,102336,"FhYWFhYWFhUVFRUUFBMTEhEQDw8PDw8PDwAAAAAAAABkeGRpZG5uZF9kaXhpbn2Ch3N9ZGl4S2RLaXhVS2RpeFVpX3N4ZF9kbnhfaWRzeGRkZGl4ZGlfc3huX2RpeGRpaXp9bmlkaXhkaWl6fW5pZGl4X2lkc3huZGRkeGRkZGRkZGRk"),L(k,102480,"ZJZkaW5zbm5uZGmWaW59h4xzh2RpllppWnqHZFpkaZZkaWR6h2RkZGmWZGlpc4duaWRplmRpaXqCeH1kaZZkaW56fXNuZGmWZGlpeod4aWRplmRpaXOHbmlkZGRkZGRkZGRkZA=="),L(k,102592,"bnhkbm5ubm5ubm54ZG5ubm5ubm5ueGRuZG5ubmRubnhkbm5ubm5ubm54ZG5ubm5ubm5ueGRubm5ubm5ubnhkbm5ubm5ubm54ZG5ubm5ubm5ueGRubm5ubm5ubnhkbm5ubm5ubg=="),L(k,102708,"rwAAAGQAAAAyAAAAMg=="),L(k,102744,"ZA=="),L(k,102764,"MjIoRlpkZGRGboeWZGRLZHiWAAAAAAAABwAAAA4AAAAVAAAAKAAAAFAAAAAAAAAAAFNBUFIAQwAAAAAARgAAAAAAAAABAAAAAgAAAAQAAAAPAAAAAAEAAAEBAAEBAgQAAAAAAPMAEAEAAQABAAEAAQAB8ADwAPA="),L(k,102898,"QABaAG4AgACPAJwAqQC1AMAAygDUAN0A5gDvAPcAAAEHAQ8BFgEeASUBLAEyATkBQAFGAUwBUgFYAV4BZAFqAW8BdQF6AYABhQGKAY8BlAGZAZ4BowGoAa0BsgG2AbsBwAHEAckBzQHRAdYB2gHeAeMB5wHrAe8B8wH3AfsBAAIDAgcCCwIPAhMCFwIbAh8CIgImAioCLQIxAjUCOAI8AkACQwJHAkoCTgJRAlQCWAJbAl8CYgJlAmkCbAJvAnMCdgJ5AnwCgAKDAoYCiQKMAo8CkgKWApkCnAKfAqICpQKoAqsCrgKxArQCtwK6Ar0CwALCAsUCyALLAs4C0QLUAtYC2QLcAt8C4gLkAucC6gLtAu8C8gL1AvcC+gL9AgADAgMFAwcDCgMNAw8DEgMVAxcDGgMcAx8DIQMkAycDKQMsAy4DMQMzAzYDOAM7Az0DQANCA0QDRwNJA0wDTgNRA1MDVQNYA1oDXQNfA2EDZANmA2gDawNtA28DcgN0A3YDeQN7A30DgAOCA4QDhgMAAAGqAqytAwQFsLGys7S0tgYHCLkJCrwMDQ4PEBESYWJjZGVmZ2hpamtsbW5vcHFyc3R1"),L(k,103360,"YAYAAPAGAABmCQAA5gkAAGYKAADmCgAAZgsAAOYLAABmDAAA5gwAAGYNAABQDgAA0A4AACAPAABAEAAAkBA="),L(k,103440,"5gDmAOYA5gAAAAAA5gDmAL4AqgC+AMgAAAAAAL4A8AC+AL4A0gDSAAAAAADSANIAyADIANIA0gAAAAAA5gDmAOYA5gDwAPAAAAAAAAQBBAGqAIwA3ADcAAAAAAD6AA4BoACMAMgAjAAAAAAA8ACgALQAtADSANIAAAAAAOYA8ACqANwAtAC0AAAAAAD6AA4BlgCCAMgAyAAAAAAADgEOAbYAjADcANwAAAAAAPgAEwGbALQA0gDSAAAAAAAOASwBwwMAAAAAAABsAAAAAAAAAKAAkQCbAJYAAAAAAMgA9QAnAAAAtwAAAAAAAADCugAAyADIAMgAyAAAAAAA0gDmAAABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGgAAAAAAABscHR4fICEiIyQlJicoKSorAAAs"),L(k,103790,"LQAAAAAAAAAu"),L(k,103816,"Lw=="),L(k,103833,"MAAAAAAAMQ=="),L(k,103856,"Mg=="),L(k,103868,"MwAAAK0AAQBABgEADCAtAAAAAAC+AL4A0gDSAAAAAADmAPoAoACWAMgAyAAAAAAA+gAEAbkAwwDDAL4AAAAAANIA3AD6AMgA+gD6AAAAAAD6APoAMjM0Njk6PD0+P0BBQkNERkdJSktMTU5PUFFSU1RWAACWAIwAtAC0AAAAAADIAMgAbA=="),L(k,104016,"oADIALQAtAAAAAAA3ADwALQAoADIAMgAAAAAAPAA+gBjAAAAZgAAAGgAAABrAAAAcAAAAHQAAAB4AAAA/g=="),L(k,104096,"oACMAJYApQAAAAAA2gAxAZEAkQCqAKAAAAAAAEoBXgEuAAAALAAAACcAAADIAg=="),L(k,104160,"MTIzNTY3OTo7PD4/QEFCREVGR0hJSktMTU5PUFFSU1RW"),L(k,104208,"vgC0AOYA5gAAAAAA+gD6ABESExQWFxkaGxwdHyAhIiQlJicoKSosc3uDmwAAAAAAtAC0AL4AtAAAAAAA5gDwALQAtAC0AKAAAAAAAOYAtABABAAAMAQAADUEAAA4BAAAOQQAAD4EAABDBAAASwQAAE0EAABOBAAATwQAAFAEAABRBAAAVgQAAFcEAABdBAAAXgQ="),L(k,104368,"tACgAMgAyAAAAAAA3ADmAKAAhwDSANIAAAAAAAQBGAGgAIwAyADIAAAAAADcAOYAyADIAMgAyAAAAAAAyADIAKAAvgCvAK8AAAAAAMgA0gCqAHMA0gDwAAAAAAAEARgBqgCqALQAtAAAAAAA8AAEAZYAtADIAMgAAAAAANIA+gCWAJYAtAC0AAAAAAAsASwBoACHANwA3AAAAAAA+gAYAaAAqgDIAMgAAAAAAEABVAG0AKAA8ADwAAAAAAAEAQQBvgC0AMgA5gAAAAAA8AD6AJYAlgC0ALQA0gDmAOYA8ABhAAAA4AAAAOEAAACjHgAA4wAAAKEeAAADAQAAsR4AAK8eAACzHgAAtR4AALceAADiAAAApx4AAKUeAACpHgAAqx4AAK0eAABlAAAA6AAAAOkAAAC7HgAAvR4AALkeAADqAAAAwR4AAL8eAADDHgAAxR4AAMceAABpAAAA7AAAAO0AAADJHgAAKQEAAMseAABvAAAA8gAAAPMAAADPHgAA9QAAAM0eAAD0AAAA0x4AANEeAADVHgAA1x4AANkeAAChAQAA3R4AANseAADfHgAA4R4AAOMeAAB1AAAA+QAAAPoAAADnHgAAaQEAAOUeAACwAQAA6x4AAOkeAADtHgAA7x4AAPEeAAB5AAAA8x4AAP0AAAD3HgAA+R4AAPUe"),L(k,104896,"5gCWAOYA5gDmAAAA8AD6AAAAAAAnAAAAAAAAAAABAgM="),L(k,104945,"AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRo="),L(k,105072,"GxwdAAAeHyAhIiMkACUmAAAAACcAACgAKQAqACsAAAAAAAAsAC0ALgAAAAAALwAAADAAAAAAAAAAMQ=="),L(k,105170,"MgAz"),L(k,105195,"NAAAAAAANQA2"),L(k,105226,"NwA4ADkArQABAAwgAQ=="),L(k,105249,"AQIDAAQAAQIDAAQFBgIDAAQFBwEDAAQICQoDAAAICAoDAAALCwsLAAAMDAwMAAAMAQ4BEwEBAw8DDgYRBgMJAQsPCwEMCQwBDgYOCQ4ODg8OHA4DDxEPEg8PEBEQAREGEQkRDxETEiAS/38AAAAAlgCMANwA3AAAAAAABAEYAYKAeHRkZICAgIyAgKCrq4CAgA=="),L(k,105412,"yAAAAMgAAACQAQAAkAEAAJABAABYAgAAWAIAAFgC"),L(k,105456,"8AAAAKoAAACqAAAAqgAAAKoAAACqAAAAqgAAAKoAAACqAAAAAQIMAw0EDgULAAAAAQIDBAUGAAAAAAAACwwNDg=="),L(k,105540,"MgAAAK8AAABkAAAAMg=="),L(k,105568,"rw=="),L(k,105596,"EBAKEBY="),L(k,105620,"/38AANAHAAAsAQAAYwAAAGMAAABjAAAAAAAAANAH"),L(k,105668,"BA=="),L(k,105680,"QEFCQ0RFRkdISUpLTE1OT1BRUlNUVldYWVtcXV5gYWJkZWdoaWtsbm9xc3R2d3l7fH6AgoSFh4mLjY+Rk5WXmZueoKKkp6mrrrCztbi6vb/CxcfKzdDT1tnc3+Ll6Ozv8vb5/P7/"),L(k,105792,"//7+/v7+/v7+/v39/f38/Pz7+/v6+vn5+Pj39/b19fTz8/Lx7+3r6efl4+Hf3drY1dPQzcvIxcK/u7i1sq6rp6OgnJiUkIyIhH97d3JuaWRgXltYVlNRTkxKR0VCQD48OTc1MzEvLCooJiQiIB4dGxkXFRMSEA4MCwkHBgQDAQ=="),L(k,106064,"//7+/v7+/f38+/v6+fj39vX08vHv7uzq6efl4+Hf3NrY1dPRz83LycfFw8G/vbu5t7SysK2rqaakoZ+cmpeUko+MioeEgX57eHZzcGxpZmNgX11bWlhWVVNSUE9NTEpJSEZFRENCQD8+PTw7Ojk4Nzc2NTQ0MzIyMTAwLy8uLi4tLS0sLCwsLCwsKysrKywrKiopKCgnJiYlJCQjIyIhISAgHx4eHR0cHBsaGhkZGBgXFxYWFRUUFBMTEhISEREQEA8PDw4ODQ0NDAwLCwsKCgoJCQkICAgHBwcHBgYGBQUFBQQEBAQEAwMDAwICAgICAgEBAQEBAQ=="),L(k,106341,"RvIpAC8ALwBF8ikALwAuAEXyKAAuAC0ANPIoAC0tLAA08igAKysrADTyKAAqKioANPIoACkpKQA08igAAOf/zv+1/5z/g/9q/1H/N/8e/wX/7P7T/rr+of6I/m/+Vf48/iP+Cv7x/dj9v/2m/Y39dP1b/UL9Kf0Q/ff83vzF/Kz8k/x6/GH8SPwv/Bb8/fvk+8v7svuZ+4D7Z/tP+zb7HfsE++v60vq6+qH6iPpv+lf6Pvol+g369Pnb+cP5qvmR+Xn5YPlH+S/5Fvn++OX4zfi0+Jz4g/hr+FP4Ovgi+Ar48ffZ98H3qPeQ93j3YPdH9y/3F/f/9uf2z/a39p/2h/Zv9lf2P/Yn9g/29/Xf9cf1sPWY9YD1aPVR9Tn1IfUK9fL02/TD9Kz0lPR99GX0TvQ29B/0CPTw89nzwvOr85TzfPNl807zN/Mg8wnz8vLb8sTyrvKX8oDyafJS8jzyJfIO8vjx4fHL8bTxnvGH8XHxW/FE8S7xGPEB8evw1fC/8Knwk/B98GfwUfA78CXwEPD67+Tvzu+576Pvje9472LvTe847yLvDe/47uLuze647qPuju557mTuT+467iXuEO777eft0u297antlO2A7WvtV+1C7S7tGu0F7fHs3ezJ7LXsoeyN7HnsZexR7D3sKuwW7ALs7+vb68jrtOuh643reutn61TrQest6xrrB+v06uLqz+q86qnqluqE6nHqX+pM6jrqJ+oV6gPq8One6czpuumo6ZbphOly6WHpT+k96SzpGukI6ffo5ujU6MPosuig6I/ofuht6FzoS+g76CroGegI6Pjn5+fX58bntuel55Xnhed152XnVedF5zXnJecV5wXn9ubm5tfmx+a45qjmmeaK5nvma+Zc5k3mPuYw5iHmEuYD5vXl5uXY5cnlu+Wt5Z7lkOWC5XTlZuVY5UrlPOUv5SHlE+UG5fjk6+Te5NDkw+S25KnknOSP5ILkdeRo5FzkT+RD5DbkKuQd5BHkBeT54+3j4ePV48njveOx46XjmuOO44Pjd+Ns42HjVuNL4z/jNOMq4x/jFOMJ4//i9OLq4t/i1eLK4sDituKs4qLimOKO4oTie+Jx4mfiXuJU4kviQuI54i/iJuId4hTiDOID4vrh8eHp4eDh2OHQ4cfhv+G34a/hp+Gf4Zfhj+GI4YDheOFx4WrhYuFb4VThTeFG4T/hOOEx4SrhJOEd4RbhEOEK4QPh/eD34PHg6+Dl4N/g2eDU4M7gyeDD4L7guOCz4K7gqeCk4J/gmuCV4JHgjOCH4IPgfuB64HbgcuBu4GrgZuBi4F7gWuBX4FPgT+BM4EngReBC4D/gPOA54DbgM+Ax4C7gK+Ap4CfgJOAi4CDgHuAc4BrgGOAW4BTgEuAR4A/gDuAN4AvgCuAJ4AjgB+AG4AXgBeAE4APgA+AC4ALgAuAC4ALgAeAC4ALgAuAC4ALgA+AD4ATgBeAF4AbgB+AI4AngCuAL4A3gDuAP4BHgEuAU4BbgGOAa4BzgHuAg4CLgJOAn4CngK+Au4DHgM+A24DngPOA/4ELgReBJ4EzgT+BT4FfgWuBe4GLgZuBq4G7gcuB24HrgfuCD4IfgjOCR4JXgmuCf4KTgqeCu4LPguOC+4MPgyeDO4NTg2eDf4OXg6+Dx4Pfg/eAD4QrhEOEW4R3hJOEq4THhOOE/4UbhTeFU4VvhYuFq4XHheOGA4Yjhj+GX4Z/hp+Gv4bfhv+HH4dDh2OHg4enh8eH64QPiDOIU4h3iJuIv4jniQuJL4lTiXuJn4nHie+KE4o7imOKi4qzituLA4sri1eLf4uri9OL/4gnjFOMf4yrjNOM/40vjVuNh42zjd+OD447jmuOl47HjvePJ49Xj4ePt4/njBeQR5B3kKuQ25EPkT+Rc5GjkdeSC5I/knOSp5Lbkw+TQ5N7k6+T45AblE+Uh5S/lPOVK5VjlZuV05YLlkOWe5a3lu+XJ5djl5uX15QPmEuYh5jDmPuZN5lzma+Z75ormmeao5rjmx+bX5ubm9uYF5xXnJec150XnVedl53XnheeV56XntufG59fn5+f45wjoGegq6DvoS+hc6G3ofuiP6KDosujD6NTo5uj36AjpGuks6T3pT+lh6XLphOmW6ajpuunM6d7p8OkD6hXqJ+o66kzqX+px6oTqluqp6rzqz+ri6vTqB+sa6y3rQetU62freuuN66HrtOvI69vr7+sC7BbsKuw97FHsZex57I3soey17Mns3ezx7AXtGu0u7ULtV+1r7YDtlO2p7b3t0u3n7fvtEO4l7jruT+5k7nnuju6j7rjuze7i7vjuDe8i7zjvTe9i73jvje+j77nvzu/k7/rvEPAl8DvwUfBn8H3wk/Cp8L/w1fDr8AHxGPEu8UTxW/Fx8YfxnvG08cvx4fH48Q7yJfI88lLyafKA8pfyrvLE8tvy8vIJ8yDzN/NO82XzfPOU86vzwvPZ8/DzCPQf9Db0TvRl9H30lPSs9MP02/Ty9Ar1IfU59VH1aPWA9Zj1sPXH9d/19/UP9if2P/ZX9m/2h/af9rf2z/bn9v/2F/cv90f3YPd495D3qPfB99n38fcK+CL4OvhT+Gv4g/ic+LT4zfjl+P74Fvkv+Uf5YPl5+ZH5qvnD+dv59PkN+iX6PvpX+m/6iPqh+rr60vrr+gT7Hfs2+0/7Z/uA+5n7svvL++T7/fsW/C/8SPxh/Hr8k/ys/MX83vz3/BD9Kf1C/Vv9dP2N/ab9v/3Y/fH9Cv4j/jz+Vf5v/oj+of66/tP+7P4F/x7/N/9R/2r/g/+c/7X/zv/n/wAAGQAyAEsAZAB9AJYArwDJAOIA+wAUAS0BRgFfAXgBkQGrAcQB3QH2AQ8CKAJBAloCcwKMAqUCvgLXAvACCQMiAzsDVANtA4YDnwO4A9ED6gMDBBwENQROBGcEgASZBLEEygTjBPwEFQUuBUYFXwV4BZEFqQXCBdsF8wUMBiUGPQZWBm8GhwagBrkG0QbqBgIHGwczB0wHZAd9B5UHrQfGB94H9gcPCCcIPwhYCHAIiAigCLkI0QjpCAEJGQkxCUkJYQl5CZEJqQnBCdkJ8QkJCiEKOQpQCmgKgAqYCq8KxwrfCvYKDgslCz0LVAtsC4MLmwuyC8oL4Qv4CxAMJww+DFUMbAyEDJsMsgzJDOAM9wwODSUNPA1SDWkNgA2XDa4NxA3bDfINCA4fDjUOTA5iDnkOjw6lDrwO0g7oDv8OFQ8rD0EPVw9tD4MPmQ+vD8UP2w/wDwYQHBAyEEcQXRBzEIgQnhCzEMgQ3hDzEAgRHhEzEUgRXRFyEYcRnBGxEcYR2xHwEQUSGRIuEkMSVxJsEoASlRKpEr4S0hLmEvsSDxMjEzcTSxNfE3MThxObE68TwxPWE+oT/hMRFCUUOBRMFF8UcxSGFJkUrBS/FNMU5hT5FAwVHhUxFUQVVxVqFXwVjxWhFbQVxhXZFesV/RUQFiIWNBZGFlgWahZ8Fo4WnxaxFsMW1BbmFvgWCRcaFywXPRdOF2AXcReCF5MXpBe1F8UX1hfnF/gXCBgZGCkYOhhKGFsYaxh7GIsYmxirGLsYyxjbGOsY+xgKGRoZKRk5GUgZWBlnGXYZhRmVGaQZsxnCGdAZ3xnuGf0ZCxoaGigaNxpFGlMaYhpwGn4ajBqaGqgathrEGtEa3xrtGvoaCBsVGyIbMBs9G0obVxtkG3EbfhuLG5gbpBuxG70byhvWG+Mb7xv7GwccExwfHCscNxxDHE8cWxxmHHIcfRyJHJQcnxyqHLUcwRzMHNYc4RzsHPccAR0MHRYdIR0rHTYdQB1KHVQdXh1oHXIdfB2FHY8dmR2iHawdtR2+Hccd0R3aHeMd7B30Hf0dBh4PHhceIB4oHjAeOR5BHkkeUR5ZHmEeaR5xHngegB6IHo8elh6eHqUerB6zHroewR7IHs8e1h7cHuMe6h7wHvYe/R4DHwkfDx8VHxsfIR8nHywfMh83Hz0fQh9IH00fUh9XH1wfYR9mH2sfbx90H3kffR+CH4Yfih+OH5Iflh+aH54foh+mH6kfrR+xH7Qftx+7H74fwR/EH8cfyh/NH88f0h/VH9cf2R/cH94f4B/iH+Qf5h/oH+of7B/uH+8f8R/yH/Mf9R/2H/cf+B/5H/of+x/7H/wf/R/9H/4f/h/+H/4f/h//H/4f/h/+H/4f/h/9H/0f/B/7H/sf+h/5H/gf9x/2H/Uf8x/yH/Ef7x/uH+wf6h/oH+Yf5B/iH+Af3h/cH9kf1x/VH9Ifzx/NH8ofxx/EH8Efvh+7H7cftB+xH60fqR+mH6Ifnh+aH5Yfkh+OH4ofhh+CH30feR90H28fax9mH2EfXB9XH1IfTR9IH0IfPR83HzIfLB8nHyEfGx8VHw8fCR8DH/0e9h7wHuoe4x7cHtYezx7IHsEeuh6zHqwepR6eHpYejx6IHoAeeB5xHmkeYR5ZHlEeSR5BHjkeMB4oHiAeFx4PHgYe/R30Hewd4x3aHdEdxx2+HbUdrB2iHZkdjx2FHXwdch1oHV4dVB1KHUAdNh0rHSEdFh0MHQEd9xzsHOEc1hzMHMEctRyqHJ8clByJHH0cchxmHFscTxxDHDccKxwfHBMcBxz7G+8b4xvWG8obvRuxG6QbmBuLG34bcRtkG1cbShs9GzAbIhsVGwgb+hrtGt8a0RrEGrYaqBqaGowafhpwGmIaUxpFGjcaKBoaGgsa/RnuGd8Z0BnCGbMZpBmVGYUZdhlnGVgZSBk5GSkZGhkKGfsY6xjbGMsYuxirGJsYixh7GGsYWxhKGDoYKRgZGAgY+BfnF9YXxRe1F6QXkxeCF3EXYBdOFz0XLBcaFwkX+BbmFtQWwxaxFp8WjhZ8FmoWWBZGFjQWIhYQFv0V6xXZFcYVtBWhFY8VfBVqFVcVRBUxFR4VDBX5FOYU0xS/FKwUmRSGFHMUXxRMFDgUJRQRFP4T6hPWE8MTrxObE4cTcxNfE0sTNxMjEw8T+xLmEtISvhKpEpUSgBJsElcSQxIuEhkSBRLwEdsRxhGxEZwRhxFyEV0RSBEzER4RCBHzEN4QyBCzEJ4QiBBzEF0QRxAyEBwQBhDwD9sPxQ+vD5kPgw9tD1cPQQ8rDxUP/w7oDtIOvA6lDo8OeQ5iDkwONQ4fDggO8g3bDcQNrg2XDYANaQ1SDTwNJQ0ODfcM4AzJDLIMmwyEDGwMVQw+DCcMEAz4C+ELyguyC5sLgwtsC1QLPQslCw4L9grfCscKrwqYCoAKaApQCjkKIQoJCvEJ2QnBCakJkQl5CWEJSQkxCRkJAQnpCNEIuQigCIgIcAhYCD8IJwgPCPYH3gfGB60HlQd9B2QHTAczBxsHAgfqBtEGuQagBocGbwZWBj0GJQYMBvMF2wXCBakFkQV4BV8FRgUuBRUF/ATjBMoEsQSZBIAEZwROBDUEHAQDBOoD0QO4A58DhgNtA1QDOwMiAwkD8ALXAr4CpQKMAnMCWgJBAigCDwL2Ad0BxAGrAZEBeAFfAUYBLQEUAfsA4gDJAK8AlgB9AGQASwAyABkAMAAAADAAAABAAAAAUAAAAJAAAACgAAAAsAAAAMAAAACAm7XL3Ojt7Obczr+wo5iQjIuMj5KUlZKMg3hpWUk8MSopLTZEVml9j5+qsbKtpJaHeGlcU09PVV5reoiWoquwsa6ooJiRi4iJjZSdqLK7wMG9tKWSfGNKMh4OBQIFDx4wRFltf4yWnJ+fnZuZmZyhqbO/ytXc4N7YzLumj3dgSzouKCkvOkhZanqGkJSVkYmAdWtiXFpcYWl0gIqUmp6dmJCGfHFoYmBja3iIm6/C0t/m5+LXxrKchG9bS0A5Nzg9Q0pQVFZVUk1IQj8+QUlWZ3yTq8PZ6vb8+/Tn1cCqlIBxZF1aXGFocHd9f397dGthV05IRkhOWWZ1hJOfp6uqpJmLe2pbTkZDRU1aa3+SprjFz9PSzcS5raGWjomHh4qNkZKRjIR4aFVBLhwOBQEFDx80TWiBmrDBzdPT0Mi/taukn5ydoKWqrrGwq6OWh3ZjUUI2Ly0xOkhZa36OnKaqqaOYintsXVJKSEpQWmd1gi0AAAAmAAAALQAAAC0AAAA3AAAALQ=="),L(k,110928,"yv5w/hICZAHgAFkAFwD2/8b/8P/NAVcCGAK9AgIDXQLxAc0BMAKUAW4A4ACDAGgAn/+bABYBZv9z+6r94QJ9ALD9KQALAAn/9v9BAFwAUADQ/kcApwD//3oA6QChANX/FgHfAeUBlwEKAYoChgBQAOwARAAEAQ0BswA1AIwAEwElASgBaAABAZgANwG2AAcB9QB9ADoBjAAsAMsA5gAV/+L+FwBrAFwApf8mANABuwGwAGIA8Pxv9p346/vA+Ur6mPoT+0v8Jv0="),L(k,111162,"BgAHAAgACQAKAAsADQAOABAAEgAUABYAGQAcACAAIwAoAC0AMwA5AEAARwBQAFoAZQByAIAAjgCfALMAygDjAAABHAE+AWcBlQHHAQACOAJ+As8CcQOPAwAEcQT8BJ4FVgYfBwAI4Qj4CTsLrAw9DgAQwxHwE3cWWBl7HAAghSPfJ+4ssDL2OABArkekUIVbZmYzc/9/"),L(k,111324,"qMtoQQAAAACoy2jBAAAAAAAAAAAXCtQJkglQCQ8JzgiPCE8IEwjVB5oHYgcoB/MGvgaLBloGKwb9BdMFqQWBBVwFOAUWBfcE1wS7BKAEhgRuBFcEQQQtBBkEBwT1A+QD1APFA7YDqAOZA40DfwNxA2UDVwNLAz4DMgMkAxgDCwP+AvIC5ALYAssCvgKxAqQClwKLAn0CcgJkAlkCTAJAAjQCKAIcAhICBQL7AfAB5QHbAdABxgG7AbIBqAGeAZQBigGBAXcBbgFjAVsBUAFIAT0BNAErASABGAENAQQB+gDwAOcA3ADUAMgAwAC1AKwAoQCYAI4AhQB7AHEAaQBeAFYATABDADkAMQAnAB4AFgALAAQA+//y/+n/4P/X/87/xP+7/7L/qf+g/5X/jf+C/3r/cP9m/1z/Uv9J/z//Nf8r/yL/F/8O/wT/+v7x/uf+3f7T/sr+wP62/q3+o/6b/pD+h/59/nP+av5f/lb+TP5C/jj+Lf4j/hn+Df4D/vf97P3h/dX9yf29/bH9pf2Y/Yz9f/1z/Wb9Wf1M/T/9M/0k/Rn9Cv3//PH85fzY/Mz8vvyz/KT8mPyL/H78cfxi/FX8Rfw4/Cb8GfwG/Pb74vvQ+7r7pfuO+3b7XPtB+yT7Bvvl+sT6n/p5+lP6KPr++dD5oflw+Tz5CfnR+Jr4YPgm+Oj3q/ds9yz36/aq9mj2Jvbj9bAEdgRABA4E3wO0A4sDZQNBAx8DAAPiAsYCqwKSAnoCZAJOAjoCJwIVAgMC8wHjAdQBxgG4AasBnwGTAYcBfAFyAWgBXgFVAUwBQwE7ATMBLAEkAR0BFgEQAQkBAwH9APcA8gDtAOcA4gDdANkA1ADQAMwAxwDDAMAAvAC4ALQAsQCuAKoApwCkAKEAngCbAJkAlgCTAJEAjgCMAIkAhwCFAIMAgAB+AHwAegB4AHcAdQBzAHEAbwBuAGwAagBpAGcAZgBkAGMAYQBgAF8AXQBcAFsAWgBYAFcAVgBVAFQAUwBSAFAATwBOAE0ATABLAEsASgBJAEgARwBGAEUARABEAEMAQgBBAEAAQAA/AD4APQA9ADwAOwA7ADoAOQA5ADgAOAA3ADcANgA2ADUANQA0ADQAMwAzADIAMgAxADEAMAAwAC8ALwAuAC4ALQAtACwALAArACsAKgAqACkAKQApACkAKAAoACcAJwAmACYAJgAmACUAJQAkACQAJAAkACMAIwAjACMAIgAiACEAIQAhACEAIAAgACAAIAAfAB8AHwAfAB4AHgAeAB4AHQAdAB0AHQAcABwAHAAcABsAGwAxNkZyYW1lTWFuYWdlckltcGwAMTJGcmFtZU1hbmFnZXIAMjNTcGVlY2hXYXZlR2VuZXJhdG9ySW1wbAAxOVNwZWVjaFdhdmVHZW5lcmF0b3IAMTNXYXZlR2VuZXJhdG9y"),L(k,112416,"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"),L(k,115203,"QPsh+T8AAAAALUR0PgAAAICYRvg8AAAAYFHMeDsAAACAgxvwOQAAAEAgJXo4AAAAgCKC4zYAAAAAHfNpNf6CK2VHFWdAAAAAAAAAOEMAAPr+Qi52vzo7nrya9wy9vf3/////3z88VFVVVVXFP5ErF89VVaU/F9CkZxERgT8AAAAAAADIQu85+v5CLuY/JMSC/72/zj+19AzXCGusP8xQRtKrsoM/hDpOm+DXVT8="),L(k,115390,"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gryYg8kW42DvP6ySwdVQWo48hTLbA+Zp7z9LawGsWTqEPGC0AfMhc+8/Hz60ByHVgrxfm3szl3zvP8kNRzu5Kom8KaH1FEaG7z/TiDpgBLZ0PPY/i+cukO8/cXKdUezFgzyDTMf7UZrvP/CR048S94+82pCkoq+k7z99dCPimK6NvPFnji1Ir+8/CCCqQbzDjjwnWmHuG7rvPzLrqcOUK4Q8l7prNyvF7z/uhdExqWSKPEBFblt20O8/7eM75Lo3jrwUvpyt/dvvP53NkU07iXc82JCegcHn7z+JzGBBwQVTPPFxjyvC8+8/EhETFBUWFxgZGhscHR4fICERIiMkESUmJygpKissES0uLxAQMBAQEBAQEBAxMjMQNDUQEBERERERERERERERERERERERERERERERERE2ERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERNxERERE4ETk6Ozw9PhERERERERERERERERERERERERERERERERERERERERERERERERERERERERE/EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEUBBEUJDREVGR0hJShFLTE1OT1BREFJTVFVWV1hZWltcXRBeX2AQERERYWJjEBAQEBAQEBAQEBERERFkEBAQEBAQEBAQEBAQEBAQERFlEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQERFmZxAQaGkREREREREREREREREREREREREREREREWoREWsQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEWxtEBAQEBAQEBAQbhAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQb3BxchAQEBAQEBAQc3R1EBAQEBB2dxAQEBB4EBB5EBAQEBAQEBAQEBAQEBA="),L(k,117968,"//////////////////////////////////////////8AAAAAAAAAAP7//wf+//8HAAAAAAAEIAT//3////9//////////////////////////////////8P/AwAfUA=="),L(k,118072,"IAAAAAAA37xA1///+////////////7///////////////////////wP8///////////////////////////+////fwL//////wEAAAAA/7+2AP///4cHAAAA/wf//////////v/D////////////////7x/+4f+fAAD///////8A4P///////////////wMA//////8HMAT////8/x8AAP///wH/BwAAAAAAAP//3z8AAPD/+AP////////////v/9/h/8///v/vn/n///3F459ZgLDP/wMQ7of5///9bcOHGQJewP8/AO6/+////e3jvxsBAM//AB7un/n///3t458ZwLDP/wIA7Mc91hjH/8PHHYEAwP8AAO/f/f///f/j3x1gB8//AADv3/3///3v498dYEDP/wYA79/9/////+ffXfCAz/8A/Oz/f/z///svf4Bf/8D/DAD+/////3//Bz8g/wMAAAAA1vf//6///ztfIP/zAAAAAAEAAAD/AwAA//7///8f/v8D///+////HwAAAAAAAAAA////////f/n/A////////////z//////vyD///////f///////////89fz3//////z3/////PX89/3//////////Pf//////////BwAAAAD//wAA/////////////z8//v//////////////////////////////////////////////////////////n////v//B////////////8f/Af/fDwD//w8A//8PAP/fDQD////////P//8BgBD/AwAAAAD/A///////////////Af//////B///////////PwD///9//w//AcD/////Px8A//////8P////A/8DAAAAAP///w//////////f/7/HwD/A/8DgA=="),L(k,118768,"////////7//vD/8DAAAAAP//////8////////7//AwD///////9/AP/j//////8//wH//////+cAAAAAAN5vBP///////////////////////////////wAAAACA/x8A//8/P/////8/P/+q////P////////99f3B/PD/8f3B8="),L(k,118910,"AoAAAP8f"),L(k,118928,"hPwvPlC9//PgQwAA//////8B"),L(k,118982,"wP///////wMAAP//////f///////f/////////////////////8feAwA/////78g/////////4AAAP//fwB/f39/f39/f/////8AAAAAAIA="),L(k,119088,"4AAAAP4DPh/+////////////f+D+//////////////fg///////+/////////////38AAP///wcAAAAAAAD///////////////////////////////8/"),L(k,119184,"////////////////////////////////////////AAD//////////////////////x8AAAAAAAAAAP//////P/8f////DwAA//////9/8I///////////////////wAAAACA//z////////////////5////////fAAAAAAAgP+//////wAAAP///////w8A//////////8vAP8DAAD86P//////B/////8HAP///x/////////3/wCA/wP///9/////////fwD/P/8D//9//P////////9/BQAAOP//PAB+fn4Af3////////f/AP///////////////////wf/A///////////////////////////DwD//3/4//////8P/////////////////z//////////////////AwAAAAB/APjg//1/X9v/////////////////AwAAAPj///////////////8/AAD///////////z///////8AAAAAAP8P"),L(k,119582,"3/////////////////////8fAAD/A/7//wf+//8HwP////////////9//Pz8HAAAAAD/7///f///t/8//z8AAAAA////////////////////BwAAAAAAAAAA////////Hw=="),L(k,119712,"////H////////wEAAAAAAP////8A4P///wf//////wf///8//////w//PgAAAAAA/////////////////////////z//A/////8P/////w///////wD///////8P"),L(k,119824,"////////fwD//z8A/w=="),L(k,119856,"P/3/////v5H//z8A//9/AP///38AAAAAAAAAAP//NwD//z8A////AwAAAAAAAAAA/////////8AAAAAAAAAAAG/w7/7//z8AAAAAAP///x////8fAAAAAP/+//8fAAAA////////PwD//z8A//8HAP//Aw=="),L(k,119984,"////////////AQAAAAAAAP///////wcA////////BwD//////wD/Aw=="),L(k,120048,"////H4AA//8/"),L(k,120076,"//9/AP//////////PwAAAMD/AAD8////////AQAA////Af8D////////x/9wAP////9HAP//////////HgD/FwAAAAD///v///+fQAAAAAAAAAAAf73/v/8B/////////wH/A++f+f///e3jnxmB4A8="),L(k,120208,"//////////+7B/+DAAAAAP//////////swD/Aw=="),L(k,120256,"////////P38AAAA/AAAAAP////////9/EQD/AwAAAAD///////8/Af8DAAAAAAAA////5/8H/wM="),L(k,120336,"/////////wE="),L(k,120356,"////////////AwCA"),L(k,120388,"//z///////waAAAA////////538AAP///////////yAAAAAA/////////wH//f////9/fwEA/wMAAPz////8///+fw=="),L(k,120464,"f/v/////f7TLAP8Dv/3///9/ewH/Aw=="),L(k,120524,"//9/AP////////////////////////8D"),L(k,120560,"/////////////////38AAP///////////////////////////////w8="),L(k,120624,"//////9/"),L(k,120656,"//////////9/"),L(k,120688,"/////////wH///9//wM="),L(k,120714,"////PwAA////////AAAPAP8D+P//4P//"),L(k,120760,"//////////8="),L(k,120784,"////////////h/////////+A//8AAAAAAAAAAAsAAAD/////////////////////////////////////////AP///////////////////////////////////////wcA////fwAAAAAAAAcA8AD/////////////////////////////////////////////////////////////////D/////////////////8H/x//Af9D"),L(k,120976,"/////////////9///////////99k3v/r7/////////+/59/f////e1/8/f//////////////////////////////////////////////////////P/////3///f////3///f////3///f////3/////9/////f//98////////9////52wc="),L(k,121136,"//////8fgD//Qw=="),L(k,121192,"//////8P/wP///////////////////////////////8fAAAAAAAAAP//////////jwj/Aw=="),L(k,121264,"7////5b+9wqE6paqlvf3Xv/7/w/u+/8P"),L(k,121302,"////A////wP///8D"),L(k,121328,"/////////////////////////////////////////////////////////////////wABAgMEBQYHCAn/////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP///////8KCwwNDg8QERITFBUWFxgZGhscHR4fICEiI/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8="),L(k,121601,"ARcCHRgTAx4bGQsUCAQNHxYcEhoKBwwVEQkGEAUPDt4SBJUAAAAA////////////////INsBABQAAABDLlVURi04"),L(k,121696,"TENfQ1RZUEUAAAAATENfTlVNRVJJQwAATENfVElNRQAAAAAATENfQ09MTEFURQAATENfTU9ORVRBUlkATENfTUVTU0FHRVM="),L(k,121776,"Qy5VVEYtOA=="),L(k,121800,"MAUCAE5vIGVycm9yIGluZm9ybWF0aW9uAElsbGVnYWwgYnl0ZSBzZXF1ZW5jZQBEb21haW4gZXJyb3IAUmVzdWx0IG5vdCByZXByZXNlbnRhYmxlAE5vdCBhIHR0eQBQZXJtaXNzaW9uIGRlbmllZABPcGVyYXRpb24gbm90IHBlcm1pdHRlZABObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5AE5vIHN1Y2ggcHJvY2VzcwBGaWxlIGV4aXN0cwBWYWx1ZSB0b28gbGFyZ2UgZm9yIGRhdGEgdHlwZQBObyBzcGFjZSBsZWZ0IG9uIGRldmljZQBPdXQgb2YgbWVtb3J5AFJlc291cmNlIGJ1c3kASW50ZXJydXB0ZWQgc3lzdGVtIGNhbGwAUmVzb3VyY2UgdGVtcG9yYXJpbHkgdW5hdmFpbGFibGUASW52YWxpZCBzZWVrAENyb3NzLWRldmljZSBsaW5rAFJlYWQtb25seSBmaWxlIHN5c3RlbQBEaXJlY3Rvcnkgbm90IGVtcHR5AENvbm5lY3Rpb24gcmVzZXQgYnkgcGVlcgBPcGVyYXRpb24gdGltZWQgb3V0AENvbm5lY3Rpb24gcmVmdXNlZABIb3N0IGlzIGRvd24ASG9zdCBpcyB1bnJlYWNoYWJsZQBBZGRyZXNzIGluIHVzZQBCcm9rZW4gcGlwZQBJL08gZXJyb3IATm8gc3VjaCBkZXZpY2Ugb3IgYWRkcmVzcwBCbG9jayBkZXZpY2UgcmVxdWlyZWQATm8gc3VjaCBkZXZpY2UATm90IGEgZGlyZWN0b3J5AElzIGEgZGlyZWN0b3J5AFRleHQgZmlsZSBidXN5AEV4ZWMgZm9ybWF0IGVycm9yAEludmFsaWQgYXJndW1lbnQAQXJndW1lbnQgbGlzdCB0b28gbG9uZwBTeW1ib2xpYyBsaW5rIGxvb3AARmlsZW5hbWUgdG9vIGxvbmcAVG9vIG1hbnkgb3BlbiBmaWxlcyBpbiBzeXN0ZW0ATm8gZmlsZSBkZXNjcmlwdG9ycyBhdmFpbGFibGUAQmFkIGZpbGUgZGVzY3JpcHRvcgBObyBjaGlsZCBwcm9jZXNzAEJhZCBhZGRyZXNzAEZpbGUgdG9vIGxhcmdlAFRvbyBtYW55IGxpbmtzAE5vIGxvY2tzIGF2YWlsYWJsZQBSZXNvdXJjZSBkZWFkbG9jayB3b3VsZCBvY2N1cgBTdGF0ZSBub3QgcmVjb3ZlcmFibGUAUHJldmlvdXMgb3duZXIgZGllZABPcGVyYXRpb24gY2FuY2VsZWQARnVuY3Rpb24gbm90IGltcGxlbWVudGVkAE5vIG1lc3NhZ2Ugb2YgZGVzaXJlZCB0eXBlAElkZW50aWZpZXIgcmVtb3ZlZABEZXZpY2Ugbm90IGEgc3RyZWFtAE5vIGRhdGEgYXZhaWxhYmxlAERldmljZSB0aW1lb3V0AE91dCBvZiBzdHJlYW1zIHJlc291cmNlcwBMaW5rIGhhcyBiZWVuIHNldmVyZWQAUHJvdG9jb2wgZXJyb3IAQmFkIG1lc3NhZ2UARmlsZSBkZXNjcmlwdG9yIGluIGJhZCBzdGF0ZQBOb3QgYSBzb2NrZXQARGVzdGluYXRpb24gYWRkcmVzcyByZXF1aXJlZABNZXNzYWdlIHRvbyBsYXJnZQBQcm90b2NvbCB3cm9uZyB0eXBlIGZvciBzb2NrZXQAUHJvdG9jb2wgbm90IGF2YWlsYWJsZQBQcm90b2NvbCBub3Qgc3VwcG9ydGVkAFNvY2tldCB0eXBlIG5vdCBzdXBwb3J0ZWQATm90IHN1cHBvcnRlZABQcm90b2NvbCBmYW1pbHkgbm90IHN1cHBvcnRlZABBZGRyZXNzIGZhbWlseSBub3Qgc3VwcG9ydGVkIGJ5IHByb3RvY29sAEFkZHJlc3Mgbm90IGF2YWlsYWJsZQBOZXR3b3JrIGlzIGRvd24ATmV0d29yayB1bnJlYWNoYWJsZQBDb25uZWN0aW9uIHJlc2V0IGJ5IG5ldHdvcmsAQ29ubmVjdGlvbiBhYm9ydGVkAE5vIGJ1ZmZlciBzcGFjZSBhdmFpbGFibGUAU29ja2V0IGlzIGNvbm5lY3RlZABTb2NrZXQgbm90IGNvbm5lY3RlZABDYW5ub3Qgc2VuZCBhZnRlciBzb2NrZXQgc2h1dGRvd24AT3BlcmF0aW9uIGFscmVhZHkgaW4gcHJvZ3Jlc3MAT3BlcmF0aW9uIGluIHByb2dyZXNzAFN0YWxlIGZpbGUgaGFuZGxlAFJlbW90ZSBJL08gZXJyb3IAUXVvdGEgZXhjZWVkZWQATm8gbWVkaXVtIGZvdW5kAFdyb25nIG1lZGl1bSB0eXBlAE11bHRpaG9wIGF0dGVtcHRlZABSZXF1aXJlZCBrZXkgbm90IGF2YWlsYWJsZQBLZXkgaGFzIGV4cGlyZWQAS2V5IGhhcyBiZWVuIHJldm9rZWQAS2V5IHdhcyByZWplY3RlZCBieSBzZXJ2aWNl"),L(k,123730,"pQJbAPABtQWMBSUBgwYdA5QE/wDHAzEDCwa8AY8BfwPKBCsA2gavAEIDTgPcAQ4EFQChBg0BlAILAjgGZAK8Av8CXQPnBAsHzwLLBe8F2wXhAh4GRQKFAIICbANvBPEA8wMYBdkA2gNMBlQCewGdA70EAABRABUCuwCzA20A/wGFBC8F+QQ4AGUBRgGfALcGqAFzAlMB"),L(k,123928,"IQQAAAAAAAAAAC8C"),L(k,123960,"NQRHBFYE"),L(k,123982,"oAQ="),L(k,124002,"RgVgBW4FYQYAAM8BAAAAAAAAAADJBukG+QYeBzkHSQdeBw=="),L(k,124048,"GQAKABkZGQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAAZABEKGRkZAwoHAAEACQsYAAAJBgsAAAsABhkAAAAZGRk="),L(k,124129,"DgAAAAAAAAAAGQAKDRkZGQANAAACAAkOAAAACQAOAAAO"),L(k,124187,"DA=="),L(k,124199,"EwAAAAATAAAAAAkMAAAAAAAMAAAM"),L(k,124245,"EA=="),L(k,124257,"DwAAAAQPAAAAAAkQAAAAAAAQAAAQ"),L(k,124303,"Eg=="),L(k,124315,"EQAAAAARAAAAAAkSAAAAAAASAAASAAAaAAAAGhoa"),L(k,124370,"GgAAABoaGgAAAAAAAAk="),L(k,124419,"FA=="),L(k,124431,"FwAAAAAXAAAAAAkUAAAAAAAUAAAU"),L(k,124477,"Fg=="),L(k,124489,"FQAAAAAVAAAAAAkWAAAAAAAWAAAWAAAwMTIzNDU2Nzg5QUJDREVG"),L(k,124564,"EQ=="),L(k,124604,"//////////8="),L(k,124672,"0XSeAFedvSqAcFIP//8+JwoAAABkAAAA6AMAABAnAACghgEAQEIPAICWmAAA4fUFGAAAADUAAABxAAAAa////877//+Sv///AAAAAAAAAAACAADAAwAAwAQAAMAFAADABgAAwAcAAMAIAADACQAAwAoAAMALAADADAAAwA0AAMAOAADADwAAwBAAAMARAADAEgAAwBMAAMAUAADAFQAAwBYAAMAXAADAGAAAwBkAAMAaAADAGwAAwBwAAMAdAADAHgAAwB8AAMAAAACzAQAAwwIAAMMDAADDBAAAwwUAAMMGAADDBwAAwwgAAMMJAADDCgAAwwsAAMMMAADDDQAA0w4AAMMPAADDAAAMuwEADMMCAAzDAwAMwwQADNsAAAAAIAAAAAkAAAAKAAAADQAAAAsAAAAMAAAAhQAAAAAgAAABIAAAAiAAAAMgAAAEIAAABSAAAAYgAAAIIAAACSAAAAogAAAoIAAAKSAAAF8gAAAAMAAAAAAAAE4xMF9fY3h4YWJpdjExNl9fc2hpbV90eXBlX2luZm9FAAAAAGjpAQB46AEAZOoBAE4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRQAAAGjpAQCo6AEAnOgBAE4xMF9fY3h4YWJpdjExN19fcGJhc2VfdHlwZV9pbmZvRQAAAGjpAQDY6AEAnOgBAE4xMF9fY3h4YWJpdjExOV9fcG9pbnRlcl90eXBlX2luZm9FAGjpAQAI6QEA/OgBAAAAAADM6AEAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAAAAAAsOkBABQAAAAcAAAAFgAAABcAAAAYAAAAHQAAAB4AAAAfAAAATjEwX19jeHhhYml2MTIwX19zaV9jbGFzc190eXBlX2luZm9FAAAAAGjpAQCI6QEAzOgBAAAAAAAg6gEACQAAACAAAAAhAAAAAAAAAEjqAQAJAAAAIgAAACMAAAAAAAAACOoBAAkAAAAkAAAAJQAAAFN0OWV4Y2VwdGlvbgAAAABA6QEA+OkBAFN0OWJhZF9hbGxvYwAAAABo6QEAEOoBAAjqAQBTdDIwYmFkX2FycmF5X25ld19sZW5ndGgAAAAAaOkBACzqAQAg6gEAU3Q5dHlwZV9pbmZvAAAAAEDpAQBU6gE="),L(k,125552,"wLEAAMCyAADAswAAwLQAAMC1AADAtgAAwLcAAMC4AADAuQAAwLoAAMC7AADAvAAAwL0AAMC+AADAvwAAwMAAAMDBAADAwgAAwMMAAMDEAADAxQAAwMIAAMDGAADAxwAAwMgAAMDJAADAygAAwMsAAMDMAADAzQAAwM4AAMDPAADA0AAAwNEAAMDSAADA0wAAwNQAAMDVAADA1gAAwNcAAMDYAADA2QAAwNIAAMDaAADA2wAAwNwAAMDdAADA3gAAwN8AAMDgAADA4QAAwNgAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADA4gAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwOMAAMDkAADAwgAAwMIAAMDCAADA5QAAwMIAAMDmAADA5wAAwOgAAMDpAADA6gAAwOsAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADA7AAAwO0AAMDCAADA7gAAwO8AAMDCAADA8AAAwPEAAMDyAADA8wAAwPQAAMD1AADA9gAAwPcAAMD4AADAwgAAwPkAAMD6AADA+wAAwPwAAMD9AADA/gAAwP8AAMAAAQDAAQEAwAIBAMADAQDABAEAwAUBAMAGAQDABwEAwAgBAMAJAQDACgEAwAsBAMAMAQDACwEAwA0BAMAOAQDADwEAwAsBAMDCAADAwgAAwMIAAMAQAQDAEQEAwBIBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDAwgAAwMIAAMDCAADAwgAAwBMBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMDCAADAwgAAwBQBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMDCAADAwgAAwBUBAMAWAQDACwEAwAsBAMAXAQDAGAEAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAGQEAwMIAAMDCAADAGgEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMDCAADAGwEAwBwBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMAdAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwB4BAMAfAQDAIAEAwCEBAMAiAQDAIwEAwCQBAMAlAQDA2AAAwNgAAMAmAQDACwEAwAsBAMALAQDACwEAwAsBAMAnAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwCgBAMApAQDACwEAwAsBAMAqAQDACwEAwCsBAMALAQDALAEAwC0BAMAuAQDALwEAwNgAAMDYAADAMAEAwDEBAMAyAQDAMwEAwDQBAMALAQDACwEAwAsBAMALAQDACwEAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMA1AQDAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwDYBAMA3AQDAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAOAEAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMA5AQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDAwgAAwMIAAMA6AQDAOwEAwDwB"),L(k,128496,"oVcBAEEAAADdVwEAQgAAACZYAQBDAAAAa1gBAEQAAADSWAEARQAAABNZAQBGAAAAfFkBAEcAAACEWQEASAAAADBaAQBJAAAAZ1oBAEoAAADuWgEASwAAAC5bAQBMAAAAcVsBAE0AAADZWwEATgAAAGtcAQBPAAAAh1wBAAgAAADcXAEACQAAAB9dAQAKAAAAZ10BAAsAAACVXQEADAAAAMpdAQANAAAAD14BAA4AAAAqXgEADwAAAIZeAQAPAAAAvV4BABAAAABDXwEAEQAAAH1fAQASAAAAq18BABMAAADZXwEAFAAAAAVgAQAVAAAAMGABABcAAABgYAEAGAAAAHlgAQAZAAAAtWABABsAAADdYAEAHAAAAPBgAQAdAAAAI2EBACAAAABEYQEAIQAAAG9hAQAiAAAAnWEBACMAAADRYQEAJAAAAPNhAQAlAAAAFWIBACYAAABZYgEAKAAAAH1iAQApAAAArmIBACoAAADoYgEAKwAAADVjAQAtAAAAb2MBAC4AAACnYwEALwAAAOZjAQAwAAAAeGQBADEAAACdZAEAMgAAAM9kAQAzAAAA/mQBAGQAAABgZQEAyAAAAN1lAQDJAAAAAAAAAP////8iZgEAAQAAAD5mAQACAAAABVUBAAMAAADNZgEAEQAAADRnAQASAAAAg2cBABMAAAD7ZwEAFAAAADtoAQAVAAAATGgBABYAAAB0aAEAEQAAALdoAQAhAAAAymgBACIAAAD+aAEAIwAAAEtpAQAkAAAAaWkBACUAAACfaQEAJgAAAOJpAQAhAAAAAAAAAP////8AAAAAAAAAACYAAAAAAAAAAQAAAJByAQABAAAAkHMBAAEAAACQdAEAAQAAAJB1AQABAAAAkHYBAAEAAACQdwEAAQAAAJB4AQABAAAAkHkBAAEAAACQegEAAQAAAJB7AQABAAAAkHwBAAEAAACQfQEAAQAAAJB+AQABAAAAkH8BAAEAAACQgAEAAQAAAJCBAQABAAAAkIIBAAUAAAAAAAAABg=="),L(k,129280,"oIMBAKCDAQAghAEAIIQBAKCEAQAghQEAoIUBACCGAQCghgEAoIYBACCHAQAghwEAoIcBAKCHAQAgiAEAIIgBAKCIAQCgiAEAIIkBACCJAQAuOU4ycIoBAAMHBQCQigEALjlOLnCKAQADBwUAkIoBAC45Ti5wigEAAwcFAJCKAQAuOVoycIoBAAMJBQCVigEALjlOMnCKAQADBwUAkIoBAC45SjdwigEABAcFAJqKAQAuOUo3cIoBAAQHBQCaigEALjlKN3CKAQAEBwUAmooBAC45TjJwigEAAwcFAJCKAQAuOU4ucIoBAAMHBQCQigEALjlOMnCKAQADBwUAkIoBACIpKSBwigEAAwcFAJqKAQAuOTcycIoBAAMHBQCaigEAo1MBABABAAAAVAEADAEAANJUAQARAQAAClUBACMAAAB/VQEAGwAAADRWAQAVAAAAxVYBAAABAAABVwEAAgEAAE1XAQADAQAAvVcBAAQBAAD7VwEABQEAAE5YAQATAAAAkVgBAB4AAADVWAEAFwAAAF9ZAQAaAAAAkVkBABkAAAD0WQEAGAAAADhaAQAdAAAAzloBABwAAAAPWwEAFgAAADdbAQAU"),L(k,129744,"Q1gBABABAACIWAEADAEAAPNYAQARAQAAM1kBACMAAACHWQEAGwAAAOBZAQAVAAAAQloBAAABAACcWgEAAgEAAABbAQADAQAAT1sBAAQBAACnWwEABQEAAEhcAQATAAAAc1wBAB4AAADEXAEAFwAAABVdAQAaAAAAXV0BABkAAACIXQEAGAAAANJdAQAdAAAABF4BABwAAAAvXgEAFgAAAF9eAQAU"),L(k,129920,"u08BAAEAAABcUAEAAAAAAM9QAQAAAAAAOFIBAAAAAABBUwEAAAAAAIFTAQAAAAAA+1MBAAAAAADnVAEAAAAAACVVAQAAAAAAiVUBAAAAAABUVgEAAAAAAPxWAQAAAAAADlcBAAAAAABIVwEAAAAAAKdXAQAAAAAA9lcBAAAAAAA3WAEAAAAAAKNYAQAAAAAA6FgBAAAAAAAuWQEAAAAAAH9ZAQAAAAAA61kBAAAAAAD/////g00BAIIAAAB5AAAAdg=="),L(k,130128,"4I8BAOCPAQBQkAEAwJABAMCQAQDAkAEAAQAAANQKAwCMCgMAROcC"),L(k,130176,"I0sBAAEAAAAAAAAA/////1dMAQABAAAA+0wBAAIAAADGTQEAAwAAAAAAAAD/////Vk4BAAAAAADSTgEAAQAAALJPAQACAAAAGFABABQAAAAAAAAA/////wAAAAAAAAAAt1ABABIAAABNUgEAFAAAAN5SAQAkAAAAhlMBAEAAAAARVAEAwQAAAAAAAAD/////q1QBAAEAAAAAAAAA/////1dMAQAAAAAAGVUBAAEAAACRVQEAAgAAAENWAQADAAAA31YBAAQAAAAgVwEABQAAAAAAAAD/////AAAAAAAAAABXTAEAAQAAAIlXAQACAAAAr1cBAAMAAADfVgEABAAAACBXAQAFAAAAAAAAAP////8AAAAAClgBADxYAQAYUAEAqFgB"),L(k,130480,"8l8BAAEAAAA5YAEAAgAAAFhgAQADAAAAgWABAAQAAACwYAEABQAAANNgAQAGAAAABWEBAAcAAAAqYQEACAAAAFFhAQAJAAAAdmEBAAoAAACQYQEACwAAAMNhAQAMAAAA+WEBAA0AAAAuYgEADgAAAE5iAQAPAAAAhmIBAA8AAADUYgEADwAAABljAQAPAAAAP2MBAA8AAACkYwEABwAAANpjAQAHAAAAO2QBAAcAAACEZAEABwAAAK9kAQAHAAAAw2QBAA4AAADnZAEADgAAAAplAQAQAAAA9GUBABAAAAArZgEAEAAAAN9WAQAQAAAAbmYBABAAAADBZgEAEA=="),L(k,130752,"f20BAD4AAACjbQEAPOAAAM1tAQAmAAAA1G0BACIAAAA6bgEAIAAAAHhuAQAnAAAAAAAAAP////8AAAAAAAAAAGNnAQBkAAAAxWcBAAAAAAAJaAEAHgAAAEJoAQBBAAAAQ1YBAGQAAACGaAEAlgAAAKVoAQDmAAAAAAAAAP////9jZwEAZAAAAL5oAQA8AAAA6WgBAFAAAABDVgEAZAAAABJpAQB9AAAAUmkBAKAAAAAAAAAA/////wAAAAAAAAAAY2cBAGQAAACUaQEARgAAAN5pAQBVAAAAQ1YBAGQAAAAoagEAbgAAAGdqAQB4AAAAAAAAAP////8AAAAAAAAAAGNnAQBkAAAAlGkBABQAAADeaQEAMgAAAENWAQBkAAAAKGoBAIwAAABnagEAtAAAAAAAAAD/////"),L(k,131076,"QP8BAAD/AQCA/wEAwP8B"),L(k,131104,"wmoBACDgAAALawEACeAAAEFrAQBf4AAAe2sBACI="),L(k,131152,"q2sBAAEAAAC8awEAAgAAAA1sAQAD"),L(k,131184,"+EwBAMJNAQBTTgEACU8BAOVPAQBkUAEA2lABAGdSAQDyUgEA1FMBAGFUAQ=="),L(k,131236,"iFIBADlTAQAAAAAAnlMBAGRUAQDwVAEAL1UBAJpVAQBQVgE="),L(k,131280,"Y1IBAIADAACAA/8DbGUAAAcAAAA0UwEAIAQAAAAELwUAAAAAAAAAAHNTAQAwBQAAMAWPBXloAAAEAAAAG1QBAJAFAACQBf8FAAAAAAAAAAC3VAEAAAYAAAAG/wYAAAAAAAAAACpVAQAABwAAAAdPBwAAAAAAAAAAllUBAAAJAAAACX8JaWgAAAQAAAA/VgEAgAkAAIAJ/wluYgAABAAAANZWAQAACgAAAAp/CmFwAAAEAAAAClcBAIAKAACACv8KdWcAAAQAAABfVwEAAAsAAAALfwsAAAAAAAAAAM5XAQCACwAAgAv/C2F0AAAEAAAAD1gBAAAMAAAADH8MZXQAAAAAAAAsWAEAgAwAAIAM/wxuawAABAAAAJ9YAQAADQAAAA1/DWxtAAAEAAAA5FgBAIANAACADf8NaXMAAAQAAAA8WQEAAA4AAAAOfw4AAAAAAAAAAJtZAQCADgAAgA7/DgAAAAAAAAAA8FkBAAAPAAAAD/8PAAAAAAAAAAA0WgEAABAAAAAQnxAAAAAAAAAAANlaAQCgEAAAoBD/EGFrAAAEAAAAGFsBAAARAAAAEf8Rb2sAAAQAAABKWwEAABIAAAASnxMAAAAAAAAAALlbAQAAKAAAACj/KAAAAAAQAAAAWlwBAEAwAABAMP8wAAAAAAgAAACDXAEAADEAAAAx/58AAAAACAAAABhbAQAApwAAAKf/129rAAAM"),L(k,131840,"WAIAAKoAAACwBAAAhwAAANAHAABuAAAAuAsAAG4AAAD/////"),L(k,131888,"qAsD"),L(k,131904,"mF4BAAEAAAA4XwEAAgAAAGFfAQADAAAAnV8BAAYAAADCXwEACQAAAPhfAQAKAAAAJ2ABAAQAAABNYAEABQAAAI1gAQAkAAAAq2ABAAsAAADVYAEADAAAAPZgAQANAAAAFmEBAA4AAABMYQEADwAAAGdhAQAQAAAAlmEBABEAAAC7YQEAEgAAAAJiAQAfAAAAG2IBACUAAABIYgEAIAAAAJJiAQAhAAAAzmIBACIAAADwYgEABwAAAC5jAQAI"),L(k,132112,"jmMBAAEAAAC8YwEAAgAAAAAAAAABAAAAFJwBACCcAQAsnAEAPAAAABo="),L(k,132163,"AgMFCAsOEhYbICUrMTc+RUxTWmJpcXmAiJCYn6autbzCyc/V2uDk6e3w9Pb5+/z9/f39/Pv59vTw7enk4NrVz8nCvLWupp+YkIiAeXFpYlpTTEU+NzErJSAbFhIOCwgFAwI="),L(k,132288,"QAAAAAABAAAAAAAA7AQCACcAAAAoAAAAKQAAACoAAAArAAAAQOkBAMO2AQBo6QEAsLYBAOQEAgAAAAAAJAUCACwAAAAtAAAALgAAAC8AAABA6QEAArcBAGjpAQDstgEAEAUCAGjpAQDStgEAGAUCAAU="),L(k,132412,"DQ=="),L(k,132436,"CwAAAAoAAADoeAM="),L(k,132460,"Ag=="),L(k,132476,"//////////8="),L(k,132544,"MAUCAAAAAAAF"),L(k,132564,"MA=="),L(k,132588,"CwAAADEAAAD4eAMAAAQ="),L(k,132612,"AQ=="),L(k,132628,"/////wo="),L(k,132696,"yAUCAAB/BA==");var dn,ct=(dn=[null,function(A){var t,r=0;return r=e[(A|=0)>>2],e[A>>2]=r+1,r=255&(t=u[0|r]),(0|t)<0&&(r=M[(e[A+12>>2]+(r<<1)|0)-256>>1]),0|r},Jn,function(A){var t,r;return t=e[(A|=0)>>2],r=e[t>>2],e[A>>2]=t+4,0|r},function(A){var t=0,r=0;return t=e[(A|=0)>>2],(0|(r=fA(A)))==65533&&(e[A>>2]=t+1,e[A+8>>2]=1,r=255&(t=u[0|t]),(0|t)>=0||(r=M[(e[A+12>>2]+(r<<1)|0)-256>>1])),0|r},fA,function(A){var t,r,a=0;return(a=e[4+(A|=0)>>2])>>>0<=(r=(t=e[A>>2])+1|0)>>>0?(e[A>>2]=a,65533):(e[A>>2]=r,a=l[0|t],e[A>>2]=t+2,a|l[t+1|0]<<8)},function(A,t){var r,a,s;return t|=0,A=e[(A|=0)>>2],r=e[A+4>>2],a=e[t>>2],(t=yr(r+1|0,(s=e[a+4>>2])+1|0))||(t=u[0|r]-u[0|s]|0)||(t=yr(e[A>>2],e[a>>2])),0|t},function(A,t){var r;return A|=0,t=e[(t|=0)>>2],r=e[A>>2],(A=e[t+16>>2]-e[r+16>>2]|0)||(A=yr(e[r>>2],e[t>>2])),0|A},ji,function(A,t,r,a){var s;return t|=0,r|=0,a|=0,J=s=J-16|0,(A=0|EA(e[60+(A|=0)>>2],0|t,0|r,255&a,s+8|0))?(e[56798]=A,A=-1):A=0,J=s+16|0,$=A?-1:e[s+12>>2],0|(A?-1:e[s+8>>2])},function(A,t,r){t|=0,r|=0;var a,s=0,n=0,o=0,c=0,f=0,m=0;J=a=J-32|0,s=e[28+(A|=0)>>2],e[a+16>>2]=s,o=e[A+20>>2],e[a+28>>2]=r,e[a+24>>2]=t,t=o-s|0,e[a+20>>2]=t,o=t+r|0,f=2;e:{A:{t=a+16|0,(s=0|Ge(e[A+60>>2],0|t,2,a+12|0))?(e[56798]=s,s=-1):s=0;r:{if(s)s=t;else for(;;){if((0|(n=e[a+12>>2]))==(0|o))break r;if((0|n)<0){s=t;break A}if(c=n-((m=(c=e[t+4>>2])>>>0>>0)?c:0)|0,e[(s=(m<<3)+t|0)>>2]=c+e[s>>2],e[(t=(m?12:4)+t|0)>>2]=e[t>>2]-c,o=o-n|0,t=s,f=f-m|0,(n=0|Ge(e[A+60>>2],0|t,0|f,a+12|0))?(e[56798]=n,n=-1):n=0,n)break}if((0|o)!=-1)break A}t=e[A+44>>2],e[A+28>>2]=t,e[A+20>>2]=t,e[A+16>>2]=t+e[A+48>>2],A=r;break e}e[A+28>>2]=0,e[A+16>>2]=0,e[A+20>>2]=0,e[A>>2]=32|e[A>>2],A=0,(0|f)!=2&&(A=r-e[s+4>>2]|0)}return J=a+32|0,0|A},function(A,t,r){A|=0,t|=0,r|=0;var a,s=0,n=0,o=0;J=a=J-32|0,e[a+16>>2]=t,s=e[A+48>>2],e[a+20>>2]=r-!!(0|s),n=e[A+44>>2],e[a+28>>2]=s,e[a+24>>2]=n;e:{A:{if((s=0|SA(e[A+60>>2],a+16|0,2,a+12|0))?(e[56798]=s,s=-1):s=0,s)t=32;else{if((0|(s=e[a+12>>2]))>0)break A;t=s?32:16}e[A>>2]=t|e[A>>2];break e}o=s,(n=e[a+20>>2])>>>0>=s>>>0||(s=e[A+44>>2],e[A+4>>2]=s,e[A+8>>2]=s+(o-n|0),e[A+48>>2]&&(e[A+4>>2]=s+1,u[(t+r|0)-1|0]=l[0|s]),o=r)}return J=a+32|0,0|o},function(A){return 0|GA(e[60+(A|=0)>>2])},Gs,function(A,t,r,a,s,n){A|=0,t=+t,r|=0,a|=0,s|=0,n|=0;var o,c=0,f=0,m=0,p=0,I=0,v=0,T=0,O=0,Z=0,ee=0,ce=0,he=0,ye=0,Qe=0,We=0,Ke=0,rA=0,cA=0;J=o=J-560|0,e[o+44>>2]=0,be(+t),c=0|X(1),X(0),(0|c)<0?(he=1,rA=84997,be(+(t=-t)),c=0|X(1),X(0)):2048&s?(he=1,rA=85e3):(rA=(he=1&s)?85003:84998,cA=!he);e:if(2146435072&~c){Qe=o+16|0;A:{r:{s:{if(t=xi(t,o+44|0),(t+=t)!=0){if(c=e[o+44>>2],e[o+44>>2]=c-1,(0|(We=32|n))!=97)break s;break A}if((0|(We=32|n))==97)break A;I=e[o+44>>2],v=(0|a)<0?6:a;break r}I=c-29|0,e[o+44>>2]=I,t*=268435456,v=(0|a)<0?6:a}for(f=ee=(o+48|0)+((0|I)>=0?288:0)|0;a=t<4294967296&t>=0?~~t>>>0:0,e[f>>2]=a,f=f+4|0,(t=1e9*(t-+(a>>>0)))!=0;);if((0|I)<=0)a=I,c=f,m=ee;else for(m=ee,a=I;;){if(O=(0|a)>=29?29:a,!(m>>>0>(c=f-4|0)>>>0)){for(a=0;p=e[c>>2],Ke=a,a=31&O,(63&O)>>>0>=32?(T=p<>>32-a,a=p<>>0>Ke>>>0?p+1|0:p,1e9),e[c>>2]=Ke-It(a,$,1e9,0),m>>>0<=(c=c-4|0)>>>0;);a&&(e[(m=m-4|0)>>2]=a)}for(;m>>>0<(c=f)>>>0&&!e[(f=c-4|0)>>2];);if(a=e[o+44>>2]-O|0,e[o+44>>2]=a,f=c,!((0|a)>0))break}if((0|a)<0)for(ye=1+((v+25>>>0)/9|0)|0,Z=(0|We)==102;;){if(T=(0|(a=0-a|0))>=9?9:a,c>>>0<=m>>>0)f=e[m>>2];else{for(O=1e9>>>T|0,p=~(-1<>2],e[f>>2]=Ke+(a>>>T|0),a=P(O,a&p),(f=f+4|0)>>>0>>0;);f=e[m>>2],a&&(e[c>>2]=a,c=c+4|0)}if(a=T+e[o+44>>2]|0,e[o+44>>2]=a,m=(!f<<2)+m|0,c=c-(f=Z?ee:m)>>2>(0|ye)?f+(ye<<2)|0:c,!((0|a)<0))break}if(a=0,!(c>>>0<=m>>>0||(a=P(ee-m>>2,9),f=10,(p=e[m>>2])>>>0<10)))for(;a=a+1|0,p>>>0>=(f=P(f,10))>>>0;);if((0|(f=(v-((0|We)!=102?a:0)|0)-((0|We)==103&!!(0|v))|0))<(P(c-ee>>2,9)-9|0)){if(I=((((0|I)<0?4:292)+o|0)+((p=(0|(O=f+9216|0))/9|0)<<2)|0)-4048|0,f=10,(0|(T=O-P(p,9)|0))<=7)for(;f=P(f,10),(0|(T=T+1|0))!=8;);if(!(!(Z=(O=e[I>>2])-P(f,ye=(O>>>0)/(f>>>0)|0)|0)&(0|(p=I+4|0))==(0|c))&&(!(1&ye)&&(t=9007199254740992,!(1&u[I-4|0])|(0|f)!=1e9|m>>>0>=I>>>0)||(t=9007199254740994),ce=(0|c)==(0|p)?1:1.5,ce=(p=f>>>1|0)>>>0>Z>>>0?.5:(0|p)==(0|Z)?ce:1.5,l[0|rA]!=45|cA||(ce=-ce,t=-t),p=O-Z|0,e[I>>2]=p,t+ce!=t)){if(a=f+p|0,e[I>>2]=a,a>>>0>=1e9)for(;e[I>>2]=0,(I=I-4|0)>>>0>>0&&(e[(m=m-4|0)>>2]=0),a=e[I>>2]+1|0,e[I>>2]=a,a>>>0>999999999;);if(a=P(ee-m>>2,9),f=10,!((p=e[m>>2])>>>0<10))for(;a=a+1|0,p>>>0>=(f=P(f,10))>>>0;);}c=c>>>0>(f=I+4|0)>>>0?f:c}for(;p=c,!(O=c>>>0<=m>>>0)&&!e[(c=p-4|0)>>2];);if((0|We)==103){if(v=((c=(0|(f=v||1))>(0|a)&(0|a)>-5)?~a:-1)+f|0,n=(c?-1:-2)+n|0,!(I=8&s)){if(c=-9,!O&&(I=e[p-4>>2])&&(T=10,c=0,!((I>>>0)%10|0))){for(;f=c,c=c+1|0,!((I>>>0)%((T=P(T,10))>>>0)|0););c=~f}f=P(p-ee>>2,9),(-33&n)!=70?(I=0,v=(0|(c=(0|(c=((a+f|0)+c|0)-9|0))>0?c:0))>(0|v)?v:c):(I=0,v=(0|(c=(0|(c=(c+f|0)-9|0))>0?c:0))>(0|v)?v:c)}}else I=8&s;if(T=-1,(0|((O=I|v)?2147483645:2147483646))<(0|v))break e;if(Z=1+(!!(0|O)+v|0)|0,(0|(f=-33&n))!=70){if((Qe-(c=fs(((c=a>>31)^a)-c|0,0,Qe))|0)<=1)for(;u[0|(c=c-1|0)]=48,(Qe-c|0)<2;);if(u[0|(ye=c-2|0)]=n,u[c-1|0]=(0|a)<0?45:43,(0|(c=Qe-ye|0))>(2147483647^Z))break e}else{if((2147483647^Z)<(0|a))break e;c=(0|a)>0?a:0}if((0|(a=c+Z|0))>(2147483647^he))break e;Aa(A,32,r,Z=a+he|0,s),Zr(A,rA,he),Aa(A,48,r,Z,65536^s);r:{s:{n:{if((0|f)==70){for(a=8|(n=o+16|0),I=9|n,m=f=m>>>0>ee>>>0?ee:m;;){c=fs(e[m>>2],0,I);c:if((0|f)==(0|m))(0|c)==(0|I)&&(u[o+24|0]=48,c=a);else{if(o+16>>>0>=c>>>0)break c;for(;u[0|(c=c-1|0)]=48,o+16>>>0>>0;);}if(Zr(A,c,I-c|0),!(ee>>>0>=(m=m+4|0)>>>0))break}if(O&&Zr(A,85998,1),(0|v)<=0|m>>>0>=p>>>0)break n;for(;;){if((c=fs(e[m>>2],0,I))>>>0>o+16>>>0)for(;u[0|(c=c-1|0)]=48,o+16>>>0>>0;);if(Zr(A,c,(0|v)>=9?9:v),c=v-9|0,p>>>0<=(m=m+4|0)>>>0)break s;if(a=(0|v)>9,v=c,!a)break}break s}c:if(!((0|v)<0))for(ee=m>>>0

>>0?p:m+4|0,a=8|(n=o+16|0),p=9|n,f=m;;){(0|p)==(0|(c=fs(e[f>>2],0,p)))&&(u[o+24|0]=48,c=a);o:if((0|f)==(0|m))Zr(A,c,1),c=c+1|0,I|v&&Zr(A,85998,1);else{if(o+16>>>0>=c>>>0)break o;for(;u[0|(c=c-1|0)]=48,o+16>>>0>>0;);}if(Zr(A,c,(0|(n=p-c|0))>(0|v)?v:n),v=v-n|0,ee>>>0<=(f=f+4|0)>>>0)break c;if(!((0|v)>=0))break}Aa(A,48,v+18|0,18,0),Zr(A,ye,Qe-ye|0);break r}c=v}Aa(A,48,c+9|0,9,0)}Aa(A,32,r,Z,8192^s),T=(0|r)<(0|Z)?Z:r;break e}if(I=(n<<26>>31&9)+rA|0,!(a>>>0>11)){for(c=12-a|0,ce=16;ce*=16,c=c-1|0;);t=l[0|I]!=45?t+ce-ce:-(ce+(-t-ce))}for((0|Qe)==(0|(c=fs(((c=e[o+44>>2])^(f=c>>31))-f|0,0,Qe)))&&(u[o+15|0]=48,c=o+15|0),ee=2|he,m=32&n,f=e[o+44>>2],u[0|(v=c-2|0)]=n+15,u[c-1|0]=(0|f)<0?45:43,c=8&s,f=o+16|0;n=f,p=Ne(t)<2147483648?~~t:-2147483648,u[0|f]=m|l[p+124512|0],!((0|a)>0|c)&(t=16*(t-+(0|p)))==0|((f=n+1|0)-(o+16|0)|0)!=1||(u[n+1|0]=46,f=n+2|0),t!=0;);T=-1,(2147483645-(n=(c=Qe-v|0)+ee|0)|0)<(0|a)||(Aa(A,32,r,n=(a=!a||((m=f-(o+16|0)|0)-2|0)>=(0|a)?m=f-(o+16|0)|0:a+2|0)+n|0,s),Zr(A,I,ee),Aa(A,48,r,n,65536^s),Zr(A,o+16|0,m),Aa(A,48,a-m|0,0,0),Zr(A,v,c),Aa(A,32,r,n,8192^s),T=(0|r)<(0|n)?n:r)}else Aa(A,32,r,c=he+3|0,-65537&s),Zr(A,rA,he),a=32&n,Zr(A,t!=t?a?85596:85774:a?85247:85460,3),Aa(A,32,r,c,8192^s),T=(0|r)<(0|c)?c:r;return J=o+560|0,0|T},function(A,t){var r;A|=0,r=t|=0,t=e[t>>2]+7&-8,e[r>>2]=t+16,D[A>>3]=Es(e[t>>2],e[t+4>>2],e[t+8>>2],e[t+12>>2])},function(A,t,r){t|=0,r|=0;var a,s,n=0,o=0;return a=e[84+(A|=0)>>2],o=e[a+4>>2],s=e[A+28>>2],(n=(n=e[A+20>>2]-s|0)>>>0>o>>>0?o:n)&&(wt(e[a>>2],s,n),e[a>>2]=n+e[a>>2],o=e[a+4>>2]-n|0,e[a+4>>2]=o),n=e[a>>2],(o=r>>>0>o>>>0?o:r)&&(wt(n,t,o),n=o+e[a>>2]|0,e[a>>2]=n,e[a+4>>2]=e[a+4>>2]-o),u[0|n]=0,t=e[A+44>>2],e[A+28>>2]=t,e[A+20>>2]=t,0|r},function(A,t,r){r|=0;var a,s,n=0;return wt(t|=0,a=e[84+(A|=0)>>2],r=r>>>0>(n=(s=rn(a,0,n=r+256|0))?s-a|0:n)>>>0?n:r),t=a+n|0,e[A+84>>2]=t,e[A+8>>2]=t,e[A+4>>2]=r+a,0|r},function(A,t,r){t|=0,r|=0;var a,s=0,n=0,o=0;s=e[84+(A|=0)>>2],a=e[s>>2]?s:84412,s=0;e:if(e[A+48>>2])for(;;){if(!(n=e[(s<<2)+a>>2]))break e;if(u[e[A+44>>2]+s|0]=(0|n)>=128?64:n,!((s=s+1|0)>>>0>2]))break}return n=e[A+44>>2],e[A+4>>2]=n,e[A+84>>2]=(s<<2)+a,e[A+8>>2]=s+n,!r|!s||(e[A+4>>2]=n+1,u[0|t]=l[0|n],o=1),0|o},ji,Ks,D0,D0,function(A,t,r){r|=0;var a,s=0;return J=a=J+-64|0,s=1,_a(A|=0,t|=0,0)||(s=0,t&&(s=0,(t=sr(t,125132))&&(jA(4|(s=a+8|0),0,52),e[a+56>>2]=1,e[a+20>>2]=-1,e[a+16>>2]=A,e[a+8>>2]=t,ct[e[e[t>>2]+28>>2]](t,s,e[r>>2],1),(0|(A=e[a+32>>2]))==1&&(e[r>>2]=e[a+24>>2]),s=(0|A)==1))),J=a- -64|0,0|s},function(A,t,r,a,s,n){r|=0,a|=0,s|=0,n|=0,_a(A|=0,e[8+(t|=0)>>2],n)&&wn(t,r,a,s)},function(A,t,r,a,s){if(r|=0,a|=0,s|=0,_a(A|=0,e[8+(t|=0)>>2],s))e[t+28>>2]==1|e[t+4>>2]!=(0|r)||(e[t+28>>2]=a);else e:if(_a(A,e[t>>2],s)){if(!(e[t+16>>2]!=(0|r)&e[t+20>>2]!=(0|r))){if((0|a)!=1)break e;return void(e[t+32>>2]=1)}e[t+20>>2]=r,e[t+32>>2]=a,e[t+40>>2]=e[t+40>>2]+1,e[t+36>>2]!=1|e[t+24>>2]!=2||(u[t+54|0]=1),e[t+44>>2]=4}},function(A,t,r,a){r|=0,a|=0,_a(A|=0,e[8+(t|=0)>>2],0)&&w0(t,r,a)},Ks,function(A,t,r,a,s,n){r|=0,a|=0,s|=0,n|=0,_a(A|=0,e[8+(t|=0)>>2],n)?wn(t,r,a,s):(A=e[A+8>>2],ct[e[e[A>>2]+20>>2]](A,t,r,a,s,n))},function(A,t,r,a,s){if(r|=0,a|=0,s|=0,_a(A|=0,e[8+(t|=0)>>2],s))e[t+28>>2]==1|e[t+4>>2]!=(0|r)||(e[t+28>>2]=a);else e:{if(_a(A,e[t>>2],s)){if(!(e[t+16>>2]!=(0|r)&e[t+20>>2]!=(0|r))){if((0|a)!=1)break e;return void(e[t+32>>2]=1)}e[t+32>>2]=a;A:if(e[t+44>>2]!=4){if(b[t+52>>1]=0,A=e[A+8>>2],ct[e[e[A>>2]+20>>2]](A,t,r,r,1,s),l[t+53|0]){if(e[t+44>>2]=3,!l[t+52|0])break A;break e}e[t+44>>2]=4}if(e[t+20>>2]=r,e[t+40>>2]=e[t+40>>2]+1,e[t+36>>2]!=1|e[t+24>>2]!=2)break e;return void(u[t+54|0]=1)}A=e[A+8>>2],ct[e[e[A>>2]+24>>2]](A,t,r,a,s)}},function(A,t,r,a){r|=0,a|=0,_a(A|=0,e[8+(t|=0)>>2],0)?w0(t,r,a):(A=e[A+8>>2],ct[e[e[A>>2]+28>>2]](A,t,r,a))},Ks,function(A){return 84787},Ks,function(A){return 85058},Ks,function(A){return 84147},function(A){var t;return t=A|=0,A=e[A>>2],e[t>>2]=A+1,0|((0|(A=u[0|A]))<0?65533:255&A)},function(A,t,r,a,s,n){A|=0,t|=0,r|=0,a|=0,s|=0,n|=0;var o,c=0,f=0,m=0,p=0,I=0,v=0,T=0,O=0;if(o=za(408),e[o+4>>2]=a,e[o>>2]=r,t?(wt(o+16|0,t,376),D[o+392>>3]=(D[t+368>>3]-D[t>>3])/+(r>>>0),t=0):t=1,e[o+400>>2]=s,u[o+8|0]=t,n){if(r=e[A+24>>2])for(t=e[A+20>>2],a=e[A+8>>2];(s=e[e[(t>>>8&16777212)+a>>2]+((1023&t)<<2)>>2])&&(xt(s),r=e[A+24>>2],a=e[A+8>>2],t=e[A+20>>2]),t=t+1|0,e[A+20>>2]=t,r=r-1|0,e[A+24>>2]=r,t>>>0>=2048&&(xt(e[a>>2]),a=e[A+8>>2]+4|0,e[A+8>>2]=a,t=e[A+20>>2]-1024|0,e[A+20>>2]=t,r=e[A+24>>2]),r;);t=e[A+28>>2],e[A+420>>2]=e[t>>2],(r=e[A+32>>2])&&(u[t+8|0]=l[r+8|0],wt(t+16|0,A+40|0,376),(t=e[A+32>>2])&&xt(t),e[A+32>>2]=0)}if(r=(a=e[A+24>>2])+e[A+20>>2]|0,s=e[A+12>>2],(0|r)==(0|((0|(t=e[A+8>>2]))!=(0|s)?(s-t<<8)-1:0))){J=c=J-32|0;e:{A:{r:{s:{if((t=e[16+(n=A+4|0)>>2])>>>0>=1024){if(e[n+16>>2]=t-1024,t=e[n+4>>2],v=e[t>>2],s=t+4|0,e[n+4>>2]=s,(0|(t=e[n+8>>2]))==e[n+12>>2])if((f=e[n>>2])>>>0>>0)r=Yt((a=(1+(s-f>>2)|0)/-2<<2)+s|0,s,t=t-s|0)+t|0,e[n+8>>2]=r,e[n+4>>2]=a+e[n+4>>2];else{if((r=(0|t)==(0|f)?1:t-f>>1)>>>0>=1073741824)break s;if(T=(a=r<<2)+(m=za(a))|0,r=a=m+(-4&r)|0,(0|t)!=(0|s)){if(O=-4&(t=t-s|0),I=1+((p=t-4|0)>>>2|0)&7)for(r=0,t=a;e[t>>2]=e[s>>2],s=s+4|0,t=t+4|0,(0|I)!=(0|(r=r+1|0)););else t=a;if(r=a+O|0,!(p>>>0<28))for(;e[t>>2]=e[s>>2],e[t+4>>2]=e[s+4>>2],e[t+8>>2]=e[s+8>>2],e[t+12>>2]=e[s+12>>2],e[t+16>>2]=e[s+16>>2],e[t+20>>2]=e[s+20>>2],e[t+24>>2]=e[s+24>>2],e[t+28>>2]=e[s+28>>2],s=s+32|0,(0|r)!=(0|(t=t+32|0)););}e[n+12>>2]=T,e[n+8>>2]=r,e[n+4>>2]=a,e[n>>2]=m,f&&(xt(f),r=e[n+8>>2])}else r=t;e[r>>2]=v,e[n+8>>2]=e[n+8>>2]+4;break e}if((f=(s=e[n+8>>2])-e[n+4>>2]>>2)>>>0<(a=(t=e[n+12>>2])-(r=e[n>>2])|0)>>2>>>0){if((0|t)!=(0|s)){e[c+8>>2]=za(4096),Ve(n,c+8|0);break e}if(e[c+8>>2]=za(4096),Be(n,c+8|0),t=e[n+4>>2],v=e[t>>2],s=t+4|0,e[n+4>>2]=s,(0|(t=e[n+8>>2]))==e[n+12>>2])if((f=e[n>>2])>>>0>>0)r=Yt((a=(1+(s-f>>2)|0)/-2<<2)+s|0,s,t=t-s|0)+t|0,e[n+8>>2]=r,e[n+4>>2]=a+e[n+4>>2];else{if((r=(0|t)==(0|f)?1:t-f>>1)>>>0>=1073741824)break s;if(T=(a=r<<2)+(m=za(a))|0,r=a=m+(-4&r)|0,(0|t)!=(0|s)){if(O=-4&(t=t-s|0),I=1+((p=t-4|0)>>>2|0)&7)for(r=0,t=a;e[t>>2]=e[s>>2],s=s+4|0,t=t+4|0,(0|I)!=(0|(r=r+1|0)););else t=a;if(r=a+O|0,!(p>>>0<28))for(;e[t>>2]=e[s>>2],e[t+4>>2]=e[s+4>>2],e[t+8>>2]=e[s+8>>2],e[t+12>>2]=e[s+12>>2],e[t+16>>2]=e[s+16>>2],e[t+20>>2]=e[s+20>>2],e[t+24>>2]=e[s+24>>2],e[t+28>>2]=e[s+28>>2],s=s+32|0,(0|r)!=(0|(t=t+32|0)););}e[n+12>>2]=T,e[n+8>>2]=r,e[n+4>>2]=a,e[n>>2]=m,f&&(xt(f),r=e[n+8>>2])}else r=t;e[r>>2]=v,e[n+8>>2]=e[n+8>>2]+4;break e}if(e[c+24>>2]=n+12,!((t=(0|t)==(0|r)?1:a>>1)>>>0>=1073741824)){if(t=za(r=t<<2),e[c+8>>2]=t,a=t+(f<<2)|0,e[c+16>>2]=a,e[c+20>>2]=t+r,e[c+12>>2]=a,e[c+4>>2]=za(4096),Ve(c+8|0,c+4|0),(0|(s=e[n+8>>2]))==e[n+4>>2]){t=s;break A}for(;Be(c+8|0,s=s-4|0),e[n+4>>2]!=(0|s););break r}}Xn(),xe()}t=e[n+8>>2]}r=e[n>>2],e[n>>2]=e[c+8>>2],e[c+8>>2]=r,e[n+4>>2]=e[c+12>>2],e[c+12>>2]=s,e[n+8>>2]=e[c+16>>2],e[c+16>>2]=t,a=e[n+12>>2],e[n+12>>2]=e[c+20>>2],e[c+20>>2]=a,(0|t)!=(0|s)&&(e[c+16>>2]=t+(3+(s-t|0)&-4)),r&&xt(r)}J=c+32|0,r=(a=e[A+24>>2])+e[A+20>>2]|0,t=e[A+8>>2]}e[e[t+(r>>>8&16777212)>>2]+((1023&r)<<2)>>2]=o,e[A+24>>2]=a+1},function(A){var t=0,r=0,a=0,s=0,n=0,o=0,c=0,f=0,m=0;r=e[420+(A|=0)>>2]+1|0,e[A+420>>2]=r;e:{if(t=e[A+32>>2]){if(r>>>0>(c=e[t+4>>2])>>>0){(r=e[A+28>>2])&&(xt(r),t=e[A+32>>2]),e[A+32>>2]=0,e[A+28>>2]=t;break e}for(n=A+40|0,o=t+16|0,f=e[A+28>>2]+16|0,m=+(r>>>0)/+(c>>>0),t=0;;){if(a=D[(r=t<<3)+o>>3],s=D[r+f>>3],D[r+n>>3]=a==a?(a-s)*m+s:s,(0|(r=1|t))==47)break e;a=D[(r<<=3)+o>>3],s=D[r+f>>3],D[r+n>>3]=a==a?(a-s)*m+s:s,t=t+2|0}}if(t=e[A+28>>2],r>>>0>ge[t>>2]){if(n=e[A+24>>2]){if(u[A+416|0]=0,o=e[A+8>>2],r=e[A+20>>2],t=e[e[o+(r>>>8&16777212)>>2]+((1023&r)<<2)>>2],e[A+32>>2]=t,e[A+24>>2]=n-1,r=r+1|0,e[A+20>>2]=r,r>>>0>=2048&&(xt(e[o>>2]),e[A+8>>2]=e[A+8>>2]+4,e[A+20>>2]=e[A+20>>2]-1024,t=e[A+32>>2]),l[t+8|0])wt(t+16|0,e[A+28>>2]+16|0,376),t=e[A+32>>2],e[t+368>>2]=0,e[t+372>>2]=0,a=D[A+40>>3],e[t+392>>2]=0,e[t+396>>2]=0,D[t+16>>3]=a;else if(r=e[A+28>>2],l[r+8|0]&&(wt(r+16|0,t+16|0,376),t=e[A+28>>2],e[t+368>>2]=0,e[t+372>>2]=0,!(t=e[A+32>>2])))break e;(0|(r=e[t+400>>2]))!=-1&&(e[A+424>>2]=r),e[A+420>>2]=0,D[t+16>>3]=D[t+392>>3]*+ge[t+4>>2]+D[t+16>>3];break e}u[A+416|0]=1}else a=D[t+392>>3]+D[A+40>>3],D[A+40>>3]=a,D[t+16>>3]=a}return 0|(l[A+416|0]?0:A+40)},function(A){return e[424+(A|=0)>>2]},function(A){var t=0;return e[(A|=0)>>2]=132304,(t=e[A+28>>2])&&xt(t),(t=e[A+32>>2])&&xt(t),o0(A+4|0),0|A},function(A){var t=0;e[(A|=0)>>2]=132304,(t=e[A+28>>2])&&xt(t),(t=e[A+32>>2])&&xt(t),o0(A+4|0),xt(A)},function(A,t,r){t|=0,r|=0;var a=0,s=0,n=0,o=0,c=0,f=0,m=0,p=0,I=0,v=0,T=0,O=0,Z=0,ee=0,ce=0,he=0,ye=0,Qe=0,We=0;if(!e[1088+(A|=0)>>2])return 0;e:if(t){for(m=A+648|0,f=A- -64|0;;){if(a=e[A+1088>>2],!(a=0|ct[e[e[a>>2]+4>>2]](a)))break e;if(s=Ys(D[A+32>>3]+D[a+16>>3]/+e[A+24>>2]),D[A+32>>3]=s,s=Ln(6.283185307179586*s),s=Ys(D[A+16>>3]+D[a>>3]*(.06*s*D[a+8>>3]+1)/+e[A+8>>2]),D[A+16>>3]=s,c=It(e[56848],e[56849],1284865837,1481765933),n=$,n=(c=c+1|0)?n:n+1|0,e[56848]=c,e[56849]=n,o=.75*D[A+40>>3]+ +(n>>>1|0)/2147483647,D[A+40>>3]=o,p=D[a+24>>3],n=s>=D[a+32>>3],u[A+48|0]=n,o=(v=p)*(p=.2*o),o=xr(f+512|0,xr(f+440|0,s=D[a+352>>3]*(p*D[a+48>>3]+D[a+40>>3]*(s+s+-1+(n?o:.01*o)))*.5,D[a+104>>3],D[a+168>>3]),D[a+112>>3],D[a+176>>3]),o=xr(f+8|0,xr(f+80|0,xr(f+152|0,xr(f+224|0,xr(f+296|0,xr(f+368|0,o==o?(o-s)*D[a+184>>3]+s:s,D[a+96>>3],D[a+160>>3]),D[a+88>>3],D[a+152>>3]),D[a+80>>3],D[a+144>>3]),D[a+72>>3],D[a+136>>3]),D[a+64>>3],D[a+128>>3]),D[a+56>>3],D[a+120>>3]),c=It(e[56848],e[56849],1284865837,1481765933),n=$,n=(c=c+1|0)?n:n+1|0,e[56848]=c,e[56849]=n,s=.75*D[A+56>>3]+ +(n>>>1|0)/2147483647,D[A+56>>3]=s,n=(I<<1)+r|0,p=xr(m+8|0,s=D[a+352>>3]*(D[a+192>>3]*(.3*s))*.5,D[a+200>>3],D[a+248>>3]),T=D[a+296>>3],O=xr(m+80|0,s,D[a+208>>3],D[a+256>>3]),Z=D[a+304>>3],ee=xr(m+152|0,s,D[a+216>>3],D[a+264>>3]),ce=D[a+312>>3],he=xr(m+224|0,s,D[a+224>>3],D[a+272>>3]),ye=D[a+320>>3],Qe=xr(m+296|0,s,D[a+232>>3],D[a+280>>3]),We=D[a+328>>3],v=o,o=(xr(m+368|0,s,D[a+240>>3],D[a+288>>3])-s)*D[a+336>>3]+(We*(Qe-s)+(ye*(he-s)+(ce*(ee-s)+(Z*(O-s)+(T*(p-s)+0))))),s=(v+(s==s?(s-o)*D[a+344>>3]+o:o))*D[a+360>>3]*4e3,a=(0|(a=Ne(s)<2147483648?~~s:-2147483648))>=32e3?32e3:a,b[n>>1]=(0|a)<=-32e3?-32e3:a,(0|(I=I+1|0))==(0|t))break}I=t}return 0|(t>>>0>I>>>0?I:t)},function(A,t){t|=0,e[1088+(A|=0)>>2]=t},ji,Ks,Jn,function(A,t,r,a){return $=0,0}],dn.grow=function(A){var t=this.length;return this.length=this.length+A,t},dn.set=function(A,t){this[A]=t},dn.get=function(A){return this[A]},dn);return{v:function(){var A,t=0;J=A=J-16|0,0|vA(A+12|0,A+8|0)||(t=Ct(4+(e[A+12>>2]<<2)|0),e[56800]=t,t&&(!(t=Ct(e[A+8>>2]))||(e[e[56800]+(e[A+12>>2]<<2)>>2]=0,0|pA(e[56800],0|t)))&&(e[56800]=0)),J=A+16|0,e[56841]=227236,e[56823]=42},w:Gn,x:Vi,y:function(A,t){t|=0,e[(A|=0)>>2]=t},z:function(A,t){return t|=0,u[e[4+(A|=0)>>2]+t|0]},A:ma,B:M0,C:function(A){return l[12+(A|=0)|0]},D:function(A,t){t|=0,u[12+(A|=0)|0]=t},E:function(A){return l[13+(A|=0)|0]},F:function(A,t){t|=0,u[13+(A|=0)|0]=t},G:function(A){return l[14+(A|=0)|0]},H:function(A,t){t|=0,u[14+(A|=0)|0]=t},I:function(A){return l[15+(A|=0)|0]},J:function(A,t){t|=0,u[15+(A|=0)|0]=t},K:Us,L:function(A,t){t|=0,e[16+(A|=0)>>2]=t},M:Wi,N:function(A,t){t|=0,e[20+(A|=0)>>2]=t},O:Gn,P:Vi,Q:G0,R:ma,S:Qs,T:Us,U:Wi,V:function(A){return e[24+(A|=0)>>2]},W:Gn,X:function(){var A,t=0,r=0,a=0,s=0,n=0,o=0,c=0,f=0,m=0,p=0,I=0,v=0,T=0,O=0,Z=0,ee=0,ce=0,he=0,ye=0,Qe=0,We=0,Ke=0,rA=0;if(A=za(20),e[A+16>>2]=0,e[A+8>>2]=175,e[A+12>>2]=50,!(t=e[33208])){J=t=(J=ye=J-16|0)-80|0;e:{if((r=an(84292))&&(e[t+32>>2]=r,as(137584,160,85959,t+32|0),(0|ss(137584))==-31||(e[t+16>>2]=r,as(137584,160,86031,t+16|0),(0|ss(137584))==-31)))break e;(r=an(84619))&&(e[t>>2]=r,as(137584,160,85959,t),(0|ss(137584))==-31)||(r=l[84826]|l[84827]<<8|l[84828]<<16|l[84829]<<24,e[34396]=l[84822]|l[84823]<<8|l[84824]<<16|l[84825]<<24,e[34397]=r,b[68804]=l[84846]|l[84847]<<8,r=l[84842]|l[84843]<<8|l[84844]<<16|l[84845]<<24,e[34400]=l[84838]|l[84839]<<8|l[84840]<<16|l[84841]<<24,e[34401]=r,r=l[84834]|l[84835]<<8|l[84836]<<16|l[84837]<<24,e[34398]=l[84830]|l[84831]<<8|l[84832]<<16|l[84833]<<24,e[34399]=r)}if(J=t+80|0,e[ye+12>>2]=0,s=ye+12|0,J=c=J-16|0,e[c+12>>2]=22050,VA(85144)||VA(85315)||VA(85473)||VA(85698),I=c+12|0,J=n=J-16|0,e[n+12>>2]=0,!((t=Nn(137832,84262,0,s))||(t=Nn(137836,84420,0,s))||(t=Nn(137840,84813,0,s))||(t=Nn(137820,85016,n+12|0,s))))if(e[34454]=ge[n+12>>2]/68,r=e[34460],e[34456]=r,r&&(0|(m=l[0|r]|l[r+1|0]<<8|l[r+2|0]<<16|l[r+3|0]<<24))==83969){if(v=l[r+4|0]|l[r+5|0]<<8|l[r+6|0]<<16|l[r+7|0]<<24,r=e[34458],O=l[0|r],e[34461]=O,O)for(t=r+4|0,m=0;a=P(m,44)+137856|0,s=l[0|t],e[a+36>>2]=s,e[a+40>>2]=l[t+1|0],o=l[t+8|0]|l[t+9|0]<<8|l[t+10|0]<<16|l[t+11|0]<<24,r=l[t+4|0]|l[t+5|0]<<8|l[t+6|0]<<16|l[t+7|0]<<24,u[0|a]=r,u[a+1|0]=r>>>8,u[a+2|0]=r>>>16,u[a+3|0]=r>>>24,u[a+4|0]=o,u[a+5|0]=o>>>8,u[a+6|0]=o>>>16,u[a+7|0]=o>>>24,o=l[t+16|0]|l[t+17|0]<<8|l[t+18|0]<<16|l[t+19|0]<<24,r=l[t+12|0]|l[t+13|0]<<8|l[t+14|0]<<16|l[t+15|0]<<24,u[a+8|0]=r,u[a+9|0]=r>>>8,u[a+10|0]=r>>>16,u[a+11|0]=r>>>24,u[a+12|0]=o,u[a+13|0]=o>>>8,u[a+14|0]=o>>>16,u[a+15|0]=o>>>24,o=l[t+24|0]|l[t+25|0]<<8|l[t+26|0]<<16|l[t+27|0]<<24,r=l[t+20|0]|l[t+21|0]<<8|l[t+22|0]<<16|l[t+23|0]<<24,u[a+16|0]=r,u[a+17|0]=r>>>8,u[a+18|0]=r>>>16,u[a+19|0]=r>>>24,u[a+20|0]=o,u[a+21|0]=o>>>8,u[a+22|0]=o>>>16,u[a+23|0]=o>>>24,o=l[t+32|0]|l[t+33|0]<<8|l[t+34|0]<<16|l[t+35|0]<<24,r=l[t+28|0]|l[t+29|0]<<8|l[t+30|0]<<16|l[t+31|0]<<24,u[a+24|0]=r,u[a+25|0]=r>>>8,u[a+26|0]=r>>>16,u[a+27|0]=r>>>24,u[a+28|0]=o,u[a+29|0]=o>>>8,u[a+30|0]=o>>>16,u[a+31|0]=o>>>24,r=t+36|0,e[a+32>>2]=r,t=r+(s<<4)|0,(0|O)!=(0|(m=m+1|0)););(0|O)<=e[34457]&&(e[34457]=0),t=0,I&&(e[I>>2]=v)}else e:{A:{if(s){if(r=e[s>>2]){xt(e[r+4>>2]),t=e[s>>2];break A}if(t=Ct(16),e[s>>2]=t,t)break A;t=48}else t=268436223;break e}e[t>>2]=1,e[t+4>>2]=qn(137584),r=e[s>>2],e[r+12>>2]=83969,e[r+8>>2]=m,t=268436223}if(J=n+16|0,r=t,!t){if(I=e[c+12>>2],e[50754]=I,e[50759]=0,e[50760]=134217728/(0|I),e[50762]=0,e[50763]=0,e[50765]=2147483647,e[50781]=100,e[50779]=32,e[50761]=(I<<6)/(0|I),t=e[26385],e[50784]=e[26384],e[50785]=t,t=e[26387],e[50786]=e[26386],e[50787]=t,t=e[26389],e[50788]=e[26388],e[50789]=t,t=e[26391],e[50790]=e[26390],e[50791]=t,t=e[26393],e[50792]=e[26392],e[50793]=t,t=e[26395],e[50794]=e[26394],e[50795]=t,t=e[26397],e[50796]=e[26396],e[50797]=t,e[50798]=e[26398],v=(0|(t=(0|(s=P(I,60)))/12800|0))>=128?128:t,e[50799]=v,e[50800]=(0|v)/2,!((0|I)==22050|(0|s)<12800)){if(I=1&(t=(0|v)<=1?1:v),ce=+(0|v),m=0,(0|v)>=2)for(v=2147483646&t,t=0;Z=m+132160|0,f=127*(1-Ga(6.283185307179586*+(0|m)/ce)),T=Ne(f)<2147483648?~~f:-2147483648,u[0|Z]=T,Z=132160+(s=1|m)|0,f=127*(1-Ga(6.283185307179586*+(0|s)/ce)),T=Ne(f)<2147483648?~~f:-2147483648,u[0|Z]=T,m=m+2|0,(0|v)!=(0|(t=t+2|0)););I&&(t=m+132160|0,f=127*(1-Ga(6.283185307179586*+(0|m)/ce)),Z=Ne(f)<2147483648?~~f:-2147483648,u[0|t]=Z)}if(e[50801]=105792,e[56797]=ts(),e[55964]=38,e[55921]=1,e[55918]=22050,e[56606]=0,e[55960]=110928,e[55958]=0,e[55959]=1074266112,e[55956]=100,e[55922]=20,e[55923]=220,e[55916]=1,e[55917]=0,Un(),e[56244]=0,e[56245]=0,e[55928]=0,e[55926]=0,e[55927]=0,e[55924]=0,e[56246]=0,e[56247]=0,e[56260]=0,e[56261]=0,e[56262]=0,e[56263]=0,e[56276]=0,e[56277]=0,e[56278]=0,e[56279]=0,e[55974]=0,e[55975]=0,e[55972]=0,e[55973]=0,ce=-3.141592653589793/+(0|(t=e[55918])),D[27967]=ce,s=(0|P(t,630))/1e4|0,e[55920]=s,t=(0|P(t,950))/1e4|0,e[55919]=t,f=-2*ce,D[27968]=f,ce=(Ke=Pt(ce*+(0|s)))*-Ke,D[28129]=ce,f=Ke*Ga(f*+(0|t)),f+=f,D[28128]=f,D[28127]=1-f-ce,e[55990]=0,e[55991]=0,e[55988]=0,e[55989]=0,e[56006]=0,e[56007]=0,e[56004]=0,e[56005]=0,e[56022]=0,e[56023]=0,e[56020]=0,e[56021]=0,e[56038]=0,e[56039]=0,e[56036]=0,e[56037]=0,e[56054]=0,e[56055]=0,e[56052]=0,e[56053]=0,e[56070]=0,e[56071]=0,e[56068]=0,e[56069]=0,e[56086]=0,e[56087]=0,e[56084]=0,e[56085]=0,e[56102]=0,e[56103]=0,e[56100]=0,e[56101]=0,e[56118]=0,e[56119]=0,e[56116]=0,e[56117]=0,e[56134]=0,e[56135]=0,e[56132]=0,e[56133]=0,e[56150]=0,e[56151]=0,e[56148]=0,e[56149]=0,e[56166]=0,e[56167]=0,e[56164]=0,e[56165]=0,e[56182]=0,e[56183]=0,e[56180]=0,e[56181]=0,e[56198]=0,e[56199]=0,e[56196]=0,e[56197]=0,e[56214]=0,e[56215]=0,e[56212]=0,e[56213]=0,e[56230]=0,e[56231]=0,e[56228]=0,e[56229]=0,e[56639]=59,e[56640]=59,e[56629]=0,e[56630]=59,e[56619]=89,e[56620]=160,e[56609]=280,e[56610]=688,e[56611]=1064,e[56621]=70,e[56631]=59,e[56612]=2806,e[56613]=3260,e[56622]=160,e[56623]=200,e[56632]=59,e[56633]=59,e[56641]=89,e[56642]=149,e[56643]=200,e[56644]=200,e[56634]=59,e[56635]=59,e[56624]=200,e[56625]=500,e[56614]=3700,e[56615]=6500,e[56645]=500,e[56646]=0,e[56616]=7e3,e[56626]=500,e[56636]=0,e[56647]=0,e[56637]=0,e[56627]=500,e[56617]=8e3,e[56669]=89,e[56648]=0,e[56638]=0,e[56628]=89,e[56618]=280,e[56657]=62,e[56655]=0,e[56656]=0,e[56653]=50,e[56654]=0,e[56651]=0,e[56652]=0,e[56649]=0,e[56650]=40,e[56607]=1e3,e[56608]=59,J=n=J-416|0,e[n+16>>2]=137584,e[n+20>>2]=47,e[n+24>>2]=85952,DA(t=n+240|0,85699,n+16|0),o=wa(t,86034)){if(Jt(n+240|0,170,o))for(I=5|(t=n+240|0),v=10|t;l[n+240|0]!=47&&(e[n+240>>2]!=1701736308?xa(n+240|0,86614,9)||(e[n+4>>2]=n+32,e[n>>2]=n+239,(0|gt(v,86829,n))==2&&(s=e[34064],e[(O=136272+(s<<4)|0)>>2]=u[n+239|0],t=qn(n+32|0),e[34064]=s+1,e[O+12>>2]=t,e[O+4>>2]=0)):(J=t=J-48|0,e[32960]=-1,e[32961]=-1,e[32970]=-1,e[32971]=-1,e[32968]=-1,e[32969]=-1,e[32966]=-1,e[32967]=-1,e[32964]=-1,e[32965]=-1,e[32962]=-1,e[32963]=-1,e[t+36>>2]=131876,e[t+32>>2]=131872,e[t+28>>2]=131868,e[t+24>>2]=131864,e[t+20>>2]=131860,e[t+16>>2]=131856,e[t+12>>2]=131852,e[t+8>>2]=131848,e[t+4>>2]=131844,e[t>>2]=131840,gt(I,84222,t),J=t+48|0)),Jt(n+240|0,170,o););ta(o)}J=n+416|0,e[50297]=0,e[50298]=0,e[50301]=0,e[50302]=0,e[50299]=0,e[50300]=0,In(0,85698),e[36425]=0,e[36424]=0,e[36426]=0,e[36427]=-1,Va(),Kt(0),a=e[25690],e[34062]=a,p=e[25689],n=e[25688],e[34060]=n,e[34061]=p,ee=e[25687],o=e[25686],e[34058]=o,e[34059]=ee,he=e[25685],O=e[25684],e[34056]=O,e[34057]=he,Qe=e[25683],I=e[25682],e[34054]=I,e[34055]=Qe,We=e[25681],v=e[25680],e[34052]=v,e[34053]=We,T=e[25679],s=e[25678],e[34050]=s,e[34051]=T,Z=e[25677],t=e[25676],e[34048]=t,e[34049]=Z,e[33729]=t,e[33730]=Z,e[33731]=s,e[33732]=T,e[33733]=v,e[33734]=We,e[33735]=I,e[33736]=Qe,e[33737]=O,e[33738]=he,e[33739]=o,e[33740]=ee,e[33741]=n,e[33742]=p,e[33743]=a,Cr(1,175),Cr(2,100),Cr(6,e[47200]),Cr(5,e[47201]),Cr(7,0),e[47198]=0,e[47197]=0,f=+Ue()/1e3,s=It(t=Ne(f)<9223372036854776e3?~~f>>>0:0,0,1103515245,0),t=$,t=(s=s+12345|0)>>>0<12345?t+1|0:t,e[33209]=Ri(s,t)}if(J=c+16|0,r){Z=e[30450],Qe=e[ye+12>>2],c=48+(p=J-560|0)|0,J=a=(J=p)-16|0;e:{switch(0|aa(r-268435967|0,24)){case 0:ar(c,84133,512);break e;case 1:ar(c,84580,512);break e;case 2:ar(c,84747,512);break e;case 3:ar(c,85084,512);break e;case 4:ar(c,85251,512);break e;case 5:ar(c,85380,512);break e;case 6:ar(c,85607,512);break e;case 7:ar(c,85722,512);break e;case 8:ar(c,85913,512);break e;case 9:ar(c,86046,512);break e;case 10:ar(c,86153,512);break e;case 11:ar(c,86678,512);break e;case 12:ar(c,86773,512);break e;case 14:ar(c,86958,512);break e;case 15:ar(c,87071,512);break e}if(1879048192&r)e[a>>2]=r,as(c,512,87182,a);else{if(m=0,n=M[123728+((r>>>0<=153?r:0)<<1)>>1]+121804|0,r=e[e[56841]+20>>2]){We=e[r+4>>2],ee=e[r>>2],he=e[ee>>2]+1794895138|0,T=Ms(e[ee+8>>2],he),s=Ms(e[ee+12>>2],he),t=Ms(e[ee+16>>2],he);A:if(!(We>>>2>>>0<=T>>>0||3&(t|s)|(r=We-(T<<2)|0)>>>0<=s>>>0|t>>>0>=r>>>0))for(I=t>>>2|0,v=s>>>2|0;;){if(O=Ms(e[(r=((t=(s=(o=T>>>1|0)+rA|0)<<1)+v<<2)+ee|0)>>2],he),(r=Ms(e[r+4>>2],he))>>>0>=We>>>0|O>>>0>=We-r>>>0|l[(r+O|0)+ee|0])break A;if(!(r=yr(n,r+ee|0))){if(t=Ms(e[(r=(t+I<<2)+ee|0)>>2],he),(r=Ms(e[r+4>>2],he))>>>0>=We>>>0|t>>>0>=We-r>>>0)break A;m=l[(t+r|0)+ee|0]?0:r+ee|0;break A}if((0|T)==1)break A;T=(r=(0|r)<0)?o:T-o|0,rA=r?rA:s}}if((r=HA(t=m||n))>>>0>=512){wt(c,t,511),u[c+511|0]=0;break e}wt(c,t,r+1|0)}}J=a+16|0;e:if(Qe){A:switch(e[Qe>>2]){case 0:e[p+16>>2]=e[Qe+4>>2],e[p+20>>2]=p+48,fr(Z,87384,p+16|0);break e;case 1:break A;default:break e}t=e[Qe+12>>2],r=e[Qe+8>>2],e[p+36>>2]=e[Qe+4>>2],$=r,e[p+40>>2]=t,e[p+44>>2]=$,e[p+32>>2]=p+48,fr(Z,87521,p+32|0)}else e[p>>2]=p+48,fr(Z,87700,p);J=p+560|0,(0|ye)!=-12&&(r=e[ye+12>>2])&&(xt(e[r+4>>2]),xt(e[ye+12>>2]),e[ye+12>>2]=0)}r=e[24806],e[34389]=0,e[32538]=r,r=(1e3+((r=P(e[50754],100))-((0|r)%1e3|0)|0)|0)/500|0,e[34390]=r,r=Ur(e[34391],r),e[34392]=r,r&&(e[34391]=r,e[34393]=40,(r=Ur(e[34388],1440))&&(e[34388]=r)),e[47198]=0,J=ye+16|0,t=e[50754],e[33208]=t}return e[A+4>>2]=t,e[A>>2]=KA(),0|A},Y:function(A,t,r){A|=0,t|=0,r|=0,e[34440]=r,Gi(3,e[A+12>>2]),Gi(1,e[A+8>>2]),(A=e[A+16>>2])?Qa(A):nn(1024),dA(t),e[34440]=0},Z:function(A,t,r){return A|=0,t|=0,r|=0,e[34440]=0,(A=wa(r,1032))?(e[47195]=A,e[47197]=130,A||(e[47195]=e[30450]),dA(t),e[47195]=0,e[47197]=0,e[47195]=e[30450],ta(A),0):-1},_:function(A){return 36},$:function(A,t,r){var a;return A|=0,t|=0,J=a=J-32|0,(r|=0)?(e[a+24>>2]=0,e[a+28>>2]=0,e[a+16>>2]=0,e[a+20>>2]=0,e[a+12>>2]=r,e[a+8>>2]=t,u[a+21|0]=0,t=Qa(a+8|0)):t=nn(t),e[A+16>>2]=201188,J=a+32|0,0|t},aa:function(A,t,r,a){var s;return A|=0,t|=0,J=s=J-32|0,(r|=0)|(a|=0)?(e[s+24>>2]=0,e[s+28>>2]=0,e[s+16>>2]=0,e[s+20>>2]=0,e[s+12>>2]=r,e[s+8>>2]=t,u[s+22|0]=0,u[s+20|0]=a,t=Qa(s+8|0)):t=nn(t),e[A+16>>2]=201188,J=s+32|0,0|t},ba:function(A,t,r,a,s){var n;return A|=0,t|=0,J=n=J-32|0,(a|=0)|(s|=0)|(r|=0)?(e[n+24>>2]=0,e[n+28>>2]=0,e[n+16>>2]=0,e[n+20>>2]=0,e[n+12>>2]=r,e[n+8>>2]=t,u[n+21|0]=s,u[n+20|0]=a,t=Qa(n+8|0)):t=nn(t),e[A+16>>2]=201188,J=n+32|0,0|t},ca:function(A,t,r,a,s,n){var o;return A|=0,t|=0,J=o=J-32|0,(a|=0)|(s|=0)|(n|=0)|(r|=0)?(e[o+24>>2]=0,e[o+28>>2]=0,e[o+16>>2]=0,e[o+20>>2]=0,e[o+12>>2]=r,e[o+8>>2]=t,u[o+22|0]=n,u[o+21|0]=s,u[o+20|0]=a,t=Qa(o+8|0)):t=nn(t),e[A+16>>2]=201188,J=o+32|0,0|t},da:function(A,t){return t|=0,e[e[(A|=0)>>2]+(t<<2)>>2]},ea:function(A,t,r){t|=0,r|=0,e[e[(A|=0)>>2]+(t<<2)>>2]=r},fa:G0,ga:ma,ha:M0,ia:Qs,ja:function(A,t){t|=0,e[12+(A|=0)>>2]=t},ka:Gn,la:function(){return 0},ma:function(){return 1},na:function(){return 2},oa:function(){return 3},pa:function(){return 4},qa:function(){return 5},ra:function(){return 6},sa:function(){return 7},ta:function(){return 8},ua:ct,va:function(){return 227192},wa:xt,xa:Ct,ya:function(A){return(A|=0)?0|!!(0|sr(A,125228)):0}}}(d)}(C)},instantiate:function(x,C){return{then:function(d){var k=new o2.Module(x);d({instance:new o2.Instance(k,C)})}}},RuntimeError:Error};typeof o2!="object"&&a0("no native wasm support detected");var Jg=!1;function qc(x,C){x||a0(C)}var ls,r2,tc,mr,Ea,_g,$g,Wg=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function t2(x,C,d){for(var k=C+d,z=C;x[z]&&!(z>=k);)++z;if(z-C>16&&x.buffer&&Wg)return Wg.decode(x.subarray(C,z));for(var K="";C>10,56320|1023&W)}}else K+=String.fromCharCode((31&L)<<6|j)}else K+=String.fromCharCode(L)}return K}function a2(x,C){return x?t2(r2,x,C):""}function au(x,C,d,k){if(!(k>0))return 0;for(var z=d,K=d+k-1,L=0;L=55296&&j<=57343&&(j=65536+((1023&j)<<10)|1023&x.charCodeAt(++L)),j<=127){if(d>=K)break;C[d++]=j}else if(j<=2047){if(d+1>=K)break;C[d++]=192|j>>6,C[d++]=128|63&j}else if(j<=65535){if(d+2>=K)break;C[d++]=224|j>>12,C[d++]=128|j>>6&63,C[d++]=128|63&j}else{if(d+3>=K)break;C[d++]=240|j>>18,C[d++]=128|j>>12&63,C[d++]=128|j>>6&63,C[d++]=128|63&j}}return C[d]=0,d-z}function ed(x){for(var C=0,d=0;d=55296&&k<=57343?(C+=4,++d):C+=3}return C}var t0,Jc=pe.INITIAL_MEMORY||16777216;t0=(tu=pe.wasmMemory?pe.wasmMemory:new o2.Memory({initial:Jc/65536,maximum:Jc/65536})).buffer,pe.HEAP8=ls=new Int8Array(t0),pe.HEAP16=tc=new Int16Array(t0),pe.HEAP32=mr=new Int32Array(t0),pe.HEAPU8=r2=new Uint8Array(t0),pe.HEAPU16=new Uint16Array(t0),pe.HEAPU32=Ea=new Uint32Array(t0),pe.HEAPF32=_g=new Float32Array(t0),pe.HEAPF64=$g=new Float64Array(t0),Jc=tu.buffer.byteLength;var Vg=[],Ad=[],jg=[],td=!1;function rd(x){Ad.unshift(x)}var Lt,ga,co=0,k1=null;function ad(x){co++,pe.monitorRunDependencies&&pe.monitorRunDependencies(co)}function sd(x){if(co--,pe.monitorRunDependencies&&pe.monitorRunDependencies(co),co==0&&k1){var C=k1;k1=null,C()}}function a0(x){throw pe.onAbort&&pe.onAbort(x),i2(x="Aborted("+x+")"),Jg=!0,x+=". Build with -sASSERTIONS for more info.",new o2.RuntimeError(x)}function Op(x){this.name="ExitStatus",this.message="Program terminated with exit("+x+")",this.status=x}function _c(x){for(;x.length>0;)x.shift()(pe)}function Lp(x,C="i8"){switch(C.endsWith("*")&&(C="*"),C){case"i1":case"i8":return ls[0|x];case"i16":return tc[x>>1];case"i32":case"i64":return mr[x>>2];case"float":return _g[x>>2];case"double":return $g[x>>3];case"*":return Ea[x>>2];default:a0("invalid type for getValue: "+C)}return null}function Yp(x){this.excPtr=x,this.ptr=x-24,this.set_type=function(C){Ea[this.ptr+4>>2]=C},this.get_type=function(){return Ea[this.ptr+4>>2]},this.set_destructor=function(C){Ea[this.ptr+8>>2]=C},this.get_destructor=function(){return Ea[this.ptr+8>>2]},this.set_refcount=function(C){mr[this.ptr>>2]=C},this.set_caught=function(C){C=C?1:0,ls[this.ptr+12|0]=C},this.get_caught=function(){return ls[this.ptr+12|0]!=0},this.set_rethrown=function(C){C=C?1:0,ls[this.ptr+13|0]=C},this.get_rethrown=function(){return ls[this.ptr+13|0]!=0},this.init=function(C,d){this.set_adjusted_ptr(0),this.set_type(C),this.set_destructor(d),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){var C=mr[this.ptr>>2];mr[this.ptr>>2]=C+1},this.release_ref=function(){var C=mr[this.ptr>>2];return mr[this.ptr>>2]=C-1,C===1},this.set_adjusted_ptr=function(C){Ea[this.ptr+16>>2]=C},this.get_adjusted_ptr=function(){return Ea[this.ptr+16>>2]},this.get_exception_ptr=function(){if(of(this.get_type()))return Ea[this.excPtr>>2];var C=this.get_adjusted_ptr();return C!==0?C:this.excPtr}}var Dr={isAbs:x=>x.charAt(0)==="/",splitPath:x=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(x).slice(1),normalizeArray:(x,C)=>{for(var d=0,k=x.length-1;k>=0;k--){var z=x[k];z==="."?x.splice(k,1):z===".."?(x.splice(k,1),d++):d&&(x.splice(k,1),d--)}if(C)for(;d;d--)x.unshift("..");return x},normalize:x=>{var C=Dr.isAbs(x),d=x.substr(-1)==="/";return(x=Dr.normalizeArray(x.split("/").filter(k=>!!k),!C).join("/"))||C||(x="."),x&&d&&(x+="/"),(C?"/":"")+x},dirname:x=>{var C=Dr.splitPath(x),d=C[0],k=C[1];return d||k?(k&&(k=k.substr(0,k.length-1)),d+k):"."},basename:x=>{if(x==="/")return"/";var C=(x=(x=Dr.normalize(x)).replace(/\/$/,"")).lastIndexOf("/");return C===-1?x:x.substr(C+1)},join:function(){var x=Array.prototype.slice.call(arguments);return Dr.normalize(x.join("/"))},join2:(x,C)=>Dr.normalize(x+"/"+C)},V0={resolve:function(){for(var x="",C=!1,d=arguments.length-1;d>=-1&&!C;d--){var k=d>=0?arguments[d]:re.cwd();if(typeof k!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!k)return"";x=k+"/"+x,C=Dr.isAbs(k)}return(C?"/":"")+(x=Dr.normalizeArray(x.split("/").filter(z=>!!z),!C).join("/"))||"."},relative:(x,C)=>{function d(W){for(var S=0;S=0&&W[X]==="";X--);return S>X?[]:W.slice(S,X-S+1)}x=V0.resolve(x).substr(1),C=V0.resolve(C).substr(1);for(var k=d(x.split("/")),z=d(C.split("/")),K=Math.min(k.length,z.length),L=K,j=0;j0&&(Ac(t2(x.output,0)),x.output=[])}},default_tty1_ops:{put_char:function(x,C){C===null||C===10?(i2(t2(x.output,0)),x.output=[]):C!=0&&x.output.push(C)},fsync:function(x){x.output&&x.output.length>0&&(i2(t2(x.output,0)),x.output=[])}}};function id(x){a0()}var Xt={ops_table:null,mount:function(x){return Xt.createNode(null,"/",16895,0)},createNode:function(x,C,d,k){if(re.isBlkdev(d)||re.isFIFO(d))throw new re.ErrnoError(63);Xt.ops_table||(Xt.ops_table={dir:{node:{getattr:Xt.node_ops.getattr,setattr:Xt.node_ops.setattr,lookup:Xt.node_ops.lookup,mknod:Xt.node_ops.mknod,rename:Xt.node_ops.rename,unlink:Xt.node_ops.unlink,rmdir:Xt.node_ops.rmdir,readdir:Xt.node_ops.readdir,symlink:Xt.node_ops.symlink},stream:{llseek:Xt.stream_ops.llseek}},file:{node:{getattr:Xt.node_ops.getattr,setattr:Xt.node_ops.setattr},stream:{llseek:Xt.stream_ops.llseek,read:Xt.stream_ops.read,write:Xt.stream_ops.write,allocate:Xt.stream_ops.allocate,mmap:Xt.stream_ops.mmap,msync:Xt.stream_ops.msync}},link:{node:{getattr:Xt.node_ops.getattr,setattr:Xt.node_ops.setattr,readlink:Xt.node_ops.readlink},stream:{}},chrdev:{node:{getattr:Xt.node_ops.getattr,setattr:Xt.node_ops.setattr},stream:re.chrdev_stream_ops}});var z=re.createNode(x,C,d,k);return re.isDir(z.mode)?(z.node_ops=Xt.ops_table.dir.node,z.stream_ops=Xt.ops_table.dir.stream,z.contents={}):re.isFile(z.mode)?(z.node_ops=Xt.ops_table.file.node,z.stream_ops=Xt.ops_table.file.stream,z.usedBytes=0,z.contents=null):re.isLink(z.mode)?(z.node_ops=Xt.ops_table.link.node,z.stream_ops=Xt.ops_table.link.stream):re.isChrdev(z.mode)&&(z.node_ops=Xt.ops_table.chrdev.node,z.stream_ops=Xt.ops_table.chrdev.stream),z.timestamp=Date.now(),x&&(x.contents[C]=z,x.timestamp=z.timestamp),z},getFileDataAsTypedArray:function(x){return x.contents?x.contents.subarray?x.contents.subarray(0,x.usedBytes):new Uint8Array(x.contents):new Uint8Array(0)},expandFileStorage:function(x,C){var d=x.contents?x.contents.length:0;if(!(d>=C)){C=Math.max(C,d*(d<1048576?2:1.125)>>>0),d!=0&&(C=Math.max(C,256));var k=x.contents;x.contents=new Uint8Array(C),x.usedBytes>0&&x.contents.set(k.subarray(0,x.usedBytes),0)}},resizeFileStorage:function(x,C){if(x.usedBytes!=C)if(C==0)x.contents=null,x.usedBytes=0;else{var d=x.contents;x.contents=new Uint8Array(C),d&&x.contents.set(d.subarray(0,Math.min(C,x.usedBytes))),x.usedBytes=C}},node_ops:{getattr:function(x){var C={};return C.dev=re.isChrdev(x.mode)?x.id:1,C.ino=x.id,C.mode=x.mode,C.nlink=1,C.uid=0,C.gid=0,C.rdev=x.rdev,re.isDir(x.mode)?C.size=4096:re.isFile(x.mode)?C.size=x.usedBytes:re.isLink(x.mode)?C.size=x.link.length:C.size=0,C.atime=new Date(x.timestamp),C.mtime=new Date(x.timestamp),C.ctime=new Date(x.timestamp),C.blksize=4096,C.blocks=Math.ceil(C.size/C.blksize),C},setattr:function(x,C){C.mode!==void 0&&(x.mode=C.mode),C.timestamp!==void 0&&(x.timestamp=C.timestamp),C.size!==void 0&&Xt.resizeFileStorage(x,C.size)},lookup:function(x,C){throw re.genericErrors[44]},mknod:function(x,C,d,k){return Xt.createNode(x,C,d,k)},rename:function(x,C,d){if(re.isDir(x.mode)){var k;try{k=re.lookupNode(C,d)}catch{}if(k)for(var z in k.contents)throw new re.ErrnoError(55)}delete x.parent.contents[x.name],x.parent.timestamp=Date.now(),x.name=d,C.contents[d]=x,C.timestamp=x.parent.timestamp,x.parent=C},unlink:function(x,C){delete x.contents[C],x.timestamp=Date.now()},rmdir:function(x,C){var d=re.lookupNode(x,C);for(var k in d.contents)throw new re.ErrnoError(55);delete x.contents[C],x.timestamp=Date.now()},readdir:function(x){var C=[".",".."];for(var d in x.contents)x.contents.hasOwnProperty(d)&&C.push(d);return C},symlink:function(x,C,d){var k=Xt.createNode(x,C,41471,0);return k.link=d,k},readlink:function(x){if(!re.isLink(x.mode))throw new re.ErrnoError(28);return x.link}},stream_ops:{read:function(x,C,d,k,z){var K=x.node.contents;if(z>=x.node.usedBytes)return 0;var L=Math.min(x.node.usedBytes-z,k);if(L>8&&K.subarray)C.set(K.subarray(z,z+L),d);else for(var j=0;j0||d+C{if(!(x=V0.resolve(x)))return{path:"",node:null};if((C=Object.assign({follow_mount:!0,recurse_count:0},C)).recurse_count>8)throw new re.ErrnoError(32);for(var d=x.split("/").filter(W=>!!W),k=re.root,z="/",K=0;K40)throw new re.ErrnoError(32)}}return{path:z,node:k}},getPath:x=>{for(var C;;){if(re.isRoot(x)){var d=x.mount.mountpoint;return C?d[d.length-1]!=="/"?d+"/"+C:d+C:d}C=C?x.name+"/"+C:x.name,x=x.parent}},hashName:(x,C)=>{for(var d=0,k=0;k>>0)%re.nameTable.length},hashAddNode:x=>{var C=re.hashName(x.parent.id,x.name);x.name_next=re.nameTable[C],re.nameTable[C]=x},hashRemoveNode:x=>{var C=re.hashName(x.parent.id,x.name);if(re.nameTable[C]===x)re.nameTable[C]=x.name_next;else for(var d=re.nameTable[C];d;){if(d.name_next===x){d.name_next=x.name_next;break}d=d.name_next}},lookupNode:(x,C)=>{var d=re.mayLookup(x);if(d)throw new re.ErrnoError(d,x);for(var k=re.hashName(x.id,C),z=re.nameTable[k];z;z=z.name_next){var K=z.name;if(z.parent.id===x.id&&K===C)return z}return re.lookup(x,C)},createNode:(x,C,d,k)=>{var z=new re.FSNode(x,C,d,k);return re.hashAddNode(z),z},destroyNode:x=>{re.hashRemoveNode(x)},isRoot:x=>x===x.parent,isMountpoint:x=>!!x.mounted,isFile:x=>(61440&x)==32768,isDir:x=>(61440&x)==16384,isLink:x=>(61440&x)==40960,isChrdev:x=>(61440&x)==8192,isBlkdev:x=>(61440&x)==24576,isFIFO:x=>(61440&x)==4096,isSocket:x=>!(49152&~x),flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:x=>{var C=re.flagModes[x];if(C===void 0)throw new Error("Unknown file open mode: "+x);return C},flagsToPermissionString:x=>{var C=["r","w","rw"][3&x];return 512&x&&(C+="w"),C},nodePermissions:(x,C)=>re.ignorePermissions||(!C.includes("r")||292&x.mode)&&(!C.includes("w")||146&x.mode)&&(!C.includes("x")||73&x.mode)?0:2,mayLookup:x=>re.nodePermissions(x,"x")||(x.node_ops.lookup?0:2),mayCreate:(x,C)=>{try{return re.lookupNode(x,C),20}catch{}return re.nodePermissions(x,"wx")},mayDelete:(x,C,d)=>{var k;try{k=re.lookupNode(x,C)}catch(K){return K.errno}var z=re.nodePermissions(x,"wx");if(z)return z;if(d){if(!re.isDir(k.mode))return 54;if(re.isRoot(k)||re.getPath(k)===re.cwd())return 10}else if(re.isDir(k.mode))return 31;return 0},mayOpen:(x,C)=>x?re.isLink(x.mode)?32:re.isDir(x.mode)&&(re.flagsToPermissionString(C)!=="r"||512&C)?31:re.nodePermissions(x,re.flagsToPermissionString(C)):44,MAX_OPEN_FDS:4096,nextfd:(x=0,C=re.MAX_OPEN_FDS)=>{for(var d=x;d<=C;d++)if(!re.streams[d])return d;throw new re.ErrnoError(33)},getStream:x=>re.streams[x],createStream:(x,C,d)=>{re.FSStream||(re.FSStream=function(){this.shared={}},re.FSStream.prototype={},Object.defineProperties(re.FSStream.prototype,{object:{get:function(){return this.node},set:function(z){this.node=z}},isRead:{get:function(){return(2097155&this.flags)!=1}},isWrite:{get:function(){return!!(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}},flags:{get:function(){return this.shared.flags},set:function(z){this.shared.flags=z}},position:{get:function(){return this.shared.position},set:function(z){this.shared.position=z}}})),x=Object.assign(new re.FSStream,x);var k=re.nextfd(C,d);return x.fd=k,re.streams[k]=x,x},closeStream:x=>{re.streams[x]=null},chrdev_stream_ops:{open:x=>{var C=re.getDevice(x.node.rdev);x.stream_ops=C.stream_ops,x.stream_ops.open&&x.stream_ops.open(x)},llseek:()=>{throw new re.ErrnoError(70)}},major:x=>x>>8,minor:x=>255&x,makedev:(x,C)=>x<<8|C,registerDevice:(x,C)=>{re.devices[x]={stream_ops:C}},getDevice:x=>re.devices[x],getMounts:x=>{for(var C=[],d=[x];d.length;){var k=d.pop();C.push(k),d.push.apply(d,k.mounts)}return C},syncfs:(x,C)=>{typeof x=="function"&&(C=x,x=!1),re.syncFSRequests++,re.syncFSRequests>1&&i2("warning: "+re.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var d=re.getMounts(re.root.mount),k=0;function z(L){return re.syncFSRequests--,C(L)}function K(L){if(L)return K.errored?void 0:(K.errored=!0,z(L));++k>=d.length&&z(null)}d.forEach(L=>{if(!L.type.syncfs)return K(null);L.type.syncfs(L,x,K)})},mount:(x,C,d)=>{var k,z=d==="/",K=!d;if(z&&re.root)throw new re.ErrnoError(10);if(!z&&!K){var L=re.lookupPath(d,{follow_mount:!1});if(d=L.path,k=L.node,re.isMountpoint(k))throw new re.ErrnoError(10);if(!re.isDir(k.mode))throw new re.ErrnoError(54)}var j={type:x,opts:C,mountpoint:d,mounts:[]},q=x.mount(j);return q.mount=j,j.root=q,z?re.root=q:k&&(k.mounted=j,k.mount&&k.mount.mounts.push(j)),q},unmount:x=>{var C=re.lookupPath(x,{follow_mount:!1});if(!re.isMountpoint(C.node))throw new re.ErrnoError(28);var d=C.node,k=d.mounted,z=re.getMounts(k);Object.keys(re.nameTable).forEach(L=>{for(var j=re.nameTable[L];j;){var q=j.name_next;z.includes(j.mount)&&re.destroyNode(j),j=q}}),d.mounted=null;var K=d.mount.mounts.indexOf(k);d.mount.mounts.splice(K,1)},lookup:(x,C)=>x.node_ops.lookup(x,C),mknod:(x,C,d)=>{var k=re.lookupPath(x,{parent:!0}).node,z=Dr.basename(x);if(!z||z==="."||z==="..")throw new re.ErrnoError(28);var K=re.mayCreate(k,z);if(K)throw new re.ErrnoError(K);if(!k.node_ops.mknod)throw new re.ErrnoError(63);return k.node_ops.mknod(k,z,C,d)},create:(x,C)=>(C=C!==void 0?C:438,C&=4095,C|=32768,re.mknod(x,C,0)),mkdir:(x,C)=>(C=C!==void 0?C:511,C&=1023,C|=16384,re.mknod(x,C,0)),mkdirTree:(x,C)=>{for(var d=x.split("/"),k="",z=0;z(d===void 0&&(d=C,C=438),C|=8192,re.mknod(x,C,d)),symlink:(x,C)=>{if(!V0.resolve(x))throw new re.ErrnoError(44);var d=re.lookupPath(C,{parent:!0}).node;if(!d)throw new re.ErrnoError(44);var k=Dr.basename(C),z=re.mayCreate(d,k);if(z)throw new re.ErrnoError(z);if(!d.node_ops.symlink)throw new re.ErrnoError(63);return d.node_ops.symlink(d,k,x)},rename:(x,C)=>{var d,k,z=Dr.dirname(x),K=Dr.dirname(C),L=Dr.basename(x),j=Dr.basename(C);if(d=re.lookupPath(x,{parent:!0}).node,k=re.lookupPath(C,{parent:!0}).node,!d||!k)throw new re.ErrnoError(44);if(d.mount!==k.mount)throw new re.ErrnoError(75);var q,W=re.lookupNode(d,L),S=V0.relative(x,K);if(S.charAt(0)!==".")throw new re.ErrnoError(28);if((S=V0.relative(C,z)).charAt(0)!==".")throw new re.ErrnoError(55);try{q=re.lookupNode(k,j)}catch{}if(W!==q){var X=re.isDir(W.mode),R=re.mayDelete(d,L,X);if(R)throw new re.ErrnoError(R);if(R=q?re.mayDelete(k,j,X):re.mayCreate(k,j))throw new re.ErrnoError(R);if(!d.node_ops.rename)throw new re.ErrnoError(63);if(re.isMountpoint(W)||q&&re.isMountpoint(q))throw new re.ErrnoError(10);if(k!==d&&(R=re.nodePermissions(d,"w")))throw new re.ErrnoError(R);re.hashRemoveNode(W);try{d.node_ops.rename(W,k,j)}catch(ae){throw ae}finally{re.hashAddNode(W)}}},rmdir:x=>{var C=re.lookupPath(x,{parent:!0}).node,d=Dr.basename(x),k=re.lookupNode(C,d),z=re.mayDelete(C,d,!0);if(z)throw new re.ErrnoError(z);if(!C.node_ops.rmdir)throw new re.ErrnoError(63);if(re.isMountpoint(k))throw new re.ErrnoError(10);C.node_ops.rmdir(C,d),re.destroyNode(k)},readdir:x=>{var C=re.lookupPath(x,{follow:!0}).node;if(!C.node_ops.readdir)throw new re.ErrnoError(54);return C.node_ops.readdir(C)},unlink:x=>{var C=re.lookupPath(x,{parent:!0}).node;if(!C)throw new re.ErrnoError(44);var d=Dr.basename(x),k=re.lookupNode(C,d),z=re.mayDelete(C,d,!1);if(z)throw new re.ErrnoError(z);if(!C.node_ops.unlink)throw new re.ErrnoError(63);if(re.isMountpoint(k))throw new re.ErrnoError(10);C.node_ops.unlink(C,d),re.destroyNode(k)},readlink:x=>{var C=re.lookupPath(x).node;if(!C)throw new re.ErrnoError(44);if(!C.node_ops.readlink)throw new re.ErrnoError(28);return V0.resolve(re.getPath(C.parent),C.node_ops.readlink(C))},stat:(x,C)=>{var d=re.lookupPath(x,{follow:!C}).node;if(!d)throw new re.ErrnoError(44);if(!d.node_ops.getattr)throw new re.ErrnoError(63);return d.node_ops.getattr(d)},lstat:x=>re.stat(x,!0),chmod:(x,C,d)=>{var k;if(!(k=typeof x=="string"?re.lookupPath(x,{follow:!d}).node:x).node_ops.setattr)throw new re.ErrnoError(63);k.node_ops.setattr(k,{mode:4095&C|-4096&k.mode,timestamp:Date.now()})},lchmod:(x,C)=>{re.chmod(x,C,!0)},fchmod:(x,C)=>{var d=re.getStream(x);if(!d)throw new re.ErrnoError(8);re.chmod(d.node,C)},chown:(x,C,d,k)=>{var z;if(!(z=typeof x=="string"?re.lookupPath(x,{follow:!k}).node:x).node_ops.setattr)throw new re.ErrnoError(63);z.node_ops.setattr(z,{timestamp:Date.now()})},lchown:(x,C,d)=>{re.chown(x,C,d,!0)},fchown:(x,C,d)=>{var k=re.getStream(x);if(!k)throw new re.ErrnoError(8);re.chown(k.node,C,d)},truncate:(x,C)=>{if(C<0)throw new re.ErrnoError(28);var d;if(!(d=typeof x=="string"?re.lookupPath(x,{follow:!0}).node:x).node_ops.setattr)throw new re.ErrnoError(63);if(re.isDir(d.mode))throw new re.ErrnoError(31);if(!re.isFile(d.mode))throw new re.ErrnoError(28);var k=re.nodePermissions(d,"w");if(k)throw new re.ErrnoError(k);d.node_ops.setattr(d,{size:C,timestamp:Date.now()})},ftruncate:(x,C)=>{var d=re.getStream(x);if(!d)throw new re.ErrnoError(8);if(!(2097155&d.flags))throw new re.ErrnoError(28);re.truncate(d.node,C)},utime:(x,C,d)=>{var k=re.lookupPath(x,{follow:!0}).node;k.node_ops.setattr(k,{timestamp:Math.max(C,d)})},open:(x,C,d)=>{if(x==="")throw new re.ErrnoError(44);var k;if(d=d===void 0?438:d,d=64&(C=typeof C=="string"?re.modeStringToFlags(C):C)?4095&d|32768:0,typeof x=="object")k=x;else{x=Dr.normalize(x);try{k=re.lookupPath(x,{follow:!(131072&C)}).node}catch{}}var z=!1;if(64&C)if(k){if(128&C)throw new re.ErrnoError(20)}else k=re.mknod(x,d,0),z=!0;if(!k)throw new re.ErrnoError(44);if(re.isChrdev(k.mode)&&(C&=-513),65536&C&&!re.isDir(k.mode))throw new re.ErrnoError(54);if(!z){var K=re.mayOpen(k,C);if(K)throw new re.ErrnoError(K)}512&C&&!z&&re.truncate(k,0),C&=-131713;var L=re.createStream({node:k,path:re.getPath(k),flags:C,seekable:!0,position:0,stream_ops:k.stream_ops,ungotten:[],error:!1});return L.stream_ops.open&&L.stream_ops.open(L),!pe.logReadFiles||1&C||(re.readFiles||(re.readFiles={}),x in re.readFiles||(re.readFiles[x]=1)),L},close:x=>{if(re.isClosed(x))throw new re.ErrnoError(8);x.getdents&&(x.getdents=null);try{x.stream_ops.close&&x.stream_ops.close(x)}catch(C){throw C}finally{re.closeStream(x.fd)}x.fd=null},isClosed:x=>x.fd===null,llseek:(x,C,d)=>{if(re.isClosed(x))throw new re.ErrnoError(8);if(!x.seekable||!x.stream_ops.llseek)throw new re.ErrnoError(70);if(d!=0&&d!=1&&d!=2)throw new re.ErrnoError(28);return x.position=x.stream_ops.llseek(x,C,d),x.ungotten=[],x.position},read:(x,C,d,k,z)=>{if(k<0||z<0)throw new re.ErrnoError(28);if(re.isClosed(x))throw new re.ErrnoError(8);if((2097155&x.flags)==1)throw new re.ErrnoError(8);if(re.isDir(x.node.mode))throw new re.ErrnoError(31);if(!x.stream_ops.read)throw new re.ErrnoError(28);var K=z!==void 0;if(K){if(!x.seekable)throw new re.ErrnoError(70)}else z=x.position;var L=x.stream_ops.read(x,C,d,k,z);return K||(x.position+=L),L},write:(x,C,d,k,z,K)=>{if(k<0||z<0)throw new re.ErrnoError(28);if(re.isClosed(x))throw new re.ErrnoError(8);if(!(2097155&x.flags))throw new re.ErrnoError(8);if(re.isDir(x.node.mode))throw new re.ErrnoError(31);if(!x.stream_ops.write)throw new re.ErrnoError(28);x.seekable&&1024&x.flags&&re.llseek(x,0,2);var L=z!==void 0;if(L){if(!x.seekable)throw new re.ErrnoError(70)}else z=x.position;var j=x.stream_ops.write(x,C,d,k,z,K);return L||(x.position+=j),j},allocate:(x,C,d)=>{if(re.isClosed(x))throw new re.ErrnoError(8);if(C<0||d<=0)throw new re.ErrnoError(28);if(!(2097155&x.flags))throw new re.ErrnoError(8);if(!re.isFile(x.node.mode)&&!re.isDir(x.node.mode))throw new re.ErrnoError(43);if(!x.stream_ops.allocate)throw new re.ErrnoError(138);x.stream_ops.allocate(x,C,d)},mmap:(x,C,d,k,z)=>{if(2&k&&!(2&z)&&(2097155&x.flags)!=2)throw new re.ErrnoError(2);if((2097155&x.flags)==1)throw new re.ErrnoError(2);if(!x.stream_ops.mmap)throw new re.ErrnoError(43);return x.stream_ops.mmap(x,C,d,k,z)},msync:(x,C,d,k,z)=>x.stream_ops.msync?x.stream_ops.msync(x,C,d,k,z):0,munmap:x=>0,ioctl:(x,C,d)=>{if(!x.stream_ops.ioctl)throw new re.ErrnoError(59);return x.stream_ops.ioctl(x,C,d)},readFile:(x,C={})=>{if(C.flags=C.flags||0,C.encoding=C.encoding||"binary",C.encoding!=="utf8"&&C.encoding!=="binary")throw new Error('Invalid encoding type "'+C.encoding+'"');var d,k=re.open(x,C.flags),z=re.stat(x).size,K=new Uint8Array(z);return re.read(k,K,0,z,0),C.encoding==="utf8"?d=t2(K,0):C.encoding==="binary"&&(d=K),re.close(k),d},writeFile:(x,C,d={})=>{d.flags=d.flags||577;var k=re.open(x,d.flags,d.mode);if(typeof C=="string"){var z=new Uint8Array(ed(C)+1),K=au(C,z,0,z.length);re.write(k,z,0,K,void 0,d.canOwn)}else{if(!ArrayBuffer.isView(C))throw new Error("Unsupported data type");re.write(k,C,0,C.byteLength,void 0,d.canOwn)}re.close(k)},cwd:()=>re.currentPath,chdir:x=>{var C=re.lookupPath(x,{follow:!0});if(C.node===null)throw new re.ErrnoError(44);if(!re.isDir(C.node.mode))throw new re.ErrnoError(54);var d=re.nodePermissions(C.node,"x");if(d)throw new re.ErrnoError(d);re.currentPath=C.path},createDefaultDirectories:()=>{re.mkdir("/tmp"),re.mkdir("/home"),re.mkdir("/home/web_user")},createDefaultDevices:()=>{re.mkdir("/dev"),re.registerDevice(re.makedev(1,3),{read:()=>0,write:(x,C,d,k,z)=>k}),re.mkdev("/dev/null",re.makedev(1,3)),lo.register(re.makedev(5,0),lo.default_tty_ops),lo.register(re.makedev(6,0),lo.default_tty1_ops),re.mkdev("/dev/tty",re.makedev(5,0)),re.mkdev("/dev/tty1",re.makedev(6,0)),re.mkdir("/dev/shm"),re.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{re.mkdir("/proc");var x=re.mkdir("/proc/self");re.mkdir("/proc/self/fd"),re.mount({mount:()=>{var C=re.createNode(x,"fd",16895,73);return C.node_ops={lookup:(d,k)=>{var z=+k,K=re.getStream(z);if(!K)throw new re.ErrnoError(8);var L={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>K.path}};return L.parent=L,L}},C}},{},"/proc/self/fd")},createStandardStreams:()=>{pe.stdin?re.createDevice("/dev","stdin",pe.stdin):re.symlink("/dev/tty","/dev/stdin"),pe.stdout?re.createDevice("/dev","stdout",null,pe.stdout):re.symlink("/dev/tty","/dev/stdout"),pe.stderr?re.createDevice("/dev","stderr",null,pe.stderr):re.symlink("/dev/tty1","/dev/stderr"),re.open("/dev/stdin",0),re.open("/dev/stdout",1),re.open("/dev/stderr",1)},ensureErrnoError:()=>{re.ErrnoError||(re.ErrnoError=function(x,C){this.node=C,this.setErrno=function(d){this.errno=d},this.setErrno(x),this.message="FS error"},re.ErrnoError.prototype=new Error,re.ErrnoError.prototype.constructor=re.ErrnoError,[44].forEach(x=>{re.genericErrors[x]=new re.ErrnoError(x),re.genericErrors[x].stack=""}))},staticInit:()=>{re.ensureErrnoError(),re.nameTable=new Array(4096),re.mount(Xt,{},"/"),re.createDefaultDirectories(),re.createDefaultDevices(),re.createSpecialDirectories(),re.filesystems={MEMFS:Xt}},init:(x,C,d)=>{re.init.initialized=!0,re.ensureErrnoError(),pe.stdin=x||pe.stdin,pe.stdout=C||pe.stdout,pe.stderr=d||pe.stderr,re.createStandardStreams()},quit:()=>{re.init.initialized=!1;for(var x=0;x{var d=0;return x&&(d|=365),C&&(d|=146),d},findObject:(x,C)=>{var d=re.analyzePath(x,C);return d.exists?d.object:null},analyzePath:(x,C)=>{try{x=(k=re.lookupPath(x,{follow:!C})).path}catch{}var d={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var k=re.lookupPath(x,{parent:!0});d.parentExists=!0,d.parentPath=k.path,d.parentObject=k.node,d.name=Dr.basename(x),k=re.lookupPath(x,{follow:!C}),d.exists=!0,d.path=k.path,d.object=k.node,d.name=k.node.name,d.isRoot=k.path==="/"}catch(z){d.error=z.errno}return d},createPath:(x,C,d,k)=>{x=typeof x=="string"?x:re.getPath(x);for(var z=C.split("/").reverse();z.length;){var K=z.pop();if(K){var L=Dr.join2(x,K);try{re.mkdir(L)}catch{}x=L}}return L},createFile:(x,C,d,k,z)=>{var K=Dr.join2(typeof x=="string"?x:re.getPath(x),C),L=re.getMode(k,z);return re.create(K,L)},createDataFile:(x,C,d,k,z,K)=>{var L=C;x&&(x=typeof x=="string"?x:re.getPath(x),L=C?Dr.join2(x,C):x);var j=re.getMode(k,z),q=re.create(L,j);if(d){if(typeof d=="string"){for(var W=new Array(d.length),S=0,X=d.length;S{var z=Dr.join2(typeof x=="string"?x:re.getPath(x),C),K=re.getMode(!!d,!!k);re.createDevice.major||(re.createDevice.major=64);var L=re.makedev(re.createDevice.major++,0);return re.registerDevice(L,{open:j=>{j.seekable=!1},close:j=>{k&&k.buffer&&k.buffer.length&&k(10)},read:(j,q,W,S,X)=>{for(var R=0,ae=0;ae{for(var R=0;R{if(x.isDevice||x.isFolder||x.link||x.contents)return!0;throw typeof XMLHttpRequest<"u"?new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."):new Error("Cannot load without read() or XMLHttpRequest.")},createLazyFile:(x,C,d,k,z)=>{function K(){this.lengthKnown=!1,this.chunks=[]}if(K.prototype.get=function(X){if(!(X>this.length-1||X<0)){var R=X%this.chunkSize,ae=X/this.chunkSize|0;return this.getter(ae)[R]}},K.prototype.setDataGetter=function(X){this.getter=X},K.prototype.cacheLength=function(){var X=new XMLHttpRequest;if(X.open("HEAD",d,!1),X.send(null),!(X.status>=200&&X.status<300||X.status===304))throw new Error("Couldn't load "+d+". Status: "+X.status);var R,ae=Number(X.getResponseHeader("Content-length")),be=(R=X.getResponseHeader("Accept-Ranges"))&&R==="bytes",xe=(R=X.getResponseHeader("Content-Encoding"))&&R==="gzip",Ee=1048576;be||(Ee=ae);var se=this;se.setDataGetter(ie=>{var we=ie*Ee,u=(ie+1)*Ee-1;if(u=Math.min(u,ae-1),se.chunks[ie]===void 0&&(se.chunks[ie]=((b,e)=>{if(b>e)throw new Error("invalid range ("+b+", "+e+") or no bytes requested!");if(e>ae-1)throw new Error("only "+ae+" bytes available! programmer error!");var l=new XMLHttpRequest;if(l.open("GET",d,!1),ae!==Ee&&l.setRequestHeader("Range","bytes="+b+"-"+e),l.responseType="arraybuffer",l.overrideMimeType&&l.overrideMimeType("text/plain; charset=x-user-defined"),l.send(null),!(l.status>=200&&l.status<300||l.status===304))throw new Error("Couldn't load "+d+". Status: "+l.status);return l.response!==void 0?new Uint8Array(l.response||[]):nd(l.responseText||"",!0)})(we,u)),se.chunks[ie]===void 0)throw new Error("doXHR failed!");return se.chunks[ie]}),!xe&&ae||(Ee=ae=1,ae=this.getter(0).length,Ee=ae,Ac("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=ae,this._chunkSize=Ee,this.lengthKnown=!0},typeof XMLHttpRequest<"u"){if(!Np)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var L=new K;Object.defineProperties(L,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var j={isDevice:!1,contents:L}}else j={isDevice:!1,url:d};var q=re.createFile(x,C,j,k,z);j.contents?q.contents=j.contents:j.url&&(q.contents=null,q.url=j.url),Object.defineProperties(q,{usedBytes:{get:function(){return this.contents.length}}});var W={};function S(X,R,ae,be,xe){var Ee=X.node.contents;if(xe>=Ee.length)return 0;var se=Math.min(Ee.length-xe,be);if(Ee.slice)for(var ie=0;ie{var R=q.stream_ops[X];W[X]=function(){return re.forceLoadFile(q),R.apply(null,arguments)}}),W.read=(X,R,ae,be,xe)=>(re.forceLoadFile(q),S(X,R,ae,be,xe)),W.mmap=(X,R,ae,be,xe)=>{re.forceLoadFile(q);var Ee=id();if(!Ee)throw new re.ErrnoError(48);return S(X,ls,Ee,R,ae),{ptr:Ee,allocated:!0}},q.stream_ops=W,q},indexedDB:()=>window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB,DB_NAME:()=>"EM_FS_"+window.location.pathname,DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(x,C,d)=>{C=C||(()=>{}),d=d||(()=>{});var k=re.indexedDB();try{var z=k.open(re.DB_NAME(),re.DB_VERSION)}catch(K){return d(K)}z.onupgradeneeded=()=>{Ac("creating db"),z.result.createObjectStore(re.DB_STORE_NAME)},z.onsuccess=()=>{var K=z.result.transaction([re.DB_STORE_NAME],"readwrite"),L=K.objectStore(re.DB_STORE_NAME),j=0,q=0,W=x.length;function S(){q==0?C():d()}x.forEach(X=>{var R=L.put(re.analyzePath(X).object.contents,X);R.onsuccess=()=>{++j+q==W&&S()},R.onerror=()=>{q++,j+q==W&&S()}}),K.onerror=d},z.onerror=d},loadFilesFromDB:(x,C,d)=>{C=C||(()=>{}),d=d||(()=>{});var k=re.indexedDB();try{var z=k.open(re.DB_NAME(),re.DB_VERSION)}catch(K){return d(K)}z.onupgradeneeded=d,z.onsuccess=()=>{var K=z.result;try{var L=K.transaction([re.DB_STORE_NAME],"readonly")}catch(R){return void d(R)}var j=L.objectStore(re.DB_STORE_NAME),q=0,W=0,S=x.length;function X(){W==0?C():d()}x.forEach(R=>{var ae=j.get(R);ae.onsuccess=()=>{re.analyzePath(R).exists&&re.unlink(R),re.createDataFile(Dr.dirname(R),Dr.basename(R),ae.result,!0,!0,!0),++q+W==S&&X()},ae.onerror=()=>{W++,q+W==S&&X()}}),L.onerror=d},z.onerror=d}},jr={DEFAULT_POLLMASK:5,calculateAt:function(x,C,d){if(Dr.isAbs(C))return C;var k;if(k=x===-100?re.cwd():jr.getStreamFromFD(x).path,C.length==0){if(!d)throw new re.ErrnoError(44);return k}return Dr.join2(k,C)},doStat:function(x,C,d){try{var k=x(C)}catch(j){if(j&&j.node&&Dr.normalize(C)!==Dr.normalize(re.getPath(j.node)))return-54;throw j}mr[d>>2]=k.dev,mr[d+8>>2]=k.ino,mr[d+12>>2]=k.mode,Ea[d+16>>2]=k.nlink,mr[d+20>>2]=k.uid,mr[d+24>>2]=k.gid,mr[d+28>>2]=k.rdev,ga=[k.size>>>0,(Lt=k.size,+Math.abs(Lt)>=1?Lt>0?(0|Math.min(+Math.floor(Lt/4294967296),4294967295))>>>0:~~+Math.ceil((Lt-+(~~Lt>>>0))/4294967296)>>>0:0)],mr[d+40>>2]=ga[0],mr[d+44>>2]=ga[1],mr[d+48>>2]=4096,mr[d+52>>2]=k.blocks;var z=k.atime.getTime(),K=k.mtime.getTime(),L=k.ctime.getTime();return ga=[Math.floor(z/1e3)>>>0,(Lt=Math.floor(z/1e3),+Math.abs(Lt)>=1?Lt>0?(0|Math.min(+Math.floor(Lt/4294967296),4294967295))>>>0:~~+Math.ceil((Lt-+(~~Lt>>>0))/4294967296)>>>0:0)],mr[d+56>>2]=ga[0],mr[d+60>>2]=ga[1],Ea[d+64>>2]=z%1e3*1e3,ga=[Math.floor(K/1e3)>>>0,(Lt=Math.floor(K/1e3),+Math.abs(Lt)>=1?Lt>0?(0|Math.min(+Math.floor(Lt/4294967296),4294967295))>>>0:~~+Math.ceil((Lt-+(~~Lt>>>0))/4294967296)>>>0:0)],mr[d+72>>2]=ga[0],mr[d+76>>2]=ga[1],Ea[d+80>>2]=K%1e3*1e3,ga=[Math.floor(L/1e3)>>>0,(Lt=Math.floor(L/1e3),+Math.abs(Lt)>=1?Lt>0?(0|Math.min(+Math.floor(Lt/4294967296),4294967295))>>>0:~~+Math.ceil((Lt-+(~~Lt>>>0))/4294967296)>>>0:0)],mr[d+88>>2]=ga[0],mr[d+92>>2]=ga[1],Ea[d+96>>2]=L%1e3*1e3,ga=[k.ino>>>0,(Lt=k.ino,+Math.abs(Lt)>=1?Lt>0?(0|Math.min(+Math.floor(Lt/4294967296),4294967295))>>>0:~~+Math.ceil((Lt-+(~~Lt>>>0))/4294967296)>>>0:0)],mr[d+104>>2]=ga[0],mr[d+108>>2]=ga[1],0},doMsync:function(x,C,d,k,z){if(!re.isFile(C.node.mode))throw new re.ErrnoError(43);if(2&k)return 0;var K=r2.slice(x,x+d);re.msync(C,K,z,d,k)},varargs:void 0,get:function(){return jr.varargs+=4,mr[jr.varargs-4>>2]},getStr:function(x){return a2(x)},getStreamFromFD:function(x){var C=re.getStream(x);if(!C)throw new re.ErrnoError(8);return C}},$c={};function x1(){if(!x1.strings){var x={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:ru||"./this.program"};for(var C in $c)$c[C]===void 0?delete x[C]:x[C]=$c[C];var d=[];for(var C in x)d.push(C+"="+x[C]);x1.strings=d}return x1.strings}var Ug=function(x,C,d,k){x||(x=this),this.parent=x,this.mount=x.mount,this.mounted=null,this.id=re.nextInode++,this.name=C,this.mode=d,this.node_ops={},this.stream_ops={},this.rdev=k};Object.defineProperties(Ug.prototype,{read:{get:function(){return!(365&~this.mode)},set:function(x){x?this.mode|=365:this.mode&=-366}},write:{get:function(){return!(146&~this.mode)},set:function(x){x?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return re.isDir(this.mode)}},isDevice:{get:function(){return re.isChrdev(this.mode)}}}),re.FSNode=Ug,re.staticInit(),pe.FS_createPath=re.createPath,pe.FS_createDataFile=re.createDataFile,pe.FS_unlink=re.unlink,pe.FS_createLazyFile=re.createLazyFile,pe.FS_createDevice=re.createDevice;var Hp={g:function(x,C,d,k){a0("Assertion failed: "+a2(x)+", at: "+[C?a2(C):"unknown filename",d,k?a2(k):"unknown function"])},u:function(x,C,d){throw new Yp(x).init(C,d),x},d:function(x,C,d){jr.varargs=d;try{var k=jr.getStreamFromFD(x);switch(C){case 0:return(z=jr.get())<0?-28:re.createStream(k,z).fd;case 1:case 2:case 6:case 7:return 0;case 3:return k.flags;case 4:var z=jr.get();return k.flags|=z,0;case 5:return z=jr.get(),tc[z+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return mr[nf()>>2]=28,-1}}catch(K){if(re===void 0||!(K instanceof re.ErrnoError))throw K;return-K.errno}},q:function(x,C,d){try{var k=jr.getStreamFromFD(x);k.getdents||(k.getdents=re.readdir(k.path));for(var z=280,K=0,L=re.llseek(k,0,1),j=Math.floor(L/z);j>>0,(Lt=q,+Math.abs(Lt)>=1?Lt>0?(0|Math.min(+Math.floor(Lt/4294967296),4294967295))>>>0:~~+Math.ceil((Lt-+(~~Lt>>>0))/4294967296)>>>0:0)],mr[C+K>>2]=ga[0],mr[C+K+4>>2]=ga[1],ga=[(j+1)*z>>>0,(Lt=(j+1)*z,+Math.abs(Lt)>=1?Lt>0?(0|Math.min(+Math.floor(Lt/4294967296),4294967295))>>>0:~~+Math.ceil((Lt-+(~~Lt>>>0))/4294967296)>>>0:0)],mr[C+K+8>>2]=ga[0],mr[C+K+12>>2]=ga[1],tc[C+K+16>>1]=280,ls[C+K+18|0]=W,au(S,r2,C+K+19,256),K+=z,j+=1}return re.llseek(k,j*z,0),K}catch(R){if(re===void 0||!(R instanceof re.ErrnoError))throw R;return-R.errno}},h:function(x,C,d){jr.varargs=d;try{var k=jr.getStreamFromFD(x);switch(C){case 21509:case 21505:case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:case 21523:case 21524:return k.tty?0:-59;case 21519:if(!k.tty)return-59;var z=jr.get();return mr[z>>2]=0,0;case 21520:return k.tty?-28:-59;case 21531:return z=jr.get(),re.ioctl(k,C,z);default:return-28}}catch(K){if(re===void 0||!(K instanceof re.ErrnoError))throw K;return-K.errno}},e:function(x,C,d,k){jr.varargs=k;try{C=jr.getStr(C),C=jr.calculateAt(x,C);var z=k?jr.get():0;return re.open(C,d,z).fd}catch(K){if(re===void 0||!(K instanceof re.ErrnoError))throw K;return-K.errno}},o:function(x){try{return x=jr.getStr(x),re.rmdir(x),0}catch(C){if(re===void 0||!(C instanceof re.ErrnoError))throw C;return-C.errno}},n:function(x,C){try{return x=jr.getStr(x),jr.doStat(re.stat,x,C)}catch(d){if(re===void 0||!(d instanceof re.ErrnoError))throw d;return-d.errno}},p:function(x,C,d){try{return C=jr.getStr(C),C=jr.calculateAt(x,C),d===0?re.unlink(C):d===512?re.rmdir(C):a0("Invalid flags passed to unlinkat"),0}catch(k){if(re===void 0||!(k instanceof re.ErrnoError))throw k;return-k.errno}},i:function(){return!0},l:function(){a0("")},f:function(){return Date.now()},j:function(x,C,d){r2.copyWithin(x,C,C+d)},m:function(x){r2.length,a0("OOM")},r:function(x,C){var d=0;return x1().forEach(function(k,z){var K=C+d;Ea[x+4*z>>2]=K,function(L,j){for(var q=0;q>2]=d.length;var k=0;return d.forEach(function(z){k+=z.length+1}),Ea[C>>2]=k,0},b:function(x){try{var C=jr.getStreamFromFD(x);return re.close(C),0}catch(d){if(re===void 0||!(d instanceof re.ErrnoError))throw d;return d.errno}},t:function(x,C,d,k){try{var z=function(K,L,j){for(var q=0,W=0;W>2],X=Ea[L+4>>2];L+=8;var R=re.read(K,ls,S,X,void 0);if(R<0)return-1;if(q+=R,R>2]=z,0}catch(K){if(re===void 0||!(K instanceof re.ErrnoError))throw K;return K.errno}},k:function(x,C,d,k,z){try{var K=(q=d)+2097152>>>0<4194305-!!(j=C)?(j>>>0)+4294967296*q:NaN;if(isNaN(K))return 61;var L=jr.getStreamFromFD(x);return re.llseek(L,K,k),ga=[L.position>>>0,(Lt=L.position,+Math.abs(Lt)>=1?Lt>0?(0|Math.min(+Math.floor(Lt/4294967296),4294967295))>>>0:~~+Math.ceil((Lt-+(~~Lt>>>0))/4294967296)>>>0:0)],mr[z>>2]=ga[0],mr[z+4>>2]=ga[1],L.getdents&&K===0&&k===0&&(L.getdents=null),0}catch(W){if(re===void 0||!(W instanceof re.ErrnoError))throw W;return W.errno}var j,q},c:function(x,C,d,k){try{var z=function(K,L,j){for(var q=0,W=0;W>2],X=Ea[L+4>>2];L+=8;var R=re.write(K,ls,S,X,void 0);if(R<0)return-1;q+=R}return q}(jr.getStreamFromFD(x),C,d);return Ea[k>>2]=z,0}catch(K){if(re===void 0||!(K instanceof re.ErrnoError))throw K;return K.errno}},a:tu};(function(){var x,C={a:Hp};function d(k,z){var K=k.exports;pe.asm=K,pe.asm.ua,rd(pe.asm.v),sd()}if(ad(),pe.instantiateWasm)try{return pe.instantiateWasm(C,d)}catch(k){return i2("Module.instantiateWasm callback failed with error: "+k),!1}x=function(k){d(k.instance)},async function(){return[]}().then(function(k){return o2.instantiate(k,C)}).then(function(k){return k}).then(x,function(k){i2("failed to asynchronously prepare wasm: "+k),a0(k)})})(),pe.___wasm_call_ctors=function(){return(pe.___wasm_call_ctors=pe.asm.v).apply(null,arguments)};var od=pe._emscripten_bind_VoidPtr___destroy___0=function(){return(od=pe._emscripten_bind_VoidPtr___destroy___0=pe.asm.w).apply(null,arguments)},ld=pe._emscripten_bind_espeak_VOICE_get_name_0=function(){return(ld=pe._emscripten_bind_espeak_VOICE_get_name_0=pe.asm.x).apply(null,arguments)},cd=pe._emscripten_bind_espeak_VOICE_set_name_1=function(){return(cd=pe._emscripten_bind_espeak_VOICE_set_name_1=pe.asm.y).apply(null,arguments)},ud=pe._emscripten_bind_espeak_VOICE_get_languages_1=function(){return(ud=pe._emscripten_bind_espeak_VOICE_get_languages_1=pe.asm.z).apply(null,arguments)},gd=pe._emscripten_bind_espeak_VOICE_get_identifier_0=function(){return(gd=pe._emscripten_bind_espeak_VOICE_get_identifier_0=pe.asm.A).apply(null,arguments)},dd=pe._emscripten_bind_espeak_VOICE_set_identifier_1=function(){return(dd=pe._emscripten_bind_espeak_VOICE_set_identifier_1=pe.asm.B).apply(null,arguments)},fd=pe._emscripten_bind_espeak_VOICE_get_gender_0=function(){return(fd=pe._emscripten_bind_espeak_VOICE_get_gender_0=pe.asm.C).apply(null,arguments)},pd=pe._emscripten_bind_espeak_VOICE_set_gender_1=function(){return(pd=pe._emscripten_bind_espeak_VOICE_set_gender_1=pe.asm.D).apply(null,arguments)},hd=pe._emscripten_bind_espeak_VOICE_get_age_0=function(){return(hd=pe._emscripten_bind_espeak_VOICE_get_age_0=pe.asm.E).apply(null,arguments)},md=pe._emscripten_bind_espeak_VOICE_set_age_1=function(){return(md=pe._emscripten_bind_espeak_VOICE_set_age_1=pe.asm.F).apply(null,arguments)},Cd=pe._emscripten_bind_espeak_VOICE_get_variant_0=function(){return(Cd=pe._emscripten_bind_espeak_VOICE_get_variant_0=pe.asm.G).apply(null,arguments)},bd=pe._emscripten_bind_espeak_VOICE_set_variant_1=function(){return(bd=pe._emscripten_bind_espeak_VOICE_set_variant_1=pe.asm.H).apply(null,arguments)},Id=pe._emscripten_bind_espeak_VOICE_get_xx1_0=function(){return(Id=pe._emscripten_bind_espeak_VOICE_get_xx1_0=pe.asm.I).apply(null,arguments)},wd=pe._emscripten_bind_espeak_VOICE_set_xx1_1=function(){return(wd=pe._emscripten_bind_espeak_VOICE_set_xx1_1=pe.asm.J).apply(null,arguments)},kd=pe._emscripten_bind_espeak_VOICE_get_score_0=function(){return(kd=pe._emscripten_bind_espeak_VOICE_get_score_0=pe.asm.K).apply(null,arguments)},xd=pe._emscripten_bind_espeak_VOICE_set_score_1=function(){return(xd=pe._emscripten_bind_espeak_VOICE_set_score_1=pe.asm.L).apply(null,arguments)},Bd=pe._emscripten_bind_espeak_VOICE_get_spare_0=function(){return(Bd=pe._emscripten_bind_espeak_VOICE_get_spare_0=pe.asm.M).apply(null,arguments)},yd=pe._emscripten_bind_espeak_VOICE_set_spare_1=function(){return(yd=pe._emscripten_bind_espeak_VOICE_set_spare_1=pe.asm.N).apply(null,arguments)},Ed=pe._emscripten_bind_espeak_VOICE___destroy___0=function(){return(Ed=pe._emscripten_bind_espeak_VOICE___destroy___0=pe.asm.O).apply(null,arguments)},vd=pe._emscripten_bind_espeak_EVENT_get_type_0=function(){return(vd=pe._emscripten_bind_espeak_EVENT_get_type_0=pe.asm.P).apply(null,arguments)},Md=pe._emscripten_bind_espeak_EVENT_get_unique_identifier_0=function(){return(Md=pe._emscripten_bind_espeak_EVENT_get_unique_identifier_0=pe.asm.Q).apply(null,arguments)},Gd=pe._emscripten_bind_espeak_EVENT_get_text_position_0=function(){return(Gd=pe._emscripten_bind_espeak_EVENT_get_text_position_0=pe.asm.R).apply(null,arguments)},Dd=pe._emscripten_bind_espeak_EVENT_get_length_0=function(){return(Dd=pe._emscripten_bind_espeak_EVENT_get_length_0=pe.asm.S).apply(null,arguments)},Qd=pe._emscripten_bind_espeak_EVENT_get_audio_position_0=function(){return(Qd=pe._emscripten_bind_espeak_EVENT_get_audio_position_0=pe.asm.T).apply(null,arguments)},Td=pe._emscripten_bind_espeak_EVENT_get_sample_0=function(){return(Td=pe._emscripten_bind_espeak_EVENT_get_sample_0=pe.asm.U).apply(null,arguments)},Pd=pe._emscripten_bind_espeak_EVENT_get_user_data_0=function(){return(Pd=pe._emscripten_bind_espeak_EVENT_get_user_data_0=pe.asm.V).apply(null,arguments)},zd=pe._emscripten_bind_espeak_EVENT___destroy___0=function(){return(zd=pe._emscripten_bind_espeak_EVENT___destroy___0=pe.asm.W).apply(null,arguments)},Fd=pe._emscripten_bind_eSpeakNGWorker_eSpeakNGWorker_0=function(){return(Fd=pe._emscripten_bind_eSpeakNGWorker_eSpeakNGWorker_0=pe.asm.X).apply(null,arguments)},Sd=pe._emscripten_bind_eSpeakNGWorker_synth__2=function(){return(Sd=pe._emscripten_bind_eSpeakNGWorker_synth__2=pe.asm.Y).apply(null,arguments)},Nd=pe._emscripten_bind_eSpeakNGWorker_synth_ipa__2=function(){return(Nd=pe._emscripten_bind_eSpeakNGWorker_synth_ipa__2=pe.asm.Z).apply(null,arguments)},Od=pe._emscripten_bind_eSpeakNGWorker_getSizeOfEventStruct__0=function(){return(Od=pe._emscripten_bind_eSpeakNGWorker_getSizeOfEventStruct__0=pe.asm._).apply(null,arguments)},Ld=pe._emscripten_bind_eSpeakNGWorker_set_voice_2=function(){return(Ld=pe._emscripten_bind_eSpeakNGWorker_set_voice_2=pe.asm.$).apply(null,arguments)},Yd=pe._emscripten_bind_eSpeakNGWorker_set_voice_3=function(){return(Yd=pe._emscripten_bind_eSpeakNGWorker_set_voice_3=pe.asm.aa).apply(null,arguments)},Hd=pe._emscripten_bind_eSpeakNGWorker_set_voice_4=function(){return(Hd=pe._emscripten_bind_eSpeakNGWorker_set_voice_4=pe.asm.ba).apply(null,arguments)},Rd=pe._emscripten_bind_eSpeakNGWorker_set_voice_5=function(){return(Rd=pe._emscripten_bind_eSpeakNGWorker_set_voice_5=pe.asm.ca).apply(null,arguments)},Wd=pe._emscripten_bind_eSpeakNGWorker_get_voices_1=function(){return(Wd=pe._emscripten_bind_eSpeakNGWorker_get_voices_1=pe.asm.da).apply(null,arguments)},Vd=pe._emscripten_bind_eSpeakNGWorker_set_voices_2=function(){return(Vd=pe._emscripten_bind_eSpeakNGWorker_set_voices_2=pe.asm.ea).apply(null,arguments)},jd=pe._emscripten_bind_eSpeakNGWorker_get_samplerate_0=function(){return(jd=pe._emscripten_bind_eSpeakNGWorker_get_samplerate_0=pe.asm.fa).apply(null,arguments)},Ud=pe._emscripten_bind_eSpeakNGWorker_get_rate_0=function(){return(Ud=pe._emscripten_bind_eSpeakNGWorker_get_rate_0=pe.asm.ga).apply(null,arguments)},Kd=pe._emscripten_bind_eSpeakNGWorker_set_rate_1=function(){return(Kd=pe._emscripten_bind_eSpeakNGWorker_set_rate_1=pe.asm.ha).apply(null,arguments)},Zd=pe._emscripten_bind_eSpeakNGWorker_get_pitch_0=function(){return(Zd=pe._emscripten_bind_eSpeakNGWorker_get_pitch_0=pe.asm.ia).apply(null,arguments)},Xd=pe._emscripten_bind_eSpeakNGWorker_set_pitch_1=function(){return(Xd=pe._emscripten_bind_eSpeakNGWorker_set_pitch_1=pe.asm.ja).apply(null,arguments)},qd=pe._emscripten_bind_eSpeakNGWorker___destroy___0=function(){return(qd=pe._emscripten_bind_eSpeakNGWorker___destroy___0=pe.asm.ka).apply(null,arguments)},Jd=pe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_LIST_TERMINATED=function(){return(Jd=pe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_LIST_TERMINATED=pe.asm.la).apply(null,arguments)},_d=pe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_WORD=function(){return(_d=pe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_WORD=pe.asm.ma).apply(null,arguments)},$d=pe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_SENTENCE=function(){return($d=pe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_SENTENCE=pe.asm.na).apply(null,arguments)},ef=pe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_MARK=function(){return(ef=pe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_MARK=pe.asm.oa).apply(null,arguments)},Af=pe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_PLAY=function(){return(Af=pe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_PLAY=pe.asm.pa).apply(null,arguments)},tf=pe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_END=function(){return(tf=pe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_END=pe.asm.qa).apply(null,arguments)},rf=pe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_MSG_TERMINATED=function(){return(rf=pe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_MSG_TERMINATED=pe.asm.ra).apply(null,arguments)},af=pe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_PHONEME=function(){return(af=pe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_PHONEME=pe.asm.sa).apply(null,arguments)},sf=pe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_SAMPLERATE=function(){return(sf=pe._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_SAMPLERATE=pe.asm.ta).apply(null,arguments)},nf=pe.___errno_location=function(){return(nf=pe.___errno_location=pe.asm.va).apply(null,arguments)};pe._free=function(){return(pe._free=pe.asm.wa).apply(null,arguments)},pe._malloc=function(){return(pe._malloc=pe.asm.xa).apply(null,arguments)};var rc,of=pe.___cxa_is_pointer_type=function(){return(of=pe.___cxa_is_pointer_type=pe.asm.ya).apply(null,arguments)};function lf(x){function C(){rc||(rc=!0,pe.calledRun=!0,Jg||(td=!0,pe.noFSInit||re.init.initialized||re.init(),re.ignorePermissions=!1,_c(Ad),pe.onRuntimeInitialized&&pe.onRuntimeInitialized(),function(){if(pe.postRun)for(typeof pe.postRun=="function"&&(pe.postRun=[pe.postRun]);pe.postRun.length;)d=pe.postRun.shift(),jg.unshift(d);var d;_c(jg)}()))}co>0||(function(){if(pe.preRun)for(typeof pe.preRun=="function"&&(pe.preRun=[pe.preRun]);pe.preRun.length;)d=pe.preRun.shift(),Vg.unshift(d);var d;_c(Vg)}(),co>0||(pe.setStatus?(pe.setStatus("Running..."),setTimeout(function(){setTimeout(function(){pe.setStatus("")},1),C()},1)):C()))}if(pe.___start_em_js=132724,pe.___stop_em_js=132822,pe.addRunDependency=ad,pe.removeRunDependency=sd,pe.FS_createPath=re.createPath,pe.FS_createDataFile=re.createDataFile,pe.FS_createLazyFile=re.createLazyFile,pe.FS_createDevice=re.createDevice,pe.FS_unlink=re.unlink,k1=function x(){rc||lf(),rc||(k1=x)},pe.preInit)for(typeof pe.preInit=="function"&&(pe.preInit=[pe.preInit]);pe.preInit.length>0;)pe.preInit.pop()();function Ps(){}function ac(x){return(x||Ps).__cache__}function s2(x,C){var d=ac(C),k=d[x];return k||((k=Object.create((C||Ps).prototype)).ptr=x,d[x]=k)}lf(),Ps.prototype=Object.create(Ps.prototype),Ps.prototype.constructor=Ps,Ps.prototype.__class__=Ps,Ps.__cache__={},pe.WrapperObject=Ps,pe.getCache=ac,pe.wrapPointer=s2,pe.castObject=function(x,C){return s2(x.ptr,C)},pe.NULL=s2(0),pe.destroy=function(x){if(!x.__destroy__)throw"Error: Cannot destroy object. (Did you create it yourself?)";x.__destroy__(),delete ac(x.__class__)[x.ptr]},pe.compare=function(x,C){return x.ptr===C.ptr},pe.getPointer=function(x){return x.ptr},pe.getClass=function(x){return x.__class__};var Br={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(Br.needed){for(var x=0;x=Br.size?(qc(z>0),Br.needed+=z,d=pe._malloc(z),Br.temps.push(d)):(d=Br.buffer+Br.pos,Br.pos+=z),d},copy:function(x,C,d){switch(d>>>=0,C.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var k=0;k{pe.calledRun?x(new pe.eSpeakNGWorker):pe.onRuntimeInitialized=()=>x(new pe.eSpeakNGWorker)}),Wp=["en"],Vp=cf.then(x=>{const C=x.list_voices().map(({name:k,identifier:z,languages:K})=>({name:k,identifier:z,languages:K.filter(L=>Wp.includes(L.name.split("-")[0]))})).filter(k=>k.languages.length>0),d=new Set;for(const k of C){d.add(k.identifier);for(const z of k.languages)d.add(z.name)}return{voices:C,identifiers:d}});function jp(x){if(x.includes("."))return x;if(x.includes(":")){let[K,L]=x.split(":").map(Number);return L===0?`${K} o'clock`:L<10?`${K} oh ${L}`:`${K} ${L}`}let C=parseInt(x.slice(0,4),10);if(C<1100||C%1e3<10)return x;let d=x.slice(0,2),k=parseInt(x.slice(2,4),10),z=x.endsWith("s")?"s":"";if(C%1e3>=100&&C%1e3<=999){if(k===0)return`${d} hundred${z}`;if(k<10)return`${d} oh ${k}${z}`}return`${d} ${k}${z}`}function Up(x){const C=x[0]==="$"?"dollar":"pound";if(isNaN(Number(x.slice(1))))return`${x.slice(1)} ${C}s`;if(!x.includes(".")){let K=x.slice(1)==="1"?"":"s";return`${x.slice(1)} ${C}${K}`}const[d,k]=x.slice(1).split("."),z=parseInt(k.padEnd(2,"0"),10);return`${d} ${C}${d==="1"?"":"s"} and ${z} ${x[0]==="$"?z===1?"cent":"cents":z===1?"penny":"pence"}`}function Kp(x){let[C,d]=x.split(".");return`${C} point ${d.split("").join(" ")}`}const Zp=new RegExp(`(\\s*[${Kg=';:,.!?¡¿—…"«»“”(){}[]',Kg.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}]+\\s*)+`,"g");var Kg;async function Xp(x,C="a",d=!0){d&&(x=function(j){return j.replace(/[‘’]/g,"'").replace(/«/g,"“").replace(/»/g,"”").replace(/[“”]/g,'"').replace(/\(/g,"«").replace(/\)/g,"»").replace(/、/g,", ").replace(/。/g,". ").replace(/!/g,"! ").replace(/,/g,", ").replace(/:/g,": ").replace(/;/g,"; ").replace(/?/g,"? ").replace(/[^\S \n]/g," ").replace(/ +/," ").replace(/(?<=\n) +(?=\n)/g,"").replace(/\bD[Rr]\.(?= [A-Z])/g,"Doctor").replace(/\b(?:Mr\.|MR\.(?= [A-Z]))/g,"Mister").replace(/\b(?:Ms\.|MS\.(?= [A-Z]))/g,"Miss").replace(/\b(?:Mrs\.|MRS\.(?= [A-Z]))/g,"Mrs").replace(/\betc\.(?! [A-Z])/gi,"etc").replace(/\b(y)eah?\b/gi,"$1e'a").replace(/\d*\.\d+|\b\d{4}s?\b|(?q.replace(/\./g,"-")).replace(/(?<=[A-Z])\.(?=[A-Z])/gi,"-").trim()}(x));const k=function(j,q){const W=[];let S=0;for(const X of j.matchAll(q)){const R=X[0];S0&&W.push({match:!0,text:R}),S=X.index+R.length}return Sj?q:(await(async(W,S="en-us")=>{const X=await cf,{identifiers:R}=await Vp;if(!R.has(S))throw new Error(`Invalid language identifier: "${S}". Should be one of: ${Array.from(R).toSorted().join(", ")}.`);return X.set_voice(S),X.synthesize_ipa(W).ipa?.split(` +`).filter(ae=>ae.length>0)??[]})(q,z)).join(" ")))).join("").replace(/kəkˈoːɹoʊ/g,"kˈoʊkəɹoʊ").replace(/kəkˈɔːɹəʊ/g,"kˈəʊkəɹəʊ").replace(/ʲ/g,"j").replace(/r/g,"ɹ").replace(/x/g,"k").replace(/ɬ/g,"l").replace(/(?<=[a-zɹː])(?=hˈʌndɹɪd)/g," ").replace(/ z(?=[;:,.!?¡¿—…"«»“” ]|$)/g,"z");return C==="a"&&(L=L.replace(/(?<=nˈaɪn)ti(?!ː)/g,"di")),L.trim()}var eu={};const I1=Object.freeze({af_heart:{name:"Heart",language:"en-us",gender:"Female",traits:"❤️",targetQuality:"A",overallGrade:"A"},af_alloy:{name:"Alloy",language:"en-us",gender:"Female",targetQuality:"B",overallGrade:"C"},af_aoede:{name:"Aoede",language:"en-us",gender:"Female",targetQuality:"B",overallGrade:"C+"},af_bella:{name:"Bella",language:"en-us",gender:"Female",traits:"🔥",targetQuality:"A",overallGrade:"A-"},af_jessica:{name:"Jessica",language:"en-us",gender:"Female",targetQuality:"C",overallGrade:"D"},af_kore:{name:"Kore",language:"en-us",gender:"Female",targetQuality:"B",overallGrade:"C+"},af_nicole:{name:"Nicole",language:"en-us",gender:"Female",traits:"🎧",targetQuality:"B",overallGrade:"B-"},af_nova:{name:"Nova",language:"en-us",gender:"Female",targetQuality:"B",overallGrade:"C"},af_river:{name:"River",language:"en-us",gender:"Female",targetQuality:"C",overallGrade:"D"},af_sarah:{name:"Sarah",language:"en-us",gender:"Female",targetQuality:"B",overallGrade:"C+"},af_sky:{name:"Sky",language:"en-us",gender:"Female",targetQuality:"B",overallGrade:"C-"},am_adam:{name:"Adam",language:"en-us",gender:"Male",targetQuality:"D",overallGrade:"F+"},am_echo:{name:"Echo",language:"en-us",gender:"Male",targetQuality:"C",overallGrade:"D"},am_eric:{name:"Eric",language:"en-us",gender:"Male",targetQuality:"C",overallGrade:"D"},am_fenrir:{name:"Fenrir",language:"en-us",gender:"Male",targetQuality:"B",overallGrade:"C+"},am_liam:{name:"Liam",language:"en-us",gender:"Male",targetQuality:"C",overallGrade:"D"},am_michael:{name:"Michael",language:"en-us",gender:"Male",targetQuality:"B",overallGrade:"C+"},am_onyx:{name:"Onyx",language:"en-us",gender:"Male",targetQuality:"C",overallGrade:"D"},am_puck:{name:"Puck",language:"en-us",gender:"Male",targetQuality:"B",overallGrade:"C+"},am_santa:{name:"Santa",language:"en-us",gender:"Male",targetQuality:"C",overallGrade:"D-"},bf_emma:{name:"Emma",language:"en-gb",gender:"Female",traits:"🚺",targetQuality:"B",overallGrade:"B-"},bf_isabella:{name:"Isabella",language:"en-gb",gender:"Female",targetQuality:"B",overallGrade:"C"},bm_george:{name:"George",language:"en-gb",gender:"Male",targetQuality:"B",overallGrade:"C"},bm_lewis:{name:"Lewis",language:"en-gb",gender:"Male",targetQuality:"C",overallGrade:"D+"},bf_alice:{name:"Alice",language:"en-gb",gender:"Female",traits:"🚺",targetQuality:"C",overallGrade:"D"},bf_lily:{name:"Lily",language:"en-gb",gender:"Female",traits:"🚺",targetQuality:"C",overallGrade:"D"},bm_daniel:{name:"Daniel",language:"en-gb",gender:"Male",traits:"🚹",targetQuality:"C",overallGrade:"D"},bm_fable:{name:"Fable",language:"en-gb",gender:"Male",traits:"🚹",targetQuality:"B",overallGrade:"C"}}),Au=new Map;async function qp(x){if(Au.has(x))return Au.get(x);const C=new Float32Array(await async function(d){if(eu?.readFile){const j=typeof __dirname<"u"?__dirname:import.meta.dirname,q=eu.resolve(j,`../voices/${d}.bin`),{buffer:W}=await eu.readFile(q);return W}const k=`https://huggingface.co/onnx-community/Kokoro-82M-v1.0-ONNX/resolve/main/voices/${d}.bin`;let z;try{z=await caches.open("kokoro-voices");const j=await z.match(k);if(j)return await j.arrayBuffer()}catch(j){console.warn("Unable to open cache",j)}const K=await fetch(k),L=await K.arrayBuffer();if(z)try{await z.put(k,new Response(L,{headers:K.headers}))}catch(j){console.warn("Unable to cache file",j)}return L}(x));return Au.set(x,C),C}class su{constructor(C,d){this.model=C,this.tokenizer=d}static async from_pretrained(C,{dtype:d="fp32",device:k=null,progress_callback:z=null}={}){const K=Sp.from_pretrained(C,{progress_callback:z,dtype:d,device:k}),L=zp.from_pretrained(C,{progress_callback:z}),j=await Promise.all([K,L]);return new su(...j)}get voices(){return I1}list_voices(){console.table(I1)}_validate_voice(C){if(!I1.hasOwnProperty(C))throw console.error(`Voice "${C}" not found. Available voices:`),console.table(I1),new Error(`Voice "${C}" not found. Should be one of: ${Object.keys(I1).join(", ")}.`)}async generate(C,{voice:d="af_heart",speed:k=1}={}){this._validate_voice(d);const z=d.at(0),K=await Xp(C,z),{input_ids:L}=this.tokenizer(K,{truncation:!0}),j=256*Math.min(Math.max(L.dims.at(-1)-2,0),509),q=(await qp(d)).slice(j,j+256),W={input_ids:L,style:new Yg("float32",q,[1,256]),speed:new Yg("float32",[k],[1])},{waveform:S}=await this.model(W);return new Fp(S.data,24e3)}}async function Jp(){try{return!!await navigator.gpu.requestAdapter()}catch{return!1}}const sc=await Jp()?"webgpu":"wasm";self.postMessage({status:"device",device:sc});const _p="onnx-community/Kokoro-82M-v1.0-ONNX",uf=await su.from_pretrained(_p,{dtype:sc==="wasm"?"q8":"fp32",device:sc}).catch(x=>{throw self.postMessage({status:"error",error:x.message}),x});self.postMessage({status:"ready",voices:uf.voices,device:sc});self.addEventListener("message",async x=>{const{text:C,voice:d}=x.data,z=(await uf.generate(C,{voice:d})).toBlob();self.postMessage({status:"complete",audio:URL.createObjectURL(z),text:C})});